[wip] memtypes
This commit is contained in:
parent
98acc888bd
commit
ed9cbe5d4e
|
@ -161,6 +161,51 @@ pub fn write_ttbr_tcr_mair(el: u8, base: u64, tcr: u64, attr: u64) {
|
|||
// }
|
||||
// }
|
||||
|
||||
bitflags! {
|
||||
pub struct MemType: u64 {
|
||||
const DEVICE_NGNRNE = 0 << 2;
|
||||
const DEVICE_NGNRE = 1 << 2;
|
||||
const DEVICE_GRE = 2 << 2;
|
||||
const NORMAL_NC = 3 << 2;
|
||||
const NORMAL = 4 << 2;
|
||||
|
||||
const NS = 1 << 5;
|
||||
|
||||
const NON_SHARE = 0 << 8;
|
||||
const OUTER_SHARE = 2 << 8;
|
||||
const INNER_SHARE = 3 << 8;
|
||||
|
||||
const AF = 1 << 10;
|
||||
const NG = 1 << 11;
|
||||
const PXN = 1 << 53;
|
||||
const UXN = 1 << 54;
|
||||
}
|
||||
}
|
||||
|
||||
struct MemMapRegion {
|
||||
virt: usize,
|
||||
phys: usize,
|
||||
size: usize,
|
||||
attr: MemType, // MAIR flags
|
||||
}
|
||||
|
||||
impl MemMapRegion {}
|
||||
|
||||
static bcm2837_mem_map: [MemMapRegion; 2] = [
|
||||
MemMapRegion {
|
||||
virt: 0x00000000,
|
||||
phys: 0x00000000,
|
||||
size: 0x3f000000,
|
||||
attr: MemType::NORMAL | MemType::INNER_SHARE,
|
||||
},
|
||||
MemMapRegion {
|
||||
virt: 0x3f000000,
|
||||
phys: 0x3f000000,
|
||||
size: 0x01000000,
|
||||
attr: MemType::DEVICE_NGNRNE | MemType::NON_SHARE | MemType::PXN | MemType::UXN,
|
||||
},
|
||||
];
|
||||
|
||||
fn setup_paging() {
|
||||
// test if paging is enabled
|
||||
// if so, loop here
|
||||
|
@ -176,30 +221,6 @@ fn setup_paging() {
|
|||
);
|
||||
}
|
||||
|
||||
struct MemMapRegion {
|
||||
virt: usize,
|
||||
phys: usize,
|
||||
size: usize,
|
||||
attr: usize,
|
||||
}
|
||||
|
||||
impl MemMapRegion {}
|
||||
|
||||
// const bcm2837_mem_map: MemMapRegion[] = {
|
||||
// MemMapRegion {
|
||||
// virt: 0x00000000,
|
||||
// phys: 0x00000000,
|
||||
// size: 0x3f000000,
|
||||
// attr: PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_INNER_SHARE, // mair
|
||||
// },
|
||||
// MemMapRegion {
|
||||
// virt: 0x3f000000,
|
||||
// phys: 0x3f000000,
|
||||
// size: 0x01000000,
|
||||
// attr: PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN,
|
||||
// }
|
||||
// }
|
||||
|
||||
pub struct BcmHost;
|
||||
|
||||
impl BcmHost {
|
||||
|
|
Loading…
Reference in New Issue