diff options
author | Alejandro Hernandez Samaniego <alejandro@enedino.org> | 2021-08-07 22:14:51 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-08-12 06:26:16 +0100 |
commit | 650b720f1919987ed7593d117c81c1db1b2f7da0 (patch) | |
tree | 28c88d1485ef98fde62910ce18c42a10c2546fb3 | |
parent | 8ae0ee62cacb613f93f5b81ddf30083a97e39a43 (diff) | |
download | poky-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.bb | 5 | ||||
-rw-r--r-- | meta/classes/baremetal-image.bbclass | 3 |
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 | |||
4 | LICENSE = "MIT" | 4 | LICENSE = "MIT" |
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=39346640a23c701e4f459e05f56f4449" | 5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=39346640a23c701e4f459e05f56f4449" |
6 | 6 | ||
7 | SRCREV = "0bf9ea216e6f76be50726a3a74e527b7bbb0ad93" | 7 | SRCREV = "31b4e5a337018b4a00a7426b0e5ed83b81df30c7" |
8 | PV = "0.1+git${SRCPV}" | 8 | PV = "0.1+git${SRCPV}" |
9 | 9 | ||
10 | SRC_URI = "git://github.com/aehs29/baremetal-helloqemu.git;protocol=https;branch=master" | 10 | SRC_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 |
31 | COMPATIBLE_MACHINE = "qemuarmv5|qemuarm|qemuarm64|qemuriscv64" | 31 | COMPATIBLE_MACHINE = "qemuarmv5|qemuarm|qemuarm64|qemuriscv64|qemuriscv32" |
32 | 32 | ||
33 | BAREMETAL_QEMUARCH ?= "" | 33 | BAREMETAL_QEMUARCH ?= "" |
34 | BAREMETAL_QEMUARCH:qemuarmv5 = "versatile" | 34 | BAREMETAL_QEMUARCH:qemuarmv5 = "versatile" |
35 | BAREMETAL_QEMUARCH:qemuarm = "arm" | 35 | BAREMETAL_QEMUARCH:qemuarm = "arm" |
36 | BAREMETAL_QEMUARCH:qemuarm64 = "aarch64" | 36 | BAREMETAL_QEMUARCH:qemuarm64 = "aarch64" |
37 | BAREMETAL_QEMUARCH:qemuriscv64 = "riscv64" | 37 | BAREMETAL_QEMUARCH:qemuriscv64 = "riscv64" |
38 | BAREMETAL_QEMUARCH:qemuriscv32 = "riscv32" | ||
38 | 39 | ||
39 | EXTRA_OEMAKE:append = " QEMUARCH=${BAREMETAL_QEMUARCH} V=1" | 40 | EXTRA_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 |
84 | QB_DEFAULT_BIOS:qemuriscv64 = "" | 84 | QB_DEFAULT_BIOS:qemuriscv64 = "" |
85 | QB_DEFAULT_BIOS:qemuriscv32 = "" | ||
85 | QB_OPT_APPEND:append:qemuriscv64 = " -bios none" | 86 | QB_OPT_APPEND:append:qemuriscv64 = " -bios none" |
87 | QB_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) | ||
91 | CFLAGS:append:qemuriscv64 = " -mcmodel=medany" | 94 | CFLAGS:append:qemuriscv64 = " -mcmodel=medany" |
92 | 95 | ||
93 | 96 | ||