Make builds with MAX_PHYS_SECTOR_SIZE defined (ipod video) work with larger sizes...
commit2e8cd4cfbf812bddad31de70efabf4c131914a04
authortorne <torne@a1c6a512-1295-4272-9138-f99709370657>
Wed, 14 Apr 2010 14:40:03 +0000 (14 14:40 +0000)
committertorne <torne@a1c6a512-1295-4272-9138-f99709370657>
Wed, 14 Apr 2010 14:40:03 +0000 (14 14:40 +0000)
treedc2fa17d820ce4fee1413ef16edffe301c586697
parentdf812732bed8b521fd8b61dd29ef806bfe25f3b0
Make builds with MAX_PHYS_SECTOR_SIZE defined (ipod video) work with larger sizes if the drive is sane.

The ipod video build has a MAX_PHYS_SECTOR_SIZE of 1024. This meant it would refuse to boot on drives with sectors larger than 1024 bytes, even if those drives don't actually require the workaround originally intended for the 80GB 5.5G's drive.

ata_init() will now, if the drive claims to have >512 byte sectors, try and read sector 1 to determine if the drive is capable of emulating 512-byte sector accesses. If this succeeds, we assume the drive is better at it than us (this is very likely to be true) and set phys_sector_mult to 1, disabling the workaround and ensuring the drive will work regardless of sector size.

Making use of this change requires that you build and install an updated bootloader as well as the main build; a new iPod bootloader will be released soon, so if you can't do this yourself, be patient.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25646 a1c6a512-1295-4272-9138-f99709370657
firmware/drivers/ata.c