Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#11958 - iPod Classic thick 160GB CE-ATA hack

Attached to Project: Rockbox
Opened by Michael Sparmann (TheSeven) - Tuesday, 22 February 2011, 01:04 GMT+2
Last edited by Michael Sparmann (TheSeven) - Monday, 07 March 2011, 21:25 GMT+2
Task Type Patches
Category Drivers
Status Closed
Assigned To No-one
Player Type Another
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Private No

Details

Here's a working but terribly slow and invasive hack to get the thick 160GB iPod Classic drive working.
This involves multiple core changes:
- Get rid of all on-stack sector buffers
- Align the remaining sector buffers to cacheline boundaries
- Fork the ATA driver to support CE-ATA as well

I currently believe that the slowness is mainly coming from the low sleep() resolution in Rockbox, and maybe over-yielding.

This patch is currently rather awful and will probably need lots of work before it can be included. Be warned.
   rockbox-ceata-hack.patch (92.3 KiB)
 firmware/common/disk.c                                  |    4 
 firmware/common/file.c                                  |    6 
 firmware/drivers/fat.c                                  |  154 +-
 firmware/export/config/ipod6g.h                         |    9 
 firmware/export/fat.h                                   |    7 
 firmware/export/s5l8702.h                               |  210 ++
 firmware/font.c                                         |    5 
 firmware/include/dir_uncached.h                         |    4 
 firmware/SOURCES                                        |    4 
 firmware/target/arm/s5l8702/ipod6g/ata-ipod6g.c         |  197 --
 firmware/target/arm/s5l8702/ipod6g/ata-target.h         |   47 
 firmware/target/arm/s5l8702/ipod6g/mmcdefs-target.h     |  345 ++++
 firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c | 1142 ++++++++++++++++
 firmware/target/arm/s5l8702/system-s5l8702.c            |    6 
 14 files changed, 1844 insertions(+), 296 deletions(-)

This task depends upon

Closed by  Michael Sparmann (TheSeven)
Monday, 07 March 2011, 21:25 GMT+2
Reason for closing:  Accepted
Additional comments about closing:  Has been committed some time ago
Comment by Michael Sparmann (TheSeven) - Sunday, 27 February 2011, 03:41 GMT+2
I've fixed some more bugs and split this thing apart into a core patch (FAT rework) and a target patch (ATA driver).
   fatrework-v0.1.patch (22.5 KiB)
 firmware/common/disk.c          |    4 -
 firmware/common/file.c          |   29 +++++--
 firmware/drivers/fat.c          |  156 +++++++++++++++++++++++++++++++++-------
 firmware/export/fat.h           |    7 +
 firmware/font.c                 |    5 -
 firmware/include/dir_uncached.h |    4 -
 firmware/usb.c                  |    2 
 firmware/usbstack/usb_storage.c |    7 +
 8 files changed, 173 insertions(+), 41 deletions(-)

   ceata-v0.1.patch (73.5 KiB)
 firmware/export/config/ipod6g.h                         |   11 
 firmware/export/s5l8702.h                               |  210 ++
 firmware/SOURCES                                        |    4 
 firmware/target/arm/s5l8700/app.lds                     |    2 
 firmware/target/arm/s5l8702/app.lds                     |    2 
 firmware/target/arm/s5l8702/ipod6g/ata-ipod6g.c         |  197 --
 firmware/target/arm/s5l8702/ipod6g/ata-target.h         |   47 
 firmware/target/arm/s5l8702/ipod6g/mmcdefs-target.h     |  345 ++++
 firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c | 1142 ++++++++++++++++
 firmware/target/arm/s5l8702/system-s5l8702.c            |    6 
 10 files changed, 1702 insertions(+), 264 deletions(-)

Loading...