Skip to content

Commit

Permalink
roms: Add virtual Boot ROM for NPCM7xx SoCs
Browse files Browse the repository at this point in the history
This is a minimalistic boot ROM written specifically for use with QEMU.
It supports loading the second-stage loader from SPI flash into RAM, SMP
boot, and not much else.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Havard Skinnemoen <hskinnemoen@google.com>
Message-id: 20200911052101.2602693-7-hskinnemoen@google.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
  • Loading branch information
hskinnemoen authored and pm215 committed Sep 14, 2020
1 parent b773acf commit d1cb5ed
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,6 @@
[submodule "meson"]
path = meson
url = https://github.com/mesonbuild/meson/
[submodule "roms/vbootrom"]
path = roms/vbootrom
url = https://github.com/google/vbootrom.git
2 changes: 2 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,8 @@ L: qemu-arm@nongnu.org
S: Supported
F: hw/*/npcm7xx*
F: include/hw/*/npcm7xx*
F: pc-bios/npcm7xx_bootrom.bin
F: roms/vbootrom

nSeries
M: Andrzej Zaborowski <balrogg@gmail.com>
Expand Down
6 changes: 6 additions & 0 deletions pc-bios/README
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,9 @@
("Simplified BSD License" or "FreeBSD License", SPDX: BSD-2-Clause). OpenSBI
source code also contains code reused from other projects desribed here:
https://github.com/riscv/opensbi/blob/master/ThirdPartyNotices.md.

- npcm7xx_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for Nuvoton
NPCM7xx BMC devices. It currently implements the bare minimum to load, parse,
initialize and run boot images stored in SPI flash, but may grow more
features over time as needed. The source code is available at:
https://github.com/google/vbootrom
1 change: 1 addition & 0 deletions pc-bios/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ blobs = files(
'opensbi-riscv64-generic-fw_dynamic.bin',
'opensbi-riscv32-generic-fw_dynamic.elf',
'opensbi-riscv64-generic-fw_dynamic.elf',
'npcm7xx_bootrom.bin',
)

if install_blobs
Expand Down
Binary file added pc-bios/npcm7xx_bootrom.bin
Binary file not shown.
7 changes: 7 additions & 0 deletions roms/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ find-cross-gcc = $(firstword $(wildcard $(patsubst %ld,%gcc,$(call find-cross-ld
# finally strip off path + toolname so we get the prefix
find-cross-prefix = $(subst gcc,,$(notdir $(call find-cross-gcc,$(1))))

arm_cross_prefix := $(call find-cross-prefix,arm)
powerpc64_cross_prefix := $(call find-cross-prefix,powerpc64)
powerpc_cross_prefix := $(call find-cross-prefix,powerpc)
x86_64_cross_prefix := $(call find-cross-prefix,x86_64)
Expand Down Expand Up @@ -63,6 +64,7 @@ default help:
@echo " skiboot -- update skiboot.lid"
@echo " u-boot.e500 -- update u-boot.e500"
@echo " u-boot.sam460 -- update u-boot.sam460"
@echo " npcm7xx_bootrom -- update vbootrom for npcm7xx"
@echo " efi -- update UEFI (edk2) platform firmware"
@echo " opensbi32-generic -- update OpenSBI for 32-bit generic machine"
@echo " opensbi64-generic -- update OpenSBI for 64-bit generic machine"
Expand Down Expand Up @@ -185,6 +187,10 @@ bios-microvm:
$(MAKE) -C qboot
cp qboot/bios.bin ../pc-bios/bios-microvm.bin

npcm7xx_bootrom:
$(MAKE) -C vbootrom CROSS_COMPILE=$(arm_cross_prefix)
cp vbootrom/npcm7xx_bootrom.bin ../pc-bios/npcm7xx_bootrom.bin

clean:
rm -rf seabios/.config seabios/out seabios/builds
$(MAKE) -C sgabios clean
Expand All @@ -198,3 +204,4 @@ clean:
$(MAKE) -f Makefile.edk2 clean
$(MAKE) -C opensbi clean
$(MAKE) -C qboot clean
$(MAKE) -C vbootrom clean
1 change: 1 addition & 0 deletions roms/vbootrom
Submodule vbootrom added at 0c37a4

0 comments on commit d1cb5ed

Please sign in to comment.