diff options
-rw-r--r-- | firmware/export/as3525.h | 4 | ||||
-rw-r--r-- | firmware/target/arm/as3525/usb-drv-as3525.c | 17 | ||||
-rw-r--r-- | firmware/usbstack/usb_storage.c | 2 |
3 files changed, 5 insertions, 18 deletions
diff --git a/firmware/export/as3525.h b/firmware/export/as3525.h index e578b608a6..a58a0ae0ad 100644 --- a/firmware/export/as3525.h +++ b/firmware/export/as3525.h | |||
@@ -530,9 +530,9 @@ CE lines | |||
530 | /* Timer frequency */ | 530 | /* Timer frequency */ |
531 | #define TIMER_FREQ (24000000 / 16) | 531 | #define TIMER_FREQ (24000000 / 16) |
532 | 532 | ||
533 | /* USB : TODO */ | 533 | /* USB */ |
534 | #define USB_NUM_ENDPOINTS 4 | 534 | #define USB_NUM_ENDPOINTS 4 |
535 | #define USB_DEVBSS_ATTR IBSS_ATTR | 535 | #define USB_DEVBSS_ATTR |
536 | 536 | ||
537 | /* I2SIN registers */ | 537 | /* I2SIN registers */ |
538 | 538 | ||
diff --git a/firmware/target/arm/as3525/usb-drv-as3525.c b/firmware/target/arm/as3525/usb-drv-as3525.c index ca484d0395..740526407d 100644 --- a/firmware/target/arm/as3525/usb-drv-as3525.c +++ b/firmware/target/arm/as3525/usb-drv-as3525.c | |||
@@ -626,19 +626,6 @@ void usb_drv_cancel_all_transfers(void) | |||
626 | restore_irq(flags); | 626 | restore_irq(flags); |
627 | } | 627 | } |
628 | 628 | ||
629 | static void *virt_to_bus(void *addr) | ||
630 | { | ||
631 | unsigned int x = (long)addr; | ||
632 | |||
633 | x -= (x & 0x40000000) >> 2; /* fix uncached address */ | ||
634 | |||
635 | if (x >= IRAM_ORIG) { /* iram address */ | ||
636 | x -= IRAM_ORIG; | ||
637 | } | ||
638 | |||
639 | return (void*)x; | ||
640 | } | ||
641 | |||
642 | int usb_drv_recv(int ep, void *ptr, int len) | 629 | int usb_drv_recv(int ep, void *ptr, int len) |
643 | { | 630 | { |
644 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; | 631 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; |
@@ -664,7 +651,7 @@ int usb_drv_recv(int ep, void *ptr, int len) | |||
664 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; | 651 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; |
665 | uc_desc->data_ptr = 0; | 652 | uc_desc->data_ptr = 0; |
666 | } else { | 653 | } else { |
667 | uc_desc->data_ptr = virt_to_bus(ptr); | 654 | uc_desc->data_ptr = ptr; |
668 | } | 655 | } |
669 | USB_OEP_DESC_PTR(ep) = (int)&dmadescs[ep][1]; | 656 | USB_OEP_DESC_PTR(ep) = (int)&dmadescs[ep][1]; |
670 | USB_OEP_STS(ep) = USB_EP_STAT_OUT_RCVD; /* clear status */ | 657 | USB_OEP_STS(ep) = USB_EP_STAT_OUT_RCVD; /* clear status */ |
@@ -716,7 +703,7 @@ void ep_send(int ep, void *ptr, int len) | |||
716 | if (len == 0) | 703 | if (len == 0) |
717 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; | 704 | uc_desc->status |= USB_DMA_DESC_ZERO_LEN; |
718 | 705 | ||
719 | uc_desc->data_ptr = virt_to_bus(ptr); | 706 | uc_desc->data_ptr = ptr; |
720 | 707 | ||
721 | USB_IEP_DESC_PTR(ep) = (int)&dmadescs[ep][0]; | 708 | USB_IEP_DESC_PTR(ep) = (int)&dmadescs[ep][0]; |
722 | USB_IEP_STS(ep) = 0xffffffff; /* clear status */ | 709 | USB_IEP_STS(ep) = 0xffffffff; /* clear status */ |
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index 3373bf41f3..8917a67141 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c | |||
@@ -449,7 +449,7 @@ void usb_storage_init_connection(void) | |||
449 | state = WAITING_FOR_COMMAND; | 449 | state = WAITING_FOR_COMMAND; |
450 | 450 | ||
451 | #if CONFIG_CPU == IMX31L || defined(CPU_TCC77X) || defined(CPU_TCC780X) || \ | 451 | #if CONFIG_CPU == IMX31L || defined(CPU_TCC77X) || defined(CPU_TCC780X) || \ |
452 | defined(BOOTLOADER) || CONFIG_CPU == DM320 | 452 | defined(BOOTLOADER) || CONFIG_CPU == DM320 || CONFIG_CPU == AS3525 |
453 | static unsigned char _cbw_buffer[MAX_CBW_SIZE] | 453 | static unsigned char _cbw_buffer[MAX_CBW_SIZE] |
454 | USB_DEVBSS_ATTR __attribute__((aligned(32))); | 454 | USB_DEVBSS_ATTR __attribute__((aligned(32))); |
455 | cbw_buffer = (void *)_cbw_buffer; | 455 | cbw_buffer = (void *)_cbw_buffer; |