zoukankan      html  css  js  c++  java
  • 如何用SDK生成device tree

    目的:帮助初次使用Zynq & MPSoC的朋友,在PL添加IP(比如AXI-CAN),应如何生成对应的devic tree

    Step1: 下载device-tree-xlnx自动生成工具集

    参考http://www.wiki.xilinx.com/Fetch+Sources,下载device-tree-xlnx

    The following table gives an overview of the relevant repositories:

    Repository Name

    Content

    https://github.com/Xilinx/linux-xlnx.git

    The Linux kernel with Xilinx patches and drivers

    https://github.com/Xilinx/u-boot-xlnx.git

    The u-boot bootloader with Xilinx patches and drivers

    https://github.com/Xilinx/device-tree-xlnx.git

    Device Tree generator plugin for xsdk

    https://git.kernel.org/pub/scm/utils/dtc/dtc.git

    Device Tree compiler (required to build U-Boot)

    https://github.com/Xilinx/arm-trusted-firmware.git

    ARM Trusted Firmware (required for Zynq UltraScale+ MPSoC

    The sources of either project can be obtained through git by executing:

    Step2:SDK中添加device-tree-xlnx

    SDK --> Xilinx tools --> Repositories --> 添加device-tree-xlnx

     

    Step3: 生成device-tree

    SDK --> File --> New --> Board support package

     

    根据实际情况填写bootargs,也可以稍后自己手动加入,你可以看到axi-can已经在里面了

      

    生成的device tree,会包含pl.dtsi就是在pl侧添加的ip生产的对应的node和参数

     

     Pl.dtsi文件如下:

    /*
     * CAUTION: This file is automatically generated by Xilinx.
     * Version:  
     * Today is: Thu Oct 19 13:15:57 2017
    */
    
    
    / {
        amba_pl: amba_pl@0 {
            #address-cells = <2>;
            #size-cells = <2>;
            compatible = "simple-bus";
            ranges ;
            can_0: can@a0000000 {
                clock-names = "can_clk s_axi_aclk";
                clocks = <&misc_clk_0>, <&misc_clk_1>;
                compatible = "xlnx,axi-can-1.00.a";
                reg = <0x0 0xa0000000 0x0 0x10000>;
                rx-fifo-depth = <0x2>;
                tx-fifo-depth = <0x2>;
            };
            psu_ctrl_ipi: PERIPHERAL@ff380000 {
                compatible = "xlnx,PERIPHERAL-1.0";
                reg = <0x0 0xff380000 0x0 0x80000>;
            };
            psu_message_buffers: PERIPHERAL@ff990000 {
                compatible = "xlnx,PERIPHERAL-1.0";
                reg = <0x0 0xff990000 0x0 0x10000>;
            };
            misc_clk_0: misc_clk_0 {
                #clock-cells = <0>;
                clock-frequency = <15686000>;
                compatible = "fixed-clock";
            };
            misc_clk_1: misc_clk_1 {
                #clock-cells = <0>;
                clock-frequency = <99999000>;
                compatible = "fixed-clock";
            };
        };
    };

    Step4:下载DTC,或者利用linux 包中以及集成的工具编译device-tree, 命令参考wiki链接:

    http://www.wiki.xilinx.com/Build+Device+Tree+Blob

    Compiling a Device Tree Blob (.dtb) file from the DTS

    A utility called device tree compiler (DTC) is used to compile the DTS file into a DTB file. DTC is part of the Linux source directory. linux-xlnx/scripts/dtc/ contains the source code for DTC and needs to be compiled in order to be used. One way to compile the DTC is to build the Linux tree. The DTC might also be available through your OS's package manager.

    Once the DTC is available, the tool may be invoked to generate the DTB:

    ./scripts/dtc/dtc -I dts -O dtb -o <devicetree name>.dtb <devicetree name>.dts

    DTC may also be used to convert a DTB back into a DTS:

    ./scripts/dtc/dtc -I dtb -O dts -o <devicetree name>.dts <devicetree name>.dtb

    -end

  • 相关阅读:
    通过PowerShell发送TCP请求
    移动端h5全屏body背景图底部未到底bug
    前端开发工具——utils
    微信公众号网页开发——授权登录,js安全域名,jssdk使用
    移动端开发——移动端遮罩层滚动防穿透body解决方案
    js实现cookie有效期至当次日凌晨
    js获取数组中任意一项
    mysql连接错误,error1251解决方式
    Vue packages version mismatch
    js实现拖动效果
  • 原文地址:https://www.cnblogs.com/kevin-heyongyuan/p/7692329.html
Copyright © 2011-2022 走看看