On 7/26/06, <b class="gmail_sendername">Clint Thomas</b> &lt;<a href="mailto:cthomas@soneticom.com">cthomas@soneticom.com</a>&gt; wrote:<div><span class="gmail_quote"></span><div><br>
&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div><div><font face="Arial" size="2"><span>Basically, the system I want linux running on does not require the 
initialization of hardware that U-boot provides, or at least it does not need it 
to boot the linux kernel. I want to load an uncompressed linux kernel into 
memory and start the execution of the kernel, without using any kind of 
bootloader. Is this possible? Or does linux need some kind of firmware or other 
software to tell it to start executing? Thanks for any info you might 
have.</span></font></div></div></div></blockquote><div><br>
Once the hardware is initialised,&nbsp; it is pretty straightforward to
boot the linux kernel. All you have to have is the kernel at address
zero, struct bd_info filled in some place in memory, kernel command
line stored in memory, and registers r3 ... r7 containing pointers to
these.<br>
<br>
For reference, look<br>
1) include/asm-ppc/ppcboot.h for example struct bd_info<br>
2) arch/ppc/syslib/m8260_setup.c for the registers<br>
<br>
If you have some custom hardware, you need to create (basically empty)
platform code, since the existing ones would try to touch some board
control registers you don't have.<br>
<br>
But remember, you need to initialise the memory controller and all
sorts of things yourself somehow - with a JTAG debugger or a custom
boot loader.<br>
<br>
<br>
</div></div>