Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Feb 2013 00:07:33 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        freebsd-arm@freebsd.org, Brett Wynkoop <wynkoop@wynn.com>
Subject:   Re: building RaspPi Images
Message-ID:  <E691571B-EA19-4485-BB02-7486685B44C7@bsdimp.com>
In-Reply-To: <58DCA6BE-8C06-4F69-81A2-A3582FBB5B12@kientzle.com>
References:  <5116CB50.9080303@ceetonetechnology.com> <7757848F-45C6-4DEF-A4A2-5F900EB10A06@kientzle.com> <20130210012052.4d7e1a46@ivory.local> <58DCA6BE-8C06-4F69-81A2-A3582FBB5B12@kientzle.com>

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

On Feb 10, 2013, at 12:03 AM, Tim Kientzle wrote:

> On Feb 9, 2013, at 10:20 PM, Brett Wynkoop wrote:
>>=20
>> I was thinking that we should be able to generate a generic image =
that
>> will boot on both the Pi and the Bone.  Maybe a config file that
>> includes the needed drivers for both boards.
>=20
> I've thought about this and believe it is pretty routine,
> though I've not had time to actually try implementing it.
>=20
> This specific combination is simplified by the fact
> that the boot bits are so different, so you can just
> put them all on the same SD card image.
>=20
> There are a few pieces you'll need to work through:
>  1. An MSDOS partition with all the boot bits from both systems
>  2. A kernel with all of the drivers for both systems
>  3. ubldr will need to identify the board somehow
>  4. ubldr will need to obtain the correct FDT

uboot is supposed to be providing the correct FDT. IF we aren't using =
it, we're doing FDT wrong and need to fix that.

> Except for #3, this should all be entirely routine.
>=20
> For #4, the trick is to not compile any DTB into the
> kernel.  Instead, the DTB is given to the kernel by
> the boot bits:
>=20
>  * For RPi, this already happens:  the first-stage boot
>     loads a DTB, ubldr uses "fdt addr" to access that DTB
>     in a known location and then passes it to the kernel.

Doesn't the RPi's boot loader give our /boot/loader enough info to get =
this without the fdt addr command?

>  * For Beaglebone, you can use loader.rc commands to load
>    the proper DTB from the UFS partition.  I'm using the following
>    on my BeagleBone right now:
>         /boot/beaglebone.dtb
>         /boot/loader.rc contains
>             load /boot/kernel/kernel
>             load -t dtb /boot/beaglebone.dtb
>             autoboot

why isnt' the beagle board's boot loader passing it to /boot/loader?

> This should be an afternoon's work for someone who already
> has a good understanding of FreeBSD boot processes.

The real solution here is to get the FDT plumbed through from the boards =
primary boot strap code into our code. Linux requires that this be =
passed in via like r2 for Linux to boot. We should make use of that too.

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E691571B-EA19-4485-BB02-7486685B44C7>