diff --git a/02_runtime_init/Cargo.lock b/02_runtime_init/Cargo.lock index 090fdaee..c2773baa 100644 --- a/02_runtime_init/Cargo.lock +++ b/02_runtime_init/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -18,17 +18,8 @@ dependencies = [ "cortex-a", ] -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ - "tock-registers", -] - [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/02_runtime_init/Cargo.toml b/02_runtime_init/Cargo.toml index 69f9f06d..ebf536a7 100644 --- a/02_runtime_init/Cargo.toml +++ b/02_runtime_init/Cargo.toml @@ -24,4 +24,5 @@ path = "src/main.rs" # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/03_hacky_hello_world/Cargo.lock b/03_hacky_hello_world/Cargo.lock index 09dfcc72..6779dc47 100644 --- a/03_hacky_hello_world/Cargo.lock +++ b/03_hacky_hello_world/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -18,17 +18,8 @@ dependencies = [ "cortex-a", ] -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ - "tock-registers", -] - [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/03_hacky_hello_world/Cargo.toml b/03_hacky_hello_world/Cargo.toml index ffe9206f..3d3e28ab 100644 --- a/03_hacky_hello_world/Cargo.toml +++ b/03_hacky_hello_world/Cargo.toml @@ -24,4 +24,5 @@ path = "src/main.rs" # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/04_safe_globals/Cargo.lock b/04_safe_globals/Cargo.lock index ccfbefbf..4b5f5c72 100644 --- a/04_safe_globals/Cargo.lock +++ b/04_safe_globals/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -18,17 +18,8 @@ dependencies = [ "cortex-a", ] -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ - "tock-registers", -] - [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/04_safe_globals/Cargo.toml b/04_safe_globals/Cargo.toml index fc077af9..09fbaa91 100644 --- a/04_safe_globals/Cargo.toml +++ b/04_safe_globals/Cargo.toml @@ -24,4 +24,5 @@ path = "src/main.rs" # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/05_drivers_gpio_uart/Cargo.lock b/05_drivers_gpio_uart/Cargo.lock index 87044397..b39e584f 100644 --- a/05_drivers_gpio_uart/Cargo.lock +++ b/05_drivers_gpio_uart/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.5.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/05_drivers_gpio_uart/Cargo.toml b/05_drivers_gpio_uart/Cargo.toml index 05abef4d..92c98e0c 100644 --- a/05_drivers_gpio_uart/Cargo.toml +++ b/05_drivers_gpio_uart/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 771151e7..dd207221 100644 --- a/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/05_drivers_gpio_uart/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/06_uart_chainloader/Cargo.lock b/06_uart_chainloader/Cargo.lock index 5d2602a8..e390c959 100644 --- a/06_uart_chainloader/Cargo.lock +++ b/06_uart_chainloader/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.6.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/06_uart_chainloader/Cargo.toml b/06_uart_chainloader/Cargo.toml index f3b9ba2f..d21dd6a8 100644 --- a/06_uart_chainloader/Cargo.toml +++ b/06_uart_chainloader/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 9d41900d..cd2cf2af 100644 --- a/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index 17ca3543..2befbeeb 100644 --- a/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/06_uart_chainloader/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/07_timestamps/Cargo.lock b/07_timestamps/Cargo.lock index 311b6c21..098fe83c 100644 --- a/07_timestamps/Cargo.lock +++ b/07_timestamps/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.7.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/07_timestamps/Cargo.toml b/07_timestamps/Cargo.toml index 8d97be1f..881f1d1a 100644 --- a/07_timestamps/Cargo.toml +++ b/07_timestamps/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/07_timestamps/src/_arch/aarch64/time.rs b/07_timestamps/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/07_timestamps/src/_arch/aarch64/time.rs +++ b/07_timestamps/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 41d8b861..8033381e 100644 --- a/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/07_timestamps/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/08_hw_debug_JTAG/Cargo.lock b/08_hw_debug_JTAG/Cargo.lock index 011adc0f..c9363678 100644 --- a/08_hw_debug_JTAG/Cargo.lock +++ b/08_hw_debug_JTAG/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.8.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/08_hw_debug_JTAG/Cargo.toml b/08_hw_debug_JTAG/Cargo.toml index 7b1adb5b..07dc9b5b 100644 --- a/08_hw_debug_JTAG/Cargo.toml +++ b/08_hw_debug_JTAG/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/08_hw_debug_JTAG/src/_arch/aarch64/time.rs b/08_hw_debug_JTAG/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/08_hw_debug_JTAG/src/_arch/aarch64/time.rs +++ b/08_hw_debug_JTAG/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 41d8b861..8033381e 100644 --- a/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/08_hw_debug_JTAG/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/09_privilege_level/Cargo.lock b/09_privilege_level/Cargo.lock index 753961f7..606b7819 100644 --- a/09_privilege_level/Cargo.lock +++ b/09_privilege_level/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.9.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/09_privilege_level/Cargo.toml b/09_privilege_level/Cargo.toml index 7af3572f..e9965b2f 100644 --- a/09_privilege_level/Cargo.toml +++ b/09_privilege_level/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/09_privilege_level/src/_arch/aarch64/cpu/boot.rs b/09_privilege_level/src/_arch/aarch64/cpu/boot.rs index b743418e..4f006862 100644 --- a/09_privilege_level/src/_arch/aarch64/cpu/boot.rs +++ b/09_privilege_level/src/_arch/aarch64/cpu/boot.rs @@ -11,7 +11,8 @@ //! //! crate::cpu::boot::arch_boot -use cortex_a::{asm, regs::*}; +use cortex_a::{asm, registers::*}; +use tock_registers::interfaces::Writeable; // Assembly counterpart to this file. global_asm!(include_str!("boot.s")); diff --git a/09_privilege_level/src/_arch/aarch64/exception.rs b/09_privilege_level/src/_arch/aarch64/exception.rs index d8c617b2..10fa86a9 100644 --- a/09_privilege_level/src/_arch/aarch64/exception.rs +++ b/09_privilege_level/src/_arch/aarch64/exception.rs @@ -11,7 +11,8 @@ //! //! crate::exception::arch_exception -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::Readable; //-------------------------------------------------------------------------------------------------- // Public Code diff --git a/09_privilege_level/src/_arch/aarch64/exception/asynchronous.rs b/09_privilege_level/src/_arch/aarch64/exception/asynchronous.rs index b63b00fe..c447d455 100644 --- a/09_privilege_level/src/_arch/aarch64/exception/asynchronous.rs +++ b/09_privilege_level/src/_arch/aarch64/exception/asynchronous.rs @@ -11,14 +11,15 @@ //! //! crate::exception::asynchronous::arch_asynchronous -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::Readable; //-------------------------------------------------------------------------------------------------- // Private Definitions //-------------------------------------------------------------------------------------------------- trait DaifField { - fn daif_field() -> register::Field; + fn daif_field() -> tock_registers::fields::Field; } struct Debug; @@ -31,25 +32,25 @@ struct FIQ; //-------------------------------------------------------------------------------------------------- impl DaifField for Debug { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::D } } impl DaifField for SError { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::A } } impl DaifField for IRQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::I } } impl DaifField for FIQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::F } } diff --git a/09_privilege_level/src/_arch/aarch64/time.rs b/09_privilege_level/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/09_privilege_level/src/_arch/aarch64/time.rs +++ b/09_privilege_level/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 41d8b861..8033381e 100644 --- a/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/09_privilege_level/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/10_virtual_mem_part1_identity_mapping/Cargo.lock b/10_virtual_mem_part1_identity_mapping/Cargo.lock index 5022ffad..a3e7eb26 100644 --- a/10_virtual_mem_part1_identity_mapping/Cargo.lock +++ b/10_virtual_mem_part1_identity_mapping/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.10.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/10_virtual_mem_part1_identity_mapping/Cargo.toml b/10_virtual_mem_part1_identity_mapping/Cargo.toml index 9d47f28d..fac86dd5 100644 --- a/10_virtual_mem_part1_identity_mapping/Cargo.toml +++ b/10_virtual_mem_part1_identity_mapping/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/cpu/boot.rs b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/cpu/boot.rs index b743418e..4f006862 100644 --- a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/cpu/boot.rs +++ b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/cpu/boot.rs @@ -11,7 +11,8 @@ //! //! crate::cpu::boot::arch_boot -use cortex_a::{asm, regs::*}; +use cortex_a::{asm, registers::*}; +use tock_registers::interfaces::Writeable; // Assembly counterpart to this file. global_asm!(include_str!("boot.s")); diff --git a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception.rs b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception.rs index d8c617b2..10fa86a9 100644 --- a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception.rs +++ b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception.rs @@ -11,7 +11,8 @@ //! //! crate::exception::arch_exception -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::Readable; //-------------------------------------------------------------------------------------------------- // Public Code diff --git a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception/asynchronous.rs b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception/asynchronous.rs index b63b00fe..c447d455 100644 --- a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception/asynchronous.rs +++ b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/exception/asynchronous.rs @@ -11,14 +11,15 @@ //! //! crate::exception::asynchronous::arch_asynchronous -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::Readable; //-------------------------------------------------------------------------------------------------- // Private Definitions //-------------------------------------------------------------------------------------------------- trait DaifField { - fn daif_field() -> register::Field; + fn daif_field() -> tock_registers::fields::Field; } struct Debug; @@ -31,25 +32,25 @@ struct FIQ; //-------------------------------------------------------------------------------------------------- impl DaifField for Debug { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::D } } impl DaifField for SError { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::A } } impl DaifField for IRQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::I } } impl DaifField for FIQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::F } } diff --git a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs index 2f7bf615..eaeff321 100644 --- a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs +++ b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs @@ -18,7 +18,8 @@ use crate::{ memory::mmu::{translation_table::KernelTranslationTable, TranslationGranule}, }; use core::intrinsics::unlikely; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu/translation_table.rs b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu/translation_table.rs index eba8e12b..dac6e32f 100644 --- a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu/translation_table.rs +++ b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu/translation_table.rs @@ -21,7 +21,11 @@ use crate::{ }, }; use core::convert; -use register::{register_bitfields, InMemoryRegister}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, + registers::InMemoryRegister, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -182,7 +186,7 @@ impl TableDescriptor { /// Convert the kernel's generic memory attributes to HW-specific attributes of the MMU. impl convert::From - for register::FieldValue + for tock_registers::fields::FieldValue { fn from(attribute_fields: AttributeFields) -> Self { // Memory attributes. diff --git a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/time.rs b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/time.rs +++ b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 41d8b861..8033381e 100644 --- a/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/10_virtual_mem_part1_identity_mapping/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/11_exceptions_part1_groundwork/Cargo.lock b/11_exceptions_part1_groundwork/Cargo.lock index c956c58c..6fca1252 100644 --- a/11_exceptions_part1_groundwork/Cargo.lock +++ b/11_exceptions_part1_groundwork/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.11.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/11_exceptions_part1_groundwork/Cargo.toml b/11_exceptions_part1_groundwork/Cargo.toml index 2f6683e5..adafedfa 100644 --- a/11_exceptions_part1_groundwork/Cargo.toml +++ b/11_exceptions_part1_groundwork/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/11_exceptions_part1_groundwork/src/_arch/aarch64/cpu/boot.rs b/11_exceptions_part1_groundwork/src/_arch/aarch64/cpu/boot.rs index b743418e..4f006862 100644 --- a/11_exceptions_part1_groundwork/src/_arch/aarch64/cpu/boot.rs +++ b/11_exceptions_part1_groundwork/src/_arch/aarch64/cpu/boot.rs @@ -11,7 +11,8 @@ //! //! crate::cpu::boot::arch_boot -use cortex_a::{asm, regs::*}; +use cortex_a::{asm, registers::*}; +use tock_registers::interfaces::Writeable; // Assembly counterpart to this file. global_asm!(include_str!("boot.s")); diff --git a/11_exceptions_part1_groundwork/src/_arch/aarch64/exception.rs b/11_exceptions_part1_groundwork/src/_arch/aarch64/exception.rs index 21f0c68c..d51d7f01 100644 --- a/11_exceptions_part1_groundwork/src/_arch/aarch64/exception.rs +++ b/11_exceptions_part1_groundwork/src/_arch/aarch64/exception.rs @@ -12,8 +12,11 @@ //! crate::exception::arch_exception use core::{cell::UnsafeCell, fmt}; -use cortex_a::{asm, barrier, regs::*}; -use register::InMemoryRegister; +use cortex_a::{asm, asm::barrier, registers::*}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + registers::InMemoryRegister, +}; // Assembly counterpart to this file. global_asm!(include_str!("exception.s")); diff --git a/11_exceptions_part1_groundwork/src/_arch/aarch64/exception/asynchronous.rs b/11_exceptions_part1_groundwork/src/_arch/aarch64/exception/asynchronous.rs index b63b00fe..c447d455 100644 --- a/11_exceptions_part1_groundwork/src/_arch/aarch64/exception/asynchronous.rs +++ b/11_exceptions_part1_groundwork/src/_arch/aarch64/exception/asynchronous.rs @@ -11,14 +11,15 @@ //! //! crate::exception::asynchronous::arch_asynchronous -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::Readable; //-------------------------------------------------------------------------------------------------- // Private Definitions //-------------------------------------------------------------------------------------------------- trait DaifField { - fn daif_field() -> register::Field; + fn daif_field() -> tock_registers::fields::Field; } struct Debug; @@ -31,25 +32,25 @@ struct FIQ; //-------------------------------------------------------------------------------------------------- impl DaifField for Debug { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::D } } impl DaifField for SError { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::A } } impl DaifField for IRQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::I } } impl DaifField for FIQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::F } } diff --git a/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs b/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs index 2f7bf615..eaeff321 100644 --- a/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs +++ b/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs @@ -18,7 +18,8 @@ use crate::{ memory::mmu::{translation_table::KernelTranslationTable, TranslationGranule}, }; use core::intrinsics::unlikely; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu/translation_table.rs b/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu/translation_table.rs index eba8e12b..dac6e32f 100644 --- a/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu/translation_table.rs +++ b/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu/translation_table.rs @@ -21,7 +21,11 @@ use crate::{ }, }; use core::convert; -use register::{register_bitfields, InMemoryRegister}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, + registers::InMemoryRegister, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -182,7 +186,7 @@ impl TableDescriptor { /// Convert the kernel's generic memory attributes to HW-specific attributes of the MMU. impl convert::From - for register::FieldValue + for tock_registers::fields::FieldValue { fn from(attribute_fields: AttributeFields) -> Self { // Memory attributes. diff --git a/11_exceptions_part1_groundwork/src/_arch/aarch64/time.rs b/11_exceptions_part1_groundwork/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/11_exceptions_part1_groundwork/src/_arch/aarch64/time.rs +++ b/11_exceptions_part1_groundwork/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 41d8b861..8033381e 100644 --- a/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/11_exceptions_part1_groundwork/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/12_integrated_testing/Cargo.lock b/12_integrated_testing/Cargo.lock index 00965470..18175739 100644 --- a/12_integrated_testing/Cargo.lock +++ b/12_integrated_testing/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -17,9 +17,9 @@ version = "0.12.0" dependencies = [ "cortex-a", "qemu-exit", - "register", "test-macros", "test-types", + "tock-registers", ] [[package]] @@ -33,9 +33,9 @@ dependencies = [ [[package]] name = "qemu-exit" -version = "1.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702abe3c3255be20a4d67bda326c4117081a49a57afaf752de4845091bc6b476" +checksum = "e179da212ad772061d4120ad2a86a019f929362a477582d8c8014dbf7509cd83" [[package]] name = "quote" @@ -46,15 +46,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ - "tock-registers", -] - [[package]] name = "syn" version = "1.0.68" @@ -82,9 +73,9 @@ version = "0.1.0" [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" [[package]] name = "unicode-xid" diff --git a/12_integrated_testing/Cargo.toml b/12_integrated_testing/Cargo.toml index 686df764..42013b26 100644 --- a/12_integrated_testing/Cargo.toml +++ b/12_integrated_testing/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] test_build = ["qemu-exit"] ##-------------------------------------------------------------------------------------------------- @@ -21,12 +21,12 @@ test_build = ["qemu-exit"] test-types = { path = "test-types" } # Optional dependencies -register = { version = "1.x.x", features = ["no_std_unit_tests"], optional = true } -qemu-exit = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } +qemu-exit = { version = "2.x.x", optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } ##-------------------------------------------------------------------------------------------------- ## Testing diff --git a/12_integrated_testing/src/_arch/aarch64/cpu/boot.rs b/12_integrated_testing/src/_arch/aarch64/cpu/boot.rs index b743418e..4f006862 100644 --- a/12_integrated_testing/src/_arch/aarch64/cpu/boot.rs +++ b/12_integrated_testing/src/_arch/aarch64/cpu/boot.rs @@ -11,7 +11,8 @@ //! //! crate::cpu::boot::arch_boot -use cortex_a::{asm, regs::*}; +use cortex_a::{asm, registers::*}; +use tock_registers::interfaces::Writeable; // Assembly counterpart to this file. global_asm!(include_str!("boot.s")); diff --git a/12_integrated_testing/src/_arch/aarch64/exception.rs b/12_integrated_testing/src/_arch/aarch64/exception.rs index 1ee0a198..6ba47300 100644 --- a/12_integrated_testing/src/_arch/aarch64/exception.rs +++ b/12_integrated_testing/src/_arch/aarch64/exception.rs @@ -12,8 +12,11 @@ //! crate::exception::arch_exception use core::{cell::UnsafeCell, fmt}; -use cortex_a::{barrier, regs::*}; -use register::InMemoryRegister; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + registers::InMemoryRegister, +}; // Assembly counterpart to this file. global_asm!(include_str!("exception.s")); diff --git a/12_integrated_testing/src/_arch/aarch64/exception/asynchronous.rs b/12_integrated_testing/src/_arch/aarch64/exception/asynchronous.rs index b63b00fe..c447d455 100644 --- a/12_integrated_testing/src/_arch/aarch64/exception/asynchronous.rs +++ b/12_integrated_testing/src/_arch/aarch64/exception/asynchronous.rs @@ -11,14 +11,15 @@ //! //! crate::exception::asynchronous::arch_asynchronous -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::Readable; //-------------------------------------------------------------------------------------------------- // Private Definitions //-------------------------------------------------------------------------------------------------- trait DaifField { - fn daif_field() -> register::Field; + fn daif_field() -> tock_registers::fields::Field; } struct Debug; @@ -31,25 +32,25 @@ struct FIQ; //-------------------------------------------------------------------------------------------------- impl DaifField for Debug { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::D } } impl DaifField for SError { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::A } } impl DaifField for IRQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::I } } impl DaifField for FIQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::F } } diff --git a/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs b/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs index a706290b..99991b6f 100644 --- a/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs +++ b/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs @@ -18,7 +18,8 @@ use crate::{ memory::mmu::{translation_table::KernelTranslationTable, TranslationGranule}, }; use core::intrinsics::unlikely; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/12_integrated_testing/src/_arch/aarch64/memory/mmu/translation_table.rs b/12_integrated_testing/src/_arch/aarch64/memory/mmu/translation_table.rs index 665631f4..1e1173f2 100644 --- a/12_integrated_testing/src/_arch/aarch64/memory/mmu/translation_table.rs +++ b/12_integrated_testing/src/_arch/aarch64/memory/mmu/translation_table.rs @@ -21,7 +21,11 @@ use crate::{ }, }; use core::convert; -use register::{register_bitfields, InMemoryRegister}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, + registers::InMemoryRegister, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -182,7 +186,7 @@ impl TableDescriptor { /// Convert the kernel's generic memory attributes to HW-specific attributes of the MMU. impl convert::From - for register::FieldValue + for tock_registers::fields::FieldValue { fn from(attribute_fields: AttributeFields) -> Self { // Memory attributes. diff --git a/12_integrated_testing/src/_arch/aarch64/time.rs b/12_integrated_testing/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/12_integrated_testing/src/_arch/aarch64/time.rs +++ b/12_integrated_testing/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 41d8b861..8033381e 100644 --- a/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/12_integrated_testing/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/13_exceptions_part2_peripheral_IRQs/Cargo.lock b/13_exceptions_part2_peripheral_IRQs/Cargo.lock index ed950100..7fd77858 100644 --- a/13_exceptions_part2_peripheral_IRQs/Cargo.lock +++ b/13_exceptions_part2_peripheral_IRQs/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -17,9 +17,9 @@ version = "0.13.0" dependencies = [ "cortex-a", "qemu-exit", - "register", "test-macros", "test-types", + "tock-registers", ] [[package]] @@ -33,9 +33,9 @@ dependencies = [ [[package]] name = "qemu-exit" -version = "1.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702abe3c3255be20a4d67bda326c4117081a49a57afaf752de4845091bc6b476" +checksum = "e179da212ad772061d4120ad2a86a019f929362a477582d8c8014dbf7509cd83" [[package]] name = "quote" @@ -46,15 +46,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ - "tock-registers", -] - [[package]] name = "syn" version = "1.0.68" @@ -82,9 +73,9 @@ version = "0.1.0" [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" [[package]] name = "unicode-xid" diff --git a/13_exceptions_part2_peripheral_IRQs/Cargo.toml b/13_exceptions_part2_peripheral_IRQs/Cargo.toml index 343bdfda..4c6de837 100644 --- a/13_exceptions_part2_peripheral_IRQs/Cargo.toml +++ b/13_exceptions_part2_peripheral_IRQs/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] test_build = ["qemu-exit"] ##-------------------------------------------------------------------------------------------------- @@ -21,12 +21,12 @@ test_build = ["qemu-exit"] test-types = { path = "test-types" } # Optional dependencies -register = { version = "1.x.x", features = ["no_std_unit_tests"], optional = true } -qemu-exit = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } +qemu-exit = { version = "2.x.x", optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } ##-------------------------------------------------------------------------------------------------- ## Testing diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/boot.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/boot.rs index b743418e..4f006862 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/boot.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/boot.rs @@ -11,7 +11,8 @@ //! //! crate::cpu::boot::arch_boot -use cortex_a::{asm, regs::*}; +use cortex_a::{asm, registers::*}; +use tock_registers::interfaces::Writeable; // Assembly counterpart to this file. global_asm!(include_str!("boot.s")); diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/smp.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/smp.rs index b9fdd0f7..0ea9b876 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/smp.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/cpu/smp.rs @@ -11,7 +11,8 @@ //! //! crate::cpu::smp::arch_smp -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::Readable; //-------------------------------------------------------------------------------------------------- // Public Code diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception.rs index 5c44abb7..d755c51d 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception.rs @@ -13,8 +13,11 @@ use crate::{bsp, exception}; use core::{cell::UnsafeCell, fmt}; -use cortex_a::{barrier, regs::*}; -use register::InMemoryRegister; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + registers::InMemoryRegister, +}; // Assembly counterpart to this file. global_asm!(include_str!("exception.s")); diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception/asynchronous.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception/asynchronous.rs index a4b1a548..4e79cc8a 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception/asynchronous.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/exception/asynchronous.rs @@ -11,7 +11,8 @@ //! //! crate::exception::asynchronous::arch_asynchronous -use cortex_a::regs::*; +use cortex_a::registers::*; +use tock_registers::interfaces::{Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -22,7 +23,7 @@ mod daif_bits { } trait DaifField { - fn daif_field() -> register::Field; + fn daif_field() -> tock_registers::fields::Field; } struct Debug; @@ -35,25 +36,25 @@ struct FIQ; //-------------------------------------------------------------------------------------------------- impl DaifField for Debug { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::D } } impl DaifField for SError { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::A } } impl DaifField for IRQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::I } } impl DaifField for FIQ { - fn daif_field() -> register::Field { + fn daif_field() -> tock_registers::fields::Field { DAIF::F } } diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs index a706290b..99991b6f 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs @@ -18,7 +18,8 @@ use crate::{ memory::mmu::{translation_table::KernelTranslationTable, TranslationGranule}, }; use core::intrinsics::unlikely; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu/translation_table.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu/translation_table.rs index 665631f4..1e1173f2 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu/translation_table.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu/translation_table.rs @@ -21,7 +21,11 @@ use crate::{ }, }; use core::convert; -use register::{register_bitfields, InMemoryRegister}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, + registers::InMemoryRegister, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -182,7 +186,7 @@ impl TableDescriptor { /// Convert the kernel's generic memory attributes to HW-specific attributes of the MMU. impl convert::From - for register::FieldValue + for tock_registers::fields::FieldValue { fn from(attribute_fields: AttributeFields) -> Self { // Memory attributes. diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/time.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/time.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicc.rs b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicc.rs index 424bafba..5f1d6d53 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicc.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicc.rs @@ -5,7 +5,11 @@ //! GICC Driver - GIC CPU interface. use crate::{bsp::device_driver::common::MMIODerefWrapper, exception}; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicd.rs b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicd.rs index 32c42808..38fa0ed6 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicd.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/arm/gicv2/gicd.rs @@ -11,7 +11,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, state, synchronization, synchronization::IRQSafeNullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index aaf9e1ca..a2f7eb93 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::IRQSafeNullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_interrupt_controller/peripheral_ic.rs b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_interrupt_controller/peripheral_ic.rs index 79814d8c..4ca5988c 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_interrupt_controller/peripheral_ic.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_interrupt_controller/peripheral_ic.rs @@ -2,7 +2,7 @@ // // Copyright (c) 2020-2021 Andre Richter -//! Peripheral Interrupt regsler Driver. +//! Peripheral Interrupt Controller Driver. use super::{InterruptController, PendingIRQs, PeripheralIRQ}; use crate::{ @@ -10,7 +10,11 @@ use crate::{ exception, synchronization, synchronization::{IRQSafeNullLock, InitStateLock}, }; -use register::{mmio::*, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_structs, + registers::{ReadOnly, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index c8026dcf..11d9745e 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization, synchronization::IRQSafeNullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01, diff --git a/13_exceptions_part2_peripheral_IRQs/src/lib.rs b/13_exceptions_part2_peripheral_IRQs/src/lib.rs index ca761361..4ca9f03e 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/lib.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/lib.rs @@ -110,6 +110,7 @@ #![allow(incomplete_features)] #![feature(asm)] #![feature(const_fn_fn_ptr_basics)] +#![feature(const_fn_trait_bound)] #![feature(const_generics)] #![feature(const_panic)] #![feature(core_intrinsics)] diff --git a/X1_JTAG_boot/Cargo.lock b/X1_JTAG_boot/Cargo.lock index 011adc0f..c9363678 100644 --- a/X1_JTAG_boot/Cargo.lock +++ b/X1_JTAG_boot/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "cortex-a" -version = "5.1.6" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecefc30975eb87afc5a810d4b2305c0ec29e607ea97e51b2ecd80766e9268d28" +checksum = "d25a057b35117d030453cd322f7adbdd331e886bc5bde46cdae656952c4feba6" dependencies = [ - "register", + "tock-registers", ] [[package]] @@ -16,20 +16,11 @@ name = "mingo" version = "0.8.0" dependencies = [ "cortex-a", - "register", -] - -[[package]] -name = "register" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a247de29ab7cc8f5006cfe775c4a81c704f9914c5e2a79696862e643135433" -dependencies = [ "tock-registers", ] [[package]] name = "tock-registers" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f521a79accce68c417c9c77ce22108056b626126da1932f7e2e9b5bbffee0cea" +checksum = "4ee8fba06c1f4d0b396ef61a54530bb6b28f0dc61c38bc8bc5a5a48161e6282e" diff --git a/X1_JTAG_boot/Cargo.toml b/X1_JTAG_boot/Cargo.toml index 7b1adb5b..07dc9b5b 100644 --- a/X1_JTAG_boot/Cargo.toml +++ b/X1_JTAG_boot/Cargo.toml @@ -9,8 +9,8 @@ lto = true [features] default = [] -bsp_rpi3 = ["register"] -bsp_rpi4 = ["register"] +bsp_rpi3 = ["tock-registers"] +bsp_rpi4 = ["tock-registers"] [[bin]] name = "kernel" @@ -23,8 +23,9 @@ path = "src/main.rs" [dependencies] # Optional dependencies -register = { version = "1.x.x", optional = true } +tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true } # Platform specific dependencies [target.'cfg(target_arch = "aarch64")'.dependencies] -cortex-a = { version = "5.x.x" } +cortex-a = { version = "6.x.x" } + diff --git a/X1_JTAG_boot/src/_arch/aarch64/time.rs b/X1_JTAG_boot/src/_arch/aarch64/time.rs index 63017305..7a7647ef 100644 --- a/X1_JTAG_boot/src/_arch/aarch64/time.rs +++ b/X1_JTAG_boot/src/_arch/aarch64/time.rs @@ -13,7 +13,8 @@ use crate::{time, warn}; use core::time::Duration; -use cortex_a::{barrier, regs::*}; +use cortex_a::{asm::barrier, registers::*}; +use tock_registers::interfaces::{ReadWriteable, Readable, Writeable}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs b/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs index 41d8b861..8033381e 100644 --- a/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs +++ b/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_gpio.rs @@ -8,7 +8,11 @@ use crate::{ bsp::device_driver::common::MMIODerefWrapper, driver, synchronization, synchronization::NullLock, }; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{ReadWriteable, Writeable}, + register_bitfields, register_structs, + registers::ReadWrite, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions diff --git a/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs b/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs index d2aae4d2..70b3839e 100644 --- a/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs +++ b/X1_JTAG_boot/src/bsp/device_driver/bcm/bcm2xxx_pl011_uart.rs @@ -14,7 +14,11 @@ use crate::{ synchronization::NullLock, }; use core::fmt; -use register::{mmio::*, register_bitfields, register_structs}; +use tock_registers::{ + interfaces::{Readable, Writeable}, + register_bitfields, register_structs, + registers::{ReadOnly, ReadWrite, WriteOnly}, +}; //-------------------------------------------------------------------------------------------------- // Private Definitions @@ -81,6 +85,7 @@ register_bitfields! { LCR_H [ /// Word length. These bits indicate the number of data bits transmitted or received in a /// frame. + #[allow(clippy::enum_variant_names)] WLEN OFFSET(5) NUMBITS(2) [ FiveBit = 0b00, SixBit = 0b01,