Cora Z7 > ビルトイン USBシリアルでFSBLの処理メッセージを表示したい > 10秒のdelayを追加 > microSDからアプリ起動もした
CORA Z7
Windows 10 Pro v1909
Vivado v2019.1
TeraTerm Version 4.105
概要
Cora Z7を用いた実装をしたのだが、デバッガ動作で動いてmicroSD動作で動かない。
microSD動作を確認するため、FSBLのメッセージをシリアル出力したい。
接続
- USB
- 電源として
- シリアル出力用
- Pmod JA 0と1ピン
- UARTLiteで使おうとしたが、だめだった
シリアル出力の問題
- ビルトインUSBシリアル
- USB電源で接続した時にTeraTermの接続が切れる
- 接続が戻るまでに出力がなくなる?
- Pmod JA 0と1ピン
- UARTLiteで実装
- FSBLのメッセージをこちらに表示しようとしたが、いろいろ試して成功せず
対処
- fsblのmain.cを以下のようにした。
-
#include <sleep.h>
を追加 - main()でsleepを追加
-
int main(void)
{
u32 BootModeRegister = 0;
u32 HandoffAddress = 0;
u32 Status = XST_SUCCESS;
u32 RegVal;
/*
* PCW initialization for MIO,PLL,CLK and DDR
*/
sleep(10); // <------ 追加した処理 -------
Status = ps7_init();
FSBL出力
Xilinx First Stage Boot Loader
Release 2019.1 Oct 17 2020-12:02:15
Devcfg driver initialized
Silicon Version 3.1
Boot mode is SD
SD: rc= 0
SD Init Done
Flash Base Address: 0xE0100000
Reboot status register: 0x60400000
Multiboot Register: 0x0000C000
Image Start Address: 0x00000000
Partition Header Offset:0x00000C80
Partition Count: 3
Partition Number: 1
Header Dump
Image Word Len: 0x0007F2E8
Data Word Len: 0x0007F2E8
Partition Word Len:0x0007F2E8
Load Addr: 0x00000000
Exec Addr: 0x00000000
Partition Start: 0x000075D0
Partition Attr: 0x00000020
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFE7AF06
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: 0x00000A30
PCAP DMA SRC ADDR 0xF8007018: 0x00100001
PCAP DMA DEST ADDR 0xF800701C: 0xFFFFFFFF
PCAP DMA SRC LEN 0xF8007020: 0x0007F2E8
PCAP DMA DEST LEN 0xF8007024: 0x0007F2E8
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: 0x00002002
Data Word Len: 0x00002002
Partition Word Len:0x00002002
Load Addr: 0x00100000
Exec Addr: 0x00100000
Partition Start: 0x000868C0
Partition Attr: 0x00000010
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFD734C8
Application
Handoff Address: 0x00100000
In FsblHookBeforeHandoff function
SUCCESSFUL_HANDOFF
FSBL Status = 0x1
Hello World
最後の「Hello World」はアプリケーションの出力であり、microSDのBOOT.binを読み込み成功しているな。
FSBLのsleep(10)が有効なのか?
関連情報
-
ZYNQのFSBLが動かない場合の対処法 @ なひたふJTAG日記
- 情報感謝です
- いつもありがとうございます
-
Boot Standalone application from SD on CORA
- microSDブートしないことについて諸説
- A. FAT32を使う
- B. Vivado v2019.1はだめでv2019.2は可能
- C. Vivado v2019.2もだめ
- D. ps7_init.cにてdelayを入れる
- microSDブートしないことについて諸説
補足情報
Block design
UARTLiteを5つ足しているが、今回は使ってない。
xdcファイル
UARTLiteを5つ足しているが、今回は使ってない。
set_property PACKAGE_PIN Y18 [get_ports rx_0]
set_property PACKAGE_PIN Y19 [get_ports tx_0]
set_property IOSTANDARD LVCMOS33 [get_ports rx_0]
set_property IOSTANDARD LVCMOS33 [get_ports tx_0]
set_property PACKAGE_PIN Y16 [get_ports rx_1]
set_property PACKAGE_PIN Y17 [get_ports tx_1]
set_property IOSTANDARD LVCMOS33 [get_ports rx_1]
set_property IOSTANDARD LVCMOS33 [get_ports tx_1]
set_property PACKAGE_PIN U18 [get_ports rx_2]
set_property PACKAGE_PIN U19 [get_ports tx_2]
set_property IOSTANDARD LVCMOS33 [get_ports rx_2]
set_property IOSTANDARD LVCMOS33 [get_ports tx_2]
set_property PACKAGE_PIN W18 [get_ports rx_3]
set_property PACKAGE_PIN W19 [get_ports tx_3]
set_property IOSTANDARD LVCMOS33 [get_ports rx_3]
set_property IOSTANDARD LVCMOS33 [get_ports tx_3]
set_property PACKAGE_PIN W14 [get_ports rx_4]
set_property PACKAGE_PIN Y14 [get_ports tx_4]
set_property IOSTANDARD LVCMOS33 [get_ports rx_4]
set_property IOSTANDARD LVCMOS33 [get_ports tx_4]
FSBLの設定
FSBLのプロジェクト設定にて、
C/C++ Build > Settings > Tool Settings > ARM v7 gcc compiler > Symbols
に
FSBL_DEBUG_INFO
を足す。
Vivado v2019.2
v2019.2を使うとmicroSDブートできるような記載があった、v2019.2ではxil_printf.h not foundになり、あきらめた。
Author And Source
この問題について(Cora Z7 > ビルトイン USBシリアルでFSBLの処理メッセージを表示したい > 10秒のdelayを追加 > microSDからアプリ起動もした), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/492c2f65b0a43cfdd2ae著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .