Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Dec 2012 15:21:03 -0800
From:      Oleksandr Tymoshenko <gonzo@bluezbox.com>
To:        Ian Lepore <freebsd@damnhippie.dyndns.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Raspberry Pi questions
Message-ID:  <0F630E03-7A0C-4D56-A580-C7A9ABD2CB0C@bluezbox.com>
In-Reply-To: <1356476778.1144.20.camel@revolution.hippie.lan>
References:  <1356466883.1144.8.camel@revolution.hippie.lan> <08125E73-C46A-4DDF-BFD8-59D5B86136B8@bluezbox.com> <1356476778.1144.20.camel@revolution.hippie.lan>

next in thread | previous in thread | raw e-mail | index | archive | help

On 2012-12-25, at 3:06 PM, Ian Lepore <freebsd@damnhippie.dyndns.org> =
wrote:

> On Tue, 2012-12-25 at 12:37 -0800, Oleksandr Tymoshenko wrote:
>> On 2012-12-25, at 12:21 PM, Ian Lepore =
<freebsd@damnhippie.dyndns.org> wrote:
>>=20
>>> I got my RPi running this morning, more or less.  I used the boot
>>> partition from the latest image at =
http://www.peach.ne.jp/archives/rpi/
>>> but I'm loading my own custom built kernel and world.  I have a few
>>> questions...
>>>=20
>>> Can I get ubldr to load a kernel using tftp, bootp, etc? =20
>>=20
>>    Yes. ubldr checks U-Boot devices (SD and net), then tries to =
locate
>> FFS partition on SD card and if fails - falls back to NFS/bootp. You =
can fetch
>> my image, boot partition there contains ubldr, FDT blob, config.txt =
and boot scripts:
>>=20
>> http://people.freebsd.org/~gonzo/arm/rpi/freebsd-pi-r243778.img.gz
>=20
> This is so close to working.  In u-boot I have an env var "usbethaddr"
> which contains what seems to be the right address (it's an RPi
> foundation oui).  But still when booting via ubldr it generates a =
random
> address every time, apparently because smsc_fdt_find_mac() always
> returns zeroes (I added a printf to the smsc driver).  If I hard-code
> the right mac address in the smsc driver I get all the way to =
multiuser
> mode.
>=20
> Also, when ubldr launches it immediately begins to load the kernel =
from
> sdcard before I can stop it.  I have to wait for that to finish and =
then
> do "unload" then load the kernel from net0:.  Can I create a file that
> contains different defaults or something?
>=20
> The amount of ram reported by kernel startup is only 128mb.  u-boot =
says
> 384mb, that's not right either.
>=20

All this means that kernel uses built-int dtb (I think at some point we =
should just
remove built-in DTB), not the one provided by u-boot.  In order to make =
ubldr
aware of external dub you need to pass "fdt addr 0x100" command to it.=20=

Also I don't know about how to set priorities for kernels :( So what I =
did was:
- Delete /boot/loader.rc and /boot/kernel/kernel on SD card. It makes =
ubldr=20
    go to NFS server for  these files. Or you can just nuke whole =
partition
- Add "fdt addr 0x100" to /boot/loader.rc in NFS root
- Deploy my experimental kernel to /boot/kernel/kernel in NFS root=20

Also make sure that DTB is populated by firmware. Issue following =
commands in U-Boot prompt:

fdt addr 0x100
fdt print=20

As a result you should get proper DTS with memory regions, MAC address =
and board serial.=20





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0F630E03-7A0C-4D56-A580-C7A9ABD2CB0C>