Конфигурируйте u-boot для новой ошибки платы, потому что __LINUX_ARM_ARCH__
Я пытаюсь настроить конфигурацию, чтобы загрузить u-boot для новой платы. Моя конфигурация основана на U-boot для Beagle Bone Black. Я также следую за некоторыми изменениями для новой доски в https://github.com/PacktPublishing/Mastering-Embedded-Linux-Programming-Second-Edition/blob/master/Chapter03/0001-BSP-for-Nova.patch. Я клонирую новый u-boot и стою в основной ветке, после того как я сделал файл конфигурации для новой платы, я запустил make. Есть 2 вопроса:
- Первое о SYS_TEXT_BASE:
scripts / kconfig / conf --syncconfig Kconfig
.config: 22: предупреждение: значение символа '' недопустимо для SYS_TEXT_BASE
* * Перезапустить конфигурацию... * *
- Загрузочные образы *
Включить поддержку загрузочных образов Android (ANDROID_BOOT_IMAGE) [Y/n/?] Y
Поддержка сплющенного дерева изображений (FIT) [N/y/?] N
Включить поддержку устаревшего формата изображения (IMAGE_FORMAT_LEGACY) [Y/n/?] Y
Задать информацию о плате в дереве устройств перед загрузкой (OF_BOARD_SETUP) [N/y/?] N
Установите специфичные для системы детали в дереве устройств перед загрузкой (OF_SYSTEM_SETUP) [N/y/?] N
Обновите псевдоним stdout дерева устройств из U-Boot (OF_STDOUT_VIA_ALIAS) [N/y/?] N
Дополнительные параметры (УСТАРЕЛО) (SYS_EXTRA_OPTIONS) []
Текстовая база (SYS_TEXT_BASE) [] (NEW)
Затем я ищу SYS_TEXT_BASE и ввел произвольную текстовую базу: 0xfff10000. Но я думаю, что это не для Beagle Bone.
- Ошибка LINUX_ARM_ARCH
В файл включен из./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: ошибка: у оператора '>=' нет левого операнда #if LINUX_ARM_ARCH > = 7 ^ ~
./arch/arm/include/asm/barriers.h:36:26: ошибка: у оператора '==' нет левого операнда #elif LINUX_ARM_ARCH == 6 ^ ~ Kbuild: 43: рецепт для цели 'смещения lib / asm.s'не удалось
make[1]: *** [lib/asm-offsets.s] Ошибка 1
Makefile: 1575: рецепт для цели 'prepare0' не удался
make: *** [prepare0] Ошибка 2
Для второй проблемы это было вызвано переименованием опции Kconfig на master (CPU_V7 в CPU_V7A). Я изменил в Kconfig CUP_V7A на CPU_V7, но все еще имеет ту же проблему. Пожалуйста, посмотрите, спасибо.
1 ответ
При кросс-компиляции может быть что-то похожее: make ARCH=arm CROSS_COMPILE=/path/to/arm-unknown-linux-
, чтобы __LINUX_ARM_ARCH__
будет известно (иначе вы могли бы использовать x84_64
заголовки). Вы можете найти все типы конфигурации здесь.
Текстовая база для доски Beaglebone Black CONFIG_SYS_TEXT_BASE=0x80100000. Это указано в configs/omap3_beagle_defconfig.
Символ __LINUX_ARM_ARCH__ определен в arch/arm/Makefile на основе CONFIG_SYS_ARM_ARCH, который определен в.config. Так что что-то не так с вашим файлом.config.