Last updated : 2026.09.27
Xilinx Kria KR260 で petalinux2025.2 をSDTフローでビルドする
実行環境
KR260で動かすpetalinux2025.2はWindows11proのHyper-V上で動作するUbuntu22.04LTSでビルドしました。ビルドに必要な関連ファイルの作成に使用したツールバージョンは次の通りです。
| ビルドOS | Hyper-V 上の Ubuntu 22.04 LTS |
|---|---|
| Hyper-V Manager Version | 10.0.26100.7019 |
| ホストOS | Windows 11 Pro 25H2 |
| ターゲットOS | PetaLinux 2025.2 |
| ターゲットBoard | Kria KR260 Robotics Starter Kit SK-KR260-G |
| PetaLinux Tools Version | 2025.2 |
| Vivado/Vitis Version | 2025.2 |
| Serial Console | Tera Term 5.7.0 |
| ファイル共有 | WinSCP 6.5.7 |
| image writer | balena etcher 1.18.11 |
Ubuntu22.04LTSの注意事項
Ubuntu22.04LTS上でvivado/vitis/petalinux-toolを動作させるために必要なパッケージを各ツールインストールまえにインストールしておく必要があります。
Vivado 2025.2 installLibs for ubuntu 22.04 ### AIE Tools prerequisite libraries apt-get update | tee -a $logFile apt-get install -y libc6-dev-i386 net-tools | tee -a $logFile apt-get install -y graphviz | tee -a $logFile apt-get install -y make | tee -a $logFile ### Vitis Tools prerequisite libraries apt-get install -y unzip | tee -a $logFile apt-get install -y zip | tee -a $logFile apt-get install -y g++ | tee -a $logFile apt-get install -y libtinfo5 | tee -a $logFile apt-get install -y xvfb | tee -a $logFile apt-get install -y git | tee -a $logFile #apt-get install -y libncurses5 | tee -a $logFile apt-get install -y libncurses5-dev | tee -a $logFile apt-get install -y libc6-dev-i386 | tee -a $logFile apt-get install -y libnss3-dev | tee -a $logFile apt-get install -y libgdk-pixbuf2.0-dev | tee -a $logFile apt-get install -y libgtk-3-dev | tee -a $logFile apt-get install -y libxss-dev | tee -a $logFile apt-get install -y libasound2 | tee -a $logFile #apt-get install -y compat-openssl10 | tee -a $logFile apt-get install -y openssl | tee -a $logFile apt-get install -y fdisk | tee -a $logFile apt-get install -y libsecret-1-dev | tee -a $logFile Vitis 2025.2 installLibs for Ubuntu 22.04 ### AIE Tools prerequisite libraries apt-get update | tee -a $logFile apt-get install -y libc6-dev-i386 net-tools | tee -a $logFile apt-get install -y graphviz | tee -a $logFile apt-get install -y make | tee -a $logFile ### Vitis Tools prerequisite libraries apt-get install -y unzip | tee -a $logFile apt-get install -y zip | tee -a $logFile apt-get install -y g++ | tee -a $logFile apt-get install -y libtinfo5 | tee -a $logFile apt-get install -y xvfb | tee -a $logFile apt-get install -y git | tee -a $logFile #apt-get install -y libncurses5 | tee -a $logFile apt-get install -y libncurses5-dev | tee -a $logFile apt-get install -y libc6-dev-i386 | tee -a $logFile apt-get install -y libnss3-dev | tee -a $logFile apt-get install -y libgdk-pixbuf2.0-dev | tee -a $logFile apt-get install -y libgtk-3-dev | tee -a $logFile apt-get install -y libxss-dev | tee -a $logFile apt-get install -y libasound2 | tee -a $logFile #apt-get install -y compat-openssl10 | tee -a $logFile apt-get install -y openssl | tee -a $logFile apt-get install -y fdisk | tee -a $logFile apt-get install -y libsecret-1-dev | tee -a $logFile
また、petalinux 2025.2のインスールについても事前に必要なパッケージをインストールしておく必要があります。Ubuntu用のsetupスクリプトが公式に用意されており、それを使用すれば比較的簡単に準備できます。エラーの出たパッケージは都度対応します。https://adaptivesupport.amd.com/s/article/73296?language=ja&t=1790497433800
なお、Ubuntuのバージョンは違いますが類似例としてhttps://www.hackster.io/whitney-knitter/amd-fpga-tools-2025-1-2025-2-install-on-ubuntu-24-04-4f5b60のサイトも参考になりました。
ビルド手順
このレポートで説明するビルド手順の目次は以下の通りです。重要な点として、問題の回避で原因がよくわからない設定があり、system-user.dtsiによるデバイスツリー上書きで対応した箇所がありました。
これらの手順はほぼビルドOSのUbuntu 22.04 LTSで実行できますが、USBを扱う場面のみ、ホストOSのwindows 11 proで実施しました。
- vivadoでxsaを作成する
- sdtgenでデバイスツリーを作成する
- petalinuxでzynqMPプロジェクトを生成する
- petalinux-config --get-hw-descriptionでデバイスツリーを読み込む
- petalinux-configでkria kr260用の設定に変更する
- system-user.dtsiを編集する
- petalinux-buildする
- petalinux-packageでブートイメージ(BOOT.BIN, wicイメージ)を生成する
- balena etcherでwicイメージをUSBに書き込む
- FWUENボタンで起動するImage Recovery ToolでBOOT.BINを書き込む
- KR260にUSBを挿してブートする
ビルド手順の詳細説明
vivadoでxsaを作成する
zynq_ultra_ps_e_0という名前でZynq UltraScale+ MPSoCというIPがIP Block Diagram上に配置されたら、ダブルクリックして開くRe-Customize IPでKR260向けに設定変更します。チェックを入れて使用するもののみ記載します。
| peripheral | I/O |
|---|---|
| QSPI | Single, ×4, MIO 0 .. 5 |
| I2C 1 | MIO 24 .. 25 |
| PMU - GPI0 | MIO 26 |
| PMU - GPI5 | MIO 31 |
| PMU - GPO3 | MIO 35 |
| SPI 1 | MIO 6 .. 11 |
| UART 1 | MIO 36 .. 37 |
| GPIO0 MIO | MIO 0 .. 25 |
| GEM 0 | GT Lane0 |
| GEM 1 | MIO 38 .. 49 |
| MDIO 1 | MIO 50 .. 51 |
| USB 0 | MIO 52 .. 63 |
| USB 3.0 ( USB 0 ) | GT Lane2 |
| USB 1 | MIO 64 .. 75 |
| USB 3.0 ( USB 1 ) | GT Lane3 |
| USB Reset | Separate MIO Pin |
| Reset Polarity | Active Low |
| USB 0 Reset | MIO 76 |
| USB 1 Reset | MIO 77 |
| DPAUX | MIO 27 .. 30 |
| Lane Selection | Single Lower |
GT Lane Reference Frequency
| Display Port | Ref clk1 27MHz |
|---|---|
| USB0 | Ref clk2 26MHz |
| USB1 | Ref clk2 26MHz |
| GEM0 | Ref clk0 125MHz |
sdtgenでデバイスツリーを作成する
sdtgenの使い方はつぎのページにあります。gitブランチはxlnx_rel_v2025.2です。https://github.com/Xilinx/system-device-tree-xlnx.git
sdtgenを実行するディレクトリにsdtgenで使用するデバイスツリーソースをコピーしておきます。使用するファイルはzynqmp-sm-k26-reva.dtsiとzynqmp-smk-k26-reva.dtsiの2つです。これらの.dtsiファイルは次のURLからダウンロードできます。https://github.com/Xilinx/device-tree-xlnx/tree/xlnx_rel_v2025.2/device_tree/data/kernel_dtsi/2025.2/BOARD
sdtgen sdtgen% set_dt_param -dir sdt_outdir -xsa design_1_wrapper.xsa -user_dts zynqmp-sm-k26-reva.dtsi zynqmp-smk-k26-reva.dtsi -board_dts zynqmp-sck-kr-g-revb -zocl enable sdtgen% generate_sdt sdtgen% exit
petalinuxでzynqMPプロジェクトを生成する
通常は、Xilinx公式から配布されているbspを使ってpetalinuxプロジェクトを生成したほうがいいですが、今回はzynqMPテンプレートを使って1から生成します。プロジェクトの名前は--nameオプションで指定できます。このコマンドを実行したディレクトリに--nameで指定した名前のpetalinuxプロジェクトが生成されます。以降のpetalinux関連のコマンドはそのコマンドで操作したいpetalinuxプロジェクトのディレクトリに入って実行します。
petalinux-create project --template zynqMP --name test cd test
petalinux-config --get-hw-descriptionでデバイスツリーを読み込む
petalinux-configでkria kr260用の設定に変更する
| U-Boot Configuration / u-boot config target | AUTO |
| Linux Configuration / linux config target | AUTO |
| Image Packing Configuration / Root filesystem type | ext4 |
| Image Packing Configuration / Device node of SD device | /dev/sda2 |
| YOCTO_MACHINE_NAME | xilinx-k26-kr |
| YOCTO_INCLUDE_MACHINE_NAME | k26-smk-kr |
もし100GBのビルドキャッシュを用意できていたら、この段階でpetalinuxビルド高速化設定をしておくといいです。ビルド高速化設定の手順はつぎのサイトに記載があります。https://www.paltek.co.jp/techblog/techinfo/221209_01
system-user.dtsiを編集する
/include/ "system-conf.dtsi" / { /delete-node/ chosen; chosen { bootargs = "earlycon clk_ignore_unused console=ttyPS1,115200 root=/dev/sda2 rw rootwait init_fatal_sh=1 xilinx_tsn_ep.st_pcp=4 cma=900M"; stdout-path = "serial1:115200n8"; }; };
petalinux-buildする
上記までの下準備がすべてできたらPetaLinux OSをビルドできます。下記のコマンドでビルドすることができます。
petalinux-build -x mrproper petalinux-build
ビルドが完了するとPetaLinuxプロジェクトの下にimages/linuxフォルダが生成されますが、そのなかにsystem.dtbというファイルが生成されています。これは上記のsystem-user.dtsiやSDTgenで生成したデバイスツリーソース、PetaLinux SDKやYoctoの自動生成ファイルを組み合わせて生成されたデバイスツリーで、KR260はこれを読み込んで動作します。dtcコマンドでデバイスツリーソースに逆コンパイルすることができ、つぎのようなsystem.dtsが得られます。
/dts-v1/; / { compatible = "xlnx,zynqmp-smk-k26-rev1\0xlnx,zynqmp-smk-k26-revB\0xlnx,zynqmp-smk-k26-revA\0xlnx,zynqmp-smk-k26\0xlnx,zynqmp"; #address-cells = <0x02>; #size-cells = <0x02>; model = "ZynqMP SMK-K26 Rev1/B/A"; board = "k26i"; device_id = "xck26"; slrcount = <0x01>; family = "ZynqMP"; speed_grade = "2LVI"; options { u-boot { compatible = "u-boot,config"; bootscr-address = <0x00 0x20000000>; }; }; cpus { phandle = <0xad>; #address-cells = <0x01>; #size-cells = <0x00>; compatible = "cpus,cluster"; #ranges-address-cells = <0x02>; #ranges-size-cells = <0x02>; cpu@0 { phandle = <0x86>; #cooling-cells = <0x02>; compatible = "arm,cortex-a53"; device_type = "cpu"; enable-method = "psci"; operating-points-v2 = <0x6e>; reg = <0x00>; cpu-idle-states = <0x6f>; next-level-cache = <0x70>; clocks = <0x71 0x0a>; xlnx,psu-ep = <0x01>; xlnx,pss-video-ref-clk-freq = <0x1fc9f08>; xlnx,ip-name = "psu_cortexa53"; xlnx,cpu-1x-clk-freq-hz = <0x00>; xlnx,psu-silicon-version = <0x03>; cpu-frequency = <0x4f790c10>; xlnx,cpu-clk-freq-hz = <0x4f790c10>; xlnx,pss-gt-ref-clk-freq = <0x1fc9f08>; xlnx,pss-ref-clk-freq = <0x1fc9f08>; bus-handle = <0x01>; xlnx,pss-aux-ref-clk-freq = <0x1fc9f08>; xlnx,psu-device = "PS8a"; xlnx,timestamp-clk-freq = <0x5f5dd19>; stamp-frequency = <0x5f5dd19>; xlnx,pss-alt-ref-clk-freq = <0x1fc9f08>; }; cpu@1 { phandle = <0x87>; #cooling-cells = <0x02>; compatible = "arm,cortex-a53"; device_type = "cpu"; enable-method = "psci"; reg = <0x01>; operating-points-v2 = <0x6e>; cpu-idle-states = <0x6f>; next-level-cache = <0x70>; xlnx,timestamp-clk-freq = <0x5f5dd19>; xlnx,psu-ep = <0x01>; xlnx,pss-ref-clk-freq = <0x1fc9f08>; stamp-frequency = <0x5f5dd19>; xlnx,cpu-1x-clk-freq-hz = <0x00>; xlnx,ip-name = "psu_cortexa53"; xlnx,psu-silicon-version = <0x03>; xlnx,psu-device = "PS8a"; xlnx,cpu-clk-freq-hz = <0x4f790c10>; bus-handle = <0x01>; cpu-frequency = <0x4f790c10>; }; cpu@2 { phandle = <0x88>; #cooling-cells = <0x02>; compatible = "arm,cortex-a53"; device_type = "cpu"; enable-method = "psci"; reg = <0x02>; operating-points-v2 = <0x6e>; cpu-idle-states = <0x6f>; next-level-cache = <0x70>; xlnx,timestamp-clk-freq = <0x5f5dd19>; xlnx,psu-ep = <0x01>; xlnx,pss-ref-clk-freq = <0x1fc9f08>; stamp-frequency = <0x5f5dd19>; xlnx,cpu-1x-clk-freq-hz = <0x00>; xlnx,ip-name = "psu_cortexa53"; xlnx,psu-silicon-version = <0x03>; xlnx,psu-device = "PS8a"; xlnx,cpu-clk-freq-hz = <0x4f790c10>; bus-handle = <0x01>; cpu-frequency = <0x4f790c10>; }; cpu@3 { phandle = <0x89>; #cooling-cells = <0x02>; compatible = "arm,cortex-a53"; device_type = "cpu"; enable-method = "psci"; reg = <0x03>; operating-points-v2 = <0x6e>; cpu-idle-states = <0x6f>; next-level-cache = <0x70>; xlnx,timestamp-clk-freq = <0x5f5dd19>; xlnx,psu-ep = <0x01>; xlnx,pss-ref-clk-freq = <0x1fc9f08>; stamp-frequency = <0x5f5dd19>; xlnx,cpu-1x-clk-freq-hz = <0x00>; xlnx,ip-name = "psu_cortexa53"; xlnx,psu-silicon-version = <0x03>; xlnx,psu-device = "PS8a"; xlnx,cpu-clk-freq-hz = <0x4f790c10>; bus-handle = <0x01>; cpu-frequency = <0x4f790c10>; }; l2-cache { phandle = <0x70>; compatible = "cache"; cache-level = <0x02>; cache-unified; }; idle-states { entry-method = "psci"; cpu-sleep-0 { phandle = <0x6f>; compatible = "arm,idle-state"; arm,psci-suspend-param = <0x40000000>; local-timer-stop; entry-latency-us = <0x12c>; exit-latency-us = <0x258>; min-residency-us = <0x2710>; }; }; }; opp-table-cpu { phandle = <0x6e>; compatible = "operating-points-v2"; opp-shared; opp-1334000000 { opp-hz = <0x00 0x4f833980>; clock-latency-ns = <0x7a120>; opp-microvolt = <0xf4240>; }; opp-667000000 { opp-hz = <0x00 0x27c19cc0>; clock-latency-ns = <0x7a120>; opp-microvolt = <0xf4240>; }; opp-444666667 { opp-hz = <0x00 0x1a81132b>; clock-latency-ns = <0x7a120>; opp-microvolt = <0xf4240>; }; opp-333500000 { opp-hz = <0x00 0x13e0ce60>; clock-latency-ns = <0x7a120>; opp-microvolt = <0xf4240>; }; }; zynqmp-ipi { phandle = <0xb4>; bootph-all; compatible = "xlnx,zynqmp-ipi-mailbox"; interrupt-parent = <0x0b>; interrupts = <0x00 0x23 0x04>; xlnx,ipi-id = <0x00>; #address-cells = <0x02>; #size-cells = <0x02>; ranges; mailbox@ff9905c0 { phandle = <0x8a>; bootph-all; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x04>; }; }; dcc { phandle = <0xb5>; compatible = "arm,dcc"; status = "disabled"; bootph-all; }; pmu { compatible = "arm,cortex-a53-pmu"; interrupt-parent = <0x0b>; interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04>; interrupt-affinity = <0x86 0x87 0x88 0x89>; }; psci { compatible = "arm,psci-0.2"; method = "smc"; }; firmware { zynqmp-firmware { phandle = <0x7a>; compatible = "xlnx,zynqmp-firmware"; #power-domain-cells = <0x01>; method = "smc"; bootph-all; power-management { phandle = <0xb6>; bootph-all; compatible = "xlnx,zynqmp-power"; interrupt-parent = <0x0b>; interrupts = <0x00 0x23 0x04>; mboxes = <0x8a 0x00 0x8a 0x01>; mbox-names = "tx\0rx"; }; soc-nvmem { compatible = "xlnx,zynqmp-nvmem-fw"; nvmem-layout { compatible = "fixed-layout"; #address-cells = <0x01>; #size-cells = <0x01>; soc-revision@0 { phandle = <0xb7>; reg = <0x00 0x04>; }; efuse-dna@c { phandle = <0xb8>; reg = <0x0c 0x0c>; }; efuse-usr0@20 { phandle = <0xb9>; reg = <0x20 0x04>; }; efuse-usr1@24 { phandle = <0xba>; reg = <0x24 0x04>; }; efuse-usr2@28 { phandle = <0xbb>; reg = <0x28 0x04>; }; efuse-usr3@2c { phandle = <0xbc>; reg = <0x2c 0x04>; }; efuse-usr4@30 { phandle = <0xbd>; reg = <0x30 0x04>; }; efuse-usr5@34 { phandle = <0xbe>; reg = <0x34 0x04>; }; efuse-usr6@38 { phandle = <0xbf>; reg = <0x38 0x04>; }; efuse-usr7@3c { phandle = <0xc0>; reg = <0x3c 0x04>; }; efuse-miscusr@40 { phandle = <0xc1>; reg = <0x40 0x04>; }; efuse-chash@50 { phandle = <0xc2>; reg = <0x50 0x04>; }; efuse-pufmisc@54 { phandle = <0xc3>; reg = <0x54 0x04>; }; efuse-sec@58 { phandle = <0xc4>; reg = <0x58 0x04>; }; efuse-spkid@5c { phandle = <0xc5>; reg = <0x5c 0x04>; }; efuse-aeskey@60 { phandle = <0xc6>; reg = <0x60 0x20>; }; efuse-ppk0hash@a0 { phandle = <0xc7>; reg = <0xa0 0x30>; }; efuse-ppk1hash@d0 { phandle = <0xc8>; reg = <0xd0 0x30>; }; efuse-pufuser@100 { phandle = <0xc9>; reg = <0x100 0x7f>; }; }; }; pcap { phandle = <0x90>; compatible = "xlnx,zynqmp-pcap-fpga"; }; reset-controller { phandle = <0x03>; compatible = "xlnx,zynqmp-reset"; #reset-cells = <0x01>; status = "okay"; }; pinctrl { phandle = <0x04>; compatible = "xlnx,zynqmp-pinctrl"; status = "okay"; uart1-default { phandle = <0xa1>; conf { groups = "uart1_9_grp"; slew-rate = <0x01>; power-source = <0x01>; drive-strength = <0x0c>; }; conf-rx { pins = "MIO37"; bias-high-impedance; }; conf-tx { pins = "MIO36"; bias-disable; output-enable; }; mux { groups = "uart1_9_grp"; function = "uart1"; }; }; i2c1-default { phandle = <0x99>; conf { groups = "i2c1_6_grp"; bias-pull-up; slew-rate = <0x01>; power-source = <0x01>; }; mux { groups = "i2c1_6_grp"; function = "i2c1"; }; }; i2c1-gpio-grp { phandle = <0x9a>; conf { groups = "gpio0_24_grp\0gpio0_25_grp"; slew-rate = <0x01>; power-source = <0x01>; }; mux { groups = "gpio0_24_grp\0gpio0_25_grp"; function = "gpio0"; }; }; gem1-default { phandle = <0x96>; conf { groups = "ethernet1_0_grp"; slew-rate = <0x01>; power-source = <0x01>; }; conf-rx { pins = "MIO44\0MIO46\0MIO48"; bias-high-impedance; low-power-disable; }; conf-bootstrap { pins = "MIO45\0MIO47\0MIO49"; bias-disable; output-enable; low-power-disable; }; conf-tx { pins = "MIO38\0MIO39\0MIO40\0MIO41\0MIO42\0MIO43"; bias-disable; output-enable; low-power-enable; }; conf-mdio { groups = "mdio1_0_grp"; slew-rate = <0x01>; power-source = <0x01>; bias-disable; output-enable; }; mux-mdio { function = "mdio1"; groups = "mdio1_0_grp"; }; mux { function = "ethernet1"; groups = "ethernet1_0_grp"; }; }; usb0-default { phandle = <0xa2>; conf { groups = "usb0_0_grp"; power-source = <0x01>; }; conf-rx { pins = "MIO52\0MIO53\0MIO55"; bias-high-impedance; drive-strength = <0x0c>; slew-rate = <0x00>; }; conf-tx { pins = "MIO54\0MIO56\0MIO57\0MIO58\0MIO59\0MIO60\0MIO61\0MIO62\0MIO63"; bias-disable; output-enable; drive-strength = <0x04>; slew-rate = <0x01>; }; mux { groups = "usb0_0_grp"; function = "usb0"; }; }; usb1-default { phandle = <0xa6>; conf { groups = "usb1_0_grp"; power-source = <0x01>; }; conf-rx { pins = "MIO64\0MIO65\0MIO67"; bias-high-impedance; drive-strength = <0x0c>; slew-rate = <0x00>; }; conf-tx { pins = "MIO66\0MIO68\0MIO69\0MIO70\0MIO71\0MIO72\0MIO73\0MIO74\0MIO75"; bias-disable; output-enable; drive-strength = <0x04>; slew-rate = <0x01>; }; mux { groups = "usb1_0_grp"; function = "usb1"; }; }; sdhci0-default { phandle = <0xa0>; conf { groups = "sdio0_0_grp"; slew-rate = <0x01>; power-source = <0x01>; bias-disable; }; mux { groups = "sdio0_0_grp"; function = "sdio0"; }; }; }; gpio { phandle = <0xca>; compatible = "xlnx,zynqmp-gpio-modepin"; gpio-controller; #gpio-cells = <0x02>; label = "modepin"; }; clock-controller { phandle = <0x71>; bootph-all; #clock-cells = <0x01>; compatible = "xlnx,zynqmp-clk"; clocks = <0x8b 0x8c 0x8d 0x8e 0x8f>; clock-names = "pss_ref_clk\0video_clk\0pss_alt_ref_clk\0aux_ref_clk\0gt_crx_ref_clk"; }; }; }; timer { compatible = "arm,armv8-timer"; interrupt-parent = <0x0b>; interrupts = <0x01 0x0d 0xf08 0x01 0x0e 0xf08 0x01 0x0b 0xf08 0x01 0x0a 0xf08>; }; fpga-region { phandle = <0xcb>; compatible = "fpga-region"; fpga-mgr = <0x90>; #address-cells = <0x02>; #size-cells = <0x02>; ranges; }; ams { compatible = "iio-hwmon"; io-channels = <0x1b 0x00 0x1b 0x01 0x1b 0x02 0x1b 0x03 0x1b 0x04 0x1b 0x05 0x1b 0x06 0x1b 0x07 0x1b 0x08 0x1b 0x09 0x1b 0x0a 0x1b 0x0b 0x1b 0x0c 0x1b 0x0d 0x1b 0x0e 0x1b 0x0f 0x1b 0x10 0x1b 0x11 0x1b 0x12 0x1b 0x13 0x1b 0x14 0x1b 0x15 0x1b 0x16 0x1b 0x17 0x1b 0x18 0x1b 0x19 0x1b 0x1a 0x1b 0x1b 0x1b 0x1c 0x1b 0x1d>; }; thermal-sensor-apu { phandle = <0x91>; compatible = "generic-adc-thermal"; #thermal-sensor-cells = <0x00>; io-channels = <0x1b 0x07>; io-channel-names = "sensor-channel"; }; thermal-sensor-rpu { phandle = <0x93>; compatible = "generic-adc-thermal"; #thermal-sensor-cells = <0x00>; io-channels = <0x1b 0x08>; io-channel-names = "sensor-channel"; }; thermal-sensor-pl { phandle = <0x94>; compatible = "generic-adc-thermal"; #thermal-sensor-cells = <0x00>; io-channels = <0x1b 0x14>; io-channel-names = "sensor-channel"; }; thermal-zones { apu-thermal { polling-delay-passive = <0x3e8>; polling-delay = <0x1388>; thermal-sensors = <0x91>; trips { passive { phandle = <0x92>; temperature = <0x16b48>; hysteresis = <0xdac>; type = "passive"; }; critical { phandle = <0xcc>; temperature = <0x178f4>; hysteresis = <0xdac>; type = "critical"; }; }; cooling-maps { map { trip = <0x92>; cooling-device = <0x86 0xffffffff 0xffffffff 0x87 0xffffffff 0xffffffff 0x88 0xffffffff 0xffffffff 0x89 0xffffffff 0xffffffff>; }; }; }; rpu-thermal { polling-delay = <0x2710>; thermal-sensors = <0x93>; trips { critical { temperature = <0x178f4>; hysteresis = <0xdac>; type = "critical"; }; }; }; pl-thermal { polling-delay = <0x2710>; thermal-sensors = <0x94>; trips { critical { temperature = <0x178f4>; hysteresis = <0xdac>; type = "critical"; }; }; }; }; axi { phandle = <0x01>; compatible = "simple-bus"; bootph-all; #address-cells = <0x02>; #size-cells = <0x02>; ranges; interrupt-parent = <0x0b>; can@ff060000 { phandle = <0xcd>; compatible = "xlnx,zynq-can-1.0"; status = "disabled"; clock-names = "can_clk\0pclk"; reg = <0x00 0xff060000 0x00 0x1000>; interrupts = <0x00 0x17 0x04>; interrupt-parent = <0x0b>; tx-fifo-depth = <0x40>; rx-fifo-depth = <0x40>; resets = <0x03 0x28>; power-domains = <0x7a 0x2f>; clocks = <0x71 0x3f 0x71 0x1f>; }; can@ff070000 { phandle = <0xce>; compatible = "xlnx,zynq-can-1.0"; status = "disabled"; clock-names = "can_clk\0pclk"; reg = <0x00 0xff070000 0x00 0x1000>; interrupts = <0x00 0x18 0x04>; interrupt-parent = <0x0b>; tx-fifo-depth = <0x40>; rx-fifo-depth = <0x40>; resets = <0x03 0x29>; power-domains = <0x7a 0x30>; clocks = <0x71 0x40 0x71 0x1f>; }; cci@fd6e0000 { phandle = <0xcf>; compatible = "arm,cci-400"; status = "disabled"; reg = <0x00 0xfd6e0000 0x00 0x9000>; ranges = <0x00 0x00 0xfd6e0000 0x10000>; #address-cells = <0x01>; #size-cells = <0x01>; pmu@9000 { compatible = "arm,cci-400-pmu,r1"; reg = <0x9000 0x5000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04 0x00 0x7b 0x04>; }; }; debug@fec10000 { phandle = <0xd0>; compatible = "arm,coresight-cpu-debug\0arm,primecell"; reg = <0x00 0xfec10000 0x00 0x1000>; clock-names = "apb_pclk"; cpu = <0x86>; status = "disabled"; clocks = <0x71 0x0c>; }; debug@fed10000 { phandle = <0xd1>; compatible = "arm,coresight-cpu-debug\0arm,primecell"; reg = <0x00 0xfed10000 0x00 0x1000>; clock-names = "apb_pclk"; cpu = <0x87>; status = "disabled"; clocks = <0x71 0x0c>; }; debug@fee10000 { phandle = <0xd2>; compatible = "arm,coresight-cpu-debug\0arm,primecell"; reg = <0x00 0xfee10000 0x00 0x1000>; clock-names = "apb_pclk"; cpu = <0x88>; status = "disabled"; clocks = <0x71 0x0c>; }; debug@fef10000 { phandle = <0xd3>; compatible = "arm,coresight-cpu-debug\0arm,primecell"; reg = <0x00 0xfef10000 0x00 0x1000>; clock-names = "apb_pclk"; cpu = <0x89>; status = "disabled"; clocks = <0x71 0x0c>; }; dma-controller@fd500000 { phandle = <0x3c>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd500000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x7c 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; dma-controller@fd510000 { phandle = <0x3d>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd510000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x7d 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; dma-controller@fd520000 { phandle = <0x3e>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd520000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x7e 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; dma-controller@fd530000 { phandle = <0x3f>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd530000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x7f 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; dma-controller@fd540000 { phandle = <0x40>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd540000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x80 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; dma-controller@fd550000 { phandle = <0x41>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd550000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x81 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; dma-controller@fd560000 { phandle = <0x42>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd560000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x82 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; dma-controller@fd570000 { phandle = <0x43>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xfd570000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x83 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x80>; power-domains = <0x7a 0x2a>; clocks = <0x71 0x13 0x71 0x1f>; xlnx,ip-name = "psu_gdma"; xlnx,dma-mode = <0x00>; xlnx,dma-type = <0x00>; }; gpu@fd4b0000 { phandle = <0x45>; status = "okay"; compatible = "xlnx,zynqmp-mali\0arm,mali-400"; reg = <0x00 0xfd4b0000 0x00 0x10000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04 0x00 0x84 0x04>; interrupt-names = "gp\0gpmmu\0pp0\0ppmmu0\0pp1\0ppmmu1"; clock-names = "bus\0core"; power-domains = <0x7a 0x3a>; clocks = <0x71 0x18 0x71 0x19>; xlnx,ip-name = "psu_gpu"; xlnx,tz-nonsecure = <0x01>; }; dma-controller@ffa80000 { phandle = <0x0c>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffa80000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x4d 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; dma-controller@ffa90000 { phandle = <0x0d>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffa90000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x4e 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; dma-controller@ffaa0000 { phandle = <0x0e>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffaa0000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x4f 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; dma-controller@ffab0000 { phandle = <0x0f>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffab0000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x50 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; dma-controller@ffac0000 { phandle = <0x10>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffac0000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x51 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; dma-controller@ffad0000 { phandle = <0x11>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffad0000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x52 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; dma-controller@ffae0000 { phandle = <0x12>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffae0000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x53 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; dma-controller@ffaf0000 { phandle = <0x13>; status = "okay"; compatible = "xlnx,zynqmp-dma-1.0"; reg = <0x00 0xffaf0000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x54 0x04>; clock-names = "clk_main\0clk_apb"; #dma-cells = <0x01>; xlnx,bus-width = <0x40>; power-domains = <0x7a 0x2b>; clocks = <0x71 0x44 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,ip-name = "psu_adma"; xlnx,dma-mode = <0x01>; xlnx,dma-type = <0x01>; }; memory-controller@fd070000 { phandle = <0x31>; compatible = "xlnx,zynqmp-ddrc-2.40a"; reg = <0x00 0xfd070000 0x00 0x30000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x70 0x04>; xlnx,bank-addr-bits = <0x02>; xlnx,ddrc-parity = <0x00>; xlnx,addr-mapping = <0x00>; xlnx,has-ecc = <0x00>; xlnx,ddr-freq = <0x3f93e105>; xlnx,row-addr-bits = <0x10>; xlnx,ddrc-low-power-auto-self-refresh = <0x00>; xlnx,ip-name = "psu_ddrc"; xlnx,ddrc-2nd-clock = <0x00>; xlnx,brc-mapping = <0x00>; xlnx,ddrc-address-copy = <0x00>; xlnx,ddrc-data-mask-and-dbi = <0x07>; xlnx,ddrc-fine-granularity-refresh-mode = <0x00>; xlnx,ddrc-memory-type = <0x04>; xlnx,col-addr-bits = <0x0a>; xlnx,ddrc-self-refresh-abort = <0x00>; xlnx,ddrc-max-operating-temparature = <0x00>; status = "okay"; xlnx,ddrc-address-mirroring = <0x00>; xlnx,ddrc-clk-freq-hz = <0x1fc9f082>; xlnx,qos-enable = <0x00>; xlnx,ddrc-temp-controlled-refresh = <0x00>; xlnx,bg-addr-bits = <0x01>; xlnx,ddrc-power-down-enable = <0x00>; xlnx,video-buf-size = <0x00>; xlnx,ddrc-memory-address-map = <0x00>; xlnx,dddrc-ecc = <0x00>; xlnx,ddrc-clock-stop = <0x00>; xlnx,ddrc-dynamic-ddr-config-enabled = <0x00>; }; nand-controller@ff100000 { phandle = <0xd4>; compatible = "xlnx,zynqmp-nand-controller\0arasan,nfc-v3p10"; status = "disabled"; reg = <0x00 0xff100000 0x00 0x1000>; clock-names = "controller\0bus"; interrupt-parent = <0x0b>; interrupts = <0x00 0x0e 0x04>; #address-cells = <0x01>; #size-cells = <0x00>; power-domains = <0x7a 0x2c>; clocks = <0x71 0x3c 0x71 0x1f>; }; ethernet@ff0b0000 { phandle = <0x35>; compatible = "xlnx,zynqmp-gem\0cdns,gem"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x39 0x04 0x00 0x39 0x04>; reg = <0x00 0xff0b0000 0x00 0x1000>; clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk"; power-domains = <0x7a 0x1d>; resets = <0x03 0x1d>; reset-names = "gem0_rst"; clocks = <0x71 0x1f 0x71 0x68 0x71 0x2d 0x71 0x31 0x71 0x2c>; assigned-clocks = <0x71 0x2c>; xlnx,is-cache-coherent = <0x00>; xlnx,has-mdio = <0x2faf080>; xlnx,gem-board-interface = "custom"; phy-mode = "sgmii"; xlnx,tz-nonsecure = <0x01>; xlnx,enet-slcr-1000mbps-div0 = <0x08>; xlnx,enet-slcr-10mbps-div0 = <0x32>; xlnx,enet-slcr-1000mbps-div1 = <0x01>; xlnx,enet-slcr-10mbps-div1 = <0x08>; xlnx,enet-tsu-clk-freq-hz = <0xee6a8ba>; xlnx,ip-name = "psu_ethernet"; xlnx,eth-mode = <0x02>; xlnx,enet-reset = <0x2faf080>; xlnx,enet-clk-freq-hz = <0x773545d>; xlnx,enet-slcr-100mbps-div0 = <0x28>; xlnx,ptp-enet-clock = <0x00>; xlnx,enet-slcr-100mbps-div1 = <0x01>; phys = <0x5e 0x00 0x08 0x00 0x00>; phy-handle = <0x95>; assigned-clock-rates = <0xee6b280>; }; ethernet@ff0c0000 { phandle = <0x36>; compatible = "xlnx,zynqmp-gem\0cdns,gem"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x3b 0x04 0x00 0x3b 0x04>; reg = <0x00 0xff0c0000 0x00 0x1000>; clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk"; power-domains = <0x7a 0x1e>; resets = <0x03 0x1e>; reset-names = "gem1_rst"; clocks = <0x71 0x1f 0x71 0x69 0x71 0x2e 0x71 0x32 0x71 0x2c>; assigned-clocks = <0x71 0x2c>; xlnx,is-cache-coherent = <0x00>; xlnx,has-mdio = <0x2faf080>; xlnx,gem-board-interface = "custom"; phy-mode = "rgmii-id"; xlnx,tz-nonsecure = <0x01>; xlnx,enet-slcr-1000mbps-div0 = <0x08>; xlnx,enet-slcr-10mbps-div0 = <0x32>; xlnx,enet-slcr-1000mbps-div1 = <0x01>; xlnx,enet-slcr-10mbps-div1 = <0x08>; xlnx,enet-tsu-clk-freq-hz = <0xee6a8ba>; xlnx,ip-name = "psu_ethernet"; xlnx,eth-mode = <0x01>; xlnx,enet-reset = <0x2faf080>; xlnx,enet-clk-freq-hz = <0x773545d>; xlnx,enet-slcr-100mbps-div0 = <0x28>; xlnx,ptp-enet-clock = <0x00>; xlnx,enet-slcr-100mbps-div1 = <0x01>; pinctrl-names = "default"; pinctrl-0 = <0x96>; phy-handle = <0x97>; assigned-clock-rates = <0xee6b280>; mdio { phandle = <0xd5>; #address-cells = <0x01>; #size-cells = <0x00>; ethernet-phy@4 { phandle = <0x95>; #phy-cells = <0x01>; compatible = "ethernet-phy-id2000.a231"; reg = <0x04>; ti,rx-internal-delay = <0x08>; ti,tx-internal-delay = <0x0a>; ti,fifo-depth = <0x01>; ti,dp83867-rxctrl-strap-quirk; reset-assert-us = <0x12c>; reset-deassert-us = <0x118>; reset-gpios = <0x98 0x05 0x01>; }; ethernet-phy@8 { phandle = <0x97>; #phy-cells = <0x01>; compatible = "ethernet-phy-id2000.a231"; reg = <0x08>; ti,rx-internal-delay = <0x08>; ti,tx-internal-delay = <0x0a>; ti,fifo-depth = <0x01>; ti,dp83867-rxctrl-strap-quirk; reset-assert-us = <0x64>; reset-deassert-us = <0x118>; reset-gpios = <0x98 0x06 0x01>; }; }; }; ethernet@ff0d0000 { phandle = <0xd6>; compatible = "xlnx,zynqmp-gem\0cdns,gem"; status = "disabled"; interrupt-parent = <0x0b>; interrupts = <0x00 0x3d 0x04 0x00 0x3d 0x04>; reg = <0x00 0xff0d0000 0x00 0x1000>; clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk"; power-domains = <0x7a 0x1f>; resets = <0x03 0x1f>; reset-names = "gem2_rst"; clocks = <0x71 0x1f 0x71 0x6a 0x71 0x2f 0x71 0x33 0x71 0x2c>; assigned-clocks = <0x71 0x2c>; }; ethernet@ff0e0000 { phandle = <0xd7>; compatible = "xlnx,zynqmp-gem\0cdns,gem"; status = "disabled"; interrupt-parent = <0x0b>; interrupts = <0x00 0x3f 0x04 0x00 0x3f 0x04>; reg = <0x00 0xff0e0000 0x00 0x1000>; clock-names = "pclk\0hclk\0tx_clk\0rx_clk\0tsu_clk"; power-domains = <0x7a 0x20>; resets = <0x03 0x20>; reset-names = "gem3_rst"; clocks = <0x71 0x1f 0x71 0x6b 0x71 0x30 0x71 0x34 0x71 0x2c>; assigned-clocks = <0x71 0x2c>; }; gpio@ff0a0000 { phandle = <0x44>; compatible = "xlnx,zynqmp-gpio-1.0"; status = "okay"; #gpio-cells = <0x02>; gpio-controller; interrupt-parent = <0x0b>; interrupts = <0x00 0x10 0x04>; interrupt-controller; #interrupt-cells = <0x02>; reg = <0x00 0xff0a0000 0x00 0x1000>; power-domains = <0x7a 0x2e>; clocks = <0x71 0x1f>; xlnx,gpio-board-interface = "custom"; xlnx,mio-gpio-mask = <0x5600>; gpio-mask-high = <0x00>; xlnx,emio-gpio-width = <0x20>; xlnx,ip-name = "psu_gpio"; gpio-mask-low = <0x5600>; emio-gpio-width = <0x20>; gpio-line-names = "QSPI_CLK\0QSPI_DQ1\0QSPI_DQ2\0QSPI_DQ3\0QSPI_DQ0\0QSPI_CS_B\0SPI_CLK\0LED1\0LED2\0SPI_CS_B\0SPI_MISO\0SPI_MOSI\0FWUEN\0EMMC_DAT0\0EMMC_DAT1\0EMMC_DAT2\0EMMC_DAT3\0EMMC_DAT4\0EMMC_DAT5\0EMMC_DAT6\0EMMC_DAT7\0EMMC_CMD\0EMMC_CLK\0EMMC_RST\0I2C1_SCL\0I2C1_SDA\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; }; i2c@ff020000 { phandle = <0xd8>; compatible = "cdns,i2c-r1p14"; status = "disabled"; interrupt-parent = <0x0b>; interrupts = <0x00 0x11 0x04>; clock-frequency = <0x61a80>; reg = <0x00 0xff020000 0x00 0x1000>; #address-cells = <0x01>; #size-cells = <0x00>; power-domains = <0x7a 0x25>; clocks = <0x71 0x3d>; }; i2c@ff030000 { phandle = <0x46>; compatible = "cdns,i2c-r1p14"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x12 0x04>; clock-frequency = <0x61a80>; reg = <0x00 0xff030000 0x00 0x1000>; #address-cells = <0x01>; #size-cells = <0x00>; power-domains = <0x7a 0x26>; clocks = <0x71 0x3e>; xlnx,i2c-reset = <0x00>; xlnx,has-interrupt = <0x2faf080>; xlnx,clock-freq = <0x5f5dd19>; xlnx,i2c-clk-freq-hz = <0x5f5dd19>; xlnx,ip-name = "psu_i2c"; xlnx,iic-board-interface = "custom"; pinctrl-names = "default\0gpio"; pinctrl-0 = <0x99>; pinctrl-1 = <0x9a>; scl-gpios = <0x44 0x18 0x00>; sda-gpios = <0x44 0x19 0x00>; u-boot,dm-pre-reloc; ina260@40 { phandle = <0xab>; compatible = "ti,ina260"; #io-channel-cells = <0x01>; label = "ina260-u14"; reg = <0x40>; }; gpio@11 { phandle = <0x98>; compatible = "dlg,slg7xl45106"; reg = <0x11>; label = "resetchip"; gpio-controller; #gpio-cells = <0x02>; gpio-line-names = "USB0_PHY_RESET_B\0USB1_PHY_RESET_B\0SD_RESET_B\0USB0_HUB_RESET_B\0USB1_HUB_RESET_B\0PS_GEM0_RESET_B\0PS_GEM1_RESET_B\0"; }; i2c-mux@74 { compatible = "nxp,pca9546"; #address-cells = <0x01>; #size-cells = <0x00>; reg = <0x74>; i2c@0 { phandle = <0xd9>; #address-cells = <0x01>; #size-cells = <0x00>; reg = <0x00>; usb-hub@2d { phandle = <0xa4>; compatible = "microchip,usb5744"; reg = <0x2d>; }; }; i2c@1 { phandle = <0xda>; #address-cells = <0x01>; #size-cells = <0x00>; reg = <0x01>; usb-hub@2d { phandle = <0xa8>; compatible = "microchip,usb5744"; reg = <0x2d>; }; }; }; eeprom@50 { phandle = <0xdb>; u-boot,dm-pre-reloc; compatible = "st,24c64\0atmel,24c64"; reg = <0x50>; }; eeprom@51 { phandle = <0xdc>; u-boot,dm-pre-reloc; compatible = "st,24c64\0atmel,24c64"; reg = <0x51>; }; pmic@33 { phandle = <0xdd>; compatible = "dlg,da9131"; reg = <0x33>; regulators { buck1 { phandle = <0xde>; regulator-name = "da9131_buck1"; regulator-boot-on; regulator-always-on; }; buck2 { phandle = <0xdf>; regulator-name = "da9131_buck2"; regulator-boot-on; regulator-always-on; }; }; }; pmic@32 { phandle = <0xe0>; compatible = "dlg,da9130"; reg = <0x32>; regulators { buck1 { phandle = <0xe1>; regulator-name = "da9130_buck1"; regulator-boot-on; regulator-always-on; }; }; }; }; memory-controller@ff960000 { phandle = <0x51>; compatible = "xlnx,zynqmp-ocmc-1.0"; reg = <0x00 0xff960000 0x00 0x1000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x0a 0x04>; status = "okay"; xlnx,ip-name = "psu_ocm"; }; perf-monitor@ffa00000 { phandle = <0x1d>; compatible = "xlnx,axi-perf-monitor"; status = "okay"; reg = <0x00 0xffa00000 0x00 0x10000>; interrupts = <0x00 0x19 0x04>; interrupt-parent = <0x0b>; xlnx,enable-profile = <0x00>; xlnx,enable-trace = <0x00>; xlnx,num-monitor-slots = <0x01>; xlnx,enable-event-count = <0x01>; xlnx,enable-event-log = <0x00>; xlnx,have-sampled-metric-cnt = <0x01>; xlnx,num-of-counters = <0x03>; xlnx,metric-count-width = <0x20>; xlnx,metrics-sample-count-width = <0x20>; xlnx,global-count-width = <0x20>; xlnx,metric-count-scale = <0x01>; clocks = <0x71 0x1f>; xlnx,enable-32bit-filter-id = <0x01>; xlnx,ip-name = "psu_apm"; xlnx,fifo-axis-tid-width = <0x01>; xlnx,enable-advanced = <0x01>; xlnx,can-clk-freq-hz = <0x2faf080>; xlnx,fifo-axis-tdata-width = <0x38>; xlnx,fifo-axis-depth = <0x20>; }; perf-monitor@fd0b0000 { phandle = <0x1c>; compatible = "xlnx,axi-perf-monitor"; status = "okay"; reg = <0x00 0xfd0b0000 0x00 0x10000>; interrupts = <0x00 0x7b 0x04>; interrupt-parent = <0x0b>; xlnx,enable-profile = <0x00>; xlnx,enable-trace = <0x00>; xlnx,num-monitor-slots = <0x06>; xlnx,enable-event-count = <0x01>; xlnx,enable-event-log = <0x00>; xlnx,have-sampled-metric-cnt = <0x01>; xlnx,num-of-counters = <0x0a>; xlnx,metric-count-width = <0x20>; xlnx,metrics-sample-count-width = <0x20>; xlnx,global-count-width = <0x20>; xlnx,metric-count-scale = <0x01>; clocks = <0x71 0x1c>; xlnx,enable-32bit-filter-id = <0x01>; xlnx,ip-name = "psu_apm"; xlnx,fifo-axis-tid-width = <0x01>; xlnx,enable-advanced = <0x01>; xlnx,can-clk-freq-hz = <0x2faf080>; xlnx,fifo-axis-tdata-width = <0x38>; xlnx,fifo-axis-depth = <0x20>; }; perf-monitor@fd490000 { phandle = <0x1f>; compatible = "xlnx,axi-perf-monitor"; status = "okay"; reg = <0x00 0xfd490000 0x00 0x10000>; interrupts = <0x00 0x7b 0x04>; interrupt-parent = <0x0b>; xlnx,enable-profile = <0x00>; xlnx,enable-trace = <0x00>; xlnx,num-monitor-slots = <0x01>; xlnx,enable-event-count = <0x01>; xlnx,enable-event-log = <0x00>; xlnx,have-sampled-metric-cnt = <0x01>; xlnx,num-of-counters = <0x03>; xlnx,metric-count-width = <0x20>; xlnx,metrics-sample-count-width = <0x20>; xlnx,global-count-width = <0x20>; xlnx,metric-count-scale = <0x01>; clocks = <0x71 0x1c>; xlnx,enable-32bit-filter-id = <0x01>; xlnx,ip-name = "psu_apm"; xlnx,fifo-axis-tid-width = <0x01>; xlnx,enable-advanced = <0x01>; xlnx,can-clk-freq-hz = <0x2faf080>; xlnx,fifo-axis-tdata-width = <0x38>; xlnx,fifo-axis-depth = <0x20>; }; perf-monitor@ffa10000 { phandle = <0x1e>; compatible = "xlnx,axi-perf-monitor"; status = "okay"; reg = <0x00 0xffa10000 0x00 0x10000>; interrupts = <0x00 0x19 0x04>; interrupt-parent = <0x0b>; xlnx,enable-profile = <0x00>; xlnx,enable-trace = <0x00>; xlnx,num-monitor-slots = <0x01>; xlnx,enable-event-count = <0x01>; xlnx,enable-event-log = <0x00>; xlnx,have-sampled-metric-cnt = <0x01>; xlnx,num-of-counters = <0x03>; xlnx,metric-count-width = <0x20>; xlnx,metrics-sample-count-width = <0x20>; xlnx,global-count-width = <0x20>; xlnx,metric-count-scale = <0x01>; clocks = <0x71 0x1f>; xlnx,enable-32bit-filter-id = <0x01>; xlnx,ip-name = "psu_apm"; xlnx,fifo-axis-tid-width = <0x01>; xlnx,enable-advanced = <0x01>; xlnx,can-clk-freq-hz = <0x2faf080>; xlnx,fifo-axis-tdata-width = <0x38>; xlnx,fifo-axis-depth = <0x20>; }; pcie@fd0e0000 { phandle = <0x9b>; compatible = "xlnx,nwl-pcie-2.11"; status = "disabled"; #address-cells = <0x03>; #size-cells = <0x02>; #interrupt-cells = <0x01>; msi-controller; device_type = "pci"; interrupt-parent = <0x0b>; interrupts = <0x00 0x76 0x04 0x00 0x75 0x04 0x00 0x74 0x04 0x00 0x73 0x04 0x00 0x72 0x04>; interrupt-names = "misc\0dummy\0intx\0msi1\0msi0"; msi-parent = <0x9b>; reg = <0x00 0xfd0e0000 0x00 0x1000 0x00 0xfd480000 0x00 0x1000 0x80 0x00 0x00 0x10000000>; reg-names = "breg\0pcireg\0cfg"; ranges = <0x2000000 0x00 0xe0000000 0x00 0xe0000000 0x00 0x10000000 0x43000000 0x06 0x00 0x06 0x00 0x02 0x00>; bus-range = <0x00 0xff>; interrupt-map-mask = <0x00 0x00 0x00 0x07>; interrupt-map = <0x00 0x00 0x00 0x01 0x9c 0x01 0x00 0x00 0x00 0x02 0x9c 0x02 0x00 0x00 0x00 0x03 0x9c 0x03 0x00 0x00 0x00 0x04 0x9c 0x04>; power-domains = <0x7a 0x3b>; clocks = <0x71 0x17>; legacy-interrupt-controller { phandle = <0x9c>; interrupt-controller; #address-cells = <0x00>; #interrupt-cells = <0x01>; }; }; spi@ff0f0000 { phandle = <0x54>; bootph-all; compatible = "xlnx,zynqmp-qspi-1.0"; status = "okay"; clock-names = "ref_clk\0pclk"; interrupts = <0x00 0x0f 0x04>; interrupt-parent = <0x0b>; num-cs = <0x01>; reg = <0x00 0xff0f0000 0x00 0x1000 0x00 0xc0000000 0x00 0x8000000>; #address-cells = <0x01>; #size-cells = <0x00>; power-domains = <0x7a 0x2d>; clocks = <0x71 0x35 0x71 0x1f>; xlnx,is-cache-coherent = <0x00>; xlnx,qspi-fbclk = <0x00>; xlnx,tz-nonsecure = <0x01>; xlnx,qspi-clk-freq-hz = <0x773545d>; xlnx,bus-width = <0x02>; xlnx,ip-name = "psu_qspi"; xlnx,qspi-board-interface = "custom"; spi-rx-bus-width = <0x04>; xlnx,connection-mode = <0x00>; spi-tx-bus-width = <0x04>; xlnx,clock-freq = <0x773545d>; xlnx,fb-clk = <0x01>; xlnx,qspi-mode = <0x00>; xlnx,qspi-bus-width = <0x02>; is-dual = <0x00>; flash@0 { phandle = <0xe2>; compatible = "mt25qu512a\0jedec,spi-nor"; #address-cells = <0x01>; #size-cells = <0x01>; reg = <0x00>; spi-tx-bus-width = <0x04>; spi-rx-bus-width = <0x04>; spi-max-frequency = <0x2625a00>; partitions { compatible = "fixed-partitions"; #address-cells = <0x01>; #size-cells = <0x01>; partition@0 { label = "Image Selector"; reg = <0x00 0x80000>; read-only; lock; }; partition@80000 { label = "Image Selector Golden"; reg = <0x80000 0x80000>; read-only; lock; }; partition@100000 { label = "Persistent Register"; reg = <0x100000 0x20000>; }; partition@120000 { label = "Persistent Register Backup"; reg = <0x120000 0x20000>; }; partition@140000 { label = "Open_1"; reg = <0x140000 0xc0000>; }; partition@200000 { label = "Image A (FSBL, PMU, ATF, U-Boot)"; reg = <0x200000 0xd00000>; }; partition@f00000 { label = "ImgSel Image A Catch"; reg = <0xf00000 0x80000>; read-only; lock; }; partition@f80000 { label = "Image B (FSBL, PMU, ATF, U-Boot)"; reg = <0xf80000 0xd00000>; }; partition@1c80000 { label = "ImgSel Image B Catch"; reg = <0x1c80000 0x80000>; read-only; lock; }; partition@1d00000 { label = "Open_2"; reg = <0x1d00000 0x100000>; }; partition@1e00000 { label = "Recovery Image"; reg = <0x1e00000 0x200000>; read-only; lock; }; partition@2000000 { label = "Recovery Image Backup"; reg = <0x2000000 0x200000>; read-only; lock; }; partition@2200000 { label = "U-Boot storage variables"; reg = <0x2200000 0x20000>; }; partition@2220000 { label = "U-Boot storage variables backup"; reg = <0x2220000 0x20000>; }; partition@2240000 { label = "SHA256"; reg = <0x2240000 0x40000>; read-only; lock; }; partition@2280000 { label = "Secure OS Storage"; reg = <0x2280000 0x20000>; }; partition@22A0000 { label = "User"; reg = <0x22a0000 0x1d60000>; }; }; partition@0 { label = "qspi-boot"; reg = <0x00 0x100000>; }; partition@1 { label = "qspi-kernel"; reg = <0x100000 0x1600000>; }; partition@2 { label = "qspi-bootenv"; reg = <0x1700000 0x40000>; }; }; }; phy@fd400000 { phandle = <0x5e>; compatible = "xlnx,zynqmp-psgtr-v1.1"; status = "okay"; reg = <0x00 0xfd400000 0x00 0x40000 0x00 0xfd3d0000 0x00 0x1000>; reg-names = "serdes\0siou"; #phy-cells = <0x04>; xlnx,ip-name = "psu_serdes"; clocks = <0x9d 0x9e 0x9f>; clock-names = "ref0\0ref1\0ref2"; }; rtc@ffa60000 { phandle = <0x5d>; compatible = "xlnx,zynqmp-rtc"; status = "okay"; reg = <0x00 0xffa60000 0x00 0x100>; interrupt-parent = <0x0b>; interrupts = <0x00 0x1a 0x04 0x00 0x1b 0x04>; interrupt-names = "alarm\0sec"; calibration = <0x7fff>; xlnx,ip-name = "psu_rtc"; }; ahci@fd0c0000 { phandle = <0xe3>; compatible = "ceva,ahci-1v84"; status = "disabled"; reg = <0x00 0xfd0c0000 0x00 0x2000>; interrupt-parent = <0x0b>; interrupts = <0x00 0x85 0x04>; power-domains = <0x7a 0x1c>; resets = <0x03 0x10>; clocks = <0x71 0x16>; }; mmc@ff160000 { phandle = <0xe4>; bootph-all; compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a"; status = "disabled"; interrupt-parent = <0x0b>; interrupts = <0x00 0x30 0x04>; reg = <0x00 0xff160000 0x00 0x1000>; clock-names = "clk_xin\0clk_ahb"; #clock-cells = <0x01>; clock-output-names = "clk_out_sd0\0clk_in_sd0"; power-domains = <0x7a 0x27>; resets = <0x03 0x26>; clocks = <0x71 0x36 0x71 0x1f>; assigned-clocks = <0x71 0x36>; pinctrl-names = "default"; pinctrl-0 = <0xa0>; non-removable; disable-wp; bus-width = <0x08>; xlnx,mio-bank = <0x00>; assigned-clock-rates = <0xb2cfe8b>; }; mmc@ff170000 { phandle = <0xe5>; bootph-all; compatible = "xlnx,zynqmp-8.9a\0arasan,sdhci-8.9a"; status = "disabled"; interrupt-parent = <0x0b>; interrupts = <0x00 0x31 0x04>; reg = <0x00 0xff170000 0x00 0x1000>; clock-names = "clk_xin\0clk_ahb"; #clock-cells = <0x01>; clock-output-names = "clk_out_sd1\0clk_in_sd1"; power-domains = <0x7a 0x28>; resets = <0x03 0x27>; clocks = <0x71 0x37 0x71 0x1f>; assigned-clocks = <0x71 0x37>; }; iommu@fd800000 { phandle = <0x60>; compatible = "arm,mmu-500"; reg = <0x00 0xfd800000 0x00 0x20000>; #iommu-cells = <0x01>; status = "okay"; #global-interrupts = <0x01>; interrupt-parent = <0x0b>; interrupts = <0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04 0x00 0x9b 0x04>; xlnx,ip-name = "psu_smmu_gpv"; }; spi@ff040000 { phandle = <0xe6>; compatible = "cdns,spi-r1p6"; status = "disabled"; interrupt-parent = <0x0b>; interrupts = <0x00 0x13 0x04>; reg = <0x00 0xff040000 0x00 0x1000>; clock-names = "ref_clk\0pclk"; #address-cells = <0x01>; #size-cells = <0x00>; power-domains = <0x7a 0x23>; clocks = <0x71 0x3a 0x71 0x1f>; }; spi@ff050000 { phandle = <0x62>; compatible = "cdns,spi-r1p6"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x14 0x04>; reg = <0x00 0xff050000 0x00 0x1000>; clock-names = "ref_clk\0pclk"; #address-cells = <0x01>; #size-cells = <0x00>; power-domains = <0x7a 0x24>; clocks = <0x71 0x3b 0x71 0x1f>; xlnx,spi-board-interface = "custom"; xlnx,has-ss0 = <0x01>; xlnx,ip-name = "psu_spi"; xlnx,has-ss1 = <0x00>; num-cs = <0x01>; xlnx,spi-clk-freq-hz = <0xbebba31>; xlnx,has-ss2 = <0x00>; label = "TPM"; tpm@0 { compatible = "infineon,slb9670\0tcg,tpm_tis-spi"; reg = <0x00>; spi-max-frequency = <0x11a49a0>; }; }; timer@ff110000 { phandle = <0x63>; compatible = "cdns,ttc"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x24 0x04 0x00 0x25 0x04 0x00 0x26 0x04>; reg = <0x00 0xff110000 0x00 0x1000>; timer-width = <0x20>; power-domains = <0x7a 0x18>; clocks = <0x71 0x1f>; xlnx,ttc-board-interface = "custom"; xlnx,ttc-clk2-freq-hz = <0x5f5e100>; xlnx,clock-freq = <0x5f5e100>; xlnx,ip-name = "psu_ttc"; xlnx,ttc-clk0-freq-hz = <0x5f5e100>; xlnx,ttc-clk1-freq-hz = <0x5f5e100>; #pwm-cells = <0x03>; }; timer@ff120000 { phandle = <0x64>; compatible = "cdns,ttc"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x27 0x04 0x00 0x28 0x04 0x00 0x29 0x04>; reg = <0x00 0xff120000 0x00 0x1000>; timer-width = <0x20>; power-domains = <0x7a 0x19>; clocks = <0x71 0x1f>; xlnx,ttc-board-interface = "custom"; xlnx,ttc-clk2-freq-hz = <0x5f5e100>; xlnx,clock-freq = <0x5f5e100>; xlnx,ip-name = "psu_ttc"; xlnx,ttc-clk0-freq-hz = <0x5f5e100>; xlnx,ttc-clk1-freq-hz = <0x5f5e100>; }; timer@ff130000 { phandle = <0x65>; compatible = "cdns,ttc"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x2a 0x04 0x00 0x2b 0x04 0x00 0x2c 0x04>; reg = <0x00 0xff130000 0x00 0x1000>; timer-width = <0x20>; power-domains = <0x7a 0x1a>; clocks = <0x71 0x1f>; xlnx,ttc-board-interface = "custom"; xlnx,ttc-clk2-freq-hz = <0x5f5e100>; xlnx,clock-freq = <0x5f5e100>; xlnx,ip-name = "psu_ttc"; xlnx,ttc-clk0-freq-hz = <0x5f5e100>; xlnx,ttc-clk1-freq-hz = <0x5f5e100>; }; timer@ff140000 { phandle = <0x66>; compatible = "cdns,ttc"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x2d 0x04 0x00 0x2e 0x04 0x00 0x2f 0x04>; reg = <0x00 0xff140000 0x00 0x1000>; timer-width = <0x20>; power-domains = <0x7a 0x1b>; clocks = <0x71 0x1f>; xlnx,ttc-board-interface = "custom"; xlnx,ttc-clk2-freq-hz = <0x5f5e100>; xlnx,clock-freq = <0x5f5e100>; xlnx,ip-name = "psu_ttc"; xlnx,ttc-clk0-freq-hz = <0x5f5e100>; xlnx,ttc-clk1-freq-hz = <0x5f5e100>; }; serial@ff000000 { phandle = <0xe7>; bootph-all; compatible = "xlnx,zynqmp-uart\0cdns,uart-r1p12"; status = "disabled"; interrupt-parent = <0x0b>; interrupts = <0x00 0x15 0x04>; reg = <0x00 0xff000000 0x00 0x1000>; clock-names = "uart_clk\0pclk"; power-domains = <0x7a 0x21>; resets = <0x03 0x22>; clocks = <0x71 0x38 0x71 0x1f>; assigned-clocks = <0x71 0x38>; }; serial@ff010000 { phandle = <0x67>; bootph-all; compatible = "xlnx,zynqmp-uart\0cdns,uart-r1p12"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x16 0x04>; reg = <0x00 0xff010000 0x00 0x1000>; clock-names = "uart_clk\0pclk"; power-domains = <0x7a 0x22>; resets = <0x03 0x23>; clocks = <0x71 0x39 0x71 0x1f>; assigned-clocks = <0x71 0x39>; xlnx,clock-freq = <0x5f5dd19>; u-boot,dm-pre-reloc; xlnx,uart-board-interface = "custom"; xlnx,has-modem = <0x00>; xlnx,ip-name = "psu_uart"; xlnx,baudrate = <0x1c200>; cts-override; port-number = <0x00>; xlnx,uart-clk-freq-hz = <0x5f5dd19>; pinctrl-names = "default"; pinctrl-0 = <0xa1>; }; usb@ff9d0000 { phandle = <0x68>; #address-cells = <0x02>; #size-cells = <0x02>; status = "okay"; compatible = "xlnx,zynqmp-dwc3"; reg = <0x00 0xff9d0000 0x00 0x100>; clock-names = "bus_clk\0ref_clk"; power-domains = <0x7a 0x16>; resets = <0x03 0x3b 0x03 0x3d 0x03 0x3f>; reset-names = "usb_crst\0usb_hibrst\0usb_apbrst"; reset-gpios = <0x98 0x00 0x01>; ranges; clocks = <0x71 0x20 0x71 0x22>; assigned-clocks = <0x71 0x20 0x71 0x22>; xlnx,is-cache-coherent = <0x00>; xlnx,usb-reset-io = <0x4c>; xlnx,usb-polarity = <0x00>; xlnx,ip-name = "psu_usb"; xlnx,usb-reset-mode = <0x02>; xlnx,usb-board-interface = "custom"; xlnx,tz-nonsecure = <0x01>; pinctrl-names = "default"; pinctrl-0 = <0xa2>; phy-names = "usb3-phy"; phys = <0x5e 0x02 0x04 0x00 0x02>; assigned-clock-rates = <0xee6b280 0x1312d00>; usb@fe200000 { phandle = <0x6a>; compatible = "snps,dwc3"; status = "okay"; reg = <0x00 0xfe200000 0x00 0x40000>; interrupt-parent = <0x0b>; interrupt-names = "host\0peripheral\0otg\0wakeup"; interrupts = <0x00 0x41 0x04 0x00 0x41 0x04 0x00 0x45 0x04 0x00 0x4b 0x04>; clock-names = "ref"; snps,quirk-frame-length-adjustment = <0x20>; snps,resume-hs-terminations; clocks = <0x71 0x22>; xlnx,is-cache-coherent = <0x00>; xlnx,usb-reset = <0x4c>; xlnx,ip-name = "psu_usb_xhci"; xlnx,enable-superspeed = <0x01>; xlnx,usb-board-interface = "custom"; dr_mode = "host"; snps,usb3_lpm_capable; maximum-speed = "super-speed"; #address-cells = <0x01>; #size-cells = <0x00>; hub@1 { phandle = <0xa5>; compatible = "usb424,2744"; reg = <0x01>; peer-hub = <0xa3>; i2c-bus = <0xa4>; reset-gpios = <0x98 0x03 0x01>; }; hub@2 { phandle = <0xa3>; compatible = "usb424,5744"; reg = <0x02>; peer-hub = <0xa5>; i2c-bus = <0xa4>; reset-gpios = <0x98 0x03 0x01>; }; }; }; usb@ff9e0000 { phandle = <0x69>; #address-cells = <0x02>; #size-cells = <0x02>; status = "okay"; compatible = "xlnx,zynqmp-dwc3"; reg = <0x00 0xff9e0000 0x00 0x100>; clock-names = "bus_clk\0ref_clk"; power-domains = <0x7a 0x17>; resets = <0x03 0x3c 0x03 0x3e 0x03 0x40>; reset-names = "usb_crst\0usb_hibrst\0usb_apbrst"; ranges; clocks = <0x71 0x21 0x71 0x22>; assigned-clocks = <0x71 0x21 0x71 0x22>; xlnx,is-cache-coherent = <0x00>; xlnx,usb-reset-io = <0x4d>; xlnx,usb-polarity = <0x00>; xlnx,ip-name = "psu_usb"; xlnx,usb-reset-mode = <0x02>; xlnx,usb-board-interface = "custom"; xlnx,tz-nonsecure = <0x00>; pinctrl-names = "default"; pinctrl-0 = <0xa6>; phy-names = "usb3-phy"; phys = <0x5e 0x03 0x04 0x01 0x02>; reset-gpios = <0x98 0x01 0x01>; assigned-clock-rates = <0xee6b280 0x1312d00>; usb@fe300000 { phandle = <0x6b>; compatible = "snps,dwc3"; status = "okay"; reg = <0x00 0xfe300000 0x00 0x40000>; interrupt-parent = <0x0b>; interrupt-names = "host\0peripheral\0otg\0wakeup"; interrupts = <0x00 0x46 0x04 0x00 0x46 0x04 0x00 0x4a 0x04 0x00 0x4c 0x04>; clock-names = "ref"; snps,quirk-frame-length-adjustment = <0x20>; snps,resume-hs-terminations; clocks = <0x71 0x22>; xlnx,is-cache-coherent = <0x00>; xlnx,usb-reset = <0x4d>; xlnx,ip-name = "psu_usb_xhci"; xlnx,enable-superspeed = <0x01>; xlnx,usb-board-interface = "custom"; dr_mode = "host"; snps,usb3_lpm_capable; maximum-speed = "super-speed"; #address-cells = <0x01>; #size-cells = <0x00>; hub@1 { phandle = <0xa9>; compatible = "usb424,2744"; reg = <0x01>; peer-hub = <0xa7>; i2c-bus = <0xa8>; reset-gpios = <0x98 0x04 0x01>; }; hub@2 { phandle = <0xa7>; compatible = "usb424,5744"; reg = <0x02>; peer-hub = <0xa9>; i2c-bus = <0xa8>; reset-gpios = <0x98 0x04 0x01>; }; }; }; watchdog@fd4d0000 { phandle = <0x6d>; compatible = "cdns,wdt-r1p2"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x71 0x01>; reg = <0x00 0xfd4d0000 0x00 0x1000>; timeout-sec = <0x3c>; reset-on-timeout; clocks = <0x71 0x4b>; xlnx,ip-name = "psu_wdt"; xlnx,wdt-clk-freq-hz = <0x5f5dd19>; xlnx,swdt-board-interface = "custom"; }; watchdog@ff150000 { phandle = <0x6c>; compatible = "cdns,wdt-r1p2"; status = "okay"; interrupt-parent = <0x0b>; interrupts = <0x00 0x34 0x01>; reg = <0x00 0xff150000 0x00 0x1000>; timeout-sec = <0x0a>; clocks = <0x71 0x70>; xlnx,ip-name = "psu_wdt"; xlnx,wdt-clk-freq-hz = <0x5f5dd19>; xlnx,swdt-board-interface = "custom"; }; ams@ffa50000 { phandle = <0x1b>; compatible = "xlnx,zynqmp-ams"; interrupt-parent = <0x0b>; interrupts = <0x00 0x38 0x04>; reg = <0x00 0xffa50000 0x00 0x800>; #address-cells = <0x01>; #size-cells = <0x01>; #io-channel-cells = <0x01>; ranges = <0x00 0x00 0xffa50800 0x800>; clocks = <0x71 0x46>; status = "okay"; xlnx,clock-freq = <0x31>; xlnx,ip-name = "psu_ams"; ams-ps@0 { phandle = <0x05>; compatible = "xlnx,zynqmp-ams-ps"; status = "okay"; reg = <0x00 0x400>; }; ams-pl@400 { phandle = <0x06>; compatible = "xlnx,zynqmp-ams-pl"; status = "okay"; reg = <0x400 0x400>; }; }; dma-controller@fd4c0000 { phandle = <0x33>; compatible = "xlnx,zynqmp-dpdma"; status = "okay"; reg = <0x00 0xfd4c0000 0x00 0x1000>; interrupts = <0x00 0x7a 0x04>; interrupt-parent = <0x0b>; clock-names = "axi_clk"; power-domains = <0x7a 0x29>; dma-channels = <0x06>; #dma-cells = <0x01>; clocks = <0x71 0x14>; assigned-clocks = <0x71 0x14>; xlnx,ip-name = "psu_dpdma"; assigned-clock-rates = <0x23c34600>; }; display@fd4a0000 { phandle = <0x32>; bootph-all; compatible = "xlnx,zynqmp-dpsub-1.7"; status = "okay"; reg = <0x00 0xfd4a0000 0x00 0x1000 0x00 0xfd4aa000 0x00 0x1000 0x00 0xfd4ab000 0x00 0x1000 0x00 0xfd4ac000 0x00 0x1000>; reg-names = "dp\0blend\0av_buf\0aud"; interrupts = <0x00 0x77 0x04>; interrupt-parent = <0x0b>; clock-names = "dp_apb_clk\0dp_aud_clk\0dp_vtc_pixel_clk_in"; power-domains = <0x7a 0x29>; resets = <0x03 0x03>; dma-names = "vid0\0vid1\0vid2\0gfx0\0aud0\0aud1"; dmas = <0x33 0x00 0x33 0x01 0x33 0x02 0x33 0x03 0x33 0x04 0x33 0x05>; clocks = <0x71 0x1c 0x71 0x11 0x71 0x10>; assigned-clocks = <0x71 0x12 0x71 0x11 0x71 0x10>; xlnx,max-lanes = <0x01>; phys = <0x5e 0x01 0x06 0x00 0x01>; xlnx,dp-board-interface = "custom"; xlnx,ip-name = "psu_dp"; phy-names = "dp-phy0"; xlnx,tz-nonsecure = <0x00>; assigned-clock-rates = <0x19bfcc0 0x17d7840 0x11e1a300>; ports { #address-cells = <0x01>; #size-cells = <0x00>; port@0 { phandle = <0xe8>; reg = <0x00>; }; port@1 { phandle = <0xe9>; reg = <0x01>; }; port@2 { phandle = <0xea>; reg = <0x02>; }; port@3 { phandle = <0xeb>; reg = <0x03>; }; port@4 { phandle = <0xec>; reg = <0x04>; }; port@5 { phandle = <0xed>; reg = <0x05>; endpoint { phandle = <0xac>; remote-endpoint = <0xaa>; }; }; }; }; coresight@fe800000 { phandle = <0x23>; compatible = "xlnx,coresight-1.0"; status = "okay"; reg = <0x00 0xfe800000 0x00 0x10000>; xlnx,ip-name = "psu_coresight_0"; }; dma@ffc80000 { phandle = <0x27>; status = "okay"; compatible = "xlnx,zynqmp-csudma-1.0"; interrupt-parent = <0x0b>; interrupts = <0x00 0x56 0x04>; reg = <0x00 0xffc80000 0x00 0x40000>; xlnx,ip-name = "psu_csudma"; xlnx,dma-type = <0x00>; }; ipi@ff300000 { phandle = <0x08>; compatible = "xlnx,zynqmp-ipi-mailbox"; interrupt-parent = <0x0b>; interrupts = <0x00 0x23 0x04>; reg = <0x00 0xff300000 0x00 0x20>; xlnx,ipi-id = <0x00>; #address-cells = <0x02>; #size-cells = <0x02>; ranges; child@ff300000 { phandle = <0xee>; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x00>; reg = <0x00 0xff990480 0x00 0x20 0x00 0xff9904a0 0x00 0x20 0x00 0xff990480 0x00 0x20 0x00 0xff9904a0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; }; child@ff310000 { phandle = <0xef>; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x01>; reg = <0x00 0xff990400 0x00 0x20 0x00 0xff990420 0x00 0x20 0x00 0xff990080 0x00 0x20 0x00 0xff9900a0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; }; child@ff320000 { phandle = <0xf0>; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x02>; reg = <0x00 0xff990440 0x00 0x20 0x00 0xff990460 0x00 0x20 0x00 0xff990280 0x00 0x20 0x00 0xff9902a0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; }; child@ff330000 { phandle = <0xf1>; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x03>; reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; }; child@ff331000 { phandle = <0xf2>; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x04>; reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; }; child@ff332000 { phandle = <0xf3>; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x05>; reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; }; child@ff333000 { phandle = <0xf4>; compatible = "xlnx,zynqmp-ipi-dest-mailbox"; #mbox-cells = <0x01>; xlnx,ipi-id = <0x06>; reg = <0x00 0xff9905c0 0x00 0x20 0x00 0xff9905e0 0x00 0x20 0x00 0xff990e80 0x00 0x20 0x00 0xff990ea0 0x00 0x20>; reg-names = "local_request_region\0local_response_region\0remote_request_region\0remote_response_region"; }; }; ipi@ff340000 { phandle = <0x11f>; status = "disabled"; compatible = "xlnx,zynqmp-ipi-mailbox"; interrupt-parent = <0x0b>; interrupts = <0x00 0x1d 0x04>; reg = <0x00 0xff340000 0x00 0x20>; xlnx,ipi-bitmask = <0x1000000>; xlnx,ipi-id = <0x07>; xlnx,ipi-buf-index = <0x03>; #address-cells = <0x02>; #size-cells = <0x02>; bootph-all; ranges; }; ipi@ff350000 { phandle = <0x120>; status = "disabled"; compatible = "xlnx,zynqmp-ipi-mailbox"; interrupt-parent = <0x0b>; interrupts = <0x00 0x1e 0x04>; reg = <0x00 0xff350000 0x00 0x20>; xlnx,ipi-bitmask = <0x2000000>; xlnx,ipi-id = <0x08>; xlnx,ipi-buf-index = <0x04>; #address-cells = <0x02>; #size-cells = <0x02>; bootph-all; ranges; }; ipi@ff360000 { phandle = <0x121>; status = "disabled"; compatible = "xlnx,zynqmp-ipi-mailbox"; interrupt-parent = <0x0b>; interrupts = <0x00 0x1f 0x04>; reg = <0x00 0xff360000 0x00 0x20>; xlnx,ipi-bitmask = <0x4000000>; xlnx,ipi-id = <0x09>; xlnx,ipi-buf-index = <0x05>; #address-cells = <0x02>; #size-cells = <0x02>; bootph-all; ranges; }; ipi@ff370000 { phandle = <0x122>; status = "disabled"; compatible = "xlnx,zynqmp-ipi-mailbox"; interrupt-parent = <0x0b>; interrupts = <0x00 0x20 0x04>; reg = <0x00 0xff370000 0x00 0x20>; xlnx,ipi-bitmask = <0x8000000>; xlnx,ipi-id = <0x0a>; xlnx,ipi-buf-index = <0x05>; #address-cells = <0x02>; #size-cells = <0x02>; bootph-all; ranges; }; psu_csu@ffca0000 { phandle = <0x26>; xlnx,csu-board-interface = "custom"; compatible = "xlnx,psu-csu-1.0"; status = "okay"; xlnx,can-clk-freq-hz = <0xaba9500>; xlnx,ip-name = "psu_csu"; reg = <0x00 0xffca0000 0x00 0x10000>; }; psu_smmu_reg@fd5f0000 { phandle = <0x61>; compatible = "xlnx,psu-smmu-reg-1.0"; status = "okay"; xlnx,ip-name = "psu_smmu_reg"; reg = <0x00 0xfd5f0000 0x00 0x10000>; }; psu_cci_reg@fd5e0000 { phandle = <0x22>; compatible = "xlnx,psu-cci-reg-1.0"; status = "okay"; xlnx,ip-name = "psu_cci_reg"; reg = <0x00 0xfd5e0000 0x00 0x10000>; }; psu_afi@fd3b0000 { phandle = <0x19>; compatible = "xlnx,psu-afi-1.0"; status = "okay"; xlnx,ip-name = "psu_afi"; reg = <0x00 0xfd3b0000 0x00 0x10000>; }; psu_afi@fd3a0000 { phandle = <0x18>; compatible = "xlnx,psu-afi-1.0"; status = "okay"; xlnx,ip-name = "psu_afi"; reg = <0x00 0xfd3a0000 0x00 0x10000>; }; psu_afi@fd390000 { phandle = <0x17>; compatible = "xlnx,psu-afi-1.0"; status = "okay"; xlnx,ip-name = "psu_afi"; reg = <0x00 0xfd390000 0x00 0x10000>; }; psu_afi@fd380000 { phandle = <0x16>; compatible = "xlnx,psu-afi-1.0"; status = "okay"; xlnx,ip-name = "psu_afi"; reg = <0x00 0xfd380000 0x00 0x10000>; }; psu_afi@fd370000 { phandle = <0x15>; compatible = "xlnx,psu-afi-1.0"; status = "okay"; xlnx,ip-name = "psu_afi"; reg = <0x00 0xfd370000 0x00 0x10000>; }; psu_afi@fd360000 { phandle = <0x14>; compatible = "xlnx,psu-afi-1.0"; status = "okay"; xlnx,ip-name = "psu_afi"; reg = <0x00 0xfd360000 0x00 0x10000>; }; psu_afi@ff9b0000 { phandle = <0x1a>; compatible = "xlnx,psu-afi-1.0"; status = "okay"; xlnx,ip-name = "psu_afi"; reg = <0x00 0xff9b0000 0x00 0x10000>; }; PERIPHERAL@ff380000 { phandle = <0x28>; compatible = "xlnx,PERIPHERAL-1.0"; reg = <0x00 0xff380000 0x00 0x80000>; }; PERIPHERAL@ff990000 { phandle = <0x50>; compatible = "xlnx,PERIPHERAL-1.0"; reg = <0x00 0xff990000 0x00 0x10000>; }; psu_iouslcr@ff180000 { phandle = <0x4a>; compatible = "xlnx,psu-iouslcr-1.0"; status = "okay"; xlnx,ip-name = "psu_iouslcr"; reg = <0x00 0xff180000 0x00 0xc0000>; }; psu_qspi_linear@c0000000 { phandle = <0x129>; reg = <0x00 0xc0000000 0x00 0x20000000>; }; interrupt-controller@f9010000 { phandle = <0x0b>; xlnx,ip-name = "psu_acpu_gic"; status = "okay"; interrupts = <0x01 0x09 0xf04>; interrupt-parent = <0x0b>; interrupt-controller; reg = <0x00 0xf9010000 0x00 0x10000 0x00 0xf9020000 0x00 0x20000 0x00 0xf9040000 0x00 0x20000 0x00 0xf9060000 0x00 0x20000>; #interrupt-cells = <0x03>; compatible = "arm,gic-400"; }; }; indirect-bus@1 { phandle = <0x12a>; compatible = "indirect-bus"; #address-cells = <0x02>; #size-cells = <0x02>; xppu@ff980000 { phandle = <0x4d>; compatible = "xlnx,xppu"; #firewall-cells = <0x00>; reg = <0x00 0xff980000 0x00 0x1000>; status = "okay"; xlnx,ip-name = "psu_lpd_xppu"; }; }; binman { phandle = <0x12b>; }; pss-ref-clk { phandle = <0x8b>; bootph-all; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x1fca055>; clock-output-names = "pss_ref_clk"; }; video-clk { phandle = <0x8c>; bootph-all; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x19bfcc0>; clock-output-names = "video_clk"; }; pss-alt-ref-clk { phandle = <0x8d>; bootph-all; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x00>; clock-output-names = "pss_alt_ref_clk"; }; gt-crx-ref-clk { phandle = <0x8f>; bootph-all; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x66ff300>; clock-output-names = "gt_crx_ref_clk"; }; aux-ref-clk { phandle = <0x8e>; bootph-all; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x19bfcc0>; clock-output-names = "aux_ref_clk"; }; memory@0 { phandle = <0x09>; compatible = "xlnx,psu-ddr-1.0"; xlnx,ip-name = "psu_ddr"; device_type = "memory"; memory_type = "memory"; reg = <0x00 0x00 0x00 0x7ff00000>; }; memory@800000000 { phandle = <0x0a>; compatible = "xlnx,psu-ddr-1.0"; xlnx,ip-name = "psu_ddr"; device_type = "memory"; memory_type = "memory"; reg = <0x08 0x00 0x00 0x80000000>; }; chosen { bootargs = "earlycon clk_ignore_unused console=ttyPS1,115200 root=/dev/sdb2 rw init_fatal_sh=1 xilinx_tsn_ep.st_pcp=4 cma=900M"; stdout-path = "serial1:115200n8"; }; aliases { serial0 = "/axi/serial@ff000000"; ethernet1 = "/axi/ethernet@ff0c0000"; spi0 = "/axi/spi@ff0f0000"; serial1 = "/axi/serial@ff010000"; i2c0 = "/axi/i2c@ff020000"; ethernet0 = "/axi/ethernet@ff0b0000"; gpio0 = "/axi/gpio@ff0a0000"; i2c1 = "/axi/i2c@ff030000"; mmc0 = "/axi/mmc@ff160000"; mmc1 = "/axi/mmc@ff170000"; nvmem0 = "/axi/i2c@ff030000/eeprom@50"; nvmem1 = "/axi/i2c@ff030000/eeprom@51"; rtc0 = "/axi/rtc@ffa60000"; serial2 = "/dcc"; spi1 = "/axi/spi@ff040000"; spi2 = "/axi/spi@ff050000"; usb0 = "/axi/usb@ff9d0000"; usb1 = "/axi/usb@ff9e0000"; }; ina260-u14 { compatible = "iio-hwmon"; io-channels = <0xab 0x00 0xab 0x01 0xab 0x02>; }; clock0 { phandle = <0x9d>; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x7735940>; }; clock1 { phandle = <0x9e>; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x19bfcc0>; }; clock2 { phandle = <0x9f>; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x18cba80>; }; clock3 { phandle = <0x12c>; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x9502f90>; }; clock4 { phandle = <0x12d>; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x17d7840>; }; clock5 { phandle = <0x12e>; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x17d7840>; }; clock6 { phandle = <0x12f>; compatible = "fixed-clock"; #clock-cells = <0x00>; clock-frequency = <0x46cf710>; }; dpcon { compatible = "dp-connector"; label = "P11"; type = "full-size"; port { endpoint { phandle = <0xaa>; remote-endpoint = <0xac>; }; }; }; reserved-memory { #address-cells = <0x02>; #size-cells = <0x02>; ranges; pmu@7ff00000 { phandle = <0x130>; reg = <0x00 0x7ff00000 0x00 0x100000>; no-map; }; }; gpio-keys { compatible = "gpio-keys"; autorepeat; key-fwuen { label = "fwuen"; gpios = <0x44 0x0c 0x01>; linux,code = <0x100>; wakeup-source; autorepeat; }; }; leds { compatible = "gpio-leds"; ds35-led { label = "heartbeat"; gpios = <0x44 0x07 0x00>; linux,default-trigger = "heartbeat"; }; ds36-led { label = "vbus_det"; gpios = <0x44 0x08 0x00>; default-state = "on"; }; }; pwm-fan { compatible = "pwm-fan"; pwms = <0x63 0x02 0x9c40 0x00>; }; __symbols__ { cpus_a53 = "/cpus-a53@0"; psu_cortexa53_0 = "/cpus-a53@0/cpu@0"; psu_cortexa53_1 = "/cpus-a53@0/cpu@1"; psu_cortexa53_2 = "/cpus-a53@0/cpu@2"; psu_cortexa53_3 = "/cpus-a53@0/cpu@3"; L2 = "/cpus-a53@0/l2-cache"; CPU_SLEEP_0 = "/cpus-a53@0/idle-states/cpu-sleep-0"; cpu_opp_table = "/opp-table-cpu"; zynqmp_ipi = "/zynqmp-ipi"; ipi_mailbox_pmu1 = "/zynqmp-ipi/mailbox@ff9905c0"; dcc = "/dcc"; zynqmp_firmware = "/firmware/zynqmp-firmware"; zynqmp_power = "/firmware/zynqmp-firmware/power-management"; soc_revision = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/soc-revision@0"; efuse_dna = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-dna@c"; efuse_usr0 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr0@20"; efuse_usr1 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr1@24"; efuse_usr2 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr2@28"; efuse_usr3 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr3@2c"; efuse_usr4 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr4@30"; efuse_usr5 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr5@34"; efuse_usr6 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr6@38"; efuse_usr7 = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-usr7@3c"; efuse_miscusr = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-miscusr@40"; efuse_chash = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-chash@50"; efuse_pufmisc = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-pufmisc@54"; efuse_sec = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-sec@58"; efuse_spkid = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-spkid@5c"; efuse_aeskey = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-aeskey@60"; efuse_ppk0hash = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-ppk0hash@a0"; efuse_ppk1hash = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-ppk1hash@d0"; efuse_pufuser = "/firmware/zynqmp-firmware/soc-nvmem/nvmem-layout/efuse-pufuser@100"; zynqmp_pcap = "/firmware/zynqmp-firmware/pcap"; zynqmp_reset = "/firmware/zynqmp-firmware/reset-controller"; pinctrl0 = "/firmware/zynqmp-firmware/pinctrl"; pinctrl_uart1_default = "/firmware/zynqmp-firmware/pinctrl/uart1-default"; pinctrl_i2c1_default = "/firmware/zynqmp-firmware/pinctrl/i2c1-default"; pinctrl_i2c1_gpio = "/firmware/zynqmp-firmware/pinctrl/i2c1-gpio-grp"; pinctrl_gem1_default = "/firmware/zynqmp-firmware/pinctrl/gem1-default"; pinctrl_usb0_default = "/firmware/zynqmp-firmware/pinctrl/usb0-default"; pinctrl_usb1_default = "/firmware/zynqmp-firmware/pinctrl/usb1-default"; pinctrl_sdhci0_default = "/firmware/zynqmp-firmware/pinctrl/sdhci0-default"; modepin_gpio = "/firmware/zynqmp-firmware/gpio"; zynqmp_clk = "/firmware/zynqmp-firmware/clock-controller"; fpga_full = "/fpga-region"; tsens_apu = "/thermal-sensor-apu"; tsens_rpu = "/thermal-sensor-rpu"; tsens_pl = "/thermal-sensor-pl"; apu_passive = "/thermal-zones/apu-thermal/trips/passive"; apu_critical = "/thermal-zones/apu-thermal/trips/critical"; amba_apu = "/apu-bus"; amba = "/axi"; imux = "/axi/interrupt-multiplex"; can0 = "/axi/can@ff060000"; can1 = "/axi/can@ff070000"; cci = "/axi/cci@fd6e0000"; psu_cortexa53_0_debug = "/axi/debug@fec10000"; psu_cortexa53_1_debug = "/axi/debug@fed10000"; psu_cortexa53_2_debug = "/axi/debug@fee10000"; psu_cortexa53_3_debug = "/axi/debug@fef10000"; fpd_dma_chan1 = "/axi/dma-controller@fd500000"; fpd_dma_chan2 = "/axi/dma-controller@fd510000"; fpd_dma_chan3 = "/axi/dma-controller@fd520000"; fpd_dma_chan4 = "/axi/dma-controller@fd530000"; fpd_dma_chan5 = "/axi/dma-controller@fd540000"; fpd_dma_chan6 = "/axi/dma-controller@fd550000"; fpd_dma_chan7 = "/axi/dma-controller@fd560000"; fpd_dma_chan8 = "/axi/dma-controller@fd570000"; gpu = "/axi/gpu@fd4b0000"; lpd_dma_chan1 = "/axi/dma-controller@ffa80000"; lpd_dma_chan2 = "/axi/dma-controller@ffa90000"; lpd_dma_chan3 = "/axi/dma-controller@ffaa0000"; lpd_dma_chan4 = "/axi/dma-controller@ffab0000"; lpd_dma_chan5 = "/axi/dma-controller@ffac0000"; lpd_dma_chan6 = "/axi/dma-controller@ffad0000"; lpd_dma_chan7 = "/axi/dma-controller@ffae0000"; lpd_dma_chan8 = "/axi/dma-controller@ffaf0000"; mc = "/axi/memory-controller@fd070000"; nand0 = "/axi/nand-controller@ff100000"; gem0 = "/axi/ethernet@ff0b0000"; gem1 = "/axi/ethernet@ff0c0000"; mdio = "/axi/ethernet@ff0c0000/mdio"; phy0 = "/axi/ethernet@ff0c0000/mdio/ethernet-phy@4"; phy1 = "/axi/ethernet@ff0c0000/mdio/ethernet-phy@8"; gem2 = "/axi/ethernet@ff0d0000"; gem3 = "/axi/ethernet@ff0e0000"; gpio = "/axi/gpio@ff0a0000"; i2c0 = "/axi/i2c@ff020000"; i2c1 = "/axi/i2c@ff030000"; u14 = "/axi/i2c@ff030000/ina260@40"; slg7xl45106 = "/axi/i2c@ff030000/gpio@11"; usbhub_i2c0 = "/axi/i2c@ff030000/i2c-mux@74/i2c@0"; hub_1 = "/axi/i2c@ff030000/i2c-mux@74/i2c@0/usb-hub@2d"; usbhub_i2c1 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1"; hub_2 = "/axi/i2c@ff030000/i2c-mux@74/i2c@1/usb-hub@2d"; eeprom = "/axi/i2c@ff030000/eeprom@50"; eeprom_cc = "/axi/i2c@ff030000/eeprom@51"; da9131 = "/axi/i2c@ff030000/pmic@33"; da9131_buck1 = "/axi/i2c@ff030000/pmic@33/regulators/buck1"; da9131_buck2 = "/axi/i2c@ff030000/pmic@33/regulators/buck2"; da9130 = "/axi/i2c@ff030000/pmic@32"; da9130_buck1 = "/axi/i2c@ff030000/pmic@32/regulators/buck1"; ocm = "/axi/memory-controller@ff960000"; perf_monitor_ocm = "/axi/perf-monitor@ffa00000"; perf_monitor_ddr = "/axi/perf-monitor@fd0b0000"; perf_monitor_cci = "/axi/perf-monitor@fd490000"; perf_monitor_lpd = "/axi/perf-monitor@ffa10000"; pcie = "/axi/pcie@fd0e0000"; pcie_intc = "/axi/pcie@fd0e0000/legacy-interrupt-controller"; qspi = "/axi/spi@ff0f0000"; spi_flash = "/axi/spi@ff0f0000/flash@0"; psgtr = "/axi/phy@fd400000"; rtc = "/axi/rtc@ffa60000"; sata = "/axi/ahci@fd0c0000"; sdhci0 = "/axi/mmc@ff160000"; sdhci1 = "/axi/mmc@ff170000"; smmu = "/axi/iommu@fd800000"; spi0 = "/axi/spi@ff040000"; spi1 = "/axi/spi@ff050000"; ttc0 = "/axi/timer@ff110000"; ttc1 = "/axi/timer@ff120000"; ttc2 = "/axi/timer@ff130000"; ttc3 = "/axi/timer@ff140000"; uart0 = "/axi/serial@ff000000"; uart1 = "/axi/serial@ff010000"; usb0 = "/axi/usb@ff9d0000"; dwc3_0 = "/axi/usb@ff9d0000/usb@fe200000"; hub_2_0 = "/axi/usb@ff9d0000/usb@fe200000/hub@1"; hub_3_0 = "/axi/usb@ff9d0000/usb@fe200000/hub@2"; usb1 = "/axi/usb@ff9e0000"; dwc3_1 = "/axi/usb@ff9e0000/usb@fe300000"; hub1_2_0 = "/axi/usb@ff9e0000/usb@fe300000/hub@1"; hub1_3_0 = "/axi/usb@ff9e0000/usb@fe300000/hub@2"; watchdog0 = "/axi/watchdog@fd4d0000"; lpd_watchdog = "/axi/watchdog@ff150000"; xilinx_ams = "/axi/ams@ffa50000"; ams_ps = "/axi/ams@ffa50000/ams-ps@0"; ams_pl = "/axi/ams@ffa50000/ams-pl@400"; zynqmp_dpdma = "/axi/dma-controller@fd4c0000"; zynqmp_dpsub = "/axi/display@fd4a0000"; live_video = "/axi/display@fd4a0000/ports/port@0"; live_gfx = "/axi/display@fd4a0000/ports/port@1"; live_audio = "/axi/display@fd4a0000/ports/port@2"; out_video = "/axi/display@fd4a0000/ports/port@3"; out_audio = "/axi/display@fd4a0000/ports/port@4"; out_dp = "/axi/display@fd4a0000/ports/port@5"; dpsub_dp_out = "/axi/display@fd4a0000/ports/port@5/endpoint"; coresight_0 = "/axi/coresight@fe800000"; csudma_0 = "/axi/dma@ffc80000"; ipi0 = "/axi/ipi@ff300000"; ipi_0_to_ipi_0 = "/axi/ipi@ff300000/child@ff300000"; ipi_0_to_ipi_1 = "/axi/ipi@ff300000/child@ff310000"; ipi_0_to_ipi_2 = "/axi/ipi@ff300000/child@ff320000"; ipi_0_to_ipi_3 = "/axi/ipi@ff300000/child@ff330000"; ipi_0_to_ipi_4 = "/axi/ipi@ff300000/child@ff331000"; ipi_0_to_ipi_5 = "/axi/ipi@ff300000/child@ff332000"; ipi_0_to_ipi_6 = "/axi/ipi@ff300000/child@ff333000"; ipi7 = "/axi/ipi@ff340000"; ipi8 = "/axi/ipi@ff350000"; ipi9 = "/axi/ipi@ff360000"; ipi10 = "/axi/ipi@ff370000"; psu_csu_0 = "/axi/psu_csu@ffca0000"; psu_smmu_reg = "/axi/psu_smmu_reg@fd5f0000"; psu_cci_reg = "/axi/psu_cci_reg@fd5e0000"; psu_afi_5 = "/axi/psu_afi@fd3b0000"; psu_afi_4 = "/axi/psu_afi@fd3a0000"; psu_afi_3 = "/axi/psu_afi@fd390000"; psu_afi_2 = "/axi/psu_afi@fd380000"; psu_afi_1 = "/axi/psu_afi@fd370000"; psu_afi_0 = "/axi/psu_afi@fd360000"; psu_afi_6 = "/axi/psu_afi@ff9b0000"; psu_ctrl_ipi = "/axi/PERIPHERAL@ff380000"; psu_message_buffers = "/axi/PERIPHERAL@ff990000"; psu_iouslcr_0 = "/axi/psu_iouslcr@ff180000"; psu_qspi_linear_0 = "/axi/psu_qspi_linear@c0000000"; amba_xppu = "/indirect-bus@1"; lpd_xppu = "/indirect-bus@1/xppu@ff980000"; binman = "/binman"; pss_ref_clk = "/pss-ref-clk"; video_clk = "/video-clk"; pss_alt_ref_clk = "/pss-alt-ref-clk"; gt_crx_ref_clk = "/gt-crx-ref-clk"; aux_ref_clk = "/aux-ref-clk"; psu_ddr_0_memory = "/memory@0"; psu_ddr_1_memory = "/memory@800000000"; clk_125 = "/clock0"; clk_27 = "/clock1"; clk_26 = "/clock2"; clk_156 = "/clock3"; clk_25_0 = "/clock4"; clk_25_1 = "/clock5"; clk_74 = "/clock6"; dpcon_in = "/dpcon/port/endpoint"; pmu_region = "/reserved-memory/pmu@7ff00000"; gic = "/axi/interrupt-controller@f9010000"; flash0 = "/axi/spi@ff0f0000/flash@0"; }; };
petalinux-packageでブートイメージ(BOOT.BIN, wicイメージ)を生成する
petalinux-buildがエラーなく完了すれば、petalinux-createで作成されたpetalinuxプロジェクトフォルダにimages/linuxフォルダが生成され、その中にビルドされた複数のファイルが格納されます。それらのファイルから次のコマンドによってブートファイルを生成します。
wicイメージを生成する際、wks関連の指定がなければ6GBのPetaLinuxイメージが生成されます。SDカードにも書けるように、PetaLinuxイメージが4GB以下に収まるようにrootfs.wksを作成します。buildフォルダに同名の自動生成ファイルが生成されているのでそれを参考に書き換えてimages/linuxに格納します。
part /boot --source bootimg-partition --use-label --fstype=vfat --label boot --active --align 4 --fixed-size 500M part / --source rootfs --use-label --fstype=ext4 --label root --align 4 --fixed-size 3G
rootfs.wksが用意できたら次のコマンドを実行してBOOT.BINとPetaLinuxイメージを生成します。
cd images/linux petalinux-package boot --u-boot --force petalinux-package wic --bootfiles "BOOT.BIN boot.scr Image system.dtb" --rootfs-file "rootfs.tar.gz" --wks ./rootfs.wks
balena etcherでwicイメージをUSBに書き込む
petalinux-package wicコマンドで生成したwic形式のPetaLinuxイメージはbalena etcherを使用してUSBに焼きます。balena ethcerの使用はxilinxが発行するPetaLinux ToolのユーザドキュメントUG1144にも記載があります。バージョンによってbalena etcherの動作が不安定だったので動作するバージョンをインストールしてください。https://github.com/balena-io/etcher/releasesから最新版ふくめて過去バージョンをダウンロードできます。私のPCの場合v2.1.7ではwicイメージを選択した直後にハングしたため、web上の情報を参考にv1.18.11を使用しました。
FWUENボタンで起動するImage Recovery ToolでBOOT.BINを書き込む
KR260ボード上のFWUENボタンを押しながら電源をいれるか、電源を入れた状態でFWUENボタンを押しながらRESETボタンを押すことでImage Recovery Toolが起動します。http://192.168.0.111にアクセスしてweb経由でブートファームウェアやPetaLinuxイメージを更新することができます。
KR260にUSBを挿してブートする
BOOT.BINがKR260に書き込まれ、かつwicイメージを書き込んだUSBが用意できたら、KR260のいずれかのUSBコネクタにUSBメモリを接続し、電源を入れることでブートが始まります。次のようなブートログがTera Termに表示されます。
Zynq MP First Stage Boot Loader
Release 2025.2 Nov 13 2025 - 10:49:34
MultiBootOffset: 0x1F0
Reset Mode : System Reset
Platform: Silicon (4.0), Running on A53-0 (64-bit) Processor, Device Name: XCZUxxEG
QSPI 32 bit Boot Mode
FlashID=0x20 0xBB 0x20
Protection configuration applied
Exit from FSBL
INFO: BL31: Early console setup
INFO: Successfully initialized runtime console
INFO: Counter TICK 0x14bec58
INFO: Counter TICK after reset 0x2a0960d
NOTICE: BL31: Non secure code at 0x8000000
NOTICE: BL31: v2.12.0(debug):xlnx_rebase_v2.12_2025.1-165-g894ecd073-dirty
NOTICE: BL31: Built : 08:14:53, Oct 16 2025
INFO: ARM GICv2 driver initialized
INFO: BL31: Initializing runtime services
INFO: BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO: BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO: BL31: PM Service Init Complete: API v1.1
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x8000000
INFO: SPSR = 0x3c9
U-Boot 2025.01-g5e0d8abc7e09 (Nov 12 2025 - 07:44:59 +0000)
CPU: ZynqMP
Silicon: v3
Chip: xck26
Detected name: zynqmp-smk-k26-xcl2g-rev1-sck-kr-g-rev1
Model: ZynqMP SMK-K26 Rev1/B/A
Board: Xilinx ZynqMP
DRAM: 2 GiB (effective 4 GiB)
Xilinx I2C FRU format at nvmem0:
Manufacturer Name: XILINX
Product Name: SMK-K26-XCL2G
Serial No: XFL1URSQ5BGB
Part Number: 5057-04
File ID: 0x0
Revision Number: 1
Xilinx I2C FRU format at nvmem1:
Manufacturer Name: XILINX
Product Name: SCK-KR-G
Serial No: XFL1JYEX5LTD
Part Number: 5100-01
File ID: 0x0
Revision Number: 1
EL Level: EL2
Secure Boot: not authenticated, not encrypted
Core: 99 devices, 33 uclasses, devicetree: board
Warning: Device tree includes old 'u-boot,dm-' tags: please fix by 2023.07!
MMC:
Loading Environment from SPIFlash... SF: Detected mt25qu512a with page size 256 Bytes, erase size 64 KiB, total 64 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial,vidconsole
Err: serial,vidconsole
Bootmode: QSPI_MODE
Reset reason: SOFT
Net:
ZYNQ GEM: ff0c0000, mdio bus ff0c0000, phyaddr 8, interface rgmii-id
Get shared mii bus on ethernet@ff0b0000
ZYNQ GEM: ff0b0000, mdio bus ff0c0000, phyaddr 4, interface sgmii
eth0: ethernet@ff0b0000, eth1: ethernet@ff0c0000
RTC #0 - rtc@ffa60000
!!! For TPM reset a full power cycle or pressing the POR_B button is required !!!
starting USB...
Bus usb@fe200000: Register 2000440 NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb@fe300000: Register 2000440 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb@fe200000 for devices... 4 USB Device(s) found
scanning bus usb@fe300000 for devices... 3 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found
Hit any key to stop autoboot: 0
ZynqMP> setenv bootargs "earlycon clk_ignore_unused console=ttyPS1,115200 root=/dev/sda2 rw rootwait init_fatal_sh=1 xilinx_tsn_ep.st_pcp=4 cma=900M"
ZynqMP> boot
Device 0: Vendor: BUFFALO Rev: 3.10 Prod: USB Flash Disk
Type: Removable Hard Disk
Capacity: 7640.0 MB = 7.4 GB (15646720 x 512)
... is now current device
Scanning usb 0:1...
Found U-Boot script /boot.scr
3833 bytes read in 1 ms (3.7 MiB/s)
## Executing script at 20000000
Trying to load boot images from usb0
32371200 bytes read in 1159 ms (26.6 MiB/s)
68168 bytes read in 4 ms (16.3 MiB/s)
## Flattened Device Tree blob at 00100000
Booting using the fdt blob at 0x100000
Working FDT set to 100000
Loading Device Tree to 000000000ffec000, end 000000000ffffa47 ... OK
Working FDT set to ffec000
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 6.12.40-xilinx-g31626ef92ff1 (oe-user@oe-host) (aarch64-amd-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP Fri Nov 7 15:28:23 UTC 2025
[ 0.000000] KASLR enabled
[ 0.000000] Machine model: ZynqMP SMK-K26 Rev1/B/A
[ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff010000 (options '115200n8')
[ 0.000000] printk: legacy bootconsole [cdns0] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] OF: reserved mem: 0x000000007ff00000..0x000000007fffffff (1024 KiB) nomap non-reusable pmu@7ff00000
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000000000-0x00000000ffffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal [mem 0x0000000100000000-0x000000087fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fefffff]
[ 0.000000] node 0: [mem 0x0000000800000000-0x000000087fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff]
[ 0.000000] On node 0, zone Normal: 256 pages in unavailable ranges
[ 0.000000] cma: Reserved 900 MiB at 0x0000000047a00000 on node -1
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.5
[ 0.000000] percpu: Embedded 31 pages/cpu s89816 r8192 d28968 u126976
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: kernel page table isolation forced ON by KASLR
[ 0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] alternatives: applying boot alternatives
[ 0.000000] Kernel command line: earlycon clk_ignore_unused console=ttyPS1,115200 root=/dev/sda2 rw rootwait init_fatal_sh=1 xilinx_tsn_ep.st_pcp=4 cma=900M
[ 0.000000] Unknown kernel command line parameters "init_fatal_sh=1", will be passed to user space.
[ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1048320
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[ 0.000000] software IO TLB: area num 4.
[ 0.000000] software IO TLB: mapped [mem 0x0000000043a00000-0x0000000047a00000] (64MB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=4.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[ 0.000000] Root IRQ handler: gic_handle_irq
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] arch_timer: cp15 timer(s) running at 99.99MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0x1ffffffffffffff max_cycles: 0x171015c90f, max_idle_ns: 440795203080 ns
[ 0.000000] sched_clock: 57 bits at 100MHz, resolution 10ns, wraps every 4398046511101ns
[ 0.008393] Console: colour dummy device 80x25
[ 0.012560] Calibrating delay loop (skipped), value calculated using timer frequency.. 199.99 BogoMIPS (lpj=399996)
[ 0.022971] pid_max: default: 32768 minimum: 301
[ 0.027709] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.034987] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.044445] rcu: Hierarchical SRCU implementation.
[ 0.047597] rcu: Max phase no-delay instances is 1000.
[ 0.052978] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[ 0.061198] EFI services will not be available.
[ 0.065599] smp: Bringing up secondary CPUs ...
[ 0.070365] Detected VIPT I-cache on CPU1
[ 0.070431] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 0.070879] Detected VIPT I-cache on CPU2
[ 0.070925] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[ 0.071342] Detected VIPT I-cache on CPU3
[ 0.071387] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[ 0.071445] smp: Brought up 1 node, 4 CPUs
[ 0.105622] SMP: Total of 4 processors activated.
[ 0.110319] CPU: All CPU(s) started at EL2
[ 0.114409] CPU features: detected: 32-bit EL0 Support
[ 0.119542] CPU features: detected: CRC32 instructions
[ 0.124703] alternatives: applying system-wide alternatives
[ 0.131170] Memory: 3088104K/4193280K available (18624K kernel code, 2364K rwdata, 5792K rodata, 4672K init, 500K bss, 179256K reserved, 921600K cma-reserved)
[ 0.145137] devtmpfs: initialized
[ 0.155299] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.159434] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.184255] 2G module region forced by RANDOMIZE_MODULE_REGION_FULL
[ 0.184910] 0 pages in range for non-PLT usage
[ 0.184914] 516240 pages in range for PLT usage
[ 0.189489] pinctrl core: initialized pinctrl subsystem
[ 0.199545] DMI not present or invalid.
[ 0.204725] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.209544] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[ 0.216005] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.223791] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.231552] audit: initializing netlink subsys (disabled)
[ 0.237069] audit: type=2000 audit(0.152:1): state=initialized audit_enabled=0 res=1
[ 0.237364] thermal_sys: Registered thermal governor 'step_wise'
[ 0.244841] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.257520] ASID allocator initialised with 32768 entries
[ 0.262990] Serial: AMBA PL011 UART driver
[ 0.274761] /axi/interrupt-controller@f9010000: Fixed dependency cycle(s) with /axi/interrupt-controller@f9010000
[ 0.286261] /axi/display@fd4a0000: Fixed dependency cycle(s) with /dpcon
[ 0.287368] /dpcon: Fixed dependency cycle(s) with /axi/display@fd4a0000
[ 0.300388] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.301534] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.307807] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.314592] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[ 0.320856] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.327639] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.333905] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.340689] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 0.415025] raid6: neonx8 gen() 2522 MB/s
[ 0.483099] raid6: neonx4 gen() 2464 MB/s
[ 0.551163] raid6: neonx2 gen() 2362 MB/s
[ 0.619233] raid6: neonx1 gen() 2008 MB/s
[ 0.687299] raid6: int64x8 gen() 1578 MB/s
[ 0.755373] raid6: int64x4 gen() 1745 MB/s
[ 0.823444] raid6: int64x2 gen() 1555 MB/s
[ 0.891512] raid6: int64x1 gen() 1148 MB/s
[ 0.891551] raid6: using algorithm neonx8 gen() 2522 MB/s
[ 0.963590] raid6: .... xor() 1842 MB/s, rmw enabled
[ 0.963636] raid6: using neon recovery algorithm
[ 0.968202] iommu: Default domain type: Translated
[ 0.972312] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.986264] SCSI subsystem initialized
[ 0.986459] usbcore: registered new interface driver usbfs
[ 0.989873] usbcore: registered new interface driver hub
[ 0.995179] usbcore: registered new device driver usb
[ 1.000287] mc: Linux media interface: v0.10
[ 1.004490] videodev: Linux video capture interface: v2.00
[ 1.009967] pps_core: LinuxPPS API ver. 1 registered
[ 1.014902] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti