01.03.2020 13:50, Avri Altman пишет: > Hi, >> >> >> In order to support parsing of NVIDIA Tegra Partition Table format, we >> need to know the BOOT_SIZE_MULT value of the Extended CSD register >> because >> NVIDIA's bootloader linearizes the boot0/boot1/main partitions into a >> single virtual space, and thus, all partition addresses are shifted by >> the size of boot0 + boot1 partitions. >> >> Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> >> --- >> drivers/mmc/core/mmc.c | 2 ++ >> include/linux/mmc/card.h | 1 + >> 2 files changed, 3 insertions(+) >> >> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c >> index f6912ded652d..88e5b4224d3c 100644 >> --- a/drivers/mmc/core/mmc.c >> +++ b/drivers/mmc/core/mmc.c >> @@ -417,6 +417,8 @@ static int mmc_decode_ext_csd(struct mmc_card >> *card, u8 *ext_csd) >> ext_csd[EXT_CSD_ERASE_TIMEOUT_MULT]; >> card->ext_csd.raw_hc_erase_grp_size = >> ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]; >> + card->ext_csd.raw_boot_mult = >> + ext_csd[EXT_CSD_BOOT_MULT]; > You might want at this point multiply it by 128K, > And get rid of: part_size = ext_csd[EXT_CSD_BOOT_MULT] << 17; > Below... But it's not a *raw* _boot_mult anymore then. I'm not sure that it will be a worthwhile change.