Building an ARM/RPI-B release (hacked) on CURRENT/AMD64.
Tim Kientzle
tim at kientzle.com
Fri Apr 18 04:10:40 UTC 2014
On Apr 17, 2014, at 12:54 PM, Mark R V Murray <mark at grondar.org> wrote:
>
> On 17 Apr 2014, at 20:14, Warner Losh <imp at bsdimp.com> wrote:
>
>>
>> On Apr 17, 2014, at 1:07 PM, Ian Lepore <ian at FreeBSD.org> wrote:
>>>
>>> Hmmm. After a bit of poking around in the llvm code, it looks like the
>>> full extent of the support for -ffixed-r9 is that it doesn't consider
>>> that register available for use by the code generator; that's only part
>>> of what u-boot needs.
>>
>> what’s the other part? Global register variables like this?
>
> Yah. U-boot/Arm is heavily dependant on using R9 (previously R8) as a
> global register variable.
>
>>> Some online notes I found for clang 3.5 claim that global register
>>> variables aren't supported, and aren't likely to be any time soon.
>>
>> Is that a poke in the eye of uboot, or is it more of a contention that
>> uboot is moving away from that need?
>
> It means that for now I guess we are stuck with using GCC to compile u-boot.
Unless you can find some other way to make the ‘gd’ symbol return the value of r9. Hmmm…. How good is clang’s inline assembly?
#define gd __asm(…. return r9 … )
Or maybe:
#define gd getr9()
gd_t *getr9(void);
> I’d mind a lot less if this was done as a port.
>
> <thinking mode=“aloud”>
> Hmm. A port to do what crochet does, without all the FreeBSD/ARM (build|install)(world|kernel) stuff?
>
> Something that makes an empty <mumble>.img (with only the weird boot bits in it) as its “product” for later use by the release process might be nice.
/usr/ports/sysutils/u-boot-beaglebone-eabi is looking for an owner. ;-)
This was my attempt to do essentially what you suggest, but I never got it quite working. There are experimental bits in Crochet to exploit this port if it’s been “installed” on the system.
(“Install” in this case installs the built U-Boot bits in /usr/local/share and puts a shell script in /usr/local/bin that can copy those bits to a specified target dir.)
Tim
More information about the freebsd-arm
mailing list