freebsd-beaglebone install problem
Tim Kientzle
tim at kientzle.com
Thu Sep 6 03:11:57 UTC 2012
On Sep 5, 2012, at 2:23 PM, Aleksandr Rybalko wrote:
> On Wed, 5 Sep 2012 11:13:14 -0700
> Hans Stimer <hans.stimer at gmail.com> wrote:
>
>> Tried the latest in github, but uboot isn't building. I'll have some
>> time later today to try and figure what is going on.
>>
>> # git clone
>> # git://arago-project.org/git/projects/u-boot-am33x.git /usr/home/hans/extern/freebsd-beaglebone/u-boot
>>
>> # /bin/sh beaglebsd.sh
>> Starting at Wed Sep 5 11:05:10 PDT 2012
>> Loading configuration values
>> Found FreeBSD xdev tools for ARM
>> Found suitable U-Boot sources
>> in /usr/home/hans/extern/freebsd-beaglebone/u-boot Found suitable
>> FreeBSD source tree in /usr/armsrc Patching U-Boot. (Logging
>> to /usr/home/hans/extern/freebsd-beaglebone/work/_.uboot.patch.log)
>> Applying
>> patch /usr/home/hans/extern/freebsd-beaglebone/config/arm/BEAGLEBONE/files/uboot_patch1_add_libc_to_link_on_FreeBSD.patch
>> Applying
>> patch /usr/home/hans/extern/freebsd-beaglebone/config/arm/BEAGLEBONE/files/uboot_patch2_add_options_to_am335x_config.patch
>> Applying
>> patch /usr/home/hans/extern/freebsd-beaglebone/config/arm/BEAGLEBONE/files/uboot_patch3_fix_api_disk_enumeration.patch
>> Applying
>> patch /usr/home/hans/extern/freebsd-beaglebone/config/arm/BEAGLEBONE/files/uboot_patch4_shrink_spl.patch
>> Applying
>> patch /usr/home/hans/extern/freebsd-beaglebone/config/arm/BEAGLEBONE/files/uboot_patch5_set_zero_bootdelay.patch
>> Configuring U-Boot. (Logging
>> to /usr/home/hans/extern/freebsd-beaglebone/work/_.uboot.configure.log)
>> Building U-Boot. (Logging
>> to /usr/home/hans/extern/freebsd-beaglebone/work/_.uboot.build.log)
>> Failed to build U-Boot. Log
>> in /usr/home/hans/extern/freebsd-beaglebone/work/_.uboot.build.log
>> #
>>
>>
>> # cat work/_.uboot.build.log
>> Generating include/autoconf.mk
>> include/common.h:43:20: error: stdarg.h: No such file or directory
>> In file included from include/image.h:36,
>> from include/common.h:117:
>> include/compiler.h:8:20: error: stddef.h: No such file or directory
>> Generating include/autoconf.mk.dep
>> include/common.h:43:20: error: stdarg.h: No such file or directory
>> In file included from include/image.h:36,
>> from include/common.h:117:
>> include/compiler.h:8:20: error: stddef.h: No such file or directory
>> arm-freebsd-gcc -DDO_DEPS_ONLY \
>> -g -Os -fno-common -ffixed-r8 -msoft-float -D__KERNEL__
>> -DCONFIG_SYS_TEXT_BASE=0x80100000 -DCONFIG_SPL_TEXT_BASE=0x402F0400
>> -I/usr/home/hans/extern/freebsd-beaglebone/u-boot/include
>> -fno-builtin -ffreestanding -nostdinc -isystem include -pipe
>> -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork
>> -march=armv5 -Wall -Wstrict-prototypes -fno-stack-protector
>> -Wno-format-nonliteral -Wno-format-security \ -o lib/asm-offsets.s
>> lib/asm-offsets.c -c -S In file included from lib/asm-offsets.c:18:
>> include/common.h:43:20: error: stdarg.h: No such file or directory In
>> file included from include/image.h:36, from include/common.h:117,
>> from lib/asm-offsets.c:18: include/compiler.h:8:20: error: stddef.h:
>> No such file or directory In file included from lib/asm-offsets.c:18:
>> include/common.h:687: error: expected declaration specifiers or '...'
>> before 'va_list' In file included from lib/asm-offsets.c:18:
>> include/common.h:719: error: expected declaration specifiers or '...'
>> before 'va_list' gmake: *** [lib/asm-offsets.s] Error 1
>> #
>>
>>
>> On Tuesday, September 4, 2012 at 9:28 PM, Tim Kientzle wrote:
>>
>>>
>>> On Sep 4, 2012, at 9:22 PM, Tim Kientzle wrote:
>>>
>>>>
>>>> On Sep 4, 2012, at 6:07 PM, Warner Losh wrote:
>>>>
>>>>>
>>>>> On Sep 4, 2012, at 4:17 PM, Hans Stimer wrote:
>>>>>
>>>>>> I'm running into problems getting FreeBSD working on the
>>>>>> BeagleBone.
>>>>
>>>>>>
>>>>>>> # cu -l /dev/ttyU1 -s 115200
>>>>>>> Connected
>>>>>>> CCCCCCCC
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> The ROM code for the AM3358 SoC in the BeagleBone falls
>>>> back to YModem if it can't load the first-stage MLO boot loader
>>>> from SDHC.
>>>>
>>>> If you see this, then either the FAT partition is
>>>> ill-formed or the MLO file is missing.
>>>>
>>>>>> I checked the logs, and this one stood out:
>>>>>>
>>>>>>> # less _.uboot.build.log
>>>>>>> Generating include/autoconf.mk
>>>>>>> include/common.h:43:20: error: stdarg.h: No such file or
>>>>>>> directory In file included from include/image.h:36,
>>>>>>> from include/common.h:117:
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> Yeah, looks like U-Boot didn't build.
>>>>
>>>> I haven't updated my local U-Boot sources in a while,
>>>> I'll go do that and get right back to you…
>>>>
>>>
>>>
>>> Please update the freebsd-beaglebone scripts and
>>> try again. I found and fixed a couple of problems:
>>>
>>> * I had reversed the logic to decide if patches were already
>>> applied, so U-Boot wasn't getting patched.
>>> * One of my patches needed to be updated to work with
>>> the newest U-Boot sources.
>>> * I added some logic so that the beaglebsd.sh (http://beaglebsd.sh)
>>> script will actually fail with an error message if the U-Boot patch,
>>> configure, or build steps fail. This should make problems
>>> like this more obvious.
>>>
>>> Let me know if you run into any other issues.
>>>
>>> Cheers,
>>>
>>> Tim
>>
>> _______________________________________________
>> freebsd-arm at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
>> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
>
> Hi,
>
> You can try to use your FreeBSD toolchain for that, it works for me:
> CROSS=/usr/obj/arm.armv6/usr/src/tmp/usr/bin/
> gmake ARCH=arm CROSS_COMPILE=${CROSS} distclean
> gmake ARCH=arm CROSS_COMPILE=${CROSS} YOUR_BOARD_config
> gmake ARCH=arm CROSS_COMPILE=${CROSS}
>
> Replace /usr/obj/arm.armv6/usr/src/tmp/usr/bin with your path to
> toolchain made by FreeBSD build system for your board.
Better yet, use the FreeBSD xdev toolchain.
> Ohhh, forget about small patch to make some math symbols also from uboot
> sources.
> --------------------------------------------------------
> diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
> index 39a9550..ec05e33 100644
> --- a/arch/arm/lib/Makefile
> +++ b/arch/arm/lib/Makefile
> @@ -49,6 +49,15 @@ endif
> COBJS-y += cache.o
> COBJS-y += cache-cp15.o
>
> +COBJS-y += div0.o
> +COBJS-y += _ashldi3.o
> +COBJS-y += _ashrdi3.o
> +COBJS-y += _divsi3.o
> +COBJS-y += _lshrdi3.o
> +COBJS-y += _modsi3.o
> +COBJS-y += _udivsi3.o
> +COBJS-y += _umodsi3.o
> +
> SRCS := $(GLSOBJS:.o=.S) $(GLCOBJS:.o=.c) \
> $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
> OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
> --------------------------------------------------------
Somewhere FreeBSD screwed up and on ARM
these functions all ended up in libc instead of
in libcompiler_rt.
It's a one-line patch to the U-Boot makefile to
link against libc, but it would probably be
better long-term to move these into the right place.
Tim
More information about the freebsd-arm
mailing list