
Frederic Leroy fredo@starox.org writes:
From: Frédéric Leroy fredo@starox.org
With CONFIG_SYS_64BIT_LBA, lbaint_t gets defined as a 64-bit type, which is required to represent block numbers for storage devices that exceed 2TiB (the block size usually is 512B), e.g. recent hard drives
We now use lbaint_t for partition offset to reflect the lbaint_t change, and access partitions beyond or crossing the 2.1TiB limit. This required changes to signature of ext4fs_devread(), and type of all variables relatives to block sector.
ext2/ext4 fs uses logical block represented by a 32 bit value. Logical block is a multiple of device block sector. To avoid overflow problem when calling ext4fs_devread(), we need to cast the sector parameter.
Thanks for the patch!
Reading a file on an ext4 file system located on a partition starting beyond the 2TiB limit on a SATA hard disk attached to a CuBox Pro works fine now.
Tested-by: Sascha Silbe t-uboot@infra-silbe.de
You'll probably have to add your Signed-off-by before your patch can be merged.
A minor nitpick: The limit is at 2TiB (2^41 Bytes), which is roughly 2.2TB (2.2 * 10^12 Bytes).
Sascha