diff options
author | Rob Purchase <shotofadds@rockbox.org> | 2009-07-19 17:31:56 +0000 |
---|---|---|
committer | Rob Purchase <shotofadds@rockbox.org> | 2009-07-19 17:31:56 +0000 |
commit | 3a88746780aceed6253967b39db753c2c8c8304b (patch) | |
tree | 5dfef64276e3e5205a228f8cdbb109b5f437ab7b /firmware/export | |
parent | 8f5264e6186572532433eecaad0a618c81e48a3f (diff) | |
download | rockbox-3a88746780aceed6253967b39db753c2c8c8304b.tar.gz rockbox-3a88746780aceed6253967b39db753c2c8c8304b.zip |
D2: A working read/write SD(HC) driver, based on the PP equivalent. See CowonD2Info wiki for usage notes/restrictions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21967 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/config-cowond2.h | 9 | ||||
-rw-r--r-- | firmware/export/tcc780x.h | 37 |
2 files changed, 45 insertions, 1 deletions
diff --git a/firmware/export/config-cowond2.h b/firmware/export/config-cowond2.h index 5d65437eab..68e23c8f9c 100644 --- a/firmware/export/config-cowond2.h +++ b/firmware/export/config-cowond2.h | |||
@@ -62,7 +62,14 @@ | |||
62 | /* define this if you have a flash memory storage */ | 62 | /* define this if you have a flash memory storage */ |
63 | #define HAVE_FLASH_STORAGE | 63 | #define HAVE_FLASH_STORAGE |
64 | 64 | ||
65 | #ifndef SIMULATOR | ||
66 | #define CONFIG_STORAGE (STORAGE_NAND | STORAGE_SD) | ||
67 | #define HAVE_MULTIDRIVE | ||
68 | #define HAVE_HOTSWAP | ||
69 | #define NUM_DRIVES 2 | ||
70 | #else | ||
65 | #define CONFIG_STORAGE STORAGE_NAND | 71 | #define CONFIG_STORAGE STORAGE_NAND |
72 | #endif | ||
66 | 73 | ||
67 | #define CONFIG_NAND NAND_TCC | 74 | #define CONFIG_NAND NAND_TCC |
68 | 75 | ||
@@ -150,6 +157,8 @@ | |||
150 | /* Define this if you have adjustable CPU frequency */ | 157 | /* Define this if you have adjustable CPU frequency */ |
151 | #define HAVE_ADJUSTABLE_CPU_FREQ | 158 | #define HAVE_ADJUSTABLE_CPU_FREQ |
152 | 159 | ||
160 | #define INCLUDE_TIMEOUT_API | ||
161 | |||
153 | /* Offset ( in the firmware file's header ) to the file CRC */ | 162 | /* Offset ( in the firmware file's header ) to the file CRC */ |
154 | #define FIRMWARE_OFFSET_FILE_CRC 0 | 163 | #define FIRMWARE_OFFSET_FILE_CRC 0 |
155 | 164 | ||
diff --git a/firmware/export/tcc780x.h b/firmware/export/tcc780x.h index 5b37b40526..24a4415ef3 100644 --- a/firmware/export/tcc780x.h +++ b/firmware/export/tcc780x.h | |||
@@ -63,7 +63,7 @@ | |||
63 | #define BCLKCTR (*(volatile unsigned long *)0xF3000018) | 63 | #define BCLKCTR (*(volatile unsigned long *)0xF3000018) |
64 | #define SWRESET (*(volatile unsigned long *)0xF300001C) | 64 | #define SWRESET (*(volatile unsigned long *)0xF300001C) |
65 | #define PCLKCFG0 (*(volatile unsigned long *)0xF3000020) | 65 | #define PCLKCFG0 (*(volatile unsigned long *)0xF3000020) |
66 | #define PCLKCFG1 (*(volatile unsigned long *)0xF3000024) | 66 | #define PCLK_SDMMC (*(volatile unsigned long *)0xF3000024) |
67 | #define PCLKCFG2 (*(volatile unsigned long *)0xF3000028) | 67 | #define PCLKCFG2 (*(volatile unsigned long *)0xF3000028) |
68 | #define PCLKCFG3 (*(volatile unsigned long *)0xF300002C) | 68 | #define PCLKCFG3 (*(volatile unsigned long *)0xF300002C) |
69 | #define PCLK_LCD (*(volatile unsigned long *)0xF3000030) | 69 | #define PCLK_LCD (*(volatile unsigned long *)0xF3000030) |
@@ -114,6 +114,7 @@ | |||
114 | #define MIRQ (*(volatile unsigned long *)0xF3001028) | 114 | #define MIRQ (*(volatile unsigned long *)0xF3001028) |
115 | #define MFIQ (*(volatile unsigned long *)0xF300102C) | 115 | #define MFIQ (*(volatile unsigned long *)0xF300102C) |
116 | #define TMODE (*(volatile unsigned long *)0xF3001030) | 116 | #define TMODE (*(volatile unsigned long *)0xF3001030) |
117 | #define TMODEA (*(volatile unsigned long *)0xF300103C) | ||
117 | #define ALLMASK (*(volatile unsigned long *)0xF3001044) | 118 | #define ALLMASK (*(volatile unsigned long *)0xF3001044) |
118 | #define VAIRQ (*(volatile unsigned long *)0xF3001080) | 119 | #define VAIRQ (*(volatile unsigned long *)0xF3001080) |
119 | #define VAFIQ (*(volatile unsigned long *)0xF3001084) | 120 | #define VAFIQ (*(volatile unsigned long *)0xF3001084) |
@@ -123,6 +124,7 @@ | |||
123 | 124 | ||
124 | #define IRQ_PRIORITY_TABLE ((volatile unsigned int *)0xF30010A0) | 125 | #define IRQ_PRIORITY_TABLE ((volatile unsigned int *)0xF30010A0) |
125 | 126 | ||
127 | #define EXT0_IRQ_MASK (1<<0) | ||
126 | #define EXT3_IRQ_MASK (1<<3) | 128 | #define EXT3_IRQ_MASK (1<<3) |
127 | #define TIMER0_IRQ_MASK (1<<6) | 129 | #define TIMER0_IRQ_MASK (1<<6) |
128 | #define DAI_RX_IRQ_MASK (1<<14) | 130 | #define DAI_RX_IRQ_MASK (1<<14) |
@@ -243,6 +245,39 @@ | |||
243 | #define ECC_ERRDATA (*(volatile unsigned long *)0xF005B060) | 245 | #define ECC_ERRDATA (*(volatile unsigned long *)0xF005B060) |
244 | #define ECC_ERR (*(volatile unsigned long *)0xF005B070) | 246 | #define ECC_ERR (*(volatile unsigned long *)0xF005B070) |
245 | 247 | ||
248 | /* SD/MMC Controller */ | ||
249 | |||
250 | #define SDICLK (*(volatile unsigned long *)0xF0058004) | ||
251 | #define SDIARGU (*(volatile unsigned long *)0xF0058008) | ||
252 | #define SDICMD (*(volatile unsigned long *)0xF005800C) | ||
253 | #define SDIRSPCMD (*(volatile unsigned long *)0xF0058010) | ||
254 | #define SDIRSPARGU0 (*(volatile unsigned long *)0xF0058014) | ||
255 | #define SDIRSPARGU1 (*(volatile unsigned long *)0xF0058018) | ||
256 | #define SDIRSPARGU2 (*(volatile unsigned long *)0xF005801C) | ||
257 | #define SDIRSPARGU3 (*(volatile unsigned long *)0xF0058020) | ||
258 | #define SDIDTIMER (*(volatile unsigned long *)0xF0058024) | ||
259 | #define SDIDCTRL2 (*(volatile unsigned long *)0xF0058028) | ||
260 | #define SDIDCTRL (*(volatile unsigned long *)0xF005802C) | ||
261 | #define SDISTATUS (*(volatile unsigned long *)0xF0058030) | ||
262 | #define SDIIFLAG (*(volatile unsigned long *)0xF0058034) | ||
263 | #define SDIWDATA (*(volatile unsigned long *)0xF0058038) | ||
264 | #define SDIRDATA (*(volatile unsigned long *)0xF005803C) | ||
265 | #define SDIIENABLE (*(volatile unsigned long *)0xF0058040) | ||
266 | |||
267 | #define SDICMD_RES_TYPE1 1 | ||
268 | #define SDICMD_RES_TYPE1b 2 | ||
269 | #define SDICMD_RES_TYPE2 3 | ||
270 | #define SDICMD_RES_TYPE3 4 | ||
271 | #define SDICMD_RES_TYPE4 5 | ||
272 | #define SDICMD_RES_TYPE5 6 | ||
273 | #define SDICMD_RES_TYPE6 7 | ||
274 | |||
275 | #define SDISTATUS_RESP_RCVD (1<<7) | ||
276 | #define SDISTATUS_FIFO_LOAD_REQ (1<<17) | ||
277 | #define SDISTATUS_FIFO_FETCH_REQ (1<<18) | ||
278 | #define SDISTATUS_CMD_PATH_RDY (1<<21) | ||
279 | #define SDISTATUS_MULTIBLOCK_END (1<<25) | ||
280 | |||
246 | /* USB 2.0 device system MMR base address */ | 281 | /* USB 2.0 device system MMR base address */ |
247 | #define USB_BASE 0xf0010000 | 282 | #define USB_BASE 0xf0010000 |
248 | 283 | ||