hw/sd/sdcard: Add eMMC 'boot-partition-size' property
Avoid hardcoding 1MiB boot size in EXT_CSD_BOOT_MULT, expose it as 'boot-partition-size' QOM property. By default, do not use any size. The board is responsible to set the boot partition size property. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240712162719.88165-10-philmd@linaro.org>
This commit is contained in:
parent
a1e0461995
commit
c3561ab624
@ -135,6 +135,7 @@ struct SDState {
|
||||
/* Static properties */
|
||||
|
||||
uint8_t spec_version;
|
||||
uint64_t boot_part_size;
|
||||
BlockBackend *blk;
|
||||
|
||||
const SDProto *proto;
|
||||
@ -492,7 +493,8 @@ static void emmc_set_ext_csd(SDState *sd, uint64_t size)
|
||||
/* Properties segment (RO) */
|
||||
sd->ext_csd[EXT_CSD_S_CMD_SET] = 0b1; /* supported command sets */
|
||||
sd->ext_csd[EXT_CSD_BOOT_INFO] = 0x0; /* Boot information */
|
||||
sd->ext_csd[EXT_CSD_BOOT_MULT] = 0x8; /* Boot partition size. 128KB unit */
|
||||
/* Boot partition size. 128KB unit */
|
||||
sd->ext_csd[EXT_CSD_BOOT_MULT] = sd->boot_part_size / (128 * KiB);
|
||||
sd->ext_csd[EXT_CSD_ACC_SIZE] = 0x1; /* Access size */
|
||||
sd->ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] = 0x01; /* HC Erase unit size */
|
||||
sd->ext_csd[EXT_CSD_ERASE_TIMEOUT_MULT] = 0x01; /* HC erase timeout */
|
||||
@ -2704,6 +2706,7 @@ static Property sd_properties[] = {
|
||||
};
|
||||
|
||||
static Property emmc_properties[] = {
|
||||
DEFINE_PROP_UINT64("boot-partition-size", SDState, boot_part_size, 0),
|
||||
DEFINE_PROP_END_OF_LIST()
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user