summaryrefslogtreecommitdiffstats
path: root/meta-skeleton/recipes-baremetal
Commit message (Collapse)AuthorAgeFilesLines
* baremetal-helloworld: Move from skeleton to recipes-extended matching what ↵Alejandro Hernandez Samaniego2023-01-121-71/+0
| | | | | | | | | | rust-hello-world is doing (From OE-Core rev: 13916de0145f83bb28323f0a6bde5c3d503c1319) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Enable x86 and x86-64 portsAlejandro Hernandez Samaniego2023-01-121-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - The qemux86 port for helloworld-baremetal builds in the standard way, however, it uses NASM syntax for the startup code, hence we include a dependency to nasm-native, QEMU forces us to use an ELF file rather than a bin file to boot from this architecture using the -kernel parameter. - QEMU refuses to boot using the -kernel parameter for files containing an ELF64 header [1], instead, it requires a multiboot2 compatible image. We could create an image that contains a multiboot2 header by piggybacking into grub2-native, specifically grub-mkrescue, but it requires some extra runtime dependencies (xorriso which is currently part of meta-oe), and assumes a grub installation exists on the host. Due to host contamination and dependency complications, we dont rely on grub2, but rather do this process manually instead, the x86-64 port contains a stage1 bootloader, stage2 bootloader and a 64 bit baremetal app (multiboot2 compatible), booting into real (16 bit), protected (32 bit) and long (64 bit) modes, eventually running the helloworld-baremetal app. This is the reason why we need the code changes to use a separate Makefile, and create an image specifically for qemux86-64. $ runqemu nographic Booting from ROM.. Hello OpenEmbedded on x86! $ runqemu nographic Starting Stage 1 Bootloader Loading Stage 2 Bootloader Stage 2 Loaded. Jumping to Stage2 Bootloader In Stage 2 Done Hello OpenEmbedded on x86-64! [1] https://gitlab.com/qemu-project/qemu/-/blob/v7.2.0/hw/i386/multiboot.c#L199 (From OE-Core rev: 1dffd81b2991f90ab95cb36d8ff7626efd21434f) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Enable RISC-V 32 portAlejandro Hernandez Samaniego2021-08-121-2/+3
| | | | | | | | | | | | | | | $ 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>
* Convert to new override syntaxRichard Purdie2021-08-021-6/+6
| | | | | | | | | | | | This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". (From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Enable RISC-V 64 portAlejandro Hernandez Samaniego2021-05-121-2/+3
| | | | | | | | | | | | | | | | | | | Add support for MACHINE=qemuriscv64. $ runqemu nographic KERNEL: [tmp/deploy/images/qemuriscv64/baremetal-helloworld-image-qemuriscv64.bin] MACHINE: [qemuriscv64] FSTYPE: [bin] runqemu - INFO - Running tmp/work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/qemu-system-riscv64 Hello OpenEmbedded on RISC-V 64! (From OE-Core rev: 31fde82640bf0d185eab55d2cbaf663c9faae801) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta-skeleton: Add HOMEPAGE / DESCRIPTIONDorinda2021-03-061-0/+1
| | | | | | | | | | | Added HOMEPAGE and DESCRIPTION for recipes with missing decriptions or homepage [YOCTO #13471] (From OE-Core rev: 89d8f20353bacb089bc18833d3ff032b525613ee) Signed-off-by: Dorinda Bassey <dorindabassey@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Fix install path since S doesnt have a trailing slashAlejandro Hernandez Samaniego2020-10-261-2/+2
| | | | | | | (From OE-Core rev: f099a4ec8e722f590fbf9b5ae87bb6ec29a5e6e6) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* skeleton/baremetal-helloworld: Fix trailing slashRichard Purdie2020-10-101-1/+1
| | | | | | | | This fixes a warning about a trailing slash on ${S}. (From OE-Core rev: 0685dac31a7ae614d9f75cd51b59c45dd050f52e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Use baremetal-image class to deploy the applicationAlejandro Hernandez2020-07-081-90/+19
| | | | | | | (From OE-Core rev: dd5a64feb5426ec870cf5d53ef056b24eb450487) Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Use do_image_complete instead of do_deployAlejandro Hernandez2020-07-031-8/+23
| | | | | | | | | | | To better align with upstream and mimic how images are built, use do_image and do_image_complete instead of do_deploy to populate artifacts on DEPLOY_DIR_IMAGE. (From OE-Core rev: 9edb08c31700a85ce87344829989c1069d2760ab) Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Fix IMGDEPLOYDIR expansionAlejandro Hernandez2020-04-291-0/+1
| | | | | | | | | | | | | | IMGDEPLOYDIR is not being expanded anymore, this causes do_rootfs to fail because it can't create the manifest file, we can set it to the default being set on image.bbclass since this is only a decoy function anyway to satisfy testimage, this makes do_rootfs happy and allows it to continue. (From OE-Core rev: 06ed491e30b47b8c5f89746e890519dd7de800fd) Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* baremetal-helloworld: Create recipe for baremetal examples on QEMUAlejandro Enedino Hernandez Samaniego2020-02-051-0/+105
Create HelloWorld examples that run on several of the QEMU architectures supported by the build system. This recipe can be used by anyone to understand how baremetal applications can be built using OpenEmbedded and how the wiring to set them up could be. This should also facilitate creating/extending the OE testing infrastructure to allow baremetal applications or RTOSs to be tested in the same way that Linux currently is. This can easily be extended to work on other MACHINES in the future. To run this example: $ source oe-init-buildenv $ bitbake-layers add-layer ../meta-skeleton # TCLIBC="baremetal" would work as well $ echo "TCLIBC = \"newlib\"" >> ./conf/local.conf $ echo "MACHINE = \"qemuarm64\"" >> ./conf/local.conf $ bitbake baremetal-helloworld $ runqemu runqemu - INFO - Running bitbake -e ... runqemu - INFO - Continuing with the following parameters: KERNEL: [tmp/deploy/images/qemuarm64/baremetal-helloworld-qemuarm64.bin] MACHINE: [qemuarm64] FSTYPE: [bin] ROOTFS: [tmp/deploy/images/qemuarm64/baremetal-helloworld-qemuarm64.bin] CONFFILE: [tmp/deploy/images/qemuarm64/baremetal-helloworld-qemuarm64.qemuboot.conf] Hello OpenEmbedded! (From OE-Core rev: b314e9a0923c8aa95a2f2c3f48d956206e9885a7) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>