From: Mark Hatle <mark.hatle@kernel.crashing.org>
To: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH v2 0/7] ISA based RISC-V tune implementation
Date: Tue, 17 Jun 2025 19:20:46 -0500 [thread overview]
Message-ID: <aa295c1a-50f3-4f26-92f2-e844c96ba5ed@kernel.crashing.org> (raw)
In-Reply-To: <1849F8E3D5C2FC6B.11779@lists.openembedded.org>
After I hit send, I realized that the order of the patches is likely wrong.
(using mailed order) should probably be:
1, 7, 2, 3, 4, 5, 6
or 1 & 7 squashed.. (7 requires 1.. and without 7 rust won't build after 1 is
introduced.)
--Mark
On 6/17/25 6:39 PM, Mark Hatle wrote:
> From: Mark Hatle <mark.hatle@amd.com>
>
> The following implements the risc-v processor tune based on the ISA approach
> as documented in the oe-architecture post:
>
> https://lists.openembedded.org/g/openembedded-architecture/message/2155
>
> This set also attempts to make u-boot and kernel configurations dynamic
> based on the TUNE_FEATURES.
>
> For the linux-yocto, I suspect that the config fragments should be
> sent to the kmeta (kernel-cache), but I'd like a review from Bruce and
> others before I do this.
>
> Additionally, this enables a new (optional) features_check for TUNE_FEATURES.
>
> I've found numerous items in the system have certain RISC-V ISA expectations
> that may need to be addressed over time, however the obvious one is the
> Linux kernel requires ima_zicsr_zifencei. Since it has it's own -march=
> setting this will ensure the processor defintion will be compatible.
>
> Also dynamically configure the QEMU cpu based on the tune_features. This
> is nice to ensure that what we're actually building should be able to run
> on real hardware. However, it does highlight some of the (extension)
> limitations in the current design. (limitations as in extension not yet
> enabled.)
>
> Note: OpenSBI _requires_ the 'c' extension or it will not execute. I
> suspect this can be fixed, but it's beyond my capabilities at this time.
>
> v2:
>
> - Note: the linux-yocto change still needs further rework (noted in commit)
> (if everything else is merged, it will still work fine)
>
> - Change the TUNE_FEATURES check to kernel.bbclass per review comments
>
> - Add 7/7 patch for RUST configuration.
>
> Mark Hatle (7):
> riscv tunes: ISA Implementation of RISC-V tune features
> linux-yocto: Enable risc-v TUNE_FEATURES ISA selections ** DO NOT
> MERGE **
> u-boot: Dynamic RISC-V ISA configuration
> qemuriscv: Dynamically configure qemu CPU
> features_check.bbclass: Add support for required TUNE_FEATURES
> kernel.bbclass: State riscv required tune_features for Linux
> rust-target-config.bbclass: Update for new riscv TUNE_FEATURES
>
> meta/classes-recipe/features_check.bbclass | 2 +-
> meta/classes-recipe/kernel.bbclass | 6 +-
> .../classes-recipe/rust-target-config.bbclass | 65 ++++++---
> meta/conf/machine/include/riscv/README | 122 ++++++++++++++++
> .../conf/machine/include/riscv/arch-riscv.inc | 138 +++++++++++++++++-
> meta/conf/machine/include/riscv/qemuriscv.inc | 31 +++-
> .../conf/machine/include/riscv/tune-riscv.inc | 40 ++---
> meta/conf/machine/qemuriscv32.conf | 4 +-
> meta/lib/oe/__init__.py | 2 +-
> meta/lib/oe/rust.py | 2 -
> meta/lib/oe/tune.py | 81 ++++++++++
> .../u-boot/files/u-boot-riscv-isa_a.cfg | 1 +
> .../u-boot/files/u-boot-riscv-isa_c.cfg | 1 +
> .../u-boot/files/u-boot-riscv-isa_clear.cfg | 6 +
> .../u-boot/files/u-boot-riscv-isa_d.cfg | 1 +
> .../u-boot/files/u-boot-riscv-isa_f.cfg | 1 +
> .../u-boot/files/u-boot-riscv-isa_zbb.cfg | 1 +
> .../u-boot/files/u-boot-riscv-isa_zicbom.cfg | 1 +
> meta/recipes-bsp/u-boot/u-boot-common.inc | 12 ++
> .../linux/files/risc-v-isa-c.cfg | 1 +
> .../linux/files/risc-v-isa-clear.cfg | 9 ++
> .../linux/files/risc-v-isa-fpu.cfg | 1 +
> .../linux/files/risc-v-isa-rv32i.cfg | 2 +
> .../linux/files/risc-v-isa-rv64i.cfg | 2 +
> .../linux/files/risc-v-isa-v.cfg | 1 +
> .../linux/files/risc-v-isa-zbb.cfg | 1 +
> .../linux/files/risc-v-isa-zicbom.cfg | 1 +
> meta/recipes-kernel/linux/linux-yocto.inc | 14 ++
> 28 files changed, 480 insertions(+), 69 deletions(-)
> create mode 100644 meta/conf/machine/include/riscv/README
> create mode 100644 meta/lib/oe/tune.py
> create mode 100644 meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_a.cfg
> create mode 100644 meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_c.cfg
> create mode 100644 meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_clear.cfg
> create mode 100644 meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_d.cfg
> create mode 100644 meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_f.cfg
> create mode 100644 meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zbb.cfg
> create mode 100644 meta/recipes-bsp/u-boot/files/u-boot-riscv-isa_zicbom.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-c.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-clear.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-fpu.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-rv32i.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-rv64i.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-v.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-zbb.cfg
> create mode 100644 meta/recipes-kernel/linux/files/risc-v-isa-zicbom.cfg
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#218946): https://lists.openembedded.org/g/openembedded-core/message/218946
> Mute This Topic: https://lists.openembedded.org/mt/113700336/3616948
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [mark.hatle@kernel.crashing.org]
> -=-=-=-=-=-=-=-=-=-=-=-
>
next parent reply other threads:[~2025-06-18 0:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1849F8E3D5C2FC6B.11779@lists.openembedded.org>
2025-06-18 0:20 ` Mark Hatle [this message]
2025-06-17 23:39 [PATCH v2 0/7] ISA based RISC-V tune implementation Mark Hatle
2025-06-18 19:29 ` [OE-core] " Gyorgy Sarvari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aa295c1a-50f3-4f26-92f2-e844c96ba5ed@kernel.crashing.org \
--to=mark.hatle@kernel.crashing.org \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox