Add memory map code from u-boot [sq]
This commit is contained in:
		
							parent
							
								
									1b5a1a87aa
								
							
						
					
					
						commit
						73d852f57c
					
				| 
						 | 
				
			
			@ -111,3 +111,47 @@ pub fn write_ttbr_tcr_mair(el: u8, base: u64, tcr: u64, attr: u64) {
 | 
			
		|||
        asm!("isb" :::: "volatile");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 {
 | 
			
		||||
    // As per https://www.raspberrypi.org/documentation/hardware/raspberrypi/peripheral_addresses.md
 | 
			
		||||
    /// This returns the ARM-side physical address where peripherals are mapped.
 | 
			
		||||
    pub fn get_peripheral_address() -> usize {
 | 
			
		||||
        0x3f00_0000
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// This returns the size of the peripheral's space.
 | 
			
		||||
    pub fn get_peripheral_size() -> usize {
 | 
			
		||||
        0x0100_0000
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// This returns the bus address of the SDRAM.
 | 
			
		||||
    pub fn get_sdram_address() -> usize {
 | 
			
		||||
        0xC000_0000 // uncached
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue