Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Feb 2013 23:03:38 -0800
From:      Tim Kientzle <tim@kientzle.com>
To:        Brett Wynkoop <wynkoop@wynn.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: building RaspPi Images
Message-ID:  <58DCA6BE-8C06-4F69-81A2-A3582FBB5B12@kientzle.com>
In-Reply-To: <20130210012052.4d7e1a46@ivory.local>
References:  <5116CB50.9080303@ceetonetechnology.com> <7757848F-45C6-4DEF-A4A2-5F900EB10A06@kientzle.com> <20130210012052.4d7e1a46@ivory.local>

next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 9, 2013, at 10:20 PM, Brett Wynkoop wrote:
> 
> 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.

I've thought about this and believe it is pretty routine,
though I've not had time to actually try implementing it.

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.

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

Except for #3, this should all be entirely routine.

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:

  * 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.

  * 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

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

Tim




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?58DCA6BE-8C06-4F69-81A2-A3582FBB5B12>