Skip to content

Commit 7c0272c

Browse files
committed
Switch to tock-registers: Sources for tutorial 14
1 parent 69eac31 commit 7c0272c

File tree

15 files changed

+67
-43
lines changed

15 files changed

+67
-43
lines changed

14_virtual_mem_part2_mmio_remap/Cargo.lock

Lines changed: 8 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

14_virtual_mem_part2_mmio_remap/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ lto = true
99

1010
[features]
1111
default = []
12-
bsp_rpi3 = ["register"]
13-
bsp_rpi4 = ["register"]
12+
bsp_rpi3 = ["tock-registers"]
13+
bsp_rpi4 = ["tock-registers"]
1414
test_build = ["qemu-exit"]
1515

1616
##--------------------------------------------------------------------------------------------------
@@ -21,12 +21,12 @@ test_build = ["qemu-exit"]
2121
test-types = { path = "test-types" }
2222

2323
# Optional dependencies
24-
register = { version = "1.x.x", features = ["no_std_unit_tests"], optional = true }
25-
qemu-exit = { version = "1.x.x", optional = true }
24+
tock-registers = { version = "0.7.x", default-features = false, features = ["register_types"], optional = true }
25+
qemu-exit = { version = "2.x.x", optional = true }
2626

2727
# Platform specific dependencies
2828
[target.'cfg(target_arch = "aarch64")'.dependencies]
29-
cortex-a = { version = "5.x.x" }
29+
cortex-a = { version = "6.x.x" }
3030

3131
##--------------------------------------------------------------------------------------------------
3232
## Testing

14_virtual_mem_part2_mmio_remap/src/_arch/aarch64/cpu/boot.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
//!
1212
//! crate::cpu::boot::arch_boot
1313
14-
use cortex_a::{asm, regs::*};
14+
use cortex_a::{asm, registers::*};
15+
use tock_registers::interfaces::Writeable;
1516

1617
// Assembly counterpart to this file.
1718
global_asm!(include_str!("boot.s"));

14_virtual_mem_part2_mmio_remap/src/_arch/aarch64/cpu/smp.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
//!
1212
//! crate::cpu::smp::arch_smp
1313
14-
use cortex_a::regs::*;
14+
use cortex_a::registers::*;
15+
use tock_registers::interfaces::Readable;
1516

1617
//--------------------------------------------------------------------------------------------------
1718
// Public Code

14_virtual_mem_part2_mmio_remap/src/_arch/aarch64/exception.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,11 @@ use crate::{
1717
memory::Address,
1818
};
1919
use core::{cell::UnsafeCell, fmt};
20-
use cortex_a::{barrier, regs::*};
21-
use register::InMemoryRegister;
20+
use cortex_a::{asm::barrier, registers::*};
21+
use tock_registers::{
22+
interfaces::{Readable, Writeable},
23+
registers::InMemoryRegister,
24+
};
2225

2326
// Assembly counterpart to this file.
2427
global_asm!(include_str!("exception.s"));

14_virtual_mem_part2_mmio_remap/src/_arch/aarch64/exception/asynchronous.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
//!
1212
//! crate::exception::asynchronous::arch_asynchronous
1313
14-
use cortex_a::regs::*;
14+
use cortex_a::registers::*;
15+
use tock_registers::interfaces::{Readable, Writeable};
1516

1617
//--------------------------------------------------------------------------------------------------
1718
// Private Definitions
@@ -22,7 +23,7 @@ mod daif_bits {
2223
}
2324

2425
trait DaifField {
25-
fn daif_field() -> register::Field<u64, DAIF::Register>;
26+
fn daif_field() -> tock_registers::fields::Field<u64, DAIF::Register>;
2627
}
2728

2829
struct Debug;
@@ -35,25 +36,25 @@ struct FIQ;
3536
//--------------------------------------------------------------------------------------------------
3637

3738
impl DaifField for Debug {
38-
fn daif_field() -> register::Field<u64, DAIF::Register> {
39+
fn daif_field() -> tock_registers::fields::Field<u64, DAIF::Register> {
3940
DAIF::D
4041
}
4142
}
4243

4344
impl DaifField for SError {
44-
fn daif_field() -> register::Field<u64, DAIF::Register> {
45+
fn daif_field() -> tock_registers::fields::Field<u64, DAIF::Register> {
4546
DAIF::A
4647
}
4748
}
4849

4950
impl DaifField for IRQ {
50-
fn daif_field() -> register::Field<u64, DAIF::Register> {
51+
fn daif_field() -> tock_registers::fields::Field<u64, DAIF::Register> {
5152
DAIF::I
5253
}
5354
}
5455

5556
impl DaifField for FIQ {
56-
fn daif_field() -> register::Field<u64, DAIF::Register> {
57+
fn daif_field() -> tock_registers::fields::Field<u64, DAIF::Register> {
5758
DAIF::F
5859
}
5960
}

14_virtual_mem_part2_mmio_remap/src/_arch/aarch64/memory/mmu.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ use crate::{
1818
memory::{mmu::TranslationGranule, Address, Physical},
1919
};
2020
use core::intrinsics::unlikely;
21-
use cortex_a::{barrier, regs::*};
21+
use cortex_a::{asm::barrier, registers::*};
22+
use tock_registers::interfaces::{ReadWriteable, Readable, Writeable};
2223

2324
//--------------------------------------------------------------------------------------------------
2425
// Private Definitions

14_virtual_mem_part2_mmio_remap/src/_arch/aarch64/memory/mmu/translation_table.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ use crate::{
2424
},
2525
};
2626
use core::convert;
27-
use register::{register_bitfields, InMemoryRegister};
27+
use tock_registers::{
28+
interfaces::{Readable, Writeable},
29+
register_bitfields,
30+
registers::InMemoryRegister,
31+
};
2832

2933
//--------------------------------------------------------------------------------------------------
3034
// Private Definitions
@@ -181,7 +185,7 @@ impl TableDescriptor {
181185

182186
/// Convert the kernel's generic memory attributes to HW-specific attributes of the MMU.
183187
impl convert::From<AttributeFields>
184-
for register::FieldValue<u64, STAGE1_PAGE_DESCRIPTOR::Register>
188+
for tock_registers::fields::FieldValue<u64, STAGE1_PAGE_DESCRIPTOR::Register>
185189
{
186190
fn from(attribute_fields: AttributeFields) -> Self {
187191
// Memory attributes.
@@ -389,7 +393,7 @@ impl<const NUM_TABLES: usize> memory::mmu::translation_table::interface::Transla
389393
return Err("Virtual page is already mapped");
390394
}
391395

392-
*page_descriptor = PageDescriptor::from_output_addr(phys_page.as_ptr(), &attr);
396+
*page_descriptor = PageDescriptor::from_output_addr(phys_page.as_ptr(), attr);
393397
}
394398

395399
Ok(())

14_virtual_mem_part2_mmio_remap/src/_arch/aarch64/time.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
1414
use crate::{time, warn};
1515
use core::time::Duration;
16-
use cortex_a::{barrier, regs::*};
16+
use cortex_a::{asm::barrier, registers::*};
17+
use tock_registers::interfaces::{ReadWriteable, Readable, Writeable};
1718

1819
//--------------------------------------------------------------------------------------------------
1920
// Private Definitions

14_virtual_mem_part2_mmio_remap/src/bsp/device_driver/arm/gicv2/gicc.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
use crate::{
88
bsp::device_driver::common::MMIODerefWrapper, exception, synchronization::InitStateLock,
99
};
10-
use register::{mmio::*, register_bitfields, register_structs};
10+
use tock_registers::{
11+
interfaces::{Readable, Writeable},
12+
register_bitfields, register_structs,
13+
registers::ReadWrite,
14+
};
1115

1216
//--------------------------------------------------------------------------------------------------
1317
// Private Definitions

0 commit comments

Comments
 (0)