aboutsummaryrefslogtreecommitdiff
path: root/xtask/src
diff options
context:
space:
mode:
authorRomán Cárdenas Rodríguez <rcardenas.rod@gmail.com>2024-10-23 18:50:12 +0200
committerHenrik Tjäder <henrik@tjaders.com>2025-03-12 19:41:40 +0000
commit183e73904a5d14e29f8a7edbb2d9553dddb736af (patch)
tree87735b6518ed1532e9b2cc6c8c145d3243ec3354 /xtask/src
parentbac77de9bc5249a8d4e34c816bb94f5945fb1f58 (diff)
Prepare for new riscv ecosystem
Diffstat (limited to 'xtask/src')
-rw-r--r--xtask/src/argument_parsing.rs19
1 files changed, 15 insertions, 4 deletions
diff --git a/xtask/src/argument_parsing.rs b/xtask/src/argument_parsing.rs
index 8707ec5..f50e285 100644
--- a/xtask/src/argument_parsing.rs
+++ b/xtask/src/argument_parsing.rs
@@ -167,8 +167,10 @@ pub enum Backends {
Thumbv8Base,
Thumbv8Main,
RiscvEsp32C3,
- Riscv32ImcClint, // not working yet (issues with portable-atomic features...)
+ Riscv32ImcClint,
+ Riscv32ImcMecall,
Riscv32ImacClint,
+ Riscv32ImacMecall,
}
impl Backends {
@@ -179,8 +181,10 @@ impl Backends {
Backends::Thumbv7 => ARMV7M,
Backends::Thumbv8Base => ARMV8MBASE,
Backends::Thumbv8Main => ARMV8MMAIN,
- Backends::Riscv32ImcClint | Backends::RiscvEsp32C3 => RISCV32IMC,
- Backends::Riscv32ImacClint => RISCV32IMAC,
+ Backends::Riscv32ImcClint | Backends::Riscv32ImcMecall | Backends::RiscvEsp32C3 => {
+ RISCV32IMC
+ }
+ Backends::Riscv32ImacClint | Backends::Riscv32ImacMecall => RISCV32IMAC,
}
}
@@ -193,6 +197,7 @@ impl Backends {
Backends::Thumbv8Main => "thumbv8main-backend",
Backends::RiscvEsp32C3 => "riscv-esp32c3-backend",
Backends::Riscv32ImcClint | Backends::Riscv32ImacClint => "riscv-clint-backend",
+ Backends::Riscv32ImcMecall | Backends::Riscv32ImacMecall => "riscv-mecall-backend",
}
}
#[allow(clippy::wrong_self_convention)]
@@ -202,6 +207,7 @@ impl Backends {
Backends::Thumbv7 | Backends::Thumbv8Main => "cortex-m-basepri",
Backends::RiscvEsp32C3 => "riscv-esp32c3",
Backends::Riscv32ImcClint | Backends::Riscv32ImacClint => "riscv-clint",
+ Backends::Riscv32ImcMecall | Backends::Riscv32ImacMecall => "riscv-mecall",
}
}
}
@@ -246,7 +252,12 @@ impl Platforms {
let c = "-C".to_string();
match self {
Platforms::Esp32C3 => vec![c, "link-arg=-Tlinkall.x".to_string()],
- Platforms::Hifive1 => vec![c, "link-arg=-Thifive1-link.x".to_string()],
+ Platforms::Hifive1 => vec![
+ c.clone(),
+ "link-arg=-Thifive1-link.x".to_string(),
+ c,
+ "portable_atomic_target_feature=\"zaamo\"".to_string(),
+ ],
Platforms::Lm3s6965 => vec![c, "link-arg=-Tlink.x".to_string()],
Platforms::Nrf52840 => vec![
c.clone(),