On Tue, Sep 15, 2026 at 12:03 PM Trevor Gamblin <[email protected]> wrote:
> gcc reports the following extension string for '-march=rva22u64': > > |tgamblin@megalith > ~/workspace/ypbuilds/poky-qemuriscv64/layers/openembedded-core (master)$ > riscv64-linux-gnu-gcc -march=rva22u64 -mabi=lp64d -Q --help=target | grep > rv64 > | -march= > > rv64imafdcb_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_zicntr_zicsr_zihintpause_zmmul_za64rs_zaamo_zalrsc_zfhmin_zca_zcd_zba_zbb_zbs_zkt > > Add the following extensions needed to complete the profile: > > - za64rs > - zfhmin > - zic64b > - zicbop > - zicboz > - zihintpause > - zkt > > Signed-off-by: Trevor Gamblin <[email protected]> > --- > .../conf/machine/include/riscv/arch-riscv.inc | 28 +++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/meta/conf/machine/include/riscv/arch-riscv.inc > b/meta/conf/machine/include/riscv/arch-riscv.inc > index 7db400694c..c05cdf8c21 100644 > --- a/meta/conf/machine/include/riscv/arch-riscv.inc > +++ b/meta/conf/machine/include/riscv/arch-riscv.inc > @@ -82,10 +82,22 @@ TUNE_RISCV_MARCH .= > "${@bb.utils.contains("TUNE_FEATURES", "v", "v", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "v", "v", > "", d)}" > > # Now the special Z extensions > +TUNEVALID[zic64b] = "Cache block size is 64 bytes extension." > +TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zic64b", > "_zic64b", "", d)}" > +TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", > "zic64b", "_zic64b", "", d)}" > + > TUNEVALID[zicbom] = "Cache-block management extension" > TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zicbom", > "_zicbom", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", > "zicbom", "_zicbom", "", d)}" > > +TUNEVALID[zicbop] = "Cache-block prefetching extension." > +TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zicbop", > "_zicbop", "", d)}" > +TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", > "zicbop", "_zicbop", "", d)}" > + > +TUNEVALID[zicboz] = "Cache-block zeroing extension." > +TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "zicboz", > "_zicboz", "", d)}" > +TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", > "zicboz", "_zicboz", "", d)}" > + > TUNEVALID[ziccamoa] = "PMA guarantees for A-extension atomics extension." > TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "ziccamoa", > "_ziccamoa", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "ziccamoa", > "_ziccamoa", "", d)}" > @@ -114,10 +126,18 @@ TUNEVALID[zifencei] = "Instruction-fetch fence > extension." > TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "zifencei", > "_zifencei", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "zifencei", > "_zifencei", "", d)}" > > +TUNEVALID[zihintpause] = "Pause hint extension." > +TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "zihintpause", > "_zihintpause", "", d)}" > +TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", > "zihintpause", "_zihintpause", "", d)}" > + > TUNEVALID[zmmul] = "Cheaper M subset (mul only) extension." > TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m zmmul", > "_zmmul", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m zmmul", > "_zmmul", "", d)}" > > +TUNEVALID[za64rs] = "Reservation set size of at most 64 bytes extension." > +TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "za64rs", > "_za64rs", "", d)}" > +TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "za64rs", > "_za64rs", "", d)}" > + > TUNEVALID[za128rs] = "Reservation set granularity (128-byte) extension." > TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "za128rs", > "_za128rs", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "za128rs", > "_za128rs", "", d)}" > @@ -130,6 +150,10 @@ TUNEVALID[zalrsc] = "Extended LR/SC semantics > extension." > TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "a zalrsc", > "_zalrsc", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "a zalrsc", > "_zalrsc", "", d)}" > > +TUNEVALID[zfhmin] = "Minimal half-precision floating point extension." > +TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "zfhmin", > "_zfhmin", "", d)}" > +TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "zfhmin", > "_zfhmin", "", d)}" > + > TUNEVALID[zca] = "Compressed base integer ops extension." > TUNE_RISCV_MARCH .= "${@bb.utils.contains("TUNE_FEATURES", "c zca", > "_zca", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "c zca", > "_zca", "", d)}" > @@ -154,6 +178,10 @@ TUNEVALID[zbs] = "Single-bit manipulation extension" > TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zbs", > "_zbs", "", d)}" > TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zbs", > "_zbs", "", d)}" > > +TUNEVALID[zkt] = "Data-independent execution latency extension." > +TUNE_RISCV_MARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zkt", > "_zkt", "", d)}" > +TUNE_RISCV_PKGARCH .= "${@bb.utils.contains_any("TUNE_FEATURES", "b zkt", > "_zkt", "", d)}" > wrongly implies zkt from b, Zkt is mandated by the RVA22/23 profiles, not by B (the cover letter's "'zkt' is needed by 'b'" is incorrect). This silently injects _zkt into -march and the package arch of any b-enabled non-profile tune. > + > # Construct TUNE_CCARGS > # This should result in a CCARG similar to: > # -march=rv32imac -mabi=ilp32 > -- > 2.55.0 > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#246252): https://lists.openembedded.org/g/openembedded-core/message/246252 Mute This Topic: https://lists.openembedded.org/mt/121267429/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
