roms: Add OpenSBI version 0.4
Add OpenSBI version 0.4 as a git submodule and as a prebult binary. OpenSBI (https://github.com/riscv/opensbi) aims to provide an open-source reference implementation of the RISC-V Supervisor Binary Interface (SBI) specifications for platform-specific firmwares executing in M-mode. For all supported platforms, OpenSBI provides several runtime firmware examples. These example firmwares can be used to replace the legacy riscv-pk bootloader and enable the use of well-known bootloaders such as U-Boot. OpenSBI is distributed under the terms of the BSD 2-clause license ("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. In this case all of the code we are using from OpenSBI is BSD 2-clause as we aren't using the Kendryte code (Apache-2.0) with QEMU and libfdt is dual licensed as BSD 2-clause (and GPL-2.0+). OpenSBI isn't being linked with QEMU either it is just being included with QEMU. Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Tested-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
This commit is contained in:
parent
0b18cfb8f1
commit
91f3a2f0ce
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -55,3 +55,6 @@
|
|||||||
[submodule "slirp"]
|
[submodule "slirp"]
|
||||||
path = slirp
|
path = slirp
|
||||||
url = https://git.qemu.org/git/libslirp.git
|
url = https://git.qemu.org/git/libslirp.git
|
||||||
|
[submodule "roms/opensbi"]
|
||||||
|
path = roms/opensbi
|
||||||
|
url = https://git.qemu.org/git/opensbi.git
|
||||||
|
21
LICENSE
21
LICENSE
@ -1,13 +1,18 @@
|
|||||||
The following points clarify the QEMU license:
|
The QEMU distribution includes both the QEMU emulator and
|
||||||
|
various firmware files. These are separate programs that are
|
||||||
|
distributed together for our users' convenience, and they have
|
||||||
|
separate licenses.
|
||||||
|
|
||||||
1) QEMU as a whole is released under the GNU General Public License,
|
The following points clarify the license of the QEMU emulator:
|
||||||
version 2.
|
|
||||||
|
|
||||||
2) Parts of QEMU have specific licenses which are compatible with the
|
1) The QEMU emulator as a whole is released under the GNU General
|
||||||
GNU General Public License, version 2. Hence each source file contains
|
Public License, version 2.
|
||||||
its own licensing information. Source files with no licensing information
|
|
||||||
are released under the GNU General Public License, version 2 or (at your
|
2) Parts of the QEMU emulator have specific licenses which are compatible
|
||||||
option) any later version.
|
with the GNU General Public License, version 2. Hence each source file
|
||||||
|
contains its own licensing information. Source files with no licensing
|
||||||
|
information are released under the GNU General Public License, version
|
||||||
|
2 or (at your option) any later version.
|
||||||
|
|
||||||
As of July 2013, contributions under version 2 of the GNU General Public
|
As of July 2013, contributions under version 2 of the GNU General Public
|
||||||
License (and no later version) are only accepted for the following files
|
License (and no later version) are only accepted for the following files
|
||||||
|
5
Makefile
5
Makefile
@ -770,7 +770,10 @@ palcode-clipper \
|
|||||||
u-boot.e500 u-boot-sam460-20100605.bin \
|
u-boot.e500 u-boot-sam460-20100605.bin \
|
||||||
qemu_vga.ndrv \
|
qemu_vga.ndrv \
|
||||||
edk2-licenses.txt \
|
edk2-licenses.txt \
|
||||||
hppa-firmware.img
|
hppa-firmware.img \
|
||||||
|
opensbi-riscv32-virt-fw_jump.bin \
|
||||||
|
opensbi-riscv64-sifive_u-fw_jump.bin opensbi-riscv64-virt-fw_jump.bin
|
||||||
|
|
||||||
|
|
||||||
DESCS=50-edk2-i386-secure.json 50-edk2-x86_64-secure.json \
|
DESCS=50-edk2-i386-secure.json 50-edk2-x86_64-secure.json \
|
||||||
60-edk2-aarch64.json 60-edk2-arm.json 60-edk2-i386.json 60-edk2-x86_64.json
|
60-edk2-aarch64.json 60-edk2-arm.json 60-edk2-i386.json 60-edk2-x86_64.json
|
||||||
|
@ -63,3 +63,14 @@
|
|||||||
ARM. Licensing information is given in "edk2-licenses.txt". The image files
|
ARM. Licensing information is given in "edk2-licenses.txt". The image files
|
||||||
are described by the JSON documents in the "pc-bios/descriptors" directory,
|
are described by the JSON documents in the "pc-bios/descriptors" directory,
|
||||||
which conform to the "docs/interop/firmware.json" schema.
|
which conform to the "docs/interop/firmware.json" schema.
|
||||||
|
|
||||||
|
- OpenSBI (https://github.com/riscv/opensbi) aims to provide an open-source
|
||||||
|
reference implementation of the RISC-V Supervisor Binary Interface (SBI)
|
||||||
|
specifications for platform-specific firmwares executing in M-mode. For all
|
||||||
|
supported platforms, OpenSBI provides several runtime firmware examples.
|
||||||
|
These example firmwares can be used to replace the legacy riscv-pk bootloader
|
||||||
|
and enable the use of well-known bootloaders such as U-Boot.
|
||||||
|
OpenSBI is distributed under the terms of the BSD 2-clause license
|
||||||
|
("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.
|
||||||
|
BIN
pc-bios/opensbi-riscv32-virt-fw_jump.bin
Executable file
BIN
pc-bios/opensbi-riscv32-virt-fw_jump.bin
Executable file
Binary file not shown.
BIN
pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin
Executable file
BIN
pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin
Executable file
Binary file not shown.
BIN
pc-bios/opensbi-riscv64-virt-fw_jump.bin
Executable file
BIN
pc-bios/opensbi-riscv64-virt-fw_jump.bin
Executable file
Binary file not shown.
@ -37,6 +37,8 @@ find-cross-prefix = $(subst gcc,,$(notdir $(call find-cross-gcc,$(1))))
|
|||||||
powerpc64_cross_prefix := $(call find-cross-prefix,powerpc64)
|
powerpc64_cross_prefix := $(call find-cross-prefix,powerpc64)
|
||||||
powerpc_cross_prefix := $(call find-cross-prefix,powerpc)
|
powerpc_cross_prefix := $(call find-cross-prefix,powerpc)
|
||||||
x86_64_cross_prefix := $(call find-cross-prefix,x86_64)
|
x86_64_cross_prefix := $(call find-cross-prefix,x86_64)
|
||||||
|
riscv32_cross_prefix := $(call find-cross-prefix,riscv32)
|
||||||
|
riscv64_cross_prefix := $(call find-cross-prefix,riscv64)
|
||||||
|
|
||||||
# tag our seabios builds
|
# tag our seabios builds
|
||||||
SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
|
SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
|
||||||
@ -52,18 +54,21 @@ EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
|
|||||||
default:
|
default:
|
||||||
@echo "nothing is build by default"
|
@echo "nothing is build by default"
|
||||||
@echo "available build targets:"
|
@echo "available build targets:"
|
||||||
@echo " bios -- update bios.bin (seabios)"
|
@echo " bios -- update bios.bin (seabios)"
|
||||||
@echo " vgabios -- update vgabios binaries (seabios)"
|
@echo " vgabios -- update vgabios binaries (seabios)"
|
||||||
@echo " sgabios -- update sgabios binaries"
|
@echo " sgabios -- update sgabios binaries"
|
||||||
@echo " pxerom -- update nic roms (bios only)"
|
@echo " pxerom -- update nic roms (bios only)"
|
||||||
@echo " efirom -- update nic roms (bios+efi)"
|
@echo " efirom -- update nic roms (bios+efi)"
|
||||||
@echo " slof -- update slof.bin"
|
@echo " slof -- update slof.bin"
|
||||||
@echo " skiboot -- update skiboot.lid"
|
@echo " skiboot -- update skiboot.lid"
|
||||||
@echo " u-boot.e500 -- update u-boot.e500"
|
@echo " u-boot.e500 -- update u-boot.e500"
|
||||||
@echo " u-boot.sam460 -- update u-boot.sam460"
|
@echo " u-boot.sam460 -- update u-boot.sam460"
|
||||||
@echo " efi -- update UEFI (edk2) platform firmware"
|
@echo " efi -- update UEFI (edk2) platform firmware"
|
||||||
@echo " clean -- delete the files generated by the previous" \
|
@echo " opensbi32-virt -- update OpenSBI for 32-bit virt machine"
|
||||||
"build targets"
|
@echo " opensbi64-virt -- update OpenSBI for 64-bit virt machine"
|
||||||
|
@echo " opensbi64-sifive_u -- update OpenSBI for 64-bit sifive_u machine"
|
||||||
|
@echo " clean -- delete the files generated by the previous" \
|
||||||
|
"build targets"
|
||||||
|
|
||||||
bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k
|
bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k
|
||||||
cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin
|
cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin
|
||||||
@ -162,6 +167,24 @@ skiboot:
|
|||||||
efi: edk2-basetools
|
efi: edk2-basetools
|
||||||
$(MAKE) -f Makefile.edk2
|
$(MAKE) -f Makefile.edk2
|
||||||
|
|
||||||
|
opensbi32-virt:
|
||||||
|
$(MAKE) -C opensbi \
|
||||||
|
CROSS_COMPILE=$(riscv32_cross_prefix) \
|
||||||
|
PLATFORM="qemu/virt"
|
||||||
|
cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv32-virt-fw_jump.bin
|
||||||
|
|
||||||
|
opensbi64-virt:
|
||||||
|
$(MAKE) -C opensbi \
|
||||||
|
CROSS_COMPILE=$(riscv64_cross_prefix) \
|
||||||
|
PLATFORM="qemu/virt"
|
||||||
|
cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-virt-fw_jump.bin
|
||||||
|
|
||||||
|
opensbi64-sifive_u:
|
||||||
|
$(MAKE) -C opensbi \
|
||||||
|
CROSS_COMPILE=$(riscv64_cross_prefix) \
|
||||||
|
PLATFORM="qemu/sifive_u"
|
||||||
|
cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf seabios/.config seabios/out seabios/builds
|
rm -rf seabios/.config seabios/out seabios/builds
|
||||||
$(MAKE) -C sgabios clean
|
$(MAKE) -C sgabios clean
|
||||||
@ -173,3 +196,4 @@ clean:
|
|||||||
$(MAKE) -C u-boot-sam460ex distclean
|
$(MAKE) -C u-boot-sam460ex distclean
|
||||||
$(MAKE) -C skiboot clean
|
$(MAKE) -C skiboot clean
|
||||||
$(MAKE) -f Makefile.edk2 clean
|
$(MAKE) -f Makefile.edk2 clean
|
||||||
|
$(MAKE) -C opensbi clean
|
||||||
|
1
roms/opensbi
Submodule
1
roms/opensbi
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit ce228ee0919deb9957192d723eecc8aaae2697c6
|
Loading…
Reference in New Issue
Block a user