Compilation for ARM

Ian Lepore ian at FreeBSD.org
Fri Jun 13 16:15:29 UTC 2014


On Fri, 2014-06-13 at 08:33 +0600, Stepan Dyatkovskiy wrote:
> Hi all,
> 
> Currently I'm trying to compile kernel, with activated cortex-a9 or a15 
> options (TARGET_CPUTYPE=cortex-a9).
> Currently "as" from buildworld gives me tons of "unknown instruction" 
> errors. That happens, I suppose, due to its release date (2007).
> 

It makes no sense that you are getting such problems.  I've never used
TARGET_CPUTYPE at all, and there's no problem compiling the kernel with
the tools in base.  All you need to build the kernel is
  
  make buildkernel TARGET_ARCH=armv6 KERNCONF=PANDABOARD

-- Ian


> So I have tried newer versions of binutils:
> 1. devel/cross-binutils from ports. I have built it with TGTARCH=armv6 
> and TGTABI=none-eabi.
> 2. Binutils from http://ftp.gnu.org/gnu/binutils/
> 
> I did it in several steps:
> 1. I have built them.
> 2. I have entered buildenv: "make TARGET_CPUTYPE=armv6 buildenv"
> 3. # which as
> 4. # cp /usr/obj/arm.armv6/usr/src/tmp/usr/bin/as 
> /usr/obj/arm.armv6/usr/src/tmp/usr/bin/as.bak
> 
> Below I tried several ways to replace as/ld/and-friends:
> 5. cp /usr/local/bin/armv6-none-eabi-as 
> /usr/obj/arm.armv6/usr/src/tmp/usr/bin/as
> 6. I have also tried "ln -s"
> 
> 7. # make KERNCONF=PANDABOARD TARGET_CPUTYPE=cortex-a9 buildkernel
> 
> Whatever I did, it always ended up with
> 
> /usr/src/sys/arm/arm/locore.S: Assembler messages:
> /usr/src/sys/arm/arm/locore.S:79: Error: duplicate .fnstart directive
> /usr/src/sys/arm/arm/locore.S:255: Error: .fnend directive without .fnstart
> 
> So, may be, you guys know how to deal with that?
> 
> Currently I have no idea :-(.. May be sleep a bit :-)
> 
> Thanks!
> 
> -Stepan
> 
> Stepan Dyatkovskiy wrote:
> > Hi all,
> >
> > Thanks for advices!
> >
> > That's interesting. I have managed to launch kernel, using these u-boot
> > binaries:
> > http://people.freebsd.org/~gonzo/pandaboard/
> >
> > Looks like specific MLO. But I'm not sure.
> >
> > With regular linaro u-boot, I load kernel.bin, then try start it with
> > "go", and nothing happens. With binaries of this Gonzo guy, I did the
> > same, and everything works fine :-/ Do you know who is it (I mean
> > Gonzo)? I would like to ask him, what he did in his binaries.
> >
> > Another question:
> > I would like to build FreeBSD, using latest clang. Currently I have
> > tried to build it latest svn version of FreeBSD:
> > svn://svn.freebsd.org/base/head/
> > With command:
> > make TARGET_ARCH=armv6 buildworld TARGET_CPUTYPE=cortex-a9
> >
> > But got next error (repeated several
> > times):/tmp/jemalloc_atomic-22cc38.s:21: Error: garbage following
> > instruction -- `dmb ish'
> >
> > So perhaps, its better to use stable version (10.0.0), but with new
> > clang. Currently, I'm going to copy clang sources from HEAD into 10.0.0
> > sources tree. But perhaps there is better way to do it?
> >
> > Thanks!
> >
> > -Stepan
> >
> > Ian Lepore wrote:
> >> On Thu, 2014-06-12 at 01:44 +0600, Stepan Dyatkovskiy wrote:
> >>> Hi guys,
> >>> Thank you! I have built it successfully. It was really simple. Currently
> >>> I'm trying to launch with u-boot. Are here any instructions/manual how
> >>> to run kernel with u-boot?
> >>> Thanks!
> >>> -Stepan
> >>
> >> If you compile the dtb into the kernel, you can launch the kernel
> >> directly from u-boot.  If you don't, then you need u-boot to launch
> >> ubldr (loader(8) that uses the u-boot API, which requires a u-boot with
> >> the API option enabled).
> >>
> >> The kernel can be loaded at any 1MB-boundary address, and can be
> >> launched by jumping to the load address + 0x100, such as:
> >>
> >>    fatload <device/partition> 11000000; go 11000100
> >>
> >> If you are using a modern u-boot that enables data caches, you need to
> >> turn them off manually, like:
> >>
> >>    fatload <device/partition> 11000000
> >>    dcache off; dcache flush
> >>    go 11000100
> >>
> >> This is just a u-boot quirk, it disables caches on bootm and bootelf
> >> commands, but not on a "go" command.
> >>
> >> -- Ian
> >>
> >
> 




More information about the freebsd-arm mailing list