Date: Thu, 17 Apr 2014 21:10:29 -0700 From: Tim Kientzle <tim@kientzle.com> To: Mark R V Murray <mark@grondar.org> Cc: freebsd-arm <freebsd-arm@FreeBSD.org>, Ian Lepore <ian@FreeBSD.org>, ticso@cicely.de Subject: Re: Building an ARM/RPI-B release (hacked) on CURRENT/AMD64. Message-ID: <1963F059-91A1-4D4C-84AE-7BC6C25044E1@kientzle.com> In-Reply-To: <54D788B2-BD68-4F75-86FF-0C4E71D9B75A@grondar.org> References: <9FDD6F0E-B2A9-48D9-A3E4-181868995FDA@grondar.org> <EC41E53F-96EF-4652-9A02-D49448D104BE@kientzle.com> <20140417103117.GE44138@cicely7.cicely.de> <1397738961.1124.157.camel@revolution.hippie.lan> <ED243420-AC33-4D90-A23D-0266C142F3C1@grondar.org> <1397761628.1124.245.camel@revolution.hippie.lan> <7196A020-54E1-42FA-B8A0-25B145B0E412@bsdimp.com> <54D788B2-BD68-4F75-86FF-0C4E71D9B75A@grondar.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 17, 2014, at 12:54 PM, Mark R V Murray <mark@grondar.org> wrote: >=20 > On 17 Apr 2014, at 20:14, Warner Losh <imp@bsdimp.com> wrote: >=20 >>=20 >> On Apr 17, 2014, at 1:07 PM, Ian Lepore <ian@FreeBSD.org> wrote: >>>=20 >>> 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. =20 >>=20 >> what=92s the other part? Global register variables like this? >=20 > Yah. U-boot/Arm is heavily dependant on using R9 (previously R8) as a > global register variable. >=20 >>> 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. >>=20 >> Is that a poke in the eye of uboot, or is it more of a contention = that >> uboot is moving away from that need? >=20 > 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 =91gd=92 symbol return = the value of r9. Hmmm=85. How good is clang=92s inline assembly? #define gd __asm(=85. return r9 =85 ) Or maybe: #define gd getr9() gd_t *getr9(void); > I=92d mind a lot less if this was done as a port. >=20 > <thinking mode=3D=93aloud=94> > Hmm. A port to do what crochet does, without all the FreeBSD/ARM = (build|install)(world|kernel) stuff? >=20 > Something that makes an empty <mumble>.img (with only the weird boot = bits in it) as its =93product=94 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=92s been =93installed=94 on the system. (=93Install=94 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1963F059-91A1-4D4C-84AE-7BC6C25044E1>