On Wed, Aug 18, 2010 at 06:31:42AM -0700, Ardelean, Andrei wrote:
> Malta board has Yamon monitor which initializes the DDR memory and other
> h/w. Does Mips Linux rely on Yamon h/w initialization (except memory)
> like PCI, NET, UART, etc in order to boot? Does Mips Linux re-initialize
> the h/w again?
> I am booting Linux on Malta with a small monitor which initializes only
> the memory. I pass the environment vars array, command line arguments
> and memory size as Yamon would do. The ASCII display shows "Linux on
> Malta" scrolling text so Linux kernel it seems that at least it started
> but there is no NET activity and no messages on UART.
That's a bit of an ugly topic and some black art is involved here. We
leave the initialization of CPU, caches and memory controllers entirely
to the firmware.
For the remainder Linux tries to perform the initilization itself but
sometimes by accident not intention a register that was already
initialized by firmware will not be initialized by Linux but the
omission will not be notized because it already has a correct value.
PCI is particularl problem. On some platforms firmware initializes the
bus and re-initializing the bus would break the firmware or be very
complex. On such a system Linux will just scan the PCI bus and re-use
the existing configuration. On most platforms however Linux will do a
better job than the existing firmware and fully reinitialize the entire
PCI bus hierarchy.