Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: U-Boot на AT91RM9200
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
InHaze
Добрый вечер.

Имеется плата на процессоре AT91RM9200 от Atmel. SDRAM и NOR-Flash подключены аналогично плате AT91RM9200-EK.
Решил собрать U-Boot более новой версии. Использую конфигурацию AT91RM9200EK_config.
Вот что выводится на Debug-порт:

Код
U-Boot 2014.01-rc1-00024-gf44483b (Dec 06 2013 - 17:03:04)

DRAM:  32 MiB


JTAG на плате нет, вся загрузка производиться через Debug. С помощью вывода на консоль текстовых данных обнаружил, что функция board_init_f() отрабатывается полностью, до board_init_r() дело не доходит. Видимо, процедура релокации происходит с ошибками.

Можете что-нибудь посоветовать?

P.S. Перенесите тему, если разделом ошибся 05.gif
Dron_Gus
Могу посоветовать в arch/arm/lib/board.c до инслудов написать #define DEBUG . Выведет все смещения и адреса. Их стоит внимательно проверить.
InHaze
Цитата(Dron_Gus @ Dec 6 2013, 18:54) *
Могу посоветовать в arch/arm/lib/board.c до инслудов написать #define DEBUG . Выведет все смещения и адреса. Их стоит внимательно проверить.

спасибо, стало понятнее
Код
U-Boot 2013.10 (Dec 10 2013 - 13:27:18)

U-Boot code: 10000000 -> 10032A1C  BSS: -> 10081820
monitor len: 00081820
ramsize: 02000000
TLB table from 21ff0000 to 21ff4000
Top of RAM usable for U-Boot at: 21ff0000
Reserving 518k for U-Boot at: 21f6e000
Reserving 384k for malloc() at: 21f0e000
Reserving 32 Bytes for Board Info at: 21f0dfe0
Reserving 176 Bytes for Global Data at: 21f0df30
New Stack Pointer is: 21f0df20
RAM Configuration:
Bank #0: 20000000 32 MiB
relocation Offset is: 11f6e000


видимо неправильный адрес конца секции .bss (BSS: -> 10081820)
сам u-boot.bin занимает 227КБ, то есть не должен вылазить за адрес 10040000

в uboot/arch/arm/lib/board.c
Код
debug("U-Boot code: %08lX -> %08lX  BSS: -> %08lX\n",
               _TEXT_BASE,
               _bss_start_ofs + _TEXT_BASE, _bss_end_ofs + _TEXT_BASE);

в uboot/arch/arm/cpu/arm920t/start.S:
Код
.globl _bss_end_ofs
_bss_end_ofs:
        .word __bss_end__ - _start

где определяется __bss_end__ найти не могу

попытался собрать собрать предыдущую стабильную версию (2013.10, на последнем логе), не помогло
собирал с другим тулчейном, на консоль вообще ничего не выводилось
Dron_Gus
Цитата(InHaze @ Dec 10 2013, 17:30) *
где определяется __bss_end__ найти не могу

попытался собрать собрать предыдущую стабильную версию (2013.10, на последнем логе), не помогло
собирал с другим тулчейном, на консоль вообще ничего не выводилось

grep __bss_end -R ./arch/arm/
Для at91 в arm920 u-boot.lds отсутствует. Значит используется какой-то стандартный. Возможно, arch/arm/cpu/u-boot.lds.

Вообще эта релокация тот еще геморой.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.