ultrascale学习笔记之OpenSourceLInux

1.版本说明

DataAuthorVersion Revision
2021/12/21abner1.0 初定版本

2.目标

传统嵌入式方法从源码编译移植U-BOOT,Linux,设备树.
解决PetaLinux编译缓慢,出错不容易排查的问题。
PetaLinux主要用于编译rootfs,后期根据需要可以使用PetaLinux的文件系统来开发。

3.源码

  • DeviceTree xilinx v2020.1
  • u-boot xilinx v2020.1
  • kernel xilinx v2020.1

4.输出文件

bootgen.bif (用于产生BOOT.bin的描述文件)
system.bit
system.dtb
Image (zynqmp对应内核镜像)
rootfs.cpio.gz

5.编译u-boot

export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=aarch64
make distclean
make xilinx_zynqmp_virt_defconfig
make menuconfig
make

6.编译kernel

export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
make xilinx_zynqmp_defconfig
make menuconfig
make

7.uboot DHCP

替代TFTP从服务器上下载所需要的文件,
格式:dhcp [内存地址] [TFTP服务器地址]:[文件名]
例如:

dhcp 0x00200000 192.168.2.172:Image
dhcp 0x00100000 192.168.2.172:system.dtb 
dhcp 0x04000000 192.168.2.172:rootfs.cpio.gz.u-boot 

验证:

booti 0x00200000 0x04000000 0x00100000

8.设置环境变量

setenv dhcpboot ‘dhcp 0x00200000 192.168.2.172:Image; dhcp 0x00100000 192.168.2.172:system.dtb; dhcp 0x04000000 192.168.2.172:rootfs.cpio.gz.u-boot ; booti 0x00200000 0x04000000 0x00100000;’
setenv bootcmd 'run dhcpboot ’
saveenv

9.实际应用

  • 调试阶段:BOOT.bin(SD卡) + TFTP(system.bit + system.dtb + NFS文件系统)
  • SD启动:BOOT.bin + system.bit + system.dtb + 文件系统
  • FLASH启动:BOOT.bin + system.bit + system.dtb + 文件系统
  • 安全备份模式:FLASH + SD, FLASH上电先检测SD卡是否满足启动要求,然后启动SD,否则回退到FLASH启动

10.默认boot.scr

boot.scr 有助于理解启动时,文件从SD/FLASH拷贝到内存,最终运行的流程

for boot_target in ${boot_targets};
do
    if test "${boot_target}" = "jtag" ; then
        booti 0x00200000 0x04000000 0x00100000
        exit;
    fi
    if test "${boot_target}" = "mmc0" || test "${boot_target}" = "mmc1" ; then
        if test -e ${devtype} ${devnum}:${distro_bootpart} /image.ub; then
            /* devtype = mmc devnum = 0/1 distro_bootpart = 1 */
            fatload ${devtype} ${devnum}:${distro_bootpart} 0x10000000 image.ub;
            bootm 0x10000000;
            exit;
                fi
        if test -e ${devtype} ${devnum}:${distro_bootpart} /Image; then
            /* devtype = mmc devnum = 0/1 distro_bootpart = 1 */
            /* 如果没有找到 image.ub 就找 Image */
            fatload ${devtype} ${devnum}:${distro_bootpart} 0x00200000 Image;;
        fi
        if test -e ${devtype} ${devnum}:${distro_bootpart} /system.dtb; then
            /* devtype = mmc devnum = 0/1 distro_bootpart = 1 */
            /* 找 system.dtb */
            fatload ${devtype} ${devnum}:${distro_bootpart} 0x00100000 system.dtb;
        fi
        if test -e ${devtype} ${devnum}:${distro_bootpart} /rootfs.cpio.gz.u-boot; then
            /* devtype = mmc devnum = 0/1 distro_bootpart = 1 */
            /* 找 rootfs.cpio.gz.u-boot */
            /* 如果找到就指定地址启动 */
            /* 启动 并 退出 */
            fatload ${devtype} ${devnum}:${distro_bootpart} 0x04000000 rootfs.cpio.gz.u-boot;
            booti 0x00200000 0x04000000 0x00100000
            exit;
        fi
        /* 如果没有找到 rootfs.cpio.gz.u-boot  启动 并 退出  该模式用于 nfs文件系统,或者SD卡分区作为文件系统 */
        booti 0x00200000 - 0x00100000
        exit;
    fi
    /* 和 SD卡操作相同 */
    if test "${boot_target}" = "xspi0" || test "${boot_target}" = "qspi" || test "${boot_target}" = "qspi0"; then
        sf probe 0 0 0;
        if test "image.ub" = "image.ub"; then
            sf read 0x10000000 0xA10000 0x1500000;
            bootm 0x10000000;
            exit;
        fi
        if test "image.ub" = "Image"; then
            sf read 0x00200000 0xA10000 0x1D00000;
            sf read 0x04000000 0x4000000 0x4000000
            booti 0x00200000 0x04000000 0x00100000
            exit;
        fi
        exit;
    fi
    if test "${boot_target}" = "nand" || test "${boot_target}" = "nand0"; then
        nand info
        if test "image.ub" = "image.ub"; then
            nand read 0x10000000 0x4100000 0x6400000;
            bootm 0x10000000;
            exit;
        fi
        if test "image.ub" = "Image"; then
            nand read 0x00200000 0x4100000 0x3200000;
            nand read 0x04000000 0x7800000  0x3200000;
            booti 0x00200000 0x04000000 0x00100000
            exit;
        fi
    fi
done

   nand read 0x04000000 0x7800000  0x3200000;
            booti 0x00200000 0x04000000 0x00100000
            exit;
        fi
    fi
done

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ultrascale文档是指Xilinx公司生产的FPGA(现场可编程门阵列)产品系列的技术文档。Ultrascale系列是Xilinx最新一代的FPGA产品,具有先进的可编程逻辑资源、高速串行收发器和处理器系统等功能。 Ultrascale文档提供了全面、详细的技术信息,帮助用户了解和使用Ultrascale系列产品。它包含了各种文档类型,如技术手册、应用笔记、参考设计、用户指南等。 技术手册是Ultrascale文档中最重要的一部分,涵盖了各个方面的技术细节。它们提供了FPGA架构、逻辑资源分布、时钟分配、存储资源以及高速串行接口等方面的详细说明。技术手册还解释了各种功能块的工作原理和使用方法,包括逻辑片、DSP块、存储块、时钟管理等。 应用笔记是基于实际应用场景的技术说明,提供了针对特定问题或需求的解决方案。它们包含了实践经验、设计技巧和最佳实践等内容,帮助用户更好地应用Ultrascale系列产品。 参考设计是一些为特定应用场景开发的示例项目,可以帮助用户更快地开始和定制自己的设计。它们提供了详细的硬件设计和软件代码,包括时序约束、IP核集成和逻辑实现等方面。 用户指南是面向用户的详细说明,介绍Ultrascale系列产品的使用流程和操作方法。它们提供了软件开发工具的安装和配置、项目创建和管理、仿真和调试等方面的指导。 总之,Ultrascale文档是FPGA设计师和工程师理解和使用Ultrascale系列产品的重要资源,对于设计和开发高性能、低功耗的应用具有重要的指导作用。 ### 回答2: Ultrascale文档是指用于Xilinx最新一代FPGA系列产品的技术文档。Ultrascale系列是Xilinx公司推出的一款高性能、高可靠性的可编程逻辑器件,用于实现各种复杂的硬件设计。该系列的FPGA具有更高的逻辑密度、更多的DSP和片上存储资源,以及更高的时钟频率。 Ultrascale文档提供了关于该系列FPGA的详细技术规格和功能介绍,帮助用户了解器件的性能特点和使用限制。文档中包含了器件的物理架构、逻辑单元的功能和配置方式,以及外设接口的说明和时序要求等详细内容。 此外,Ultrascale文档还介绍了器件的开发工具和设计流程,帮助用户快速上手并进行设计。文档中提供了详细的开发环境配置和操作指南,以及丰富的示例代码和设计实例,方便用户进行二次开发和定制化设计。 Ultrascale文档还包括了芯片级别的验证和测试方法,帮助用户进行芯片级别的质量控制和可靠性评估。文档中详细介绍了测试工具和方法,以及如何利用这些工具进行芯片级别的功能验证和性能评估。 总之,Ultrascale文档是Xilinx公司提供的一份详尽的技术文档,帮助用户全面了解和使用该系列FPGA产品。通过阅读文档,用户能够掌握该系列FPGA的架构和性能特点,以及相应的开发工具和测试方法,从而更好地进行硬件设计和开发工作。 ### 回答3: Ultrascale是赛灵思(Xilinx)公司推出的一系列FPGA(现场可编程门阵列)产品家族。这个家族包括了多个型号的FPGA芯片,支持不同规模和功能需求的应用。 ultrascale文档是指为了协助开发人员理解和使用ultrascale系列产品而提供的技术文档和指南。这些文档覆盖了ultrascale产品的各个方面,包括架构、功能特性、设计方法、工具使用和编程模型等。通过阅读和理解这些文档,开发人员可以更好地利用ultrascale系列产品进行FPGA开发。 ultrascale文档的内容丰富多样,包括以下几个方面: 1. 架构和特性说明:这些文档介绍了ultrascale系列产品的整体架构和各个模块的功能特性。开发人员可以通过阅读这些文档了解每个模块的工作原理和性能指标,从而在设计过程中进行合理的模块选择和配置。 2. 设计方法和指南:这些文档提供了ultrascale系列产品的设计方法和指南。它们涵盖了从设计流程、电路原理图设计、时序约束、系统调试等各个方面的实用技巧和最佳实践。通过采用这些建议,开发人员可以更高效地完成FPGA设计并解决可能遇到的问题。 3. 工具使用说明:ultrascale文档还提供了关于赛灵思公司提供的设计工具的详细介绍和使用指南。这些工具包括Vivado设计套件、SDK软件开发工具和IP积木等。文档中会详细介绍这些工具的功能、使用方法和设计流程,以帮助开发人员充分利用这些工具进行FPGA设计和开发。 总之,ultrascale文档为开发人员提供了宝贵的参考和指导,使他们能够更好地理解和应用ultrascale系列产品。通过充分利用这些文档,开发人员可以提高其FPGA设计的质量和效率,从而更好地满足不同应用领域的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值