zephyr/arch
Nathan Krueger 6a5520c626 arch/riscv: Adding KConfig options for 'A' and 'M' RISC-V extensions
New KConfig options for 'A' and 'M' RISC-V extensions have been
added.  These are used to configure the '-march' string used by GCC
to produce a compatible binary for the requested RISC-V variant.
In order to maintain compatibility with all currently defined SoC,
default the options for HW mul / Atomics support to 'y', but allow
them to be overridden for any SoC which does not support these.

I tested this change locally via twister agaisnt a few RISC-V platforms
including some 32bit and 64bit. To verify the 4 possibilities of Atomics
& HW Mul: (No, No), (No, Yes), (Yes, No), (Yes, Yes -- current behavior),
I used an out-of-tree GCC (xPack RISC-V GCC) which has multilib support
for rv32i, rv32ia, rv32ima to test against our out-of-tree Intel Nios V/m
processor in HW.  The Zephyr SDK RISCV GCC currently does not contain
multilib support for all variants exposed by these new KConfig options.

Signed-off-by: Nathan Krueger <nathan.krueger@intel.com>
2022-03-22 18:00:32 -04:00
..
arc everywhere: fix typos 2022-03-18 13:24:08 -04:00
arm arch32: Fix incorrect exc_exit sequence 2022-03-21 07:31:29 -04:00
arm64 arm64: simplify the code around the call to z_get_next_switch_handle() 2022-03-18 13:32:49 -04:00
common all: Deprecate UTIL_LISTIFY and replace with LISTIFY 2022-03-08 11:03:30 +01:00
mips kconfig: Rename the TEST_EXTRA stack size option to align with the rest 2022-02-22 08:23:05 -05:00
nios2 core: z_data_copy does not depend on CONFIG_XIP 2022-02-22 10:22:53 +01:00
posix everywhere: fix typos 2022-03-18 13:24:08 -04:00
riscv arch/riscv: Adding KConfig options for 'A' and 'M' RISC-V extensions 2022-03-22 18:00:32 -04:00
sparc everywhere: fix typos 2022-03-18 13:24:08 -04:00
x86 arch/x86: Initialize early serial a tiny bit later 2022-03-22 09:56:54 -04:00
xtensa everywhere: fix typos 2022-03-18 13:24:08 -04:00
CMakeLists.txt cmake: fix include directories to work with out-of-tree arch 2020-08-05 08:06:07 -04:00
Kconfig riscv: implement arch_switch() 2022-03-21 07:28:05 -04:00