Hi,
In the E21 UC subsystem, can we bypass the BootROM and directly boot from TIM?
I have tried to boot directly from TIM, but the interrupt handler registration is failing at metal_interrupt_register_vector_handler
. The same code works fine when booting from BootROM.
Here is the code snippet:
s_cpu = metal_cpu_get(metal_cpu_get_current_hartid());
if (s_cpu == NULL) {
return 2;
}
s_cpu_intr = metal_cpu_interrupt_controller(s_cpu);
if (s_cpu_intr == NULL) {
//printf("Cpu interrupt controller failed");
return 3;
}
metal_interrupt_init(s_cpu_intr);
sInterrupt = metal_interrupt_get_controller(METAL_CLIC_CONTROLLER,metal_cpu_get_current_hartid());
if(sInterrupt == NULL) {
//printf("Get interrupt controller failed");
}
metal_interrupt_init(sInterrupt);
if(metal_interrupt_set_vector_mode(sInterrupt, METAL_SELECTIVE_VECTOR_MODE) != 0) {
//printf("Set interrupt vector mode failed");
return 4;
}
if(metal_interrupt_register_vector_handler(sInterrupt,I3C_INTERRUPT_ID,&i3c_slave_interrupt_handler,NULL) != 0) {
//printf("Set interrupt register handler failed");
return 5;
}
Any help in this regard would be very much appreciated.
Thanks,
Krishna B