Перейти к содержанию
    

u-boot xlnx + custom Zynq board

Есть вопрос к специалистам:

собираю u boot для Arty Z7-20 платы на Zynq'е средствами кросс - компиляции по вики Xilinx:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841973/Build+U-Boot

Потом собираю BOOT.BIN добавив fsbl.elf, .bit файл прошивки и u-boot.elf скомпилированный с исходников из гита Xilinx.

Запускаюсь, предварительно разрешив дебаг в FSBL, вот лог:


Xilinx First Stage Boot Loader
Release 2019.1  May 24 2020-00:58:05
Devcfg driver initialized
Silicon Version 3.1
Boot mode is SD
SD: rc= 0
SD Init Done
Flash Base Address: 0xE0100000
Reboot status register: 0x60600000
Multiboot Register: 0x0000C000
Image Start Address: 0x00000000
Partition Header Offset:0x00000C80
Partition Count: 3
Partition Number: 1
Header Dump
Image Word Len: 0x000F6EC0
Data Word Len: 0x000F6EC0
Partition Word Len:0x000F6EC0
Load Addr: 0x00000000
Exec Addr: 0x00000000
Partition Start: 0x000075D0
Partition Attr: 0x00000020
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFD13B7E
Bitstream
In FsblHookBeforeBitstreamDload function
PCAP:StatusReg = 0x40000A30
PCAP:device ready
PCAP:Clear done
Level Shifter Value = 0xA
Devcfg Status register = 0x40000A30
PCAP:Fabric is Initialized done
PCAP register dump:
PCAP CTRL 0xF8007000: 0x4C00E07F
PCAP LOCK 0xF8007004: 0x0000001A
PCAP CONFIG 0xF8007008: 0x00000508
PCAP ISR 0xF800700C: 0x0802000B
PCAP IMR 0xF8007010: 0xFFFFFFFF
PCAP STATUS 0xF8007014: 0x00008A30
PCAP DMA SRC ADDR 0xF8007018: 0x00100001
PCAP DMA DEST ADDR 0xF800701C: 0xFFFFFFFF
PCAP DMA SRC LEN 0xF8007020: 0x000F6EC0
PCAP DMA DEST LEN 0xF8007024: 0x000F6EC0
PCAP ROM SHADOW CTRL 0xF8007028: 0xFFFFFFFF
PCAP MBOOT 0xF800702C: 0x0000C000
PCAP SW ID 0xF8007030: 0x00000000
PCAP UNLOCK 0xF8007034: 0x757BDF0D
PCAP MCTRL 0xF8007080: 0x30800100

DMA Done !

FPGA Done !
In FsblHookAfterBitstreamDload function
Partition Number: 2
Header Dump
Image Word Len: 0x00021F48
Data Word Len: 0x00021F48
Partition Word Len:0x00021F48
Load Addr: 0x04000000
Exec Addr: 0x04000000
Partition Start: 0x000FE490
Partition Attr: 0x00000011
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xF7E9BB25
Application
Handoff Address: 0x04000000
In FsblHookBeforeHandoff function
SUCCESSFUL_HANDOFF
FSBL Status = 0x1

U-boot не грузится. Беру u-boot из проекта petalinux, созданного для этой же платы, собираю boot.bin, загрузка u-boot проходит нормально.

Не могу понять, почему не работает u-boot, полученный из исходников Xilinx.

Команды для компиляции использую следующие:

 

export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
make distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zynq_zc702_defconfig
make ARCH=arm

Пробовал компилировать и с arm-none-eabi- компилятором. При загрузке с U-boot из петалинукса в логе упоминается zynq_zc702_defconfig конфиг.

Может необходимо какие либо настройки в zynq_zc702_defconfig поменять до компиляции?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Откуда брался fsbl?

2. А если "вручную" запустить U-Boot с инициализацией скриптами - он запускается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 minutes ago, gosha-z said:

1. Откуда брался fsbl?

2. А если "вручную" запустить U-Boot с инициализацией скриптами - он запускается?

1. FSBL сгенерерованный в Xilinx SDK.

2. Не вижу смысла в ином способе запуска: BOOT.BIN читается из микроСД карты, с uboot из петалинукса грузится, c uboot из исходников -- нет. пытаюсь понять в чем разница. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Alexey_Rostov said:

FSBL сгенерерованный в Xilinx SDK.

После того. как вы точно воспроизвели конфигурацию PCW Arty7?

1 minute ago, Alexey_Rostov said:

пытаюсь понять в чем разница. 

Device Tree разный, например. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, gosha-z said:

После того. как вы точно воспроизвели конфигурацию PCW Arty7?

Device Tree разный, например. 

Спасибо. тогда может найти на какой device tree указывает конфиг zynq_zc702_defconfig, подредактировать под мой DT с платы и запуститься. То есть проблема в разных DT, которые описывают периферию без PL части?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это всего лишь предположение. Поэтому я и предложил запустить сначала U-Boot на инициализации скриптами. Тогда у вас есть возможность вывести дебаг в DCC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Alexey_Rostov said:

Спасибо. тогда может найти на какой device tree указывает конфиг zynq_zc702_defconfig, подредактировать под мой DT с платы и запуститься. То есть проблема в разных DT, которые описывают периферию без PL части?

Действительно, получилось. Создал свой arty_defconfig файл, добавил папку с названием arty в u-boot-xlnx/board/xilinx/zynq с файлами ps7_init_gpl.c, ps7_init_gpl.h, ps7_init.c, ps7_init.h, в папку dts arty.dts и добавил в Makefile в папке dts arty.dtb.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...