Rasbperry Pi, what should TARGET_ARCH be?

Warner Losh imp at bsdimp.com
Sat Jan 25 17:50:53 UTC 2014

On Jan 24, 2014, at 9:40 PM, Glen Barber wrote:

> Hi,
> I've been working on adding support for embedded systems to the release
> scripts, which set up a chroot to ensure a clean build environment, then
> runs Tim's Crochet scripts.
> For the RPI-B, recent updates to the build scripts work fine for
> 11.0-CURRENT and 10.0-STABLE.  However, 10.0-RELEASE images fail to
> boot.

If that worked, it worked by accident.

> I showed output from 'uname -pm' out-of-band of an 11.0-CURRENT image,
> and was suspicious that the output showed 'arm arm', not 'arm armv6'.
> Warner had the same impression it should be 'arm armv6'.
> Hiren poked around the Crochet code, and saw that 'TARGET_ARCH=arm' is
> set for the RaspberryPi board by default.

This is incorrect.

> As a "just in case" experiment, I retried the 10.0-RELEASE code
> (release/10.0.0/) with TARGET_ARCH=armv6, and sure enough, it works.
> But, I don't know *why*.

It works because that's the architecture that the RPi runs.

> Is this a change between head/ and stable/10/ versus releng/10.0/ ?
> I can handle a differentiation between the branches with regard to this
> (sort of), but I want to make sure the correct TARGET_ARCH is being set
> across the different branches, so it can be handled properly in the
> build scripts, and usable images can be produced.

The definition should be the same on both branches. You must use TARGET_ARCH=armv6 on all known branches to produce working code.  You might get lucky and get TARGET_ARCH=arm and have it work, but that's most definitely not a supported configuration.

> So, what should be used?  And where?

For RPi, TARGET_ARCH=armv6 everywhere on all branches >= 9. RPi isn't supported 8 and lower.


> Thanks for any input,
> Glen

More information about the freebsd-arm mailing list