On Monday 06 June 2011, George Kashperko wrote: > > For an interrupt controller, it should be ok to have it initialized > > late, as long as it's only responsible for the devices on the same > > bus and not for instance for IPI interrupts. Just make sure that you > > do the bus scan and the initialization of the IRQ driver before you > > initialize any drivers that rely in on the interrupts to be working. > > Without proper timer init (which requires both the chipcommon and mips > cores knowledge) kernel will get hung somewhere inside calibrate_delay. > It could get addressed if get bus scan called in arch_init_irq or > plat_time_init - both are executed before calibrate_delay and with slab > available. Ok, so you need the interrupt controller to be working for the timer tick, right? I think another option (if that's not what you mean already) would be to have a simpler way to find a device on the bus that can be called before doing a full scan. Early drivers would then have to know what is there and call a function like "bcma_find_device(BCMA_DEV_ID_IRQ)", while drivers that are not required to be up just register a regular device driver with a probe function that gets called after the bus scan creates device structures. Arnd