[U-Boot-Users] A couple of MIPS questions

Hi,
A couple of questions about the MIPS implementation of U-Boot. Maybe someone can answer them:
In cpu/mips/start.S a large branch table is defined from the symbol _start onward. What is the reason for this? (There are only a few exception vectors defined in the MIPS32 architecture, although you can move them elsewhere in memory.)
The instruction sequence for initialising the GOT is somehwat redundant, unless I am missing something:
move gp, ra lw t1, 0(ra) move gp, t1
can be replaced by:
lw gp, 0(ra)
Is there a reason as to why the MIPS code does not (attempt to) make a register dump when an exception occurs? (BTW, the branches romReserved and romExcHandle are missing a NOP in their delay slot.)
Is it safe to run with caches enabled? I.e. do all drivers either flush the cache when doing I/O or is it safer to run with caches disabled.
Is there a reason for the serial, ethernet and USB drivers to exist in cpu/mips other than that they be belong to MIPS based SoCs?
Thanks in advance.
Regards, Hans Zuidam -- Hans Zuidam Sen. Systems Engineer, BL DTS ICE, Philips Semiconductors
Building A410, Room 3.40 High Tech Campus 41, 5656 AE Eindhoven, The Netherlands Tel. +31 (0)40 2746579 E-Mail: hans.zuidam@philips.com
participants (1)
-
Hans Zuidam