start adding GIC and GTP driver

This commit is contained in:
2025-03-04 07:55:48 +01:00
parent 7279c96f03
commit ae6e78e93b
10 changed files with 459 additions and 26 deletions

View File

@ -3,6 +3,7 @@
use core::panic::PanicInfo;
use cortex_ar::asm::nop;
use zynq7000::{hal::gic::Gic, pac::gic::{Gicc, Gicd}};
use zynq7000_rt as _;
/// One user LED is MIO7
@ -19,6 +20,11 @@ pub extern "C" fn boot_core(cpu_id: u32) -> ! {
#[unsafe(export_name = "main")]
pub fn main() -> ! {
let mut gic = Gic::new(unsafe { Gicc::new_mmio() }, unsafe { Gicd::new_mmio() });
gic.enable_all_interrupts();
gic.set_all_spi_interrupt_targets_cpu0();
gic.enable();
let mut gpio = unsafe { zynq7000::pac::gpio::Gpio::new_mmio() };
gpio.modify_dirm_0(|v| v | ZEDBOARD_LED_MASK);
gpio.modify_out_en_0(|v| v | ZEDBOARD_LED_MASK);
@ -30,6 +36,12 @@ pub fn main() -> ! {
}
}
#[unsafe(no_mangle)]
pub extern "C" fn _irq_handler() {
let mut gic = Gic::new(unsafe { Gicc::new_mmio() }, unsafe { Gicd::new_mmio() });
}
/// Panic handler
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {