diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-10-17 16:57:51 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-10-17 18:38:49 -0400 |
commit | d8d37ffdb8bed39df5d021afa9e09bf087b45d0d (patch) | |
tree | eaea28432d9a76c98d69470c3c8a8bd0b4e17282 /firmware | |
parent | 0a4a920029bfb8194c37870b7e6d8e60cd7c8ef9 (diff) | |
download | rockbox-d8d37ffdb8bed39df5d021afa9e09bf087b45d0d.tar.gz rockbox-d8d37ffdb8bed39df5d021afa9e09bf087b45d0d.zip |
Define a USB storage type, and hook it up for hosted targets
Change-Id: I56363c989139c7edf0b2c67b0aac9ef1adfacba2
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/common/pathfuncs.c | 9 | ||||
-rw-r--r-- | firmware/export/config.h | 6 | ||||
-rw-r--r-- | firmware/export/hostfs.h | 2 | ||||
-rw-r--r-- | firmware/export/mv.h | 3 | ||||
-rw-r--r-- | firmware/export/storage.h | 8 | ||||
-rw-r--r-- | firmware/target/hosted/fiio/system-fiio.c | 4 | ||||
-rw-r--r-- | firmware/target/hosted/system-hosted.c | 7 |
7 files changed, 35 insertions, 4 deletions
diff --git a/firmware/common/pathfuncs.c b/firmware/common/pathfuncs.c index 0935a9a6e3..1c48a54972 100644 --- a/firmware/common/pathfuncs.c +++ b/firmware/common/pathfuncs.c | |||
@@ -45,6 +45,9 @@ enum storage_name_dec_indexes | |||
45 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) | 45 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) |
46 | STORAGE_DEC_IDX_RAMDISK, | 46 | STORAGE_DEC_IDX_RAMDISK, |
47 | #endif | 47 | #endif |
48 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
49 | STORAGE_DEC_IDX_USB, | ||
50 | #endif | ||
48 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) | 51 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) |
49 | STORAGE_DEC_IDX_HOSTFS, | 52 | STORAGE_DEC_IDX_HOSTFS, |
50 | #endif | 53 | #endif |
@@ -68,6 +71,9 @@ static const char * const storage_dec_names[STORAGE_NUM_DEC_IDX+1] = | |||
68 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) | 71 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) |
69 | [STORAGE_DEC_IDX_RAMDISK] = RAMDISK_VOL_DEC, | 72 | [STORAGE_DEC_IDX_RAMDISK] = RAMDISK_VOL_DEC, |
70 | #endif | 73 | #endif |
74 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
75 | [STORAGE_DEC_IDX_USB] = USB_VOL_DEC, | ||
76 | #endif | ||
71 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) | 77 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) |
72 | [STORAGE_DEC_IDX_HOSTFS] = HOSTFS_VOL_DEC, | 78 | [STORAGE_DEC_IDX_HOSTFS] = HOSTFS_VOL_DEC, |
73 | #endif | 79 | #endif |
@@ -92,6 +98,9 @@ static const unsigned char storage_dec_indexes[STORAGE_NUM_TYPES+1] = | |||
92 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) | 98 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) |
93 | [STORAGE_RAMDISK_NUM] = STORAGE_DEC_IDX_RAMDISK, | 99 | [STORAGE_RAMDISK_NUM] = STORAGE_DEC_IDX_RAMDISK, |
94 | #endif | 100 | #endif |
101 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
102 | [STORAGE_USB_NUM] = STORAGE_DEC_IDX_USB, | ||
103 | #endif | ||
95 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) | 104 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) |
96 | [STORAGE_HOSTFS_NUM] = STORAGE_DEC_IDX_HOSTFS, | 105 | [STORAGE_HOSTFS_NUM] = STORAGE_DEC_IDX_HOSTFS, |
97 | #endif | 106 | #endif |
diff --git a/firmware/export/config.h b/firmware/export/config.h index 7e8d751090..547c359d8d 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h | |||
@@ -32,14 +32,16 @@ | |||
32 | #define STORAGE_SD_NUM 2 | 32 | #define STORAGE_SD_NUM 2 |
33 | #define STORAGE_NAND_NUM 3 | 33 | #define STORAGE_NAND_NUM 3 |
34 | #define STORAGE_RAMDISK_NUM 4 | 34 | #define STORAGE_RAMDISK_NUM 4 |
35 | #define STORAGE_HOSTFS_NUM 5 | 35 | #define STORAGE_USB_NUM 5 |
36 | #define STORAGE_NUM_TYPES 6 | 36 | #define STORAGE_HOSTFS_NUM 6 |
37 | #define STORAGE_NUM_TYPES 7 | ||
37 | 38 | ||
38 | #define STORAGE_ATA (1 << STORAGE_ATA_NUM) | 39 | #define STORAGE_ATA (1 << STORAGE_ATA_NUM) |
39 | #define STORAGE_MMC (1 << STORAGE_MMC_NUM) | 40 | #define STORAGE_MMC (1 << STORAGE_MMC_NUM) |
40 | #define STORAGE_SD (1 << STORAGE_SD_NUM) | 41 | #define STORAGE_SD (1 << STORAGE_SD_NUM) |
41 | #define STORAGE_NAND (1 << STORAGE_NAND_NUM) | 42 | #define STORAGE_NAND (1 << STORAGE_NAND_NUM) |
42 | #define STORAGE_RAMDISK (1 << STORAGE_RAMDISK_NUM) | 43 | #define STORAGE_RAMDISK (1 << STORAGE_RAMDISK_NUM) |
44 | #define STORAGE_USB (1 << STORAGE_USB_NUM) | ||
43 | /* meant for APPLICATION targets (implicit for SIMULATOR) */ | 45 | /* meant for APPLICATION targets (implicit for SIMULATOR) */ |
44 | #define STORAGE_HOSTFS (1 << STORAGE_HOSTFS_NUM) | 46 | #define STORAGE_HOSTFS (1 << STORAGE_HOSTFS_NUM) |
45 | 47 | ||
diff --git a/firmware/export/hostfs.h b/firmware/export/hostfs.h index fa916870f3..c0fe85236e 100644 --- a/firmware/export/hostfs.h +++ b/firmware/export/hostfs.h | |||
@@ -54,6 +54,8 @@ extern int hostfs_driver_type(int drive); | |||
54 | # define hostfs_driver_type(drive) (STORAGE_ATA_NUM) | 54 | # define hostfs_driver_type(drive) (STORAGE_ATA_NUM) |
55 | # elif (CONFIG_STORAGE & STORAGE_SD) | 55 | # elif (CONFIG_STORAGE & STORAGE_SD) |
56 | # define hostfs_driver_type(drive) (STORAGE_SD_NUM) | 56 | # define hostfs_driver_type(drive) (STORAGE_SD_NUM) |
57 | # elif (CONFIG_STORAGE & STORAGE_USB) | ||
58 | # define hostfs_driver_type(drive) (STORAGE_USB_NUM) | ||
57 | # elif (CONFIG_STORAGE & STORAGE_MMC) | 59 | # elif (CONFIG_STORAGE & STORAGE_MMC) |
58 | # define hostfs_driver_type(drive) (STORAGE_MMC_NUM) | 60 | # define hostfs_driver_type(drive) (STORAGE_MMC_NUM) |
59 | # elif (CONFIG_STORAGE & STORAGE_NAND) | 61 | # elif (CONFIG_STORAGE & STORAGE_NAND) |
diff --git a/firmware/export/mv.h b/firmware/export/mv.h index ec7b2efdbd..3657ef6c98 100644 --- a/firmware/export/mv.h +++ b/firmware/export/mv.h | |||
@@ -70,6 +70,9 @@ | |||
70 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) | 70 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) |
71 | #define RAMDISK_VOL_DEC "RAMDisk" | 71 | #define RAMDISK_VOL_DEC "RAMDisk" |
72 | #endif | 72 | #endif |
73 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
74 | #define USB_VOL_DEC "USB" | ||
75 | #endif | ||
73 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) | 76 | #if (CONFIG_STORAGE & STORAGE_HOSTFS) |
74 | #ifndef HOSTFS_VOL_DEC /* overridable */ | 77 | #ifndef HOSTFS_VOL_DEC /* overridable */ |
75 | #define HOSTFS_VOL_DEC DEFAULT_VOL_DEC | 78 | #define HOSTFS_VOL_DEC DEFAULT_VOL_DEC |
diff --git a/firmware/export/storage.h b/firmware/export/storage.h index e6424f7b03..ee1423c93a 100644 --- a/firmware/export/storage.h +++ b/firmware/export/storage.h | |||
@@ -34,6 +34,9 @@ | |||
34 | #if (CONFIG_STORAGE & STORAGE_SD) | 34 | #if (CONFIG_STORAGE & STORAGE_SD) |
35 | #include "sd.h" | 35 | #include "sd.h" |
36 | #endif | 36 | #endif |
37 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
38 | // TODO: Doesn't matter until we're native | ||
39 | #endif | ||
37 | #if (CONFIG_STORAGE & STORAGE_MMC) | 40 | #if (CONFIG_STORAGE & STORAGE_MMC) |
38 | #include "mmc.h" | 41 | #include "mmc.h" |
39 | #endif | 42 | #endif |
@@ -97,6 +100,9 @@ int nand_event(long id, intptr_t data); | |||
97 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) | 100 | #if (CONFIG_STORAGE & STORAGE_RAMDISK) |
98 | int ramdisk_event(long id, intptr_t data); | 101 | int ramdisk_event(long id, intptr_t data); |
99 | #endif | 102 | #endif |
103 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
104 | // int usb_event(long id, intptr_t data); // TODO: Implement | ||
105 | #endif | ||
100 | 106 | ||
101 | struct storage_info | 107 | struct storage_info |
102 | { | 108 | { |
@@ -278,6 +284,8 @@ static inline void storage_sleep(void) {}; | |||
278 | #define storage_present(drive) ramdisk_present(IF_MD(drive)) | 284 | #define storage_present(drive) ramdisk_present(IF_MD(drive)) |
279 | #endif | 285 | #endif |
280 | #define storage_driver_type(drive) (STORAGE_RAMDISK_NUM) | 286 | #define storage_driver_type(drive) (STORAGE_RAMDISK_NUM) |
287 | #elif (CONFIG_STORAGE & STORAGE_USB) | ||
288 | // TODO: Eventually fix me | ||
281 | #else | 289 | #else |
282 | //#error No storage driver! | 290 | //#error No storage driver! |
283 | #endif | 291 | #endif |
diff --git a/firmware/target/hosted/fiio/system-fiio.c b/firmware/target/hosted/fiio/system-fiio.c index f011ceea75..46a4d0f835 100644 --- a/firmware/target/hosted/fiio/system-fiio.c +++ b/firmware/target/hosted/fiio/system-fiio.c | |||
@@ -174,7 +174,11 @@ int volume_drive(int drive) | |||
174 | #ifdef CONFIG_STORAGE_MULTI | 174 | #ifdef CONFIG_STORAGE_MULTI |
175 | int hostfs_driver_type(int drive) | 175 | int hostfs_driver_type(int drive) |
176 | { | 176 | { |
177 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
178 | return drive > 0 ? STORAGE_USB_NUM : STORAGE_HOSTFS_NUM; | ||
179 | #else | ||
177 | return drive > 0 ? STORAGE_SD_NUM : STORAGE_HOSTFS_NUM; | 180 | return drive > 0 ? STORAGE_SD_NUM : STORAGE_HOSTFS_NUM; |
181 | #endif | ||
178 | } | 182 | } |
179 | #endif /* CONFIG_STORAGE_MULTI */ | 183 | #endif /* CONFIG_STORAGE_MULTI */ |
180 | 184 | ||
diff --git a/firmware/target/hosted/system-hosted.c b/firmware/target/hosted/system-hosted.c index cad84ac868..f485dc4c15 100644 --- a/firmware/target/hosted/system-hosted.c +++ b/firmware/target/hosted/system-hosted.c | |||
@@ -130,7 +130,7 @@ void system_exception_wait(void) | |||
130 | bool hostfs_removable(IF_MD_NONVOID(int drive)) | 130 | bool hostfs_removable(IF_MD_NONVOID(int drive)) |
131 | { | 131 | { |
132 | #ifdef HAVE_MULTIDRIVE | 132 | #ifdef HAVE_MULTIDRIVE |
133 | if (drive > 0) /* Active LOW */ | 133 | if (drive > 0) |
134 | return true; | 134 | return true; |
135 | else | 135 | else |
136 | #endif | 136 | #endif |
@@ -157,7 +157,11 @@ int volume_drive(int drive) | |||
157 | #ifdef CONFIG_STORAGE_MULTI | 157 | #ifdef CONFIG_STORAGE_MULTI |
158 | int hostfs_driver_type(int drive) | 158 | int hostfs_driver_type(int drive) |
159 | { | 159 | { |
160 | #if (CONFIG_STORAGE & STORAGE_USB) | ||
161 | return drive > 0 ? STORAGE_USB_NUM : STORAGE_HOSTFS_NUM; | ||
162 | #else | ||
160 | return drive > 0 ? STORAGE_SD_NUM : STORAGE_HOSTFS_NUM; | 163 | return drive > 0 ? STORAGE_SD_NUM : STORAGE_HOSTFS_NUM; |
164 | #endif | ||
161 | } | 165 | } |
162 | #endif /* CONFIG_STORAGE_MULTI */ | 166 | #endif /* CONFIG_STORAGE_MULTI */ |
163 | 167 | ||
@@ -185,4 +189,3 @@ bool volume_present(int volume) | |||
185 | return hostfs_present(volume); | 189 | return hostfs_present(volume); |
186 | } | 190 | } |
187 | #endif | 191 | #endif |
188 | |||