rockbox/bootloader
Solomon Peachy ad6cc2f099 ipod6g: Prevent booting into OF if it does not support LBA48 and drive needs it
Early 6th gen ipods (80GB and 160GB "fat") are limited to LBA28
which results in a hard upper limit of 128GiB on the storage size.
The later 120GB model also shares this limitation.  These are identified
by HwVr of 0x00130000 and 0x00130100, respectively.

The final revision of the iPod Classic series (160GB "thin") does not
have this limitation, and can be identified by a HwVr of 0x00130200 or
0x00130300.

This is strictly an issue with Apple's stock firmware, and not the
hardware, and Rockbox will happily utilize the full capabiltiies of any
installed storage device.  Unfortunately, if you boot into the stock
Apple firmware, said firmware will destructively trash the partition
table and filesystem.

Consequently, the Rockbox bootloader will now check if the installed
drive requires LBA48, making sure the flashed firmware also supports
LBA48.  If not, we will disallow booting into the OF (including disk mode)
altogether.  This check can be overridden by holding down LEFT, at which
point you get to keep all the pieces.

Note: While Apple never released firmware without these limitaitons on
the older models, there is a way to update to update these to the newer
firmware.  This requires altering the stored HwVr, so it is safe to use
the HwVr as a proxy for the installe firmware capabilities.

Change-Id: Icdd5754f2a3d38c6de67fc7565fabc7aa20f19b3
2025-11-23 13:41:32 -05:00
..
x1000 ErosQNative: Re-enable OF recovery 2024-08-27 09:23:53 -04:00
bootloader.make bootloader: Work around linker wonkiness that broke PP bootloader builds. 2020-10-13 19:02:27 -04:00
common.c bootloader: Fix red on hosted bootloaders 2025-04-17 08:31:33 -04:00
common.h Initial commit for the Sony NWZ linux port 2017-09-05 21:42:12 +02:00
creativezvm.c h300, Others Bugfix Bootloader backlight_init() 2020-11-13 18:08:01 +00:00
echoplayer.c New WIP port: Echo R1 2025-04-22 20:08:08 -04:00
fat32format.c mi4: replace chksum_crc32 with crc_32r 2021-06-21 09:36:54 +00:00
format.c ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04:00
format.h ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04:00
gigabeat-s.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
gigabeat.c arm: split ARM cache maintenance functions to separate header 2025-04-21 12:39:47 -04:00
hibyos_linux.c surfansf28: More fixes: 2025-05-06 09:56:03 -04:00
iaudio_coldfire.c coldfire: Fix bootloader builds on GCC8 2024-04-26 07:21:46 -04:00
imx233.c Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
ipod-s5l87xx.c ipod6g: Prevent booting into OF if it does not support LBA48 and drive needs it 2025-11-23 13:41:32 -05:00
ipod.c storage: report physical sector multiplier via storage_get_info() 2025-11-17 08:57:43 -05:00
ipodnano2g.c Bugfix Backlight_init should be called after lcd_init 2020-11-13 13:57:39 -05:00
iriver_h1x0.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
iriver_h300.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
lyre_proto1.c Bootloaders need the reacharound to get at the internal goods 2014-08-08 02:28:11 -04:00
main-e200r-installer.c mi4: replace chksum_crc32 with crc_32r 2021-06-21 09:36:54 +00:00
main-pp.c Sansa E200v1 Bootloader ensure USB unplug is detected 2021-10-04 16:42:36 -04:00
main-ppsansawipe.c Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
Makefile [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
meizu_m3.c h300, Others Bugfix Bootloader backlight_init() 2020-11-13 18:08:01 +00:00
meizu_m6sl.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
meizu_m6sp.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
mini2440.c h300, Others Bugfix Bootloader backlight_init() 2020-11-13 18:08:01 +00:00
mpio_hd200_hd300.c firmware: minor screendump related cleanups 2022-03-24 18:59:50 -04:00
mrobe500.c mrobe500 bootloader fix 2020-10-13 21:33:55 -04:00
nwz_linux.c remove inaccurate comment 2017-09-18 09:30:33 +02:00
ondavx747.c ondavx747: Fix bootloader build 2020-09-03 20:26:23 +00:00
rk27xx.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
samsung_yps3.c Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
sansa_as3525.c Fix AMSv2 variant 1 detection if rockbox loaded from SD card 2016-04-22 20:43:45 +00:00
sansaconnect.c Sansa Connect: Power off LCD to save power 2021-07-05 15:19:52 +02:00
sansaview.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
show_logo.c Sansa e200v2: bootloader: fit size 2024-04-01 11:02:04 -04:00
snprintf.c ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04:00
SOURCES WIP hosted port to the Surfans F28 2025-05-04 18:34:22 -04:00
telechips.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
xduoox3.c xduoox3: Completely strip USB support out of the bootloader. 2024-07-03 16:51:58 -04:00