|
|
@@ -555,6 +555,22 @@ static void reinitSCSI()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void check_and_apply_sdio_delay() {
|
|
|
+ long add_sdio_delay = ini_getl("SDIO", "AddClockDelay", 0, CONFIGFILE);
|
|
|
+ if (add_sdio_delay) {
|
|
|
+ if (add_sdio_delay < 0) {
|
|
|
+ add_sdio_delay = 0;
|
|
|
+ log("---- WARNING: Negative numbers are not valid for AddClockDelay. Setting value to 0");
|
|
|
+ }
|
|
|
+ if (add_sdio_delay > 2) {
|
|
|
+ add_sdio_delay = 2;
|
|
|
+ log("---- WARNING: Max value 2 exceeded for AddClockDelay. Setting value to 2.");
|
|
|
+ }
|
|
|
+ log("INFO: Injecting ", (uint16_t)add_sdio_delay, " additional wait state(s) on SDIO");
|
|
|
+ add_extra_sdio_delay((uint16_t) add_sdio_delay);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
extern "C" void bluescsi_setup(void)
|
|
|
{
|
|
|
pio_clear_instruction_memory(pio0);
|
|
|
@@ -599,20 +615,7 @@ extern "C" void bluescsi_setup(void)
|
|
|
{
|
|
|
log("SD card without filesystem!");
|
|
|
}
|
|
|
-
|
|
|
- long add_sdio_delay = ini_getl("SDIO", "AddClockDelay", 0, CONFIGFILE);
|
|
|
- if (add_sdio_delay) {
|
|
|
- if (add_sdio_delay < 0) {
|
|
|
- add_sdio_delay = 0;
|
|
|
- log("---- WARNING: Negative numbers are not valid for AddClockDelay. Setting value to 0");
|
|
|
- }
|
|
|
- if (add_sdio_delay > 2) {
|
|
|
- add_sdio_delay = 2;
|
|
|
- log("---- WARNING: Max value 2 exceeded for AddClockDelay. Setting value to 2.");
|
|
|
- }
|
|
|
- log("INFO: Injecting ", (uint16_t)add_sdio_delay, " additional wait state(s) on SDIO");
|
|
|
- add_extra_sdio_delay((uint16_t) add_sdio_delay);
|
|
|
- }
|
|
|
+ check_and_apply_sdio_delay();
|
|
|
|
|
|
print_sd_info();
|
|
|
|
|
|
@@ -750,6 +753,7 @@ extern "C" void bluescsi_main_loop(void)
|
|
|
if (g_sdcard_present)
|
|
|
{
|
|
|
log("SD card reinit succeeded");
|
|
|
+ check_and_apply_sdio_delay();
|
|
|
print_sd_info();
|
|
|
|
|
|
reinitSCSI();
|