From: Havard Skinnemoen via <qemu-devel@nongnu.org>
To: peter.maydell@linaro.org, f4bug@amsat.org
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org,
Avi.Fishman@nuvoton.com, kfting@nuvoton.com,
"Havard Skinnemoen" <hskinnemoen@google.com>,
"Cédric Le Goater" <clg@kaod.org>
Subject: [PATCH v8 11/14] hw/arm: Wire up BMC boot flash for npcm750-evb and quanta-gsj
Date: Mon, 24 Aug 2020 17:17:08 -0700 [thread overview]
Message-ID: <20200825001711.1340443-12-hskinnemoen@google.com> (raw)
In-Reply-To: <20200825001711.1340443-1-hskinnemoen@google.com>
This allows these NPCM7xx-based boards to boot from a flash image, e.g.
one built with OpenBMC. For example like this:
IMAGE=${OPENBMC}/build/tmp/deploy/images/gsj/image-bmc
qemu-system-arm -machine quanta-gsj -nographic \
-drive file=${IMAGE},if=mtd,bus=0,unit=0,format=raw,snapshot=on
Reviewed-by: Tyrone Ting <kfting@nuvoton.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Tested-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Havard Skinnemoen <hskinnemoen@google.com>
---
hw/arm/npcm7xx_boards.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/hw/arm/npcm7xx_boards.c b/hw/arm/npcm7xx_boards.c
index b67e45e913..70e5c34216 100644
--- a/hw/arm/npcm7xx_boards.c
+++ b/hw/arm/npcm7xx_boards.c
@@ -19,6 +19,7 @@
#include "hw/arm/npcm7xx.h"
#include "hw/core/cpu.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "qemu/units.h"
@@ -55,6 +56,22 @@ static void npcm7xx_load_bootrom(MachineState *machine, NPCM7xxState *soc)
}
}
+static void npcm7xx_connect_flash(NPCM7xxFIUState *fiu, int cs_no,
+ const char *flash_type, DriveInfo *dinfo)
+{
+ DeviceState *flash;
+ qemu_irq flash_cs;
+
+ flash = qdev_new(flash_type);
+ if (dinfo) {
+ qdev_prop_set_drive(flash, "drive", blk_by_legacy_dinfo(dinfo));
+ }
+ qdev_realize_and_unref(flash, BUS(fiu->spi), &error_fatal);
+
+ flash_cs = qdev_get_gpio_in_named(flash, SSI_GPIO_CS, 0);
+ qdev_connect_gpio_out_named(DEVICE(fiu), "cs", cs_no, flash_cs);
+}
+
static void npcm7xx_connect_dram(NPCM7xxState *soc, MemoryRegion *dram)
{
memory_region_add_subregion(get_system_memory(), NPCM7XX_DRAM_BA, dram);
@@ -92,6 +109,7 @@ static void npcm750_evb_init(MachineState *machine)
qdev_realize(DEVICE(soc), NULL, &error_fatal);
npcm7xx_load_bootrom(machine, soc);
+ npcm7xx_connect_flash(&soc->fiu[0], 0, "w25q256", drive_get(IF_MTD, 0, 0));
npcm7xx_load_kernel(machine, soc);
}
@@ -104,6 +122,8 @@ static void quanta_gsj_init(MachineState *machine)
qdev_realize(DEVICE(soc), NULL, &error_fatal);
npcm7xx_load_bootrom(machine, soc);
+ npcm7xx_connect_flash(&soc->fiu[0], 0, "mx25l25635e",
+ drive_get(IF_MTD, 0, 0));
npcm7xx_load_kernel(machine, soc);
}
--
2.28.0.297.g1956fa8f8d-goog
next prev parent reply other threads:[~2020-08-25 0:27 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-25 0:16 [PATCH v8 00/14] Add Nuvoton NPCM730/NPCM750 SoCs and two BMC machines Havard Skinnemoen via
2020-08-25 0:16 ` [PATCH v8 01/14] hw/misc: Add NPCM7xx System Global Control Registers device model Havard Skinnemoen via
2020-08-25 0:16 ` [PATCH v8 02/14] hw/misc: Add NPCM7xx Clock Controller " Havard Skinnemoen via
2020-09-04 9:32 ` Philippe Mathieu-Daudé
2020-09-04 22:02 ` Havard Skinnemoen
2020-09-04 22:38 ` Havard Skinnemoen
2020-09-07 13:40 ` Philippe Mathieu-Daudé
2020-09-07 17:58 ` Havard Skinnemoen
2020-08-25 0:17 ` [PATCH v8 03/14] hw/timer: Add NPCM7xx Timer " Havard Skinnemoen via
2020-08-25 0:17 ` [PATCH v8 04/14] hw/arm: Add NPCM730 and NPCM750 SoC models Havard Skinnemoen via
2020-08-25 0:17 ` [PATCH v8 05/14] hw/arm: Add two NPCM7xx-based machines Havard Skinnemoen via
2020-08-25 0:17 ` [PATCH v8 06/14] roms: Add virtual Boot ROM for NPCM7xx SoCs Havard Skinnemoen via
2020-09-04 9:24 ` Philippe Mathieu-Daudé
2020-08-25 0:17 ` [PATCH v8 07/14] hw/arm: Load -bios image as a boot ROM for npcm7xx Havard Skinnemoen via
2020-09-03 18:59 ` Philippe Mathieu-Daudé
2020-09-10 23:52 ` Havard Skinnemoen
2020-08-25 0:17 ` [PATCH v8 08/14] hw/nvram: NPCM7xx OTP device model Havard Skinnemoen via
2020-09-07 19:47 ` Alexander Bulekov
2020-09-07 19:57 ` Alexander Bulekov
2020-09-07 21:52 ` Havard Skinnemoen
2020-08-25 0:17 ` [PATCH v8 09/14] hw/mem: Stubbed out NPCM7xx Memory Controller model Havard Skinnemoen via
2020-08-25 0:17 ` [PATCH v8 10/14] hw/ssi: NPCM7xx Flash Interface Unit device model Havard Skinnemoen via
2020-08-25 0:17 ` Havard Skinnemoen via [this message]
2020-08-25 0:17 ` [PATCH v8 12/14] hw/arm/npcm7xx: add board setup stub for CPU and UART clocks Havard Skinnemoen via
2020-09-04 9:34 ` Philippe Mathieu-Daudé
2020-08-25 0:17 ` [PATCH v8 13/14] docs/system: Add Nuvoton machine documentation Havard Skinnemoen via
2020-09-03 19:11 ` Philippe Mathieu-Daudé
2020-08-25 0:17 ` [PATCH v8 14/14] tests/acceptance: console boot tests for quanta-gsj Havard Skinnemoen via
2020-09-03 18:20 ` [PATCH v8 00/14] Add Nuvoton NPCM730/NPCM750 SoCs and two BMC machines Philippe Mathieu-Daudé
2020-09-08 15:02 ` Alexander Bulekov
2020-09-08 15:52 ` Philippe Mathieu-Daudé
2020-09-08 16:58 ` Philippe Mathieu-Daudé
2020-09-08 19:52 ` Havard Skinnemoen
2020-09-09 1:32 ` Havard Skinnemoen
2020-09-11 0:03 ` Havard Skinnemoen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200825001711.1340443-12-hskinnemoen@google.com \
--to=qemu-devel@nongnu.org \
--cc=Avi.Fishman@nuvoton.com \
--cc=clg@kaod.org \
--cc=f4bug@amsat.org \
--cc=hskinnemoen@google.com \
--cc=kfting@nuvoton.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).