On Tue, Sep 02, 2025 at 08:19:30AM +0000, Yao Zi wrote:
> Ratified on Apr. 2024, the original RISC-V "A" extension is now split
> into two separate extensions, "Zaamo" for atomic operations and "Zalrsc"
> for load-reserved/store-conditional instructions.
> 
> For now, we've already seen real-world designs implement the Zalrsc
> extension only[2]. As U-Boot mainly runs with only one HART, we could
> easily support these designs by not using AMO instructions in the
> hard-written assembly if necessary, for which this patch introduces two
> new Kconfig options to indicate the availability of "Zaamo" and "Zalrsc".
> 
> Note that even with this patch, "A" extension is specified in the ISA
> string passed to the compiler as long as one of "Zaamo" or "Zalrsc" is
> available, since they're only recognized with a quite recent version of
> GCC/Clang. The compiler usually doesn't automatically generate atomic
> instructions unless the source explicitly instructs it to do so, thus
> this should be safe.
> 
> Link: 
> https://github.com/riscv/riscv-zaamo-zalrsc/commit/d94c64c63e9120d56bdeb540caf2e5dae60a8126
>  # [1]
> Link: 
> https://lore.kernel.org/u-boot/20250729162035.209849-9-uros.sta...@htecgroup.com/
>  # [2]
> Signed-off-by: Yao Zi <zi...@disroot.org>
> ---
>  arch/riscv/Kconfig  | 17 +++++++++++++++++
>  arch/riscv/Makefile |  7 ++++++-
>  2 files changed, 23 insertions(+), 1 deletion(-)

Reviewed-by: Leo Yu-Chi Liang <ycli...@andestech.com>

Reply via email to