Re: Booting PPC Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 01/03/12 20:07, Sascha Hauer wrote:
On Thu, Mar 01, 2012 at 07:41:35PM +0000, Renaud Barbier wrote:
I have a uImage + dtb that use to boot on a MPC8544-like system
a few months ago.

After rebasing my code, it did not work.

I notice that in arch/ppc/lib/ppclinux.c the kernel is now called
with the device tree as a parameter.

After investigation, I copied the device tree to within 8MB of the
kernel entry point (0x0). It booted.

Is the DTB relocation a missing step?
Yes, it seems so. barebox holds the device tree in malloced space. This
is likely outside 8MB of the kernel entry point. I was not aware of that
restriction.
I think I found the limitation in Linux.

In arch/powerpc/mm/init_32.c:

/*
 * address of the limit of what is accessible with initial MMU setup -
 * 256MB usually, but only 16MB on 601.
 */
phys_addr_t __initial_memory_limit_addr = (phys_addr_t)0x10000000;


The book E specific code (arch/ppc/mm/fsl_booke_mmu.c) adjusts this variable
 to 256MB but the highest I was able to  put the DTB is below 64MB.
It may be limited by another function call.

The available memory may be limited to 8 or 16MB on other CPUs (601 and 8xx).

Thanks.


Sascha




--
Renaud Barbier
14, Links Place
3/2 great Michael House
Edinburgh, EH67EN
Tel: +44 131 561 3532
--------------------------------------------------------------------------------


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox


[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux