aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cargo/1010evk.toml14
-rw-r--r--Cargo.lock37
-rw-r--r--Cargo.toml2
-rw-r--r--imxrt1010/src/lib.rs37
-rw-r--r--imxrt1010evk/src/main.rs3
-rw-r--r--src/imxrt10xx.rs5
-rw-r--r--templates/1010evk.yaml56
7 files changed, 133 insertions, 21 deletions
diff --git a/.cargo/1010evk.toml b/.cargo/1010evk.toml
new file mode 100644
index 0000000..0effc9a
--- /dev/null
+++ b/.cargo/1010evk.toml
@@ -0,0 +1,14 @@
+[build]
+target = "thumbv7em-none-eabi"
+
+[target.'cfg(all(target_os = "none", target_arch = "arm"))']
+rustflags = [
+ "-Clink-arg=-nmagic",
+ "-Clink-arg=-Tlink.x",
+ "-Clink-arg=-Tmemory.x",
+ "-Clink-arg=-Tdefmt.x",
+]
+runner = "target-gen test templates/1010evk.yaml target/1010evk.yaml --protocol=swd --chip=mimxrt1010"
+
+[env]
+DEFMT_LOG="off"
diff --git a/Cargo.lock b/Cargo.lock
index 40c6096..6fd30b8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -129,7 +129,7 @@ checksum = "cf0040922d40f085f9b4902ed60479bcc93389a59c253f3f715cc42cfc1ff1ee"
[[package]]
name = "imxrt-drivers-ccm-10xx"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -137,7 +137,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-ccm-11xx"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -145,7 +145,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-dcdc"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -153,7 +153,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-edma"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -161,7 +161,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-enet"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -169,7 +169,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-flexspi"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -177,7 +177,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-gpc-11xx"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -185,7 +185,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-gpio"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -193,7 +193,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-iomuxc-10xx"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -201,7 +201,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-iomuxc-11xx"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -209,7 +209,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-lpspi"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -217,7 +217,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-pit"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -225,7 +225,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-pmu-11xx"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -233,7 +233,7 @@ dependencies = [
[[package]]
name = "imxrt-drivers-rtwdog"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"ral-registers",
]
@@ -249,6 +249,7 @@ dependencies = [
"imxrt-drivers-dcdc",
"imxrt-drivers-flexspi",
"imxrt-drivers-gpc-11xx",
+ "imxrt-drivers-iomuxc-10xx",
"imxrt-drivers-iomuxc-11xx",
"imxrt-drivers-pmu-11xx",
"imxrt-drivers-rtwdog",
@@ -267,7 +268,7 @@ dependencies = [
[[package]]
name = "imxrt1010"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"cortex-m",
"imxrt-drivers-ccm-10xx",
@@ -306,7 +307,7 @@ dependencies = [
[[package]]
name = "imxrt1040"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"cortex-m",
"imxrt-drivers-ccm-10xx",
@@ -347,7 +348,7 @@ dependencies = [
[[package]]
name = "imxrt1160"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"cortex-m",
"imxrt-drivers-ccm-11xx",
@@ -386,7 +387,7 @@ dependencies = [
[[package]]
name = "imxrt1170"
version = "0.1.0"
-source = "git+https://git.mciantyre.dev/imxrt-drivers#90693d06c183f77a5aa2de3f7ab0bed4bd213c45"
+source = "git+https://git.mciantyre.dev/imxrt-drivers#55c6e1116800fd27f1ca447040beae6dad14e960"
dependencies = [
"cortex-m",
"imxrt-drivers-ccm-11xx",
diff --git a/Cargo.toml b/Cargo.toml
index 468fd20..0d11835 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,6 +13,7 @@ ral-registers = { workspace = true }
imxrt-drivers-rtwdog = { workspace = true }
imxrt-drivers-ccm-10xx = { workspace = true }
imxrt-drivers-ccm-11xx = { workspace = true }
+imxrt-drivers-iomuxc-10xx = { workspace = true }
imxrt-drivers-iomuxc-11xx = { workspace = true }
imxrt-drivers-dcdc = { workspace = true }
imxrt-drivers-pmu-11xx = { workspace = true }
@@ -26,6 +27,7 @@ imxrt-drivers-flexspi = { git = "https://git.mciantyre.dev/imxrt-drivers" }
imxrt-drivers-rtwdog = { git = "https://git.mciantyre.dev/imxrt-drivers" }
imxrt-drivers-ccm-10xx = { git = "https://git.mciantyre.dev/imxrt-drivers" }
imxrt-drivers-ccm-11xx = { git = "https://git.mciantyre.dev/imxrt-drivers" }
+imxrt-drivers-iomuxc-10xx = { git = "https://git.mciantyre.dev/imxrt-drivers" }
imxrt-drivers-iomuxc-11xx = { git = "https://git.mciantyre.dev/imxrt-drivers" }
imxrt-drivers-dcdc = { git = "https://git.mciantyre.dev/imxrt-drivers" }
imxrt-drivers-gpc-11xx = { git = "https://git.mciantyre.dev/imxrt-drivers" }
diff --git a/imxrt1010/src/lib.rs b/imxrt1010/src/lib.rs
index 820e51f..873dd58 100644
--- a/imxrt1010/src/lib.rs
+++ b/imxrt1010/src/lib.rs
@@ -2,7 +2,8 @@
#![no_std]
pub use imxrt_flash_algos::*;
-use imxrt1010::{ccm, dcdc, instances};
+use imxrt1010::{ccm, dcdc, instances, iomuxc};
+use ral_registers as ral;
pub struct Imxrt1010;
impl imxrt10xx::Imxrt10xx for Imxrt1010 {
@@ -16,6 +17,9 @@ impl imxrt10xx::Imxrt10xx for Imxrt1010 {
const FLEXSPI_FIFO_CAPACITY_BYTES: usize = 128;
+ type IOMUXC = imxrt1010::iomuxc::Instance;
+ const IOMUXC_INSTANCE: Self::IOMUXC = unsafe { instances::iomuxc() };
+
fn configure_clocks(ccm: ccm::CCM, ccm_analog: ccm::CCM_ANALOG, dcdc: dcdc::Instance) {
dcdc::set_target_vdd_soc(dcdc, 1250);
@@ -23,11 +27,40 @@ impl imxrt10xx::Imxrt10xx for Imxrt1010 {
ccm::pll3::restart(ccm_analog);
- ccm::flexspi1_clk::set_divider(ccm, 4);
+ ccm::flexspi1_clk::set_divider(ccm, 8);
ccm::flexspi1_clk::set_selection(ccm, ccm::flexspi1_clk::Selection::Pll3);
ccm::clock_gate::set(ccm, ccm::gates::FLEXSPI, true.into());
}
+
+ fn configure_pins(iomuxc: Self::IOMUXC) {
+ use iomuxc::{pad, select_input};
+
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_12], MUX_MODE: 0, SION: 1); // DQS
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_06], MUX_MODE: 0, SION: 0);
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_05], MUX_MODE: 0, SION: 0);
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_10], MUX_MODE: 0, SION: 1); // SCK
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_09], MUX_MODE: 0, SION: 0);
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_07], MUX_MODE: 0, SION: 0);
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_08], MUX_MODE: 0, SION: 0);
+ ral::write_reg!(iomuxc, iomuxc, SW_MUX_CTL_PAD[pad::GPIO_SD_11], MUX_MODE: 0, SION: 0);
+
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_12], PUE: 1, PKE: 1, SPEED: MEDIUM_100MHZ, DSE: R0, PUS: PD_100K_OHM); // DQS
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_06], PUE: 0, PKE: 0, SPEED: MEDIUM_100MHZ, DSE: R0);
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_05], PUE: 0, PKE: 0, SPEED: MEDIUM_100MHZ, DSE: R0);
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_10], PUE: 0, PKE: 0, SPEED: MEDIUM_100MHZ, DSE: R0);
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_09], PUE: 0, PKE: 0, SPEED: MEDIUM_100MHZ, DSE: R0);
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_07], PUE: 0, PKE: 0, SPEED: MEDIUM_100MHZ, DSE: R0);
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_08], PUE: 0, PKE: 0, SPEED: MEDIUM_100MHZ, DSE: R0);
+ ral::write_reg!(iomuxc, iomuxc, SW_PAD_CTL_PAD[pad::GPIO_SD_11], PUE: 0, PKE: 0, SPEED: MEDIUM_100MHZ, DSE: R0);
+
+ ral::write_reg!(
+ iomuxc,
+ iomuxc,
+ SELECT_INPUT[select_input::FLEXSPI_DQS_FA],
+ 1
+ );
+ }
}
pub type Algorithm<const FLASH_SIZE_BYTES: usize> =
diff --git a/imxrt1010evk/src/main.rs b/imxrt1010evk/src/main.rs
index 8e8aaaf..805bf09 100644
--- a/imxrt1010evk/src/main.rs
+++ b/imxrt1010evk/src/main.rs
@@ -13,7 +13,8 @@ flash_algorithm::algorithm!(Algorithm, {
// We support page crossings. Suggest a larger page
// size so that probe-rs places larger buffers into
// RAM per programming operation, reducing overhead.
- page_size: Algorithm::sector_size_bytes() as _,
+ // page_size: Algorithm::sector_size_bytes() as _,
+ page_size: 256,
empty_value: 0xFF,
program_time_out: 1000,
erase_time_out: 2000,
diff --git a/src/imxrt10xx.rs b/src/imxrt10xx.rs
index 042574c..d107edc 100644
--- a/src/imxrt10xx.rs
+++ b/src/imxrt10xx.rs
@@ -14,7 +14,11 @@ pub trait Imxrt10xx: 'static {
const FLEXSPI_FIFO_CAPACITY_BYTES: usize;
+ type IOMUXC;
+ const IOMUXC_INSTANCE: Self::IOMUXC;
+
fn configure_clocks(ccm: ccm::Instance, ccm_analog: ccm_analog::Instance, dcdc: dcdc::Instance);
+ fn configure_pins(iomuxc: Self::IOMUXC);
}
pub struct Algorithm<C: Imxrt10xx, const FLASH_SIZE_BYTES: usize>(PhantomData<C>);
@@ -33,6 +37,7 @@ impl<C: Imxrt10xx, const FLASH_SIZE_BYTES: usize> Algorithm<C, FLASH_SIZE_BYTES>
}
pub fn initialize() -> Self {
+ C::configure_pins(C::IOMUXC_INSTANCE);
C::configure_clocks(C::CCM_INSTANCE, C::CCM_ANALOG_INSTANCE, C::DCDC_INSTANCE);
crate::flash::initialize(
C::FLEXSPI1_INSTANCE,
diff --git a/templates/1010evk.yaml b/templates/1010evk.yaml
new file mode 100644
index 0000000..593c7ee
--- /dev/null
+++ b/templates/1010evk.yaml
@@ -0,0 +1,56 @@
+name: MIMXRT1010 series
+manufacturer:
+ id: 0x15
+ cc: 0x0
+variants:
+ - name: MIMXRT1010
+ cores:
+ - name: main
+ type: armv7em
+ core_access_options: !Arm
+ ap: !v1 0
+ memory_map:
+ - !Ram
+ name: DTCM
+ range:
+ start: 0x20000000
+ end: 0x20008000
+ access:
+ boot: false
+ cores:
+ - main
+ - !Nvm
+ name: FLEXSPI1
+ range:
+ start: 0x60000000
+ end: 0x61000000
+ access:
+ boot: true
+ cores:
+ - main
+ flash_algorithms:
+ - imxrt1010evk
+flash_algorithms:
+ - name: imxrt1010evk
+ description: A flash algorithm under test
+ cores:
+ - main
+ default: true
+ instructions: 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
+ pc_init: 0x0
+ pc_uninit: 0x0
+ pc_program_page: 0x0
+ pc_erase_sector: 0x0
+ pc_erase_all: 0x0
+ data_section_offset: 0x0
+ flash_properties:
+ address_range:
+ start: 0x0
+ end: 0x0
+ page_size: 0x0
+ erased_byte_value: 0x0
+ program_page_timeout: 0x0
+ erase_sector_timeout: 0x0
+ sectors:
+ - size: 0x0
+ address: 0x0