diff options
author | Mark Arigo <markarigo@gmail.com> | 2007-09-27 02:50:50 +0000 |
---|---|---|
committer | Mark Arigo <markarigo@gmail.com> | 2007-09-27 02:50:50 +0000 |
commit | 61a83c02a3f0812c54cc9c41d2c1002af4c63f9e (patch) | |
tree | 9fe5725b0f0dcfd8468e53799e6a00d0743699de | |
parent | d7c8cff3d827b5de1be4968aec623844a84a1b8c (diff) | |
download | rockbox-61a83c02a3f0812c54cc9c41d2c1002af4c63f9e.tar.gz rockbox-61a83c02a3f0812c54cc9c41d2c1002af4c63f9e.zip |
Sansa c200: fix system_reboot with some magic from the OF. Reboot to the OF when usb is inserted.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14862 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/target/arm/sandisk/ata-c200_e200.c | 4 | ||||
-rw-r--r-- | firmware/target/arm/system-pp502x.c | 9 | ||||
-rw-r--r-- | firmware/target/arm/usb-fw-pp502x.c | 3 |
3 files changed, 15 insertions, 1 deletions
diff --git a/firmware/target/arm/sandisk/ata-c200_e200.c b/firmware/target/arm/sandisk/ata-c200_e200.c index addc490417..7cf317109e 100644 --- a/firmware/target/arm/sandisk/ata-c200_e200.c +++ b/firmware/target/arm/sandisk/ata-c200_e200.c @@ -1087,6 +1087,10 @@ void ata_sleep(void) { } +void ata_sleepnow(void) +{ +} + void ata_spin(void) { } diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c index 64153eefc4..a234edab8c 100644 --- a/firmware/target/arm/system-pp502x.c +++ b/firmware/target/arm/system-pp502x.c @@ -255,7 +255,16 @@ void system_init(void) void system_reboot(void) { /* Reboot */ +#ifdef SANSA_C200 + CACHE_CTL &= ~0x10; + + /* Magic used by the c200 OF. The BL uses a magic value of 0x23066b7b. + In both cases, the OF executes these 2 commands from iram. */ + outl(0x23066000, 0x70000008); + DEV_RS = DEV_SYSTEM; +#else DEV_RS |= DEV_SYSTEM; +#endif } int system_memory_guard(int newmode) diff --git a/firmware/target/arm/usb-fw-pp502x.c b/firmware/target/arm/usb-fw-pp502x.c index be37b8b710..a5afc20056 100644 --- a/firmware/target/arm/usb-fw-pp502x.c +++ b/firmware/target/arm/usb-fw-pp502x.c @@ -100,7 +100,8 @@ void usb_enable(bool on) handling, which should be the same for all PP502x targets. */ if (on) { -#if defined(IPOD_ARCH) || defined(IRIVER_H10) || defined (IRIVER_H10_5GB) +#if defined(IPOD_ARCH) || defined(IRIVER_H10) || defined (IRIVER_H10_5GB) ||\ + defined(SANSA_C200) /* For the H10 and iPod, we can only do one thing with USB mode - reboot into the flash-based disk-mode. This does not return. */ |