No subject


Tue Aug 19 22:18:26 CEST 2008


At last I check the data in exactly the exception handler offset, like "md 0x700;  md 0x900; md 0x500;".  I can find the last two addresses embedded.
One is like UnknownException() or timer_interrupt() or external_interrupt(). The other is like int_return.   Simply "go" the first address, I retained normal result -- UnknownException() or timer_interrupt() or external_interrupt() print their origin msg on the console. But why they can't work in the exception handling -- even they won't really run in the exception handling, :)

Thanks to your patiently reading out the above long text.
Any help or advice is appreciated.
Thank you.
















--Boundary_(ID_Wi3WBd41UM4KkI/R7iGBFA)
Content-type: text/html; charset=gb2312
Content-transfer-encoding: 7BIT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2919.6307" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2>My target platform is with 750FX and MPC107, 256M ram, a 
NS16c552 serial and also a Intel 82559 compatiable ethernet 
controller.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>I can get Program Exeption(0x700) printing msg when I "go" a 
program from an arbitary address within U-Boot's shell.</FONT></DIV>
<DIV><FONT size=2>But when I set EE bit in MSR register, U-Boot seems to hang 
there, nothing </FONT></DIV>
<DIV><FONT size=2>output.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>I guess the exception handling have problem. But I really 
didn't change any codes in Start.s or ppc_asm.tmpl.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>Additonal, when I write a dword to a address outside my 
BAT-Array covered range, DSI Exception(0x300) also seems hanging, nothing 
output. I originally image that the UnknownException() funciton can print 
something on my console.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>In any case Program Exception handling does work. And&nbsp;it 
seems when I set IP bit in MSR register, the higher Exception handler which is 
borned in flash can go up to the address { hdlr - _start + EXC_OFF_SYS_RESET; 
(refer to ppc_asm.tmpl Line 304) }.&nbsp;There is a number such as 0x3688. Maybe 
CPU turned to that address to fetch next instruction. Unfortunately, that 
address is dull, so program exception occured. And then I got something on the 
console just like that after I "go 0x3688".</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>From above, I can image STD_EXCEPTION(...) works well, even 
transfer_to_handler has no problem, but next to that, UnknownException() or 
timer_interrupt() or external_interrupt() don't work -- at least they can't 
output the strings to console.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>At last I check the data in exactly the exception handler 
offset, like "md 0x700;&nbsp; md 0x900; md 0x500;".&nbsp; I can find the last 
two addresses embedded.</FONT></DIV>
<DIV><FONT size=2>One is like UnknownException() or timer_interrupt() or 
external_interrupt(). The other is like int_return.&nbsp;&nbsp; Simply "go" the 
first address, I retained normal result -- UnknownException() or 
timer_interrupt() or external_interrupt() print their origin msg on the console. 
But why they can't work in the exception handling -- even they won't really run 
in the exception handling, :)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>Thanks to your patiently reading out the above long 
text.</FONT></DIV>
<DIV><FONT size=2>Any help or advice is appreciated.</FONT></DIV>
<DIV><FONT size=2>Thank you.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV></BODY></HTML>

--Boundary_(ID_Wi3WBd41UM4KkI/R7iGBFA)--




More information about the U-Boot mailing list