[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapp
From: |
Cédric Le Goater |
Subject: |
[PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping |
Date: |
Thu, 4 Jul 2024 07:36:48 +0200 |
From: Cédric Le Goater <clg@kaod.org>
When the boot-from-eMMC HW strapping bit is set, use the 'boot-config'
property to set the boot config register to boot from the first boot
area partition of the eMMC device.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
hw/arm/aspeed.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 756deb91efd1..135f4eb72215 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -327,7 +327,8 @@ void aspeed_board_init_flashes(AspeedSMCState *s, const
char *flashtype,
}
}
-static void sdhci_attach_drive(SDHCIState *sdhci, DriveInfo *dinfo, bool emmc)
+static void sdhci_attach_drive(SDHCIState *sdhci, DriveInfo *dinfo, bool emmc,
+ bool boot_emmc)
{
DeviceState *card;
@@ -335,6 +336,9 @@ static void sdhci_attach_drive(SDHCIState *sdhci, DriveInfo
*dinfo, bool emmc)
return;
}
card = qdev_new(emmc ? TYPE_EMMC : TYPE_SD_CARD);
+ if (emmc) {
+ qdev_prop_set_uint8(card, "boot-config", boot_emmc ? 0x48 : 0x0);
+ }
qdev_prop_set_drive_err(card, "drive", blk_by_legacy_dinfo(dinfo),
&error_fatal);
qdev_realize_and_unref(card,
@@ -365,6 +369,7 @@ static void aspeed_machine_init(MachineState *machine)
AspeedSoCClass *sc;
int i;
DriveInfo *emmc0 = NULL;
+ bool boot_emmc;
bmc->soc = ASPEED_SOC(object_new(amc->soc_name));
object_property_add_child(OBJECT(machine), "soc", OBJECT(bmc->soc));
@@ -437,19 +442,21 @@ static void aspeed_machine_init(MachineState *machine)
for (i = 0; i < bmc->soc->sdhci.num_slots; i++) {
sdhci_attach_drive(&bmc->soc->sdhci.slots[i],
- drive_get(IF_SD, 0, i), false);
+ drive_get(IF_SD, 0, i), false, false);
}
+ boot_emmc = sc->boot_from_emmc(bmc->soc);
+
if (bmc->soc->emmc.num_slots) {
emmc0 = drive_get(IF_SD, 0, bmc->soc->sdhci.num_slots);
- sdhci_attach_drive(&bmc->soc->emmc.slots[0], emmc0, true);
+ sdhci_attach_drive(&bmc->soc->emmc.slots[0], emmc0, true, boot_emmc);
}
if (!bmc->mmio_exec) {
DeviceState *dev = ssi_get_cs(bmc->soc->fmc.spi, 0);
BlockBackend *fmc0 = dev ? m25p80_get_blk(dev) : NULL;
- if (fmc0) {
+ if (fmc0 && !boot_emmc) {
uint64_t rom_size = memory_region_size(&bmc->soc->spi_boot);
aspeed_install_boot_rom(bmc, fmc0, rom_size);
} else if (emmc0) {
--
2.45.2
- [PATCH 0/8] aspeed: Add boot from eMMC support (AST2600), Cédric Le Goater, 2024/07/04
- [PATCH 1/8] aspeed: Change type of eMMC device, Cédric Le Goater, 2024/07/04
- [PATCH 2/8] aspeed: Load eMMC first boot area as a boot rom, Cédric Le Goater, 2024/07/04
- [PATCH 3/8] aspeed/scu: Add boot-from-eMMC HW strapping bit for AST2600 SoC, Cédric Le Goater, 2024/07/04
- [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping,
Cédric Le Goater <=
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Andrew Jeffery, 2024/07/04
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Cédric Le Goater, 2024/07/05
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Philippe Mathieu-Daudé, 2024/07/05
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Philippe Mathieu-Daudé, 2024/07/05
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Philippe Mathieu-Daudé, 2024/07/09
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Cédric Le Goater, 2024/07/10
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Philippe Mathieu-Daudé, 2024/07/10
- Re: [PATCH 5/8] aspeed: Set eMMC 'boot-config' property to reflect HW strapping, Cédric Le Goater, 2024/07/10
[PATCH 6/8] aspeed: Add boot-from-eMMC HW strapping bit to rainier-bmc machine, Cédric Le Goater, 2024/07/04