beagleboneblacku-bootbeagleboardkbuild

Config u-boot for new board error because __LINUX_ARM_ARCH__


I try some set up config to load u-boot for a new board. My configuration is based on U-boot for Beagle Bone Black. I also follow some changes for new board on https://github.com/PacktPublishing/Mastering-Embedded-Linux-Programming-Second-Edition/blob/master/Chapter03/0001-BSP-for-Nova.patch.

I clone a new u-boot and stand at master branch, after I made config file for new board, I ran make. It has 2 issues:

  1. SYS_TEXT_BASE:
scripts/kconfig/conf  --syncconfig Kconfig

outputs

.config:22:warning: symbol value '' invalid for SYS_TEXT_BASE

*
* Restart config...
*
*

* Boot images
*

Enable support for Android Boot Images (ANDROID_BOOT_IMAGE) [Y/n/?] y

Support Flattened Image Tree (FIT) [N/y/?] n

Enable support for the legacy image format (IMAGE_FORMAT_LEGACY)
[Y/n/?] y

Set up board-specific details in device tree before boot
(OF_BOARD_SETUP) [N/y/?] n

Set up system-specific details in device tree before boot
(OF_SYSTEM_SETUP) [N/y/?] n

Update the device-tree stdout alias from U-Boot (OF_STDOUT_VIA_ALIAS)
[N/y/?] n

Extra Options (DEPRECATED) (SYS_EXTRA_OPTIONS) []

Text Base (SYS_TEXT_BASE) [] (NEW)

Then I search for a SYS_TEXT_BASE and entered a random text base: 0xfff10000. But I think it's not for Beagle Bone.

  1. Error __LINUX_ARM_ARCH__:
In file included from ./arch/arm/include/asm/system.h:6:0,

                 from ./arch/arm/include/asm/cache.h:11,
                 from include/net.h:15,
                 from include/common.h:517,
                 from lib/asm-offsets.c:14:
./arch/arm/include/asm/barriers.h:32:24: error: operator '>=' has no
left operand  #if __LINUX_ARM_ARCH__ >= 7
                        ^~

./arch/arm/include/asm/barriers.h:36:26: error: operator '==' has no
left operand  #elif __LINUX_ARM_ARCH__ == 6
                          ^~
Kbuild:43: recipe for target 'lib/asm-offsets.s' failed

make[1]: *** [lib/asm-offsets.s] Error 1

Makefile:1575: recipe for target 'prepare0' failed

make: *** [prepare0] Error 2

This was caused by a Kconfig option being renamed on master (CPU_V7 to CPU_V7A). I changed in Kconfig CPU_V7A to CPU_V7, but it still has the same issue.

How can I resolve these issues?


Solution

  • The text base of the Beaglebone Black Board is CONFIG_SYS_TEXT_BASE=0x80100000. It is specified in configs/omap3_beagle_defconfig.

    The symbol __LINUX_ARM_ARCH__ is defined in arch/arm/Makefile based on CONFIG_SYS_ARM_ARCH which is defined in .config. So something must be wrong with your .config file.