linux-mips
[Top] [All Lists]

RE: Does Mips Linux rely on Yamon h/w initialization (other than DDR mem

To: "Ralf Baechle" <ralf@linux-mips.org>
Subject: RE: Does Mips Linux rely on Yamon h/w initialization (other than DDR memory which is strictly necessary)?
From: "Ardelean, Andrei" <Andrei.Ardelean@idt.com>
Date: Wed, 18 Aug 2010 08:08:08 -0700
Cc: <linux-mips@linux-mips.org>
In-reply-to: <20100818135115.GC25740@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <AEA634773855ED4CAD999FBB1A66D076FC3BDF@CORPEXCH1.na.ads.idt.com> <20100818135115.GC25740@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
Thread-index: Acs+3BUcAjUYruQ4TUeN15aGwVMTIQACqR4g
Thread-topic: Does Mips Linux rely on Yamon h/w initialization (other than DDR memory which is strictly necessary)?
Hi Ralf,

Could you point me to some files or folder where I can find the h/w
initialization sequence done by Linux for Malta? I would like to take a
look maybe I can figure out some details.

Thanks,
Andrei


-----Original Message-----
From: Ralf Baechle [mailto:ralf@linux-mips.org] 
Sent: Wednesday, August 18, 2010 9:51 AM
To: Ardelean, Andrei
Cc: linux-mips@linux-mips.org
Subject: Re: Does Mips Linux rely on Yamon h/w initialization (other
than DDR memory which is strictly necessary)?

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.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>