Also playing catchup trying to get some CHERI BSD examples built up as
> recipes. Might ping you on the basics here if poss. and try to write up.
>
Having more purecap libraries would be great, thank you.
One really basic question is when you build the your demo app how is it
> build for PureCap/compatibility API? I can's see this using llvm-objdump
>
You can tell that the app is "purcap" by reading the elf header.
Entry point address LSB set to 1 will load the app in C64 mode, the flags
field will also be set to 0x1000.
Pawel
Working off the kirkstone branch of
https://github.com/The-Good-Penguin/meta-morello, I did some cleanups
and was able to add gitlab CI support. You can see it in action at
https://gitlab.com/jonmason00/meta-morello/-/pipelines/773799653
Many other cleanups are needed, but I was only trying to get Gitlab CI
working.
I see there is a Arm ecosystem FVP for Morello at
https://developer.arm.com/downloads/-/arm-ecosystem-fvps
If FVP support is enabled, it is possible to run testimage as part of
CI. You can see that being done on meta-arm for corstone500,
corstone1000-fvp, fvp-base, fvp-base-arm32, and fvp-baser-aemv8r64.
Let me know if there are any questions.
Thanks,
Jon
Jon Mason (6):
conf/machine: Remove MORELLO_RELEASE_VERSION
musl-morello: Remove unused file
Change SRVTAG to SRVREV
kas: Changes necessary to compile the existing system images
board-firmware: Fix LICENSE warning
CI: add Gitlab CI support
.gitlab-ci.yml | 78 +++++++++++++++++++
ci/check-warnings | 19 +++++
ci/jobs-to-kas | 16 ++++
ci/logging.yml | 13 ++++
ci/update-repos | 40 ++++++++++
conf/machine/include/morello-1.5.inc | 1 -
conf/machine/include/morello-common.inc | 6 +-
conf/machine/morello-linux-glibc.conf | 1 -
conf/machine/morello-linux-musl.conf | 5 +-
kas/base.yml | 47 +++++------
.../board-firmware/board-firmware_1.4.bb | 6 +-
recipes-core/busybox/busybox-morello.inc | 4 +-
...-morello-1.5.bb => busybox-morello_1.5.bb} | 2 +-
recipes-core/musl/musl-morello-1.5.inc | 4 -
recipes-core/musl/musl-morello-common.inc | 12 +--
.../gen-init-cpio/gen-init-cpio-native.bb | 6 +-
recipes-kernel/linux/linux-morello.inc | 4 +-
...ux-morello-1.5.bb => linux-morello_1.5.bb} | 6 +-
.../images/morello-linux-image-musl.bb | 4 +-
19 files changed, 220 insertions(+), 54 deletions(-)
create mode 100644 .gitlab-ci.yml
create mode 100755 ci/check-warnings
create mode 100755 ci/jobs-to-kas
create mode 100644 ci/logging.yml
create mode 100755 ci/update-repos
delete mode 100644 conf/machine/include/morello-1.5.inc
rename recipes-core/busybox/{busybox-morello-1.5.bb => busybox-morello_1.5.bb} (79%)
delete mode 100644 recipes-core/musl/musl-morello-1.5.inc
rename recipes-kernel/linux/{linux-morello-1.5.bb => linux-morello_1.5.bb} (57%)
--
2.30.2
This series of patches forms the initial support for the Morello hardware in Yocto.
For limitations and instructions to build refer to the README.md
To-do list:
- create clang-morello toolchain, follow the guide here [1] and move llvm-morello to its own layer
* can try append meta-clang instead
* can try to use precompiled external toolchain like here [2] instead
* thus there are 3 paths to explore forward for the toolchain, Yocto expects target_prefixed toolchain binaries
- be considerate of incoming purecap GNU toolchain [3] (related to the above toolchain problem)
- decide what combinations of musl/glibc env the user might want and stick that in grub cfg,
the current division between glibc/musl machines is a ripple from the past
Changes in V4:
- removed AUTOREV from all recipes
- removed dual code when not necessary in the bbappends
- fixed submodule paths and copy paste bugs in the uefi bbappend
- added native fiptool recipe
- added gdb
- added llvm that can run on the target
[1] http://www.openembedded.org/wiki/Adding_a_secondary_toolchain
[2] https://github.com/MentorEmbedded/meta-sourcery/
[3] https://developer.arm.com/downloads/-/arm-gnu-toolchain-for-morello-downloa…
Pawel Zalewski (18):
Add LLVM Morello compiler support
Add initial Morello machines and layer config
Add scp firmware
Add trusted-firmware-a
Add UEFI
Add grub
Add fiptool
Add board firmware image
Add Morello Linux kernel
Add musl libc
Add busybox
Add simple purecap application
Add gen-init-cpio
Add llvm-morelllo for aarch64.
Add gdb
Add Linux image
Add kas scripts
Add README.md
--
2.34.1
This series of patches forms the inital support for the Morello hardware in Yocto.
For limitations and instructions to build refer to the README.md
NB The kas scripts will pull meta-morello that is hosted @ TGP repo, not what these patches provide,
although these are almost equal.
To-do list:
- create clang-morello toolchain, follow the guide here http://www.openembedded.org/wiki/Adding_a_secondary_toolchain and move llvm-morello to its own layer
* can try append meta-clang instead
* can try to use precomipled external toolchain like here https://github.com/MentorEmbedded/meta-sourcery/ instead
* thus there are 3 paths to explore forward for the toolchain, Yocto expects target_prefixed toolchain binaries
- be considerate of incoming purecap GNU toolchain (related to the above toolchain problem)
- decide what combinations of musl/glibc env the user might want and stick that in grub cfg
Fixes in V3:
- packaging is enabled, purecap apps can be added to the rootfs image in the usual way (tested on glibc machine)
- added musl system loader to the glibc rootfs with symlink from the top level nonarchlib, this sort of makes pure musl machine redundant
- fixed tfa bug with missing path to openssl, it will now build in Jenkins
- fixed description bugs and outdated commit messages
Pawel Zalewski (15):
Add LLVM Morello compiler support
Add initial Morello machines and layer config
Add scp firmware
Add trusted-firmware-a
Add UEFI
Add grub
Add board firmware image
Add Morello Linux kernel
Add musl libc
Add busybox
Add simple purecap application
Add gen-init-cpio
Add Linux image
Add kas scripts
Add README.md
--
2.34.1
This series of patches forms the inital support for the Morello hardware in Yocto.
For limitations and instructions to build refer to the README.md
NB The kas scripts will pull meta-morello that is hosted @ TGP repo, not what these patches provide,
although these are almost equal.
To-do list:
- create clang-morello toolchain, follow the guide here http://www.openembedded.org/wiki/Adding_a_secondary_toolchain and move llvm-morello to its own layer
* can try append meta-clang instead
* can try to use precomipled external toolchain like here https://github.com/MentorEmbedded/meta-sourcery/ instead
* thus there are 3 paths to explore forward for the toolchain, Yocto expects target_prefixed toolchain binaries
- be considerate of incoming purecap GNU toolchain (related to the above toolchain problem)
- sort out the packaging for llvm-morello-compiled packages (related to the above toolchain problem)
Fixes in V2:
- fixed typos in descriptions/summaries
- removed old wrapper library around intrinsic cheri API for manipulating the capabilities
- removed old elf patcher which is no longer required
- patched busybox and purecap app makefiles accordingly to the above
- changed the path to the system loader, correct LDSO is arch64_purecap
- discrimination of the pure capp app by the machine: glibc will be statically linked, musl can use the musl loader
- added UUID to the rootfs so grub and initramfs will always boot from the correct rootfs
- fixed a bug with wrong clang CPP command
- fixed a bug in the kernel recipe where the ARCH variable was not set
- added multiconfig so that linux iamge depends on the board-firmware image explicitly
- modified kas scripts accordingly to the above
- fixed a bug with ATF tools being compiled with LLVM
Pawel Zalewski (15):
Add LLVM Morello compiler support
Add initial Morello machines and layer config
Add scp firmware
Add trusted-firmware-a
Add UEFI
Add grub
Add board firmware image
Add Morello Linux kernel
Add musl libc
Add busybox
Add simple purecap application
Add gen-init-cpio
Add Linux image
Add kas scripts
Add README.md
--
2.34.1
This series of patches forms the inital support for the Morello hardware in Yocto.
For limitations and instructions to build refer to the README.md
NB The kas scripts will pull meta-morello that is hosted @ TGP repo, not what these patches provide,
although these are almost equal.
To-do list:
- create clang-morello toolchain, follow the guide here http://www.openembedded.org/wiki/Adding_a_secondary_toolchain and move llvm-morello to its own layer
* can try append meta-clang instead
* can try to use precomipled external toolchain like here https://github.com/MentorEmbedded/meta-sourcery/ instead
* thus there are 3 paths to explore forward for the toolchain, Yocto expects target_prefixed toolchain binaries
- be considerate of incoming purecap GNU toolchain (related to the above toolchain problem)
- sort out the packaging for llvm-morello-compiled packages (related to the above toolchain problem)
Pawel Zalewski (17):
Add LLVM Morello compiler support
Add initial Morello machines and layer config
Add scp firmware
Add trusted-firmware-a
Add UEFI
Add grub
Add board firmware image
Add Morello Linux kernel
Add musl libc
Add busybox
Add libarchcap
Add elf patcher
Add simple purecap application
Add gen-init-cpio
Add Linux image
Add kas scripts
Add README.md
--
2.34.1