e310x-hal
e310x-hal copied to clipboard
force-amo: allowing AMOxxx instructions for riscv32imc
The E310X atomic support is limited, as it only allows us to use AMO instructions, while LR/SC instructions provoke an exception. Thus, we need to provide support for riscv32imc-unknown-none-elf to use LR/SC instructions via portable-atomic. However, currently you either use emulation of all the atomic instructions or a faulty atomic target.
This PR uses a new version of portable-atomic, which added a new feature to use real AMO instructions for riscv32imc-unknown-none-elf targets while emulating LR/SC instructions. This is particularly well-suited for the E310x microcontroller. Note that the MSRV is now 1.72.
As a side note: In my opinion, this microcontroller does not deserve to be called a riscv32imac target. We should stop supporting riscv32imac and clearly document this particularity, asking users to always use riscv32imc with portable-atomic and force-amo when needed.
This PR solves #56