summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-06-18 01:47:39 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-06-18 01:47:39 +0000
commitb812465bfff2111e149a44d7041c1d62d7e1519c (patch)
tree18c654b306088c1e9a19aab2f5dc444845c922c7 /firmware/target
parent6470a9ffd132f0315e1c62cbf01e2a1963b874ab (diff)
downloadrockbox-b812465bfff2111e149a44d7041c1d62d7e1519c.tar.gz
rockbox-b812465bfff2111e149a44d7041c1d62d7e1519c.zip
as3525: bootloader USB mode
not working yet : an empty drive is detected won't link on fuzev1: drivers allocated in usb_storage.c are too large git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26905 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/as3525/usb-drv-as3525.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/usb-drv-as3525.c b/firmware/target/arm/as3525/usb-drv-as3525.c
index 45dadebc85..fe3b38fdb5 100644
--- a/firmware/target/arm/as3525/usb-drv-as3525.c
+++ b/firmware/target/arm/as3525/usb-drv-as3525.c
@@ -684,8 +684,10 @@ int usb_drv_recv(int ep, void *ptr, int len)
684 endpoints[ep][1].len = len; 684 endpoints[ep][1].len = len;
685 endpoints[ep][1].rc = -1; 685 endpoints[ep][1].rc = -1;
686 686
687#ifndef BOOTLOADER
687 /* remove data buffer from cache */ 688 /* remove data buffer from cache */
688 invalidate_dcache(); 689 invalidate_dcache();
690#endif
689 /* DMA setup */ 691 /* DMA setup */
690 uc_desc->status = USB_DMA_DESC_BS_HST_RDY | 692 uc_desc->status = USB_DMA_DESC_BS_HST_RDY |
691 USB_DMA_DESC_LAST | 693 USB_DMA_DESC_LAST |
@@ -734,8 +736,10 @@ void ep_send(int ep, void *ptr, int len)
734 endpoints[ep][0].len = len; 736 endpoints[ep][0].len = len;
735 endpoints[ep][0].rc = -1; 737 endpoints[ep][0].rc = -1;
736 738
739#ifndef BOOTLOADER
737 /* Make sure data is committed to memory */ 740 /* Make sure data is committed to memory */
738 clean_dcache(); 741 clean_dcache();
742#endif
739 743
740 logf("xx%s\n", make_hex(ptr, len)); 744 logf("xx%s\n", make_hex(ptr, len));
741 745
@@ -843,10 +847,12 @@ static void handle_out_ep(int ep)
843 logf("EP%d OUT token, st:%08x len:%d frm:%x data=%s epstate=%d\n", ep, 847 logf("EP%d OUT token, st:%08x len:%d frm:%x data=%s epstate=%d\n", ep,
844 dma_mst, dma_len, dma_frm, make_hex(uc_desc->data_ptr, dma_len), 848 dma_mst, dma_len, dma_frm, make_hex(uc_desc->data_ptr, dma_len),
845 endpoints[ep][1].state); 849 endpoints[ep][1].state);
850#ifndef BOOTLOADER
846 /* 851 /*
847 * If parts of the just dmaed range are in cache, dump them now. 852 * If parts of the just dmaed range are in cache, dump them now.
848 */ 853 */
849 dump_dcache_range(uc_desc->data_ptr, dma_len); 854 dump_dcache_range(uc_desc->data_ptr, dma_len);
855#endif
850 } else{ 856 } else{
851 logf("EP%d OUT token, st:%08x frm:%x (no data)\n", ep, 857 logf("EP%d OUT token, st:%08x frm:%x (no data)\n", ep,
852 dma_mst, dma_frm); 858 dma_mst, dma_frm);