Subject: Re: [Linux-galileo] ev64260 bi_rec patch

From: [email-masked] (Michael Sokolov)
Date: Fri, 29 Mar 02 15:59:44 PST

Mark A. Greer <[email-masked]> wrote:

> I have other things to do so I won't be able to finish today.  In case
> someone wants to work on this over the weekend, attached is a patch of
> what I have so far.  It implements the example bi_rec's emailed before
> for the ev64260 board.  Feel free to use it or do a better job.

Looks OK except for 2 major problems:

1. You are using find_bootinfo() in EV-64260 platform_init to find the bi_recs.
This is bad, as the magic location where find_bootinfo looks for the bi_recs is
unavailable to bootloaders outside the linux source tree. Instead I have
adopted the convention (which Tom Rini has accepted for the K2 port and
implemented in the wrapper) to pass the physical address of bi_recs to the
kernel in R3. You should use r3 + KERNELBASE in platform_init to find the
bi_recs. This works with the wrapper just as well as find_bootinfo(), but is
much nicer for external bootloaders.

2. You are also using find_bootinfo() in the gt64260_eth driver to find its
bi_recs. In addition to the problems mentioned above, this has the extra
problem in that find_bootinfo's magic location, or any other bootloader's
location for that matter, has certainly been overwritten at this point. If you
want to peek at bi_recs after platform_init(), you have to have setup.c or
something copy them into memory that the kernel will retain.

Because of problem #2 your code will most certainly not work as it is right
now.

MS

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/