Skip to content

Commit

Permalink
Update esp-hal
Browse files Browse the repository at this point in the history
  • Loading branch information
bugadani committed Nov 30, 2023
1 parent 5c0c5a4 commit 4184579
Show file tree
Hide file tree
Showing 13 changed files with 57 additions and 48 deletions.
18 changes: 9 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ portable-atomic = { version = "1.5", default-features = false }
portable_atomic_enum = "0.3.0"
log = "0.4.20"
embedded-svc = { version = "0.26.1", default-features = false, features = [] }
enumset = { version = "1", default-features = false }
enumset = { version = "1.1.3", default-features = false }
linked_list_allocator = { version = "0.10.5", default-features = false, features = ["const_mut_refs"] }
embedded-io = "0.6.1"
fugit = "0.3.7"
Expand All @@ -45,7 +45,7 @@ static_cell = { version = "2.0", features = ["nightly"] }

embassy-net = { version = "0.2.1", features = ["nightly", "tcp", "udp", "dhcpv4", "medium-ethernet"] }
bleps = { git = "https://github.com/bjoernQ/bleps", package = "bleps", rev = "0db8fcb", features = ["macros"] }
embassy-executor = { version = "0.3.3", package = "embassy-executor", features = ["nightly", "executor-thread", "integrated-timers"] }
embassy-executor = { version = "0.3.3", package = "embassy-executor", features = ["nightly", "integrated-timers"] }
embassy-time = { version = "0.1.3", features = ["nightly"] }
esp-println = { version = "0.7.0" }
esp-backtrace = { version = "0.9.0", features = ["panic-handler", "exception-handler", "print-uart"] }
Expand All @@ -57,10 +57,10 @@ atomic-waker = { version = "1.1.2", default-features = false } # need this to ac

# portable-atomic compatible esp-hal revisions
[patch.crates-io]
esp32-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "7084a380" }
esp32c2-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "7084a380" }
esp32c3-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "7084a380" }
esp32c6-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "7084a380" }
esp32s2-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "7084a380" }
esp32s3-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "7084a380" }
esp-hal-common = { git = "https://github.com/esp-rs/esp-hal.git", rev = "7084a380" }
esp32-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "c9e0ad2" }
esp32c2-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "c9e0ad2" }
esp32c3-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "c9e0ad2" }
esp32c6-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "c9e0ad2" }
esp32s2-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "c9e0ad2" }
esp32s3-hal = { git = "https://github.com/esp-rs/esp-hal.git", rev = "c9e0ad2" }
esp-hal-common = { git = "https://github.com/esp-rs/esp-hal.git", rev = "c9e0ad2" }
12 changes: 6 additions & 6 deletions esp-wifi/.cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@
esp32 = "run --features esp32 --target xtensa-esp32-none-elf --features esp32-hal/default,esp32-hal/embassy-time-timg0,esp32-hal/embassy-executor-thread"
esp32s2 = "run --features esp32s2 --target xtensa-esp32s2-none-elf --features esp32s2-hal/default,esp32s2-hal/embassy-time-timg0,esp32s2-hal/embassy-executor-thread"
esp32s3 = "run --features esp32s3 --target xtensa-esp32s3-none-elf --features esp32s3-hal/default,esp32s3-hal/embassy-time-timg0,esp32s3-hal/embassy-executor-thread"
esp32c2 = "run --features esp32c2 --target riscv32imc-unknown-none-elf --features esp32c2-hal/default,esp32c2-hal/embassy-time-timg0"
esp32c3 = "run --features esp32c3 --target riscv32imc-unknown-none-elf --features esp32c3-hal/default,esp32c3-hal/embassy-time-timg0"
esp32c6 = "run --features esp32c6 --target riscv32imac-unknown-none-elf --features esp32c6-hal/default,esp32c6-hal/embassy-time-timg0"
esp32c2 = "run --features esp32c2 --target riscv32imc-unknown-none-elf --features esp32c2-hal/default,esp32c2-hal/embassy-time-timg0,esp32c2-hal/embassy-executor-thread,portable-atomic"
esp32c3 = "run --features esp32c3 --target riscv32imc-unknown-none-elf --features esp32c3-hal/default,esp32c3-hal/embassy-time-timg0,esp32c3-hal/embassy-executor-thread,portable-atomic"
esp32c6 = "run --features esp32c6 --target riscv32imac-unknown-none-elf --features esp32c6-hal/default,esp32c6-hal/embassy-time-timg0,esp32c6-hal/embassy-executor-thread"

besp32 = "build --features esp32 --target xtensa-esp32-none-elf --features esp32-hal/default,esp32-hal/embassy-time-timg0,esp32-hal/embassy-executor-thread"
besp32s2 = "build --features esp32s2 --target xtensa-esp32s2-none-elf --features esp32s2-hal/default,esp32s2-hal/embassy-time-timg0,esp32s2-hal/embassy-executor-thread"
besp32s3 = "build --features esp32s3 --target xtensa-esp32s3-none-elf --features esp32s3-hal/default,esp32s3-hal/embassy-time-timg0,esp32s3-hal/embassy-executor-thread"
besp32c2 = "build --features esp32c2 --target riscv32imc-unknown-none-elf --features esp32c2-hal/default,esp32c2-hal/embassy-time-timg0,portable-atomic/critical-section"
besp32c3 = "build --features esp32c3 --target riscv32imc-unknown-none-elf --features esp32c3-hal/default,esp32c3-hal/embassy-time-timg0,portable-atomic/critical-section"
besp32c6 = "build --features esp32c6 --target riscv32imac-unknown-none-elf --features esp32c6-hal/default,esp32c6-hal/embassy-time-timg0"
besp32c2 = "build --features esp32c2 --target riscv32imc-unknown-none-elf --features esp32c2-hal/default,esp32c2-hal/embassy-time-timg0,esp32c2-hal/embassy-executor-thread,portable-atomic"
besp32c3 = "build --features esp32c3 --target riscv32imc-unknown-none-elf --features esp32c3-hal/default,esp32c3-hal/embassy-time-timg0,esp32c3-hal/embassy-executor-thread,portable-atomic"
besp32c6 = "build --features esp32c6 --target riscv32imac-unknown-none-elf --features esp32c6-hal/default,esp32c6-hal/embassy-time-timg0,esp32c6-hal/embassy-executor-thread"

[target.riscv32imc-unknown-none-elf]
runner = "espflash flash --monitor"
Expand Down
17 changes: 12 additions & 5 deletions esp-wifi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,15 @@ bleps = { workspace = true, features = ["async"] }
embedded-hal-async.workspace = true
log.workspace = true
static_cell.workspace = true
portable-atomic = { workspace = true, features = ["critical-section"] } # for tests/examples we use portable-atomic
portable-atomic = { workspace = true } # for tests/examples we use portable-atomic

[features]
default = [ "log", "ipv4", "tcp", "udp", "icmp", "igmp", "dns", "dhcpv4", "portable-atomic" ]

# chip features
esp32c2 = [ "esp32c2-hal", "esp-wifi-sys/esp32c2", "esp-println/esp32c2", "esp-backtrace/esp32c2", "embassy-executor/arch-riscv32" ]
esp32c3 = [ "esp32c3-hal", "esp-wifi-sys/esp32c3", "esp-println/esp32c3", "esp-backtrace/esp32c3", "embassy-executor/arch-riscv32" ]
esp32c6 = [ "esp32c6-hal", "esp-wifi-sys/esp32c6", "esp-println/esp32c6", "esp-backtrace/esp32c6", "embassy-executor/arch-riscv32" ]
esp32c2 = [ "esp32c2-hal", "esp-wifi-sys/esp32c2", "esp-println/esp32c2", "esp-backtrace/esp32c2" ]
esp32c3 = [ "esp32c3-hal", "esp-wifi-sys/esp32c3", "esp-println/esp32c3", "esp-backtrace/esp32c3" ]
esp32c6 = [ "esp32c6-hal", "esp-wifi-sys/esp32c6", "esp-println/esp32c6", "esp-backtrace/esp32c6" ]
esp32 = [ "esp32-hal", "esp-wifi-sys/esp32", "esp-println/esp32", "esp-backtrace/esp32" ]
esp32s2 = [ "esp32s2-hal", "esp-wifi-sys/esp32s2", "esp-println/esp32s2", "esp-backtrace/esp32s2" ]
esp32s3 = [ "esp32s3-hal", "esp-wifi-sys/esp32s3", "esp-println/esp32s3", "esp-backtrace/esp32s3" ]
Expand Down Expand Up @@ -142,7 +142,14 @@ log = [
"esp32s3-hal?/log",
]

portable-atomic = ["dep:portable-atomic", "portable_atomic_enum/portable-atomic", "futures-util/portable-atomic", "atomic-waker/portable-atomic"]
portable-atomic = [
"dep:portable-atomic",
"portable_atomic_enum/portable-atomic",
"futures-util/portable-atomic",
"atomic-waker/portable-atomic",
"esp32c2-hal?/portable-atomic",
"esp32c3-hal?/portable-atomic",
]

[package.metadata.docs.rs]
features = ["esp32c3", "wifi", "ble", "async", "embassy-net", "esp32c3-hal/embassy-time-systick", "esp32c3-hal/default"]
Expand Down
9 changes: 5 additions & 4 deletions esp-wifi/src/common_adapter/common_adapter_esp32.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ pub(crate) fn enable_wifi_power_domain() {
let rtc_cntl = &*crate::hal::peripherals::RTC_CNTL::ptr();

rtc_cntl
.dig_pwc
.dig_pwc()
.modify(|_, w| w.wifi_force_pd().clear_bit());

rtc_cntl
.dig_iso
.dig_iso()
.modify(|_, w| w.wifi_force_iso().clear_bit());
}
}
Expand Down Expand Up @@ -210,8 +210,9 @@ unsafe extern "C" fn phy_exit_critical(level: u32) {
#[ram]
#[no_mangle]
unsafe extern "C" fn rtc_get_xtal() -> u32 {
trace!("rtc_get_xtal - just hardcoded value 40 for now");
40
use crate::hal::clock::Clock;
let xtal = crate::hal::rtc_cntl::RtcClock::get_xtal_freq();
xtal.mhz()
}

#[no_mangle]
Expand Down
5 changes: 3 additions & 2 deletions esp-wifi/src/common_adapter/common_adapter_esp32c2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ pub(crate) unsafe fn phy_disable_clock() {

#[no_mangle]
pub extern "C" fn rtc_clk_xtal_freq_get() -> i32 {
// JUST SUPPORT 40MHz XTAL for now
40
use crate::hal::clock::Clock;
let xtal = crate::hal::rtc_cntl::RtcClock::get_xtal_freq();
xtal.mhz() as i32
}
8 changes: 4 additions & 4 deletions esp-wifi/src/common_adapter/common_adapter_esp32c3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,18 @@ pub(crate) fn enable_wifi_power_domain() {
let syscon = &*crate::hal::peripherals::APB_CTRL::ptr();

rtc_cntl
.dig_pwc
.dig_pwc()
.modify(|_, w| w.wifi_force_pd().clear_bit());

syscon
.wifi_rst_en
.wifi_rst_en()
.modify(|r, w| w.bits(r.bits() | MODEM_RESET_FIELD_WHEN_PU));
syscon
.wifi_rst_en
.wifi_rst_en()
.modify(|r, w| w.bits(r.bits() & !MODEM_RESET_FIELD_WHEN_PU));

rtc_cntl
.dig_iso
.dig_iso()
.modify(|_, w| w.wifi_force_iso().clear_bit());
}
}
Expand Down
8 changes: 4 additions & 4 deletions esp-wifi/src/common_adapter/common_adapter_esp32s2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,18 @@ pub(crate) fn enable_wifi_power_domain() {
let syscon = &*crate::hal::peripherals::SYSCON::ptr();

rtc_cntl
.dig_pwc
.dig_pwc()
.modify(|_, w| w.wifi_force_pd().clear_bit());

syscon
.wifi_rst_en
.wifi_rst_en()
.modify(|r, w| w.bits(r.bits() | MODEM_RESET_FIELD_WHEN_PU));
syscon
.wifi_rst_en
.wifi_rst_en()
.modify(|r, w| w.bits(r.bits() & !MODEM_RESET_FIELD_WHEN_PU));

rtc_cntl
.dig_iso
.dig_iso()
.modify(|_, w| w.wifi_force_iso().clear_bit());
}
}
Expand Down
8 changes: 4 additions & 4 deletions esp-wifi/src/common_adapter/common_adapter_esp32s3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,18 @@ pub(crate) fn enable_wifi_power_domain() {
let syscon = &*crate::hal::peripherals::APB_CTRL::ptr();

rtc_cntl
.dig_pwc
.dig_pwc()
.modify(|_, w| w.wifi_force_pd().clear_bit());

syscon
.wifi_rst_en
.wifi_rst_en()
.modify(|r, w| w.bits(r.bits() | MODEM_RESET_FIELD_WHEN_PU));
syscon
.wifi_rst_en
.wifi_rst_en()
.modify(|r, w| w.bits(r.bits() & !MODEM_RESET_FIELD_WHEN_PU));

rtc_cntl
.dig_iso
.dig_iso()
.modify(|_, w| w.wifi_force_iso().clear_bit());
}
}
Expand Down
4 changes: 2 additions & 2 deletions esp-wifi/src/timer/riscv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ fn FROM_CPU_INTR3(trap_frame: &mut TrapFrame) {
unsafe {
// clear FROM_CPU_INTR3
(&*SystemPeripheral::PTR)
.cpu_intr_from_cpu_3
.cpu_intr_from_cpu_3()
.modify(|_, w| w.cpu_intr_from_cpu_3().clear_bit());
}

Expand All @@ -90,7 +90,7 @@ fn FROM_CPU_INTR3(trap_frame: &mut TrapFrame) {
pub fn yield_task() {
unsafe {
(&*SystemPeripheral::PTR)
.cpu_intr_from_cpu_3
.cpu_intr_from_cpu_3()
.modify(|_, w| w.cpu_intr_from_cpu_3().set_bit());
}
}
Expand Down
4 changes: 2 additions & 2 deletions esp-wifi/src/timer/timer_esp32c6.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ pub fn setup_radio_isr() {
// for some reason for this interrupt, mapping it to 0 doesn't deactivate it
let interrupt_core0 = unsafe { &*peripherals::INTERRUPT_CORE0::PTR };
interrupt_core0
.wifi_bb_intr_map
.wifi_bb_intr_map()
.write(|w| w.wifi_bb_intr_map().variant(31));
interrupt_core0
.modem_peri_timeout_intr_map
.modem_peri_timeout_intr_map()
.write(|w| w.modem_peri_timeout_intr_map().variant(31));

#[cfg(feature = "ble")]
Expand Down
4 changes: 2 additions & 2 deletions esp-wifi/src/wifi/os_adapter_esp32c2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ use crate::hal::{peripherals, riscv};
pub(crate) fn chip_ints_on(mask: u32) {
unsafe {
(*peripherals::INTERRUPT_CORE0::PTR)
.cpu_int_enable
.cpu_int_enable()
.modify(|r, w| w.bits(r.bits() | mask));
}
}

pub(crate) fn chip_ints_off(mask: u32) {
unsafe {
(*peripherals::INTERRUPT_CORE0::PTR)
.cpu_int_enable
.cpu_int_enable()
.modify(|r, w| w.bits(r.bits() & !mask));
}
}
Expand Down
4 changes: 2 additions & 2 deletions esp-wifi/src/wifi/os_adapter_esp32c3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ use crate::hal::{peripherals, riscv};
pub(crate) fn chip_ints_on(mask: u32) {
unsafe {
(*peripherals::INTERRUPT_CORE0::PTR)
.cpu_int_enable
.cpu_int_enable()
.modify(|r, w| w.bits(r.bits() | mask));
}
}

pub(crate) fn chip_ints_off(mask: u32) {
unsafe {
(*peripherals::INTERRUPT_CORE0::PTR)
.cpu_int_enable
.cpu_int_enable()
.modify(|r, w| w.bits(r.bits() & !mask));
}
}
Expand Down
4 changes: 2 additions & 2 deletions esp-wifi/src/wifi/os_adapter_esp32c6.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ use crate::hal::{peripherals, riscv};
pub(crate) fn chip_ints_on(mask: u32) {
unsafe {
(*peripherals::INTPRI::PTR)
.cpu_int_enable
.cpu_int_enable()
.modify(|r, w| w.bits(r.bits() | mask));
}
}

pub(crate) fn chip_ints_off(mask: u32) {
unsafe {
(*peripherals::INTPRI::PTR)
.cpu_int_enable
.cpu_int_enable()
.modify(|r, w| w.bits(r.bits() & !mask));
}
}
Expand Down

0 comments on commit 4184579

Please sign in to comment.