Fix bug "protocol error" bug when saving config settings.
[SCSI2SD-V6.git] / src / firmware / config.c
index 8977263..800624a 100755 (executable)
@@ -52,6 +52,7 @@ static const uint8_t DEFAULT_CONFIG[128] =
 \r
 \r
 static uint8_t s2s_cfg[S2S_CFG_SIZE] S2S_DMA_ALIGN;\r
+static uint8_t configDmaBuf[512] S2S_DMA_ALIGN; // For SD card writes.\r
 \r
 \r
 enum USB_STATE\r
@@ -62,16 +63,11 @@ enum USB_STATE
 \r
 \r
 static int usbInEpState;\r
-#if 0\r
-static int usbDebugEpState;\r
-#endif\r
-static int usbReady; // TODO MM REMOVE. Unused ?\r
 \r
 void s2s_configInit(S2S_BoardCfg* config)\r
 {\r
 \r
        usbInEpState = USB_IDLE;\r
-       usbReady = 0; // We don't know if host is connected yet.\r
 \r
 \r
        if ((blockDev.state & DISK_PRESENT) && sdDev.capacity)\r
@@ -205,10 +201,8 @@ sdWriteCommand(const uint8_t* cmd, size_t cmdSize)
                (((uint32_t)cmd[3]) << 8) |\r
                ((uint32_t)cmd[4]);\r
 \r
-       // Must be aligned.\r
-       uint8_t buf[512] S2S_DMA_ALIGN;\r
-       memcpy(buf, &cmd[5], 512);\r
-       BSP_SD_WriteBlocks_DMA((uint32_t*) buf, lba * 512ll, 512, 1);\r
+       memcpy(configDmaBuf, &cmd[5], 512);\r
+       BSP_SD_WriteBlocks_DMA((uint32_t*) configDmaBuf, lba * 512ll, 512, 1);\r
 \r
        uint8_t response[] =\r
        {\r
@@ -230,8 +224,8 @@ sdReadCommand(const uint8_t* cmd, size_t cmdSize)
                (((uint32_t)cmd[3]) << 8) |\r
                ((uint32_t)cmd[4]);\r
 \r
-       BSP_SD_ReadBlocks_DMA((uint32_t*) cmd, lba * 512ll, 512, 1);\r
-       hidPacket_send(cmd, 512);\r
+       BSP_SD_ReadBlocks_DMA((uint32_t*) configDmaBuf, lba * 512ll, 512, 1);\r
+       hidPacket_send(configDmaBuf, 512);\r
 }\r
 \r
 static void\r