> If I understand you correctly - you want something which lets you set > a post-power-on-reset reset exception address prefix? And the reason > is that during your next boot (after some other kind of reset, but not > power-on-reset) you could get an exception and it shouldn't be handled > by the power-on-reset exception handler? > > This, then, can be used to detect issues on non-power-on-reset, I > guess? (If I've misunderstood this, disregard the following.) > > [Pekon]: I'm sorry.. but probably you misunderstood. what is required is to have configurable exception_vector_base_address (at synthesis), for all exceptions, right from reset. So that user can re-route exception_vectors to any memory-map (like external flash/ROM, where small sub-set of critical exception_vectors are kept). This is needed because, exceptions can occur just after reset, even before the S/W program could explicitly write exception_vector_base_addr register.Thus using parameter for reset-value of exception_vector_base_addr would be good. (though this can be done while OR1200 integration also, by re-routing 0x0000 address to desired address, but its cleaner to have a parameter instead)
> So, I presume we need just an optional POR exception prefix > configurable at synthesis time via a parameter (both its presence and > its address.) > > POR reset code should probably then have to enable a bit somewhere to > start using the post-POR exception prefix register for any subsequent > non-POR resets? > > Perhaps this is neater than putting this outside the CPU (making it a > feature of the system instead), someting like a set-on-POR enable on > the bus that redirects to a ROM which is then disabled after the first > reset code has been run and subsequent resets then go to the > non-POR-ROM code. > It ultimately sounds like useful behaviour, and although I guess being > tricky to implement, would help very early bring up debugging. > > [Pekon]: Above can be done more easily in POR_reset_exeception S/W code than in H/W by just watching a POR resettable bit outside OR1200. (but this was not the intention of request..) If (bit==0) then set bit = 1 and continue reset_exception. else jump to debugging code. with regards, pekon
_______________________________________________ OpenRISC mailing list [email protected] http://lists.openrisc.net/listinfo/openrisc
