aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hansen <[email protected]>2023-12-03 13:47:26 -0500
committerPeter Hansen <[email protected]>2023-12-03 13:47:26 -0500
commitdd62bb16e541dae3ed6471d170f6de68a2a03252 (patch)
treee6381f751a1022f29f41f657b26b49aa3955cc99
parenta31ae52d1a7e0607edeaea9acf30b03ea510fd83 (diff)
minimum build code for new APPROTECT is chip type-specific
-rw-r--r--embassy-nrf/src/chips/nrf52805.rs1
-rw-r--r--embassy-nrf/src/chips/nrf52810.rs1
-rw-r--r--embassy-nrf/src/chips/nrf52811.rs1
-rw-r--r--embassy-nrf/src/chips/nrf52820.rs1
-rw-r--r--embassy-nrf/src/chips/nrf52832.rs1
-rw-r--r--embassy-nrf/src/chips/nrf52833.rs1
-rw-r--r--embassy-nrf/src/chips/nrf52840.rs1
-rw-r--r--embassy-nrf/src/lib.rs5
8 files changed, 10 insertions, 2 deletions
diff --git a/embassy-nrf/src/chips/nrf52805.rs b/embassy-nrf/src/chips/nrf52805.rs
index 70e4b4863..624d6613d 100644
--- a/embassy-nrf/src/chips/nrf52805.rs
+++ b/embassy-nrf/src/chips/nrf52805.rs
@@ -7,6 +7,7 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 256;
7pub const FLASH_SIZE: usize = 192 * 1024; 7pub const FLASH_SIZE: usize = 192 * 1024;
8 8
9pub const RESET_PIN: u32 = 21; 9pub const RESET_PIN: u32 = 21;
10pub const APPROTECT_MIN_BUILD_CODE: u8 = b'B';
10 11
11embassy_hal_internal::peripherals! { 12embassy_hal_internal::peripherals! {
12 // RTC 13 // RTC
diff --git a/embassy-nrf/src/chips/nrf52810.rs b/embassy-nrf/src/chips/nrf52810.rs
index 7416d3912..002feab3b 100644
--- a/embassy-nrf/src/chips/nrf52810.rs
+++ b/embassy-nrf/src/chips/nrf52810.rs
@@ -7,6 +7,7 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 256;
7pub const FLASH_SIZE: usize = 192 * 1024; 7pub const FLASH_SIZE: usize = 192 * 1024;
8 8
9pub const RESET_PIN: u32 = 21; 9pub const RESET_PIN: u32 = 21;
10pub const APPROTECT_MIN_BUILD_CODE: u8 = b'E';
10 11
11embassy_hal_internal::peripherals! { 12embassy_hal_internal::peripherals! {
12 // RTC 13 // RTC
diff --git a/embassy-nrf/src/chips/nrf52811.rs b/embassy-nrf/src/chips/nrf52811.rs
index 588010685..5952907f8 100644
--- a/embassy-nrf/src/chips/nrf52811.rs
+++ b/embassy-nrf/src/chips/nrf52811.rs
@@ -7,6 +7,7 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 256;
7pub const FLASH_SIZE: usize = 192 * 1024; 7pub const FLASH_SIZE: usize = 192 * 1024;
8 8
9pub const RESET_PIN: u32 = 21; 9pub const RESET_PIN: u32 = 21;
10pub const APPROTECT_MIN_BUILD_CODE: u8 = b'B';
10 11
11embassy_hal_internal::peripherals! { 12embassy_hal_internal::peripherals! {
12 // RTC 13 // RTC
diff --git a/embassy-nrf/src/chips/nrf52820.rs b/embassy-nrf/src/chips/nrf52820.rs
index 85184d48c..c2f792cb9 100644
--- a/embassy-nrf/src/chips/nrf52820.rs
+++ b/embassy-nrf/src/chips/nrf52820.rs
@@ -7,6 +7,7 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 512;
7pub const FLASH_SIZE: usize = 256 * 1024; 7pub const FLASH_SIZE: usize = 256 * 1024;
8 8
9pub const RESET_PIN: u32 = 18; 9pub const RESET_PIN: u32 = 18;
10pub const APPROTECT_MIN_BUILD_CODE: u8 = b'D';
10 11
11embassy_hal_internal::peripherals! { 12embassy_hal_internal::peripherals! {
12 // USB 13 // USB
diff --git a/embassy-nrf/src/chips/nrf52832.rs b/embassy-nrf/src/chips/nrf52832.rs
index ae39628d2..65d52364d 100644
--- a/embassy-nrf/src/chips/nrf52832.rs
+++ b/embassy-nrf/src/chips/nrf52832.rs
@@ -11,6 +11,7 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 255;
11pub const FLASH_SIZE: usize = 512 * 1024; 11pub const FLASH_SIZE: usize = 512 * 1024;
12 12
13pub const RESET_PIN: u32 = 21; 13pub const RESET_PIN: u32 = 21;
14pub const APPROTECT_MIN_BUILD_CODE: u8 = b'G';
14 15
15embassy_hal_internal::peripherals! { 16embassy_hal_internal::peripherals! {
16 // RTC 17 // RTC
diff --git a/embassy-nrf/src/chips/nrf52833.rs b/embassy-nrf/src/chips/nrf52833.rs
index 342ae8b15..7c9b66d69 100644
--- a/embassy-nrf/src/chips/nrf52833.rs
+++ b/embassy-nrf/src/chips/nrf52833.rs
@@ -7,6 +7,7 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 512;
7pub const FLASH_SIZE: usize = 512 * 1024; 7pub const FLASH_SIZE: usize = 512 * 1024;
8 8
9pub const RESET_PIN: u32 = 18; 9pub const RESET_PIN: u32 = 18;
10pub const APPROTECT_MIN_BUILD_CODE: u8 = b'B';
10 11
11embassy_hal_internal::peripherals! { 12embassy_hal_internal::peripherals! {
12 // USB 13 // USB
diff --git a/embassy-nrf/src/chips/nrf52840.rs b/embassy-nrf/src/chips/nrf52840.rs
index a5cbd798a..51c55cd4d 100644
--- a/embassy-nrf/src/chips/nrf52840.rs
+++ b/embassy-nrf/src/chips/nrf52840.rs
@@ -7,6 +7,7 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 512;
7pub const FLASH_SIZE: usize = 1024 * 1024; 7pub const FLASH_SIZE: usize = 1024 * 1024;
8 8
9pub const RESET_PIN: u32 = 18; 9pub const RESET_PIN: u32 = 18;
10pub const APPROTECT_MIN_BUILD_CODE: u8 = b'F';
10 11
11embassy_hal_internal::peripherals! { 12embassy_hal_internal::peripherals! {
12 // USB 13 // USB
diff --git a/embassy-nrf/src/lib.rs b/embassy-nrf/src/lib.rs
index ed8aad89b..3274dafb1 100644
--- a/embassy-nrf/src/lib.rs
+++ b/embassy-nrf/src/lib.rs
@@ -349,10 +349,11 @@ pub fn init(config: config::Config) -> Peripherals {
349 // Get the letter for the build code (b'A' .. b'F') 349 // Get the letter for the build code (b'A' .. b'F')
350 let build_code = (variant >> 8) as u8; 350 let build_code = (variant >> 8) as u8;
351 351
352 if build_code >= b'F' { 352 if build_code >= chip::APPROTECT_MIN_BUILD_CODE {
353 // Chips with build code F and higher (revision 3 and higher) have an 353 // Chips with a certain chip type-specific build code or higher have an
354 // improved APPROTECT ("hardware and software controlled access port protection") 354 // improved APPROTECT ("hardware and software controlled access port protection")
355 // which needs explicit action by the firmware to keep it unlocked 355 // which needs explicit action by the firmware to keep it unlocked
356 // See https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/working-with-the-nrf52-series-improved-approtect
356 357
357 // UICR.APPROTECT = SwDisabled 358 // UICR.APPROTECT = SwDisabled
358 let res = uicr_write(consts::UICR_APPROTECT, consts::APPROTECT_DISABLED); 359 let res = uicr_write(consts::UICR_APPROTECT, consts::APPROTECT_DISABLED);