Adding Bertrand, Oleksandr, Julien, and others -- they have a more
recent experience with GICv3 ITS than me and might be able to help.
I am attaching the device tree Leo sent a few days ago for reference.


Typically when you can set the ethernet link up and no packets are
exchanged it is because of a missing interrupt. In this case a missing
MSI.

Bertrand, I believe you tried the GIC ITS driver with PCI devices
recently. It is expected to work correctly with MSIs in Dom0, right?



On Tue, 17 Nov 2020, Leo Krueger wrote:
> Hi,
> 
> I enabled CONFIG_HAS_ITS (what a stupid mistake by me to not set it 
> before...) but then had to add the following node to my device tree
> 
>       gic_lpi_base: syscon@0x80000000 {
>               compatible = "gic-lpi-base";
>               reg = <0x0 0x80000000 0x0 0x100000>;
>               max-gic-redistributors = <2>;
>       };
> 
> to somehow change something in regard to the ITS and MSI/MSI-X
> 
> (XEN) GICv3 initialization:
> (XEN)       gic_dist_addr=0x00000006000000
> (XEN)       gic_maintenance_irq=25
> (XEN)       gic_rdist_stride=0
> (XEN)       gic_rdist_regions=1
> (XEN)       redistributor regions:
> (XEN)         - region 0: 0x00000006040000 - 0x00000006080000
> (XEN) GICv3: using at most 57344 LPIs on the host.
> (XEN) GICv3: 288 lines, (IID 0001143b).
> (XEN) GICv3: Found ITS @0x6020000
> (XEN) using non-cacheable ITS command queue
> (XEN) GICv3: CPU0: Found redistributor in region 0 @000000004001c000
> 
> [    0.000000] GICv3: Distributor has no Range Selector support
> [    0.000000] GICv3: no VLPI support, no direct LPI support
> [    0.000000] ITS [mem 0x06020000-0x0603ffff]
> [    0.000000] ITS@0x0000000006020000: allocated 65536 Devices @dc880000 
> (flat, esz 8, psz 64K, shr 1)
> [    0.000000] ITS@0x0000000006020000: allocated 32768 Interrupt Collections 
> @dc820000 (flat, esz 2, psz 64K, shr 1)
> [    0.000000] GIC: using LPI property table @0x00000000dc830000
> [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000006040000
> [    0.000000] CPU0: using LPI pending table @0x00000000dc840000
> ...
> [    0.040080] Platform MSI: gic-its domain created
> [    0.040136] PCI/MSI: /interrupt-controller/gic-its domain created
> [    0.040181] fsl-mc MSI: /interrupt-controller/gic-its domain created
> 
> 
> Still I am ending up with the " Failed to add - passthrough or MSI/MSI-X 
> might fail!" log messages for some PCI devices, but at least the on-board 
> ethernet ports (fsl_enetc ) are initialized.
> I can set the link up and a link is successfully established.
> 
> But (!) I cannot receive or transmit anything (no error message...) and there 
> seem to be no interrupts:
> 
> 29:          0   ITS-MSI   1 Edge      gbe0-rxtx0
>  32:          0   ITS-MSI 8192 Edge      ptp_qoriq
> 
> (from /proc/interrupts).
> 
> Any idea on this one? I keep digging and checking whether my device tree 
> needs some additional fixes.
> 
> Kind regards,
> Leo
> 
> --
> Leo Krüger, M.Sc.
> Senior Systems Engineer Distributed Systems
> Intelligent Digital Cabin
> 
> ZAL Zentrum für Angewandte Luftfahrtforschung GmbH
> Hein-Saß-Weg 22
> 21129 Hamburg
>  
> +49 (0) 40 248 595-154
> 
> zal.aero | twitter.com/ZALTechCenter | facebook.com/ZALTechCenter 
> 
> ZAL Zentrum für Angewandte Luftfahrtforschung GmbH 
> Sitz der Gesellschaft / Legal Domicile: Hamburg 
> Registergericht / Registration Court: Amtsgericht Hamburg HRB 110232
> Vorsitzender des Aufsichtsrates / Chairman of the Supervisory Board: StR 
> Andreas Rieckhof
> Geschäftsführung / Board of Management: Roland Gerhards
> 
> Disclaimer:
> This e-mail may contain confidential and/or privileged information. If you 
> are not the intended recipient (or have
> received this mail in error), please notify the sender immediately and 
> destroy this e-mail. Any unauthorised copying, 
> disclosure or distribution of the material in this e-mail is strictly 
> forbidden.
> 
> > -----Ursprüngliche Nachricht-----
> > Von: Stefano Stabellini <stefano.stabell...@xilinx.com>
> > Gesendet: Dienstag, 17. November 2020 01:59
> > An: Leo Krueger <leo.krue...@zal.aero>
> > Cc: Peng Fan <peng....@nxp.com>; Stefano Stabellini
> > <stefano.stabell...@xilinx.com>; bru...@xilinx.com; Cornelia Bruelhart
> > <cornelia.bruelh...@zal.aero>
> > Betreff: Re: AW: AW: AW: Xen data from meta-virtualization layer
> > 
> > Replies inline below
> > 
> > 
> > On Sun, 15 Nov 2020, Leo Krueger wrote:
> > > Hi Peng, hi Stefano,
> > >
> > >
> > >
> > > sorry for the long silence…
> > >
> > >
> > >
> > > I tried the change suggested (and hope I didn’t do anything wrong
> > > while doing so…) on top of XEN 4.13.2 (before, I always tried with
> > > 4.12 but wanted to give 4.13.2 a try as well) but I do not see any 
> > > difference,
> > still the same “unhandled context fault” log entries pop up and I cannot
> > access my sdcard.
> > >
> > >
> > >
> > > As it seems to work without respectively disabled iommu, that would be
> > > fine for me for now. What I am worried about a bit more is PCIe or
> > MSI/MSIX to be exact.
> > >
> > >
> > >
> > > Here is the gic-v3 and its node from my device tree:
> > >
> > >
> > >
> > > interrupt-controller@6000000 {
> > >
> > >         compatible = "arm,gic-v3";
> > >
> > >         #address-cells = <0x2>;
> > >
> > >         #size-cells = <0x2>;
> > >
> > >         ranges;
> > >
> > >         reg = <0x0 0x6000000 0x0 0x10000 0x0 0x6040000 0x0 0x40000>;
> > >
> > >         #interrupt-cells = <0x3>;
> > >
> > >         interrupt-controller;
> > >
> > >         interrupts = <0x1 0x9 0xf08>;
> > >
> > >         phandle = <0x1>;
> > >
> > >
> > >
> > >         gic-its@6020000 {
> > >
> > >                 compatible = "arm,gic-v3-its";
> > >
> > >                 msi-controller;
> > >
> > >                 reg = <0x0 0x6020000 0x0 0x20000>;
> > >
> > >                 phandle = <0xd>;
> > >
> > >         };
> > >
> > > };
> > >
> > >
> > >
> > > And here are some kernel log excerpts related to GIC when booting
> > without (!) XEN:
> > >
> > >
> > >
> > > [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
> > >
> > > [    0.000000] GICv3: Distributor has no Range Selector support
> > >
> > > [    0.000000] GICv3: no VLPI support, no direct LPI support
> > >
> > > [    0.000000] ITS [mem 0x06020000-0x0603ffff]
> > >
> > > [    0.000000] ITS@0x0000000006020000: allocated 65536 Devices
> > > @20fb880000 (flat, esz 8, psz 64K, shr 0)
> > >
> > > [    0.000000] ITS: using cache flushing for cmd queue
> > >
> > > [    0.000000] GIC: using LPI property table @0x00000020fb830000
> > >
> > > [    0.000000] GICv3: CPU0: found redistributor 0 region
> > > 0:0x0000000006040000
> > >
> > > [    0.000000] CPU0: using LPI pending table @0x00000020fb840000
> > >
> > > [    0.000000] GIC: using cache flushing for LPI property table
> > >
> > >
> > >
> > > However, when booting with XEN, only the following three lines are
> > contained in the kernel log:
> > >
> > >
> > >
> > > [    0.000000] GICv3: Distributor has no Range Selector support
> > >
> > > [    0.000000] GICv3: no VLPI support, no direct LPI support
> > >
> > > [    0.000000] GICv3: CPU0: found redistributor 0 region
> > > 0:0x0000000006040000
> > 
> > "no VLPI support" is very suspicious, it looks like Dom0 doesn't find any 
> > ITS
> > support.
> > 
> > Can you double check that you have the ITS driver in Xen built-in? That 
> > would
> > be CONFIG_HAS_ITS. If you do "make menuconfig" and enable "Configure
> > standard Xen features (expert users)" you should get a new option "GICv3
> > ITS MSI controller support" under "Architecture Features".
> > Make sure to enable it.
> > 
> > Let me know if that works!
> 
/ {
        compatible = "kontron,sl28", "fsl,ls1028a";
        interrupt-parent = <0x00000001>;
        #address-cells = <0x00000002>;
        #size-cells = <0x00000002>;
        model = "Kontron SMARC-sAL28";
        chosen {
                xen,dom0-bootargs = "root=/dev/mmcblk1p2 console=hvc0 
earlycon=xen earlyprintk=xen clk_ignore_unused rootwait ";
                xen,xen-bootargs = "console=dtuart dtuart=serial0 dom0_mem=512M 
dom0_max_vcpus=1 bootscrub=0 vwfi=native sched=null ";
                #size-cells = <0x00000002>;
                #address-cells = <0x00000002>;
                dom0 {
                        reg = <0x00000000 0x81200000 0x00000000 0x01517008>;
                        compatible = "xen,linux-zimage", "xen,multiboot-module";
                };
        };
        aliases {
                rtc1 = "/soc/timer@2800000";
                crypto = "/soc/crypto@8000000";
                serial0 = "/soc/serial@21c0500";
                serial1 = "/soc/serial@21c0600";
        };
        cpus {
                #address-cells = <0x00000001>;
                #size-cells = <0x00000000>;
                cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a72";
                        reg = <0x00000000>;
                        enable-method = "psci";
                        clocks = <0x00000002 0x00000001 0x00000000>;
                        next-level-cache = <0x00000003>;
                        cpu-idle-states = <0x00000004>;
                        #cooling-cells = <0x00000002>;
                        phandle = <0x00000013>;
                };
                cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a72";
                        reg = <0x00000001>;
                        enable-method = "psci";
                        clocks = <0x00000002 0x00000001 0x00000000>;
                        next-level-cache = <0x00000003>;
                        cpu-idle-states = <0x00000004>;
                        #cooling-cells = <0x00000002>;
                        phandle = <0x00000014>;
                };
                l2-cache {
                        compatible = "cache";
                        phandle = <0x00000003>;
                };
        };
        idle-states {
                entry-method = "arm,psci";
                cpu-pw20 {
                        compatible = "arm,idle-state";
                        idle-state-name = "PW20";
                        arm,psci-suspend-param = <0x00000000>;
                        entry-latency-us = <0x000007d0>;
                        exit-latency-us = <0x000007d0>;
                        min-residency-us = <0x00001770>;
                        phandle = <0x00000004>;
                };
        };
        clock-sysclk {
                compatible = "fixed-clock";
                #clock-cells = <0x00000000>;
                clock-frequency = <0x05f5e100>;
                clock-output-names = "sysclk";
                phandle = <0x00000007>;
        };
        clock-osc-27m {
                compatible = "fixed-clock";
                #clock-cells = <0x00000000>;
                clock-frequency = <0x019bfcc0>;
                clock-output-names = "phy_27m";
                phandle = <0x00000005>;
        };
        clock-display@f1f0000 {
                compatible = "fsl,ls1028a-plldig";
                reg = <0x00000000 0x0f1f0000 0x00000000 0x0000ffff>;
                #clock-cells = <0x00000000>;
                clocks = <0x00000005>;
                phandle = <0x00000017>;
        };
        clock-axi {
                compatible = "fixed-clock";
                #clock-cells = <0x00000000>;
                clock-frequency = <0x26be3680>;
                clock-output-names = "aclk";
                phandle = <0x00000018>;
        };
        clock-apb {
                compatible = "fixed-clock";
                #clock-cells = <0x00000000>;
                clock-frequency = <0x26be3680>;
                clock-output-names = "pclk";
                phandle = <0x00000019>;
        };
        clock-hdpcore {
                compatible = "fixed-clock";
                #clock-cells = <0x00000000>;
                clock-frequency = <0x09af8da0>;
                clock-output-names = "hdpclk";
                phandle = <0x0000001b>;
        };
        reboot {
                compatible = "syscon-reboot";
                regmap = <0x00000006>;
                offset = <0x00000000>;
                mask = <0x00000002>;
        };
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <0x00000001 0x0000000d 0x00000308 0x00000001 
0x0000000e 0x00000308 0x00000001 0x0000000b 0x00000308 0x00000001 0x0000000a 
0x00000308>;
        };
        interrupt-controller@6000000 {
                compatible = "arm,gic-v3";
                #address-cells = <0x00000002>;
                #size-cells = <0x00000002>;
                ranges;
                reg = <0x00000000 0x06000000 0x00000000 0x00010000 0x00000000 
0x06040000 0x00000000 0x00040000>;
                #interrupt-cells = <0x00000003>;
                interrupt-controller;
                interrupts = <0x00000001 0x00000009 0x00000f08>;
                phandle = <0x00000001>;
                gic-its@6020000 {
                        compatible = "arm,gic-v3-its";
                        msi-controller;
                        reg = <0x00000000 0x06020000 0x00000000 0x00020000>;
                        phandle = <0x0000000d>;
                };
        };
        soc {
                compatible = "simple-bus";
                #address-cells = <0x00000002>;
                #size-cells = <0x00000002>;
                ranges;
                phandle = <0x0000001f>;
                memory-controller@1080000 {
                        compatible = "fsl,qoriq-memory-controller";
                        reg = <0x00000000 0x01080000 0x00000000 0x00001000>;
                        interrupts = <0x00000000 0x00000090 0x00000004>;
                        big-endian;
                        phandle = <0x00000020>;
                };
                syscon@1e00000 {
                        compatible = "fsl,ls1028a-dcfg", "syscon";
                        reg = <0x00000000 0x01e00000 0x00000000 0x00010000>;
                        big-endian;
                        phandle = <0x00000021>;
                };
                syscon@1e60000 {
                        compatible = "fsl,ls1028a-rst", "syscon";
                        reg = <0x00000000 0x01e60000 0x00000000 0x00010000>;
                        little-endian;
                        phandle = <0x00000006>;
                };
                syscon@1fc0000 {
                        compatible = "fsl,ls1028a-scfg", "syscon";
                        reg = <0x00000000 0x01fc0000 0x00000000 0x00010000>;
                        big-endian;
                        phandle = <0x00000022>;
                };
                clock-controller@1300000 {
                        compatible = "fsl,ls1028a-clockgen";
                        reg = <0x00000000 0x01300000 0x00000000 0x000a0000>;
                        #clock-cells = <0x00000002>;
                        clocks = <0x00000007>;
                        phandle = <0x00000002>;
                };
                usb@3100000 {
                        xen,passthrough;
                        compatible = "snps,dwc3";
                        reg = <0x00000000 0x03100000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000050 0x00000004>;
                        dr_mode = "host";
                        snps,dis_rxdet_inp3_quirk;
                        snps,quirk-frame-length-adjustment = <0x00000020>;
                        snps,incr-burst-type-adjustment = <0x00000001 
0x00000004 0x00000008 0x00000010>;
                        phandle = <0x00000023>;
                };
                usb@3110000 {
                        xen,passthrough;
                        compatible = "snps,dwc3";
                        reg = <0x00000000 0x03110000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000051 0x00000004>;
                        dr_mode = "host";
                        snps,dis_rxdet_inp3_quirk;
                        snps,quirk-frame-length-adjustment = <0x00000020>;
                        snps,incr-burst-type-adjustment = <0x00000001 
0x00000004 0x00000008 0x00000010>;
                        phandle = <0x00000024>;
                };
                spi@20c0000 {
                        compatible = "nxp,lx2160a-fspi";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x020c0000 0x00000000 0x00010000 
0x00000000 0x20000000 0x00000000 0x10000000>;
                        reg-names = "fspi_base", "fspi_mmap";
                        interrupts = <0x00000000 0x00000019 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000003 0x00000002 
0x00000004 0x00000003>;
                        clock-names = "fspi_en", "fspi";
                        status = "okay";
                        nxp,fspi-has-second-chip;
                        phandle = <0x00000025>;
                        w25q32jw@0 {
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000001>;
                                compatible = "w25q32jw", "jedec,spi-nor";
                                m25p,fast-read;
                                spi-max-frequency = <0x07ed6b40>;
                                reg = <0x00000000>;
                                spi-rx-bus-width = <0x00000002>;
                                spi-tx-bus-width = <0x00000001>;
                                partition@0 {
                                        reg = <0x00000000 0x00010000>;
                                        label = "rcw";
                                        read-only;
                                };
                                partition@10000 {
                                        reg = <0x00010000 0x000f0000>;
                                        label = "failsafe bootloader";
                                        read-only;
                                };
                                partition@100000 {
                                        reg = <0x00100000 0x00040000>;
                                        label = "failsafe DP firmware";
                                        read-only;
                                };
                                partition@140000 {
                                        reg = <0x00140000 0x000a0000>;
                                        label = "failsafe trusted firmware";
                                        read-only;
                                };
                                partition@1e0000 {
                                        reg = <0x001e0000 0x00020000>;
                                        label = "reserved";
                                        read-only;
                                };
                                partition@200000 {
                                        reg = <0x00200000 0x00010000>;
                                        label = "configuration store";
                                };
                                partition@210000 {
                                        reg = <0x00210000 0x000f0000>;
                                        label = "bootloader";
                                };
                                partition@300000 {
                                        reg = <0x00300000 0x00040000>;
                                        label = "DP firmware";
                                };
                                partition@340000 {
                                        reg = <0x00340000 0x000a0000>;
                                        label = "trusted firmware";
                                };
                                partition@3e0000 {
                                        reg = <0x003e0000 0x00020000>;
                                        label = "bootloader environment";
                                };
                        };
                };
                i2c@2000000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02000000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000022 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names;
                        dmas = <0x00000008 0x00000001 0x00000027 0x00000008 
0x00000001 0x00000026>;
                        status = "okay";
                        phandle = <0x00000026>;
                        rtc@32 {
                                compatible = "microcrystal,rv8803";
                                reg = <0x00000032>;
                                interrupt-parent = <0x00000009>;
                                interrupts = <0x00000000 0x00000000>;
                                wakeup-source;
                        };
                        sl28cpld@4a {
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000000>;
                                compatible = "kontron,sl28cpld";
                                reg = <0x0000004a>;
                                interrupt-parent = <0x0000000a>;
                                interrupts = <0x00000006 0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                                phandle = <0x00000009>;
                                watchdog@4 {
                                        compatible = "kontron,sl28cpld-wdt";
                                        reg = <0x00000004>;
                                };
                                fan@b {
                                        compatible = "kontron,sl28cpld-fan";
                                        reg = <0x0000000b>;
                                };
                                pwm0@c {
                                        #pwm-cells = <0x00000002>;
                                        compatible = "kontron,sl28cpld-pwm";
                                        reg = <0x0000000c>;
                                        phandle = <0x00000027>;
                                };
                                pwm1@e {
                                        #pwm-cells = <0x00000002>;
                                        compatible = "kontron,sl28cpld-pwm";
                                        reg = <0x0000000e>;
                                        phandle = <0x00000028>;
                                };
                                gpio0@10 {
                                        compatible = "kontron,sl28cpld-gpio";
                                        reg = <0x00000010>;
                                        interrupt-parent = <0x0000000a>;
                                        interrupts = <0x00000006 0x00000002>;
                                        gpio-controller;
                                        #gpio-cells = <0x00000002>;
                                        gpio-line-names = "GPIO0_CAM0_PWR_N", 
"GPIO1_CAM1_PWR_N", "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N", "GPIO4_HDA_RST_N", 
"GPIO5_PWM_OUT", "GPIO6_TACHIN", "GPIO7";
                                        interrupt-controller;
                                        #interrupt-cells = <0x00000002>;
                                        phandle = <0x00000029>;
                                };
                                gpio1@15 {
                                        compatible = "kontron,sl28cpld-gpio";
                                        reg = <0x00000015>;
                                        interrupt-parent = <0x0000000a>;
                                        interrupts = <0x00000006 0x00000002>;
                                        gpio-controller;
                                        #gpio-cells = <0x00000002>;
                                        gpio-line-names = [47 50 49 4f 38 00 47 
50 49 4f 39 00 47 50 49 4f 31 30 00 47 50 49 4f 31 31 00 00 00 00 00];
                                        interrupt-controller;
                                        #interrupt-cells = <0x00000002>;
                                        phandle = <0x0000002a>;
                                };
                                gpo0@1a {
                                        compatible = "kontron,sl28cpld-gpo";
                                        reg = <0x0000001a>;
                                        gpio-controller;
                                        #gpio-cells = <0x00000002>;
                                        gpio-line-names = * 0x0000000082801988 
[0x00000072];
                                        phandle = <0x0000001d>;
                                };
                                gpi0@1b {
                                        compatible = "kontron,sl28cpld-gpi";
                                        reg = <0x0000001b>;
                                        gpio-controller;
                                        #gpio-cells = <0x00000002>;
                                        gpio-line-names = * 0x0000000082801a78 
[0x00000052];
                                        phandle = <0x0000001e>;
                                };
                        };
                        eeprom@50 {
                                compatible = "atmel,24c32";
                                reg = <0x00000050>;
                                pagesize = <0x00000020>;
                        };
                };
                i2c@2010000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02010000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000022 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000025 0x00000008 
0x00000001 0x00000024>;
                        status = "disabled";
                        phandle = <0x0000002b>;
                };
                i2c@2020000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02020000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000023 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000023 0x00000008 
0x00000001 0x00000022>;
                        status = "disabled";
                        phandle = <0x0000002c>;
                };
                i2c@2030000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02030000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000023 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names;
                        dmas = <0x00000008 0x00000001 0x00000029 0x00000008 
0x00000001 0x00000028>;
                        status = "okay";
                        phandle = <0x0000002d>;
                };
                i2c@2040000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02040000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000004a 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names;
                        dmas = <0x00000008 0x00000001 0x0000002b 0x00000008 
0x00000001 0x0000002a>;
                        status = "okay";
                        phandle = <0x0000002e>;
                        eeprom@50 {
                                compatible = "atmel,24c32";
                                reg = <0x00000050>;
                                pagesize = <0x00000020>;
                        };
                };
                i2c@2050000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02050000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000004a 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000002d 0x00000008 
0x00000001 0x0000002c>;
                        status = "disabled";
                        phandle = <0x0000002f>;
                };
                i2c@2060000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02060000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000004b 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000002f 0x00000008 
0x00000001 0x0000002e>;
                        status = "disabled";
                        phandle = <0x00000030>;
                };
                i2c@2070000 {
                        compatible = "fsl,vf610-i2c";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02070000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000004b 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000011 0x00000008 
0x00000001 0x00000010>;
                        status = "disabled";
                        phandle = <0x00000031>;
                };
                spi@2100000 {
                        compatible = "fsl,ls1028a-dspi", 
"fsl,ls1021a-v1.0-dspi";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02100000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000001a 0x00000004>;
                        clock-names = "dspi";
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        spi-num-chipselects = <0x00000005>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x00000032>;
                };
                spi@2110000 {
                        compatible = "fsl,ls1028a-dspi", 
"fsl,ls1021a-v1.0-dspi";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02110000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000001a 0x00000004>;
                        clock-names = "dspi";
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        spi-num-chipselects = <0x00000005>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x00000033>;
                };
                spi@2120000 {
                        compatible = "fsl,ls1028a-dspi", 
"fsl,ls1021a-v1.0-dspi";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        reg = <0x00000000 0x02120000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000001a 0x00000004>;
                        clock-names = "dspi";
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        spi-num-chipselects = <0x00000005>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x00000034>;
                };
                can@2180000 {
                        xen,passthrough;
                        compatible = "fsl,ls1028ar1-flexcan", 
"fsl,lx2160ar1-flexcan";
                        reg = <0x00000000 0x02180000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000015 0x00000004>;
                        clocks = <0x00000007 0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg", "per";
                        status = "okay";
                        phandle = <0x00000035>;
                };
                can@2190000 {
                        xen,passthrough;
                        compatible = "fsl,ls1028ar1-flexcan", 
"fsl,lx2160ar1-flexcan";
                        reg = <0x00000000 0x02190000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000016 0x00000004>;
                        clocks = <0x00000007 0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg", "per";
                        status = "disabled";
                        phandle = <0x00000036>;
                };
                serial@21c0500 {
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x00000000 0x021c0500 0x00000000 0x00000100>;
                        interrupts = <0x00000000 0x00000020 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        status = "okay";
                        phandle = <0x00000037>;
                };
                serial@21c0600 {
                        xen,passthrough;
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x00000000 0x021c0600 0x00000000 0x00000100>;
                        interrupts = <0x00000000 0x00000020 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        status = "okay";
                        phandle = <0x00000038>;
                };
                serial@2260000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x00000000 0x02260000 0x00000000 0x00001000>;
                        interrupts = <0x00000000 0x000000e8 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000021 0x00000008 
0x00000001 0x00000020>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x00000039>;
                };
                serial@2270000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x00000000 0x02270000 0x00000000 0x00001000>;
                        interrupts = <0x00000000 0x000000e9 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000001f 0x00000008 
0x00000001 0x0000001e>;
                        little-endian;
                        status = "okay";
                        phandle = <0x0000003a>;
                };
                serial@2280000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x00000000 0x02280000 0x00000000 0x00001000>;
                        interrupts = <0x00000000 0x000000ea 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000001d 0x00000008 
0x00000001 0x0000001c>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x0000003b>;
                };
                serial@2290000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x00000000 0x02290000 0x00000000 0x00001000>;
                        interrupts = <0x00000000 0x000000eb 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000001b 0x00000008 
0x00000001 0x0000001a>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x0000003c>;
                };
                serial@22a0000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x00000000 0x022a0000 0x00000000 0x00001000>;
                        interrupts = <0x00000000 0x000000ec 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000019 0x00000008 
0x00000001 0x00000018>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x0000003d>;
                };
                serial@22b0000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x00000000 0x022b0000 0x00000000 0x00001000>;
                        interrupts = <0x00000000 0x000000ed 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        clock-names = "ipg";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000017 0x00000008 
0x00000001 0x00000016>;
                        little-endian;
                        status = "disabled";
                        phandle = <0x0000003e>;
                };
                dma-controller@22c0000 {
                        #stream-id-cells = <0x00000001>;
                        #dma-cells = <0x00000002>;
                        compatible = "fsl,vf610-edma";
                        reg = <0x00000000 0x022c0000 0x00000000 0x00010000 
0x00000000 0x022d0000 0x00000000 0x00010000 0x00000000 0x022e0000 0x00000000 
0x00010000>;
                        interrupts = <0x00000000 0x00000038 0x00000004 
0x00000000 0x00000038 0x00000004>;
                        interrupt-names = "edma-tx", "edma-err";
                        dma-channels = <0x00000020>;
                        clock-names = "dmamux0", "dmamux1";
                        clocks = <0x00000002 0x00000004 0x00000001 0x00000002 
0x00000004 0x00000001>;
                        phandle = <0x00000008>;
                };
                gpio@2300000 {
                        compatible = "fsl,ls1028a-gpio", "fsl,qoriq-gpio";
                        reg = <0x00000000 0x02300000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000024 0x00000004>;
                        gpio-controller;
                        #gpio-cells = <0x00000002>;
                        interrupt-controller;
                        #interrupt-cells = <0x00000002>;
                        little-endian;
                        gpio-line-names = [00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 54 44 4f 00 54 43 4b 00 00 00 00 00 00 00 00 00];
                        phandle = <0x0000003f>;
                };
                gpio@2310000 {
                        compatible = "fsl,ls1028a-gpio", "fsl,qoriq-gpio";
                        reg = <0x00000000 0x02310000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000024 0x00000004>;
                        gpio-controller;
                        #gpio-cells = <0x00000002>;
                        interrupt-controller;
                        #interrupt-cells = <0x00000002>;
                        little-endian;
                        gpio-line-names = [00 00 00 00 00 00 54 4d 53 00 54 44 
49 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00];
                        phandle = <0x0000000a>;
                };
                gpio@2320000 {
                        compatible = "fsl,ls1028a-gpio", "fsl,qoriq-gpio";
                        reg = <0x00000000 0x02320000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000025 0x00000004>;
                        gpio-controller;
                        #gpio-cells = <0x00000002>;
                        interrupt-controller;
                        #interrupt-cells = <0x00000002>;
                        little-endian;
                        phandle = <0x00000040>;
                };
                crypto@8000000 {
                        xen,passthrough;
                        compatible = "fsl,sec-v5.0", "fsl,sec-v4.0";
                        fsl,sec-era = <0x0000000a>;
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000001>;
                        ranges = <0x00000000 0x00000000 0x08000000 0x00100000>;
                        reg = <0x00000000 0x08000000 0x00000000 0x00100000>;
                        interrupts = <0x00000000 0x0000008b 0x00000004>;
                        dma-coherent;
                        phandle = <0x00000041>;
                        jr@10000 {
                                compatible = "fsl,sec-v5.0-job-ring", 
"fsl,sec-v4.0-job-ring";
                                reg = <0x00010000 0x00010000>;
                                interrupts = <0x00000000 0x0000008c 0x00000004>;
                                phandle = <0x00000042>;
                        };
                        jr@20000 {
                                compatible = "fsl,sec-v5.0-job-ring", 
"fsl,sec-v4.0-job-ring";
                                reg = <0x00020000 0x00010000>;
                                interrupts = <0x00000000 0x0000008d 0x00000004>;
                                phandle = <0x00000043>;
                        };
                        jr@30000 {
                                compatible = "fsl,sec-v5.0-job-ring", 
"fsl,sec-v4.0-job-ring";
                                reg = <0x00030000 0x00010000>;
                                interrupts = <0x00000000 0x0000008e 0x00000004>;
                                phandle = <0x00000044>;
                        };
                        jr@40000 {
                                compatible = "fsl,sec-v5.0-job-ring", 
"fsl,sec-v4.0-job-ring";
                                reg = <0x00040000 0x00010000>;
                                interrupts = <0x00000000 0x0000008f 0x00000004>;
                                phandle = <0x00000045>;
                        };
                };
                wdt@c000000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x00000000 0x0c000000 0x00000000 0x00001000>;
                        clocks = <0x00000002 0x00000004 0x0000000f 0x00000002 
0x00000004 0x0000000f>;
                        clock-names = "apb_pclk", "wdog_clk";
                        phandle = <0x00000046>;
                };
                wdt@c010000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x00000000 0x0c010000 0x00000000 0x00001000>;
                        clocks = <0x00000002 0x00000004 0x0000000f 0x00000002 
0x00000004 0x0000000f>;
                        clock-names = "apb_pclk", "wdog_clk";
                        phandle = <0x00000047>;
                };
                mmc@2140000 {
                        #stream-id-cells = <0x00000001>;
                        compatible = "fsl,ls1028a-esdhc", "fsl,esdhc";
                        reg = <0x00000000 0x02140000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000001c 0x00000004>;
                        clock-frequency = <0x00000000>;
                        clocks = <0x00000002 0x00000002 0x00000001>;
                        voltage-ranges = <0x00000708 0x00000708 0x00000ce4 
0x00000ce4>;
                        sdhci,auto-cmd12;
                        little-endian;
                        bus-width = <0x00000004>;
                        status = "okay";
                        sd-uhs-sdr104;
                        sd-uhs-sdr50;
                        sd-uhs-sdr25;
                        sd-uhs-sdr12;
                        phandle = <0x00000048>;
                };
                mmc@2150000 {
                        #stream-id-cells = <0x00000001>;
                        compatible = "fsl,ls1028a-esdhc", "fsl,esdhc";
                        reg = <0x00000000 0x02150000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x0000003f 0x00000004>;
                        clock-frequency = <0x00000000>;
                        clocks = <0x00000002 0x00000002 0x00000001>;
                        voltage-ranges = <0x00000708 0x00000708 0x00000ce4 
0x00000ce4>;
                        sdhci,auto-cmd12;
                        broken-cd;
                        little-endian;
                        bus-width = <0x00000008>;
                        status = "okay";
                        mmc-hs200-1_8v;
                        mmc-pwrseq = <0x0000000b>;
                        phandle = <0x00000049>;
                };
                sata@3200000 {
                        compatible = "fsl,ls1028a-ahci";
                        reg = <0x00000000 0x03200000 0x00000000 0x00010000 
0x00000007 0x00100520 0x00000000 0x00000004>;
                        reg-names = "ahci", "sata-ecc";
                        interrupts = <0x00000000 0x00000085 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001>;
                        status = "disabled";
                        phandle = <0x0000004a>;
                };
                pcie@3400000 {
                        compatible = "fsl,ls1028a-pcie";
                        reg = <0x00000000 0x03400000 0x00000000 0x00100000 
0x00000080 0x00000000 0x00000000 0x00002000>;
                        reg-names = "regs", "config";
                        interrupts = <0x00000000 0x0000006c 0x00000004 
0x00000000 0x0000006d 0x00000004>;
                        interrupt-names = "pme", "aer";
                        #address-cells = <0x00000003>;
                        #size-cells = <0x00000002>;
                        device_type = "pci";
                        dma-coherent;
                        iommu-map = <0x00000000 0x0000000c 0x00000000 
0x00000001>;
                        bus-range = <0x00000000 0x000000ff>;
                        ranges = <0x81000000 0x00000000 0x00000000 0x00000080 
0x00010000 0x00000000 0x00010000 0x82000000 0x00000000 0x40000000 0x00000080 
0x40000000 0x00000000 0x40000000>;
                        msi-parent = <0x0000000d>;
                        #interrupt-cells = <0x00000001>;
                        interrupt-map-mask = <0x00000000 0x00000000 0x00000000 
0x00000007>;
                        interrupt-map = * 0x0000000082803bec [0x000000a0];
                        status = "disabled";
                };
                pcie@3500000 {
                        compatible = "fsl,ls1028a-pcie";
                        reg = <0x00000000 0x03500000 0x00000000 0x00100000 
0x00000088 0x00000000 0x00000000 0x00002000>;
                        reg-names = "regs", "config";
                        interrupts = <0x00000000 0x00000071 0x00000004 
0x00000000 0x00000072 0x00000004>;
                        interrupt-names = "pme", "aer";
                        #address-cells = <0x00000003>;
                        #size-cells = <0x00000002>;
                        device_type = "pci";
                        dma-coherent;
                        iommu-map = <0x00000000 0x0000000c 0x00000000 
0x00000001>;
                        bus-range = <0x00000000 0x000000ff>;
                        ranges = <0x81000000 0x00000000 0x00000000 0x00000088 
0x00010000 0x00000000 0x00010000 0x82000000 0x00000000 0x40000000 0x00000088 
0x40000000 0x00000000 0x40000000>;
                        msi-parent = <0x0000000d>;
                        #interrupt-cells = <0x00000001>;
                        interrupt-map-mask = <0x00000000 0x00000000 0x00000000 
0x00000007>;
                        interrupt-map = * 0x0000000082803e50 [0x000000a0];
                        status = "disabled";
                };
                pcie@1f0000000 {
                        compatible = "pci-host-ecam-generic";
                        reg = <0x00000001 0xf0000000 0x00000000 0x00100000>;
                        #address-cells = <0x00000003>;
                        #size-cells = <0x00000002>;
                        msi-parent = <0x0000000d>;
                        device_type = "pci";
                        bus-range = <0x00000000 0x00000000>;
                        dma-coherent;
                        msi-map = <0x00000000 0x0000000d 0x00000017 0x0000000e>;
                        iommu-map = <0x00000000 0x0000000c 0x00000017 
0x0000000e>;
                        ranges = * 0x0000000082804004 [0x000000c4];
                        ethernet@0,0 {
                                #stream-id-cells = <0x00000001>;
                                compatible = "fsl,enetc";
                                reg = <0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000>;
                                phy-handle = <0x0000000e>;
                                phy-connection-type = "sgmii";
                                status = "okay";
                                phandle = <0x0000004b>;
                        };
                        ethernet@0,1 {
                                #stream-id-cells = <0x00000001>;
                                compatible = "fsl,enetc";
                                reg = <0x00000100 0x00000000 0x00000000 
0x00000000 0x00000000>;
                                phy-handle = <0x0000000f>;
                                phy-connection-type = "rgmii";
                                status = "okay";
                                phandle = <0x0000004c>;
                        };
                        ethernet@0,2 {
                                compatible = "fsl,enetc";
                                reg = <0x00000200 0x00000000 0x00000000 
0x00000000 0x00000000>;
                                status = "disabled";
                                phandle = <0x0000004d>;
                                fixed-link {
                                        speed = <0x000003e8>;
                                        full-duplex;
                                };
                        };
                        mdio@0,3 {
                                compatible = "fsl,enetc-mdio";
                                reg = <0x00000300 0x00000000 0x00000000 
0x00000000 0x00000000>;
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000000>;
                                phandle = <0x0000004e>;
                                ethernet-phy@5 {
                                        reg = <0x00000005>;
                                        phandle = <0x0000000e>;
                                };
                                ethernet-phy@4 {
                                        reg = <0x00000004>;
                                        status = "okay";
                                        phandle = <0x0000000f>;
                                };
                        };
                        ethernet@0,4 {
                                compatible = "fsl,enetc-ptp";
                                reg = <0x00000400 0x00000000 0x00000000 
0x00000000 0x00000000>;
                                clocks = <0x00000002 0x00000004 0x00000000>;
                                little-endian;
                        };
                        switch@0,5 {
                                compatible = "mscc,felix-switch";
                                reg = <0x00000500 0x00000000 0x00000000 
0x00000000 0x00000000>;
                                interrupts = <0x00000000 0x0000005f 0x00000004>;
                                ports {
                                        #address-cells = <0x00000001>;
                                        #size-cells = <0x00000000>;
                                        port@0 {
                                                reg = <0x00000000>;
                                                status = "disabled";
                                                phandle = <0x0000004f>;
                                        };
                                        port@1 {
                                                reg = <0x00000001>;
                                                status = "disabled";
                                                phandle = <0x00000050>;
                                        };
                                        port@2 {
                                                reg = <0x00000002>;
                                                status = "disabled";
                                                phandle = <0x00000051>;
                                        };
                                        port@3 {
                                                reg = <0x00000003>;
                                                status = "disabled";
                                                phandle = <0x00000052>;
                                        };
                                        port@4 {
                                                reg = <0x00000004>;
                                                status = "disabled";
                                                phandle = <0x00000053>;
                                                fixed-link {
                                                        speed = <0x000003e8>;
                                                        full-duplex;
                                                };
                                        };
                                        port@5 {
                                                reg = <0x00000005>;
                                                ethernet = <0x00000010>;
                                                status = "disabled";
                                                phandle = <0x00000054>;
                                                fixed-link {
                                                        speed = <0x000003e8>;
                                                        full-duplex;
                                                };
                                        };
                                };
                        };
                        ethernet@0,6 {
                                compatible = "fsl,enetc";
                                reg = <0x00000600 0x00000000 0x00000000 
0x00000000 0x00000000>;
                                status = "disabled";
                                phandle = <0x00000010>;
                                fixed-link {
                                        speed = <0x000003e8>;
                                        full-duplex;
                                };
                        };
                };
                iommu@5000000 {
                        mmu-masters = <0x00000049 0x00000800 0x00000057 
0x00000012 0x0000004b 0x00000417 0x0000004c 0x00000418 0x00000008 0x00000020>;
                        compatible = "arm,mmu-500";
                        reg = <0x00000000 0x05000000 0x00000000 0x00800000>;
                        #global-interrupts = <0x00000008>;
                        #iommu-cells = <0x00000000>;
                        stream-match-mask = <0x00007c00>;
                        interrupts = * 0x0000000082804864 [0x00000360];
                        phandle = <0x0000000c>;
                };
                dma-controller@8380000 {
                        #stream-id-cells = <0x00000001>;
                        compatible = "fsl,ls1028a-qdma", "fsl,ls1021a-qdma";
                        reg = <0x00000000 0x08380000 0x00000000 0x00001000 
0x00000000 0x08390000 0x00000000 0x00010000 0x00000000 0x083a0000 0x00000000 
0x00040000>;
                        interrupts = <0x00000000 0x0000002b 0x00000004 
0x00000000 0x000000fb 0x00000004 0x00000000 0x000000fc 0x00000004 0x00000000 
0x000000fd 0x00000004 0x00000000 0x000000fe 0x00000004>;
                        interrupt-names = "qdma-error", "qdma-queue0", 
"qdma-queue1", "qdma-queue2", "qdma-queue3";
                        channels = <0x00000008>;
                        block-number = <0x00000001>;
                        block-offset = <0x00010000>;
                        queues = <0x00000002>;
                        status-sizes = <0x00000040>;
                        queue-sizes = <0x00000040 0x00000040>;
                        phandle = <0x00000057>;
                };
                gpu@f0c0000 {
                        xen,passthrough;
                        compatible = "fsl,ls1028a-gpu";
                        reg = <0x00000000 0x0f0c0000 0x00000000 0x00010000 
0x00000000 0x80000000 0x00000000 0x80000000 0x00000000 0x00000000 0x00000000 
0x03000000>;
                        reg-names = "base", "phys_baseaddr", "contiguous_mem";
                        interrupts = <0x00000000 0x000000dc 0x00000004>;
                };
                audio-controller@f100000 {
                        #sound-dai-cells = <0x00000000>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x00000000 0x0f100000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000052 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001 0x00000002 
0x00000004 0x00000001 0x00000002 0x00000004 0x00000001 0x00000002 0x00000004 
0x00000001>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000004 0x00000008 
0x00000001 0x00000003>;
                        status = "disabled";
                        phandle = <0x00000058>;
                };
                audio-controller@f110000 {
                        #sound-dai-cells = <0x00000000>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x00000000 0x0f110000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000052 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001 0x00000002 
0x00000004 0x00000001 0x00000002 0x00000004 0x00000001 0x00000002 0x00000004 
0x00000001>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000006 0x00000008 
0x00000001 0x00000005>;
                        status = "disabled";
                        phandle = <0x00000059>;
                };
                audio-controller@f120000 {
                        #sound-dai-cells = <0x00000000>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x00000000 0x0f120000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000053 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001 0x00000002 
0x00000004 0x00000001 0x00000002 0x00000004 0x00000001 0x00000002 0x00000004 
0x00000001>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x00000008 0x00000008 
0x00000001 0x00000007>;
                        status = "disabled";
                        phandle = <0x0000005a>;
                };
                audio-controller@f130000 {
                        #sound-dai-cells = <0x00000000>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x00000000 0x0f130000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000053 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001 0x00000002 
0x00000004 0x00000001 0x00000002 0x00000004 0x00000001 0x00000002 0x00000004 
0x00000001>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000000a 0x00000008 
0x00000001 0x00000009>;
                        status = "disabled";
                        phandle = <0x0000005b>;
                };
                audio-controller@f140000 {
                        #sound-dai-cells = <0x00000000>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x00000000 0x0f140000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000054 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001 0x00000002 
0x00000004 0x00000001 0x00000002 0x00000004 0x00000001 0x00000002 0x00000004 
0x00000001>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000000c 0x00000008 
0x00000001 0x0000000b>;
                        status = "disabled";
                        phandle = <0x0000005c>;
                };
                audio-controller@f150000 {
                        #sound-dai-cells = <0x00000000>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x00000000 0x0f150000 0x00000000 0x00010000>;
                        interrupts = <0x00000000 0x00000054 0x00000004>;
                        clocks = <0x00000002 0x00000004 0x00000001 0x00000002 
0x00000004 0x00000001 0x00000002 0x00000004 0x00000001 0x00000002 0x00000004 
0x00000001>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
                        dma-names = "tx", "rx";
                        dmas = <0x00000008 0x00000001 0x0000000e 0x00000008 
0x00000001 0x0000000d>;
                        status = "disabled";
                        phandle = <0x0000005d>;
                };
                rcpm@1e34040 {
                        compatible = "fsl,ls1028a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x00000000 0x01e34040 0x00000000 0x0000001c>;
                        #fsl,rcpm-wakeup-cells = <0x00000007>;
                        little-endian;
                        phandle = <0x00000016>;
                };
                timer@2800000 {
                        compatible = "fsl,ls1028a-ftm-alarm";
                        reg = <0x00000000 0x02800000 0x00000000 0x00010000>;
                        fsl,rcpm-wakeup = <0x00000016 0x00000000 0x00000000 
0x00000000 0x00000000 0x00004000 0x00000000 0x00000000>;
                        interrupts = <0x00000000 0x0000002c 0x00000004>;
                        phandle = <0x0000005e>;
                };
        };
        malidp@f080000 {
                xen,passthrough;
                compatible = "arm,mali-dp500";
                reg = <0x00000000 0x0f080000 0x00000000 0x00010000>;
                interrupts = <0x00000000 0x000000de 0x00000004 0x00000000 
0x000000df 0x00000004>;
                interrupt-names = "DE", "SE";
                clocks = <0x00000017 0x00000018 0x00000018 0x00000019>;
                clock-names = "pxlclk", "mclk", "aclk", "pclk";
                arm,malidp-output-port-lines = [08 08 08];
                phandle = <0x0000005f>;
                port {
                        endpoint {
                                remote-endpoint = <0x0000001a>;
                                phandle = <0x0000001c>;
                        };
                };
        };
        hdp@f200000 {
                xen,passthrough;
                compatible = "fsl,ls1028a-dp";
                reg = <0x00000000 0x0f200000 0x00000000 0x000fffff>;
                interrupts = <0x00000000 0x000000dd 0x00000004>;
                clocks = <0x00000007 0x00000002 0x00000002 0x00000002 
0x0000001b 0x0000001b 0x0000001b 0x0000001b 0x0000001b>;
                clock-names = "clk_ipg", "clk_core", "clk_pxl", "clk_pxl_mux", 
"clk_pxl_link", "clk_apb", "clk_vif";
                fsl,no_edid;
                resolution = "3840x2160@60", "1920x1080@60", "1280x720@60", 
"720x480@60";
                lane_mapping = <0x0000004e>;
                edp_link_rate = <0x00000006>;
                edp_num_lanes = <0x00000004>;
                status = "okay";
                phandle = <0x00000060>;
                port {
                        endpoint {
                                remote-endpoint = <0x0000001c>;
                                phandle = <0x0000001a>;
                        };
                };
        };
        emmc-pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <0x0000001d 0x00000002 0x00000000>;
                phandle = <0x0000000b>;
        };
        buttons0 {
                compatible = "gpio-keys";
                power-button {
                        interrupt-parent = <0x00000009>;
                        interrupts = <0x00000004 0x00000000>;
                        linux,code = <0x00000074>;
                        label = "Power";
                        wakeup-source;
                };
                sleep-button {
                        interrupt-parent = <0x00000009>;
                        interrupts = <0x00000005 0x00000000>;
                        linux,code = <0x0000008e>;
                        label = "Sleep";
                        wakeup-source;
                };
        };
        buttons1 {
                compatible = "gpio-keys-polled";
                poll-interval = <0x000000c8>;
                lid_switch {
                        linux,input-type = <0x00000005>;
                        linux,code = <0x00000000>;
                        gpios = <0x0000001e 0x00000004 0x00000001>;
                        label = "Lid";
                        phandle = <0x00000061>;
                };
        };
        charger {
                compatible = "gpio-charger";
                charger-type = "battery";
                gpios = <0x0000001e 0x00000006 0x00000001>;
                charging-gpio = <0x0000001e 0x00000005 0x00000001>;
                bat-low-gpio = <0x0000001e 0x00000003 0x00000001>;
        };
        __symbols__ {
                cpu0 = "/cpus/cpu@0";
                cpu1 = "/cpus/cpu@1";
                l2 = "/cpus/l2-cache";
                CPU_PW20 = "/idle-states/cpu-pw20";
                sysclk = "/clock-sysclk";
                osc_27m = "/clock-osc-27m";
                dpclk = "/clock-display@f1f0000";
                aclk = "/clock-axi";
                pclk = "/clock-apb";
                hdpclk = "/clock-hdpcore";
                gic = "/interrupt-controller@6000000";
                its = "/interrupt-controller@6000000/gic-its@6020000";
                soc = "/soc";
                ddr = "/soc/memory-controller@1080000";
                dcfg = "/soc/syscon@1e00000";
                rst = "/soc/syscon@1e60000";
                scfg = "/soc/syscon@1fc0000";
                clockgen = "/soc/clock-controller@1300000";
                usb0 = "/soc/usb@3100000";
                usb1 = "/soc/usb@3110000";
                fspi = "/soc/spi@20c0000";
                i2c0 = "/soc/i2c@2000000";
                sl28cpld = "/soc/i2c@2000000/sl28cpld@4a";
                pwm0 = "/soc/i2c@2000000/sl28cpld@4a/pwm0@c";
                pwm1 = "/soc/i2c@2000000/sl28cpld@4a/pwm1@e";
                cpld_gpio0 = "/soc/i2c@2000000/sl28cpld@4a/gpio0@10";
                cpld_gpio1 = "/soc/i2c@2000000/sl28cpld@4a/gpio1@15";
                cpld_gpo0 = "/soc/i2c@2000000/sl28cpld@4a/gpo0@1a";
                cpld_gpi0 = "/soc/i2c@2000000/sl28cpld@4a/gpi0@1b";
                i2c1 = "/soc/i2c@2010000";
                i2c2 = "/soc/i2c@2020000";
                i2c3 = "/soc/i2c@2030000";
                i2c4 = "/soc/i2c@2040000";
                i2c5 = "/soc/i2c@2050000";
                i2c6 = "/soc/i2c@2060000";
                i2c7 = "/soc/i2c@2070000";
                dspi0 = "/soc/spi@2100000";
                dspi1 = "/soc/spi@2110000";
                dspi2 = "/soc/spi@2120000";
                can0 = "/soc/can@2180000";
                can1 = "/soc/can@2190000";
                duart0 = "/soc/serial@21c0500";
                duart1 = "/soc/serial@21c0600";
                lpuart0 = "/soc/serial@2260000";
                lpuart1 = "/soc/serial@2270000";
                lpuart2 = "/soc/serial@2280000";
                lpuart3 = "/soc/serial@2290000";
                lpuart4 = "/soc/serial@22a0000";
                lpuart5 = "/soc/serial@22b0000";
                edma0 = "/soc/dma-controller@22c0000";
                gpio1 = "/soc/gpio@2300000";
                gpio2 = "/soc/gpio@2310000";
                gpio3 = "/soc/gpio@2320000";
                crypto = "/soc/crypto@8000000";
                sec_jr0 = "/soc/crypto@8000000/jr@10000";
                sec_jr1 = "/soc/crypto@8000000/jr@20000";
                sec_jr2 = "/soc/crypto@8000000/jr@30000";
                sec_jr3 = "/soc/crypto@8000000/jr@40000";
                cluster1_core0_watchdog = "/soc/wdt@c000000";
                cluster1_core1_watchdog = "/soc/wdt@c010000";
                esdhc = "/soc/mmc@2140000";
                esdhc1 = "/soc/mmc@2150000";
                sata = "/soc/sata@3200000";
                enetc_port0 = "/soc/pcie@1f0000000/ethernet@0,0";
                enetc_port1 = "/soc/pcie@1f0000000/ethernet@0,1";
                enetc_port2 = "/soc/pcie@1f0000000/ethernet@0,2";
                enetc_mdio_pf3 = "/soc/pcie@1f0000000/mdio@0,3";
                phy0 = "/soc/pcie@1f0000000/mdio@0,3/ethernet-phy@5";
                phy1 = "/soc/pcie@1f0000000/mdio@0,3/ethernet-phy@4";
                switch_port0 = "/soc/pcie@1f0000000/switch@0,5/ports/port@0";
                switch_port1 = "/soc/pcie@1f0000000/switch@0,5/ports/port@1";
                switch_port2 = "/soc/pcie@1f0000000/switch@0,5/ports/port@2";
                switch_port3 = "/soc/pcie@1f0000000/switch@0,5/ports/port@3";
                switch_port4 = "/soc/pcie@1f0000000/switch@0,5/ports/port@4";
                switch_port5 = "/soc/pcie@1f0000000/switch@0,5/ports/port@5";
                enetc_port3 = "/soc/pcie@1f0000000/ethernet@0,6";
                tmu = "/soc/tmu@1f00000";
                core_cluster_alert = 
"/soc/thermal-zones/core-cluster/trips/core-cluster-alert";
                core_cluster_crit = 
"/soc/thermal-zones/core-cluster/trips/core-cluster-crit";
                ddr_controller_alert = 
"/soc/thermal-zones/ddr-controller/trips/ddr-controller-alert";
                ddr_controller_crit = 
"/soc/thermal-zones/ddr-controller/trips/ddr-controller-crit";
                smmu = "/soc/iommu@5000000";
                qdma = "/soc/dma-controller@8380000";
                sai1 = "/soc/audio-controller@f100000";
                sai2 = "/soc/audio-controller@f110000";
                sai3 = "/soc/audio-controller@f120000";
                sai4 = "/soc/audio-controller@f130000";
                sai5 = "/soc/audio-controller@f140000";
                sai6 = "/soc/audio-controller@f150000";
                rcpm = "/soc/rcpm@1e34040";
                ftm_alarm0 = "/soc/timer@2800000";
                display0 = "/malidp@f080000";
                dp0_out = "/malidp@f080000/port/endpoint";
                display1 = "/hdp@f200000";
                dp1_out = "/hdp@f200000/port/endpoint";
                emmc_pwrseq = "/emmc-pwrseq";
                lid_sw = "/buttons1/lid_switch";
        };
};

Reply via email to