作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

ZYNQ平台在SDK下引导启动UBOOT
Executing application from u-boot on ZCU102
【分享】U-Boot中使用UBIFS文件系统的测试命令示例

Jtag引导u-boot

connect arm hw
cd D:/project_1/project_1.sdk/hw_platform_0
fpga -f fpga.bit #使用PL部分
source ps7_init.tcl
ps7_init
dow u-boot.elf
con

Xilinx petalinux menuconfig配置

  • local version:1.0.0
  • env in flash:spi nor flash
  • debug uart:uart0 uart1
    在这里插入图片描述
    在这里插入图片描述

uboot单独编译

uboot menuconfig,声称自己的自定义config。
这里写图片描述
新建并,修改自己的头文件,
这里写图片描述
看下petalinux的meta-generated,

FILESEXTRAPATHS_prepend := "${THISDIR}/configs:"
SRC_URI += "file://config.cfg file://platform-auto.h"
UBOOT_MAKE_TARGET_append = " EXT_DTB=${DEPLOY_DIR_IMAGE}/${MACHINE}-system.dtb"

do_configure_append () {
	install ${WORKDIR}/platform-auto.h ${S}/include/configs/
	install ${WORKDIR}/platform-top.h ${S}/include/configs/
}

uboot也使用设备树了,比如串口,比如zynqMP的串口用的是0还是1,现在由设备树决定了,配置宏不起作用的,

static const struct dm_serial_ops zynq_serial_ops = {
	.putc = zynq_serial_putc,
	.pending = zynq_serial_pending,
	.getc = zynq_serial_getc,
	.setbrg = zynq_serial_setbrg,
};

static const struct udevice_id zynq_serial_ids[] = {
	{ .compatible = "xlnx,xuartps" },
	{ .compatible = "cdns,uart-r1p8" },
	{ .compatible = "cdns,uart-r1p12" },
	{ }
};

U_BOOT_DRIVER(serial_zynq) = {
	.name	= "serial_zynq",
	.id	= UCLASS_SERIAL,
	.of_match = zynq_serial_ids,
	.ofdata_to_platdata = zynq_serial_ofdata_to_platdata,
	.priv_auto_alloc_size = sizeof(struct zynq_uart_priv),
	.probe = zynq_serial_probe,
	.ops	= &zynq_serial_ops,
	.flags = DM_FLAG_PRE_RELOC,
};

menuconfig与设备树相关的,
这里写图片描述
参考博客ZYNQ之uboot,kernel,设备树,文件系统生成。uboot中的设备树影响到了linux内核。uboot源码中主要是宏CONFIG_OF_CONTROL在起作用,使其不受config或头文件中的宏影响。。。
zcu102-revB设备树在arch文件夹,
这里写图片描述
从dts的makefile看出了一些门道,petalinux的yocto的使用了EXT_DTB来重定位了设备树。
这里写图片描述

asm/arch/clk.h: no such file or directory

重新menuconfig,然后save

uboot配置要点

  1. 配置phy
  2. 配置autoboot,重试时间,stop字符串等
  3. 配置常用命令mii,ext4等
  4. 配置备份环境变量分区
  5. 配置默认环境变量

增加ramdisk

petalinux上说增加CONFIG_SYS_BOOTM_LEN,注释掉CONFIG_SYS_BOOTMAPSZ,我没有测试。

#define CONFIG_SYS_BOOTMAPSZ 0x10000000
#ifdef CONFIG_SYS_BOOTM_LEN
#undef CONFIG_SYS_BOOTM_LEN
#endif
#define CONFIG_SYS_BOOTM_LEN 0x10000000
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐