summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Hernandez Samaniego <alejandro@enedino.org>2021-08-07 22:14:51 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-12 06:26:16 +0100
commit650b720f1919987ed7593d117c81c1db1b2f7da0 (patch)
tree28c88d1485ef98fde62910ce18c42a10c2546fb3
parent8ae0ee62cacb613f93f5b81ddf30083a97e39a43 (diff)
downloadpoky-650b720f1919987ed7593d117c81c1db1b2f7da0.tar.gz
baremetal-helloworld: Enable RISC-V 32 port
$ runqemu nographic runqemu - INFO - Running bitbake -e ... KERNEL: [tmp/deploy/images/qemuriscv32/baremetal-helloworld-image-qemuriscv32.bin] MACHINE: [qemuriscv32] runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-riscv32 Hello OpenEmbedded on RISC-V 32! (From OE-Core rev: d4cca7471f2167b56347fa7b1364bb84a200b1f5) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb5
-rw-r--r--meta/classes/baremetal-image.bbclass3
2 files changed, 6 insertions, 2 deletions
diff --git a/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb b/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb
index 37193f5a33..d11e2e530e 100644
--- a/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb
+++ b/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "These are introductory examples to showcase the use of QEMU to ru
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=39346640a23c701e4f459e05f56f4449" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=39346640a23c701e4f459e05f56f4449"
6 6
7SRCREV = "0bf9ea216e6f76be50726a3a74e527b7bbb0ad93" 7SRCREV = "31b4e5a337018b4a00a7426b0e5ed83b81df30c7"
8PV = "0.1+git${SRCPV}" 8PV = "0.1+git${SRCPV}"
9 9
10SRC_URI = "git://github.com/aehs29/baremetal-helloqemu.git;protocol=https;branch=master" 10SRC_URI = "git://github.com/aehs29/baremetal-helloqemu.git;protocol=https;branch=master"
@@ -28,13 +28,14 @@ inherit baremetal-image
28# machine that QEMU uses on OE, e.g. -machine virt -cpu cortex-a57 28# machine that QEMU uses on OE, e.g. -machine virt -cpu cortex-a57
29# but the examples can also be run on other architectures/machines 29# but the examples can also be run on other architectures/machines
30# such as vexpress-a15 by overriding the setting on the machine.conf 30# such as vexpress-a15 by overriding the setting on the machine.conf
31COMPATIBLE_MACHINE = "qemuarmv5|qemuarm|qemuarm64|qemuriscv64" 31COMPATIBLE_MACHINE = "qemuarmv5|qemuarm|qemuarm64|qemuriscv64|qemuriscv32"
32 32
33BAREMETAL_QEMUARCH ?= "" 33BAREMETAL_QEMUARCH ?= ""
34BAREMETAL_QEMUARCH:qemuarmv5 = "versatile" 34BAREMETAL_QEMUARCH:qemuarmv5 = "versatile"
35BAREMETAL_QEMUARCH:qemuarm = "arm" 35BAREMETAL_QEMUARCH:qemuarm = "arm"
36BAREMETAL_QEMUARCH:qemuarm64 = "aarch64" 36BAREMETAL_QEMUARCH:qemuarm64 = "aarch64"
37BAREMETAL_QEMUARCH:qemuriscv64 = "riscv64" 37BAREMETAL_QEMUARCH:qemuriscv64 = "riscv64"
38BAREMETAL_QEMUARCH:qemuriscv32 = "riscv32"
38 39
39EXTRA_OEMAKE:append = " QEMUARCH=${BAREMETAL_QEMUARCH} V=1" 40EXTRA_OEMAKE:append = " QEMUARCH=${BAREMETAL_QEMUARCH} V=1"
40 41
diff --git a/meta/classes/baremetal-image.bbclass b/meta/classes/baremetal-image.bbclass
index 9ec3f1460b..089c445522 100644
--- a/meta/classes/baremetal-image.bbclass
+++ b/meta/classes/baremetal-image.bbclass
@@ -82,12 +82,15 @@ QB_OPT_APPEND:append = " -nographic"
82# RISC-V tunes set the BIOS, unset, and instruct QEMU to 82# RISC-V tunes set the BIOS, unset, and instruct QEMU to
83# ignore the BIOS and boot from -kernel 83# ignore the BIOS and boot from -kernel
84QB_DEFAULT_BIOS:qemuriscv64 = "" 84QB_DEFAULT_BIOS:qemuriscv64 = ""
85QB_DEFAULT_BIOS:qemuriscv32 = ""
85QB_OPT_APPEND:append:qemuriscv64 = " -bios none" 86QB_OPT_APPEND:append:qemuriscv64 = " -bios none"
87QB_OPT_APPEND:append:qemuriscv32 = " -bios none"
86 88
87 89
88# Use the medium-any code model for the RISC-V 64 bit implementation, 90# Use the medium-any code model for the RISC-V 64 bit implementation,
89# since medlow can only access addresses below 0x80000000 and RAM 91# since medlow can only access addresses below 0x80000000 and RAM
90# starts at 0x80000000 on RISC-V 64 92# starts at 0x80000000 on RISC-V 64
93# Keep RISC-V 32 using -mcmodel=medlow (symbols lie between -2GB:2GB)
91CFLAGS:append:qemuriscv64 = " -mcmodel=medany" 94CFLAGS:append:qemuriscv64 = " -mcmodel=medany"
92 95
93 96