usbd: add special mode (s-boot download mode)
authorMinkyu Kang <mk7.kang@samsung.com>
Tue, 14 Dec 2010 08:57:00 +0000 (17:57 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Tue, 14 Dec 2010 08:57:00 +0000 (17:57 +0900)
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
common/cmd_usbd.c
include/usbd.h

index 5a3b5e2..ccafe8a 100644 (file)
@@ -1121,6 +1121,24 @@ static int process_data(struct usbd_ops *usbd)
 
                return 1;
 
+       case COMMAND_DOWNLOAD_SPMODE:
+               printf("\nCOMMAND_DOWNLOAD_SPMODE\n");
+
+               down_ram_addr = usbd->ram_addr + 0x2008000;
+
+               usbd->recv_setup((char *)down_ram_addr, (int)len);
+               printf("Download to 0x%08x, %d bytes\n",
+                               (uint)down_ram_addr, (int)len);
+
+               /* response */
+               send_ack(usbd, STATUS_DONE);
+
+               /* Receive image by using dma */
+               recvlen = usbd->recv_data();
+               send_ack(usbd, STATUS_DONE);
+
+               return 0;
+
        /* Report partition info */
        case COMMAND_PARTITION_SYNC:
                part_id = arg;
index 0452c3c..ff77c01 100644 (file)
@@ -67,6 +67,7 @@ enum {
 #define COMMAND_CHANGE_USB     221
 #endif
 #define COMMAND_CSA_CLEAR      222
+#define COMMAND_DOWNLOAD_SPMODE        223
 #define COMMAND_PROGRESS       230
 
 /* version 2.0 */