[U-Boot-Users] Re: Why exceptions are enabled before exception vector code is copied
Cedric VINCENT
cedric.vincent at gmail.com
Wed Jul 6 11:52:10 CEST 2005
> Feel free to submit a patch.
OK, maybe the next week.
> But what would happen in your case of a Machine Check? What do you
> suggest to recover from that?
When this spurious "Machine Check Exception" occured, the MSR didn't
contain any known causes. Maybe the function "MachineCheckException"
(from cpu/ppc4xx/traps.c) may be modified with something like this :
---------
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
if (debugger_exception_handler && (*debugger_exception_handler)(regs))
return;
#endif
+ #if defined(CONFIG_USE_XMD)
+ if( SPURIOUS_MCE == (regs->msr & 0x000F0000) )
+ return;
+ #endif
printf("Machine check in kernel mode.\n");
printf("Caused by (from msr): ");
printf("regs %p ",regs);
switch( regs->msr & 0x000F0000) {
---------
where CONFIG_USE_XMD is a macro (to use with care !) defined by user
when he uses XMD (during debugging stage) and SPURIOUS_MCE is the MSR
unknown cause.
This (ugly) stuff makes sense to enable exception after relocation. I
didn't test this, since I disable Machine Check Exception when
debugging my Virtex Board. Maybe it will not work (if this spurious
exception occured more than once). I will try to test next week.
Regards,
Cedric VINCENT.
More information about the U-Boot
mailing list