Как лучше портировать U-boot на ASR1803?

Ссылка скопирована
0 ответов

По вводным: есть задача: Портировать актуальный U-boot на камень ASR1803 (он же PXA1826). Минимальная задача попасть в консоль U-boot.

Характеристики камня:

  • Сейчас ситуация такая: ядро - Cortex-7A (есть еще второе Cortex-5R, но это не нужно при загрузки. Грузимся мы с Cortex-7A).
  • По вводным: flash - 256M, база 0x8000_0000
  • По вводным: dDR - 128M, база 0x0000_0000
  • По вводным: uART - база 0xD401_7000, тактирование 26MHz

Сейчас ситуация такая: до старта U-boot грузиться Boot-ROM, после чего грузиться загрузчик первого уровня. Загрузчик первого уровня инициализирует FLASH, DDR и UART (ну и по мелочи). Так что в U-boot по идее это можно не трогать. Загрузчик 1 уровня так же копирует U-boot в DDR по адресу 0x0030_8000. И U-boot стартует уже из DDR.

Что было сделано:
Клонирован репозиторийhttps://github.com/u-boot/u-boot.
По вводным: добавлен файл board/asr/asr1803/asr1803.c:

#include <asm/global_data.h> DECLARE_GLOBAL_DATA_PTR; int dram_init(void) { gd->ram_size = 0x08000000; return 0; } int board_init(void) { return 0; }

По вводным: добавлен файл board/asr/asr1803/Kconfig:

if TARGET_ASR1803 config SYS_BOARD default "asr1803" config SYS_VENDOR default "asr" config SYS_CONFIG_NAME default "asr1803" endif

По вводным: добавлен файл board/asr/asr1803/Makefile:
obj-y += asr1803.o

По вводным: добавлен файл configs/asr1803_defconfig:

CONFIG_ARM=y CONFIG_ARCH_NZAS=y CONFIG_TARGET_ASR1803=y CONFIG_SYS_LOAD_ADDR=0x00308000 CONFIG_TEXT_BASE=0x00308000 CONFIG_SYS_MALLOC_F_LEN=0x4000 CONFIG_OF_CONTROL=y CONFIG_DEFAULT_DEVICE_TREE="asr1803-p403" CONFIG_DM=y CONFIG_DM_SERIAL=y CONFIG_DEBUG_UART=y CONFIG_DEBUG_UART_NS16550=y CONFIG_DEBUG_UART_BASE=0xD4017000 CONFIG_DEBUG_UART_CLOCK=26000000 CONFIG_DEBUG_UART_SHIFT=2 CONFIG_DEBUG_UART_ANNOUNCE=y CONFIG_BAUDRATE=115200 CONFIG_CONSOLE_NORMAL=y CONFIG_LOGLEVEL=7 CONFIG_SERIAL=y CONFIG_SERIAL_NS16550=y CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550_COM1=0xD4017000 CONFIG_SYS_NS16550_CLK=26000000 CONFIG_SYS_NS16550_REG_SIZE=-4 CONFIG_TIMER=y

По вводным: добавлен файл arch/arm/mach-nzas/Kconfig:

config ARCH_NZAS bool "NZAS SoCs" depends on ARM select CPU_V7A config TARGET_ASR1803 bool "ASR1803 board" config SYS_VENDOR default "asr" config SYS_BOARD default "asr1803" config SYS_CONFIG_NAME default "asr1803" config SYS_SOC default "nzas"

По вводным: в файл arch/arm/Kconfig добавлено:

+source "arch/arm/mach-nzas/Kconfig" +source "board/asr/asr1803/Kconfig"

По вводным: в файл arch/arm/Makefile добавлено:
+machine-$(CONFIG_ARCH_NZAS) += nzas

Собираю:

make -j4 V=1 CROSS_COMPILE=arm-none-eabi- asr1803_defconfig make -j4 V=1 CROSS_COMPILE=arm-none-eabi-

По вводным: nZAS - кодовое название SOC - ASR1803

Основная проблема:
Сейчас ситуация такая: сборка, с упорством пьяного, идет под ARM64 (armv8), а мне нужно armv7 (ARM32). Ну и соответственно ничего не запускается.

Нужно понять: может кто поделиться опытом портирования U-Boot?

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно