在Versal VCK190评估套件上使用器件固件升级(DFU)执行USB辅助启动模式测试

电子说

1.2w人已加入

描述

在本篇博文中,我们将演示如何在 Versal AI Core 系列 VCK190 评估套件上从 USB 辅助启动模式启动 Linux。

为此,我们将修改启动镜像格式 (BIF),使用 Vivado 2020.2 通过 USB 来加载第二个可编程器件镜像 (PDI)。

我们将使用 JTAG 作为第一个启动器件来加载 Platform Loader and Manager (PLM),使用 USB 作为第二个启动器件来加载其他分区(A72、u-boot 和 Linux)。

硬件设置:

使用 USB 线将 VCK190 上的 J308 连接到 PC 主机。
将 SW1 跳线设置为 JTAG 模式。

请参阅以下截屏,查找 JTAG 启动模式设置:

usb

模块框图:

usb

注释:默认情况下,在 PetaLinux BSP 中启用 USB 控制器。

修改 Bootgen 和 BIF 文件以创建启动镜像

我们将基于 Vivado/PetaLinux 生成的 BIF 文件来创建 2 个 BIF 文件。

1. 第一个 BIF 用于生成 PDI,用于从主启动器件启动 PLM。在此示例中,使用的是 JTAG。

我们将第一个 BIF 命名为 A72_primary.bif

有两点值得注意:

必须将“boot_device {usb}”添加到 BIF 中。这样 PLM 即可明确 USB 为辅助启动器件。

使用 plm.elf 代替 executable.elf。executable.elf 供 Vivado 用于生成 PDI,但它不支持使用 USB 作为辅助启动器件。因此,我们需要使用 Vitis/PetaLinux 中生成的 plm.elf。
A72_primary.bif:

usb
usb

2. 第二个 BIF 用于生成 PDI,其中包含 u-boot 并通过 USB 器件固件升级 (DFU) 来加载。

我们将第二个 BIF 命名为 A72_secondary.bif

A72_secondary.bif:

usb

A72_secondary.bif

3. 使用 Bootgen 通过以下命令生成主启动镜像和辅助启动镜像。

主启动镜像:

bootgen -arch versal -image a72_primary.bif -w -o boot_primary.bin
****** Xilinx Bootgen v2020.2
**** Build date : Nov 18 2020-09:50:31
** Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.
bootgen -arch versal -image a72_primary.bif -w -o boot_primary.bin
****** Xilinx Bootgen v2020.2
**** Build date : Nov 18 2020-09:50:31
** Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.

[WARNING]: BOOTGEN_POST_PROCESSING is enabled, CDOs will be post processed

[INFO] : Bootimage generated successfully

辅助启动镜像:
bootgen -arch versal -image a72_secondary.bif -w -o boot_secondary.bin
****** Xilinx Bootgen v2020.2
**** Build date : Nov 18 2020-09:50:31
** Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.

[WARNING]: BOOTGEN_POST_PROCESSING is enabled, CDOs will be post processed

[INFO] : Bootimage generated successfully

将镜像下载至开发板

1.在目标器件上使用 JTAG 加载 boot_primary.bin 镜像

2. 打印以下消息后,PLM 应等待辅助镜像。
[7.667278]Xilinx Versal Platform Loader and Manager
[12.376881]Release 2020.2 Aug 31 2020 - 09:50:03
[17.085931]Platform Version: v1.0 PMC: v1.0, PS: v1.0
[21.881875]STDOUT: PS UART
[24.324281]****************************************
[28.985971] 24.515056 ms for PrtnNum: 1, Size: 2432 Bytes
[34.094090]-------Loading Prtn No: 0x2
[38.309037] 0.692037 ms for PrtnNum: 2, Size: 48 Bytes
[42.467100]-------Loading Prtn No: 0x3
[96.268506] 50.276421 ms for PrtnNum: 3, Size: 56912 Bytes
[98.652475]-------Loading Prtn No: 0x4
[102.562750] 0.388331 ms for PrtnNum: 4, Size: 2512 Bytes
[107.286018]-------Loading Prtn No: 0x5
[110.907934] 0.013368 ms for PrtnNum: 5, Size: 3424 Bytes
[116.006421]-------Loading Prtn No: 0x6
[119.620971] 0.004568 ms for PrtnNum: 6, Size: 80 Bytes
[124.622246]+++++++Loading Image No: 0x2, Name: pl_cfi, Id: 0x18700000
[130.830893]-------Loading Prtn No: 0x7
[5791.450975] 5657.002021 ms for PrtnNum: 7, Size: 8407952 Bytes
[5794.366281]-------Loading Prtn No: 0x8
[6174.214668] 376.148515 ms for PrtnNum: 8, Size: 539520 Bytes
[6176.999787]+++++++Loading Image No: 0x3, Name: aie_subsys, Id: 0x0421C005
[6183.671081]-------Loading Prtn No: 0x9
[6190.315521] 2.944596 ms for PrtnNum: 9, Size: 352 Bytes
[6192.665846]+++++++Loading Image No: 0x4, Name: fpd, Id: 0x0420C003
[6198.726037]-------Loading Prtn No: 0xA
[6203.102859] 0.679168 ms for PrtnNum: 10, Size: 1136 Bytes
[6207.766790]Loading PDI from USB
[6210.762365]Monolithic/Master Device

3. 检查确认 DFU 能否检测到 USB 目标。
$ sudo dfu-util -l
USB 器件应使用 VendorId : ProductId(即 03fd:0050)进行枚举。

您应看到如下输出:
Found DFU: [03fd:0050] devnum=0, cfg=1, intf=0, alt=1, name="Xilinx DFU Downloader

注释:如果您未看到“Found DFU”消息,请验证连接,然后重试。

4. 在 PC 主机上运行以下命令以使用 dfu-util 将辅助镜像 boot_secondary.bin 下载到 VCK190。
sudo dfu-util d 03fd:0050 -D boot_secondary.bin
检查 UART 0 终端,等待至 U-Boot 加载完成。这样将显示 u-boot 控制台。

5. 出现 U-Boot 提示后,输入 Enter 以终止自动启动。在 UART1 控制台中验证应用是否已加载成功。

6. 在 U-Boot 控制台中,启动 DFU_RAM 以启用 Linux 镜像下载:
U-boot> run dfu_ram

7. 使用以下命令从“Host Machine Terminal”(主机终端)下载 Linux 镜像和 system.dtb:
$ sudo dfu-util -l
以上命令显示了 DFU RAM 的 alt 信息,如下所示:
Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=0, name="Image"
Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=1, name="system.dtb"
Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=0, name="Image"
Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=1, name="system.dtb"
1. dfu-util -d 03fd:0300 -D ./Image -a 0
2. dfu-util -d 03fd:0300 -D ./system.dtb -a 1

8. 在 U-Boot 上看到 DOWNLOAD 消息后,请在 U-Boot 控制台上使用 Ctrl+C 停止 dfu_ram。
##DOWNLOAD ... OK

按 Ctrl+C 退出。

9. 从 U-Boot 控制台运行 booti 命令以运行 Linux。
U-boot> booti 0x18000000 - 0x40000000
(请在 U-Boot 环境内检查此地址)

10. 验证在目标器件上是否已成功加载 Linux。

主机侧日志
root@machine_id:~# dfu-util -l
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Found DFU: [03fd:0050] devnum=0, cfg=1, intf=0, alt=1, name="Xilinx DFU Downloader"

root@machine_id:~# dfu-util -D boot_secondary.bin
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Opening DFU USB device... ID 03fd:0050
Run-time device DFU version 0110
Found DFU: [03fd:0050] devnum=0, cfg=1, intf=0, alt=1, name="Xilinx DFU Downloader"
Claiming USB DFU Interface...
Setting Alternate Setting #1 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
No valid DFU suffix signature
Warning: File has no DFU suffix
bytes_per_hash=19961
Copying data from PC to DFU device
Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!

root@machine_id:~# dfu-util -l
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=0, name="Image"
Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=1, name="system.dtb"
root@machine_id:~#
root@machine_id:~#
root@machine_id:~# cp -rf /proj/css/Aravind_babu/Image .
root@machine_id:~# cp -rf /proj/css/Aravind_babu/system.dtb .
root@machine_id:~#

root@machine_id:~# dfu-util -d 03fd:0300 -D Image -a 0
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Filter on vendor = 0x03fd product = 0x0300
Opening DFU USB device... ID 03fd:0300
Run-time device DFU version 0110
Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=0, name="Image"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 4096
No valid DFU suffix signature
Warning: File has no DFU suffix
bytes_per_hash=347678
Copying data from PC to DFU device
Starting download: [##################################################] finished!
state(7) = dfuMANIFEST, status(0) = No error condition is present
state(2) = dfuIDLE, status(0) = No error condition is present
Done!

root@machine_id:~# dfu-util -d 03fd:0300 -D system.dtb -a 1
dfu-util 0.5

(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY

dfu-util does currently only support DFU version 1.0

Filter on vendor = 0x03fd product = 0x0300
Opening DFU USB device... ID 03fd:0300
Run-time device DFU version 0110
Found DFU: [03fd:0300] devnum=0, cfg=1, intf=0, alt=1, name="system.dtb"
Claiming USB DFU Interface...
Setting Alternate Setting #1 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 4096
No valid DFU suffix signature
Warning: File has no DFU suffix
bytes_per_hash=832
Copying data from PC to DFU device
Starting download: [##################################################] finished!
state(7) = dfuMANIFEST, status(0) = No error condition is present
state(2) = dfuIDLE, status(0) = No error condition is present
Done!

log 日志

[7.667278]Xilinx Versal Platform Loader and Manager
[12.376881]Release 2020.2 Aug 31 2020 - 09:50:03
[17.085931]Platform Version: v1.0 PMC: v1.0, PS: v1.0
[21.881875]STDOUT: PS UART
[24.324281]****************************************
[28.985971] 24.515056 ms for PrtnNum: 1, Size: 2432 Bytes
[34.094090]-------Loading Prtn No: 0x2
[38.309037] 0.692037 ms for PrtnNum: 2, Size: 48 Bytes
[42.467100]-------Loading Prtn No: 0x3
[96.268506] 50.276421 ms for PrtnNum: 3, Size: 56912 Bytes
[98.652475]-------Loading Prtn No: 0x4
[102.562750] 0.388331 ms for PrtnNum: 4, Size: 2512 Bytes
[107.286018]-------Loading Prtn No: 0x5
[110.907934] 0.013368 ms for PrtnNum: 5, Size: 3424 Bytes
[116.006421]-------Loading Prtn No: 0x6
[119.620971] 0.004568 ms for PrtnNum: 6, Size: 80 Bytes
[124.622246]+++++++Loading Image No: 0x2, Name: pl_cfi, Id: 0x18700000
[130.830893]-------Loading Prtn No: 0x7
[5791.450975] 5657.002021 ms for PrtnNum: 7, Size: 8407952 Bytes
[5794.366281]-------Loading Prtn No: 0x8
[6174.214668] 376.148515 ms for PrtnNum: 8, Size: 539520 Bytes
[6176.999787]+++++++Loading Image No: 0x3, Name: aie_subsys, Id: 0x0421C005
[6183.671081]-------Loading Prtn No: 0x9
[6190.315521] 2.944596 ms for PrtnNum: 9, Size: 352 Bytes
[6192.665846]+++++++Loading Image No: 0x4, Name: fpd, Id: 0x0420C003
[6198.726037]-------Loading Prtn No: 0xA
[6203.102859] 0.679168 ms for PrtnNum: 10, Size: 1136 Bytes
[6207.766790]Loading PDI from USB
[6210.762365]Monolithic/Master Device
[14602.209878]8394.398825 ms: PDI initialization time
[14604.323262]+++++++Loading Image No: 0x0, Name: apu_subsyste, Id: 0x1C000000
[14611.146703]-------Loading Prtn No: 0x0
[14614.942668] 0.012150 ms for PrtnNum: 0, Size: 41632 Bytes
[14620.302859]-------Loading Prtn No: 0x1
[14624.102159] 0.015812 ms for PrtnNum: 1, Size: 59360 Bytes
[14629.458853]-------Loading Prtn No: 0x2
[14633.428109] 0.185400 ms for PrtnNum: 2, Size: 896512 Bytes
[14638.786881]***********Boot PDI Load: Done*************
[14643.873331]765870.806637 ms: ROM Time
[14647.508740]Total PLM Boot Time
NOTICE: ATF running on Xilinx Versal Silicon
WARNING: BL31: invalid exception level (3)
NOTICE: BL31: Secure code at 0x0
NOTICE: BL31: Non secure code at 0x8000000
NOTICE: BL31: v2.2(debug):rel-v2020.2_SAM_EA2-1-g3e90bb84f
NOTICE: BL31: Built : 13:22:27, Aug 28 2020
INFO: GICv3 with legacy support detected. ARM GICv3 driver initialized in EL3
INFO: BL31: Initializing runtime services
WARNING: BL31: cortex_a72: CPU workaround for 859971 was missing!
INFO: BL31: cortex_a72: CPU workaround for cve_2017_5715 was applied
INFO: BL31: cortex_a72: CPU workaround for cve_2018_3639 was applied
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x8000000
INFO: SPSR = 0x3c9

U-Boot 2020.01 (Sep 02 2020 - 08:11:32 +0000)

Model: Xilinx Versal vck190 Eval board revA (QSPI)
DRAM: 6 GiB
EL Level: EL2
MMC: sdhci@f1050000: 0
In: serial@ff000000
Out: serial@ff000000
Err: serial@ff000000
Bootmode: JTAG_MODE
Net:
ZYNQ GEM: ff0c0000, mdio bus ff0c0000, phyaddr 1, interface rgmii-id

Warning: ethernet@ff0c0000 (eth0) using random MAC address - 86:d3:1d:bd:e8:8e
eth0: ethernet@ff0c0000
ZYNQ GEM: ff0d0000, mdio bus ff0c0000, phyaddr 2, interface rgmii-id

Warning: ethernet@ff0d0000 (eth1) using random MAC address - 76:8d:63:c4:fe:17
, eth1: ethernet@ff0d0000
Hit any key to stop autoboot: 0
Versal>
Versal> run dfu_ram
#DOWNLOAD ... OK
Ctrl+C to exit ...
#DOWNLOAD ... OK
Ctrl+C to exit ...
Versal>
Versal> pri
arch=arm
baudrate=115200
board=versal
board_name=versal
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=jtag pxe dhcp jtag mmc0 mmc1 xspi0 dfu_usb pxe dhcp
bootcmd=run distro_bootcmd
bootcmd_dfu_usb=setenv dfu_alt_info boot.scr ram $scriptaddr $script_size_f; dfu 0 ram 0 && echo DFU: Trying to boot script at ${scriptaddr} && source ${scriptaddr}; echo DFU: SCRIPT FAILED: continuing...;
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_jtag=echo JTAG: Trying to boot script at ${scriptaddr} && source ${scriptaddr}; echo JTAG: SCRIPT FAILED: continuing...;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_xspi0=sf probe 0 0 0 && sf read $scriptaddr $script_offset_f $script_size_f && echo XSPI: Trying to boot script at ${scriptaddr} && source ${scriptaddr}; echo XSPI: SCRIPT FAILED: continuing...;
bootdelay=5
bootm_low=0
bootm_size=80000000
cpu=armv8
dfu_alt_info=Image ram 0x18000000 0x10000000;system.dtb ram 0x40000000 0x400000
dfu_ram=run dfu_ram_info && dfu 0 ram 0
dfu_ram_info=setenv dfu_alt_info Image ram $kernel_addr_r $kernel_size_r\;system.dtb ram $fdt_addr_r $fdt_size_r
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
fdt_addr_r=0x40000000
fdt_high=10000000
fdt_size_r=0x400000
fdtcontroladdr=7ded9b20
initrd_high=79000000
kernel_addr_r=0x18000000
kernel_size_r=0x10000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
pxefile_addr_r=0x10000000
ramdisk_addr_r=0x02100000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
script_offset_f=7f80000
script_size_f=0x80000
scriptaddr=0x20000000
soc=versal
stderr=serial@ff000000
stdin=serial@ff000000
stdout=serial@ff000000
thor_ram=run dfu_ram_info && thordown 0 ram 0
ubifs_boot=env exists bootubipart || env set bootubipart UBI; env exists bootubivol || env set bootubivol boot; if ubi part ${bootubipart} && ubifsmount ubi${devnum}:${bootubivol}; then devtype=ubi; run scan_dev_for_boot; fi
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=xilinx

Environment size: 4783/32764 bytes

Versal> booti 0x18000000 - 0x40000000
## Flattened Device Tree blob at 40000000
Booting using the fdt blob at 0x40000000
Loading Device Tree to 000000000fff2000, end 000000000ffff294 ... OK

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[ 0.000000] Linux version 5.4.0-xilinx-v2020.1 (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP Wed Sep 2 08:07:18 UTC 2020
[ 0.000000] Machine model: Xilinx Versal vck190 Eval board revA (QSPI)
[ 0.000000] earlycon: pl11 at MMIO32 0x00000000ff000000 (options '115200n8')
[ 0.000000] printk: bootconsole [pl11] enabled
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] cma: Reserved 256 MiB at 0x0000000070000000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.1
[ 0.000000] percpu: Embedded 22 pages/cpu s49880 r8192 d32040 u90112
[ 0.000000] Detected PIPT I-cache on CPU0
[ 0.000000] CPU features: detected: GIC system register CPU interface

....

root@xilinx-vck190-es1-2020_2:~#

注释:请在启动镜像和 log 日志中找到随附的 BIF 文件。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分