0

I have successfully updated the xapp1078 to Vivado 2018.2 and created a PetaLinux configuration based on XAPP1078 Latest Information.

I used the design files from here. Inside the zip-folder there is a detailed step by step documentation included, which says something about extending the device tree.

You can read the document here.

In the petalinux-create section of the document there is the following instruction how to extend the device tree.

Add one of the following sections to the end of subsystems/linux/configs/device-tree/system-top.dts This action will add peripherals that are external to the FPGA and it will disable the driver for the PL330 dma controller. Currently, there is a problem in the PL330 driver that causes cpu1 to randomly run code when maxcpu=1.

I’m using a zc702 Board and when I read the device tree extension for this board, I can find four sections for dma, i2c, qspi and phy

    /* *********************************
     * zc702 Board peripherals
     * *********************************
     */
    &dmac_s {
        status = "disabled";
    };
     
    &i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;
        i2cswitch@74 {
            compatible = "nxp,pca9548";
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0x74>;
            i2c@0 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>;
                si570: clock-generator@5d {
                    #clock-cells = <0>;
                    compatible = "silabs,si570";
                    temperature-stability = <50>;
                    reg = <0x5d>;
                    factory-fout = <156250000>;
                    clock-frequency = <148500000>;
                };
            };
     
            i2c@2 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <2>;
                eeprom@54 {
                    compatible = "at,24c08";
                    reg = <0x54>;
                };
            };
     
            i2c@3 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <3>;
                gpio@21 {
                    compatible = "ti,tca6416";
                    reg = <0x21>;
                    gpio-controller;
                    #gpio-cells = <2>;
                };
            };
     
            i2c@4 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <4>;
                rtc@54 {
                    compatible = "nxp,pcf8563";
                    reg = <0x51>;
                };
            };
     
            i2c@7 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <7>;
                hwmon@52 {
                    compatible = "ti,ucd9248";
                    reg = <52>;
                };
                hwmon@53 {
                    compatible = "ti,ucd9248";
                    reg = <53>;
                };
                hwmon@54 {
                    compatible = "ti,ucd9248";
                    reg = <54>;
                };
            };
        };
    };
     
    &qspi {
        flash0: flash@0 {
            compatible = "micron,n25q128a13";
        };
    };
     
    &gem0 {
        phy-handle = <&phy0>;
        ps7_ethernet_0_mdio: mdio {
            phy0: phy@7 {
                compatible = "marvell,88e1116r";
                device_type = "ethernet-phy";
                reg = <7>;
            };
        };
    };

My questions about this topics are:

Is it still recommended to disabling the driver for the PL330 dma, or is the dma problem fixed in petalinux 2018.2 ?

Why do I have to add information for I2C, QSPI and the PHY? I would expect the Vivado Hardware export (hdf) files has all necessary information or if not I can add device drivers in the petalinux-config menu.

In other words, do I have to make the device tree extensions for every Vivado project which uses petalinux, or is this a special extension only for xapp1078 and what is the the reasion?

Even my application works as expected without the device tree extension so far. I would like to understand the extensions.

jokn
  • 44
  • 7

0 Answers0