From fa215c43b15e022b220de068b71d799129655fc7 Mon Sep 17 00:00:00 2001 From: ikwzm Date: Sun, 23 Jun 2019 15:21:04 +0900 Subject: [PATCH 01/24] [delete] old files --- debian9-rootfs-vanilla.tgz | 3 - dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb | 3 - dtbocfg-ctrl_0.0.5-1_all.deb | 3 - fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb | 3 - ...armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb | 3 - ...armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb | 3 - .../boot/devicetree-4.14.123-socfpga.dtb | Bin 26896 -> 0 bytes .../boot/devicetree-4.14.123-socfpga.dts | 1292 ----------------- .../boot/uEnv-linux-4.14.123-armv7-fpga.txt | 18 - .../boot/vmlinuz-4.14.123-armv7-fpga | 3 - .../boot/devicetree-4.14.123-socfpga.dtb | Bin 26896 -> 0 bytes .../boot/devicetree-4.14.123-socfpga.dts | 1292 ----------------- .../boot/uEnv-linux-4.14.123-armv7-fpga.txt | 14 - .../boot/vmlinuz-4.14.123-armv7-fpga | 3 - .../boot/devicetree-4.14.123-zynq-pynqz1.dtb | Bin 10928 -> 0 bytes .../boot/devicetree-4.14.123-zynq-pynqz1.dts | 516 ------- .../boot/uEnv-linux-4.14.123-armv7-fpga.txt | 14 - .../boot/vmlinuz-4.14.123-armv7-fpga | 3 - .../boot/devicetree-4.14.123-zynq-zybo-z7.dtb | Bin 10898 -> 0 bytes .../boot/devicetree-4.14.123-zynq-zybo-z7.dts | 515 ------- .../boot/uEnv-linux-4.14.123-armv7-fpga.txt | 14 - .../boot/vmlinuz-4.14.123-armv7-fpga | 3 - .../boot/devicetree-4.14.123-zynq-zybo.dtb | Bin 10887 -> 0 bytes .../boot/devicetree-4.14.123-zynq-zybo.dts | 514 ------- .../boot/uEnv-linux-4.14.123-armv7-fpga.txt | 19 - .../boot/vmlinuz-4.14.123-armv7-fpga | 3 - udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb | 3 - zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb | 3 - 28 files changed, 4247 deletions(-) delete mode 100644 debian9-rootfs-vanilla.tgz delete mode 100644 dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb delete mode 100644 dtbocfg-ctrl_0.0.5-1_all.deb delete mode 100644 fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb delete mode 100644 linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb delete mode 100644 linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb delete mode 100644 target/de0-nano-soc/boot/devicetree-4.14.123-socfpga.dtb delete mode 100644 target/de0-nano-soc/boot/devicetree-4.14.123-socfpga.dts delete mode 100644 target/de0-nano-soc/boot/uEnv-linux-4.14.123-armv7-fpga.txt delete mode 100755 target/de0-nano-soc/boot/vmlinuz-4.14.123-armv7-fpga delete mode 100644 target/de10-nano/boot/devicetree-4.14.123-socfpga.dtb delete mode 100644 target/de10-nano/boot/devicetree-4.14.123-socfpga.dts delete mode 100644 target/de10-nano/boot/uEnv-linux-4.14.123-armv7-fpga.txt delete mode 100755 target/de10-nano/boot/vmlinuz-4.14.123-armv7-fpga delete mode 100644 target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dtb delete mode 100644 target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dts delete mode 100644 target/zynq-pynqz1/boot/uEnv-linux-4.14.123-armv7-fpga.txt delete mode 100755 target/zynq-pynqz1/boot/vmlinuz-4.14.123-armv7-fpga delete mode 100644 target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dtb delete mode 100644 target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dts delete mode 100644 target/zynq-zybo-z7/boot/uEnv-linux-4.14.123-armv7-fpga.txt delete mode 100755 target/zynq-zybo-z7/boot/vmlinuz-4.14.123-armv7-fpga delete mode 100644 target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dtb delete mode 100644 target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dts delete mode 100644 target/zynq-zybo/boot/uEnv-linux-4.14.123-armv7-fpga.txt delete mode 100755 target/zynq-zybo/boot/vmlinuz-4.14.123-armv7-fpga delete mode 100644 udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb delete mode 100644 zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb diff --git a/debian9-rootfs-vanilla.tgz b/debian9-rootfs-vanilla.tgz deleted file mode 100644 index c84ce36..0000000 --- a/debian9-rootfs-vanilla.tgz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f44ddcc27066de665ba627038d4d54b36cea6c7c4cd154897fc28a43ccc7deaf -size 340933167 diff --git a/dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb b/dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb deleted file mode 100644 index eddf973..0000000 --- a/dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a963ace8deeacc7a03943d158b937ac6d5ee5a88ec2b506248e74bc8b56942fd -size 23906 diff --git a/dtbocfg-ctrl_0.0.5-1_all.deb b/dtbocfg-ctrl_0.0.5-1_all.deb deleted file mode 100644 index 5b37d51..0000000 --- a/dtbocfg-ctrl_0.0.5-1_all.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:58f9d5d4e6e1f645d7749a7d839012572a88c73580abf5989c0c1164b15a8b6b -size 4608 diff --git a/fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb b/fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb deleted file mode 100644 index cfb5b5b..0000000 --- a/fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:50130d405440678f7d8c8764a3f25f3c9f1961deacea787e07c9ef0efedd7a92 -size 48692 diff --git a/linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb b/linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb deleted file mode 100644 index 1d6555e..0000000 --- a/linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cacf0340631dc88087db043bb0c259f83b811c9b8fc9b06d1b7488638679ead -size 10932056 diff --git a/linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb b/linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb deleted file mode 100644 index 8aeb8f8..0000000 --- a/linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b19d56d2820188990d22407bb32b8905cd288eedd5ecb6e208ce93646bd6e2b7 -size 5405660 diff --git a/target/de0-nano-soc/boot/devicetree-4.14.123-socfpga.dtb b/target/de0-nano-soc/boot/devicetree-4.14.123-socfpga.dtb deleted file mode 100644 index e4db3c9189b8fbb3736f16f0190cd80825e827e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26896 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 - #size-cells = <0x1>; - model = "Terasic DE-0(Atlas)"; - compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga"; - - aliases { - ethernet0 = "/soc/ethernet@ff702000"; - ethernet1 = "/soc/ethernet@ff702000"; - serial0 = "/soc/serial0@ffc02000"; - serial1 = "/soc/serial1@ffc03000"; - timer0 = "/soc/timer0@ffc08000"; - timer1 = "/soc/timer1@ffc09000"; - timer2 = "/soc/timer2@ffd00000"; - timer3 = "/soc/timer3@ffd01000"; - }; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - enable-method = "altr,socfpga-smp"; - - cpu@0 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x0>; - next-level-cache = <0x1>; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - cpu@1 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x1>; - next-level-cache = <0x1>; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - }; - - pmu@ff111000 { - compatible = "arm,cortex-a9-pmu"; - interrupt-parent = <0x2>; - interrupts = <0x0 0xb0 0x4 0x0 0xb1 0x4>; - interrupt-affinity = <0x3 0x4>; - reg = <0xff111000 0x1000 0xff113000 0x1000>; - linux,phandle = <0x39>; - phandle = <0x39>; - }; - - intc@fffed000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - interrupt-controller; - reg = <0xfffed000 0x1000 0xfffec100 0x100>; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - soc { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "simple-bus"; - device_type = "soc"; - interrupt-parent = <0x2>; - ranges; - - amba { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - - pdma@ffe01000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0xffe01000 0x1000>; - interrupts = <0x0 0x68 0x4 0x0 0x69 0x4 0x0 0x6a 0x4 0x0 0x6b 0x4 0x0 0x6c 0x4 0x0 0x6d 0x4 0x0 0x6e 0x4 0x0 0x6f 0x4>; - #dma-cells = <0x1>; - #dma-channels = <0x8>; - #dma-requests = <0x20>; - clocks = <0x5>; - clock-names = "apb_pclk"; - linux,phandle = <0x35>; - phandle = <0x35>; - }; - }; - - can@ffc00000 { - compatible = "bosch,d_can"; - reg = <0xffc00000 0x1000>; - interrupts = <0x0 0x83 0x4 0x0 0x84 0x4 0x0 0x85 0x4 0x0 0x86 0x4>; - clocks = <0x6>; - status = "disabled"; - linux,phandle = <0x3a>; - phandle = <0x3a>; - }; - - can@ffc01000 { - compatible = "bosch,d_can"; - reg = <0xffc01000 0x1000>; - interrupts = <0x0 0x87 0x4 0x0 0x88 0x4 0x0 0x89 0x4 0x0 0x8a 0x4>; - clocks = <0x7>; - status = "disabled"; - linux,phandle = <0x3b>; - phandle = <0x3b>; - }; - - clkmgr@ffd04000 { - compatible = "altr,clk-mgr"; - reg = <0xffd04000 0x1000>; - - clocks { - #address-cells = <0x1>; - #size-cells = <0x0>; - - osc1 { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - clock-frequency = <0x17d7840>; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - osc2 { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - - f2s_periph_ref_clk { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - f2s_sdram_ref_clk { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - main_pll@40 { - #address-cells = <0x1>; - #size-cells = <0x0>; - #clock-cells = <0x0>; - compatible = "altr,socfpga-pll-clock"; - clocks = <0x8>; - reg = <0x40>; - linux,phandle = <0x9>; - phandle = <0x9>; - - mpuclk@48 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - div-reg = <0xe0 0x0 0x9>; - reg = <0x48>; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - mainclk@4c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - div-reg = <0xe4 0x0 0x9>; - reg = <0x4c>; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - dbg_base_clk@50 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9 0x8>; - div-reg = <0xe8 0x0 0x9>; - reg = <0x50>; - linux,phandle = <0x13>; - phandle = <0x13>; - }; - - main_qspi_clk@54 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - reg = <0x54>; - linux,phandle = <0x1c>; - phandle = <0x1c>; - }; - - main_nand_sdmmc_clk@58 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - reg = <0x58>; - linux,phandle = <0x19>; - phandle = <0x19>; - }; - - cfg_h2f_usr0_clk@5c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - reg = <0x5c>; - linux,phandle = <0x15>; - phandle = <0x15>; - }; - }; - - periph_pll@80 { - #address-cells = <0x1>; - #size-cells = <0x0>; - #clock-cells = <0x0>; - compatible = "altr,socfpga-pll-clock"; - clocks = <0x8 0xa 0xb>; - reg = <0x80>; - linux,phandle = <0xc>; - phandle = <0xc>; - - emac0_clk@88 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x88>; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - emac1_clk@8c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x8c>; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - per_qsi_clk@90 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x90>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - - per_nand_mmc_clk@94 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x94>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - per_base_clk@98 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x98>; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - h2f_usr1_clk@9c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x9c>; - linux,phandle = <0x18>; - phandle = <0x18>; - }; - }; - - sdram_pll@c0 { - #address-cells = <0x1>; - #size-cells = <0x0>; - #clock-cells = <0x0>; - compatible = "altr,socfpga-pll-clock"; - clocks = <0x8 0xa 0xd>; - reg = <0xc0>; - linux,phandle = <0xe>; - phandle = <0xe>; - - ddr_dqs_clk@c8 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xc8>; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - ddr_2x_dqs_clk@cc { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xcc>; - linux,phandle = <0x1f>; - phandle = <0x1f>; - }; - - ddr_dq_clk@d0 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xd0>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - h2f_usr2_clk@d4 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xd4>; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - }; - - mpu_periph_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xf>; - fixed-divider = <0x4>; - linux,phandle = <0x34>; - phandle = <0x34>; - }; - - mpu_l2_ram_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xf>; - fixed-divider = <0x2>; - linux,phandle = <0x3c>; - phandle = <0x3c>; - }; - - l4_main_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10>; - clk-gate = <0x60 0x0>; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - - l3_main_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x10>; - fixed-divider = <0x1>; - linux,phandle = <0x3d>; - phandle = <0x3d>; - }; - - l3_mp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10>; - div-reg = <0x64 0x0 0x2>; - clk-gate = <0x60 0x1>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - l3_sp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x11>; - div-reg = <0x64 0x2 0x2>; - linux,phandle = <0x3e>; - phandle = <0x3e>; - }; - - l4_mp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10 0x12>; - div-reg = <0x64 0x4 0x3>; - clk-gate = <0x60 0x2>; - linux,phandle = <0x2a>; - phandle = <0x2a>; - }; - - l4_sp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10 0x12>; - div-reg = <0x64 0x7 0x3>; - clk-gate = <0x60 0x3>; - linux,phandle = <0x2b>; - phandle = <0x2b>; - }; - - dbg_at_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x13>; - div-reg = <0x68 0x0 0x2>; - clk-gate = <0x60 0x4>; - linux,phandle = <0x14>; - phandle = <0x14>; - }; - - dbg_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x14>; - div-reg = <0x68 0x2 0x2>; - clk-gate = <0x60 0x5>; - linux,phandle = <0x3f>; - phandle = <0x3f>; - }; - - dbg_trace_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x13>; - div-reg = <0x6c 0x0 0x3>; - clk-gate = <0x60 0x6>; - linux,phandle = <0x40>; - phandle = <0x40>; - }; - - dbg_timer_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x13>; - clk-gate = <0x60 0x7>; - linux,phandle = <0x41>; - phandle = <0x41>; - }; - - cfg_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x15>; - clk-gate = <0x60 0x8>; - linux,phandle = <0x42>; - phandle = <0x42>; - }; - - h2f_user0_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x15>; - clk-gate = <0x60 0x9>; - linux,phandle = <0x43>; - phandle = <0x43>; - }; - - emac_0_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x16>; - clk-gate = <0xa0 0x0>; - linux,phandle = <0x28>; - phandle = <0x28>; - }; - - emac_1_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x17>; - clk-gate = <0xa0 0x1>; - linux,phandle = <0x29>; - phandle = <0x29>; - }; - - usb_mp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x2>; - div-reg = <0xa4 0x0 0x3>; - linux,phandle = <0x36>; - phandle = <0x36>; - }; - - spi_m_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x3>; - div-reg = <0xa4 0x3 0x3>; - linux,phandle = <0x33>; - phandle = <0x33>; - }; - - can0_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x4>; - div-reg = <0xa4 0x6 0x3>; - linux,phandle = <0x6>; - phandle = <0x6>; - }; - - can1_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x5>; - div-reg = <0xa4 0x9 0x3>; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - gpio_db_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x6>; - div-reg = <0xa8 0x0 0x18>; - linux,phandle = <0x44>; - phandle = <0x44>; - }; - - h2f_user1_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x18>; - clk-gate = <0xa0 0x7>; - linux,phandle = <0x45>; - phandle = <0x45>; - }; - - sdmmc_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x19 0x1a>; - clk-gate = <0xa0 0x8>; - clk-phase = <0x0 0x87>; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - sdmmc_clk_divided { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x1b>; - clk-gate = <0xa0 0x8>; - fixed-divider = <0x4>; - linux,phandle = <0x2e>; - phandle = <0x2e>; - }; - - nand_x_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x19 0x1a>; - clk-gate = <0xa0 0x9>; - linux,phandle = <0x30>; - phandle = <0x30>; - }; - - nand_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x19 0x1a>; - clk-gate = <0xa0 0xa>; - fixed-divider = <0x4>; - linux,phandle = <0x46>; - phandle = <0x46>; - }; - - qspi_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x1c 0x1d>; - clk-gate = <0xa0 0xb>; - linux,phandle = <0x31>; - phandle = <0x31>; - }; - - ddr_dqs_clk_gate { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x1e>; - clk-gate = <0xd8 0x0>; - linux,phandle = <0x47>; - phandle = <0x47>; - }; - - ddr_2x_dqs_clk_gate { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x1f>; - clk-gate = <0xd8 0x1>; - linux,phandle = <0x48>; - phandle = <0x48>; - }; - - ddr_dq_clk_gate { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x20>; - clk-gate = <0xd8 0x2>; - linux,phandle = <0x49>; - phandle = <0x49>; - }; - - h2f_user2_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x21>; - clk-gate = <0xd8 0x3>; - linux,phandle = <0x4a>; - phandle = <0x4a>; - }; - }; - }; - - fpga_bridge@ff400000 { - compatible = "altr,socfpga-lwhps2fpga-bridge"; - reg = <0xff400000 0x100000>; - resets = <0x22 0x61>; - clocks = <0x5>; - bridge-enable = <0x0>; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - fpga_bridge@ff500000 { - compatible = "altr,socfpga-hps2fpga-bridge"; - reg = <0xff500000 0x10000>; - resets = <0x22 0x60>; - clocks = <0x5>; - bridge-enable = <0x1>; - linux,phandle = <0x25>; - phandle = <0x25>; - }; - - fpga_bridge@ff600000 { - compatible = "altr,socfpga-fpga2hps-bridge"; - reg = <0xff600000 0x10000>; - resets = <0x22 0x62>; - clocks = <0x5>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - - fpgamgr@ff706000 { - compatible = "altr,socfpga-fpga-mgr"; - reg = <0xff706000 0x1000 0xffb90000 0x4>; - interrupts = <0x0 0xaf 0x4>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - fpga-region0 { - compatible = "fpga-region"; - fpga-mgr = <0x23>; - fpga-bridges = <0x24 0x25 0x26>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0x4b>; - phandle = <0x4b>; - }; - - ethernet@ff700000 { - compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; - altr,sysmgr-syscon = <0x27 0x60 0x0>; - reg = <0xff700000 0x2000>; - interrupts = <0x0 0x73 0x4>; - interrupt-names = "macirq"; - mac-address = [00 00 00 00 00 00]; - clocks = <0x28>; - clock-names = "stmmaceth"; - resets = <0x22 0x20>; - reset-names = "stmmaceth"; - snps,multicast-filter-bins = <0x100>; - snps,perfect-filter-entries = <0x80>; - tx-fifo-depth = <0x1000>; - rx-fifo-depth = <0x1000>; - status = "disabled"; - linux,phandle = <0x4c>; - phandle = <0x4c>; - }; - - ethernet@ff702000 { - compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; - altr,sysmgr-syscon = <0x27 0x60 0x2>; - reg = <0xff702000 0x2000>; - interrupts = <0x0 0x78 0x4>; - interrupt-names = "macirq"; - mac-address = [00 00 00 00 00 00]; - clocks = <0x29>; - clock-names = "stmmaceth"; - resets = <0x22 0x21>; - reset-names = "stmmaceth"; - snps,multicast-filter-bins = <0x100>; - snps,perfect-filter-entries = <0x80>; - tx-fifo-depth = <0x1000>; - rx-fifo-depth = <0x1000>; - status = "okay"; - phy-mode = "rgmii"; - txd0-skew-ps = <0x0>; - txd1-skew-ps = <0x0>; - txd2-skew-ps = <0x0>; - txd3-skew-ps = <0x0>; - rxd0-skew-ps = <0x1a4>; - rxd1-skew-ps = <0x1a4>; - rxd2-skew-ps = <0x1a4>; - rxd3-skew-ps = <0x1a4>; - txen-skew-ps = <0x0>; - txc-skew-ps = <0x744>; - rxdv-skew-ps = <0x1a4>; - rxc-skew-ps = <0x690>; - max-frame-size = <0xed8>; - linux,phandle = <0x4d>; - phandle = <0x4d>; - }; - - gpio@ff708000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,dw-apb-gpio"; - reg = <0xff708000 0x1000>; - clocks = <0x2a>; - status = "okay"; - linux,phandle = <0x4e>; - phandle = <0x4e>; - - gpio-controller@0 { - compatible = "snps,dw-apb-gpio-port"; - gpio-controller; - #gpio-cells = <0x2>; - snps,nr-gpios = <0x1d>; - reg = <0x0>; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupts = <0x0 0xa4 0x4>; - linux,phandle = <0x4f>; - phandle = <0x4f>; - }; - }; - - gpio@ff709000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,dw-apb-gpio"; - reg = <0xff709000 0x1000>; - clocks = <0x2a>; - status = "okay"; - linux,phandle = <0x50>; - phandle = <0x50>; - - gpio-controller@0 { - compatible = "snps,dw-apb-gpio-port"; - gpio-controller; - #gpio-cells = <0x2>; - snps,nr-gpios = <0x1d>; - reg = <0x0>; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupts = <0x0 0xa5 0x4>; - linux,phandle = <0x38>; - phandle = <0x38>; - }; - }; - - gpio@ff70a000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,dw-apb-gpio"; - reg = <0xff70a000 0x1000>; - clocks = <0x2a>; - status = "okay"; - linux,phandle = <0x51>; - phandle = <0x51>; - - gpio-controller@0 { - compatible = "snps,dw-apb-gpio-port"; - gpio-controller; - #gpio-cells = <0x2>; - snps,nr-gpios = <0x1b>; - reg = <0x0>; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupts = <0x0 0xa6 0x4>; - linux,phandle = <0x2c>; - phandle = <0x2c>; - }; - }; - - i2c@ffc04000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc04000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0x9e 0x4>; - status = "okay"; - clock-frequency = <0x186a0>; - linux,phandle = <0x52>; - phandle = <0x52>; - - adxl345@0 { - compatible = "adi,adxl345"; - reg = <0x53>; - interrupt-parent = <0x2c>; - interrupts = <0x3 0x2>; - linux,phandle = <0x53>; - phandle = <0x53>; - }; - }; - - i2c@ffc05000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc05000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0x9f 0x4>; - status = "disabled"; - linux,phandle = <0x54>; - phandle = <0x54>; - }; - - i2c@ffc06000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc06000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0xa0 0x4>; - status = "disabled"; - linux,phandle = <0x55>; - phandle = <0x55>; - }; - - i2c@ffc07000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc07000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0xa1 0x4>; - status = "disabled"; - linux,phandle = <0x56>; - phandle = <0x56>; - }; - - eccmgr { - compatible = "altr,socfpga-ecc-manager"; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0x57>; - phandle = <0x57>; - - l2-ecc@ffd08140 { - compatible = "altr,socfpga-l2-ecc"; - reg = <0xffd08140 0x4>; - interrupts = <0x0 0x24 0x1 0x0 0x25 0x1>; - }; - - ocram-ecc@ffd08144 { - compatible = "altr,socfpga-ocram-ecc"; - reg = <0xffd08144 0x4>; - iram = <0x2d>; - interrupts = <0x0 0xb2 0x1 0x0 0xb3 0x1>; - }; - }; - - l2-cache@fffef000 { - compatible = "arm,pl310-cache"; - reg = <0xfffef000 0x1000>; - interrupts = <0x0 0x26 0x4>; - cache-unified; - cache-level = <0x2>; - arm,tag-latency = <0x1 0x1 0x1>; - arm,data-latency = <0x2 0x1 0x1>; - prefetch-data = <0x1>; - prefetch-instr = <0x1>; - arm,shared-override; - arm,double-linefill = <0x1>; - arm,double-linefill-incr = <0x0>; - arm,double-linefill-wrap = <0x1>; - arm,prefetch-drop = <0x0>; - arm,prefetch-offset = <0x7>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - l3regs@ff800000 { - compatible = "altr,l3regs", "syscon"; - reg = <0xff800000 0x1000>; - }; - - dwmmc0@ff704000 { - compatible = "altr,socfpga-dw-mshc"; - reg = <0xff704000 0x1000>; - interrupts = <0x0 0x8b 0x4>; - fifo-depth = <0x400>; - #address-cells = <0x1>; - #size-cells = <0x0>; - clocks = <0x2a 0x2e>; - clock-names = "biu", "ciu"; - status = "okay"; - num-slots = <0x1>; - broken-cd; - bus-width = <0x4>; - cap-mmc-highspeed; - cap-sd-highspeed; - vmmc-supply = <0x2f>; - vqmmc-supply = <0x2f>; - linux,phandle = <0x58>; - phandle = <0x58>; - }; - - nand@ff900000 { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "altr,socfpga-denali-nand"; - reg = <0xff900000 0x100000 0xffb80000 0x10000>; - reg-names = "nand_data", "denali_reg"; - interrupts = <0x0 0x90 0x4>; - dma-mask = <0xffffffff>; - clocks = <0x30>; - status = "disabled"; - linux,phandle = <0x59>; - phandle = <0x59>; - }; - - sram@ffff0000 { - compatible = "mmio-sram"; - reg = <0xffff0000 0x10000>; - linux,phandle = <0x2d>; - phandle = <0x2d>; - }; - - spi@ff705000 { - compatible = "cdns,qspi-nor"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0xff705000 0x1000 0xffa00000 0x1000>; - interrupts = <0x0 0x97 0x4>; - cdns,fifo-depth = <0x80>; - cdns,fifo-width = <0x4>; - cdns,trigger-address = <0x0>; - clocks = <0x31>; - status = "disabled"; - linux,phandle = <0x5a>; - phandle = <0x5a>; - }; - - rstmgr@ffd05000 { - #reset-cells = <0x1>; - compatible = "altr,rst-mgr"; - reg = <0xffd05000 0x1000>; - altr,modrst-offset = <0x10>; - linux,phandle = <0x22>; - phandle = <0x22>; - }; - - snoop-control-unit@fffec000 { - compatible = "arm,cortex-a9-scu"; - reg = <0xfffec000 0x100>; - linux,phandle = <0x5b>; - phandle = <0x5b>; - }; - - sdr@ffc25000 { - compatible = "altr,sdr-ctl", "syscon"; - reg = <0xffc25000 0x1000>; - linux,phandle = <0x32>; - phandle = <0x32>; - }; - - sdramedac { - compatible = "altr,sdram-edac"; - altr,sdr-syscon = <0x32>; - interrupts = <0x0 0x27 0x4>; - }; - - spi@fff00000 { - compatible = "snps,dw-apb-ssi"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0xfff00000 0x1000>; - interrupts = <0x0 0x9a 0x4>; - num-cs = <0x4>; - clocks = <0x33>; - status = "disabled"; - linux,phandle = <0x5c>; - phandle = <0x5c>; - }; - - spi@fff01000 { - compatible = "snps,dw-apb-ssi"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0xfff01000 0x1000>; - interrupts = <0x0 0x9b 0x4>; - num-cs = <0x4>; - clocks = <0x33>; - status = "disabled"; - linux,phandle = <0x5d>; - phandle = <0x5d>; - }; - - sysmgr@ffd08000 { - compatible = "altr,sys-mgr", "syscon"; - reg = <0xffd08000 0x4000>; - cpu1-start-addr = <0xffd080c4>; - linux,phandle = <0x27>; - phandle = <0x27>; - }; - - timer@fffec600 { - compatible = "arm,cortex-a9-twd-timer"; - reg = <0xfffec600 0x100>; - interrupts = <0x1 0xd 0xf01>; - clocks = <0x34>; - }; - - timer0@ffc08000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xa7 0x4>; - reg = <0xffc08000 0x1000>; - clocks = <0x2b>; - clock-names = "timer"; - linux,phandle = <0x5e>; - phandle = <0x5e>; - }; - - timer1@ffc09000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xa8 0x4>; - reg = <0xffc09000 0x1000>; - clocks = <0x2b>; - clock-names = "timer"; - linux,phandle = <0x5f>; - phandle = <0x5f>; - }; - - timer2@ffd00000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xa9 0x4>; - reg = <0xffd00000 0x1000>; - clocks = <0x8>; - clock-names = "timer"; - linux,phandle = <0x60>; - phandle = <0x60>; - }; - - timer3@ffd01000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xaa 0x4>; - reg = <0xffd01000 0x1000>; - clocks = <0x8>; - clock-names = "timer"; - linux,phandle = <0x61>; - phandle = <0x61>; - }; - - serial0@ffc02000 { - compatible = "snps,dw-apb-uart"; - reg = <0xffc02000 0x1000>; - interrupts = <0x0 0xa2 0x4>; - reg-shift = <0x2>; - reg-io-width = <0x4>; - clocks = <0x2b>; - dmas = <0x35 0x1c 0x35 0x1d>; - dma-names = "tx", "rx"; - status = "okay"; - clock-frequency = <0x1c2000>; - linux,phandle = <0x62>; - phandle = <0x62>; - }; - - serial1@ffc03000 { - compatible = "snps,dw-apb-uart"; - reg = <0xffc03000 0x1000>; - interrupts = <0x0 0xa3 0x4>; - reg-shift = <0x2>; - reg-io-width = <0x4>; - clocks = <0x2b>; - dmas = <0x35 0x1e 0x35 0x1f>; - dma-names = "tx", "rx"; - linux,phandle = <0x63>; - phandle = <0x63>; - }; - - usbphy { - #phy-cells = <0x0>; - compatible = "usb-nop-xceiv"; - status = "okay"; - linux,phandle = <0x37>; - phandle = <0x37>; - }; - - usb@ffb00000 { - compatible = "snps,dwc2"; - reg = <0xffb00000 0xffff>; - interrupts = <0x0 0x7d 0x4>; - clocks = <0x36>; - clock-names = "otg"; - resets = <0x22 0x22>; - reset-names = "dwc2"; - phys = <0x37>; - phy-names = "usb2-phy"; - status = "disabled"; - linux,phandle = <0x64>; - phandle = <0x64>; - }; - - usb@ffb40000 { - compatible = "snps,dwc2"; - reg = <0xffb40000 0xffff>; - interrupts = <0x0 0x80 0x4>; - clocks = <0x36>; - clock-names = "otg"; - resets = <0x22 0x23>; - reset-names = "dwc2"; - phys = <0x37>; - phy-names = "usb2-phy"; - status = "okay"; - linux,phandle = <0x65>; - phandle = <0x65>; - }; - - watchdog@ffd02000 { - compatible = "snps,dw-wdt"; - reg = <0xffd02000 0x1000>; - interrupts = <0x0 0xab 0x4>; - clocks = <0x8>; - status = "okay"; - linux,phandle = <0x66>; - phandle = <0x66>; - }; - - watchdog@ffd03000 { - compatible = "snps,dw-wdt"; - reg = <0xffd03000 0x1000>; - interrupts = <0x0 0xac 0x4>; - clocks = <0x8>; - status = "disabled"; - linux,phandle = <0x67>; - phandle = <0x67>; - }; - }; - - chosen { - bootargs = "earlyprintk"; - stdout-path = "serial0:115200n8"; - }; - - memory@0 { - device_type = "memory"; - reg = <0x0 0x40000000>; - }; - - 3-3-v-regulator { - compatible = "regulator-fixed"; - regulator-name = "3.3V"; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - linux,phandle = <0x2f>; - phandle = <0x2f>; - }; - - leds { - compatible = "gpio-leds"; - - hps0 { - label = "hps_led0"; - gpios = <0x38 0x18 0x0>; - linux,default-trigger = "heartbeat"; - }; - }; - - __symbols__ { - cpu0 = "/cpus/cpu@0"; - cpu1 = "/cpus/cpu@1"; - pmu = "/pmu@ff111000"; - intc = "/intc@fffed000"; - pdma = "/soc/amba/pdma@ffe01000"; - can0 = "/soc/can@ffc00000"; - can1 = "/soc/can@ffc01000"; - osc1 = "/soc/clkmgr@ffd04000/clocks/osc1"; - osc2 = "/soc/clkmgr@ffd04000/clocks/osc2"; - f2s_periph_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_periph_ref_clk"; - f2s_sdram_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_sdram_ref_clk"; - main_pll = "/soc/clkmgr@ffd04000/clocks/main_pll@40"; - mpuclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mpuclk@48"; - mainclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mainclk@4c"; - dbg_base_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/dbg_base_clk@50"; - main_qspi_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_qspi_clk@54"; - main_nand_sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_nand_sdmmc_clk@58"; - cfg_h2f_usr0_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/cfg_h2f_usr0_clk@5c"; - periph_pll = "/soc/clkmgr@ffd04000/clocks/periph_pll@80"; - emac0_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac0_clk@88"; - emac1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac1_clk@8c"; - per_qspi_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_qsi_clk@90"; - per_nand_mmc_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_nand_mmc_clk@94"; - per_base_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_base_clk@98"; - h2f_usr1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/h2f_usr1_clk@9c"; - sdram_pll = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0"; - ddr_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dqs_clk@c8"; - ddr_2x_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_2x_dqs_clk@cc"; - ddr_dq_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dq_clk@d0"; - h2f_usr2_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/h2f_usr2_clk@d4"; - mpu_periph_clk = "/soc/clkmgr@ffd04000/clocks/mpu_periph_clk"; - mpu_l2_ram_clk = "/soc/clkmgr@ffd04000/clocks/mpu_l2_ram_clk"; - l4_main_clk = "/soc/clkmgr@ffd04000/clocks/l4_main_clk"; - l3_main_clk = "/soc/clkmgr@ffd04000/clocks/l3_main_clk"; - l3_mp_clk = "/soc/clkmgr@ffd04000/clocks/l3_mp_clk"; - l3_sp_clk = "/soc/clkmgr@ffd04000/clocks/l3_sp_clk"; - l4_mp_clk = "/soc/clkmgr@ffd04000/clocks/l4_mp_clk"; - l4_sp_clk = "/soc/clkmgr@ffd04000/clocks/l4_sp_clk"; - dbg_at_clk = "/soc/clkmgr@ffd04000/clocks/dbg_at_clk"; - dbg_clk = "/soc/clkmgr@ffd04000/clocks/dbg_clk"; - dbg_trace_clk = "/soc/clkmgr@ffd04000/clocks/dbg_trace_clk"; - dbg_timer_clk = "/soc/clkmgr@ffd04000/clocks/dbg_timer_clk"; - cfg_clk = "/soc/clkmgr@ffd04000/clocks/cfg_clk"; - h2f_user0_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user0_clk"; - emac_0_clk = "/soc/clkmgr@ffd04000/clocks/emac_0_clk"; - emac_1_clk = "/soc/clkmgr@ffd04000/clocks/emac_1_clk"; - usb_mp_clk = "/soc/clkmgr@ffd04000/clocks/usb_mp_clk"; - spi_m_clk = "/soc/clkmgr@ffd04000/clocks/spi_m_clk"; - can0_clk = "/soc/clkmgr@ffd04000/clocks/can0_clk"; - can1_clk = "/soc/clkmgr@ffd04000/clocks/can1_clk"; - gpio_db_clk = "/soc/clkmgr@ffd04000/clocks/gpio_db_clk"; - h2f_user1_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user1_clk"; - sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk"; - sdmmc_clk_divided = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk_divided"; - nand_x_clk = "/soc/clkmgr@ffd04000/clocks/nand_x_clk"; - nand_clk = "/soc/clkmgr@ffd04000/clocks/nand_clk"; - qspi_clk = "/soc/clkmgr@ffd04000/clocks/qspi_clk"; - ddr_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dqs_clk_gate"; - ddr_2x_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_2x_dqs_clk_gate"; - ddr_dq_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dq_clk_gate"; - h2f_user2_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user2_clk"; - fpga_bridge_lwhps2fpga = "/soc/fpga_bridge@ff400000"; - fpga_bridge_hps2fpga = "/soc/fpga_bridge@ff500000"; - fpga_bridge_fpga2hps = "/soc/fpga_bridge@ff600000"; - fpgamgr0 = "/soc/fpgamgr@ff706000"; - fpga_region0 = "/soc/fpga-region0"; - gmac0 = "/soc/ethernet@ff700000"; - gmac1 = "/soc/ethernet@ff702000"; - gpio0 = "/soc/gpio@ff708000"; - porta = "/soc/gpio@ff708000/gpio-controller@0"; - gpio1 = "/soc/gpio@ff709000"; - portb = "/soc/gpio@ff709000/gpio-controller@0"; - gpio2 = "/soc/gpio@ff70a000"; - portc = "/soc/gpio@ff70a000/gpio-controller@0"; - i2c0 = "/soc/i2c@ffc04000"; - adxl345 = "/soc/i2c@ffc04000/adxl345@0"; - i2c1 = "/soc/i2c@ffc05000"; - i2c2 = "/soc/i2c@ffc06000"; - i2c3 = "/soc/i2c@ffc07000"; - eccmgr = "/soc/eccmgr"; - L2 = "/soc/l2-cache@fffef000"; - mmc0 = "/soc/dwmmc0@ff704000"; - mmc = "/soc/dwmmc0@ff704000"; - nand0 = "/soc/nand@ff900000"; - ocram = "/soc/sram@ffff0000"; - qspi = "/soc/spi@ff705000"; - rst = "/soc/rstmgr@ffd05000"; - scu = "/soc/snoop-control-unit@fffec000"; - sdr = "/soc/sdr@ffc25000"; - spi0 = "/soc/spi@fff00000"; - spi1 = "/soc/spi@fff01000"; - sysmgr = "/soc/sysmgr@ffd08000"; - timer0 = "/soc/timer0@ffc08000"; - timer1 = "/soc/timer1@ffc09000"; - timer2 = "/soc/timer2@ffd00000"; - timer3 = "/soc/timer3@ffd01000"; - uart0 = "/soc/serial0@ffc02000"; - uart1 = "/soc/serial1@ffc03000"; - usbphy0 = "/soc/usbphy"; - usb0 = "/soc/usb@ffb00000"; - usb1 = "/soc/usb@ffb40000"; - watchdog0 = "/soc/watchdog@ffd02000"; - watchdog1 = "/soc/watchdog@ffd03000"; - regulator_3_3v = "/3-3-v-regulator"; - }; -}; diff --git a/target/de0-nano-soc/boot/uEnv-linux-4.14.123-armv7-fpga.txt b/target/de0-nano-soc/boot/uEnv-linux-4.14.123-armv7-fpga.txt deleted file mode 100644 index 7c18660..0000000 --- a/target/de0-nano-soc/boot/uEnv-linux-4.14.123-armv7-fpga.txt +++ /dev/null @@ -1,18 +0,0 @@ -######################################################################## -#uenv: config_name = socfpga_de0_nano_soc -#uenv: menu_title = Boot linux-4.14.123-armv7-fpga with FPGA program -#uenv: menu_priority = -1 -######################################################################## - -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-socfpga.dtb -linux_boot_args=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio - -fpga_load_cmd=fatload mmc 0 $fpgadata DE0_NANO_SOC.rbf && fpga load 0 $fpgadata $filesize -fpga_set_cmd=bridge enable - -linux_load_cmd=fatload mmc 0 ${loadaddr} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr} ${linux_fdt_image} -linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${loadaddr} - ${fdt_addr} - -uenvcmd=run fpga_load_cmd && run fpga_set_cmd && run linux_load_cmd && run linux_boot_cmd - diff --git a/target/de0-nano-soc/boot/vmlinuz-4.14.123-armv7-fpga b/target/de0-nano-soc/boot/vmlinuz-4.14.123-armv7-fpga deleted file mode 100755 index 88bc5d1..0000000 --- a/target/de0-nano-soc/boot/vmlinuz-4.14.123-armv7-fpga +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17f70aaf1176c853f240f4aefada0dfc7caae11178760f7da24abfcff4ed8d61 -size 4416328 diff --git a/target/de10-nano/boot/devicetree-4.14.123-socfpga.dtb b/target/de10-nano/boot/devicetree-4.14.123-socfpga.dtb deleted file mode 100644 index e4db3c9189b8fbb3736f16f0190cd80825e827e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26896 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 - #size-cells = <0x1>; - model = "Terasic DE-0(Atlas)"; - compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga"; - - aliases { - ethernet0 = "/soc/ethernet@ff702000"; - ethernet1 = "/soc/ethernet@ff702000"; - serial0 = "/soc/serial0@ffc02000"; - serial1 = "/soc/serial1@ffc03000"; - timer0 = "/soc/timer0@ffc08000"; - timer1 = "/soc/timer1@ffc09000"; - timer2 = "/soc/timer2@ffd00000"; - timer3 = "/soc/timer3@ffd01000"; - }; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - enable-method = "altr,socfpga-smp"; - - cpu@0 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x0>; - next-level-cache = <0x1>; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - cpu@1 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x1>; - next-level-cache = <0x1>; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - }; - - pmu@ff111000 { - compatible = "arm,cortex-a9-pmu"; - interrupt-parent = <0x2>; - interrupts = <0x0 0xb0 0x4 0x0 0xb1 0x4>; - interrupt-affinity = <0x3 0x4>; - reg = <0xff111000 0x1000 0xff113000 0x1000>; - linux,phandle = <0x39>; - phandle = <0x39>; - }; - - intc@fffed000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - interrupt-controller; - reg = <0xfffed000 0x1000 0xfffec100 0x100>; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - soc { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "simple-bus"; - device_type = "soc"; - interrupt-parent = <0x2>; - ranges; - - amba { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - - pdma@ffe01000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0xffe01000 0x1000>; - interrupts = <0x0 0x68 0x4 0x0 0x69 0x4 0x0 0x6a 0x4 0x0 0x6b 0x4 0x0 0x6c 0x4 0x0 0x6d 0x4 0x0 0x6e 0x4 0x0 0x6f 0x4>; - #dma-cells = <0x1>; - #dma-channels = <0x8>; - #dma-requests = <0x20>; - clocks = <0x5>; - clock-names = "apb_pclk"; - linux,phandle = <0x35>; - phandle = <0x35>; - }; - }; - - can@ffc00000 { - compatible = "bosch,d_can"; - reg = <0xffc00000 0x1000>; - interrupts = <0x0 0x83 0x4 0x0 0x84 0x4 0x0 0x85 0x4 0x0 0x86 0x4>; - clocks = <0x6>; - status = "disabled"; - linux,phandle = <0x3a>; - phandle = <0x3a>; - }; - - can@ffc01000 { - compatible = "bosch,d_can"; - reg = <0xffc01000 0x1000>; - interrupts = <0x0 0x87 0x4 0x0 0x88 0x4 0x0 0x89 0x4 0x0 0x8a 0x4>; - clocks = <0x7>; - status = "disabled"; - linux,phandle = <0x3b>; - phandle = <0x3b>; - }; - - clkmgr@ffd04000 { - compatible = "altr,clk-mgr"; - reg = <0xffd04000 0x1000>; - - clocks { - #address-cells = <0x1>; - #size-cells = <0x0>; - - osc1 { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - clock-frequency = <0x17d7840>; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - osc2 { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - - f2s_periph_ref_clk { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - f2s_sdram_ref_clk { - #clock-cells = <0x0>; - compatible = "fixed-clock"; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - main_pll@40 { - #address-cells = <0x1>; - #size-cells = <0x0>; - #clock-cells = <0x0>; - compatible = "altr,socfpga-pll-clock"; - clocks = <0x8>; - reg = <0x40>; - linux,phandle = <0x9>; - phandle = <0x9>; - - mpuclk@48 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - div-reg = <0xe0 0x0 0x9>; - reg = <0x48>; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - mainclk@4c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - div-reg = <0xe4 0x0 0x9>; - reg = <0x4c>; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - dbg_base_clk@50 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9 0x8>; - div-reg = <0xe8 0x0 0x9>; - reg = <0x50>; - linux,phandle = <0x13>; - phandle = <0x13>; - }; - - main_qspi_clk@54 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - reg = <0x54>; - linux,phandle = <0x1c>; - phandle = <0x1c>; - }; - - main_nand_sdmmc_clk@58 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - reg = <0x58>; - linux,phandle = <0x19>; - phandle = <0x19>; - }; - - cfg_h2f_usr0_clk@5c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x9>; - reg = <0x5c>; - linux,phandle = <0x15>; - phandle = <0x15>; - }; - }; - - periph_pll@80 { - #address-cells = <0x1>; - #size-cells = <0x0>; - #clock-cells = <0x0>; - compatible = "altr,socfpga-pll-clock"; - clocks = <0x8 0xa 0xb>; - reg = <0x80>; - linux,phandle = <0xc>; - phandle = <0xc>; - - emac0_clk@88 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x88>; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - emac1_clk@8c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x8c>; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - per_qsi_clk@90 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x90>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - - per_nand_mmc_clk@94 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x94>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - per_base_clk@98 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x98>; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - h2f_usr1_clk@9c { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xc>; - reg = <0x9c>; - linux,phandle = <0x18>; - phandle = <0x18>; - }; - }; - - sdram_pll@c0 { - #address-cells = <0x1>; - #size-cells = <0x0>; - #clock-cells = <0x0>; - compatible = "altr,socfpga-pll-clock"; - clocks = <0x8 0xa 0xd>; - reg = <0xc0>; - linux,phandle = <0xe>; - phandle = <0xe>; - - ddr_dqs_clk@c8 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xc8>; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - ddr_2x_dqs_clk@cc { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xcc>; - linux,phandle = <0x1f>; - phandle = <0x1f>; - }; - - ddr_dq_clk@d0 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xd0>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - h2f_usr2_clk@d4 { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xe>; - reg = <0xd4>; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - }; - - mpu_periph_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xf>; - fixed-divider = <0x4>; - linux,phandle = <0x34>; - phandle = <0x34>; - }; - - mpu_l2_ram_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0xf>; - fixed-divider = <0x2>; - linux,phandle = <0x3c>; - phandle = <0x3c>; - }; - - l4_main_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10>; - clk-gate = <0x60 0x0>; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - - l3_main_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-perip-clk"; - clocks = <0x10>; - fixed-divider = <0x1>; - linux,phandle = <0x3d>; - phandle = <0x3d>; - }; - - l3_mp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10>; - div-reg = <0x64 0x0 0x2>; - clk-gate = <0x60 0x1>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - l3_sp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x11>; - div-reg = <0x64 0x2 0x2>; - linux,phandle = <0x3e>; - phandle = <0x3e>; - }; - - l4_mp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10 0x12>; - div-reg = <0x64 0x4 0x3>; - clk-gate = <0x60 0x2>; - linux,phandle = <0x2a>; - phandle = <0x2a>; - }; - - l4_sp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x10 0x12>; - div-reg = <0x64 0x7 0x3>; - clk-gate = <0x60 0x3>; - linux,phandle = <0x2b>; - phandle = <0x2b>; - }; - - dbg_at_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x13>; - div-reg = <0x68 0x0 0x2>; - clk-gate = <0x60 0x4>; - linux,phandle = <0x14>; - phandle = <0x14>; - }; - - dbg_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x14>; - div-reg = <0x68 0x2 0x2>; - clk-gate = <0x60 0x5>; - linux,phandle = <0x3f>; - phandle = <0x3f>; - }; - - dbg_trace_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x13>; - div-reg = <0x6c 0x0 0x3>; - clk-gate = <0x60 0x6>; - linux,phandle = <0x40>; - phandle = <0x40>; - }; - - dbg_timer_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x13>; - clk-gate = <0x60 0x7>; - linux,phandle = <0x41>; - phandle = <0x41>; - }; - - cfg_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x15>; - clk-gate = <0x60 0x8>; - linux,phandle = <0x42>; - phandle = <0x42>; - }; - - h2f_user0_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x15>; - clk-gate = <0x60 0x9>; - linux,phandle = <0x43>; - phandle = <0x43>; - }; - - emac_0_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x16>; - clk-gate = <0xa0 0x0>; - linux,phandle = <0x28>; - phandle = <0x28>; - }; - - emac_1_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x17>; - clk-gate = <0xa0 0x1>; - linux,phandle = <0x29>; - phandle = <0x29>; - }; - - usb_mp_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x2>; - div-reg = <0xa4 0x0 0x3>; - linux,phandle = <0x36>; - phandle = <0x36>; - }; - - spi_m_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x3>; - div-reg = <0xa4 0x3 0x3>; - linux,phandle = <0x33>; - phandle = <0x33>; - }; - - can0_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x4>; - div-reg = <0xa4 0x6 0x3>; - linux,phandle = <0x6>; - phandle = <0x6>; - }; - - can1_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x5>; - div-reg = <0xa4 0x9 0x3>; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - gpio_db_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x12>; - clk-gate = <0xa0 0x6>; - div-reg = <0xa8 0x0 0x18>; - linux,phandle = <0x44>; - phandle = <0x44>; - }; - - h2f_user1_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x18>; - clk-gate = <0xa0 0x7>; - linux,phandle = <0x45>; - phandle = <0x45>; - }; - - sdmmc_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x19 0x1a>; - clk-gate = <0xa0 0x8>; - clk-phase = <0x0 0x87>; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - sdmmc_clk_divided { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x1b>; - clk-gate = <0xa0 0x8>; - fixed-divider = <0x4>; - linux,phandle = <0x2e>; - phandle = <0x2e>; - }; - - nand_x_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x19 0x1a>; - clk-gate = <0xa0 0x9>; - linux,phandle = <0x30>; - phandle = <0x30>; - }; - - nand_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x19 0x1a>; - clk-gate = <0xa0 0xa>; - fixed-divider = <0x4>; - linux,phandle = <0x46>; - phandle = <0x46>; - }; - - qspi_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0xb 0x1c 0x1d>; - clk-gate = <0xa0 0xb>; - linux,phandle = <0x31>; - phandle = <0x31>; - }; - - ddr_dqs_clk_gate { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x1e>; - clk-gate = <0xd8 0x0>; - linux,phandle = <0x47>; - phandle = <0x47>; - }; - - ddr_2x_dqs_clk_gate { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x1f>; - clk-gate = <0xd8 0x1>; - linux,phandle = <0x48>; - phandle = <0x48>; - }; - - ddr_dq_clk_gate { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x20>; - clk-gate = <0xd8 0x2>; - linux,phandle = <0x49>; - phandle = <0x49>; - }; - - h2f_user2_clk { - #clock-cells = <0x0>; - compatible = "altr,socfpga-gate-clk"; - clocks = <0x21>; - clk-gate = <0xd8 0x3>; - linux,phandle = <0x4a>; - phandle = <0x4a>; - }; - }; - }; - - fpga_bridge@ff400000 { - compatible = "altr,socfpga-lwhps2fpga-bridge"; - reg = <0xff400000 0x100000>; - resets = <0x22 0x61>; - clocks = <0x5>; - bridge-enable = <0x0>; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - fpga_bridge@ff500000 { - compatible = "altr,socfpga-hps2fpga-bridge"; - reg = <0xff500000 0x10000>; - resets = <0x22 0x60>; - clocks = <0x5>; - bridge-enable = <0x1>; - linux,phandle = <0x25>; - phandle = <0x25>; - }; - - fpga_bridge@ff600000 { - compatible = "altr,socfpga-fpga2hps-bridge"; - reg = <0xff600000 0x10000>; - resets = <0x22 0x62>; - clocks = <0x5>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - - fpgamgr@ff706000 { - compatible = "altr,socfpga-fpga-mgr"; - reg = <0xff706000 0x1000 0xffb90000 0x4>; - interrupts = <0x0 0xaf 0x4>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - fpga-region0 { - compatible = "fpga-region"; - fpga-mgr = <0x23>; - fpga-bridges = <0x24 0x25 0x26>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0x4b>; - phandle = <0x4b>; - }; - - ethernet@ff700000 { - compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; - altr,sysmgr-syscon = <0x27 0x60 0x0>; - reg = <0xff700000 0x2000>; - interrupts = <0x0 0x73 0x4>; - interrupt-names = "macirq"; - mac-address = [00 00 00 00 00 00]; - clocks = <0x28>; - clock-names = "stmmaceth"; - resets = <0x22 0x20>; - reset-names = "stmmaceth"; - snps,multicast-filter-bins = <0x100>; - snps,perfect-filter-entries = <0x80>; - tx-fifo-depth = <0x1000>; - rx-fifo-depth = <0x1000>; - status = "disabled"; - linux,phandle = <0x4c>; - phandle = <0x4c>; - }; - - ethernet@ff702000 { - compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; - altr,sysmgr-syscon = <0x27 0x60 0x2>; - reg = <0xff702000 0x2000>; - interrupts = <0x0 0x78 0x4>; - interrupt-names = "macirq"; - mac-address = [00 00 00 00 00 00]; - clocks = <0x29>; - clock-names = "stmmaceth"; - resets = <0x22 0x21>; - reset-names = "stmmaceth"; - snps,multicast-filter-bins = <0x100>; - snps,perfect-filter-entries = <0x80>; - tx-fifo-depth = <0x1000>; - rx-fifo-depth = <0x1000>; - status = "okay"; - phy-mode = "rgmii"; - txd0-skew-ps = <0x0>; - txd1-skew-ps = <0x0>; - txd2-skew-ps = <0x0>; - txd3-skew-ps = <0x0>; - rxd0-skew-ps = <0x1a4>; - rxd1-skew-ps = <0x1a4>; - rxd2-skew-ps = <0x1a4>; - rxd3-skew-ps = <0x1a4>; - txen-skew-ps = <0x0>; - txc-skew-ps = <0x744>; - rxdv-skew-ps = <0x1a4>; - rxc-skew-ps = <0x690>; - max-frame-size = <0xed8>; - linux,phandle = <0x4d>; - phandle = <0x4d>; - }; - - gpio@ff708000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,dw-apb-gpio"; - reg = <0xff708000 0x1000>; - clocks = <0x2a>; - status = "okay"; - linux,phandle = <0x4e>; - phandle = <0x4e>; - - gpio-controller@0 { - compatible = "snps,dw-apb-gpio-port"; - gpio-controller; - #gpio-cells = <0x2>; - snps,nr-gpios = <0x1d>; - reg = <0x0>; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupts = <0x0 0xa4 0x4>; - linux,phandle = <0x4f>; - phandle = <0x4f>; - }; - }; - - gpio@ff709000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,dw-apb-gpio"; - reg = <0xff709000 0x1000>; - clocks = <0x2a>; - status = "okay"; - linux,phandle = <0x50>; - phandle = <0x50>; - - gpio-controller@0 { - compatible = "snps,dw-apb-gpio-port"; - gpio-controller; - #gpio-cells = <0x2>; - snps,nr-gpios = <0x1d>; - reg = <0x0>; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupts = <0x0 0xa5 0x4>; - linux,phandle = <0x38>; - phandle = <0x38>; - }; - }; - - gpio@ff70a000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,dw-apb-gpio"; - reg = <0xff70a000 0x1000>; - clocks = <0x2a>; - status = "okay"; - linux,phandle = <0x51>; - phandle = <0x51>; - - gpio-controller@0 { - compatible = "snps,dw-apb-gpio-port"; - gpio-controller; - #gpio-cells = <0x2>; - snps,nr-gpios = <0x1b>; - reg = <0x0>; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupts = <0x0 0xa6 0x4>; - linux,phandle = <0x2c>; - phandle = <0x2c>; - }; - }; - - i2c@ffc04000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc04000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0x9e 0x4>; - status = "okay"; - clock-frequency = <0x186a0>; - linux,phandle = <0x52>; - phandle = <0x52>; - - adxl345@0 { - compatible = "adi,adxl345"; - reg = <0x53>; - interrupt-parent = <0x2c>; - interrupts = <0x3 0x2>; - linux,phandle = <0x53>; - phandle = <0x53>; - }; - }; - - i2c@ffc05000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc05000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0x9f 0x4>; - status = "disabled"; - linux,phandle = <0x54>; - phandle = <0x54>; - }; - - i2c@ffc06000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc06000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0xa0 0x4>; - status = "disabled"; - linux,phandle = <0x55>; - phandle = <0x55>; - }; - - i2c@ffc07000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,designware-i2c"; - reg = <0xffc07000 0x1000>; - clocks = <0x2b>; - interrupts = <0x0 0xa1 0x4>; - status = "disabled"; - linux,phandle = <0x56>; - phandle = <0x56>; - }; - - eccmgr { - compatible = "altr,socfpga-ecc-manager"; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0x57>; - phandle = <0x57>; - - l2-ecc@ffd08140 { - compatible = "altr,socfpga-l2-ecc"; - reg = <0xffd08140 0x4>; - interrupts = <0x0 0x24 0x1 0x0 0x25 0x1>; - }; - - ocram-ecc@ffd08144 { - compatible = "altr,socfpga-ocram-ecc"; - reg = <0xffd08144 0x4>; - iram = <0x2d>; - interrupts = <0x0 0xb2 0x1 0x0 0xb3 0x1>; - }; - }; - - l2-cache@fffef000 { - compatible = "arm,pl310-cache"; - reg = <0xfffef000 0x1000>; - interrupts = <0x0 0x26 0x4>; - cache-unified; - cache-level = <0x2>; - arm,tag-latency = <0x1 0x1 0x1>; - arm,data-latency = <0x2 0x1 0x1>; - prefetch-data = <0x1>; - prefetch-instr = <0x1>; - arm,shared-override; - arm,double-linefill = <0x1>; - arm,double-linefill-incr = <0x0>; - arm,double-linefill-wrap = <0x1>; - arm,prefetch-drop = <0x0>; - arm,prefetch-offset = <0x7>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - l3regs@ff800000 { - compatible = "altr,l3regs", "syscon"; - reg = <0xff800000 0x1000>; - }; - - dwmmc0@ff704000 { - compatible = "altr,socfpga-dw-mshc"; - reg = <0xff704000 0x1000>; - interrupts = <0x0 0x8b 0x4>; - fifo-depth = <0x400>; - #address-cells = <0x1>; - #size-cells = <0x0>; - clocks = <0x2a 0x2e>; - clock-names = "biu", "ciu"; - status = "okay"; - num-slots = <0x1>; - broken-cd; - bus-width = <0x4>; - cap-mmc-highspeed; - cap-sd-highspeed; - vmmc-supply = <0x2f>; - vqmmc-supply = <0x2f>; - linux,phandle = <0x58>; - phandle = <0x58>; - }; - - nand@ff900000 { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "altr,socfpga-denali-nand"; - reg = <0xff900000 0x100000 0xffb80000 0x10000>; - reg-names = "nand_data", "denali_reg"; - interrupts = <0x0 0x90 0x4>; - dma-mask = <0xffffffff>; - clocks = <0x30>; - status = "disabled"; - linux,phandle = <0x59>; - phandle = <0x59>; - }; - - sram@ffff0000 { - compatible = "mmio-sram"; - reg = <0xffff0000 0x10000>; - linux,phandle = <0x2d>; - phandle = <0x2d>; - }; - - spi@ff705000 { - compatible = "cdns,qspi-nor"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0xff705000 0x1000 0xffa00000 0x1000>; - interrupts = <0x0 0x97 0x4>; - cdns,fifo-depth = <0x80>; - cdns,fifo-width = <0x4>; - cdns,trigger-address = <0x0>; - clocks = <0x31>; - status = "disabled"; - linux,phandle = <0x5a>; - phandle = <0x5a>; - }; - - rstmgr@ffd05000 { - #reset-cells = <0x1>; - compatible = "altr,rst-mgr"; - reg = <0xffd05000 0x1000>; - altr,modrst-offset = <0x10>; - linux,phandle = <0x22>; - phandle = <0x22>; - }; - - snoop-control-unit@fffec000 { - compatible = "arm,cortex-a9-scu"; - reg = <0xfffec000 0x100>; - linux,phandle = <0x5b>; - phandle = <0x5b>; - }; - - sdr@ffc25000 { - compatible = "altr,sdr-ctl", "syscon"; - reg = <0xffc25000 0x1000>; - linux,phandle = <0x32>; - phandle = <0x32>; - }; - - sdramedac { - compatible = "altr,sdram-edac"; - altr,sdr-syscon = <0x32>; - interrupts = <0x0 0x27 0x4>; - }; - - spi@fff00000 { - compatible = "snps,dw-apb-ssi"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0xfff00000 0x1000>; - interrupts = <0x0 0x9a 0x4>; - num-cs = <0x4>; - clocks = <0x33>; - status = "disabled"; - linux,phandle = <0x5c>; - phandle = <0x5c>; - }; - - spi@fff01000 { - compatible = "snps,dw-apb-ssi"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0xfff01000 0x1000>; - interrupts = <0x0 0x9b 0x4>; - num-cs = <0x4>; - clocks = <0x33>; - status = "disabled"; - linux,phandle = <0x5d>; - phandle = <0x5d>; - }; - - sysmgr@ffd08000 { - compatible = "altr,sys-mgr", "syscon"; - reg = <0xffd08000 0x4000>; - cpu1-start-addr = <0xffd080c4>; - linux,phandle = <0x27>; - phandle = <0x27>; - }; - - timer@fffec600 { - compatible = "arm,cortex-a9-twd-timer"; - reg = <0xfffec600 0x100>; - interrupts = <0x1 0xd 0xf01>; - clocks = <0x34>; - }; - - timer0@ffc08000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xa7 0x4>; - reg = <0xffc08000 0x1000>; - clocks = <0x2b>; - clock-names = "timer"; - linux,phandle = <0x5e>; - phandle = <0x5e>; - }; - - timer1@ffc09000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xa8 0x4>; - reg = <0xffc09000 0x1000>; - clocks = <0x2b>; - clock-names = "timer"; - linux,phandle = <0x5f>; - phandle = <0x5f>; - }; - - timer2@ffd00000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xa9 0x4>; - reg = <0xffd00000 0x1000>; - clocks = <0x8>; - clock-names = "timer"; - linux,phandle = <0x60>; - phandle = <0x60>; - }; - - timer3@ffd01000 { - compatible = "snps,dw-apb-timer"; - interrupts = <0x0 0xaa 0x4>; - reg = <0xffd01000 0x1000>; - clocks = <0x8>; - clock-names = "timer"; - linux,phandle = <0x61>; - phandle = <0x61>; - }; - - serial0@ffc02000 { - compatible = "snps,dw-apb-uart"; - reg = <0xffc02000 0x1000>; - interrupts = <0x0 0xa2 0x4>; - reg-shift = <0x2>; - reg-io-width = <0x4>; - clocks = <0x2b>; - dmas = <0x35 0x1c 0x35 0x1d>; - dma-names = "tx", "rx"; - status = "okay"; - clock-frequency = <0x1c2000>; - linux,phandle = <0x62>; - phandle = <0x62>; - }; - - serial1@ffc03000 { - compatible = "snps,dw-apb-uart"; - reg = <0xffc03000 0x1000>; - interrupts = <0x0 0xa3 0x4>; - reg-shift = <0x2>; - reg-io-width = <0x4>; - clocks = <0x2b>; - dmas = <0x35 0x1e 0x35 0x1f>; - dma-names = "tx", "rx"; - linux,phandle = <0x63>; - phandle = <0x63>; - }; - - usbphy { - #phy-cells = <0x0>; - compatible = "usb-nop-xceiv"; - status = "okay"; - linux,phandle = <0x37>; - phandle = <0x37>; - }; - - usb@ffb00000 { - compatible = "snps,dwc2"; - reg = <0xffb00000 0xffff>; - interrupts = <0x0 0x7d 0x4>; - clocks = <0x36>; - clock-names = "otg"; - resets = <0x22 0x22>; - reset-names = "dwc2"; - phys = <0x37>; - phy-names = "usb2-phy"; - status = "disabled"; - linux,phandle = <0x64>; - phandle = <0x64>; - }; - - usb@ffb40000 { - compatible = "snps,dwc2"; - reg = <0xffb40000 0xffff>; - interrupts = <0x0 0x80 0x4>; - clocks = <0x36>; - clock-names = "otg"; - resets = <0x22 0x23>; - reset-names = "dwc2"; - phys = <0x37>; - phy-names = "usb2-phy"; - status = "okay"; - linux,phandle = <0x65>; - phandle = <0x65>; - }; - - watchdog@ffd02000 { - compatible = "snps,dw-wdt"; - reg = <0xffd02000 0x1000>; - interrupts = <0x0 0xab 0x4>; - clocks = <0x8>; - status = "okay"; - linux,phandle = <0x66>; - phandle = <0x66>; - }; - - watchdog@ffd03000 { - compatible = "snps,dw-wdt"; - reg = <0xffd03000 0x1000>; - interrupts = <0x0 0xac 0x4>; - clocks = <0x8>; - status = "disabled"; - linux,phandle = <0x67>; - phandle = <0x67>; - }; - }; - - chosen { - bootargs = "earlyprintk"; - stdout-path = "serial0:115200n8"; - }; - - memory@0 { - device_type = "memory"; - reg = <0x0 0x40000000>; - }; - - 3-3-v-regulator { - compatible = "regulator-fixed"; - regulator-name = "3.3V"; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - linux,phandle = <0x2f>; - phandle = <0x2f>; - }; - - leds { - compatible = "gpio-leds"; - - hps0 { - label = "hps_led0"; - gpios = <0x38 0x18 0x0>; - linux,default-trigger = "heartbeat"; - }; - }; - - __symbols__ { - cpu0 = "/cpus/cpu@0"; - cpu1 = "/cpus/cpu@1"; - pmu = "/pmu@ff111000"; - intc = "/intc@fffed000"; - pdma = "/soc/amba/pdma@ffe01000"; - can0 = "/soc/can@ffc00000"; - can1 = "/soc/can@ffc01000"; - osc1 = "/soc/clkmgr@ffd04000/clocks/osc1"; - osc2 = "/soc/clkmgr@ffd04000/clocks/osc2"; - f2s_periph_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_periph_ref_clk"; - f2s_sdram_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_sdram_ref_clk"; - main_pll = "/soc/clkmgr@ffd04000/clocks/main_pll@40"; - mpuclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mpuclk@48"; - mainclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mainclk@4c"; - dbg_base_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/dbg_base_clk@50"; - main_qspi_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_qspi_clk@54"; - main_nand_sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_nand_sdmmc_clk@58"; - cfg_h2f_usr0_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/cfg_h2f_usr0_clk@5c"; - periph_pll = "/soc/clkmgr@ffd04000/clocks/periph_pll@80"; - emac0_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac0_clk@88"; - emac1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac1_clk@8c"; - per_qspi_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_qsi_clk@90"; - per_nand_mmc_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_nand_mmc_clk@94"; - per_base_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_base_clk@98"; - h2f_usr1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/h2f_usr1_clk@9c"; - sdram_pll = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0"; - ddr_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dqs_clk@c8"; - ddr_2x_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_2x_dqs_clk@cc"; - ddr_dq_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dq_clk@d0"; - h2f_usr2_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/h2f_usr2_clk@d4"; - mpu_periph_clk = "/soc/clkmgr@ffd04000/clocks/mpu_periph_clk"; - mpu_l2_ram_clk = "/soc/clkmgr@ffd04000/clocks/mpu_l2_ram_clk"; - l4_main_clk = "/soc/clkmgr@ffd04000/clocks/l4_main_clk"; - l3_main_clk = "/soc/clkmgr@ffd04000/clocks/l3_main_clk"; - l3_mp_clk = "/soc/clkmgr@ffd04000/clocks/l3_mp_clk"; - l3_sp_clk = "/soc/clkmgr@ffd04000/clocks/l3_sp_clk"; - l4_mp_clk = "/soc/clkmgr@ffd04000/clocks/l4_mp_clk"; - l4_sp_clk = "/soc/clkmgr@ffd04000/clocks/l4_sp_clk"; - dbg_at_clk = "/soc/clkmgr@ffd04000/clocks/dbg_at_clk"; - dbg_clk = "/soc/clkmgr@ffd04000/clocks/dbg_clk"; - dbg_trace_clk = "/soc/clkmgr@ffd04000/clocks/dbg_trace_clk"; - dbg_timer_clk = "/soc/clkmgr@ffd04000/clocks/dbg_timer_clk"; - cfg_clk = "/soc/clkmgr@ffd04000/clocks/cfg_clk"; - h2f_user0_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user0_clk"; - emac_0_clk = "/soc/clkmgr@ffd04000/clocks/emac_0_clk"; - emac_1_clk = "/soc/clkmgr@ffd04000/clocks/emac_1_clk"; - usb_mp_clk = "/soc/clkmgr@ffd04000/clocks/usb_mp_clk"; - spi_m_clk = "/soc/clkmgr@ffd04000/clocks/spi_m_clk"; - can0_clk = "/soc/clkmgr@ffd04000/clocks/can0_clk"; - can1_clk = "/soc/clkmgr@ffd04000/clocks/can1_clk"; - gpio_db_clk = "/soc/clkmgr@ffd04000/clocks/gpio_db_clk"; - h2f_user1_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user1_clk"; - sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk"; - sdmmc_clk_divided = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk_divided"; - nand_x_clk = "/soc/clkmgr@ffd04000/clocks/nand_x_clk"; - nand_clk = "/soc/clkmgr@ffd04000/clocks/nand_clk"; - qspi_clk = "/soc/clkmgr@ffd04000/clocks/qspi_clk"; - ddr_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dqs_clk_gate"; - ddr_2x_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_2x_dqs_clk_gate"; - ddr_dq_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dq_clk_gate"; - h2f_user2_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user2_clk"; - fpga_bridge_lwhps2fpga = "/soc/fpga_bridge@ff400000"; - fpga_bridge_hps2fpga = "/soc/fpga_bridge@ff500000"; - fpga_bridge_fpga2hps = "/soc/fpga_bridge@ff600000"; - fpgamgr0 = "/soc/fpgamgr@ff706000"; - fpga_region0 = "/soc/fpga-region0"; - gmac0 = "/soc/ethernet@ff700000"; - gmac1 = "/soc/ethernet@ff702000"; - gpio0 = "/soc/gpio@ff708000"; - porta = "/soc/gpio@ff708000/gpio-controller@0"; - gpio1 = "/soc/gpio@ff709000"; - portb = "/soc/gpio@ff709000/gpio-controller@0"; - gpio2 = "/soc/gpio@ff70a000"; - portc = "/soc/gpio@ff70a000/gpio-controller@0"; - i2c0 = "/soc/i2c@ffc04000"; - adxl345 = "/soc/i2c@ffc04000/adxl345@0"; - i2c1 = "/soc/i2c@ffc05000"; - i2c2 = "/soc/i2c@ffc06000"; - i2c3 = "/soc/i2c@ffc07000"; - eccmgr = "/soc/eccmgr"; - L2 = "/soc/l2-cache@fffef000"; - mmc0 = "/soc/dwmmc0@ff704000"; - mmc = "/soc/dwmmc0@ff704000"; - nand0 = "/soc/nand@ff900000"; - ocram = "/soc/sram@ffff0000"; - qspi = "/soc/spi@ff705000"; - rst = "/soc/rstmgr@ffd05000"; - scu = "/soc/snoop-control-unit@fffec000"; - sdr = "/soc/sdr@ffc25000"; - spi0 = "/soc/spi@fff00000"; - spi1 = "/soc/spi@fff01000"; - sysmgr = "/soc/sysmgr@ffd08000"; - timer0 = "/soc/timer0@ffc08000"; - timer1 = "/soc/timer1@ffc09000"; - timer2 = "/soc/timer2@ffd00000"; - timer3 = "/soc/timer3@ffd01000"; - uart0 = "/soc/serial0@ffc02000"; - uart1 = "/soc/serial1@ffc03000"; - usbphy0 = "/soc/usbphy"; - usb0 = "/soc/usb@ffb00000"; - usb1 = "/soc/usb@ffb40000"; - watchdog0 = "/soc/watchdog@ffd02000"; - watchdog1 = "/soc/watchdog@ffd03000"; - regulator_3_3v = "/3-3-v-regulator"; - }; -}; diff --git a/target/de10-nano/boot/uEnv-linux-4.14.123-armv7-fpga.txt b/target/de10-nano/boot/uEnv-linux-4.14.123-armv7-fpga.txt deleted file mode 100644 index e115198..0000000 --- a/target/de10-nano/boot/uEnv-linux-4.14.123-armv7-fpga.txt +++ /dev/null @@ -1,14 +0,0 @@ -######################################################################## -#uenv: config_name = socfpga_de10_nano -#uenv: menu_title = Boot linux-4.14.123-armv7-fpga -#uenv: menu_priority = -1 -######################################################################## - -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-socfpga.dtb -linux_boot_args=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio - -linux_load_cmd=fatload mmc 0 ${loadaddr} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr} ${linux_fdt_image} -linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${loadaddr} - ${fdt_addr} - -uenvcmd=run linux_load_cmd && run linux_boot_cmd diff --git a/target/de10-nano/boot/vmlinuz-4.14.123-armv7-fpga b/target/de10-nano/boot/vmlinuz-4.14.123-armv7-fpga deleted file mode 100755 index 88bc5d1..0000000 --- a/target/de10-nano/boot/vmlinuz-4.14.123-armv7-fpga +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17f70aaf1176c853f240f4aefada0dfc7caae11178760f7da24abfcff4ed8d61 -size 4416328 diff --git a/target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dtb b/target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dtb deleted file mode 100644 index 7d549b817dda4fdeee4ebc80f82d401f18f9fe55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10928 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 diff --git a/target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dts b/target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dts deleted file mode 100644 index b50a69e..0000000 --- a/target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dts +++ /dev/null @@ -1,516 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "digilent,zynq-pynqz1", "xlnx,zynq-7000"; - model = "Zynq PYNQ-Z1 Development Board"; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - - cpu@0 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x0>; - clocks = <0x1 0x3>; - clock-latency = <0x3e8>; - cpu0-supply = <0x2>; - operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240>; - linux,phandle = <0x9>; - phandle = <0x9>; - }; - - cpu@1 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x1>; - clocks = <0x1 0x3>; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - }; - - fpga-full { - compatible = "fpga-region"; - fpga-mgr = <0x3>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - pmu@f8891000 { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>; - interrupt-parent = <0x4>; - reg = <0xf8891000 0x1000 0xf8893000 0x1000>; - }; - - fixedregulator { - compatible = "regulator-fixed"; - regulator-name = "VCCPINT"; - regulator-min-microvolt = <0xf4240>; - regulator-max-microvolt = <0xf4240>; - regulator-boot-on; - regulator-always-on; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - amba { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x1>; - interrupt-parent = <0x4>; - ranges; - linux,phandle = <0xc>; - phandle = <0xc>; - - adc@f8007100 { - compatible = "xlnx,zynq-xadc-1.00.a"; - reg = <0xf8007100 0x20>; - interrupts = <0x0 0x7 0x4>; - interrupt-parent = <0x4>; - clocks = <0x1 0xc>; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - can@e0008000 { - compatible = "xlnx,zynq-can-1.0"; - status = "disabled"; - clocks = <0x1 0x13 0x1 0x24>; - clock-names = "can_clk", "pclk"; - reg = <0xe0008000 0x1000>; - interrupts = <0x0 0x1c 0x4>; - interrupt-parent = <0x4>; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - linux,phandle = <0xe>; - phandle = <0xe>; - }; - - can@e0009000 { - compatible = "xlnx,zynq-can-1.0"; - status = "disabled"; - clocks = <0x1 0x14 0x1 0x25>; - clock-names = "can_clk", "pclk"; - reg = <0xe0009000 0x1000>; - interrupts = <0x0 0x33 0x4>; - interrupt-parent = <0x4>; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - gpio@e000a000 { - compatible = "xlnx,zynq-gpio-1.0"; - #gpio-cells = <0x2>; - clocks = <0x1 0x2a>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x14 0x4>; - reg = <0xe000a000 0x1000>; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - i2c@e0004000 { - compatible = "cdns,i2c-r1p10"; - status = "disabled"; - clocks = <0x1 0x26>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x19 0x4>; - reg = <0xe0004000 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - i2c@e0005000 { - compatible = "cdns,i2c-r1p10"; - status = "disabled"; - clocks = <0x1 0x27>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x30 0x4>; - reg = <0xe0005000 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - interrupt-controller@f8f01000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - interrupt-controller; - reg = <0xf8f01000 0x1000 0xf8f00100 0x100>; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - - cache-controller@f8f02000 { - compatible = "arm,pl310-cache"; - reg = <0xf8f02000 0x1000>; - interrupts = <0x0 0x2 0x4>; - arm,data-latency = <0x3 0x2 0x2>; - arm,tag-latency = <0x2 0x2 0x2>; - cache-unified; - cache-level = <0x2>; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - memory-controller@f8006000 { - compatible = "xlnx,zynq-ddrc-a05"; - reg = <0xf8006000 0x1000>; - linux,phandle = <0x13>; - phandle = <0x13>; - }; - - serial@e0000000 { - compatible = "xlnx,xuartps", "cdns,uart-r1p8"; - status = "okay"; - clocks = <0x1 0x17 0x1 0x28>; - clock-names = "uart_clk", "pclk"; - reg = <0xe0000000 0x1000>; - interrupts = <0x0 0x1b 0x4>; - clock-frequency = <0x1c2000>; - linux,phandle = <0x14>; - phandle = <0x14>; - }; - - serial@e0001000 { - compatible = "xlnx,xuartps", "cdns,uart-r1p8"; - status = "disabled"; - clocks = <0x1 0x18 0x1 0x29>; - clock-names = "uart_clk", "pclk"; - reg = <0xe0001000 0x1000>; - interrupts = <0x0 0x32 0x4>; - linux,phandle = <0x15>; - phandle = <0x15>; - }; - - spi@e0006000 { - compatible = "xlnx,zynq-spi-r1p6"; - reg = <0xe0006000 0x1000>; - status = "disabled"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x1a 0x4>; - clocks = <0x1 0x19 0x1 0x22>; - clock-names = "ref_clk", "pclk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - spi@e0007000 { - compatible = "xlnx,zynq-spi-r1p6"; - reg = <0xe0007000 0x1000>; - status = "disabled"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x31 0x4>; - clocks = <0x1 0x1a 0x1 0x23>; - clock-names = "ref_clk", "pclk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - ethernet@e000b000 { - compatible = "cdns,zynq-gem", "cdns,gem"; - reg = <0xe000b000 0x1000>; - status = "okay"; - interrupts = <0x0 0x16 0x4>; - clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>; - clock-names = "pclk", "hclk", "tx_clk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phy-mode = "rgmii-id"; - phy-handle = <0x5>; - linux,phandle = <0x18>; - phandle = <0x18>; - - ethernet-phy@0 { - reg = <0x1>; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - }; - - ethernet@e000c000 { - compatible = "cdns,zynq-gem", "cdns,gem"; - reg = <0xe000c000 0x1000>; - status = "disabled"; - interrupts = <0x0 0x2d 0x4>; - clocks = <0x1 0x1f 0x1 0x1f 0x1 0xe>; - clock-names = "pclk", "hclk", "tx_clk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x19>; - phandle = <0x19>; - }; - - sdhci@e0100000 { - compatible = "arasan,sdhci-8.9a"; - status = "okay"; - clock-names = "clk_xin", "clk_ahb"; - clocks = <0x1 0x15 0x1 0x20>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x18 0x4>; - reg = <0xe0100000 0x1000>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - sdhci@e0101000 { - compatible = "arasan,sdhci-8.9a"; - status = "disabled"; - clock-names = "clk_xin", "clk_ahb"; - clocks = <0x1 0x16 0x1 0x21>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x2f 0x4>; - reg = <0xe0101000 0x1000>; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - slcr@f8000000 { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; - reg = <0xf8000000 0x1000>; - ranges; - linux,phandle = <0x6>; - phandle = <0x6>; - - clkc@100 { - #clock-cells = <0x1>; - compatible = "xlnx,ps7-clkc"; - fclk-enable = <0xf>; - clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb"; - reg = <0x100 0x100>; - ps-clk-frequency = <0x2faf080>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - rstc@200 { - compatible = "xlnx,zynq-reset"; - reg = <0x200 0x48>; - #reset-cells = <0x1>; - syscon = <0x6>; - linux,phandle = <0x1c>; - phandle = <0x1c>; - }; - - pinctrl@700 { - compatible = "xlnx,pinctrl-zynq"; - reg = <0x700 0x200>; - syscon = <0x6>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - }; - - dmac@f8003000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0xf8003000 0x1000>; - interrupt-parent = <0x4>; - interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7"; - interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>; - #dma-cells = <0x1>; - #dma-channels = <0x8>; - #dma-requests = <0x4>; - clocks = <0x1 0x1b>; - clock-names = "apb_pclk"; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - devcfg@f8007000 { - compatible = "xlnx,zynq-devcfg-1.0"; - reg = <0xf8007000 0x100>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x1 0xc>; - clock-names = "ref_clk"; - syscon = <0x6>; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - fpga-region0 { - compatible = "fpga-region"; - fpga-mgr = <0x3>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0x1f>; - phandle = <0x1f>; - }; - - timer@f8f00200 { - compatible = "arm,cortex-a9-global-timer"; - reg = <0xf8f00200 0x20>; - interrupts = <0x1 0xb 0x301>; - interrupt-parent = <0x4>; - clocks = <0x1 0x4>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - timer@f8001000 { - interrupt-parent = <0x4>; - interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>; - compatible = "cdns,ttc"; - clocks = <0x1 0x6>; - reg = <0xf8001000 0x1000>; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - - timer@f8002000 { - interrupt-parent = <0x4>; - interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>; - compatible = "cdns,ttc"; - clocks = <0x1 0x6>; - reg = <0xf8002000 0x1000>; - linux,phandle = <0x22>; - phandle = <0x22>; - }; - - timer@f8f00600 { - interrupt-parent = <0x4>; - interrupts = <0x1 0xd 0x301>; - compatible = "arm,cortex-a9-twd-timer"; - reg = <0xf8f00600 0x20>; - clocks = <0x1 0x4>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - usb@e0002000 { - compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; - status = "okay"; - clocks = <0x1 0x1c>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x15 0x4>; - reg = <0xe0002000 0x1000>; - phy_type = "ulpi"; - dr_mode = "host"; - usb-reset = <0x7 0x2e 0x0>; - usb-phy = <0x8>; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - usb@e0003000 { - compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; - status = "disabled"; - clocks = <0x1 0x1d>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x2c 0x4>; - reg = <0xe0003000 0x1000>; - phy_type = "ulpi"; - linux,phandle = <0x25>; - phandle = <0x25>; - }; - - watchdog@f8005000 { - clocks = <0x1 0x2d>; - compatible = "cdns,wdt-r1p2"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x9 0x1>; - reg = <0xf8005000 0x1000>; - timeout-sec = <0xa>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - }; - - reserved-memory { - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - - zynq-dma-unusable-area { - reg = <0x0 0x80000>; - }; - }; - - aliases { - ethernet0 = "/amba/ethernet@e000b000"; - serial0 = "/amba/serial@e0000000"; - }; - - memory { - device_type = "memory"; - reg = <0x0 0x20000000>; - }; - - chosen { - bootargs = "earlycon"; - stdout-path = "serial0:115200n8"; - }; - - phy0 { - compatible = "ulpi-phy"; - #phy-cells = <0x0>; - reg = <0xe0002000 0x1000>; - view-port = <0x170>; - drv-vbus; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - __symbols__ { - cpu0 = "/cpus/cpu@0"; - cpu1 = "/cpus/cpu@1"; - fpga_full = "/fpga-full"; - regulator_vccpint = "/fixedregulator"; - amba = "/amba"; - adc = "/amba/adc@f8007100"; - can0 = "/amba/can@e0008000"; - can1 = "/amba/can@e0009000"; - gpio0 = "/amba/gpio@e000a000"; - i2c0 = "/amba/i2c@e0004000"; - i2c1 = "/amba/i2c@e0005000"; - intc = "/amba/interrupt-controller@f8f01000"; - L2 = "/amba/cache-controller@f8f02000"; - mc = "/amba/memory-controller@f8006000"; - uart0 = "/amba/serial@e0000000"; - uart1 = "/amba/serial@e0001000"; - spi0 = "/amba/spi@e0006000"; - spi1 = "/amba/spi@e0007000"; - gem0 = "/amba/ethernet@e000b000"; - ethernet_phy = "/amba/ethernet@e000b000/ethernet-phy@0"; - gem1 = "/amba/ethernet@e000c000"; - sdhci0 = "/amba/sdhci@e0100000"; - sdhci1 = "/amba/sdhci@e0101000"; - slcr = "/amba/slcr@f8000000"; - clkc = "/amba/slcr@f8000000/clkc@100"; - rstc = "/amba/slcr@f8000000/rstc@200"; - pinctrl0 = "/amba/slcr@f8000000/pinctrl@700"; - dmac_s = "/amba/dmac@f8003000"; - devcfg = "/amba/devcfg@f8007000"; - fpga_region0 = "/amba/fpga-region0"; - global_timer = "/amba/timer@f8f00200"; - ttc0 = "/amba/timer@f8001000"; - ttc1 = "/amba/timer@f8002000"; - scutimer = "/amba/timer@f8f00600"; - usb0 = "/amba/usb@e0002000"; - usb1 = "/amba/usb@e0003000"; - watchdog0 = "/amba/watchdog@f8005000"; - usb_phy0 = "/phy0"; - }; -}; diff --git a/target/zynq-pynqz1/boot/uEnv-linux-4.14.123-armv7-fpga.txt b/target/zynq-pynqz1/boot/uEnv-linux-4.14.123-armv7-fpga.txt deleted file mode 100644 index cd50298..0000000 --- a/target/zynq-pynqz1/boot/uEnv-linux-4.14.123-armv7-fpga.txt +++ /dev/null @@ -1,14 +0,0 @@ -######################################################################## -#uenv: config_name = zynq_pynqz1 -#uenv: menu_title = Boot linux-4.14.123-armv7-fpga -#uenv: menu_priority = -1 -######################################################################## - -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-zynq-pynqz1.dtb -linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio - -linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} -linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${fdt_addr_r} - -uenvcmd=run linux_load_cmd && run linux_boot_cmd diff --git a/target/zynq-pynqz1/boot/vmlinuz-4.14.123-armv7-fpga b/target/zynq-pynqz1/boot/vmlinuz-4.14.123-armv7-fpga deleted file mode 100755 index 88bc5d1..0000000 --- a/target/zynq-pynqz1/boot/vmlinuz-4.14.123-armv7-fpga +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17f70aaf1176c853f240f4aefada0dfc7caae11178760f7da24abfcff4ed8d61 -size 4416328 diff --git a/target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dtb b/target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dtb deleted file mode 100644 index a19018eafe009458018cd64a8a48deeaa7a26ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10898 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 diff --git a/target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dts b/target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dts deleted file mode 100644 index 0367e9e..0000000 --- a/target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dts +++ /dev/null @@ -1,515 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "digilent,zynq-zybo", "xlnx,zynq-7000"; - model = "Zynq ZYBO Z7 Development Board"; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - - cpu@0 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x0>; - clocks = <0x1 0x3>; - clock-latency = <0x3e8>; - cpu0-supply = <0x2>; - operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240>; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - cpu@1 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x1>; - clocks = <0x1 0x3>; - linux,phandle = <0x9>; - phandle = <0x9>; - }; - }; - - fpga-full { - compatible = "fpga-region"; - fpga-mgr = <0x3>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - - pmu@f8891000 { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>; - interrupt-parent = <0x4>; - reg = <0xf8891000 0x1000 0xf8893000 0x1000>; - }; - - fixedregulator { - compatible = "regulator-fixed"; - regulator-name = "VCCPINT"; - regulator-min-microvolt = <0xf4240>; - regulator-max-microvolt = <0xf4240>; - regulator-boot-on; - regulator-always-on; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - amba { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x1>; - interrupt-parent = <0x4>; - ranges; - linux,phandle = <0xb>; - phandle = <0xb>; - - adc@f8007100 { - compatible = "xlnx,zynq-xadc-1.00.a"; - reg = <0xf8007100 0x20>; - interrupts = <0x0 0x7 0x4>; - interrupt-parent = <0x4>; - clocks = <0x1 0xc>; - linux,phandle = <0xc>; - phandle = <0xc>; - }; - - can@e0008000 { - compatible = "xlnx,zynq-can-1.0"; - status = "disabled"; - clocks = <0x1 0x13 0x1 0x24>; - clock-names = "can_clk", "pclk"; - reg = <0xe0008000 0x1000>; - interrupts = <0x0 0x1c 0x4>; - interrupt-parent = <0x4>; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - can@e0009000 { - compatible = "xlnx,zynq-can-1.0"; - status = "disabled"; - clocks = <0x1 0x14 0x1 0x25>; - clock-names = "can_clk", "pclk"; - reg = <0xe0009000 0x1000>; - interrupts = <0x0 0x33 0x4>; - interrupt-parent = <0x4>; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - linux,phandle = <0xe>; - phandle = <0xe>; - }; - - gpio@e000a000 { - compatible = "xlnx,zynq-gpio-1.0"; - #gpio-cells = <0x2>; - clocks = <0x1 0x2a>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x14 0x4>; - reg = <0xe000a000 0x1000>; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - i2c@e0004000 { - compatible = "cdns,i2c-r1p10"; - status = "disabled"; - clocks = <0x1 0x26>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x19 0x4>; - reg = <0xe0004000 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - i2c@e0005000 { - compatible = "cdns,i2c-r1p10"; - status = "disabled"; - clocks = <0x1 0x27>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x30 0x4>; - reg = <0xe0005000 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - interrupt-controller@f8f01000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - interrupt-controller; - reg = <0xf8f01000 0x1000 0xf8f00100 0x100>; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - - cache-controller@f8f02000 { - compatible = "arm,pl310-cache"; - reg = <0xf8f02000 0x1000>; - interrupts = <0x0 0x2 0x4>; - arm,data-latency = <0x3 0x2 0x2>; - arm,tag-latency = <0x2 0x2 0x2>; - cache-unified; - cache-level = <0x2>; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - memory-controller@f8006000 { - compatible = "xlnx,zynq-ddrc-a05"; - reg = <0xf8006000 0x1000>; - linux,phandle = <0x13>; - phandle = <0x13>; - }; - - serial@e0000000 { - compatible = "xlnx,xuartps", "cdns,uart-r1p8"; - status = "disabled"; - clocks = <0x1 0x17 0x1 0x28>; - clock-names = "uart_clk", "pclk"; - reg = <0xe0000000 0x1000>; - interrupts = <0x0 0x1b 0x4>; - linux,phandle = <0x14>; - phandle = <0x14>; - }; - - serial@e0001000 { - compatible = "xlnx,xuartps", "cdns,uart-r1p8"; - status = "okay"; - clocks = <0x1 0x18 0x1 0x29>; - clock-names = "uart_clk", "pclk"; - reg = <0xe0001000 0x1000>; - interrupts = <0x0 0x32 0x4>; - clock-frequency = <0x1c2000>; - linux,phandle = <0x15>; - phandle = <0x15>; - }; - - spi@e0006000 { - compatible = "xlnx,zynq-spi-r1p6"; - reg = <0xe0006000 0x1000>; - status = "disabled"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x1a 0x4>; - clocks = <0x1 0x19 0x1 0x22>; - clock-names = "ref_clk", "pclk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - spi@e0007000 { - compatible = "xlnx,zynq-spi-r1p6"; - reg = <0xe0007000 0x1000>; - status = "disabled"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x31 0x4>; - clocks = <0x1 0x1a 0x1 0x23>; - clock-names = "ref_clk", "pclk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - ethernet@e000b000 { - compatible = "cdns,zynq-gem", "cdns,gem"; - reg = <0xe000b000 0x1000>; - status = "okay"; - interrupts = <0x0 0x16 0x4>; - clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>; - clock-names = "pclk", "hclk", "tx_clk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phy-mode = "rgmii-id"; - phy-handle = <0x5>; - linux,phandle = <0x18>; - phandle = <0x18>; - - ethernet-phy@0 { - reg = <0x0>; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - }; - - ethernet@e000c000 { - compatible = "cdns,zynq-gem", "cdns,gem"; - reg = <0xe000c000 0x1000>; - status = "disabled"; - interrupts = <0x0 0x2d 0x4>; - clocks = <0x1 0x1f 0x1 0x1f 0x1 0xe>; - clock-names = "pclk", "hclk", "tx_clk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x19>; - phandle = <0x19>; - }; - - sdhci@e0100000 { - compatible = "arasan,sdhci-8.9a"; - status = "okay"; - clock-names = "clk_xin", "clk_ahb"; - clocks = <0x1 0x15 0x1 0x20>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x18 0x4>; - reg = <0xe0100000 0x1000>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - sdhci@e0101000 { - compatible = "arasan,sdhci-8.9a"; - status = "disabled"; - clock-names = "clk_xin", "clk_ahb"; - clocks = <0x1 0x16 0x1 0x21>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x2f 0x4>; - reg = <0xe0101000 0x1000>; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - slcr@f8000000 { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; - reg = <0xf8000000 0x1000>; - ranges; - linux,phandle = <0x6>; - phandle = <0x6>; - - clkc@100 { - #clock-cells = <0x1>; - compatible = "xlnx,ps7-clkc"; - fclk-enable = <0xf>; - clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb"; - reg = <0x100 0x100>; - ps-clk-frequency = <0x1fca055>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - rstc@200 { - compatible = "xlnx,zynq-reset"; - reg = <0x200 0x48>; - #reset-cells = <0x1>; - syscon = <0x6>; - linux,phandle = <0x1c>; - phandle = <0x1c>; - }; - - pinctrl@700 { - compatible = "xlnx,pinctrl-zynq"; - reg = <0x700 0x200>; - syscon = <0x6>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - }; - - dmac@f8003000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0xf8003000 0x1000>; - interrupt-parent = <0x4>; - interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7"; - interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>; - #dma-cells = <0x1>; - #dma-channels = <0x8>; - #dma-requests = <0x4>; - clocks = <0x1 0x1b>; - clock-names = "apb_pclk"; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - devcfg@f8007000 { - compatible = "xlnx,zynq-devcfg-1.0"; - reg = <0xf8007000 0x100>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x1 0xc>; - clock-names = "ref_clk"; - syscon = <0x6>; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - fpga-region0 { - compatible = "fpga-region"; - fpga-mgr = <0x3>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0x1f>; - phandle = <0x1f>; - }; - - timer@f8f00200 { - compatible = "arm,cortex-a9-global-timer"; - reg = <0xf8f00200 0x20>; - interrupts = <0x1 0xb 0x301>; - interrupt-parent = <0x4>; - clocks = <0x1 0x4>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - timer@f8001000 { - interrupt-parent = <0x4>; - interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>; - compatible = "cdns,ttc"; - clocks = <0x1 0x6>; - reg = <0xf8001000 0x1000>; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - - timer@f8002000 { - interrupt-parent = <0x4>; - interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>; - compatible = "cdns,ttc"; - clocks = <0x1 0x6>; - reg = <0xf8002000 0x1000>; - linux,phandle = <0x22>; - phandle = <0x22>; - }; - - timer@f8f00600 { - interrupt-parent = <0x4>; - interrupts = <0x1 0xd 0x301>; - compatible = "arm,cortex-a9-twd-timer"; - reg = <0xf8f00600 0x20>; - clocks = <0x1 0x4>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - usb@e0002000 { - compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; - status = "okay"; - clocks = <0x1 0x1c>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x15 0x4>; - reg = <0xe0002000 0x1000>; - phy_type = "ulpi"; - dr_mode = "host"; - usb-phy = <0x7>; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - usb@e0003000 { - compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; - status = "disabled"; - clocks = <0x1 0x1d>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x2c 0x4>; - reg = <0xe0003000 0x1000>; - phy_type = "ulpi"; - linux,phandle = <0x25>; - phandle = <0x25>; - }; - - watchdog@f8005000 { - clocks = <0x1 0x2d>; - compatible = "cdns,wdt-r1p2"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x9 0x1>; - reg = <0xf8005000 0x1000>; - timeout-sec = <0xa>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - }; - - reserved-memory { - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - - zynq-dma-unusable-area { - reg = <0x0 0x80000>; - }; - }; - - aliases { - ethernet0 = "/amba/ethernet@e000b000"; - serial0 = "/amba/serial@e0001000"; - }; - - memory@0 { - device_type = "memory"; - reg = <0x0 0x40000000>; - }; - - chosen { - bootargs = "earlycon"; - stdout-path = "serial0:115200n8"; - }; - - phy0 { - compatible = "ulpi-phy"; - #phy-cells = <0x0>; - reg = <0xe0002000 0x1000>; - view-port = <0x170>; - drv-vbus; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - __symbols__ { - cpu0 = "/cpus/cpu@0"; - cpu1 = "/cpus/cpu@1"; - fpga_full = "/fpga-full"; - regulator_vccpint = "/fixedregulator"; - amba = "/amba"; - adc = "/amba/adc@f8007100"; - can0 = "/amba/can@e0008000"; - can1 = "/amba/can@e0009000"; - gpio0 = "/amba/gpio@e000a000"; - i2c0 = "/amba/i2c@e0004000"; - i2c1 = "/amba/i2c@e0005000"; - intc = "/amba/interrupt-controller@f8f01000"; - L2 = "/amba/cache-controller@f8f02000"; - mc = "/amba/memory-controller@f8006000"; - uart0 = "/amba/serial@e0000000"; - uart1 = "/amba/serial@e0001000"; - spi0 = "/amba/spi@e0006000"; - spi1 = "/amba/spi@e0007000"; - gem0 = "/amba/ethernet@e000b000"; - ethernet_phy = "/amba/ethernet@e000b000/ethernet-phy@0"; - gem1 = "/amba/ethernet@e000c000"; - sdhci0 = "/amba/sdhci@e0100000"; - sdhci1 = "/amba/sdhci@e0101000"; - slcr = "/amba/slcr@f8000000"; - clkc = "/amba/slcr@f8000000/clkc@100"; - rstc = "/amba/slcr@f8000000/rstc@200"; - pinctrl0 = "/amba/slcr@f8000000/pinctrl@700"; - dmac_s = "/amba/dmac@f8003000"; - devcfg = "/amba/devcfg@f8007000"; - fpga_region0 = "/amba/fpga-region0"; - global_timer = "/amba/timer@f8f00200"; - ttc0 = "/amba/timer@f8001000"; - ttc1 = "/amba/timer@f8002000"; - scutimer = "/amba/timer@f8f00600"; - usb0 = "/amba/usb@e0002000"; - usb1 = "/amba/usb@e0003000"; - watchdog0 = "/amba/watchdog@f8005000"; - usb_phy0 = "/phy0"; - }; -}; diff --git a/target/zynq-zybo-z7/boot/uEnv-linux-4.14.123-armv7-fpga.txt b/target/zynq-zybo-z7/boot/uEnv-linux-4.14.123-armv7-fpga.txt deleted file mode 100644 index 4dcb2fb..0000000 --- a/target/zynq-zybo-z7/boot/uEnv-linux-4.14.123-armv7-fpga.txt +++ /dev/null @@ -1,14 +0,0 @@ -######################################################################## -#uenv: config_name = zynq_zybo_z7 -#uenv: menu_title = Boot linux-4.14.123-armv7-fpga -#uenv: menu_priority = -1 -######################################################################## - -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-zynq-zybo-z7.dtb -linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio - -linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} -linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${fdt_addr_r} - -uenvcmd=run linux_load_cmd && run linux_boot_cmd diff --git a/target/zynq-zybo-z7/boot/vmlinuz-4.14.123-armv7-fpga b/target/zynq-zybo-z7/boot/vmlinuz-4.14.123-armv7-fpga deleted file mode 100755 index 88bc5d1..0000000 --- a/target/zynq-zybo-z7/boot/vmlinuz-4.14.123-armv7-fpga +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17f70aaf1176c853f240f4aefada0dfc7caae11178760f7da24abfcff4ed8d61 -size 4416328 diff --git a/target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dtb b/target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dtb deleted file mode 100644 index 8234398b6f852b1e2464f46dce729f6ea5727acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10887 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 b+iqy^15WYCqF^)RNs$RPy2=Hl1flsaN>u+{ diff --git a/target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dts b/target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dts deleted file mode 100644 index b8016e5..0000000 --- a/target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dts +++ /dev/null @@ -1,514 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "digilent,zynq-zybo", "xlnx,zynq-7000"; - model = "Zynq ZYBO Development Board"; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - - cpu@0 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x0>; - clocks = <0x1 0x3>; - clock-latency = <0x3e8>; - cpu0-supply = <0x2>; - operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240>; - linux,phandle = <0x9>; - phandle = <0x9>; - }; - - cpu@1 { - compatible = "arm,cortex-a9"; - device_type = "cpu"; - reg = <0x1>; - clocks = <0x1 0x3>; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - }; - - fpga-full { - compatible = "fpga-region"; - fpga-mgr = <0x3>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - pmu@f8891000 { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>; - interrupt-parent = <0x4>; - reg = <0xf8891000 0x1000 0xf8893000 0x1000>; - }; - - fixedregulator { - compatible = "regulator-fixed"; - regulator-name = "VCCPINT"; - regulator-min-microvolt = <0xf4240>; - regulator-max-microvolt = <0xf4240>; - regulator-boot-on; - regulator-always-on; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - amba { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x1>; - interrupt-parent = <0x4>; - ranges; - linux,phandle = <0xc>; - phandle = <0xc>; - - adc@f8007100 { - compatible = "xlnx,zynq-xadc-1.00.a"; - reg = <0xf8007100 0x20>; - interrupts = <0x0 0x7 0x4>; - interrupt-parent = <0x4>; - clocks = <0x1 0xc>; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - can@e0008000 { - compatible = "xlnx,zynq-can-1.0"; - status = "disabled"; - clocks = <0x1 0x13 0x1 0x24>; - clock-names = "can_clk", "pclk"; - reg = <0xe0008000 0x1000>; - interrupts = <0x0 0x1c 0x4>; - interrupt-parent = <0x4>; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - linux,phandle = <0xe>; - phandle = <0xe>; - }; - - can@e0009000 { - compatible = "xlnx,zynq-can-1.0"; - status = "disabled"; - clocks = <0x1 0x14 0x1 0x25>; - clock-names = "can_clk", "pclk"; - reg = <0xe0009000 0x1000>; - interrupts = <0x0 0x33 0x4>; - interrupt-parent = <0x4>; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - gpio@e000a000 { - compatible = "xlnx,zynq-gpio-1.0"; - #gpio-cells = <0x2>; - clocks = <0x1 0x2a>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x14 0x4>; - reg = <0xe000a000 0x1000>; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - i2c@e0004000 { - compatible = "cdns,i2c-r1p10"; - status = "disabled"; - clocks = <0x1 0x26>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x19 0x4>; - reg = <0xe0004000 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - i2c@e0005000 { - compatible = "cdns,i2c-r1p10"; - status = "disabled"; - clocks = <0x1 0x27>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x30 0x4>; - reg = <0xe0005000 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - interrupt-controller@f8f01000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - interrupt-controller; - reg = <0xf8f01000 0x1000 0xf8f00100 0x100>; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - - cache-controller@f8f02000 { - compatible = "arm,pl310-cache"; - reg = <0xf8f02000 0x1000>; - interrupts = <0x0 0x2 0x4>; - arm,data-latency = <0x3 0x2 0x2>; - arm,tag-latency = <0x2 0x2 0x2>; - cache-unified; - cache-level = <0x2>; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - memory-controller@f8006000 { - compatible = "xlnx,zynq-ddrc-a05"; - reg = <0xf8006000 0x1000>; - linux,phandle = <0x13>; - phandle = <0x13>; - }; - - serial@e0000000 { - compatible = "xlnx,xuartps", "cdns,uart-r1p8"; - status = "disabled"; - clocks = <0x1 0x17 0x1 0x28>; - clock-names = "uart_clk", "pclk"; - reg = <0xe0000000 0x1000>; - interrupts = <0x0 0x1b 0x4>; - linux,phandle = <0x14>; - phandle = <0x14>; - }; - - serial@e0001000 { - compatible = "xlnx,xuartps", "cdns,uart-r1p8"; - status = "okay"; - clocks = <0x1 0x18 0x1 0x29>; - clock-names = "uart_clk", "pclk"; - reg = <0xe0001000 0x1000>; - interrupts = <0x0 0x32 0x4>; - clock-frequency = <0x1c2000>; - linux,phandle = <0x15>; - phandle = <0x15>; - }; - - spi@e0006000 { - compatible = "xlnx,zynq-spi-r1p6"; - reg = <0xe0006000 0x1000>; - status = "disabled"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x1a 0x4>; - clocks = <0x1 0x19 0x1 0x22>; - clock-names = "ref_clk", "pclk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - spi@e0007000 { - compatible = "xlnx,zynq-spi-r1p6"; - reg = <0xe0007000 0x1000>; - status = "disabled"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x31 0x4>; - clocks = <0x1 0x1a 0x1 0x23>; - clock-names = "ref_clk", "pclk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - ethernet@e000b000 { - compatible = "cdns,zynq-gem", "cdns,gem"; - reg = <0xe000b000 0x1000>; - status = "okay"; - interrupts = <0x0 0x16 0x4>; - clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>; - clock-names = "pclk", "hclk", "tx_clk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phy-mode = "rgmii-id"; - phy-handle = <0x5>; - linux,phandle = <0x18>; - phandle = <0x18>; - - ethernet-phy@0 { - reg = <0x0>; - device_type = "ethernet-phy"; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - }; - - ethernet@e000c000 { - compatible = "cdns,zynq-gem", "cdns,gem"; - reg = <0xe000c000 0x1000>; - status = "disabled"; - interrupts = <0x0 0x2d 0x4>; - clocks = <0x1 0x1f 0x1 0x1f 0x1 0xe>; - clock-names = "pclk", "hclk", "tx_clk"; - #address-cells = <0x1>; - #size-cells = <0x0>; - linux,phandle = <0x19>; - phandle = <0x19>; - }; - - sdhci@e0100000 { - compatible = "arasan,sdhci-8.9a"; - status = "okay"; - clock-names = "clk_xin", "clk_ahb"; - clocks = <0x1 0x15 0x1 0x20>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x18 0x4>; - reg = <0xe0100000 0x1000>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - sdhci@e0101000 { - compatible = "arasan,sdhci-8.9a"; - status = "disabled"; - clock-names = "clk_xin", "clk_ahb"; - clocks = <0x1 0x16 0x1 0x21>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x2f 0x4>; - reg = <0xe0101000 0x1000>; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - slcr@f8000000 { - #address-cells = <0x1>; - #size-cells = <0x1>; - compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; - reg = <0xf8000000 0x1000>; - ranges; - linux,phandle = <0x6>; - phandle = <0x6>; - - clkc@100 { - #clock-cells = <0x1>; - compatible = "xlnx,ps7-clkc"; - fclk-enable = <0xf>; - clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb"; - reg = <0x100 0x100>; - ps-clk-frequency = <0x2faf080>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - rstc@200 { - compatible = "xlnx,zynq-reset"; - reg = <0x200 0x48>; - #reset-cells = <0x1>; - syscon = <0x6>; - linux,phandle = <0x1c>; - phandle = <0x1c>; - }; - - pinctrl@700 { - compatible = "xlnx,pinctrl-zynq"; - reg = <0x700 0x200>; - syscon = <0x6>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - }; - - dmac@f8003000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0xf8003000 0x1000>; - interrupt-parent = <0x4>; - interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7"; - interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>; - #dma-cells = <0x1>; - #dma-channels = <0x8>; - #dma-requests = <0x4>; - clocks = <0x1 0x1b>; - clock-names = "apb_pclk"; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - devcfg@f8007000 { - compatible = "xlnx,zynq-devcfg-1.0"; - reg = <0xf8007000 0x100>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x1 0xc>; - clock-names = "ref_clk"; - syscon = <0x6>; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - fpga-region0 { - compatible = "fpga-region"; - fpga-mgr = <0x3>; - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - linux,phandle = <0x1f>; - phandle = <0x1f>; - }; - - timer@f8f00200 { - compatible = "arm,cortex-a9-global-timer"; - reg = <0xf8f00200 0x20>; - interrupts = <0x1 0xb 0x301>; - interrupt-parent = <0x4>; - clocks = <0x1 0x4>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - timer@f8001000 { - interrupt-parent = <0x4>; - interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>; - compatible = "cdns,ttc"; - clocks = <0x1 0x6>; - reg = <0xf8001000 0x1000>; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - - timer@f8002000 { - interrupt-parent = <0x4>; - interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>; - compatible = "cdns,ttc"; - clocks = <0x1 0x6>; - reg = <0xf8002000 0x1000>; - linux,phandle = <0x22>; - phandle = <0x22>; - }; - - timer@f8f00600 { - interrupt-parent = <0x4>; - interrupts = <0x1 0xd 0x301>; - compatible = "arm,cortex-a9-twd-timer"; - reg = <0xf8f00600 0x20>; - clocks = <0x1 0x4>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - usb@e0002000 { - compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; - status = "okay"; - clocks = <0x1 0x1c>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x15 0x4>; - reg = <0xe0002000 0x1000>; - phy_type = "ulpi"; - dr_mode = "host"; - usb-phy = <0x7>; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - usb@e0003000 { - compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; - status = "disabled"; - clocks = <0x1 0x1d>; - interrupt-parent = <0x4>; - interrupts = <0x0 0x2c 0x4>; - reg = <0xe0003000 0x1000>; - phy_type = "ulpi"; - linux,phandle = <0x25>; - phandle = <0x25>; - }; - - watchdog@f8005000 { - clocks = <0x1 0x2d>; - compatible = "cdns,wdt-r1p2"; - interrupt-parent = <0x4>; - interrupts = <0x0 0x9 0x1>; - reg = <0xf8005000 0x1000>; - timeout-sec = <0xa>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - }; - - reserved-memory { - #address-cells = <0x1>; - #size-cells = <0x1>; - ranges; - - zynq-dma-unusable-area { - reg = <0x0 0x80000>; - }; - }; - - aliases { - ethernet0 = "/amba/ethernet@e000b000"; - serial0 = "/amba/serial@e0001000"; - }; - - memory@0 { - device_type = "memory"; - reg = <0x0 0x20000000>; - }; - - chosen { - bootargs = [00]; - stdout-path = "serial0:115200n8"; - }; - - phy0 { - #phy-cells = <0x0>; - compatible = "usb-nop-xceiv"; - reset-gpios = <0x8 0x2e 0x1>; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - __symbols__ { - cpu0 = "/cpus/cpu@0"; - cpu1 = "/cpus/cpu@1"; - fpga_full = "/fpga-full"; - regulator_vccpint = "/fixedregulator"; - amba = "/amba"; - adc = "/amba/adc@f8007100"; - can0 = "/amba/can@e0008000"; - can1 = "/amba/can@e0009000"; - gpio0 = "/amba/gpio@e000a000"; - i2c0 = "/amba/i2c@e0004000"; - i2c1 = "/amba/i2c@e0005000"; - intc = "/amba/interrupt-controller@f8f01000"; - L2 = "/amba/cache-controller@f8f02000"; - mc = "/amba/memory-controller@f8006000"; - uart0 = "/amba/serial@e0000000"; - uart1 = "/amba/serial@e0001000"; - spi0 = "/amba/spi@e0006000"; - spi1 = "/amba/spi@e0007000"; - gem0 = "/amba/ethernet@e000b000"; - ethernet_phy = "/amba/ethernet@e000b000/ethernet-phy@0"; - gem1 = "/amba/ethernet@e000c000"; - sdhci0 = "/amba/sdhci@e0100000"; - sdhci1 = "/amba/sdhci@e0101000"; - slcr = "/amba/slcr@f8000000"; - clkc = "/amba/slcr@f8000000/clkc@100"; - rstc = "/amba/slcr@f8000000/rstc@200"; - pinctrl0 = "/amba/slcr@f8000000/pinctrl@700"; - dmac_s = "/amba/dmac@f8003000"; - devcfg = "/amba/devcfg@f8007000"; - fpga_region0 = "/amba/fpga-region0"; - global_timer = "/amba/timer@f8f00200"; - ttc0 = "/amba/timer@f8001000"; - ttc1 = "/amba/timer@f8002000"; - scutimer = "/amba/timer@f8f00600"; - usb0 = "/amba/usb@e0002000"; - usb1 = "/amba/usb@e0003000"; - watchdog0 = "/amba/watchdog@f8005000"; - usb_phy0 = "/phy0"; - }; -}; diff --git a/target/zynq-zybo/boot/uEnv-linux-4.14.123-armv7-fpga.txt b/target/zynq-zybo/boot/uEnv-linux-4.14.123-armv7-fpga.txt deleted file mode 100644 index 835870c..0000000 --- a/target/zynq-zybo/boot/uEnv-linux-4.14.123-armv7-fpga.txt +++ /dev/null @@ -1,19 +0,0 @@ -######################################################################## -#uenv: config_name = zynq_zybo -#uenv: menu_title = Boot linux-4.14.123-armv7-fpga with FPGA program -#uenv: menu_priority = -1 -######################################################################## - -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-zynq-zybo.dtb -linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio - -fpga_load_cmd=fatload mmc 0 0x03000000 design_1_wrapper.bit && fpga loadb 0 0x03000000 $filesize -slcr_unlock_cmd=mw.l 0xF8000008 0xDF0D -slcr_lock_cmd=mw.l 0xF8000004 0x767B -fpga_set_cmd=run slcr_unlock_cmd && mw.l 0xF8000170 0x00100A00 && run slcr_lock_cmd - -linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} -linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${fdt_addr_r} - -uenvcmd=run fpga_load_cmd && run fpga_set_cmd && run linux_load_cmd && run linux_boot_cmd diff --git a/target/zynq-zybo/boot/vmlinuz-4.14.123-armv7-fpga b/target/zynq-zybo/boot/vmlinuz-4.14.123-armv7-fpga deleted file mode 100755 index 88bc5d1..0000000 --- a/target/zynq-zybo/boot/vmlinuz-4.14.123-armv7-fpga +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17f70aaf1176c853f240f4aefada0dfc7caae11178760f7da24abfcff4ed8d61 -size 4416328 diff --git a/udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb b/udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb deleted file mode 100644 index 70ba6c8..0000000 --- a/udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07af5d0013672ec2a29290e2f683f615055d07e043b4627743949d011a5ea14d -size 64720 diff --git a/zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb b/zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb deleted file mode 100644 index 8cfabc4..0000000 --- a/zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d7f2da53c4b655a24078bb294f48590019e5b2b6f52a9a1e1f3358f81e740f36 -size 57698 From 1685387e171fedfd1c8397a03fe5138f1a1a4ea8 Mon Sep 17 00:00:00 2001 From: ikwzm Date: Sun, 23 Jun 2019 17:34:54 +0900 Subject: [PATCH 02/24] [update] scripts and documents for build linux-kernel-4.19.55-armv7-fpga --- doc/build/linux-kernel-4.19.55.md | 120 + files/armv7_fpga_defconfig | 1600 ++--- ...nux-4.19.55-armv7-fpga-patch-builddeb.diff | 29 + ...4.19.55-armv7-fpga-patch-usb-chipidea.diff | 326 + files/linux-4.19.55-armv7-fpga.diff | 5241 +++++++++++++++++ scripts/build-linux-kernel.sh | 45 +- 6 files changed, 6676 insertions(+), 685 deletions(-) create mode 100644 doc/build/linux-kernel-4.19.55.md create mode 100644 files/linux-4.19.55-armv7-fpga-patch-builddeb.diff create mode 100644 files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff create mode 100644 files/linux-4.19.55-armv7-fpga.diff diff --git a/doc/build/linux-kernel-4.19.55.md b/doc/build/linux-kernel-4.19.55.md new file mode 100644 index 0000000..d915e28 --- /dev/null +++ b/doc/build/linux-kernel-4.19.55.md @@ -0,0 +1,120 @@ +### Build Linux Kernel + +There are two ways + +1. run scripts/build-linux-kernel.sh (easy) +2. run this chapter step-by-step (annoying) + +#### Download Linux Kernel Source + +##### Clone from linux-stable.git + +```console +shell$ git clone --depth 1 -b v4.19.55 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.55-armv7-fpga +``` + +##### Checkout v4.19.55 + +```console +shell$ cd linux-4.19.55-armv7-fpga +shell$ git checkout -b linux-4.19.55-armv7-fpga refs/tags/v4.19.55 +``` + +#### Patch for armv7-fpga + +##### Patch for armv7-fpga + +```console +shell$ patch -p1 < ../files/linux-4.19.55-armv7-fpga.diff +shell$ git add --update +shell$ git add arch/arm/configs/armv7_fpga_defconfig +shell$ git add arch/arm/boot/dts/zynq-pynqz1.dts +shell$ git commit -m "patch for armv7-fpga" +``` + +##### Patch for usb chipidea driver + +```console +shell$ patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff +shell$ git add --update +shell$ git commit -m "patch for usb chipidea driver for issue #3" +``` + +##### Patch for build debian package script + +```console +shell$ patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-builddeb.diff +shell$ git add --update +shell$ git commit -m "patch for scripts/package/builddeb to add tools/include and postinst script to header package" +``` + +##### Create tag and .version + +```console +shell$ git tag -a v4.19.55-armv7-fpga -m "release v4.19.55-armv7-fpga" +shell$ echo 0 > .version +``` + +#### Setup for Build + +````console +shell$ cd linux-4.19.55-armv7-fpga +shell$ export ARCH=arm +shell$ export CROSS_COMPILE=arm-linux-gnueabihf- +shell$ make armv7_fpga_defconfig +```` + +#### Build Linux Kernel and device tree + +````console +shell$ export DTC_FLAGS=--symbols +shell$ make deb-pkg +shell$ make zynq-zybo.dtb +shell$ make zynq-zybo-z7.dtb +shell$ make zynq-pynqz1.dtb +shell$ make socfpga_cyclone5_de0_sockit.dtb +```` + +#### Copy zImage and devicetree to target/zybo-zynq/boot/ + +```console +shell$ cp arch/arm/boot/zImage ../target/zynq-zybo/boot/vmlinuz-4.19.55-armv7-fpga +shell$ cp arch/arm/boot/dts/zynq-zybo.dtb ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dts arch/arm/boot/dts/zynq-zybo.dtb +``` + +#### Copy zImage and devicetree to tareget/zybo-zynq-z7/boot/ + +```console +shell$ cp arch/arm/boot/zImage ../target/zynq-zybo-z7/boot/vmlinuz-4.19.55-armv7-fpga +shell$ cp arch/arm/boot/dts/zynq-zybo-z7.dtb ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dts arch/arm/boot/dts/zynq-zybo-z7.dtb +``` + + +#### Copy zImage and devicetree to target/zybo-pynqz1/boot/ + +```console +shell$ cp arch/arm/boot/zImage ../target/zynq-pynqz1/boot/vmlinuz-4.19.55-armv7-fpga +shell$ cp arch/arm/boot/dts/zynq-pynqz1.dtb ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dts arch/arm/boot/dts/zynq-pynqz1.dtb +``` + +#### Copy zImage and devicetree to target/de0-nano-soc/boot/ + +```console +shell$ cp arch/arm/boot/zImage ../target/de0-nano-soc/boot/vmlinuz-4.19.55-armv7-fpga +shell$ cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +``` + +#### Copy zImage and devicetree to tareget/de10-nano/boot/ + +```console +shell$ cp arch/arm/boot/zImage ../target/de10-nano/boot/vmlinuz-4.19.55-armv7-fpga +shell$ cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +``` + + + diff --git a/files/armv7_fpga_defconfig b/files/armv7_fpga_defconfig index 3fcbdd3..1dd9446 100644 --- a/files/armv7_fpga_defconfig +++ b/files/armv7_fpga_defconfig @@ -1,27 +1,15 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.12.14 Kernel Configuration +# Linux/arm 4.19.55 Kernel Configuration # -CONFIG_ARM=y -CONFIG_ARM_HAS_SG_CHAIN=y -CONFIG_MIGHT_HAVE_PCI=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_HAVE_PROC_CPU=y -CONFIG_NO_IOPORT_MAP=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_GENERIC_BUG=y -CONFIG_PGTABLE_LEVELS=2 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Compiler: arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 +# +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=50400 +CONFIG_CLANG_VERSION=0 +CONFIG_CC_HAS_ASM_GOTO=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y @@ -29,10 +17,10 @@ CONFIG_BUILDTIME_EXTABLE_SORT=y # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="-armv7-fpga" CONFIG_LOCALVERSION_AUTO=y +CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y @@ -49,7 +37,6 @@ CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set CONFIG_CROSS_MEMORY_ATTACH=y -CONFIG_FHANDLE=y CONFIG_USELIB=y # CONFIG_AUDIT is not set CONFIG_HAVE_ARCH_AUDITSYSCALL=y @@ -60,6 +47,8 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y @@ -67,9 +56,10 @@ CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_HANDLE_DOMAIN_IRQ=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_ARCH_HAS_TICK_BROADCAST=y @@ -85,6 +75,10 @@ CONFIG_NO_HZ_IDLE=y # CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y # # CPU/Task time and stats accounting @@ -94,6 +88,7 @@ CONFIG_TICK_CPU_ACCOUNTING=y # CONFIG_IRQ_TIME_ACCOUNTING is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set +CONFIG_CPU_ISOLATION=y # # RCU Subsystem @@ -102,10 +97,9 @@ CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y -# CONFIG_TASKS_RCU is not set +CONFIG_TASKS_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y -# CONFIG_TREE_RCU_TRACE is not set CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y @@ -126,14 +120,13 @@ CONFIG_PROC_PID_CPUSET=y # CONFIG_CGROUP_CPUACCT is not set # CONFIG_CGROUP_PERF is not set # CONFIG_CGROUP_DEBUG is not set -# CONFIG_SOCK_CGROUP_DATA is not set -# CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set CONFIG_PID_NS=y CONFIG_NET_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_SCHED_AUTOGROUP is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set @@ -157,28 +150,31 @@ CONFIG_MULTIUSER=y # CONFIG_SGETMASK_SYSCALL is not set CONFIG_SYSFS_SYSCALL=y CONFIG_SYSCTL_SYSCALL=y +CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set -CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_PRINTK=y CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y -# CONFIG_BPF_SYSCALL is not set CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y -# CONFIG_USERFAULTFD is not set -CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y +# CONFIG_BPF_SYSCALL is not set +# CONFIG_USERFAULTFD is not set +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_RSEQ=y +# CONFIG_DEBUG_RSEQ is not set CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y @@ -194,130 +190,34 @@ CONFIG_COMPAT_BRK=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set -# CONFIG_SYSTEM_DATA_VERIFICATION is not set +CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y -CONFIG_OPROFILE=y -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -# CONFIG_JUMP_LABEL is not set -# CONFIG_UPROBES is not set -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_NMI=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_HAVE_GCC_PLUGINS=y -# CONFIG_GCC_PLUGINS is not set -CONFIG_HAVE_CC_STACKPROTECTOR=y -# CONFIG_CC_STACKPROTECTOR is not set -CONFIG_CC_STACKPROTECTOR_NONE=y -# CONFIG_CC_STACKPROTECTOR_REGULAR is not set -# CONFIG_CC_STACKPROTECTOR_STRONG is not set -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_REL=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_HAVE_ARCH_MMAP_RND_BITS=y -CONFIG_HAVE_EXIT_THREAD=y -CONFIG_ARCH_MMAP_RND_BITS_MIN=8 -CONFIG_ARCH_MMAP_RND_BITS_MAX=16 -CONFIG_ARCH_MMAP_RND_BITS=8 -# CONFIG_HAVE_ARCH_HASH is not set -# CONFIG_ISA_BUS_API is not set -CONFIG_CLONE_BACKWARDS=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_OLD_SIGACTION=y -# CONFIG_CPU_NO_EFFICIENT_FFS is not set -# CONFIG_HAVE_ARCH_VMAP_STACK is not set -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y - -# -# GCOV-based kernel profiling -# -# CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MODVERSIONS=y -# CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_MODULE_SIG is not set -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_TRIM_UNUSED_KSYMS is not set -CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_BLOCK=y -CONFIG_LBDAF=y -CONFIG_BLK_SCSI_REQUEST=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_BSGLIB is not set -# CONFIG_BLK_DEV_INTEGRITY is not set -# CONFIG_BLK_DEV_ZONED is not set -# CONFIG_BLK_CMDLINE_PARSER is not set -# CONFIG_BLK_WBT is not set -CONFIG_BLK_DEBUG_FS=y -# CONFIG_BLK_SED_OPAL is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_EFI_PARTITION=y -CONFIG_BLK_MQ_PCI=y - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_MQ_IOSCHED_DEADLINE=y -CONFIG_MQ_IOSCHED_KYBER=y -# CONFIG_IOSCHED_BFQ is not set -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_FREEZER=y +CONFIG_ARM=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_NO_IOPORT_MAP=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_PGTABLE_LEVELS=2 # # System Type # CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 CONFIG_ARCH_MULTIPLATFORM=y # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set @@ -348,21 +248,24 @@ CONFIG_ARCH_MULTIPLATFORM=y # CONFIG_ARCH_MULTI_V6 is not set CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_MULTI_V6_V7=y -# CONFIG_ARCH_MULTI_CPU_AUTO is not set # CONFIG_ARCH_VIRT is not set -# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_ACTIONS is not set # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_ARTPEC is not set # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_BCM is not set # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_DIGICOLOR is not set +# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_HISI is not set -# CONFIG_ARCH_KEYSTONE is not set -# CONFIG_ARCH_MESON is not set # CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_MEDIATEK is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_NPCM is not set # # TI OMAP/AM/DM/DRA Family @@ -373,19 +276,18 @@ CONFIG_ARCH_MULTI_V6_V7=y # CONFIG_SOC_AM33XX is not set # CONFIG_SOC_AM43XX is not set # CONFIG_SOC_DRA7XX is not set -# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_SIRF is not set # CONFIG_ARCH_QCOM is not set # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_RENESAS is not set CONFIG_ARCH_SOCFPGA=y # CONFIG_SOCFPGA_SUSPEND is not set # CONFIG_PLAT_SPEAR is not set # CONFIG_ARCH_STI is not set -# CONFIG_ARCH_S5PV210 is not set -# CONFIG_ARCH_EXYNOS is not set -# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_STM32 is not set # CONFIG_ARCH_SUNXI is not set -# CONFIG_ARCH_SIRF is not set # CONFIG_ARCH_TANGO is not set # CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_UNIPHIER is not set @@ -419,7 +321,6 @@ CONFIG_CPU_CP15_MMU=y # Processor Features # # CONFIG_ARM_LPAE is not set -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARM_THUMB=y CONFIG_ARM_THUMBEE=y CONFIG_ARM_VIRT_EXT=y @@ -427,6 +328,8 @@ CONFIG_SWP_EMULATE=y # CONFIG_CPU_BIG_ENDIAN is not set # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_CPU_SPECTRE=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_KUSER_HELPERS=y # CONFIG_VDSO is not set CONFIG_OUTER_CACHE=y @@ -444,7 +347,6 @@ CONFIG_ARM_DMA_MEM_BUFFERABLE=y CONFIG_ARM_HEAVY_MB=y CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y CONFIG_DEBUG_ALIGN_RODATA=y -CONFIG_MULTI_IRQ_HANDLER=y # CONFIG_ARM_ERRATA_430973 is not set CONFIG_ARM_ERRATA_643719=y CONFIG_ARM_ERRATA_720789=y @@ -470,8 +372,8 @@ CONFIG_PCI_SYSCALL=y # CONFIG_PCIEPORTBUS is not set CONFIG_PCI_MSI=y CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCI_QUIRKS=y # CONFIG_PCI_DEBUG is not set -CONFIG_PCI_REALLOC_ENABLE_AUTO=y # CONFIG_PCI_STUB is not set # CONFIG_PCI_IOV is not set # CONFIG_PCI_PRI is not set @@ -479,19 +381,25 @@ CONFIG_PCI_REALLOC_ENABLE_AUTO=y # CONFIG_HOTPLUG_PCI is not set # -# DesignWare PCI Core Support +# PCI controller drivers # -# CONFIG_PCIE_DW_PLAT is not set -# CONFIG_PCI_LAYERSCAPE is not set # -# PCI host controller drivers +# Cadence PCIe controllers support # +# CONFIG_PCIE_CADENCE_HOST is not set # CONFIG_PCI_FTPCI100 is not set # CONFIG_PCI_HOST_GENERIC is not set CONFIG_PCIE_XILINX=y +# CONFIG_PCI_V3_SEMI is not set # CONFIG_PCIE_ALTERA is not set +# +# DesignWare PCI Core Support +# +# CONFIG_PCIE_DW_PLAT_HOST is not set +# CONFIG_PCI_LAYERSCAPE is not set + # # PCI Endpoint # @@ -525,11 +433,7 @@ CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_NR_CPUS=2 CONFIG_HOTPLUG_CPU=y # CONFIG_ARM_PSCI is not set -CONFIG_ARCH_NR_GPIO=1024 -# CONFIG_PREEMPT_NONE is not set -# CONFIG_PREEMPT_VOLUNTARY is not set -CONFIG_PREEMPT=y -CONFIG_PREEMPT_COUNT=y +CONFIG_ARCH_NR_GPIO=2048 CONFIG_HZ_FIXED=0 CONFIG_HZ_100=y # CONFIG_HZ_200 is not set @@ -543,8 +447,6 @@ CONFIG_SCHED_HRTICK=y CONFIG_ARM_PATCH_IDIV=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y @@ -552,37 +454,10 @@ CONFIG_CPU_SW_DOMAIN_PAN=y CONFIG_HW_PERF_EVENTS=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y # CONFIG_ARM_MODULE_PLTS is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_NO_BOOTMEM=y -CONFIG_MEMORY_ISOLATION=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set -CONFIG_MIGRATION=y -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_BOUNCE=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_CLEANCACHE is not set -# CONFIG_FRONTSWAP is not set -CONFIG_CMA=y -# CONFIG_CMA_DEBUG is not set -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_AREAS=7 -# CONFIG_ZPOOL is not set -# CONFIG_ZBUD is not set -# CONFIG_ZSMALLOC is not set -CONFIG_GENERIC_EARLY_IOREMAP=y -# CONFIG_IDLE_PAGE_TRACKING is not set -CONFIG_FRAME_VECTOR=y CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y # CONFIG_UACCESS_WITH_MEMCPY is not set # CONFIG_SECCOMP is not set -CONFIG_SWIOTLB=y -CONFIG_IOMMU_HELPER=y # CONFIG_PARAVIRT is not set # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set # CONFIG_XEN is not set @@ -634,8 +509,6 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # # CONFIG_CPUFREQ_DT is not set # CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set -# CONFIG_ARM_DB8500_CPUFREQ is not set -# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set # CONFIG_QORIQ_CPUFREQ is not set # @@ -650,7 +523,6 @@ CONFIG_CPU_IDLE_GOV_MENU=y # # CONFIG_ARM_CPUIDLE is not set CONFIG_ARM_ZYNQ_CPUIDLE=y -# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set # # Floating point emulation @@ -664,18 +536,6 @@ CONFIG_VFPv3=y CONFIG_NEON=y # CONFIG_KERNEL_MODE_NEON is not set -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -CONFIG_ELFCORE=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_BINFMT_SCRIPT=y -# CONFIG_BINFMT_FLAT is not set -# CONFIG_HAVE_AOUT is not set -# CONFIG_BINFMT_MISC is not set -CONFIG_COREDUMP=y - # # Power management options # @@ -696,44 +556,212 @@ CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARM_CPU_SUSPEND=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_NET=y # -# Networking options +# Firmware Drivers # -CONFIG_PACKET=y -# CONFIG_PACKET_DIAG is not set -CONFIG_UNIX=y -# CONFIG_UNIX_DIAG is not set -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -# CONFIG_NET_KEY is not set -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y -CONFIG_NET_IPIP=m -# CONFIG_NET_IPGRE_DEMUX is not set -CONFIG_NET_IP_TUNNEL=y -# CONFIG_IP_MROUTE is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_NET_IPVTI is not set -# CONFIG_NET_UDP_TUNNEL is not set -# CONFIG_NET_FOU is not set -# CONFIG_NET_FOU_IP_TUNNELS is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -CONFIG_INET_TUNNEL=y -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y +# CONFIG_FIRMWARE_MEMMAP is not set +CONFIG_HAVE_ARM_SMCCC=y +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# Tegra firmware driver +# +# CONFIG_ARM_CRYPTO is not set +# CONFIG_VIRTUALIZATION is not set + +# +# General architecture-dependent options +# +CONFIG_OPROFILE=y +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_NMI=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_CC_HAS_STACKPROTECTOR_NONE=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS=8 +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_PHYS_TO_DMA=y +CONFIG_REFCOUNT_FULL=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_PLUGIN_HOSTCC="" +CONFIG_HAVE_GCC_PLUGINS=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_SCSI_REQUEST=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_CMDLINE_PARSER is not set +# CONFIG_BLK_WBT is not set +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_EFI_PARTITION=y +CONFIG_BLK_MQ_PCI=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +# CONFIG_IOSCHED_BFQ is not set +CONFIG_ASN1=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_ELF_FDPIC is not set +CONFIG_ELFCORE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_SCRIPT=y +# CONFIG_BINFMT_FLAT is not set +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y + +# +# Memory Management options +# +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_NO_BOOTMEM=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +CONFIG_MIGRATION=y +CONFIG_BOUNCE=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_AREAS=7 +# CONFIG_ZPOOL is not set +# CONFIG_ZBUD is not set +# CONFIG_ZSMALLOC is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_FRAME_VECTOR=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_BENCHMARK is not set +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_INTERFACE is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +CONFIG_NET_IPIP=m +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=y +# CONFIG_IP_MROUTE is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_FOU is not set +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +CONFIG_INET_TUNNEL=y +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y @@ -751,8 +779,6 @@ CONFIG_IPV6=y # CONFIG_INET6_ESP is not set # CONFIG_INET6_IPCOMP is not set # CONFIG_IPV6_MIP6 is not set -# CONFIG_INET6_XFRM_TUNNEL is not set -# CONFIG_INET6_TUNNEL is not set CONFIG_INET6_XFRM_MODE_TRANSPORT=y CONFIG_INET6_XFRM_MODE_TUNNEL=y CONFIG_INET6_XFRM_MODE_BEET=y @@ -762,8 +788,6 @@ CONFIG_IPV6_SIT=y # CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_FOU is not set -# CONFIG_IPV6_FOU_TUNNEL is not set # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_IPV6_SEG6_LWTUNNEL is not set @@ -772,6 +796,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y # CONFIG_NETFILTER is not set +# CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set @@ -789,7 +814,6 @@ CONFIG_VLAN_8021Q_GVRP=y # CONFIG_DECNET is not set CONFIG_LLC=y # CONFIG_LLC2 is not set -# CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set @@ -798,11 +822,13 @@ CONFIG_LLC=y # CONFIG_IEEE802154 is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set +# CONFIG_DNS_RESOLVER is not set # CONFIG_BATMAN_ADV is not set # CONFIG_OPENVSWITCH is not set # CONFIG_VSOCKETS is not set # CONFIG_NETLINK_DIAG is not set # CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set # CONFIG_NET_L3_MASTER_DEV is not set @@ -835,7 +861,6 @@ CONFIG_CAN_GW=y # CONFIG_CAN_SLCAN is not set CONFIG_CAN_DEV=y CONFIG_CAN_CALC_BITTIMING=y -# CONFIG_CAN_LEDS is not set # CONFIG_CAN_FLEXCAN is not set # CONFIG_CAN_GRCAN is not set # CONFIG_CAN_TI_HECC is not set @@ -861,34 +886,39 @@ CONFIG_CAN_C_CAN_PLATFORM=y # # CAN USB interfaces # +# CONFIG_CAN_8DEV_USB is not set # CONFIG_CAN_EMS_USB is not set # CONFIG_CAN_ESD_USB2 is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_KVASER_USB is not set -# CONFIG_CAN_PEAK_USB is not set -# CONFIG_CAN_8DEV_USB is not set # CONFIG_CAN_MCBA_USB is not set +# CONFIG_CAN_PEAK_USB is not set +# CONFIG_CAN_UCAN is not set CONFIG_CAN_DEBUG_DEVICES=y -# CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set -# CONFIG_STREAM_PARSER is not set CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_DEVELOPER_WARNINGS=y CONFIG_CFG80211_CERTIFICATION_ONUS=y +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_EXTRA_REGDB_KEYDIR="" CONFIG_CFG80211_REG_CELLULAR_HINTS=y CONFIG_CFG80211_REG_RELAX_NO_IR=y CONFIG_CFG80211_DEFAULT_PS=y CONFIG_CFG80211_DEBUGFS=y -# CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y -# CONFIG_LIB80211 is not set +CONFIG_LIB80211=m +# CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y @@ -931,7 +961,8 @@ CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y -CONFIG_HAVE_CBPF_JIT=y +# CONFIG_FAILOVER is not set +CONFIG_HAVE_EBPF_JIT=y # # Device Drivers @@ -947,17 +978,20 @@ CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" -# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +# CONFIG_FW_LOADER_USER_HELPER is not set +CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y +CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_SOC_BUS=y CONFIG_REGMAP=y @@ -977,17 +1011,17 @@ CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_MIN is not set # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_ALIGNMENT=8 +CONFIG_GENERIC_ARCH_TOPOLOGY=y # # Bus devices # -# CONFIG_ARM_CCI400_PMU is not set -# CONFIG_ARM_CCI5xx_PMU is not set -# CONFIG_ARM_CCN is not set # CONFIG_BRCMSTB_GISB_ARB is not set +# CONFIG_SIMPLE_PM_BUS is not set CONFIG_VEXPRESS_CONFIG=y CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y +# CONFIG_GNSS is not set CONFIG_MTD=y # CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set @@ -996,6 +1030,10 @@ CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_OF_PARTS=y # CONFIG_MTD_AR7_PARTS is not set +# +# Partition parsers +# + # # User Modules And Translation Layers # @@ -1021,13 +1059,8 @@ CONFIG_MTD_GEN_PROBE=y CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set # CONFIG_MTD_CFI_INTELEXT is not set CONFIG_MTD_CFI_AMDSTD=y # CONFIG_MTD_CFI_STAA is not set @@ -1054,6 +1087,7 @@ CONFIG_MTD_PHYSMAP_OF=y # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_DATAFLASH is not set CONFIG_MTD_M25P80=y +# CONFIG_MTD_MCHP23K256 is not set # CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set @@ -1064,15 +1098,14 @@ CONFIG_MTD_M25P80=y # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set +# CONFIG_MTD_ONENAND is not set CONFIG_MTD_NAND_ECC=y # CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=y # CONFIG_MTD_NAND_ECC_BCH is not set -# CONFIG_MTD_SM_COMMON is not set # CONFIG_MTD_NAND_DENALI_PCI is not set # CONFIG_MTD_NAND_DENALI_DT is not set # CONFIG_MTD_NAND_GPIO is not set -# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set # CONFIG_MTD_NAND_RICOH is not set # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_DOCG4 is not set @@ -1080,9 +1113,7 @@ CONFIG_MTD_NAND=y # CONFIG_MTD_NAND_NANDSIM is not set # CONFIG_MTD_NAND_BRCMNAND is not set # CONFIG_MTD_NAND_PLATFORM is not set -# CONFIG_MTD_NAND_HISI504 is not set -# CONFIG_MTD_NAND_MTK is not set -# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD_SPI_NAND is not set # # LPDDR & LPDDR2 PCM memory drivers @@ -1099,14 +1130,12 @@ CONFIG_OF=y # CONFIG_OF_UNITTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_KOBJ=y CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y -CONFIG_OF_ADDRESS_PCI=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y -CONFIG_OF_PCI=y -CONFIG_OF_PCI_IRQ=y CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y @@ -1115,10 +1144,8 @@ CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_CRYPTOLOOP is not set @@ -1132,6 +1159,10 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_ATA_OVER_ETH is not set # CONFIG_BLK_DEV_RBD is not set # CONFIG_BLK_DEV_RSXX is not set + +# +# NVME Support +# # CONFIG_BLK_DEV_NVME is not set # CONFIG_NVME_FC is not set # CONFIG_NVME_TARGET is not set @@ -1139,7 +1170,6 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # # Misc devices # -# CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_PHANTOM is not set @@ -1156,7 +1186,6 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_SENSORS_APDS990X is not set # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set -# CONFIG_TI_DAC7512 is not set # CONFIG_USB_SWITCH_FSA9480 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set CONFIG_SRAM=y @@ -1183,11 +1212,11 @@ CONFIG_EEPROM_93CX6=m # CONFIG_TI_ST is not set # CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_ALTERA_STAPL is not set # -# Altera FPGA firmware download module +# Intel MIC & related support # -# CONFIG_ALTERA_STAPL is not set # # Intel MIC Bus Driver @@ -1221,8 +1250,8 @@ CONFIG_EEPROM_93CX6=m # VOP Driver # # CONFIG_ECHO is not set -# CONFIG_CXL_BASE is not set -# CONFIG_CXL_AFU_DRIVER_OPS is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_MISC_RTSX_USB is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -1233,7 +1262,6 @@ CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_NETLINK is not set # CONFIG_SCSI_MQ_DEFAULT is not set CONFIG_SCSI_PROC_FS=y @@ -1290,7 +1318,6 @@ CONFIG_SCSI_LOWLEVEL=y # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_SNIC is not set # CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set @@ -1328,10 +1355,9 @@ CONFIG_NET_CORE=y # CONFIG_NET_TEAM is not set # CONFIG_MACVLAN is not set # CONFIG_VXLAN is not set +# CONFIG_GTP is not set # CONFIG_MACSEC is not set # CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_TUN is not set # CONFIG_TUN_VNET_CROSS_LE is not set # CONFIG_VETH is not set @@ -1361,7 +1387,6 @@ CONFIG_NET_VENDOR_AMAZON=y CONFIG_NET_VENDOR_AMD=y # CONFIG_AMD8111_ETH is not set # CONFIG_PCNET32 is not set -# CONFIG_AMD_XGBE_HAVE_ECC is not set CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y @@ -1371,9 +1396,6 @@ CONFIG_NET_VENDOR_ATHEROS=y # CONFIG_ATL1C is not set # CONFIG_ALX is not set # CONFIG_NET_VENDOR_AURORA is not set -CONFIG_NET_CADENCE=y -CONFIG_MACB=y -# CONFIG_MACB_PCI is not set CONFIG_NET_VENDOR_BROADCOM=y # CONFIG_B44 is not set # CONFIG_BCMGENET is not set @@ -1385,6 +1407,10 @@ CONFIG_NET_VENDOR_BROADCOM=y # CONFIG_BNXT is not set CONFIG_NET_VENDOR_BROCADE=y # CONFIG_BNA is not set +CONFIG_NET_VENDOR_CADENCE=y +CONFIG_MACB=y +CONFIG_MACB_USE_HWSTAMP=y +# CONFIG_MACB_PCI is not set CONFIG_NET_VENDOR_CAVIUM=y CONFIG_NET_VENDOR_CHELSIO=y # CONFIG_CHELSIO_T1 is not set @@ -1395,6 +1421,8 @@ CONFIG_NET_VENDOR_CIRRUS=y # CONFIG_CS89x0 is not set CONFIG_NET_VENDOR_CISCO=y # CONFIG_ENIC is not set +CONFIG_NET_VENDOR_CORTINA=y +# CONFIG_GEMINI_ETHERNET is not set # CONFIG_DM9000 is not set # CONFIG_DNET is not set CONFIG_NET_VENDOR_DEC=y @@ -1406,9 +1434,6 @@ CONFIG_NET_VENDOR_EMULEX=y # CONFIG_BE2NET is not set CONFIG_NET_VENDOR_EZCHIP=y # CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set -CONFIG_NET_VENDOR_EXAR=y -# CONFIG_S2IO is not set -# CONFIG_VXGE is not set CONFIG_NET_VENDOR_FARADAY=y # CONFIG_FTMAC100 is not set # CONFIG_FTGMAC100 is not set @@ -1419,8 +1444,11 @@ CONFIG_NET_VENDOR_HISILICON=y # CONFIG_HNS is not set # CONFIG_HNS_DSAF is not set # CONFIG_HNS_ENET is not set +# CONFIG_HNS3 is not set CONFIG_NET_VENDOR_HP=y # CONFIG_HP100 is not set +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_INTEL=y # CONFIG_E100 is not set # CONFIG_E1000 is not set @@ -1432,19 +1460,18 @@ CONFIG_E1000E=y # CONFIG_IXGBEVF is not set # CONFIG_I40E is not set # CONFIG_I40EVF is not set +# CONFIG_ICE is not set # CONFIG_FM10K is not set -CONFIG_NET_VENDOR_I825XX=y # CONFIG_JME is not set CONFIG_NET_VENDOR_MARVELL=y # CONFIG_MVMDIO is not set -# CONFIG_MVNETA_BM is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set CONFIG_NET_VENDOR_MELLANOX=y # CONFIG_MLX4_EN is not set -# CONFIG_MLX4_CORE is not set # CONFIG_MLX5_CORE is not set # CONFIG_MLXSW_CORE is not set +# CONFIG_MLXFW is not set CONFIG_NET_VENDOR_MICREL=y # CONFIG_KS8842 is not set # CONFIG_KS8851 is not set @@ -1453,14 +1480,21 @@ CONFIG_NET_VENDOR_MICREL=y CONFIG_NET_VENDOR_MICROCHIP=y # CONFIG_ENC28J60 is not set # CONFIG_ENCX24J600 is not set +# CONFIG_LAN743X is not set +CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_NET_VENDOR_MYRI=y # CONFIG_MYRI10GE is not set # CONFIG_FEALNX is not set CONFIG_NET_VENDOR_NATSEMI=y # CONFIG_NATSEMI is not set # CONFIG_NS83820 is not set +CONFIG_NET_VENDOR_NETERION=y +# CONFIG_S2IO is not set +# CONFIG_VXGE is not set CONFIG_NET_VENDOR_NETRONOME=y # CONFIG_NFP is not set +CONFIG_NET_VENDOR_NI=y +# CONFIG_NI_XGE_MANAGEMENT_ENET is not set CONFIG_NET_VENDOR_8390=y # CONFIG_AX88796 is not set # CONFIG_NE2K_PCI is not set @@ -1468,7 +1502,7 @@ CONFIG_NET_VENDOR_NVIDIA=y # CONFIG_FORCEDETH is not set CONFIG_NET_VENDOR_OKI=y # CONFIG_ETHOC is not set -CONFIG_NET_PACKET_ENGINE=y +CONFIG_NET_VENDOR_PACKET_ENGINES=y # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set CONFIG_NET_VENDOR_QLOGIC=y @@ -1478,33 +1512,35 @@ CONFIG_NET_VENDOR_QLOGIC=y # CONFIG_NETXEN_NIC is not set # CONFIG_QED is not set CONFIG_NET_VENDOR_QUALCOMM=y -# CONFIG_QCA7000 is not set +# CONFIG_QCA7000_SPI is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_RMNET is not set +CONFIG_NET_VENDOR_RDC=y +# CONFIG_R6040 is not set CONFIG_NET_VENDOR_REALTEK=y # CONFIG_8139CP is not set # CONFIG_8139TOO is not set CONFIG_R8169=y CONFIG_NET_VENDOR_RENESAS=y -CONFIG_NET_VENDOR_RDC=y -# CONFIG_R6040 is not set CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y # CONFIG_SXGBE_ETH is not set CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SOLARFLARE=y +# CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SILAN=y # CONFIG_SC92031 is not set CONFIG_NET_VENDOR_SIS=y # CONFIG_SIS900 is not set # CONFIG_SIS190 is not set -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SMSC=y # CONFIG_SMC91X is not set # CONFIG_EPIC100 is not set # CONFIG_SMC911X is not set # CONFIG_SMSC911X is not set # CONFIG_SMSC9420 is not set +CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=y CONFIG_STMMAC_PLATFORM=y @@ -1517,6 +1553,8 @@ CONFIG_NET_VENDOR_SUN=y # CONFIG_SUNGEM is not set # CONFIG_CASSINI is not set # CONFIG_NIU is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_DWC_XLGMAC is not set CONFIG_NET_VENDOR_TEHUTI=y # CONFIG_TEHUTI is not set CONFIG_NET_VENDOR_TI=y @@ -1530,17 +1568,17 @@ CONFIG_NET_VENDOR_WIZNET=y # CONFIG_WIZNET_W5300 is not set CONFIG_NET_VENDOR_XILINX=y CONFIG_XILINX_EMACLITE=y -CONFIG_NET_VENDOR_SYNOPSYS=y -# CONFIG_DWC_XLGMAC is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y # CONFIG_MDIO_BCM_UNIMAC is not set CONFIG_MDIO_BITBANG=y # CONFIG_MDIO_BUS_MUX_GPIO is not set # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +# CONFIG_MDIO_MSCC_MIIM is not set CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set @@ -1550,12 +1588,16 @@ CONFIG_SWPHY=y # # CONFIG_AMD_PHY is not set # CONFIG_AQUANTIA_PHY is not set +# CONFIG_ASIX_PHY is not set # CONFIG_AT803X_PHY is not set # CONFIG_BCM7XXX_PHY is not set # CONFIG_BCM87XX_PHY is not set # CONFIG_BROADCOM_PHY is not set # CONFIG_CICADA_PHY is not set +# CONFIG_CORTINA_PHY is not set # CONFIG_DAVICOM_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set CONFIG_FIXED_PHY=y @@ -1564,12 +1606,16 @@ CONFIG_FIXED_PHY=y # CONFIG_LSI_ET1011C_PHY is not set # CONFIG_LXT_PHY is not set CONFIG_MARVELL_PHY=y +# CONFIG_MARVELL_10G_PHY is not set CONFIG_MICREL_PHY=y -# CONFIG_MICROCHIP_PHY is not set +CONFIG_MICROCHIP_PHY=m +# CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set # CONFIG_NATIONAL_PHY is not set # CONFIG_QSEMI_PHY is not set -# CONFIG_REALTEK_PHY is not set +CONFIG_REALTEK_PHY=y +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set # CONFIG_SMSC_PHY is not set # CONFIG_STE10XP is not set # CONFIG_TERANETICS_PHY is not set @@ -1579,14 +1625,47 @@ CONFIG_VITESSE_PHY=y # CONFIG_PPP is not set # CONFIG_SLIP is not set CONFIG_USB_NET_DRIVERS=y -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m -# CONFIG_USB_LAN78XX is not set -# CONFIG_USB_USBNET is not set -# CONFIG_USB_IPHETH is not set +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_HUAWEI_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9700=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET_ENABLE=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_USB_NET_CH9200=m CONFIG_WLAN=y # CONFIG_WIRELESS_WDS is not set CONFIG_WLAN_VENDOR_ADMTEK=y @@ -1625,12 +1704,29 @@ CONFIG_WLAN_VENDOR_INTERSIL=y # CONFIG_P54_COMMON is not set # CONFIG_PRISM54 is not set CONFIG_WLAN_VENDOR_MARVELL=y -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -# CONFIG_MWIFIEX is not set -# CONFIG_MWL8K is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +CONFIG_LIBERTAS_DEBUG=y +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_DEBUG=y +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m +CONFIG_MWL8K=m CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m +CONFIG_MT76_CORE=m +CONFIG_MT76_LEDS=y +CONFIG_MT76_USB=m +CONFIG_MT76x2_COMMON=m +CONFIG_MT76x0U=m +CONFIG_MT76x2E=m +CONFIG_MT76x2U=m CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m # CONFIG_RT2400PCI is not set @@ -1671,25 +1767,40 @@ CONFIG_RTL_CARDS=m CONFIG_RTL8XXXU=m CONFIG_RTL8XXXU_UNTESTED=y CONFIG_WLAN_VENDOR_RSI=y -# CONFIG_RSI_91X is not set +CONFIG_RSI_91X=m +CONFIG_RSI_DEBUGFS=y +CONFIG_RSI_SDIO=m +CONFIG_RSI_USB=m CONFIG_WLAN_VENDOR_ST=y -# CONFIG_CW1200 is not set +CONFIG_CW1200=m +CONFIG_CW1200_WLAN_SDIO=m +CONFIG_CW1200_WLAN_SPI=m CONFIG_WLAN_VENDOR_TI=y -# CONFIG_WL1251 is not set -# CONFIG_WL12XX is not set -# CONFIG_WL18XX is not set -# CONFIG_WLCORE is not set +CONFIG_WL1251=m +CONFIG_WL1251_SPI=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SPI=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y CONFIG_WLAN_VENDOR_ZYDAS=y -# CONFIG_USB_ZD1201 is not set -# CONFIG_ZD1211RW is not set +CONFIG_USB_ZD1201=m +CONFIG_ZD1211RW=m +CONFIG_ZD1211RW_DEBUG=y +CONFIG_WLAN_VENDOR_QUANTENNA=y +# CONFIG_QTNFMAC_PEARL_PCIE is not set # CONFIG_MAC80211_HWSIM is not set -# CONFIG_USB_NET_RNDIS_WLAN is not set +CONFIG_USB_NET_RNDIS_WLAN=m # # Enable WiMAX (Networking options) to see the WiMAX drivers # # CONFIG_WAN is not set # CONFIG_VMXNET3 is not set +# CONFIG_NETDEVSIM is not set +# CONFIG_NET_FAILOVER is not set # CONFIG_ISDN is not set # CONFIG_NVM is not set @@ -1724,6 +1835,7 @@ CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_DLINK_DIR685 is not set # CONFIG_KEYBOARD_LKKBD is not set CONFIG_KEYBOARD_GPIO=y CONFIG_KEYBOARD_GPIO_POLLED=y @@ -1787,6 +1899,7 @@ CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_PS2MULT is not set # CONFIG_SERIO_ARC_PS2 is not set # CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set # CONFIG_USERIO is not set # CONFIG_GAMEPORT is not set @@ -1807,6 +1920,7 @@ CONFIG_LEGACY_PTY_COUNT=16 # CONFIG_NOZOMI is not set # CONFIG_N_GSM is not set # CONFIG_TRACE_SINK is not set +CONFIG_LDISC_AUTOLOAD=y CONFIG_DEVMEM=y CONFIG_DEVKMEM=y @@ -1824,6 +1938,7 @@ CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_NR_UARTS=2 CONFIG_SERIAL_8250_RUNTIME_UARTS=2 # CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250_ASPEED_VUART is not set CONFIG_SERIAL_8250_FSL=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_EM is not set @@ -1862,12 +1977,13 @@ CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=m # CONFIG_HW_RANDOM_TIMERIOMEM is not set -# CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set CONFIG_DEVPORT=y -# CONFIG_XILLYBUS is not set +CONFIG_XILLYBUS=m +# CONFIG_XILLYBUS_PCIE is not set +# CONFIG_XILLYBUS_OF is not set # # I2C support @@ -1883,6 +1999,7 @@ CONFIG_I2C_MUX=y # # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set # CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_GPMUX is not set # CONFIG_I2C_MUX_LTC4306 is not set # CONFIG_I2C_MUX_PCA9541 is not set CONFIG_I2C_MUX_PCA954x=y @@ -1918,17 +2035,18 @@ CONFIG_I2C_ALGOBIT=y # # I2C system bus drivers (mostly embedded / system-on-chip) # +# CONFIG_I2C_ALTERA is not set CONFIG_I2C_CADENCE=y # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_DESIGNWARE_CORE=y CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set # CONFIG_I2C_DESIGNWARE_PCI is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_PXA_PCI is not set # CONFIG_I2C_RK3X is not set # CONFIG_I2C_SIMTEC is not set # CONFIG_I2C_VERSATILE is not set @@ -1954,6 +2072,7 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y # # SPI Master Controller Drivers @@ -1968,7 +2087,6 @@ CONFIG_SPI_CADENCE=y # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PL022 is not set # CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_PXA2XX_PCI is not set # CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_XCOMM is not set @@ -1981,12 +2099,9 @@ CONFIG_SPI_XILINX=y # CONFIG_SPI_SPIDEV is not set # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPI_SLAVE is not set # CONFIG_SPMI is not set # CONFIG_HSI is not set - -# -# PPS support -# CONFIG_PPS=y # CONFIG_PPS_DEBUG is not set @@ -2007,20 +2122,18 @@ CONFIG_PPS=y CONFIG_PTP_1588_CLOCK=y # CONFIG_DP83640_PHY is not set CONFIG_PINCTRL=y - -# -# Pin controllers -# CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set +# CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_SINGLE is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_ZYNQ=y CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set @@ -2037,6 +2150,8 @@ CONFIG_GPIO_DWAPB=y # CONFIG_GPIO_FTGPIO010 is not set CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HLWD is not set +# CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_MOCKUP is not set # CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PL061=y @@ -2054,7 +2169,6 @@ CONFIG_GPIO_ZYNQ=y # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCF857X is not set -# CONFIG_GPIO_SX150X is not set # CONFIG_GPIO_TPIC2810 is not set # @@ -2067,20 +2181,18 @@ CONFIG_GPIO_ZYNQ=y # # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set # CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders # # CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX3191X is not set # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_PISOSR is not set - -# -# SPI or I2C GPIO expanders -# -# CONFIG_GPIO_MCP23S08 is not set +# CONFIG_GPIO_XRA1403 is not set # # USB GPIO expanders @@ -2104,12 +2216,14 @@ CONFIG_POWER_SUPPLY=y # CONFIG_PDA_POWER is not set # CONFIG_GENERIC_ADC_BATTERY is not set # CONFIG_TEST_POWER is not set +# CONFIG_CHARGER_ADP5061 is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set +# CONFIG_MANAGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set @@ -2118,6 +2232,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set @@ -2128,7 +2243,6 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_HWMON=y -# CONFIG_HWMON_VID is not set # CONFIG_HWMON_DEBUG_CHIP is not set # @@ -2184,6 +2298,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_MAX1668 is not set # CONFIG_SENSORS_MAX197 is not set # CONFIG_SENSORS_MAX31722 is not set +# CONFIG_SENSORS_MAX6621 is not set # CONFIG_SENSORS_MAX6639 is not set # CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set @@ -2215,19 +2330,24 @@ CONFIG_HWMON=y # CONFIG_SENSORS_NCT6775 is not set # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_NPCM7XX is not set # CONFIG_SENSORS_PCF8591 is not set CONFIG_PMBUS=y CONFIG_SENSORS_PMBUS=y # CONFIG_SENSORS_ADM1275 is not set +# CONFIG_SENSORS_IBM_CFFPS is not set +# CONFIG_SENSORS_IR35221 is not set # CONFIG_SENSORS_LM25066 is not set CONFIG_SENSORS_LTC2978=y CONFIG_SENSORS_LTC2978_REGULATOR=y # CONFIG_SENSORS_LTC3815 is not set # CONFIG_SENSORS_MAX16064 is not set # CONFIG_SENSORS_MAX20751 is not set +# CONFIG_SENSORS_MAX31785 is not set # CONFIG_SENSORS_MAX34440 is not set # CONFIG_SENSORS_MAX8688 is not set # CONFIG_SENSORS_TPS40422 is not set +# CONFIG_SENSORS_TPS53679 is not set CONFIG_SENSORS_UCD9000=y CONFIG_SENSORS_UCD9200=y # CONFIG_SENSORS_ZL6100 is not set @@ -2243,7 +2363,6 @@ CONFIG_SENSORS_UCD9200=y # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SCH56XX_COMMON is not set # CONFIG_SENSORS_SCH5627 is not set # CONFIG_SENSORS_SCH5636 is not set # CONFIG_SENSORS_STTS751 is not set @@ -2267,6 +2386,7 @@ CONFIG_SENSORS_UCD9200=y # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83773G is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set @@ -2277,6 +2397,7 @@ CONFIG_SENSORS_UCD9200=y # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set CONFIG_THERMAL=y +# CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_OF=y @@ -2301,6 +2422,7 @@ CONFIG_CPU_THERMAL=y CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y # CONFIG_WATCHDOG_SYSFS is not set # @@ -2312,6 +2434,7 @@ CONFIG_XILINX_WATCHDOG=y # CONFIG_ZIIRAVE_WATCHDOG is not set # CONFIG_ARM_SP805_WATCHDOG is not set CONFIG_CADENCE_WATCHDOG=y +# CONFIG_FTWDT010_WATCHDOG is not set CONFIG_DW_WATCHDOG=y # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_ALIM7101_WDT is not set @@ -2334,16 +2457,8 @@ CONFIG_DW_WATCHDOG=y # # CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# # CONFIG_SSB is not set CONFIG_BCMA_POSSIBLE=y - -# -# Broadcom specific AMBA -# # CONFIG_BCMA is not set # @@ -2359,8 +2474,10 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_ATMEL_FLEXCOM is not set # CONFIG_MFD_ATMEL_HLCDC is not set # CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_MADERA is not set # CONFIG_MFD_ASIC3 is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set @@ -2377,7 +2494,6 @@ CONFIG_MFD_CORE=y # CONFIG_HTC_I2CPLD is not set # CONFIG_LPC_ICH is not set # CONFIG_LPC_SCH is not set -# CONFIG_INTEL_SOC_PMIC is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set @@ -2401,9 +2517,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_PM8XXX is not set # CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RTSX_PCI is not set # CONFIG_MFD_RT5033 is not set -# CONFIG_MFD_RTSX_USB is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_RK808 is not set # CONFIG_MFD_RN5T618 is not set @@ -2427,6 +2541,7 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TPS65090 is not set # CONFIG_MFD_TPS65217 is not set # CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TI_LP87565 is not set # CONFIG_MFD_TPS65218 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set @@ -2438,7 +2553,6 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TMIO is not set # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set @@ -2450,12 +2564,14 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_ROHM_BD718XX is not set CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set @@ -2481,6 +2597,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_PV88060 is not set # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set +# CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS65023 is not set @@ -2489,6 +2606,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_TPS6524X is not set # CONFIG_REGULATOR_VCTRL is not set # CONFIG_REGULATOR_VEXPRESS is not set +# CONFIG_RC_CORE is not set CONFIG_MEDIA_SUPPORT=y # @@ -2499,7 +2617,6 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y # CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set -# CONFIG_MEDIA_RC_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=y @@ -2508,10 +2625,7 @@ CONFIG_VIDEO_V4L2=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_PCI_SKELETON is not set -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEOBUF2_MEMOPS=y -CONFIG_VIDEOBUF2_DMA_CONTIG=y -# CONFIG_TTPCI_EEPROM is not set +CONFIG_V4L2_FWNODE=y # # Media drivers @@ -2520,6 +2634,8 @@ CONFIG_VIDEOBUF2_DMA_CONTIG=y # CONFIG_MEDIA_PCI_SUPPORT is not set CONFIG_V4L_PLATFORM_DRIVERS=y # CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_CADENCE is not set +# CONFIG_VIDEO_MUX is not set # CONFIG_SOC_CAMERA is not set CONFIG_VIDEO_XILINX=y CONFIG_VIDEO_XILINX_TPG=y @@ -2531,6 +2647,10 @@ CONFIG_VIDEO_XILINX_VTC=y # Supported MMC/SDIO adapters # # CONFIG_CYPRESS_FIRMWARE is not set +CONFIG_VIDEOBUF2_CORE=y +CONFIG_VIDEOBUF2_V4L2=y +CONFIG_VIDEOBUF2_MEMOPS=y +CONFIG_VIDEOBUF2_DMA_CONTIG=y # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) @@ -2547,6 +2667,7 @@ CONFIG_VIDEO_XILINX_VTC=y # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TDA1997X is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set @@ -2570,6 +2691,7 @@ CONFIG_VIDEO_XILINX_VTC=y # # CONFIG_VIDEO_ADV7180 is not set # CONFIG_VIDEO_ADV7183 is not set +# CONFIG_VIDEO_ADV748X is not set CONFIG_VIDEO_ADV7604=y # CONFIG_VIDEO_ADV7604_CEC is not set # CONFIG_VIDEO_ADV7842 is not set @@ -2579,6 +2701,9 @@ CONFIG_VIDEO_ADV7604=y # CONFIG_VIDEO_KS0127 is not set # CONFIG_VIDEO_ML86V7667 is not set # CONFIG_VIDEO_AD5820 is not set +# CONFIG_VIDEO_AK7375 is not set +# CONFIG_VIDEO_DW9714 is not set +# CONFIG_VIDEO_DW9807_VCM is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set # CONFIG_VIDEO_TC358743 is not set @@ -2588,6 +2713,7 @@ CONFIG_VIDEO_ADV7604=y # CONFIG_VIDEO_TW2804 is not set # CONFIG_VIDEO_TW9903 is not set # CONFIG_VIDEO_TW9906 is not set +# CONFIG_VIDEO_TW9910 is not set # CONFIG_VIDEO_VPX3220 is not set # @@ -2613,23 +2739,38 @@ CONFIG_VIDEO_ADV7604=y # # Camera sensor devices # +# CONFIG_VIDEO_IMX258 is not set +# CONFIG_VIDEO_IMX274 is not set # CONFIG_VIDEO_OV2640 is not set # CONFIG_VIDEO_OV2659 is not set +# CONFIG_VIDEO_OV2680 is not set +# CONFIG_VIDEO_OV2685 is not set +# CONFIG_VIDEO_OV5640 is not set # CONFIG_VIDEO_OV5645 is not set # CONFIG_VIDEO_OV5647 is not set +# CONFIG_VIDEO_OV6650 is not set +# CONFIG_VIDEO_OV5670 is not set +# CONFIG_VIDEO_OV5695 is not set +# CONFIG_VIDEO_OV7251 is not set +# CONFIG_VIDEO_OV772X is not set # CONFIG_VIDEO_OV7640 is not set # CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_OV7740 is not set # CONFIG_VIDEO_OV9650 is not set +# CONFIG_VIDEO_OV13858 is not set # CONFIG_VIDEO_VS6624 is not set # CONFIG_VIDEO_MT9M032 is not set # CONFIG_VIDEO_MT9M111 is not set # CONFIG_VIDEO_MT9P031 is not set # CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9T112 is not set # CONFIG_VIDEO_MT9V011 is not set # CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_MT9V111 is not set # CONFIG_VIDEO_SR030PC30 is not set # CONFIG_VIDEO_NOON010PC30 is not set # CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_RJ54N1 is not set # CONFIG_VIDEO_S5K6AA is not set # CONFIG_VIDEO_S5K6A3 is not set # CONFIG_VIDEO_S5K4ECGX is not set @@ -2642,7 +2783,6 @@ CONFIG_VIDEO_ADV7604=y # Flash devices # # CONFIG_VIDEO_ADP1653 is not set -# CONFIG_VIDEO_AS3645A is not set # CONFIG_VIDEO_LM3560 is not set # CONFIG_VIDEO_LM3646 is not set @@ -2657,11 +2797,16 @@ CONFIG_VIDEO_ADV7604=y # # CONFIG_VIDEO_SAA6752HS is not set +# +# SDR tuner chips +# + # # Miscellaneous helper chips # # CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_I2C is not set # # Sensors used on soc_camera driver @@ -2672,6 +2817,10 @@ CONFIG_VIDEO_ADV7604=y # # CONFIG_VIDEO_GS1662 is not set +# +# Media SPI Adapters +# + # # Customise DVB Frontends # @@ -2689,12 +2838,14 @@ CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_DRM=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DEBUG_MM is not set -# CONFIG_DRM_DEBUG_MM_SELFTEST is not set +# CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 +# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +# CONFIG_DRM_DP_CEC is not set # # I2C encoder or helper chips @@ -2702,6 +2853,7 @@ CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_I2C_CH7006 is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set # CONFIG_DRM_HDLCD is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_RADEON is not set @@ -2710,8 +2862,13 @@ CONFIG_DRM_FBDEV_OVERALLOC=100 # # ACP (Audio CoProcessor) Configuration # + +# +# AMD Library routines +# # CONFIG_DRM_NOUVEAU is not set # CONFIG_DRM_VGEM is not set +# CONFIG_DRM_VKMS is not set # CONFIG_DRM_EXYNOS is not set # CONFIG_DRM_UDL is not set # CONFIG_DRM_AST is not set @@ -2719,17 +2876,31 @@ CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_ARMADA is not set # CONFIG_DRM_RCAR_DW_HDMI is not set +# CONFIG_DRM_RCAR_LVDS is not set # CONFIG_DRM_OMAP is not set # CONFIG_DRM_TILCDC is not set # CONFIG_DRM_QXL is not set # CONFIG_DRM_BOCHS is not set # CONFIG_DRM_FSL_DCU is not set -CONFIG_DRM_BRIDGE=y +# CONFIG_DRM_STM is not set +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set +# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # # CONFIG_DRM_ANALOGIX_ANX78XX is not set +# CONFIG_DRM_CDNS_DSI is not set # CONFIG_DRM_DUMB_VGA_DAC is not set # CONFIG_DRM_LVDS_ENCODER is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set @@ -2737,6 +2908,8 @@ CONFIG_DRM_BRIDGE=y # CONFIG_DRM_PARADE_PS8622 is not set # CONFIG_DRM_SIL_SII8620 is not set # CONFIG_DRM_SII902X is not set +# CONFIG_DRM_SII9234 is not set +# CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TI_TFP410 is not set # CONFIG_DRM_I2C_ADV7511 is not set @@ -2745,8 +2918,10 @@ CONFIG_DRM_BRIDGE=y # CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_MXSFB is not set # CONFIG_DRM_TINYDRM is not set +# CONFIG_DRM_PL111 is not set +# CONFIG_DRM_TVE200 is not set # CONFIG_DRM_LEGACY is not set -# CONFIG_DRM_LIB_RANDOM is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # # Frame buffer Devices @@ -2755,22 +2930,15 @@ CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y -# CONFIG_FB_DDC is not set -# CONFIG_FB_BOOT_VESA_SUPPORT is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y -# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set @@ -2813,12 +2981,10 @@ CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_AUO_K190X is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SSD1307 is not set # CONFIG_FB_SM712 is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set -# CONFIG_VGASTATE is not set CONFIG_HDMI=y # @@ -2828,18 +2994,16 @@ CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set # CONFIG_LOGO is not set CONFIG_SOUND=y -# CONFIG_SOUND_OSS_CORE is not set CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y CONFIG_SND_DMAENGINE_PCM=y CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y -# CONFIG_SND_SEQUENCER is not set -# CONFIG_SND_MIXER_OSS is not set -# CONFIG_SND_PCM_OSS is not set +# CONFIG_SND_OSSEMUL is not set CONFIG_SND_PCM_TIMER=y # CONFIG_SND_HRTIMER is not set # CONFIG_SND_DYNAMIC_MINORS is not set @@ -2848,11 +3012,7 @@ CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set -# CONFIG_SND_RAWMIDI_SEQ is not set -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_SEQUENCER is not set CONFIG_SND_DRIVERS=y # CONFIG_SND_DUMMY is not set # CONFIG_SND_ALOOP is not set @@ -2955,6 +3115,10 @@ CONFIG_SND_SOC_ADI_AXI_SPDIF=y # CONFIG_SND_SOC_IMX_AUDMUX is not set # CONFIG_SND_I2S_HI6210_I2S is not set # CONFIG_SND_SOC_IMG is not set + +# +# STMicroelectronics STM32 SOC audio support +# # CONFIG_SND_SOC_XTFPGA_I2S is not set # CONFIG_ZX_TDM is not set CONFIG_SND_SOC_I2C_AND_SPI=y @@ -2968,11 +3132,14 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_ADAU1761_SPI is not set # CONFIG_SND_SOC_ADAU7002 is not set # CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4458 is not set # CONFIG_SND_SOC_AK4554 is not set # CONFIG_SND_SOC_AK4613 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set # CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set # CONFIG_SND_SOC_CS35L32 is not set # CONFIG_SND_SOC_CS35L33 is not set @@ -2988,31 +3155,39 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS4271_I2C is not set # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS43130 is not set # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set -# CONFIG_SND_SOC_DIO2125 is not set # CONFIG_SND_SOC_ES7134 is not set +# CONFIG_SND_SOC_ES7241 is not set +# CONFIG_SND_SOC_ES8316 is not set # CONFIG_SND_SOC_ES8328_I2C is not set # CONFIG_SND_SOC_ES8328_SPI is not set # CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set # CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98373 is not set # CONFIG_SND_SOC_MAX9860 is not set # CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set # CONFIG_SND_SOC_PCM179X_I2C is not set # CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM186X_SPI is not set # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set -# CONFIG_SND_SOC_RT5677_SPI is not set # CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set # CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SSM2305 is not set # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM4567 is not set @@ -3023,14 +3198,21 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set # CONFIG_SND_SOC_TFA9879 is not set # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set # CONFIG_SND_SOC_TLV320AIC3X is not set # CONFIG_SND_SOC_TS3A227E is not set +# CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8524 is not set # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -3041,6 +3223,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8770 is not set # CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set # CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set @@ -3049,12 +3232,17 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_WM8974 is not set # CONFIG_SND_SOC_WM8978 is not set # CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_ZX_AUD96P22 is not set +# CONFIG_SND_SOC_MAX9759 is not set +# CONFIG_SND_SOC_MT6351 is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8824 is not set # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SIMPLE_CARD is not set # CONFIG_SND_SIMPLE_SCU_CARD is not set +# CONFIG_SND_AUDIO_GRAPH_CARD is not set +# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # # HID support @@ -3080,18 +3268,20 @@ CONFIG_HID_GENERIC=y # CONFIG_HID_CHERRY is not set # CONFIG_HID_CHICONY is not set # CONFIG_HID_CORSAIR is not set +# CONFIG_HID_COUGAR is not set # CONFIG_HID_PRODIKEYS is not set # CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CP2112 is not set # CONFIG_HID_CYPRESS is not set # CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELAN is not set # CONFIG_HID_ELECOM is not set # CONFIG_HID_ELO is not set # CONFIG_HID_EZKEY is not set # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GFRM is not set # CONFIG_HID_HOLTEK is not set +# CONFIG_HID_GOOGLE_HAMMER is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set # CONFIG_HID_KYE is not set @@ -3099,6 +3289,8 @@ CONFIG_HID_GENERIC=y # CONFIG_HID_WALTOP is not set # CONFIG_HID_GYRATION is not set # CONFIG_HID_ICADE is not set +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set # CONFIG_HID_TWINHAN is not set # CONFIG_HID_KENSINGTON is not set # CONFIG_HID_LCPOWER is not set @@ -3107,6 +3299,7 @@ CONFIG_HID_GENERIC=y # CONFIG_HID_LOGITECH is not set # CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=y # CONFIG_HID_MONTEREY is not set # CONFIG_HID_MULTITOUCH is not set @@ -3119,11 +3312,13 @@ CONFIG_HID_MICROSOFT=y # CONFIG_HID_PICOLCD is not set # CONFIG_HID_PLANTRONICS is not set # CONFIG_HID_PRIMAX is not set +# CONFIG_HID_RETRODE is not set # CONFIG_HID_ROCCAT is not set # CONFIG_HID_SAITEK is not set # CONFIG_HID_SAMSUNG is not set # CONFIG_HID_SONY is not set # CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set # CONFIG_HID_STEELSERIES is not set # CONFIG_HID_SUNPLUS is not set # CONFIG_HID_RMI is not set @@ -3186,7 +3381,6 @@ CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_HCD_PLATFORM is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set # CONFIG_USB_OHCI_HCD is not set @@ -3198,9 +3392,9 @@ CONFIG_USB_EHCI_PCI=y # # USB Device Class drivers # -# CONFIG_USB_ACM is not set +CONFIG_USB_ACM=m # CONFIG_USB_PRINTER is not set -# CONFIG_USB_WDM is not set +CONFIG_USB_WDM=m # CONFIG_USB_TMC is not set # @@ -3251,7 +3445,6 @@ CONFIG_USB_CHIPIDEA_OF=y CONFIG_USB_CHIPIDEA_PCI=y CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y -# CONFIG_USB_CHIPIDEA_ULPI is not set # CONFIG_USB_ISP1760 is not set # @@ -3316,6 +3509,7 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_PXA27X is not set # CONFIG_USB_MV_UDC is not set # CONFIG_USB_MV_U3D is not set +# CONFIG_USB_SNP_UDC_PLAT is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set # CONFIG_USB_AMD5536UDC is not set @@ -3345,48 +3539,52 @@ CONFIG_USB_ZERO=m # CONFIG_USB_G_HID is not set # CONFIG_USB_G_DBGP is not set # CONFIG_USB_G_WEBCAM is not set - -# -# USB Power Delivery and Type-C drivers -# +# CONFIG_TYPEC is not set +# CONFIG_USB_ROLE_SWITCH is not set # CONFIG_USB_LED_TRIG is not set CONFIG_USB_ULPI_BUS=y # CONFIG_UWB is not set CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set CONFIG_PWRSEQ_EMMC=y +# CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_BLOCK_BOUNCE=y # CONFIG_SDIO_UART is not set # CONFIG_MMC_TEST is not set # # MMC/SD/SDIO Host Controller Drivers # +# CONFIG_MMC_DEBUG is not set # CONFIG_MMC_ARMMMCI is not set CONFIG_MMC_SDHCI=y # CONFIG_MMC_SDHCI_PCI is not set CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_OF_ARASAN=y # CONFIG_MMC_SDHCI_OF_AT91 is not set +# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set # CONFIG_MMC_SDHCI_CADENCE is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set # CONFIG_MMC_TIFM_SD is not set +# CONFIG_MMC_SPI is not set # CONFIG_MMC_CB710 is not set # CONFIG_MMC_VIA_SDMMC is not set CONFIG_MMC_DW=y CONFIG_MMC_DW_PLTFM=y +# CONFIG_MMC_DW_BLUEFIELD is not set # CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_HI3798CV200 is not set # CONFIG_MMC_DW_K3 is not set # CONFIG_MMC_DW_PCI is not set # CONFIG_MMC_VUB300 is not set # CONFIG_MMC_USHC is not set # CONFIG_MMC_USDHI6ROL0 is not set +CONFIG_MMC_CQHCI=y # CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set # CONFIG_MMC_SDHCI_XENON is not set +# CONFIG_MMC_SDHCI_OMAP is not set # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y @@ -3398,8 +3596,10 @@ CONFIG_LEDS_CLASS=y # # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_CR0014114 is not set # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_LM3692X is not set # CONFIG_LEDS_PCA9532 is not set CONFIG_LEDS_GPIO=y # CONFIG_LEDS_LP3944 is not set @@ -3426,6 +3626,7 @@ CONFIG_LEDS_GPIO=y # # CONFIG_LEDS_BLINKM is not set # CONFIG_LEDS_SYSCON is not set +# CONFIG_LEDS_MLXREG is not set # CONFIG_LEDS_USER is not set # @@ -3438,6 +3639,7 @@ CONFIG_LEDS_TRIGGER_ONESHOT=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y CONFIG_LEDS_TRIGGER_CPU=y +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_LEDS_TRIGGER_DEFAULT_ON=y @@ -3447,6 +3649,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_LEDS_TRIGGER_TRANSIENT=y CONFIG_LEDS_TRIGGER_CAMERA=y # CONFIG_LEDS_TRIGGER_PANIC is not set +# CONFIG_LEDS_TRIGGER_NETDEV is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y @@ -3463,6 +3666,7 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0" CONFIG_RTC_SYSTOHC=y CONFIG_RTC_SYSTOHC_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y # # RTC interfaces @@ -3486,9 +3690,11 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12026 is not set # CONFIG_RTC_DRV_X1205 is not set # CONFIG_RTC_DRV_PCF8523 is not set # CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set CONFIG_RTC_DRV_PCF8563=y # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set @@ -3553,6 +3759,7 @@ CONFIG_RTC_I2C_AND_SPI=y # # CONFIG_RTC_DRV_PL030 is not set # CONFIG_RTC_DRV_PL031 is not set +# CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_SNVS is not set # CONFIG_RTC_DRV_R7301 is not set @@ -3568,8 +3775,10 @@ CONFIG_DMADEVICES=y # CONFIG_DMA_ENGINE=y CONFIG_DMA_OF=y +# CONFIG_ALTERA_MSGDMA is not set # CONFIG_AMBA_PL08X is not set # CONFIG_AXI_DMAC is not set +# CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_NBPFAXI_DMA is not set @@ -3593,7 +3802,6 @@ CONFIG_PL330_DMA=y CONFIG_SYNC_FILE=y # CONFIG_SW_SYNC is not set # CONFIG_AUXDISPLAY is not set -# CONFIG_ARM_CHARLCD is not set CONFIG_UIO=y # CONFIG_UIO_CIF is not set CONFIG_UIO_PDRV_GENIRQ=y @@ -3605,20 +3813,17 @@ CONFIG_UIO_PDRV_GENIRQ=y # CONFIG_UIO_PRUSS is not set # CONFIG_UIO_MF624 is not set # CONFIG_VIRT_DRIVERS is not set - -# -# Virtio drivers -# +CONFIG_VIRTIO_MENU=y # CONFIG_VIRTIO_PCI is not set # CONFIG_VIRTIO_MMIO is not set # # Microsoft Hyper-V guest support # -# CONFIG_HYPERV_TSCPAGE is not set # CONFIG_STAGING is not set # CONFIG_GOLDFISH is not set # CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -3630,28 +3835,25 @@ CONFIG_ICST=y CONFIG_COMMON_CLK_VERSATILE=y CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y +# CONFIG_CLK_HSDK is not set +# CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI544 is not set CONFIG_COMMON_CLK_SI570=y # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_AXI_CLKGEN is not set # CONFIG_CLK_QORIQ is not set -# CONFIG_COMMON_CLK_NXP is not set -# CONFIG_COMMON_CLK_PXA is not set -# CONFIG_COMMON_CLK_PIC32 is not set # CONFIG_COMMON_CLK_VC5 is not set - -# -# Hardware Spinlock drivers -# +# CONFIG_HWSPINLOCK is not set # # Clock Source drivers # -CONFIG_CLKSRC_OF=y -CONFIG_CLKSRC_PROBE=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y CONFIG_CLKSRC_MMIO=y CONFIG_DW_APB_TIMER=y CONFIG_DW_APB_TIMER_OF=y @@ -3659,11 +3861,6 @@ CONFIG_CADENCE_TTC_TIMER=y CONFIG_ARM_GLOBAL_TIMER=y CONFIG_ARM_TIMER_SP804=y CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y -# CONFIG_ATMEL_PIT is not set -# CONFIG_SH_TIMER_CMT is not set -# CONFIG_SH_TIMER_MTU2 is not set -# CONFIG_SH_TIMER_TMU is not set -# CONFIG_EM_TIMER_STI is not set CONFIG_CLKSRC_VERSATILE=y # CONFIG_MAILBOX is not set CONFIG_IOMMU_SUPPORT=y @@ -3673,6 +3870,7 @@ CONFIG_IOMMU_SUPPORT=y # # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set +# CONFIG_IOMMU_DEBUGFS is not set # CONFIG_ARM_SMMU is not set # @@ -3683,22 +3881,39 @@ CONFIG_IOMMU_SUPPORT=y # # Rpmsg drivers # +# CONFIG_RPMSG_VIRTIO is not set +# CONFIG_SOUNDWIRE is not set # # SOC (System On Chip) specific Drivers # +# +# Amlogic SoC drivers +# + # # Broadcom SoC drivers # # CONFIG_SOC_BRCMSTB is not set +# +# NXP/Freescale QorIQ SoC drivers +# + # # i.MX SoC drivers # -# CONFIG_SUNXI_SRAM is not set + +# +# Qualcomm SoC drivers +# # CONFIG_SOC_TI is not set -# CONFIG_SOC_ZTE is not set + +# +# Xilinx SoC drivers +# +# CONFIG_XILINX_VCU is not set # CONFIG_PM_DEVFREQ is not set CONFIG_EXTCON=y @@ -3708,7 +3923,6 @@ CONFIG_EXTCON=y # CONFIG_EXTCON_ADC_JACK is not set # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_MAX3355 is not set -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set @@ -3717,6 +3931,7 @@ CONFIG_MEMORY=y CONFIG_IIO=y CONFIG_IIO_BUFFER=y # CONFIG_IIO_BUFFER_CB is not set +# CONFIG_IIO_BUFFER_HW_CONSUMER is not set CONFIG_IIO_KFIFO_BUF=y CONFIG_IIO_TRIGGERED_BUFFER=y # CONFIG_IIO_CONFIGFS is not set @@ -3728,6 +3943,8 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # # Accelerometers # +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16209 is not set # CONFIG_ADXL345_I2C is not set # CONFIG_ADXL345_SPI is not set # CONFIG_BMA180 is not set @@ -3738,6 +3955,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_DMARD06 is not set # CONFIG_DMARD09 is not set # CONFIG_DMARD10 is not set +# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set # CONFIG_IIO_ST_ACCEL_3AXIS is not set # CONFIG_KXSD9 is not set # CONFIG_KXCJK1013 is not set @@ -3772,6 +3990,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_HI8435 is not set # CONFIG_HX711 is not set # CONFIG_INA2XX_ADC is not set +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_MAX1027 is not set @@ -3782,9 +4001,12 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_MCP320X is not set # CONFIG_MCP3422 is not set # CONFIG_NAU7802 is not set +# CONFIG_SD_ADC_MODULATOR is not set # CONFIG_TI_ADC081C is not set # CONFIG_TI_ADC0832 is not set +# CONFIG_TI_ADC084S021 is not set # CONFIG_TI_ADC12138 is not set +# CONFIG_TI_ADC108S102 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set # CONFIG_TI_ADS1015 is not set @@ -3794,6 +4016,11 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_VF610_ADC is not set CONFIG_XILINX_XADC=y +# +# Analog Front Ends +# +# CONFIG_IIO_RESCALE is not set + # # Amplifiers # @@ -3803,6 +4030,8 @@ CONFIG_XILINX_XADC=y # Chemical Sensors # # CONFIG_ATLAS_PH_SENSOR is not set +# CONFIG_BME680 is not set +# CONFIG_CCS811 is not set # CONFIG_IAQCORE is not set # CONFIG_VZ89X is not set @@ -3833,19 +4062,24 @@ CONFIG_XILINX_XADC=y # CONFIG_AD5504 is not set # CONFIG_AD5624R_SPI is not set # CONFIG_LTC2632 is not set -# CONFIG_AD5686 is not set +# CONFIG_AD5686_SPI is not set +# CONFIG_AD5696_I2C is not set # CONFIG_AD5755 is not set +# CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set # CONFIG_AD5791 is not set # CONFIG_AD7303 is not set # CONFIG_AD8801 is not set # CONFIG_DPOT_DAC is not set +# CONFIG_DS4424 is not set # CONFIG_M62332 is not set # CONFIG_MAX517 is not set # CONFIG_MAX5821 is not set # CONFIG_MCP4725 is not set # CONFIG_MCP4922 is not set +# CONFIG_TI_DAC082S085 is not set +# CONFIG_TI_DAC5571 is not set # CONFIG_VF610_DAC is not set # @@ -3930,24 +4164,30 @@ CONFIG_XILINX_XADC=y # CONFIG_CM36651 is not set # CONFIG_GP2AP020A00F is not set # CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set # CONFIG_ISL29125 is not set # CONFIG_JSA1212 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR501 is not set +# CONFIG_LV0104CS is not set # CONFIG_MAX44000 is not set # CONFIG_OPT3001 is not set # CONFIG_PA12203001 is not set +# CONFIG_SI1133 is not set # CONFIG_SI1145 is not set # CONFIG_STK3310 is not set +# CONFIG_ST_UVIS25 is not set # CONFIG_TCS3414 is not set # CONFIG_TCS3472 is not set # CONFIG_SENSORS_TSL2563 is not set # CONFIG_TSL2583 is not set +# CONFIG_TSL2772 is not set # CONFIG_TSL4531 is not set # CONFIG_US5182D is not set # CONFIG_VCNL4000 is not set # CONFIG_VEML6070 is not set # CONFIG_VL6180 is not set +# CONFIG_ZOPT2201 is not set # # Magnetometer sensors @@ -3963,6 +4203,11 @@ CONFIG_XILINX_XADC=y # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set +# +# Multiplexers +# +# CONFIG_IIO_MUX is not set + # # Inclinometer sensors # @@ -3976,9 +4221,11 @@ CONFIG_XILINX_XADC=y # # Digital potentiometers # +# CONFIG_AD5272 is not set # CONFIG_DS1803 is not set # CONFIG_MAX5481 is not set # CONFIG_MAX5487 is not set +# CONFIG_MCP4018 is not set # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_TPL0102 is not set @@ -4012,16 +4259,24 @@ CONFIG_XILINX_XADC=y # # Proximity and distance sensors # +# CONFIG_ISL29501 is not set # CONFIG_LIDAR_LITE_V2 is not set +# CONFIG_RFD77402 is not set # CONFIG_SRF04 is not set # CONFIG_SX9500 is not set # CONFIG_SRF08 is not set +# +# Resolver to digital converters +# +# CONFIG_AD2S1200 is not set + # # Temperature sensors # # CONFIG_MAXIM_THERMOCOUPLE is not set # CONFIG_MLX90614 is not set +# CONFIG_MLX90632 is not set # CONFIG_TMP006 is not set # CONFIG_TMP007 is not set # CONFIG_TSYS01 is not set @@ -4029,36 +4284,33 @@ CONFIG_XILINX_XADC=y # CONFIG_NTB is not set # CONFIG_VME_BUS is not set # CONFIG_PWM is not set + +# +# IRQ chip support +# CONFIG_IRQCHIP=y CONFIG_ARM_GIC=y CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_IPACK_BUS is not set CONFIG_ARCH_HAS_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_ATH79 is not set -# CONFIG_RESET_BERLIN is not set -# CONFIG_RESET_IMX7 is not set -# CONFIG_RESET_LPC18XX is not set -# CONFIG_RESET_MESON is not set -# CONFIG_RESET_PISTACHIO is not set -CONFIG_RESET_SOCFPGA=y -# CONFIG_RESET_STM32 is not set -# CONFIG_RESET_SUNXI is not set -# CONFIG_TI_SYSCON_RESET is not set +CONFIG_RESET_SIMPLE=y +# CONFIG_RESET_TI_SYSCON is not set CONFIG_RESET_ZYNQ=y -# CONFIG_RESET_TEGRA_BPMP is not set # CONFIG_FMC is not set # # PHY Subsystem # # CONFIG_GENERIC_PHY is not set +# CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_BCM_KONA_USB2_PHY is not set -# CONFIG_PHY_SAMSUNG_USB2 is not set +# CONFIG_PHY_CPCAP_USB is not set +# CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_HSIC is not set +# CONFIG_PHY_SAMSUNG_USB2 is not set # CONFIG_PHY_TUSB1210 is not set # CONFIG_POWERCAP is not set # CONFIG_MCB is not set @@ -4066,6 +4318,8 @@ CONFIG_RESET_ZYNQ=y # # Performance monitor support # +# CONFIG_ARM_CCI_PMU is not set +# CONFIG_ARM_CCN is not set CONFIG_ARM_PMU=y CONFIG_RAS=y @@ -4075,47 +4329,40 @@ CONFIG_RAS=y # CONFIG_ANDROID is not set # CONFIG_DAX is not set CONFIG_NVMEM=y -# CONFIG_STM is not set -# CONFIG_INTEL_TH is not set # -# FPGA Configuration Support +# HW tracing support # +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set CONFIG_FPGA=y -CONFIG_FPGA_REGION=y -# CONFIG_FPGA_MGR_ICE40_SPI is not set CONFIG_FPGA_MGR_SOCFPGA=y # CONFIG_FPGA_MGR_SOCFPGA_A10 is not set -# CONFIG_FPGA_MGR_XILINX_SPI is not set +CONFIG_ALTERA_PR_IP_CORE=y +CONFIG_ALTERA_PR_IP_CORE_PLAT=y +# CONFIG_FPGA_MGR_ALTERA_PS_SPI is not set +# CONFIG_FPGA_MGR_ALTERA_CVP is not set CONFIG_FPGA_MGR_ZYNQ_FPGA=y +# CONFIG_FPGA_MGR_XILINX_SPI is not set +# CONFIG_FPGA_MGR_ICE40_SPI is not set +# CONFIG_FPGA_MGR_MACHXO2_SPI is not set CONFIG_FPGA_BRIDGE=y CONFIG_SOCFPGA_FPGA_BRIDGE=y CONFIG_ALTERA_FREEZE_BRIDGE=y -CONFIG_ALTERA_PR_IP_CORE=y -CONFIG_ALTERA_PR_IP_CORE_PLAT=y CONFIG_XILINX_PR_DECOUPLER=y - -# -# FSI support -# +CONFIG_FPGA_REGION=y +CONFIG_OF_FPGA_REGION=y +# CONFIG_FPGA_DFL is not set # CONFIG_FSI is not set # CONFIG_TEE is not set - -# -# Firmware Drivers -# -# CONFIG_FIRMWARE_MEMMAP is not set -CONFIG_HAVE_ARM_SMCCC=y -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# Tegra firmware driver -# +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set # # File systems # CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_FS_IOMAP=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y @@ -4150,8 +4397,8 @@ CONFIG_FSNOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_FANOTIFY is not set # CONFIG_QUOTA is not set -# CONFIG_QUOTACTL is not set # CONFIG_AUTOFS4_FS is not set +# CONFIG_AUTOFS_FS is not set # CONFIG_FUSE_FS is not set # CONFIG_OVERLAY_FS is not set @@ -4191,12 +4438,13 @@ CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_TMPFS_XATTR is not set -# CONFIG_HUGETLB_PAGE is not set +CONFIG_MEMFD_CREATE=y CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -4210,9 +4458,7 @@ CONFIG_JFFS2_SUMMARY=y # CONFIG_JFFS2_FS_XATTR is not set # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -4242,7 +4488,6 @@ CONFIG_SUNRPC=y # CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set # CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set CONFIG_NLS=y @@ -4298,189 +4543,20 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_UTF8 is not set # CONFIG_DLM is not set -# -# Kernel hacking -# - -# -# printk and dmesg options -# -CONFIG_PRINTK_TIME=y -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_DYNAMIC_DEBUG=y - -# -# Compile-time checks and compiler options -# -CONFIG_DEBUG_INFO=y -# CONFIG_DEBUG_INFO_REDUCED is not set -# CONFIG_DEBUG_INFO_SPLIT is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_GDB_SCRIPTS is not set -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_READABLE_ASM is not set -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_PAGE_OWNER is not set -CONFIG_DEBUG_FS=y -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 -CONFIG_MAGIC_SYSRQ_SERIAL=y -CONFIG_DEBUG_KERNEL=y - -# -# Memory Debugging -# -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_DEBUG_RODATA_TEST is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_SLAB is not set -CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_VM is not set -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_DEBUG_HIGHMEM is not set -# CONFIG_DEBUG_SHIRQ is not set - -# -# Debug Lockups and Hangs -# -# CONFIG_LOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -# CONFIG_WQ_WATCHDOG is not set -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 -# CONFIG_SCHED_DEBUG is not set -# CONFIG_SCHED_INFO is not set -# CONFIG_SCHEDSTATS is not set -# CONFIG_SCHED_STACK_END_CHECK is not set -# CONFIG_DEBUG_TIMEKEEPING is not set -# CONFIG_DEBUG_PREEMPT is not set - -# -# Lock Debugging (spinlocks, mutexes, etc...) -# -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_STACKTRACE is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_PI_LIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_CREDENTIALS is not set - -# -# RCU Debugging -# -# CONFIG_PROVE_RCU is not set -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_TORTURE_TEST is not set -# CONFIG_RCU_PERF_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_RCU_TRACE is not set -# CONFIG_RCU_EQS_DEBUG is not set -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACE_CLOCK=y -CONFIG_RING_BUFFER=y -CONFIG_RING_BUFFER_ALLOW_SWAP=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set - -# -# Runtime Testing -# -# CONFIG_LKDTM is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_TEST_SORT is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_TEST_PRINTF is not set -# CONFIG_TEST_BITMAP is not set -# CONFIG_TEST_UUID is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_HASH is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_MEMTEST is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set -# CONFIG_UBSAN is not set -CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_ARM_PTDUMP is not set -CONFIG_ARM_UNWIND=y -CONFIG_DEBUG_USER=y -# CONFIG_DEBUG_LL is not set -CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -# CONFIG_DEBUG_UART_8250 is not set -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -# CONFIG_PID_IN_CONTEXTIDR is not set -# CONFIG_CORESIGHT is not set - # # Security options # -# CONFIG_KEYS is not set +CONFIG_KEYS=y +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set +# CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" @@ -4501,12 +4577,13 @@ CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=m CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_ACOMP2=y -# CONFIG_CRYPTO_RSA is not set +CONFIG_CRYPTO_RSA=y # CONFIG_CRYPTO_DH is not set # CONFIG_CRYPTO_ECDH is not set -CONFIG_CRYPTO_MANAGER=m +CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y # CONFIG_CRYPTO_USER is not set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y @@ -4526,6 +4603,11 @@ CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m # CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_AEGIS128L is not set +# CONFIG_CRYPTO_AEGIS256 is not set +# CONFIG_CRYPTO_MORUS640 is not set +# CONFIG_CRYPTO_MORUS1280 is not set CONFIG_CRYPTO_SEQIV=m CONFIG_CRYPTO_ECHAINIV=m @@ -4533,6 +4615,7 @@ CONFIG_CRYPTO_ECHAINIV=m # Block modes # # CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CFB is not set CONFIG_CRYPTO_CTR=m # CONFIG_CRYPTO_CTS is not set # CONFIG_CRYPTO_ECB is not set @@ -4568,6 +4651,7 @@ CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_SHA256=m # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_WP512 is not set @@ -4589,6 +4673,7 @@ CONFIG_CRYPTO_ARC4=m # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_SEED is not set # CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_TEA is not set # CONFIG_CRYPTO_TWOFISH is not set @@ -4600,6 +4685,7 @@ CONFIG_CRYPTO_ARC4=m # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation @@ -4615,15 +4701,25 @@ CONFIG_CRYPTO_JITTERENTROPY=m # CONFIG_CRYPTO_USER_API_SKCIPHER is not set # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set +CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_HIFN_795X is not set -# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set +# CONFIG_CRYPTO_DEV_CCREE is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set # # Certificates for signature checking # -# CONFIG_ARM_CRYPTO is not set -# CONFIG_BINARY_PRINTF is not set +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set # # Library routines @@ -4635,7 +4731,6 @@ CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_IO=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y @@ -4647,14 +4742,14 @@ CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set -# CONFIG_CRC7 is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +CONFIG_CRC7=m # CONFIG_LIBCRC32C is not set # CONFIG_CRC8 is not set -# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -4673,19 +4768,24 @@ CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_GENERIC_ALLOCATOR=y +CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y -# CONFIG_DMA_NOOP_OPS is not set -# CONFIG_DMA_VIRT_OPS is not set +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SGL_ALLOC=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y # CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y +CONFIG_CLZ_TAB=y # CONFIG_CORDIC is not set # CONFIG_DDR is not set # CONFIG_IRQ_POLL is not set +CONFIG_MPILIB=y CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y CONFIG_FONT_SUPPORT=y CONFIG_FONTS=y CONFIG_FONT_8x8=y @@ -4699,8 +4799,184 @@ CONFIG_FONT_8x16=y # CONFIG_FONT_10x18 is not set # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set -# CONFIG_SG_SPLIT is not set CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_SBITMAP=y -# CONFIG_VIRTUALIZATION is not set +# CONFIG_STRING_SELFTEST is not set + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_DYNAMIC_DEBUG=y + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_PAGE_OWNER is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_DEBUG_KERNEL=y + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_ARCH_HAS_KCOV=y +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +# CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_SCHED_DEBUG is not set +# CONFIG_SCHEDSTATS is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +# CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_DEBUG_PREEMPT is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_STACKTRACE is not set +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PI_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_PERF_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_DMA_API_DEBUG is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_BITFIELD is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_MEMTEST is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_UBSAN is not set +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_WX is not set +CONFIG_ARM_UNWIND=y +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_CORESIGHT is not set diff --git a/files/linux-4.19.55-armv7-fpga-patch-builddeb.diff b/files/linux-4.19.55-armv7-fpga-patch-builddeb.diff new file mode 100644 index 0000000..b95aa93 --- /dev/null +++ b/files/linux-4.19.55-armv7-fpga-patch-builddeb.diff @@ -0,0 +1,29 @@ +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index 0b31f4f..a25ce75 100755 +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -155,7 +155,7 @@ done + + # Build kernel header package + (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" +-(cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles" ++(cd $srctree; find arch/*/include include tools/include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles" + (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" + (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" + if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then +@@ -172,6 +172,15 @@ mkdir -p "$destdir" + (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be + ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" + rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" ++mkdir -m 755 -p "$kernel_headers_dir/DEBIAN" ++cat <> $kernel_headers_dir/DEBIAN/postinst ++#!/bin/sh -e ++ ++make -C /usr/src/linux-headers-$version scripts ++ ++EOF ++ ++chmod 755 $kernel_headers_dir/DEBIAN/postinst + + if [ "$ARCH" != "um" ]; then + create_package "$kernel_headers_packagename" "$kernel_headers_dir" diff --git a/files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff b/files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff new file mode 100644 index 0000000..b01bb83 --- /dev/null +++ b/files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff @@ -0,0 +1,326 @@ +diff --git a/arch/arm/boot/dts/zynq-pynqz1.dts b/arch/arm/boot/dts/zynq-pynqz1.dts +index e8546f8..5f55566 100644 +--- a/arch/arm/boot/dts/zynq-pynqz1.dts ++++ b/arch/arm/boot/dts/zynq-pynqz1.dts +@@ -28,9 +28,11 @@ + }; + + usb_phy0: phy0 { +- #phy-cells = <0>; +- compatible = "usb-nop-xceiv"; +- reset-gpios = <&gpio0 46 1>; ++ compatible = "ulpi-phy"; ++ #phy-cells = <0x0>; ++ reg = <0xe0002000 0x1000>; ++ view-port = <0x170>; ++ drv-vbus; + }; + }; + +diff --git a/arch/arm/boot/dts/zynq-zybo-z7.dts b/arch/arm/boot/dts/zynq-zybo-z7.dts +index be39046..dafe777 100644 +--- a/arch/arm/boot/dts/zynq-zybo-z7.dts ++++ b/arch/arm/boot/dts/zynq-zybo-z7.dts +@@ -32,9 +32,11 @@ + }; + + usb_phy0: phy0 { +- #phy-cells = <0>; +- compatible = "usb-nop-xceiv"; +- reset-gpios = <&gpio0 46 GPIO_ACTIVE_LOW>; ++ compatible = "ulpi-phy"; ++ #phy-cells = <0x0>; ++ reg = <0xe0002000 0x1000>; ++ view-port = <0x170>; ++ drv-vbus; + }; + }; + +diff --git a/drivers/usb/chipidea/ci_hdrc_usb2.c b/drivers/usb/chipidea/ci_hdrc_usb2.c +index c044fba..77715bb 100644 +--- a/drivers/usb/chipidea/ci_hdrc_usb2.c ++++ b/drivers/usb/chipidea/ci_hdrc_usb2.c +@@ -30,6 +30,7 @@ static const struct ci_hdrc_platform_data ci_default_pdata = { + + static struct ci_hdrc_platform_data ci_zynq_pdata = { + .capoffset = DEF_CAPOFFSET, ++ .flags = CI_HDRC_PHY_VBUS_CONTROL, + }; + + static const struct of_device_id ci_hdrc_usb2_of_match[] = { +@@ -60,9 +61,17 @@ static int ci_hdrc_usb2_probe(struct platform_device *pdev) + *ci_pdata = *(struct ci_hdrc_platform_data *)match->data; + } + ++ ci_pdata->usb_phy = devm_usb_get_phy_by_phandle(dev, "usb-phy", 0); ++ if (IS_ERR(ci_pdata->usb_phy)) { ++ dev_err(dev, "devm_usb_get_phy_by_phandle() error"); ++ return PTR_ERR(ci_pdata->usb_phy); ++ } ++ + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); +- if (!priv) ++ if (!priv) { ++ dev_err(dev, "devm_kzalloc() error"); + return -ENOMEM; ++ } + + priv->clk = devm_clk_get(dev, NULL); + if (!IS_ERR(priv->clk)) { +@@ -73,6 +82,10 @@ static int ci_hdrc_usb2_probe(struct platform_device *pdev) + } + } + ++ ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); ++ if (ret) ++ goto clk_err; ++ + ci_pdata->name = dev_name(dev); + + priv->ci_pdev = ci_hdrc_add_device(dev, pdev->resource, +diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c +index 4638d9b..989c12d 100644 +--- a/drivers/usb/chipidea/host.c ++++ b/drivers/usb/chipidea/host.c +@@ -54,6 +54,14 @@ static int ehci_ci_portpower(struct usb_hcd *hcd, int portnum, bool enable) + } + } + ++ if (ci->platdata->flags & CI_HDRC_PHY_VBUS_CONTROL && ++ ci->usb_phy && ci->usb_phy->set_vbus) { ++ if (enable) ++ ci->usb_phy->set_vbus(ci->usb_phy, 1); ++ else ++ ci->usb_phy->set_vbus(ci->usb_phy, 0); ++ } ++ + if (enable && (ci->platdata->phy_mode == USBPHY_INTERFACE_MODE_HSIC)) { + /* + * Marvell 28nm HSIC PHY requires forcing the port to HS mode. +@@ -62,6 +70,7 @@ static int ehci_ci_portpower(struct usb_hcd *hcd, int portnum, bool enable) + hw_port_test_set(ci, 5); + hw_port_test_set(ci, 0); + } ++ + return 0; + }; + +diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c +index 6ed4b00..ec02ea0 100644 +--- a/drivers/usb/chipidea/otg_fsm.c ++++ b/drivers/usb/chipidea/otg_fsm.c +@@ -471,6 +471,11 @@ static void ci_otg_drv_vbus(struct otg_fsm *fsm, int on) + return; + } + } ++ ++ if (ci->platdata->flags & CI_HDRC_PHY_VBUS_CONTROL && ++ ci->usb_phy && ci->usb_phy->set_vbus) ++ ci->usb_phy->set_vbus(ci->usb_phy, 1); ++ + /* Disable data pulse irq */ + hw_write_otgsc(ci, OTGSC_DPIE, 0); + +@@ -480,6 +485,10 @@ static void ci_otg_drv_vbus(struct otg_fsm *fsm, int on) + if (ci->platdata->reg_vbus) + regulator_disable(ci->platdata->reg_vbus); + ++ if (ci->platdata->flags & CI_HDRC_PHY_VBUS_CONTROL && ++ ci->usb_phy && ci->usb_phy->set_vbus) ++ ci->usb_phy->set_vbus(ci->usb_phy, 0); ++ + fsm->a_bus_drop = 1; + fsm->a_bus_req = 0; + } +diff --git a/drivers/usb/phy/phy-ulpi.c b/drivers/usb/phy/phy-ulpi.c +index a43c493..416da1d 100644 +--- a/drivers/usb/phy/phy-ulpi.c ++++ b/drivers/usb/phy/phy-ulpi.c +@@ -13,9 +13,16 @@ + #include + #include + #include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include ++#include + + + struct ulpi_info { +@@ -196,7 +203,7 @@ static int ulpi_init(struct usb_phy *phy) + return ulpi_set_flags(phy); + } + +-static int ulpi_set_host(struct usb_otg *otg, struct usb_bus *host) ++static int ulpi_otg_set_host(struct usb_otg *otg, struct usb_bus *host) + { + struct usb_phy *phy = otg->usb_phy; + unsigned int flags = usb_phy_io_read(phy, ULPI_IFC_CTRL); +@@ -222,9 +229,8 @@ static int ulpi_set_host(struct usb_otg *otg, struct usb_bus *host) + return usb_phy_io_write(phy, flags, ULPI_IFC_CTRL); + } + +-static int ulpi_set_vbus(struct usb_otg *otg, bool on) ++static int ulpi_phy_set_vbus(struct usb_phy *phy, int on) + { +- struct usb_phy *phy = otg->usb_phy; + unsigned int flags = usb_phy_io_read(phy, ULPI_OTG_CTRL); + + flags &= ~(ULPI_OTG_CTRL_DRVVBUS | ULPI_OTG_CTRL_DRVVBUS_EXT); +@@ -240,6 +246,31 @@ static int ulpi_set_vbus(struct usb_otg *otg, bool on) + return usb_phy_io_write(phy, flags, ULPI_OTG_CTRL); + } + ++static int ulpi_otg_set_vbus(struct usb_otg *otg, bool on) ++{ ++ struct usb_phy *phy = otg->usb_phy; ++ return ulpi_phy_set_vbus(phy, on); ++} ++ ++static void ulpi_initialize( ++ struct usb_phy* phy, ++ struct usb_otg* otg, ++ struct usb_phy_io_ops* ops, ++ unsigned int flags ++) ++{ ++ phy->label = "ULPI"; ++ phy->flags = flags; ++ phy->io_ops = ops; ++ phy->otg = otg; ++ phy->init = ulpi_init; ++ phy->set_vbus = ulpi_phy_set_vbus; ++ ++ otg->usb_phy = phy; ++ otg->set_host = ulpi_otg_set_host; ++ otg->set_vbus = ulpi_otg_set_vbus; ++} ++ + struct usb_phy * + otg_ulpi_create(struct usb_phy_io_ops *ops, + unsigned int flags) +@@ -257,17 +288,96 @@ otg_ulpi_create(struct usb_phy_io_ops *ops, + return NULL; + } + +- phy->label = "ULPI"; +- phy->flags = flags; +- phy->io_ops = ops; +- phy->otg = otg; +- phy->init = ulpi_init; +- +- otg->usb_phy = phy; +- otg->set_host = ulpi_set_host; +- otg->set_vbus = ulpi_set_vbus; +- ++ ulpi_initialize(phy, otg, ops, flags); + return phy; + } + EXPORT_SYMBOL_GPL(otg_ulpi_create); + ++struct ulpi_phy { ++ struct usb_phy usb_phy; ++ struct usb_otg usb_otg; ++ void __iomem* regs; ++ unsigned int vp_offset; ++ unsigned int flags; ++}; ++ ++static int ulpi_phy_probe(struct platform_device *pdev) ++{ ++ struct device_node *np = pdev->dev.of_node; ++ struct resource *res; ++ struct ulpi_phy *uphy; ++ bool flag; ++ int ret; ++ ++ uphy = devm_kzalloc(&pdev->dev, sizeof(*uphy), GFP_KERNEL); ++ if (!uphy) { ++ dev_err(&pdev->dev, "devm_kzalloc() error"); ++ ret = -ENOMEM; ++ goto error; ++ } ++ ++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ uphy->regs = devm_ioremap(&pdev->dev, res->start, resource_size(res)); ++ if (IS_ERR(uphy->regs)) { ++ dev_err(&pdev->dev, "devm_ioremap() error"); ++ ret = PTR_ERR(uphy->regs); ++ goto error; ++ } ++ ++ ret = of_property_read_u32(np, "view-port", &uphy->vp_offset); ++ if (ret < 0) { ++ dev_err(&pdev->dev, "view-port register not specified\n"); ++ goto error; ++ } ++ ++ flag = of_property_read_bool(np, "drv-vbus"); ++ if (flag) ++ uphy->flags |= ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT; ++ ++ ulpi_initialize(&uphy->usb_phy, &uphy->usb_otg, &ulpi_viewport_access_ops, uphy->flags); ++ ++ uphy->usb_phy.dev = &pdev->dev; ++ ++ uphy->usb_phy.io_priv = uphy->regs + uphy->vp_offset; ++ ++ ret = usb_add_phy_dev(&uphy->usb_phy); ++ if (ret < 0) { ++ dev_err(&pdev->dev, "usb_add_phy_dev() error"); ++ goto error; ++ } ++ ++ platform_set_drvdata(pdev, uphy); ++ ++ return 0; ++ ++ error: ++ return ret; ++} ++ ++static int ulpi_phy_remove(struct platform_device *pdev) ++{ ++ struct ulpi_phy *uphy = platform_get_drvdata(pdev); ++ ++ usb_remove_phy(&uphy->usb_phy); ++ return 0; ++} ++ ++static const struct of_device_id ulpi_phy_table[] = { ++ { .compatible = "ulpi-phy" }, ++ { }, ++}; ++MODULE_DEVICE_TABLE(of, ulpi_phy_table); ++ ++static struct platform_driver ulpi_phy_driver = { ++ .probe = ulpi_phy_probe, ++ .remove = ulpi_phy_remove, ++ .driver = { ++ .name = "ulpi-phy", ++ .of_match_table = ulpi_phy_table, ++ }, ++}; ++module_platform_driver(ulpi_phy_driver); ++ ++MODULE_DESCRIPTION("ULPI PHY driver"); ++MODULE_LICENSE("GPL v2"); ++ +diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h +index 07f9936..c584656 100644 +--- a/include/linux/usb/chipidea.h ++++ b/include/linux/usb/chipidea.h +@@ -60,6 +60,7 @@ struct ci_hdrc_platform_data { + #define CI_HDRC_OVERRIDE_RX_BURST BIT(11) + #define CI_HDRC_OVERRIDE_PHY_CONTROL BIT(12) /* Glue layer manages phy */ + #define CI_HDRC_REQUIRES_ALIGNED_DMA BIT(13) ++#define CI_HDRC_PHY_VBUS_CONTROL BIT(14) + enum usb_dr_mode dr_mode; + #define CI_HDRC_CONTROLLER_RESET_EVENT 0 + #define CI_HDRC_CONTROLLER_STOPPED_EVENT 1 diff --git a/files/linux-4.19.55-armv7-fpga.diff b/files/linux-4.19.55-armv7-fpga.diff new file mode 100644 index 0000000..018ca08 --- /dev/null +++ b/files/linux-4.19.55-armv7-fpga.diff @@ -0,0 +1,5241 @@ +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index b5bd3de..dcd0090 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -1132,6 +1132,7 @@ dtb-$(CONFIG_ARCH_ZYNQ) += \ + zynq-zc770-xm013.dtb \ + zynq-zed.dtb \ + zynq-zturn.dtb \ ++ zynq-pynqz1.dtb \ + zynq-zybo.dtb \ + zynq-zybo-z7.dtb + dtb-$(CONFIG_MACH_ARMADA_370) += \ +diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi +index b38f8c2..db552c0 100644 +--- a/arch/arm/boot/dts/socfpga.dtsi ++++ b/arch/arm/boot/dts/socfpga.dtsi +@@ -101,14 +101,6 @@ + }; + }; + +- base_fpga_region { +- compatible = "fpga-region"; +- fpga-mgr = <&fpgamgr0>; +- +- #address-cells = <0x1>; +- #size-cells = <0x1>; +- }; +- + can0: can@ffc00000 { + compatible = "bosch,d_can"; + reg = <0xffc00000 0x1000>; +@@ -529,18 +521,27 @@ + }; + }; + +- fpga_bridge0: fpga_bridge@ff400000 { ++ fpga_bridge_lwhps2fpga: fpga_bridge@ff400000 { + compatible = "altr,socfpga-lwhps2fpga-bridge"; + reg = <0xff400000 0x100000>; + resets = <&rst LWHPS2FPGA_RESET>; + clocks = <&l4_main_clk>; ++ bridge-enable = <0>; + }; + +- fpga_bridge1: fpga_bridge@ff500000 { ++ fpga_bridge_hps2fpga: fpga_bridge@ff500000 { + compatible = "altr,socfpga-hps2fpga-bridge"; + reg = <0xff500000 0x10000>; + resets = <&rst HPS2FPGA_RESET>; + clocks = <&l4_main_clk>; ++ bridge-enable = <1>; ++ }; ++ ++ fpga_bridge_fpga2hps: fpga_bridge@ff600000 { ++ compatible = "altr,socfpga-fpga2hps-bridge"; ++ reg = <0xff600000 0x10000>; ++ resets = <&rst FPGA2HPS_RESET>; ++ clocks = <&l4_main_clk>; + }; + + fpgamgr0: fpgamgr@ff706000 { +@@ -550,6 +551,15 @@ + interrupts = <0 175 4>; + }; + ++ fpga_region0: fpga-region0 { ++ compatible = "fpga-region"; ++ fpga-mgr = <&fpgamgr0>; ++ fpga-bridges = <&fpga_bridge_lwhps2fpga &fpga_bridge_hps2fpga &fpga_bridge_fpga2hps>; ++ #address-cells = <0x1>; ++ #size-cells = <0x1>; ++ ranges; ++ }; ++ + gmac0: ethernet@ff700000 { + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; + altr,sysmgr-syscon = <&sysmgr 0x60 0>; +@@ -728,7 +738,7 @@ + arm,prefetch-offset = <7>; + }; + +- l3regs@0xff800000 { ++ l3regs@ff800000 { + compatible = "altr,l3regs", "syscon"; + reg = <0xff800000 0x1000>; + }; +diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts +index b280e64..65d6892 100644 +--- a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts ++++ b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts +@@ -105,6 +105,7 @@ + + &uart0 { + status = "okay"; ++ clock-frequency = <1843200>; + }; + + &usb1 { +diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi +index e22507e..57ee89a 100644 +--- a/arch/arm/boot/dts/zynq-7000.dtsi ++++ b/arch/arm/boot/dts/zynq-7000.dtsi +@@ -305,6 +305,14 @@ + syscon = <&slcr>; + }; + ++ fpga_region0: fpga-region0 { ++ compatible = "fpga-region"; ++ fpga-mgr = <&devcfg>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ }; ++ + global_timer: timer@f8f00200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xf8f00200 0x20>; +@@ -366,4 +374,14 @@ + timeout-sec = <10>; + }; + }; ++ ++ reserved-memory { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ zynq-dma-unusable-area { ++ reg = <0x0 0x80000>; ++ }; ++ }; + }; +diff --git a/arch/arm/boot/dts/zynq-pynqz1.dts b/arch/arm/boot/dts/zynq-pynqz1.dts +new file mode 100644 +index 0000000..e8546f8 +--- /dev/null ++++ b/arch/arm/boot/dts/zynq-pynqz1.dts +@@ -0,0 +1,66 @@ ++/* ++ * Digilent PYNQ-Z1 board DTS ++ * ++ * Copyright (C) 2016 Digilent ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++/dts-v1/; ++#include "zynq-7000.dtsi" ++ ++/ { ++ model = "Zynq PYNQ-Z1 Development Board"; ++ compatible = "digilent,zynq-pynqz1", "xlnx,zynq-7000"; ++ ++ aliases { ++ ethernet0 = &gem0; ++ serial0 = &uart0; ++ }; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x0 0x20000000>; ++ }; ++ ++ chosen { ++ bootargs = "earlycon"; ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ usb_phy0: phy0 { ++ #phy-cells = <0>; ++ compatible = "usb-nop-xceiv"; ++ reset-gpios = <&gpio0 46 1>; ++ }; ++}; ++ ++&clkc { ++ ps-clk-frequency = <50000000>; ++ fclk-enable = <0xf>; ++}; ++ ++&gem0 { ++ status = "okay"; ++ phy-mode = "rgmii-id"; ++ phy-handle = <ðernet_phy>; ++ ++ ethernet_phy: ethernet-phy@0 { /* rtl8211e-vl */ ++ reg = <1>; ++ }; ++}; ++ ++&sdhci0 { ++ status = "okay"; ++}; ++ ++&uart0 { ++ status = "okay"; ++ clock-frequency = <1843200>; ++}; ++ ++&usb0 { ++ status = "okay"; ++ dr_mode = "host"; ++ usb-reset = <&gpio0 46 0>; ++ usb-phy = <&usb_phy0>; ++}; +diff --git a/arch/arm/boot/dts/zynq-zybo-z7.dts b/arch/arm/boot/dts/zynq-zybo-z7.dts +index 357b78a..be39046 100644 +--- a/arch/arm/boot/dts/zynq-zybo-z7.dts ++++ b/arch/arm/boot/dts/zynq-zybo-z7.dts +@@ -18,7 +18,7 @@ + }; + + chosen { +- bootargs = ""; ++ bootargs = "earlycon"; + stdout-path = "serial0:115200n8"; + }; + +@@ -40,6 +40,7 @@ + + &clkc { + ps-clk-frequency = <33333333>; ++ fclk-enable = <0xf>; + }; + + &gem0 { +@@ -59,6 +60,7 @@ + + &uart1 { + status = "okay"; ++ clock-frequency = <1843200>; + }; + + &usb0 { +diff --git a/arch/arm/boot/dts/zynq-zybo.dts b/arch/arm/boot/dts/zynq-zybo.dts +index 755f6f1..e01e864 100644 +--- a/arch/arm/boot/dts/zynq-zybo.dts ++++ b/arch/arm/boot/dts/zynq-zybo.dts +@@ -35,6 +35,7 @@ + + &clkc { + ps-clk-frequency = <50000000>; ++ fclk-enable = <0xf>; + }; + + &gem0 { +@@ -54,6 +55,7 @@ + + &uart1 { + status = "okay"; ++ clock-frequency = <1843200>; + }; + + &usb0 { +diff --git a/arch/arm/configs/armv7_fpga_defconfig b/arch/arm/configs/armv7_fpga_defconfig +new file mode 100644 +index 0000000..1dd9446 +--- /dev/null ++++ b/arch/arm/configs/armv7_fpga_defconfig +@@ -0,0 +1,4982 @@ ++# ++# Automatically generated file; DO NOT EDIT. ++# Linux/arm 4.19.55 Kernel Configuration ++# ++ ++# ++# Compiler: arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 ++# ++CONFIG_CC_IS_GCC=y ++CONFIG_GCC_VERSION=50400 ++CONFIG_CLANG_VERSION=0 ++CONFIG_CC_HAS_ASM_GOTO=y ++CONFIG_IRQ_WORK=y ++CONFIG_BUILDTIME_EXTABLE_SORT=y ++ ++# ++# General setup ++# ++CONFIG_INIT_ENV_ARG_LIMIT=32 ++# CONFIG_COMPILE_TEST is not set ++CONFIG_LOCALVERSION="-armv7-fpga" ++CONFIG_LOCALVERSION_AUTO=y ++CONFIG_BUILD_SALT="" ++CONFIG_HAVE_KERNEL_GZIP=y ++CONFIG_HAVE_KERNEL_LZMA=y ++CONFIG_HAVE_KERNEL_XZ=y ++CONFIG_HAVE_KERNEL_LZO=y ++CONFIG_HAVE_KERNEL_LZ4=y ++CONFIG_KERNEL_GZIP=y ++# CONFIG_KERNEL_LZMA is not set ++# CONFIG_KERNEL_XZ is not set ++# CONFIG_KERNEL_LZO is not set ++# CONFIG_KERNEL_LZ4 is not set ++CONFIG_DEFAULT_HOSTNAME="(none)" ++CONFIG_SWAP=y ++CONFIG_SYSVIPC=y ++CONFIG_SYSVIPC_SYSCTL=y ++# CONFIG_POSIX_MQUEUE is not set ++CONFIG_CROSS_MEMORY_ATTACH=y ++CONFIG_USELIB=y ++# CONFIG_AUDIT is not set ++CONFIG_HAVE_ARCH_AUDITSYSCALL=y ++ ++# ++# IRQ subsystem ++# ++CONFIG_GENERIC_IRQ_PROBE=y ++CONFIG_GENERIC_IRQ_SHOW=y ++CONFIG_GENERIC_IRQ_SHOW_LEVEL=y ++CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y ++CONFIG_GENERIC_IRQ_MIGRATION=y ++CONFIG_HARDIRQS_SW_RESEND=y ++CONFIG_GENERIC_IRQ_CHIP=y ++CONFIG_IRQ_DOMAIN=y ++CONFIG_IRQ_DOMAIN_HIERARCHY=y ++CONFIG_GENERIC_MSI_IRQ=y ++CONFIG_GENERIC_MSI_IRQ_DOMAIN=y ++CONFIG_HANDLE_DOMAIN_IRQ=y ++CONFIG_IRQ_FORCED_THREADING=y ++CONFIG_SPARSE_IRQ=y ++# CONFIG_GENERIC_IRQ_DEBUGFS is not set ++CONFIG_GENERIC_IRQ_MULTI_HANDLER=y ++CONFIG_ARCH_CLOCKSOURCE_DATA=y ++CONFIG_GENERIC_CLOCKEVENTS=y ++CONFIG_ARCH_HAS_TICK_BROADCAST=y ++CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y ++ ++# ++# Timers subsystem ++# ++CONFIG_TICK_ONESHOT=y ++CONFIG_NO_HZ_COMMON=y ++# CONFIG_HZ_PERIODIC is not set ++CONFIG_NO_HZ_IDLE=y ++# CONFIG_NO_HZ_FULL is not set ++CONFIG_NO_HZ=y ++CONFIG_HIGH_RES_TIMERS=y ++# CONFIG_PREEMPT_NONE is not set ++# CONFIG_PREEMPT_VOLUNTARY is not set ++CONFIG_PREEMPT=y ++CONFIG_PREEMPT_COUNT=y ++ ++# ++# CPU/Task time and stats accounting ++# ++CONFIG_TICK_CPU_ACCOUNTING=y ++# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set ++# CONFIG_IRQ_TIME_ACCOUNTING is not set ++# CONFIG_BSD_PROCESS_ACCT is not set ++# CONFIG_TASKSTATS is not set ++CONFIG_CPU_ISOLATION=y ++ ++# ++# RCU Subsystem ++# ++CONFIG_PREEMPT_RCU=y ++# CONFIG_RCU_EXPERT is not set ++CONFIG_SRCU=y ++CONFIG_TREE_SRCU=y ++CONFIG_TASKS_RCU=y ++CONFIG_RCU_STALL_COMMON=y ++CONFIG_RCU_NEED_SEGCBLIST=y ++CONFIG_BUILD_BIN2C=y ++CONFIG_IKCONFIG=y ++CONFIG_IKCONFIG_PROC=y ++CONFIG_LOG_BUF_SHIFT=14 ++CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 ++CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 ++CONFIG_GENERIC_SCHED_CLOCK=y ++CONFIG_CGROUPS=y ++# CONFIG_MEMCG is not set ++# CONFIG_BLK_CGROUP is not set ++# CONFIG_CGROUP_SCHED is not set ++# CONFIG_CGROUP_PIDS is not set ++# CONFIG_CGROUP_RDMA is not set ++# CONFIG_CGROUP_FREEZER is not set ++CONFIG_CPUSETS=y ++CONFIG_PROC_PID_CPUSET=y ++# CONFIG_CGROUP_DEVICE is not set ++# CONFIG_CGROUP_CPUACCT is not set ++# CONFIG_CGROUP_PERF is not set ++# CONFIG_CGROUP_DEBUG is not set ++CONFIG_NAMESPACES=y ++CONFIG_UTS_NS=y ++CONFIG_IPC_NS=y ++# CONFIG_USER_NS is not set ++CONFIG_PID_NS=y ++CONFIG_NET_NS=y ++# CONFIG_CHECKPOINT_RESTORE is not set ++# CONFIG_SCHED_AUTOGROUP is not set ++# CONFIG_SYSFS_DEPRECATED is not set ++# CONFIG_RELAY is not set ++CONFIG_BLK_DEV_INITRD=y ++CONFIG_INITRAMFS_SOURCE="" ++CONFIG_RD_GZIP=y ++CONFIG_RD_BZIP2=y ++CONFIG_RD_LZMA=y ++CONFIG_RD_XZ=y ++CONFIG_RD_LZO=y ++CONFIG_RD_LZ4=y ++# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set ++CONFIG_CC_OPTIMIZE_FOR_SIZE=y ++CONFIG_SYSCTL=y ++CONFIG_ANON_INODES=y ++CONFIG_HAVE_UID16=y ++CONFIG_BPF=y ++CONFIG_EXPERT=y ++CONFIG_UID16=y ++CONFIG_MULTIUSER=y ++# CONFIG_SGETMASK_SYSCALL is not set ++CONFIG_SYSFS_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL=y ++CONFIG_FHANDLE=y ++CONFIG_POSIX_TIMERS=y ++CONFIG_PRINTK=y ++CONFIG_PRINTK_NMI=y ++CONFIG_BUG=y ++CONFIG_ELF_CORE=y ++CONFIG_BASE_FULL=y ++CONFIG_FUTEX=y ++CONFIG_FUTEX_PI=y ++CONFIG_EPOLL=y ++CONFIG_SIGNALFD=y ++CONFIG_TIMERFD=y ++CONFIG_EVENTFD=y ++CONFIG_SHMEM=y ++CONFIG_AIO=y ++CONFIG_ADVISE_SYSCALLS=y ++CONFIG_MEMBARRIER=y ++CONFIG_KALLSYMS=y ++# CONFIG_KALLSYMS_ALL is not set ++CONFIG_KALLSYMS_BASE_RELATIVE=y ++# CONFIG_BPF_SYSCALL is not set ++# CONFIG_USERFAULTFD is not set ++CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y ++CONFIG_RSEQ=y ++# CONFIG_DEBUG_RSEQ is not set ++CONFIG_EMBEDDED=y ++CONFIG_HAVE_PERF_EVENTS=y ++CONFIG_PERF_USE_VMALLOC=y ++# CONFIG_PC104 is not set ++ ++# ++# Kernel Performance Events And Counters ++# ++CONFIG_PERF_EVENTS=y ++# CONFIG_DEBUG_PERF_USE_VMALLOC is not set ++CONFIG_VM_EVENT_COUNTERS=y ++CONFIG_COMPAT_BRK=y ++CONFIG_SLAB=y ++# CONFIG_SLUB is not set ++# CONFIG_SLOB is not set ++CONFIG_SLAB_MERGE_DEFAULT=y ++# CONFIG_SLAB_FREELIST_RANDOM is not set ++CONFIG_SYSTEM_DATA_VERIFICATION=y ++CONFIG_PROFILING=y ++CONFIG_ARM=y ++CONFIG_ARM_HAS_SG_CHAIN=y ++CONFIG_MIGHT_HAVE_PCI=y ++CONFIG_SYS_SUPPORTS_APM_EMULATION=y ++CONFIG_HAVE_PROC_CPU=y ++CONFIG_NO_IOPORT_MAP=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y ++CONFIG_TRACE_IRQFLAGS_SUPPORT=y ++CONFIG_RWSEM_XCHGADD_ALGORITHM=y ++CONFIG_FIX_EARLYCON_MEM=y ++CONFIG_GENERIC_HWEIGHT=y ++CONFIG_GENERIC_CALIBRATE_DELAY=y ++CONFIG_ARCH_SUPPORTS_UPROBES=y ++CONFIG_ARM_PATCH_PHYS_VIRT=y ++CONFIG_GENERIC_BUG=y ++CONFIG_PGTABLE_LEVELS=2 ++ ++# ++# System Type ++# ++CONFIG_MMU=y ++CONFIG_ARCH_MMAP_RND_BITS_MIN=8 ++CONFIG_ARCH_MMAP_RND_BITS_MAX=16 ++CONFIG_ARCH_MULTIPLATFORM=y ++# CONFIG_ARCH_EBSA110 is not set ++# CONFIG_ARCH_EP93XX is not set ++# CONFIG_ARCH_FOOTBRIDGE is not set ++# CONFIG_ARCH_NETX is not set ++# CONFIG_ARCH_IOP13XX is not set ++# CONFIG_ARCH_IOP32X is not set ++# CONFIG_ARCH_IOP33X is not set ++# CONFIG_ARCH_IXP4XX is not set ++# CONFIG_ARCH_DOVE is not set ++# CONFIG_ARCH_KS8695 is not set ++# CONFIG_ARCH_W90X900 is not set ++# CONFIG_ARCH_LPC32XX is not set ++# CONFIG_ARCH_PXA is not set ++# CONFIG_ARCH_RPC is not set ++# CONFIG_ARCH_SA1100 is not set ++# CONFIG_ARCH_S3C24XX is not set ++# CONFIG_ARCH_DAVINCI is not set ++# CONFIG_ARCH_OMAP1 is not set ++ ++# ++# Multiple platform selection ++# ++ ++# ++# CPU Core family selection ++# ++# CONFIG_ARCH_MULTI_V6 is not set ++CONFIG_ARCH_MULTI_V7=y ++CONFIG_ARCH_MULTI_V6_V7=y ++# CONFIG_ARCH_VIRT is not set ++# CONFIG_ARCH_ACTIONS is not set ++# CONFIG_ARCH_ALPINE is not set ++# CONFIG_ARCH_ARTPEC is not set ++# CONFIG_ARCH_AT91 is not set ++# CONFIG_ARCH_BCM is not set ++# CONFIG_ARCH_BERLIN is not set ++# CONFIG_ARCH_DIGICOLOR is not set ++# CONFIG_ARCH_EXYNOS is not set ++# CONFIG_ARCH_HIGHBANK is not set ++# CONFIG_ARCH_HISI is not set ++# CONFIG_ARCH_MXC is not set ++# CONFIG_ARCH_KEYSTONE is not set ++# CONFIG_ARCH_MEDIATEK is not set ++# CONFIG_ARCH_MESON is not set ++# CONFIG_ARCH_MMP is not set ++# CONFIG_ARCH_MVEBU is not set ++# CONFIG_ARCH_NPCM is not set ++ ++# ++# TI OMAP/AM/DM/DRA Family ++# ++# CONFIG_ARCH_OMAP3 is not set ++# CONFIG_ARCH_OMAP4 is not set ++# CONFIG_SOC_OMAP5 is not set ++# CONFIG_SOC_AM33XX is not set ++# CONFIG_SOC_AM43XX is not set ++# CONFIG_SOC_DRA7XX is not set ++# CONFIG_ARCH_SIRF is not set ++# CONFIG_ARCH_QCOM is not set ++# CONFIG_ARCH_REALVIEW is not set ++# CONFIG_ARCH_ROCKCHIP is not set ++# CONFIG_ARCH_S5PV210 is not set ++# CONFIG_ARCH_RENESAS is not set ++CONFIG_ARCH_SOCFPGA=y ++# CONFIG_SOCFPGA_SUSPEND is not set ++# CONFIG_PLAT_SPEAR is not set ++# CONFIG_ARCH_STI is not set ++# CONFIG_ARCH_STM32 is not set ++# CONFIG_ARCH_SUNXI is not set ++# CONFIG_ARCH_TANGO is not set ++# CONFIG_ARCH_TEGRA is not set ++# CONFIG_ARCH_UNIPHIER is not set ++# CONFIG_ARCH_U8500 is not set ++CONFIG_ARCH_VEXPRESS=y ++CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y ++# CONFIG_ARCH_VEXPRESS_SPC is not set ++# CONFIG_ARCH_WM8850 is not set ++# CONFIG_ARCH_ZX is not set ++CONFIG_ARCH_ZYNQ=y ++CONFIG_PLAT_VERSATILE=y ++ ++# ++# Processor Type ++# ++CONFIG_CPU_V7=y ++CONFIG_CPU_THUMB_CAPABLE=y ++CONFIG_CPU_32v6K=y ++CONFIG_CPU_32v7=y ++CONFIG_CPU_ABRT_EV7=y ++CONFIG_CPU_PABRT_V7=y ++CONFIG_CPU_CACHE_V7=y ++CONFIG_CPU_CACHE_VIPT=y ++CONFIG_CPU_COPY_V6=y ++CONFIG_CPU_TLB_V7=y ++CONFIG_CPU_HAS_ASID=y ++CONFIG_CPU_CP15=y ++CONFIG_CPU_CP15_MMU=y ++ ++# ++# Processor Features ++# ++# CONFIG_ARM_LPAE is not set ++CONFIG_ARM_THUMB=y ++CONFIG_ARM_THUMBEE=y ++CONFIG_ARM_VIRT_EXT=y ++CONFIG_SWP_EMULATE=y ++# CONFIG_CPU_BIG_ENDIAN is not set ++# CONFIG_CPU_ICACHE_DISABLE is not set ++# CONFIG_CPU_BPREDICT_DISABLE is not set ++CONFIG_CPU_SPECTRE=y ++CONFIG_HARDEN_BRANCH_PREDICTOR=y ++CONFIG_KUSER_HELPERS=y ++# CONFIG_VDSO is not set ++CONFIG_OUTER_CACHE=y ++CONFIG_OUTER_CACHE_SYNC=y ++CONFIG_MIGHT_HAVE_CACHE_L2X0=y ++CONFIG_CACHE_L2X0=y ++# CONFIG_CACHE_L2X0_PMU is not set ++CONFIG_PL310_ERRATA_588369=y ++CONFIG_PL310_ERRATA_727915=y ++CONFIG_PL310_ERRATA_753970=y ++CONFIG_PL310_ERRATA_769419=y ++CONFIG_ARM_L1_CACHE_SHIFT_6=y ++CONFIG_ARM_L1_CACHE_SHIFT=6 ++CONFIG_ARM_DMA_MEM_BUFFERABLE=y ++CONFIG_ARM_HEAVY_MB=y ++CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y ++CONFIG_DEBUG_ALIGN_RODATA=y ++# CONFIG_ARM_ERRATA_430973 is not set ++CONFIG_ARM_ERRATA_643719=y ++CONFIG_ARM_ERRATA_720789=y ++CONFIG_ARM_ERRATA_754322=y ++CONFIG_ARM_ERRATA_754327=y ++CONFIG_ARM_ERRATA_764369=y ++CONFIG_ARM_ERRATA_775420=y ++# CONFIG_ARM_ERRATA_798181 is not set ++# CONFIG_ARM_ERRATA_773022 is not set ++# CONFIG_ARM_ERRATA_818325_852422 is not set ++# CONFIG_ARM_ERRATA_821420 is not set ++# CONFIG_ARM_ERRATA_825619 is not set ++# CONFIG_ARM_ERRATA_852421 is not set ++# CONFIG_ARM_ERRATA_852423 is not set ++ ++# ++# Bus support ++# ++CONFIG_PCI=y ++CONFIG_PCI_DOMAINS=y ++CONFIG_PCI_DOMAINS_GENERIC=y ++CONFIG_PCI_SYSCALL=y ++# CONFIG_PCIEPORTBUS is not set ++CONFIG_PCI_MSI=y ++CONFIG_PCI_MSI_IRQ_DOMAIN=y ++CONFIG_PCI_QUIRKS=y ++# CONFIG_PCI_DEBUG is not set ++# CONFIG_PCI_STUB is not set ++# CONFIG_PCI_IOV is not set ++# CONFIG_PCI_PRI is not set ++# CONFIG_PCI_PASID is not set ++# CONFIG_HOTPLUG_PCI is not set ++ ++# ++# PCI controller drivers ++# ++ ++# ++# Cadence PCIe controllers support ++# ++# CONFIG_PCIE_CADENCE_HOST is not set ++# CONFIG_PCI_FTPCI100 is not set ++# CONFIG_PCI_HOST_GENERIC is not set ++CONFIG_PCIE_XILINX=y ++# CONFIG_PCI_V3_SEMI is not set ++# CONFIG_PCIE_ALTERA is not set ++ ++# ++# DesignWare PCI Core Support ++# ++# CONFIG_PCIE_DW_PLAT_HOST is not set ++# CONFIG_PCI_LAYERSCAPE is not set ++ ++# ++# PCI Endpoint ++# ++# CONFIG_PCI_ENDPOINT is not set ++ ++# ++# PCI switch controller drivers ++# ++# CONFIG_PCI_SW_SWITCHTEC is not set ++# CONFIG_PCCARD is not set ++ ++# ++# Kernel Features ++# ++CONFIG_HAVE_SMP=y ++CONFIG_SMP=y ++CONFIG_SMP_ON_UP=y ++CONFIG_ARM_CPU_TOPOLOGY=y ++CONFIG_SCHED_MC=y ++CONFIG_SCHED_SMT=y ++CONFIG_HAVE_ARM_SCU=y ++# CONFIG_HAVE_ARM_ARCH_TIMER is not set ++CONFIG_HAVE_ARM_TWD=y ++# CONFIG_MCPM is not set ++# CONFIG_BIG_LITTLE is not set ++CONFIG_VMSPLIT_3G=y ++# CONFIG_VMSPLIT_3G_OPT is not set ++# CONFIG_VMSPLIT_2G is not set ++# CONFIG_VMSPLIT_1G is not set ++CONFIG_PAGE_OFFSET=0xC0000000 ++CONFIG_NR_CPUS=2 ++CONFIG_HOTPLUG_CPU=y ++# CONFIG_ARM_PSCI is not set ++CONFIG_ARCH_NR_GPIO=2048 ++CONFIG_HZ_FIXED=0 ++CONFIG_HZ_100=y ++# CONFIG_HZ_200 is not set ++# CONFIG_HZ_250 is not set ++# CONFIG_HZ_300 is not set ++# CONFIG_HZ_500 is not set ++# CONFIG_HZ_1000 is not set ++CONFIG_HZ=100 ++CONFIG_SCHED_HRTICK=y ++# CONFIG_THUMB2_KERNEL is not set ++CONFIG_ARM_PATCH_IDIV=y ++CONFIG_AEABI=y ++# CONFIG_OABI_COMPAT is not set ++CONFIG_HAVE_ARCH_PFN_VALID=y ++CONFIG_HIGHMEM=y ++CONFIG_HIGHPTE=y ++CONFIG_CPU_SW_DOMAIN_PAN=y ++CONFIG_HW_PERF_EVENTS=y ++CONFIG_ARCH_WANT_GENERAL_HUGETLB=y ++# CONFIG_ARM_MODULE_PLTS is not set ++CONFIG_FORCE_MAX_ZONEORDER=11 ++CONFIG_ALIGNMENT_TRAP=y ++# CONFIG_UACCESS_WITH_MEMCPY is not set ++# CONFIG_SECCOMP is not set ++# CONFIG_PARAVIRT is not set ++# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set ++# CONFIG_XEN is not set ++ ++# ++# Boot options ++# ++CONFIG_USE_OF=y ++CONFIG_ATAGS=y ++# CONFIG_DEPRECATED_PARAM_STRUCT is not set ++CONFIG_ZBOOT_ROM_TEXT=0x0 ++CONFIG_ZBOOT_ROM_BSS=0x0 ++# CONFIG_ARM_APPENDED_DTB is not set ++CONFIG_CMDLINE="console=ttyPS0,115200n8 root=/dev/ram rw initrd=0x00800000,16M earlyprintk mtdparts=physmap-flash.0:12K(nor-fsbl),512K(nor-u-boot),5M(nor-linux),9M(nor-user),1M(nor-scratch),-(nor-rootfs)" ++CONFIG_CMDLINE_FROM_BOOTLOADER=y ++# CONFIG_CMDLINE_EXTEND is not set ++# CONFIG_CMDLINE_FORCE is not set ++# CONFIG_KEXEC is not set ++# CONFIG_CRASH_DUMP is not set ++CONFIG_AUTO_ZRELADDR=y ++# CONFIG_EFI is not set ++ ++# ++# CPU Power Management ++# ++ ++# ++# CPU Frequency scaling ++# ++CONFIG_CPU_FREQ=y ++CONFIG_CPU_FREQ_GOV_ATTR_SET=y ++CONFIG_CPU_FREQ_GOV_COMMON=y ++CONFIG_CPU_FREQ_STAT=y ++# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set ++# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set ++CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y ++# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set ++# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set ++# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set ++CONFIG_CPU_FREQ_GOV_PERFORMANCE=y ++CONFIG_CPU_FREQ_GOV_POWERSAVE=y ++CONFIG_CPU_FREQ_GOV_USERSPACE=y ++CONFIG_CPU_FREQ_GOV_ONDEMAND=y ++CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y ++# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set ++ ++# ++# CPU frequency scaling drivers ++# ++# CONFIG_CPUFREQ_DT is not set ++# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set ++# CONFIG_QORIQ_CPUFREQ is not set ++ ++# ++# CPU Idle ++# ++CONFIG_CPU_IDLE=y ++CONFIG_CPU_IDLE_GOV_LADDER=y ++CONFIG_CPU_IDLE_GOV_MENU=y ++ ++# ++# ARM CPU Idle Drivers ++# ++# CONFIG_ARM_CPUIDLE is not set ++CONFIG_ARM_ZYNQ_CPUIDLE=y ++ ++# ++# Floating point emulation ++# ++ ++# ++# At least one emulation must be selected ++# ++CONFIG_VFP=y ++CONFIG_VFPv3=y ++CONFIG_NEON=y ++# CONFIG_KERNEL_MODE_NEON is not set ++ ++# ++# Power management options ++# ++CONFIG_SUSPEND=y ++CONFIG_SUSPEND_FREEZER=y ++# CONFIG_SUSPEND_SKIP_SYNC is not set ++# CONFIG_HIBERNATION is not set ++CONFIG_PM_SLEEP=y ++CONFIG_PM_SLEEP_SMP=y ++# CONFIG_PM_AUTOSLEEP is not set ++# CONFIG_PM_WAKELOCKS is not set ++CONFIG_PM=y ++# CONFIG_PM_DEBUG is not set ++# CONFIG_APM_EMULATION is not set ++CONFIG_PM_CLK=y ++# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set ++CONFIG_CPU_PM=y ++CONFIG_ARCH_SUSPEND_POSSIBLE=y ++CONFIG_ARM_CPU_SUSPEND=y ++CONFIG_ARCH_HIBERNATION_POSSIBLE=y ++ ++# ++# Firmware Drivers ++# ++# CONFIG_FIRMWARE_MEMMAP is not set ++CONFIG_HAVE_ARM_SMCCC=y ++# CONFIG_GOOGLE_FIRMWARE is not set ++ ++# ++# Tegra firmware driver ++# ++# CONFIG_ARM_CRYPTO is not set ++# CONFIG_VIRTUALIZATION is not set ++ ++# ++# General architecture-dependent options ++# ++CONFIG_OPROFILE=y ++CONFIG_HAVE_OPROFILE=y ++# CONFIG_KPROBES is not set ++# CONFIG_JUMP_LABEL is not set ++CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y ++CONFIG_ARCH_USE_BUILTIN_BSWAP=y ++CONFIG_HAVE_KPROBES=y ++CONFIG_HAVE_KRETPROBES=y ++CONFIG_HAVE_OPTPROBES=y ++CONFIG_HAVE_NMI=y ++CONFIG_HAVE_ARCH_TRACEHOOK=y ++CONFIG_HAVE_DMA_CONTIGUOUS=y ++CONFIG_GENERIC_SMP_IDLE_THREAD=y ++CONFIG_GENERIC_IDLE_POLL_SETUP=y ++CONFIG_ARCH_HAS_FORTIFY_SOURCE=y ++CONFIG_ARCH_HAS_SET_MEMORY=y ++CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y ++CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y ++CONFIG_HAVE_RSEQ=y ++CONFIG_HAVE_CLK=y ++CONFIG_HAVE_HW_BREAKPOINT=y ++CONFIG_HAVE_PERF_REGS=y ++CONFIG_HAVE_PERF_USER_STACK_DUMP=y ++CONFIG_HAVE_ARCH_JUMP_LABEL=y ++CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y ++CONFIG_HAVE_ARCH_SECCOMP_FILTER=y ++CONFIG_HAVE_STACKPROTECTOR=y ++CONFIG_CC_HAS_STACKPROTECTOR_NONE=y ++CONFIG_STACKPROTECTOR=y ++CONFIG_STACKPROTECTOR_STRONG=y ++CONFIG_HAVE_CONTEXT_TRACKING=y ++CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y ++CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y ++CONFIG_HAVE_MOD_ARCH_SPECIFIC=y ++CONFIG_MODULES_USE_ELF_REL=y ++CONFIG_ARCH_HAS_ELF_RANDOMIZE=y ++CONFIG_HAVE_ARCH_MMAP_RND_BITS=y ++CONFIG_HAVE_EXIT_THREAD=y ++CONFIG_ARCH_MMAP_RND_BITS=8 ++CONFIG_CLONE_BACKWARDS=y ++CONFIG_OLD_SIGSUSPEND3=y ++CONFIG_OLD_SIGACTION=y ++CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y ++CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y ++CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y ++CONFIG_STRICT_KERNEL_RWX=y ++CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y ++CONFIG_STRICT_MODULE_RWX=y ++CONFIG_ARCH_HAS_PHYS_TO_DMA=y ++CONFIG_REFCOUNT_FULL=y ++ ++# ++# GCOV-based kernel profiling ++# ++# CONFIG_GCOV_KERNEL is not set ++CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y ++CONFIG_PLUGIN_HOSTCC="" ++CONFIG_HAVE_GCC_PLUGINS=y ++CONFIG_RT_MUTEXES=y ++CONFIG_BASE_SMALL=0 ++CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set ++CONFIG_MODULE_UNLOAD=y ++CONFIG_MODULE_FORCE_UNLOAD=y ++CONFIG_MODVERSIONS=y ++# CONFIG_MODULE_SRCVERSION_ALL is not set ++# CONFIG_MODULE_SIG is not set ++# CONFIG_MODULE_COMPRESS is not set ++# CONFIG_TRIM_UNUSED_KSYMS is not set ++CONFIG_MODULES_TREE_LOOKUP=y ++CONFIG_BLOCK=y ++CONFIG_LBDAF=y ++CONFIG_BLK_SCSI_REQUEST=y ++# CONFIG_BLK_DEV_BSG is not set ++# CONFIG_BLK_DEV_BSGLIB is not set ++# CONFIG_BLK_DEV_INTEGRITY is not set ++# CONFIG_BLK_DEV_ZONED is not set ++# CONFIG_BLK_CMDLINE_PARSER is not set ++# CONFIG_BLK_WBT is not set ++CONFIG_BLK_DEBUG_FS=y ++# CONFIG_BLK_SED_OPAL is not set ++ ++# ++# Partition Types ++# ++# CONFIG_PARTITION_ADVANCED is not set ++CONFIG_MSDOS_PARTITION=y ++CONFIG_EFI_PARTITION=y ++CONFIG_BLK_MQ_PCI=y ++ ++# ++# IO Schedulers ++# ++CONFIG_IOSCHED_NOOP=y ++CONFIG_IOSCHED_DEADLINE=y ++CONFIG_IOSCHED_CFQ=y ++# CONFIG_DEFAULT_DEADLINE is not set ++CONFIG_DEFAULT_CFQ=y ++# CONFIG_DEFAULT_NOOP is not set ++CONFIG_DEFAULT_IOSCHED="cfq" ++CONFIG_MQ_IOSCHED_DEADLINE=y ++CONFIG_MQ_IOSCHED_KYBER=y ++# CONFIG_IOSCHED_BFQ is not set ++CONFIG_ASN1=y ++CONFIG_UNINLINE_SPIN_UNLOCK=y ++CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y ++CONFIG_MUTEX_SPIN_ON_OWNER=y ++CONFIG_RWSEM_SPIN_ON_OWNER=y ++CONFIG_LOCK_SPIN_ON_OWNER=y ++CONFIG_FREEZER=y ++ ++# ++# Executable file formats ++# ++CONFIG_BINFMT_ELF=y ++# CONFIG_BINFMT_ELF_FDPIC is not set ++CONFIG_ELFCORE=y ++# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set ++CONFIG_BINFMT_SCRIPT=y ++# CONFIG_BINFMT_FLAT is not set ++# CONFIG_BINFMT_MISC is not set ++CONFIG_COREDUMP=y ++ ++# ++# Memory Management options ++# ++CONFIG_FLATMEM=y ++CONFIG_FLAT_NODE_MEM_MAP=y ++CONFIG_HAVE_MEMBLOCK=y ++CONFIG_NO_BOOTMEM=y ++CONFIG_MEMORY_ISOLATION=y ++CONFIG_SPLIT_PTLOCK_CPUS=4 ++# CONFIG_COMPACTION is not set ++CONFIG_MIGRATION=y ++CONFIG_BOUNCE=y ++# CONFIG_KSM is not set ++CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 ++# CONFIG_CLEANCACHE is not set ++# CONFIG_FRONTSWAP is not set ++CONFIG_CMA=y ++# CONFIG_CMA_DEBUG is not set ++# CONFIG_CMA_DEBUGFS is not set ++CONFIG_CMA_AREAS=7 ++# CONFIG_ZPOOL is not set ++# CONFIG_ZBUD is not set ++# CONFIG_ZSMALLOC is not set ++CONFIG_GENERIC_EARLY_IOREMAP=y ++# CONFIG_IDLE_PAGE_TRACKING is not set ++CONFIG_FRAME_VECTOR=y ++# CONFIG_PERCPU_STATS is not set ++# CONFIG_GUP_BENCHMARK is not set ++CONFIG_NET=y ++ ++# ++# Networking options ++# ++CONFIG_PACKET=y ++# CONFIG_PACKET_DIAG is not set ++CONFIG_UNIX=y ++# CONFIG_UNIX_DIAG is not set ++# CONFIG_TLS is not set ++CONFIG_XFRM=y ++# CONFIG_XFRM_USER is not set ++# CONFIG_XFRM_INTERFACE is not set ++# CONFIG_XFRM_SUB_POLICY is not set ++# CONFIG_XFRM_MIGRATE is not set ++# CONFIG_XFRM_STATISTICS is not set ++# CONFIG_NET_KEY is not set ++CONFIG_INET=y ++CONFIG_IP_MULTICAST=y ++# CONFIG_IP_ADVANCED_ROUTER is not set ++CONFIG_IP_PNP=y ++CONFIG_IP_PNP_DHCP=y ++CONFIG_IP_PNP_BOOTP=y ++CONFIG_IP_PNP_RARP=y ++CONFIG_NET_IPIP=m ++# CONFIG_NET_IPGRE_DEMUX is not set ++CONFIG_NET_IP_TUNNEL=y ++# CONFIG_IP_MROUTE is not set ++# CONFIG_SYN_COOKIES is not set ++# CONFIG_NET_IPVTI is not set ++# CONFIG_NET_FOU is not set ++# CONFIG_NET_FOU_IP_TUNNELS is not set ++# CONFIG_INET_AH is not set ++# CONFIG_INET_ESP is not set ++# CONFIG_INET_IPCOMP is not set ++CONFIG_INET_TUNNEL=y ++CONFIG_INET_XFRM_MODE_TRANSPORT=y ++CONFIG_INET_XFRM_MODE_TUNNEL=y ++CONFIG_INET_XFRM_MODE_BEET=y ++CONFIG_INET_DIAG=y ++CONFIG_INET_TCP_DIAG=y ++# CONFIG_INET_UDP_DIAG is not set ++# CONFIG_INET_RAW_DIAG is not set ++# CONFIG_INET_DIAG_DESTROY is not set ++# CONFIG_TCP_CONG_ADVANCED is not set ++CONFIG_TCP_CONG_CUBIC=y ++CONFIG_DEFAULT_TCP_CONG="cubic" ++# CONFIG_TCP_MD5SIG is not set ++CONFIG_IPV6=y ++# CONFIG_IPV6_ROUTER_PREF is not set ++# CONFIG_IPV6_OPTIMISTIC_DAD is not set ++# CONFIG_INET6_AH is not set ++# CONFIG_INET6_ESP is not set ++# CONFIG_INET6_IPCOMP is not set ++# CONFIG_IPV6_MIP6 is not set ++CONFIG_INET6_XFRM_MODE_TRANSPORT=y ++CONFIG_INET6_XFRM_MODE_TUNNEL=y ++CONFIG_INET6_XFRM_MODE_BEET=y ++# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set ++# CONFIG_IPV6_VTI is not set ++CONFIG_IPV6_SIT=y ++# CONFIG_IPV6_SIT_6RD is not set ++CONFIG_IPV6_NDISC_NODETYPE=y ++# CONFIG_IPV6_TUNNEL is not set ++# CONFIG_IPV6_MULTIPLE_TABLES is not set ++# CONFIG_IPV6_MROUTE is not set ++# CONFIG_IPV6_SEG6_LWTUNNEL is not set ++# CONFIG_IPV6_SEG6_HMAC is not set ++# CONFIG_NETWORK_SECMARK is not set ++CONFIG_NET_PTP_CLASSIFY=y ++CONFIG_NETWORK_PHY_TIMESTAMPING=y ++# CONFIG_NETFILTER is not set ++# CONFIG_BPFILTER is not set ++# CONFIG_IP_DCCP is not set ++# CONFIG_IP_SCTP is not set ++# CONFIG_RDS is not set ++# CONFIG_TIPC is not set ++# CONFIG_ATM is not set ++# CONFIG_L2TP is not set ++CONFIG_STP=y ++CONFIG_GARP=y ++# CONFIG_BRIDGE is not set ++CONFIG_HAVE_NET_DSA=y ++# CONFIG_NET_DSA is not set ++CONFIG_VLAN_8021Q=y ++CONFIG_VLAN_8021Q_GVRP=y ++# CONFIG_VLAN_8021Q_MVRP is not set ++# CONFIG_DECNET is not set ++CONFIG_LLC=y ++# CONFIG_LLC2 is not set ++# CONFIG_ATALK is not set ++# CONFIG_X25 is not set ++# CONFIG_LAPB is not set ++# CONFIG_PHONET is not set ++# CONFIG_6LOWPAN is not set ++# CONFIG_IEEE802154 is not set ++# CONFIG_NET_SCHED is not set ++# CONFIG_DCB is not set ++# CONFIG_DNS_RESOLVER is not set ++# CONFIG_BATMAN_ADV is not set ++# CONFIG_OPENVSWITCH is not set ++# CONFIG_VSOCKETS is not set ++# CONFIG_NETLINK_DIAG is not set ++# CONFIG_MPLS is not set ++# CONFIG_NET_NSH is not set ++# CONFIG_HSR is not set ++# CONFIG_NET_SWITCHDEV is not set ++# CONFIG_NET_L3_MASTER_DEV is not set ++# CONFIG_NET_NCSI is not set ++CONFIG_RPS=y ++CONFIG_RFS_ACCEL=y ++CONFIG_XPS=y ++# CONFIG_CGROUP_NET_PRIO is not set ++# CONFIG_CGROUP_NET_CLASSID is not set ++CONFIG_NET_RX_BUSY_POLL=y ++CONFIG_BQL=y ++# CONFIG_BPF_JIT is not set ++CONFIG_NET_FLOW_LIMIT=y ++ ++# ++# Network testing ++# ++# CONFIG_NET_PKTGEN is not set ++# CONFIG_HAMRADIO is not set ++CONFIG_CAN=y ++CONFIG_CAN_RAW=y ++CONFIG_CAN_BCM=y ++CONFIG_CAN_GW=y ++ ++# ++# CAN Device Drivers ++# ++# CONFIG_CAN_VCAN is not set ++# CONFIG_CAN_VXCAN is not set ++# CONFIG_CAN_SLCAN is not set ++CONFIG_CAN_DEV=y ++CONFIG_CAN_CALC_BITTIMING=y ++# CONFIG_CAN_FLEXCAN is not set ++# CONFIG_CAN_GRCAN is not set ++# CONFIG_CAN_TI_HECC is not set ++CONFIG_CAN_XILINXCAN=y ++CONFIG_CAN_C_CAN=y ++CONFIG_CAN_C_CAN_PLATFORM=y ++# CONFIG_CAN_C_CAN_PCI is not set ++# CONFIG_CAN_CC770 is not set ++# CONFIG_CAN_IFI_CANFD is not set ++# CONFIG_CAN_M_CAN is not set ++# CONFIG_CAN_PEAK_PCIEFD is not set ++# CONFIG_CAN_RCAR is not set ++# CONFIG_CAN_RCAR_CANFD is not set ++# CONFIG_CAN_SJA1000 is not set ++# CONFIG_CAN_SOFTING is not set ++ ++# ++# CAN SPI interfaces ++# ++# CONFIG_CAN_HI311X is not set ++# CONFIG_CAN_MCP251X is not set ++ ++# ++# CAN USB interfaces ++# ++# CONFIG_CAN_8DEV_USB is not set ++# CONFIG_CAN_EMS_USB is not set ++# CONFIG_CAN_ESD_USB2 is not set ++# CONFIG_CAN_GS_USB is not set ++# CONFIG_CAN_KVASER_USB is not set ++# CONFIG_CAN_MCBA_USB is not set ++# CONFIG_CAN_PEAK_USB is not set ++# CONFIG_CAN_UCAN is not set ++CONFIG_CAN_DEBUG_DEVICES=y ++# CONFIG_BT is not set ++# CONFIG_AF_RXRPC is not set ++# CONFIG_AF_KCM is not set ++CONFIG_WIRELESS=y ++CONFIG_WIRELESS_EXT=y ++CONFIG_WEXT_CORE=y ++CONFIG_WEXT_PROC=y ++CONFIG_WEXT_SPY=y ++CONFIG_WEXT_PRIV=y ++CONFIG_CFG80211=m ++CONFIG_NL80211_TESTMODE=y ++CONFIG_CFG80211_DEVELOPER_WARNINGS=y ++CONFIG_CFG80211_CERTIFICATION_ONUS=y ++CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y ++CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y ++CONFIG_CFG80211_EXTRA_REGDB_KEYDIR="" ++CONFIG_CFG80211_REG_CELLULAR_HINTS=y ++CONFIG_CFG80211_REG_RELAX_NO_IR=y ++CONFIG_CFG80211_DEFAULT_PS=y ++CONFIG_CFG80211_DEBUGFS=y ++CONFIG_CFG80211_CRDA_SUPPORT=y ++CONFIG_CFG80211_WEXT=y ++CONFIG_LIB80211=m ++# CONFIG_LIB80211_DEBUG is not set ++CONFIG_MAC80211=m ++CONFIG_MAC80211_HAS_RC=y ++CONFIG_MAC80211_RC_MINSTREL=y ++CONFIG_MAC80211_RC_MINSTREL_HT=y ++CONFIG_MAC80211_RC_MINSTREL_VHT=y ++CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y ++CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" ++CONFIG_MAC80211_MESH=y ++CONFIG_MAC80211_LEDS=y ++CONFIG_MAC80211_DEBUGFS=y ++CONFIG_MAC80211_MESSAGE_TRACING=y ++CONFIG_MAC80211_DEBUG_MENU=y ++# CONFIG_MAC80211_NOINLINE is not set ++# CONFIG_MAC80211_VERBOSE_DEBUG is not set ++# CONFIG_MAC80211_MLME_DEBUG is not set ++# CONFIG_MAC80211_STA_DEBUG is not set ++# CONFIG_MAC80211_HT_DEBUG is not set ++# CONFIG_MAC80211_OCB_DEBUG is not set ++# CONFIG_MAC80211_IBSS_DEBUG is not set ++# CONFIG_MAC80211_PS_DEBUG is not set ++# CONFIG_MAC80211_MPL_DEBUG is not set ++# CONFIG_MAC80211_MPATH_DEBUG is not set ++# CONFIG_MAC80211_MHWMP_DEBUG is not set ++# CONFIG_MAC80211_MESH_SYNC_DEBUG is not set ++# CONFIG_MAC80211_MESH_CSA_DEBUG is not set ++# CONFIG_MAC80211_MESH_PS_DEBUG is not set ++# CONFIG_MAC80211_TDLS_DEBUG is not set ++# CONFIG_MAC80211_DEBUG_COUNTERS is not set ++CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 ++# CONFIG_WIMAX is not set ++# CONFIG_RFKILL is not set ++# CONFIG_NET_9P is not set ++# CONFIG_CAIF is not set ++# CONFIG_CEPH_LIB is not set ++# CONFIG_NFC is not set ++# CONFIG_PSAMPLE is not set ++# CONFIG_NET_IFE is not set ++# CONFIG_LWTUNNEL is not set ++CONFIG_DST_CACHE=y ++CONFIG_GRO_CELLS=y ++# CONFIG_NET_DEVLINK is not set ++CONFIG_MAY_USE_DEVLINK=y ++# CONFIG_FAILOVER is not set ++CONFIG_HAVE_EBPF_JIT=y ++ ++# ++# Device Drivers ++# ++CONFIG_ARM_AMBA=y ++ ++# ++# Generic Driver Options ++# ++CONFIG_UEVENT_HELPER=y ++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" ++CONFIG_DEVTMPFS=y ++CONFIG_DEVTMPFS_MOUNT=y ++CONFIG_STANDALONE=y ++CONFIG_PREVENT_FIRMWARE_BUILD=y ++ ++# ++# Firmware loader ++# ++CONFIG_FW_LOADER=y ++CONFIG_EXTRA_FIRMWARE="" ++# CONFIG_FW_LOADER_USER_HELPER is not set ++CONFIG_WANT_DEV_COREDUMP=y ++CONFIG_ALLOW_DEV_COREDUMP=y ++CONFIG_DEV_COREDUMP=y ++# CONFIG_DEBUG_DRIVER is not set ++# CONFIG_DEBUG_DEVRES is not set ++# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set ++# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set ++CONFIG_GENERIC_CPU_AUTOPROBE=y ++CONFIG_SOC_BUS=y ++CONFIG_REGMAP=y ++CONFIG_REGMAP_I2C=y ++CONFIG_REGMAP_SPI=y ++CONFIG_REGMAP_MMIO=y ++CONFIG_DMA_SHARED_BUFFER=y ++# CONFIG_DMA_FENCE_TRACE is not set ++CONFIG_DMA_CMA=y ++ ++# ++# Default contiguous memory area size: ++# ++CONFIG_CMA_SIZE_MBYTES=16 ++CONFIG_CMA_SIZE_SEL_MBYTES=y ++# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set ++# CONFIG_CMA_SIZE_SEL_MIN is not set ++# CONFIG_CMA_SIZE_SEL_MAX is not set ++CONFIG_CMA_ALIGNMENT=8 ++CONFIG_GENERIC_ARCH_TOPOLOGY=y ++ ++# ++# Bus devices ++# ++# CONFIG_BRCMSTB_GISB_ARB is not set ++# CONFIG_SIMPLE_PM_BUS is not set ++CONFIG_VEXPRESS_CONFIG=y ++CONFIG_CONNECTOR=y ++CONFIG_PROC_EVENTS=y ++# CONFIG_GNSS is not set ++CONFIG_MTD=y ++# CONFIG_MTD_TESTS is not set ++# CONFIG_MTD_REDBOOT_PARTS is not set ++CONFIG_MTD_CMDLINE_PARTS=y ++# CONFIG_MTD_AFS_PARTS is not set ++CONFIG_MTD_OF_PARTS=y ++# CONFIG_MTD_AR7_PARTS is not set ++ ++# ++# Partition parsers ++# ++ ++# ++# User Modules And Translation Layers ++# ++CONFIG_MTD_BLKDEVS=y ++CONFIG_MTD_BLOCK=y ++# CONFIG_FTL is not set ++# CONFIG_NFTL is not set ++# CONFIG_INFTL is not set ++# CONFIG_RFD_FTL is not set ++# CONFIG_SSFDC is not set ++# CONFIG_SM_FTL is not set ++# CONFIG_MTD_OOPS is not set ++# CONFIG_MTD_SWAP is not set ++# CONFIG_MTD_PARTITIONED_MASTER is not set ++ ++# ++# RAM/ROM/Flash chip drivers ++# ++CONFIG_MTD_CFI=y ++# CONFIG_MTD_JEDECPROBE is not set ++CONFIG_MTD_GEN_PROBE=y ++# CONFIG_MTD_CFI_ADV_OPTIONS is not set ++CONFIG_MTD_MAP_BANK_WIDTH_1=y ++CONFIG_MTD_MAP_BANK_WIDTH_2=y ++CONFIG_MTD_MAP_BANK_WIDTH_4=y ++CONFIG_MTD_CFI_I1=y ++CONFIG_MTD_CFI_I2=y ++# CONFIG_MTD_CFI_INTELEXT is not set ++CONFIG_MTD_CFI_AMDSTD=y ++# CONFIG_MTD_CFI_STAA is not set ++CONFIG_MTD_CFI_UTIL=y ++# CONFIG_MTD_RAM is not set ++# CONFIG_MTD_ROM is not set ++# CONFIG_MTD_ABSENT is not set ++ ++# ++# Mapping drivers for chip access ++# ++# CONFIG_MTD_COMPLEX_MAPPINGS is not set ++CONFIG_MTD_PHYSMAP=y ++# CONFIG_MTD_PHYSMAP_COMPAT is not set ++CONFIG_MTD_PHYSMAP_OF=y ++# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set ++# CONFIG_MTD_PHYSMAP_OF_GEMINI is not set ++# CONFIG_MTD_INTEL_VR_NOR is not set ++# CONFIG_MTD_PLATRAM is not set ++ ++# ++# Self-contained MTD device drivers ++# ++# CONFIG_MTD_PMC551 is not set ++# CONFIG_MTD_DATAFLASH is not set ++CONFIG_MTD_M25P80=y ++# CONFIG_MTD_MCHP23K256 is not set ++# CONFIG_MTD_SST25L is not set ++# CONFIG_MTD_SLRAM is not set ++# CONFIG_MTD_PHRAM is not set ++# CONFIG_MTD_MTDRAM is not set ++# CONFIG_MTD_BLOCK2MTD is not set ++ ++# ++# Disk-On-Chip Device Drivers ++# ++# CONFIG_MTD_DOCG3 is not set ++# CONFIG_MTD_ONENAND is not set ++CONFIG_MTD_NAND_ECC=y ++# CONFIG_MTD_NAND_ECC_SMC is not set ++CONFIG_MTD_NAND=y ++# CONFIG_MTD_NAND_ECC_BCH is not set ++# CONFIG_MTD_NAND_DENALI_PCI is not set ++# CONFIG_MTD_NAND_DENALI_DT is not set ++# CONFIG_MTD_NAND_GPIO is not set ++# CONFIG_MTD_NAND_RICOH is not set ++# CONFIG_MTD_NAND_DISKONCHIP is not set ++# CONFIG_MTD_NAND_DOCG4 is not set ++# CONFIG_MTD_NAND_CAFE is not set ++# CONFIG_MTD_NAND_NANDSIM is not set ++# CONFIG_MTD_NAND_BRCMNAND is not set ++# CONFIG_MTD_NAND_PLATFORM is not set ++# CONFIG_MTD_SPI_NAND is not set ++ ++# ++# LPDDR & LPDDR2 PCM memory drivers ++# ++# CONFIG_MTD_LPDDR is not set ++# CONFIG_MTD_LPDDR2_NVM is not set ++CONFIG_MTD_SPI_NOR=y ++# CONFIG_MTD_MT81xx_NOR is not set ++CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y ++# CONFIG_SPI_CADENCE_QUADSPI is not set ++# CONFIG_MTD_UBI is not set ++CONFIG_DTC=y ++CONFIG_OF=y ++# CONFIG_OF_UNITTEST is not set ++CONFIG_OF_FLATTREE=y ++CONFIG_OF_EARLY_FLATTREE=y ++CONFIG_OF_KOBJ=y ++CONFIG_OF_DYNAMIC=y ++CONFIG_OF_ADDRESS=y ++CONFIG_OF_IRQ=y ++CONFIG_OF_NET=y ++CONFIG_OF_MDIO=y ++CONFIG_OF_RESERVED_MEM=y ++CONFIG_OF_RESOLVE=y ++CONFIG_OF_OVERLAY=y ++CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y ++# CONFIG_PARPORT is not set ++CONFIG_BLK_DEV=y ++# CONFIG_BLK_DEV_NULL_BLK is not set ++# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set ++# CONFIG_BLK_DEV_DAC960 is not set ++# CONFIG_BLK_DEV_UMEM is not set ++CONFIG_BLK_DEV_LOOP=y ++CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 ++# CONFIG_BLK_DEV_CRYPTOLOOP is not set ++# CONFIG_BLK_DEV_DRBD is not set ++# CONFIG_BLK_DEV_NBD is not set ++# CONFIG_BLK_DEV_SX8 is not set ++CONFIG_BLK_DEV_RAM=y ++CONFIG_BLK_DEV_RAM_COUNT=2 ++CONFIG_BLK_DEV_RAM_SIZE=16384 ++# CONFIG_CDROM_PKTCDVD is not set ++# CONFIG_ATA_OVER_ETH is not set ++# CONFIG_BLK_DEV_RBD is not set ++# CONFIG_BLK_DEV_RSXX is not set ++ ++# ++# NVME Support ++# ++# CONFIG_BLK_DEV_NVME is not set ++# CONFIG_NVME_FC is not set ++# CONFIG_NVME_TARGET is not set ++ ++# ++# Misc devices ++# ++# CONFIG_AD525X_DPOT is not set ++# CONFIG_DUMMY_IRQ is not set ++# CONFIG_PHANTOM is not set ++# CONFIG_SGI_IOC4 is not set ++# CONFIG_TIFM_CORE is not set ++# CONFIG_ICS932S401 is not set ++# CONFIG_ENCLOSURE_SERVICES is not set ++# CONFIG_HP_ILO is not set ++# CONFIG_APDS9802ALS is not set ++# CONFIG_ISL29003 is not set ++# CONFIG_ISL29020 is not set ++# CONFIG_SENSORS_TSL2550 is not set ++# CONFIG_SENSORS_BH1770 is not set ++# CONFIG_SENSORS_APDS990X is not set ++# CONFIG_HMC6352 is not set ++# CONFIG_DS1682 is not set ++# CONFIG_USB_SWITCH_FSA9480 is not set ++# CONFIG_LATTICE_ECP3_CONFIG is not set ++CONFIG_SRAM=y ++CONFIG_SRAM_EXEC=y ++CONFIG_VEXPRESS_SYSCFG=y ++# CONFIG_PCI_ENDPOINT_TEST is not set ++# CONFIG_C2PORT is not set ++ ++# ++# EEPROM support ++# ++CONFIG_EEPROM_AT24=y ++CONFIG_EEPROM_AT25=y ++# CONFIG_EEPROM_LEGACY is not set ++# CONFIG_EEPROM_MAX6875 is not set ++CONFIG_EEPROM_93CX6=m ++# CONFIG_EEPROM_93XX46 is not set ++# CONFIG_EEPROM_IDT_89HPESX is not set ++# CONFIG_CB710_CORE is not set ++ ++# ++# Texas Instruments shared transport line discipline ++# ++# CONFIG_TI_ST is not set ++# CONFIG_SENSORS_LIS3_SPI is not set ++# CONFIG_SENSORS_LIS3_I2C is not set ++# CONFIG_ALTERA_STAPL is not set ++ ++# ++# Intel MIC & related support ++# ++ ++# ++# Intel MIC Bus Driver ++# ++ ++# ++# SCIF Bus Driver ++# ++ ++# ++# VOP Bus Driver ++# ++ ++# ++# Intel MIC Host Driver ++# ++ ++# ++# Intel MIC Card Driver ++# ++ ++# ++# SCIF Driver ++# ++ ++# ++# Intel MIC Coprocessor State Management (COSM) Drivers ++# ++ ++# ++# VOP Driver ++# ++# CONFIG_ECHO is not set ++# CONFIG_MISC_RTSX_PCI is not set ++# CONFIG_MISC_RTSX_USB is not set ++CONFIG_HAVE_IDE=y ++# CONFIG_IDE is not set ++ ++# ++# SCSI device support ++# ++CONFIG_SCSI_MOD=y ++# CONFIG_RAID_ATTRS is not set ++CONFIG_SCSI=y ++CONFIG_SCSI_DMA=y ++# CONFIG_SCSI_MQ_DEFAULT is not set ++CONFIG_SCSI_PROC_FS=y ++ ++# ++# SCSI support type (disk, tape, CD-ROM) ++# ++CONFIG_BLK_DEV_SD=y ++# CONFIG_CHR_DEV_ST is not set ++# CONFIG_CHR_DEV_OSST is not set ++# CONFIG_BLK_DEV_SR is not set ++CONFIG_CHR_DEV_SG=y ++# CONFIG_CHR_DEV_SCH is not set ++# CONFIG_SCSI_CONSTANTS is not set ++# CONFIG_SCSI_LOGGING is not set ++# CONFIG_SCSI_SCAN_ASYNC is not set ++ ++# ++# SCSI Transports ++# ++# CONFIG_SCSI_SPI_ATTRS is not set ++# CONFIG_SCSI_FC_ATTRS is not set ++# CONFIG_SCSI_ISCSI_ATTRS is not set ++# CONFIG_SCSI_SAS_ATTRS is not set ++# CONFIG_SCSI_SAS_LIBSAS is not set ++# CONFIG_SCSI_SRP_ATTRS is not set ++CONFIG_SCSI_LOWLEVEL=y ++# CONFIG_ISCSI_TCP is not set ++# CONFIG_ISCSI_BOOT_SYSFS is not set ++# CONFIG_SCSI_CXGB3_ISCSI is not set ++# CONFIG_SCSI_CXGB4_ISCSI is not set ++# CONFIG_SCSI_BNX2_ISCSI is not set ++# CONFIG_BE2ISCSI is not set ++# CONFIG_BLK_DEV_3W_XXXX_RAID is not set ++# CONFIG_SCSI_HPSA is not set ++# CONFIG_SCSI_3W_9XXX is not set ++# CONFIG_SCSI_3W_SAS is not set ++# CONFIG_SCSI_ACARD is not set ++# CONFIG_SCSI_AACRAID is not set ++# CONFIG_SCSI_AIC7XXX is not set ++# CONFIG_SCSI_AIC79XX is not set ++# CONFIG_SCSI_AIC94XX is not set ++# CONFIG_SCSI_MVSAS is not set ++# CONFIG_SCSI_MVUMI is not set ++# CONFIG_SCSI_ADVANSYS is not set ++# CONFIG_SCSI_ARCMSR is not set ++# CONFIG_SCSI_ESAS2R is not set ++# CONFIG_MEGARAID_NEWGEN is not set ++# CONFIG_MEGARAID_LEGACY is not set ++# CONFIG_MEGARAID_SAS is not set ++# CONFIG_SCSI_MPT3SAS is not set ++# CONFIG_SCSI_MPT2SAS is not set ++# CONFIG_SCSI_SMARTPQI is not set ++# CONFIG_SCSI_UFSHCD is not set ++# CONFIG_SCSI_HPTIOP is not set ++# CONFIG_SCSI_SNIC is not set ++# CONFIG_SCSI_DMX3191D is not set ++# CONFIG_SCSI_IPS is not set ++# CONFIG_SCSI_INITIO is not set ++# CONFIG_SCSI_INIA100 is not set ++# CONFIG_SCSI_STEX is not set ++# CONFIG_SCSI_SYM53C8XX_2 is not set ++# CONFIG_SCSI_QLOGIC_1280 is not set ++# CONFIG_SCSI_QLA_ISCSI is not set ++# CONFIG_SCSI_DC395x is not set ++# CONFIG_SCSI_AM53C974 is not set ++# CONFIG_SCSI_NSP32 is not set ++# CONFIG_SCSI_WD719X is not set ++# CONFIG_SCSI_DEBUG is not set ++# CONFIG_SCSI_PMCRAID is not set ++# CONFIG_SCSI_PM8001 is not set ++# CONFIG_SCSI_DH is not set ++# CONFIG_SCSI_OSD_INITIATOR is not set ++CONFIG_HAVE_PATA_PLATFORM=y ++# CONFIG_ATA is not set ++# CONFIG_MD is not set ++# CONFIG_TARGET_CORE is not set ++# CONFIG_FUSION is not set ++ ++# ++# IEEE 1394 (FireWire) support ++# ++# CONFIG_FIREWIRE is not set ++# CONFIG_FIREWIRE_NOSY is not set ++CONFIG_NETDEVICES=y ++CONFIG_MII=y ++CONFIG_NET_CORE=y ++# CONFIG_BONDING is not set ++# CONFIG_DUMMY is not set ++# CONFIG_EQUALIZER is not set ++# CONFIG_NET_FC is not set ++# CONFIG_NET_TEAM is not set ++# CONFIG_MACVLAN is not set ++# CONFIG_VXLAN is not set ++# CONFIG_GTP is not set ++# CONFIG_MACSEC is not set ++# CONFIG_NETCONSOLE is not set ++# CONFIG_TUN is not set ++# CONFIG_TUN_VNET_CROSS_LE is not set ++# CONFIG_VETH is not set ++# CONFIG_NLMON is not set ++# CONFIG_ARCNET is not set ++ ++# ++# CAIF transport drivers ++# ++ ++# ++# Distributed Switch Architecture drivers ++# ++CONFIG_ETHERNET=y ++CONFIG_NET_VENDOR_3COM=y ++# CONFIG_TYPHOON is not set ++CONFIG_NET_VENDOR_ADAPTEC=y ++# CONFIG_ADAPTEC_STARFIRE is not set ++CONFIG_NET_VENDOR_AGERE=y ++# CONFIG_ET131X is not set ++CONFIG_NET_VENDOR_ALACRITECH=y ++# CONFIG_SLICOSS is not set ++CONFIG_NET_VENDOR_ALTEON=y ++# CONFIG_ACENIC is not set ++# CONFIG_ALTERA_TSE is not set ++CONFIG_NET_VENDOR_AMAZON=y ++CONFIG_NET_VENDOR_AMD=y ++# CONFIG_AMD8111_ETH is not set ++# CONFIG_PCNET32 is not set ++CONFIG_NET_VENDOR_AQUANTIA=y ++CONFIG_NET_VENDOR_ARC=y ++CONFIG_NET_VENDOR_ATHEROS=y ++# CONFIG_ATL2 is not set ++# CONFIG_ATL1 is not set ++# CONFIG_ATL1E is not set ++# CONFIG_ATL1C is not set ++# CONFIG_ALX is not set ++# CONFIG_NET_VENDOR_AURORA is not set ++CONFIG_NET_VENDOR_BROADCOM=y ++# CONFIG_B44 is not set ++# CONFIG_BCMGENET is not set ++# CONFIG_BNX2 is not set ++# CONFIG_CNIC is not set ++# CONFIG_TIGON3 is not set ++# CONFIG_BNX2X is not set ++# CONFIG_SYSTEMPORT is not set ++# CONFIG_BNXT is not set ++CONFIG_NET_VENDOR_BROCADE=y ++# CONFIG_BNA is not set ++CONFIG_NET_VENDOR_CADENCE=y ++CONFIG_MACB=y ++CONFIG_MACB_USE_HWSTAMP=y ++# CONFIG_MACB_PCI is not set ++CONFIG_NET_VENDOR_CAVIUM=y ++CONFIG_NET_VENDOR_CHELSIO=y ++# CONFIG_CHELSIO_T1 is not set ++# CONFIG_CHELSIO_T3 is not set ++# CONFIG_CHELSIO_T4 is not set ++# CONFIG_CHELSIO_T4VF is not set ++CONFIG_NET_VENDOR_CIRRUS=y ++# CONFIG_CS89x0 is not set ++CONFIG_NET_VENDOR_CISCO=y ++# CONFIG_ENIC is not set ++CONFIG_NET_VENDOR_CORTINA=y ++# CONFIG_GEMINI_ETHERNET is not set ++# CONFIG_DM9000 is not set ++# CONFIG_DNET is not set ++CONFIG_NET_VENDOR_DEC=y ++# CONFIG_NET_TULIP is not set ++CONFIG_NET_VENDOR_DLINK=y ++# CONFIG_DL2K is not set ++# CONFIG_SUNDANCE is not set ++CONFIG_NET_VENDOR_EMULEX=y ++# CONFIG_BE2NET is not set ++CONFIG_NET_VENDOR_EZCHIP=y ++# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set ++CONFIG_NET_VENDOR_FARADAY=y ++# CONFIG_FTMAC100 is not set ++# CONFIG_FTGMAC100 is not set ++CONFIG_NET_VENDOR_HISILICON=y ++# CONFIG_HIX5HD2_GMAC is not set ++# CONFIG_HISI_FEMAC is not set ++# CONFIG_HIP04_ETH is not set ++# CONFIG_HNS is not set ++# CONFIG_HNS_DSAF is not set ++# CONFIG_HNS_ENET is not set ++# CONFIG_HNS3 is not set ++CONFIG_NET_VENDOR_HP=y ++# CONFIG_HP100 is not set ++CONFIG_NET_VENDOR_HUAWEI=y ++CONFIG_NET_VENDOR_I825XX=y ++CONFIG_NET_VENDOR_INTEL=y ++# CONFIG_E100 is not set ++# CONFIG_E1000 is not set ++CONFIG_E1000E=y ++# CONFIG_IGB is not set ++# CONFIG_IGBVF is not set ++# CONFIG_IXGB is not set ++# CONFIG_IXGBE is not set ++# CONFIG_IXGBEVF is not set ++# CONFIG_I40E is not set ++# CONFIG_I40EVF is not set ++# CONFIG_ICE is not set ++# CONFIG_FM10K is not set ++# CONFIG_JME is not set ++CONFIG_NET_VENDOR_MARVELL=y ++# CONFIG_MVMDIO is not set ++# CONFIG_SKGE is not set ++# CONFIG_SKY2 is not set ++CONFIG_NET_VENDOR_MELLANOX=y ++# CONFIG_MLX4_EN is not set ++# CONFIG_MLX5_CORE is not set ++# CONFIG_MLXSW_CORE is not set ++# CONFIG_MLXFW is not set ++CONFIG_NET_VENDOR_MICREL=y ++# CONFIG_KS8842 is not set ++# CONFIG_KS8851 is not set ++# CONFIG_KS8851_MLL is not set ++# CONFIG_KSZ884X_PCI is not set ++CONFIG_NET_VENDOR_MICROCHIP=y ++# CONFIG_ENC28J60 is not set ++# CONFIG_ENCX24J600 is not set ++# CONFIG_LAN743X is not set ++CONFIG_NET_VENDOR_MICROSEMI=y ++CONFIG_NET_VENDOR_MYRI=y ++# CONFIG_MYRI10GE is not set ++# CONFIG_FEALNX is not set ++CONFIG_NET_VENDOR_NATSEMI=y ++# CONFIG_NATSEMI is not set ++# CONFIG_NS83820 is not set ++CONFIG_NET_VENDOR_NETERION=y ++# CONFIG_S2IO is not set ++# CONFIG_VXGE is not set ++CONFIG_NET_VENDOR_NETRONOME=y ++# CONFIG_NFP is not set ++CONFIG_NET_VENDOR_NI=y ++# CONFIG_NI_XGE_MANAGEMENT_ENET is not set ++CONFIG_NET_VENDOR_8390=y ++# CONFIG_AX88796 is not set ++# CONFIG_NE2K_PCI is not set ++CONFIG_NET_VENDOR_NVIDIA=y ++# CONFIG_FORCEDETH is not set ++CONFIG_NET_VENDOR_OKI=y ++# CONFIG_ETHOC is not set ++CONFIG_NET_VENDOR_PACKET_ENGINES=y ++# CONFIG_HAMACHI is not set ++# CONFIG_YELLOWFIN is not set ++CONFIG_NET_VENDOR_QLOGIC=y ++# CONFIG_QLA3XXX is not set ++# CONFIG_QLCNIC is not set ++# CONFIG_QLGE is not set ++# CONFIG_NETXEN_NIC is not set ++# CONFIG_QED is not set ++CONFIG_NET_VENDOR_QUALCOMM=y ++# CONFIG_QCA7000_SPI is not set ++# CONFIG_QCOM_EMAC is not set ++# CONFIG_RMNET is not set ++CONFIG_NET_VENDOR_RDC=y ++# CONFIG_R6040 is not set ++CONFIG_NET_VENDOR_REALTEK=y ++# CONFIG_8139CP is not set ++# CONFIG_8139TOO is not set ++CONFIG_R8169=y ++CONFIG_NET_VENDOR_RENESAS=y ++CONFIG_NET_VENDOR_ROCKER=y ++CONFIG_NET_VENDOR_SAMSUNG=y ++# CONFIG_SXGBE_ETH is not set ++CONFIG_NET_VENDOR_SEEQ=y ++CONFIG_NET_VENDOR_SOLARFLARE=y ++# CONFIG_SFC is not set ++# CONFIG_SFC_FALCON is not set ++CONFIG_NET_VENDOR_SILAN=y ++# CONFIG_SC92031 is not set ++CONFIG_NET_VENDOR_SIS=y ++# CONFIG_SIS900 is not set ++# CONFIG_SIS190 is not set ++CONFIG_NET_VENDOR_SMSC=y ++# CONFIG_SMC91X is not set ++# CONFIG_EPIC100 is not set ++# CONFIG_SMC911X is not set ++# CONFIG_SMSC911X is not set ++# CONFIG_SMSC9420 is not set ++CONFIG_NET_VENDOR_SOCIONEXT=y ++CONFIG_NET_VENDOR_STMICRO=y ++CONFIG_STMMAC_ETH=y ++CONFIG_STMMAC_PLATFORM=y ++# CONFIG_DWMAC_DWC_QOS_ETH is not set ++CONFIG_DWMAC_GENERIC=y ++CONFIG_DWMAC_SOCFPGA=y ++# CONFIG_STMMAC_PCI is not set ++CONFIG_NET_VENDOR_SUN=y ++# CONFIG_HAPPYMEAL is not set ++# CONFIG_SUNGEM is not set ++# CONFIG_CASSINI is not set ++# CONFIG_NIU is not set ++CONFIG_NET_VENDOR_SYNOPSYS=y ++# CONFIG_DWC_XLGMAC is not set ++CONFIG_NET_VENDOR_TEHUTI=y ++# CONFIG_TEHUTI is not set ++CONFIG_NET_VENDOR_TI=y ++# CONFIG_TI_CPSW_ALE is not set ++# CONFIG_TLAN is not set ++CONFIG_NET_VENDOR_VIA=y ++# CONFIG_VIA_RHINE is not set ++# CONFIG_VIA_VELOCITY is not set ++CONFIG_NET_VENDOR_WIZNET=y ++# CONFIG_WIZNET_W5100 is not set ++# CONFIG_WIZNET_W5300 is not set ++CONFIG_NET_VENDOR_XILINX=y ++CONFIG_XILINX_EMACLITE=y ++# CONFIG_FDDI is not set ++# CONFIG_HIPPI is not set ++CONFIG_MDIO_DEVICE=y ++CONFIG_MDIO_BUS=y ++# CONFIG_MDIO_BCM_UNIMAC is not set ++CONFIG_MDIO_BITBANG=y ++# CONFIG_MDIO_BUS_MUX_GPIO is not set ++# CONFIG_MDIO_BUS_MUX_MMIOREG is not set ++# CONFIG_MDIO_GPIO is not set ++# CONFIG_MDIO_HISI_FEMAC is not set ++# CONFIG_MDIO_MSCC_MIIM is not set ++CONFIG_PHYLIB=y ++CONFIG_SWPHY=y ++# CONFIG_LED_TRIGGER_PHY is not set ++ ++# ++# MII PHY device drivers ++# ++# CONFIG_AMD_PHY is not set ++# CONFIG_AQUANTIA_PHY is not set ++# CONFIG_ASIX_PHY is not set ++# CONFIG_AT803X_PHY is not set ++# CONFIG_BCM7XXX_PHY is not set ++# CONFIG_BCM87XX_PHY is not set ++# CONFIG_BROADCOM_PHY is not set ++# CONFIG_CICADA_PHY is not set ++# CONFIG_CORTINA_PHY is not set ++# CONFIG_DAVICOM_PHY is not set ++# CONFIG_DP83822_PHY is not set ++# CONFIG_DP83TC811_PHY is not set ++# CONFIG_DP83848_PHY is not set ++# CONFIG_DP83867_PHY is not set ++CONFIG_FIXED_PHY=y ++# CONFIG_ICPLUS_PHY is not set ++# CONFIG_INTEL_XWAY_PHY is not set ++# CONFIG_LSI_ET1011C_PHY is not set ++# CONFIG_LXT_PHY is not set ++CONFIG_MARVELL_PHY=y ++# CONFIG_MARVELL_10G_PHY is not set ++CONFIG_MICREL_PHY=y ++CONFIG_MICROCHIP_PHY=m ++# CONFIG_MICROCHIP_T1_PHY is not set ++# CONFIG_MICROSEMI_PHY is not set ++# CONFIG_NATIONAL_PHY is not set ++# CONFIG_QSEMI_PHY is not set ++CONFIG_REALTEK_PHY=y ++# CONFIG_RENESAS_PHY is not set ++# CONFIG_ROCKCHIP_PHY is not set ++# CONFIG_SMSC_PHY is not set ++# CONFIG_STE10XP is not set ++# CONFIG_TERANETICS_PHY is not set ++CONFIG_VITESSE_PHY=y ++# CONFIG_XILINX_GMII2RGMII is not set ++# CONFIG_MICREL_KS8995MA is not set ++# CONFIG_PPP is not set ++# CONFIG_SLIP is not set ++CONFIG_USB_NET_DRIVERS=y ++CONFIG_USB_CATC=m ++CONFIG_USB_KAWETH=m ++CONFIG_USB_PEGASUS=m ++CONFIG_USB_RTL8150=m ++CONFIG_USB_RTL8152=m ++CONFIG_USB_LAN78XX=m ++CONFIG_USB_USBNET=m ++CONFIG_USB_NET_AX8817X=m ++CONFIG_USB_NET_AX88179_178A=m ++CONFIG_USB_NET_CDCETHER=m ++CONFIG_USB_NET_CDC_EEM=m ++CONFIG_USB_NET_CDC_NCM=m ++CONFIG_USB_NET_HUAWEI_CDC_NCM=m ++CONFIG_USB_NET_CDC_MBIM=m ++CONFIG_USB_NET_DM9601=m ++CONFIG_USB_NET_SR9700=m ++CONFIG_USB_NET_SR9800=m ++CONFIG_USB_NET_SMSC75XX=m ++CONFIG_USB_NET_SMSC95XX=m ++CONFIG_USB_NET_GL620A=m ++CONFIG_USB_NET_NET1080=m ++CONFIG_USB_NET_PLUSB=m ++CONFIG_USB_NET_MCS7830=m ++CONFIG_USB_NET_RNDIS_HOST=m ++CONFIG_USB_NET_CDC_SUBSET_ENABLE=m ++CONFIG_USB_NET_CDC_SUBSET=m ++CONFIG_USB_ALI_M5632=y ++CONFIG_USB_AN2720=y ++CONFIG_USB_BELKIN=y ++CONFIG_USB_ARMLINUX=y ++CONFIG_USB_EPSON2888=y ++CONFIG_USB_KC2190=y ++CONFIG_USB_NET_ZAURUS=m ++CONFIG_USB_NET_CX82310_ETH=m ++CONFIG_USB_NET_KALMIA=m ++CONFIG_USB_NET_QMI_WWAN=m ++CONFIG_USB_NET_INT51X1=m ++CONFIG_USB_IPHETH=m ++CONFIG_USB_SIERRA_NET=m ++CONFIG_USB_VL600=m ++CONFIG_USB_NET_CH9200=m ++CONFIG_WLAN=y ++# CONFIG_WIRELESS_WDS is not set ++CONFIG_WLAN_VENDOR_ADMTEK=y ++# CONFIG_ADM8211 is not set ++CONFIG_WLAN_VENDOR_ATH=y ++# CONFIG_ATH_DEBUG is not set ++# CONFIG_ATH_REG_DYNAMIC_USER_REG_HINTS is not set ++# CONFIG_ATH5K is not set ++# CONFIG_ATH5K_PCI is not set ++# CONFIG_ATH9K is not set ++# CONFIG_ATH9K_HTC is not set ++# CONFIG_CARL9170 is not set ++# CONFIG_ATH6KL is not set ++# CONFIG_AR5523 is not set ++# CONFIG_WIL6210 is not set ++# CONFIG_ATH10K is not set ++# CONFIG_WCN36XX is not set ++CONFIG_WLAN_VENDOR_ATMEL=y ++# CONFIG_ATMEL is not set ++# CONFIG_AT76C50X_USB is not set ++CONFIG_WLAN_VENDOR_BROADCOM=y ++# CONFIG_B43 is not set ++# CONFIG_B43LEGACY is not set ++# CONFIG_BRCMSMAC is not set ++# CONFIG_BRCMFMAC is not set ++CONFIG_WLAN_VENDOR_CISCO=y ++CONFIG_WLAN_VENDOR_INTEL=y ++# CONFIG_IPW2100 is not set ++# CONFIG_IPW2200 is not set ++# CONFIG_IWL4965 is not set ++# CONFIG_IWL3945 is not set ++# CONFIG_IWLWIFI is not set ++CONFIG_WLAN_VENDOR_INTERSIL=y ++# CONFIG_HOSTAP is not set ++# CONFIG_HERMES is not set ++# CONFIG_P54_COMMON is not set ++# CONFIG_PRISM54 is not set ++CONFIG_WLAN_VENDOR_MARVELL=y ++CONFIG_LIBERTAS=m ++CONFIG_LIBERTAS_USB=m ++CONFIG_LIBERTAS_SDIO=m ++CONFIG_LIBERTAS_SPI=m ++CONFIG_LIBERTAS_DEBUG=y ++CONFIG_LIBERTAS_MESH=y ++CONFIG_LIBERTAS_THINFIRM=m ++CONFIG_LIBERTAS_THINFIRM_DEBUG=y ++CONFIG_LIBERTAS_THINFIRM_USB=m ++CONFIG_MWIFIEX=m ++CONFIG_MWIFIEX_SDIO=m ++CONFIG_MWIFIEX_PCIE=m ++CONFIG_MWIFIEX_USB=m ++CONFIG_MWL8K=m ++CONFIG_WLAN_VENDOR_MEDIATEK=y ++CONFIG_MT7601U=m ++CONFIG_MT76_CORE=m ++CONFIG_MT76_LEDS=y ++CONFIG_MT76_USB=m ++CONFIG_MT76x2_COMMON=m ++CONFIG_MT76x0U=m ++CONFIG_MT76x2E=m ++CONFIG_MT76x2U=m ++CONFIG_WLAN_VENDOR_RALINK=y ++CONFIG_RT2X00=m ++# CONFIG_RT2400PCI is not set ++# CONFIG_RT2500PCI is not set ++# CONFIG_RT61PCI is not set ++# CONFIG_RT2800PCI is not set ++CONFIG_RT2500USB=m ++CONFIG_RT73USB=m ++CONFIG_RT2800USB=m ++CONFIG_RT2800USB_RT33XX=y ++CONFIG_RT2800USB_RT35XX=y ++CONFIG_RT2800USB_RT3573=y ++CONFIG_RT2800USB_RT53XX=y ++CONFIG_RT2800USB_RT55XX=y ++CONFIG_RT2800USB_UNKNOWN=y ++CONFIG_RT2800_LIB=m ++CONFIG_RT2X00_LIB_USB=m ++CONFIG_RT2X00_LIB=m ++CONFIG_RT2X00_LIB_FIRMWARE=y ++CONFIG_RT2X00_LIB_CRYPTO=y ++CONFIG_RT2X00_LIB_LEDS=y ++# CONFIG_RT2X00_LIB_DEBUGFS is not set ++# CONFIG_RT2X00_DEBUG is not set ++CONFIG_WLAN_VENDOR_REALTEK=y ++CONFIG_RTL8180=m ++CONFIG_RTL8187=m ++CONFIG_RTL8187_LEDS=y ++CONFIG_RTL_CARDS=m ++# CONFIG_RTL8192CE is not set ++# CONFIG_RTL8192SE is not set ++# CONFIG_RTL8192DE is not set ++# CONFIG_RTL8723AE is not set ++# CONFIG_RTL8723BE is not set ++# CONFIG_RTL8188EE is not set ++# CONFIG_RTL8192EE is not set ++# CONFIG_RTL8821AE is not set ++# CONFIG_RTL8192CU is not set ++CONFIG_RTL8XXXU=m ++CONFIG_RTL8XXXU_UNTESTED=y ++CONFIG_WLAN_VENDOR_RSI=y ++CONFIG_RSI_91X=m ++CONFIG_RSI_DEBUGFS=y ++CONFIG_RSI_SDIO=m ++CONFIG_RSI_USB=m ++CONFIG_WLAN_VENDOR_ST=y ++CONFIG_CW1200=m ++CONFIG_CW1200_WLAN_SDIO=m ++CONFIG_CW1200_WLAN_SPI=m ++CONFIG_WLAN_VENDOR_TI=y ++CONFIG_WL1251=m ++CONFIG_WL1251_SPI=m ++CONFIG_WL1251_SDIO=m ++CONFIG_WL12XX=m ++CONFIG_WL18XX=m ++CONFIG_WLCORE=m ++CONFIG_WLCORE_SPI=m ++CONFIG_WLCORE_SDIO=m ++CONFIG_WILINK_PLATFORM_DATA=y ++CONFIG_WLAN_VENDOR_ZYDAS=y ++CONFIG_USB_ZD1201=m ++CONFIG_ZD1211RW=m ++CONFIG_ZD1211RW_DEBUG=y ++CONFIG_WLAN_VENDOR_QUANTENNA=y ++# CONFIG_QTNFMAC_PEARL_PCIE is not set ++# CONFIG_MAC80211_HWSIM is not set ++CONFIG_USB_NET_RNDIS_WLAN=m ++ ++# ++# Enable WiMAX (Networking options) to see the WiMAX drivers ++# ++# CONFIG_WAN is not set ++# CONFIG_VMXNET3 is not set ++# CONFIG_NETDEVSIM is not set ++# CONFIG_NET_FAILOVER is not set ++# CONFIG_ISDN is not set ++# CONFIG_NVM is not set ++ ++# ++# Input device support ++# ++CONFIG_INPUT=y ++CONFIG_INPUT_LEDS=y ++# CONFIG_INPUT_FF_MEMLESS is not set ++CONFIG_INPUT_POLLDEV=y ++CONFIG_INPUT_SPARSEKMAP=y ++# CONFIG_INPUT_MATRIXKMAP is not set ++ ++# ++# Userland interfaces ++# ++CONFIG_INPUT_MOUSEDEV=y ++CONFIG_INPUT_MOUSEDEV_PSAUX=y ++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 ++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 ++# CONFIG_INPUT_JOYDEV is not set ++CONFIG_INPUT_EVDEV=y ++# CONFIG_INPUT_EVBUG is not set ++ ++# ++# Input Device Drivers ++# ++CONFIG_INPUT_KEYBOARD=y ++# CONFIG_KEYBOARD_ADC is not set ++# CONFIG_KEYBOARD_ADP5588 is not set ++# CONFIG_KEYBOARD_ADP5589 is not set ++CONFIG_KEYBOARD_ATKBD=y ++# CONFIG_KEYBOARD_QT1070 is not set ++# CONFIG_KEYBOARD_QT2160 is not set ++# CONFIG_KEYBOARD_DLINK_DIR685 is not set ++# CONFIG_KEYBOARD_LKKBD is not set ++CONFIG_KEYBOARD_GPIO=y ++CONFIG_KEYBOARD_GPIO_POLLED=y ++# CONFIG_KEYBOARD_TCA6416 is not set ++# CONFIG_KEYBOARD_TCA8418 is not set ++# CONFIG_KEYBOARD_MATRIX is not set ++# CONFIG_KEYBOARD_LM8323 is not set ++# CONFIG_KEYBOARD_LM8333 is not set ++# CONFIG_KEYBOARD_MAX7359 is not set ++# CONFIG_KEYBOARD_MCS is not set ++# CONFIG_KEYBOARD_MPR121 is not set ++# CONFIG_KEYBOARD_NEWTON is not set ++# CONFIG_KEYBOARD_OPENCORES is not set ++# CONFIG_KEYBOARD_SAMSUNG is not set ++# CONFIG_KEYBOARD_STOWAWAY is not set ++# CONFIG_KEYBOARD_SUNKBD is not set ++# CONFIG_KEYBOARD_OMAP4 is not set ++# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set ++# CONFIG_KEYBOARD_XTKBD is not set ++# CONFIG_KEYBOARD_CAP11XX is not set ++# CONFIG_KEYBOARD_BCM is not set ++CONFIG_INPUT_MOUSE=y ++CONFIG_MOUSE_PS2=y ++CONFIG_MOUSE_PS2_ALPS=y ++CONFIG_MOUSE_PS2_BYD=y ++CONFIG_MOUSE_PS2_LOGIPS2PP=y ++CONFIG_MOUSE_PS2_SYNAPTICS=y ++CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y ++CONFIG_MOUSE_PS2_CYPRESS=y ++CONFIG_MOUSE_PS2_TRACKPOINT=y ++# CONFIG_MOUSE_PS2_ELANTECH is not set ++# CONFIG_MOUSE_PS2_SENTELIC is not set ++# CONFIG_MOUSE_PS2_TOUCHKIT is not set ++CONFIG_MOUSE_PS2_FOCALTECH=y ++CONFIG_MOUSE_PS2_SMBUS=y ++# CONFIG_MOUSE_SERIAL is not set ++# CONFIG_MOUSE_APPLETOUCH is not set ++# CONFIG_MOUSE_BCM5974 is not set ++# CONFIG_MOUSE_CYAPA is not set ++# CONFIG_MOUSE_ELAN_I2C is not set ++# CONFIG_MOUSE_VSXXXAA is not set ++# CONFIG_MOUSE_GPIO is not set ++# CONFIG_MOUSE_SYNAPTICS_I2C is not set ++# CONFIG_MOUSE_SYNAPTICS_USB is not set ++# CONFIG_INPUT_JOYSTICK is not set ++# CONFIG_INPUT_TABLET is not set ++# CONFIG_INPUT_TOUCHSCREEN is not set ++# CONFIG_INPUT_MISC is not set ++# CONFIG_RMI4_CORE is not set ++ ++# ++# Hardware I/O ports ++# ++CONFIG_SERIO=y ++CONFIG_SERIO_SERPORT=y ++CONFIG_SERIO_AMBAKMI=y ++# CONFIG_SERIO_PCIPS2 is not set ++CONFIG_SERIO_LIBPS2=y ++# CONFIG_SERIO_RAW is not set ++# CONFIG_SERIO_ALTERA_PS2 is not set ++# CONFIG_SERIO_PS2MULT is not set ++# CONFIG_SERIO_ARC_PS2 is not set ++# CONFIG_SERIO_APBPS2 is not set ++# CONFIG_SERIO_GPIO_PS2 is not set ++# CONFIG_USERIO is not set ++# CONFIG_GAMEPORT is not set ++ ++# ++# Character devices ++# ++CONFIG_TTY=y ++CONFIG_VT=y ++CONFIG_CONSOLE_TRANSLATIONS=y ++CONFIG_VT_CONSOLE=y ++CONFIG_VT_CONSOLE_SLEEP=y ++CONFIG_HW_CONSOLE=y ++CONFIG_VT_HW_CONSOLE_BINDING=y ++CONFIG_UNIX98_PTYS=y ++CONFIG_LEGACY_PTYS=y ++CONFIG_LEGACY_PTY_COUNT=16 ++# CONFIG_SERIAL_NONSTANDARD is not set ++# CONFIG_NOZOMI is not set ++# CONFIG_N_GSM is not set ++# CONFIG_TRACE_SINK is not set ++CONFIG_LDISC_AUTOLOAD=y ++CONFIG_DEVMEM=y ++CONFIG_DEVKMEM=y ++ ++# ++# Serial drivers ++# ++CONFIG_SERIAL_EARLYCON=y ++CONFIG_SERIAL_8250=y ++CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y ++# CONFIG_SERIAL_8250_FINTEK is not set ++CONFIG_SERIAL_8250_CONSOLE=y ++CONFIG_SERIAL_8250_DMA=y ++CONFIG_SERIAL_8250_PCI=y ++CONFIG_SERIAL_8250_EXAR=y ++CONFIG_SERIAL_8250_NR_UARTS=2 ++CONFIG_SERIAL_8250_RUNTIME_UARTS=2 ++# CONFIG_SERIAL_8250_EXTENDED is not set ++# CONFIG_SERIAL_8250_ASPEED_VUART is not set ++CONFIG_SERIAL_8250_FSL=y ++CONFIG_SERIAL_8250_DW=y ++# CONFIG_SERIAL_8250_EM is not set ++# CONFIG_SERIAL_8250_RT288X is not set ++# CONFIG_SERIAL_8250_MOXA is not set ++# CONFIG_SERIAL_OF_PLATFORM is not set ++ ++# ++# Non-8250 serial port support ++# ++# CONFIG_SERIAL_AMBA_PL010 is not set ++# CONFIG_SERIAL_AMBA_PL011 is not set ++# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set ++# CONFIG_SERIAL_MAX3100 is not set ++# CONFIG_SERIAL_MAX310X is not set ++# CONFIG_SERIAL_UARTLITE is not set ++CONFIG_SERIAL_CORE=y ++CONFIG_SERIAL_CORE_CONSOLE=y ++# CONFIG_SERIAL_JSM is not set ++# CONFIG_SERIAL_SCCNXP is not set ++# CONFIG_SERIAL_SC16IS7XX is not set ++# CONFIG_SERIAL_BCM63XX is not set ++# CONFIG_SERIAL_ALTERA_JTAGUART is not set ++# CONFIG_SERIAL_ALTERA_UART is not set ++# CONFIG_SERIAL_IFX6X60 is not set ++CONFIG_SERIAL_XILINX_PS_UART=y ++CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y ++# CONFIG_SERIAL_ARC is not set ++# CONFIG_SERIAL_RP2 is not set ++# CONFIG_SERIAL_FSL_LPUART is not set ++# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set ++# CONFIG_SERIAL_ST_ASC is not set ++# CONFIG_SERIAL_DEV_BUS is not set ++# CONFIG_TTY_PRINTK is not set ++# CONFIG_HVC_DCC is not set ++# CONFIG_IPMI_HANDLER is not set ++CONFIG_HW_RANDOM=m ++# CONFIG_HW_RANDOM_TIMERIOMEM is not set ++# CONFIG_APPLICOM is not set ++# CONFIG_RAW_DRIVER is not set ++# CONFIG_TCG_TPM is not set ++CONFIG_DEVPORT=y ++CONFIG_XILLYBUS=m ++# CONFIG_XILLYBUS_PCIE is not set ++# CONFIG_XILLYBUS_OF is not set ++ ++# ++# I2C support ++# ++CONFIG_I2C=y ++CONFIG_I2C_BOARDINFO=y ++CONFIG_I2C_COMPAT=y ++CONFIG_I2C_CHARDEV=y ++CONFIG_I2C_MUX=y ++ ++# ++# Multiplexer I2C Chip support ++# ++# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set ++# CONFIG_I2C_MUX_GPIO is not set ++# CONFIG_I2C_MUX_GPMUX is not set ++# CONFIG_I2C_MUX_LTC4306 is not set ++# CONFIG_I2C_MUX_PCA9541 is not set ++CONFIG_I2C_MUX_PCA954x=y ++# CONFIG_I2C_MUX_PINCTRL is not set ++# CONFIG_I2C_MUX_REG is not set ++# CONFIG_I2C_DEMUX_PINCTRL is not set ++# CONFIG_I2C_MUX_MLXCPLD is not set ++CONFIG_I2C_HELPER_AUTO=y ++CONFIG_I2C_ALGOBIT=y ++ ++# ++# I2C Hardware Bus support ++# ++ ++# ++# PC SMBus host controller drivers ++# ++# CONFIG_I2C_ALI1535 is not set ++# CONFIG_I2C_ALI1563 is not set ++# CONFIG_I2C_ALI15X3 is not set ++# CONFIG_I2C_AMD756 is not set ++# CONFIG_I2C_AMD8111 is not set ++# CONFIG_I2C_I801 is not set ++# CONFIG_I2C_ISCH is not set ++# CONFIG_I2C_PIIX4 is not set ++# CONFIG_I2C_NFORCE2 is not set ++# CONFIG_I2C_SIS5595 is not set ++# CONFIG_I2C_SIS630 is not set ++# CONFIG_I2C_SIS96X is not set ++# CONFIG_I2C_VIA is not set ++# CONFIG_I2C_VIAPRO is not set ++ ++# ++# I2C system bus drivers (mostly embedded / system-on-chip) ++# ++# CONFIG_I2C_ALTERA is not set ++CONFIG_I2C_CADENCE=y ++# CONFIG_I2C_CBUS_GPIO is not set ++CONFIG_I2C_DESIGNWARE_CORE=y ++CONFIG_I2C_DESIGNWARE_PLATFORM=y ++# CONFIG_I2C_DESIGNWARE_SLAVE is not set ++# CONFIG_I2C_DESIGNWARE_PCI is not set ++# CONFIG_I2C_EMEV2 is not set ++# CONFIG_I2C_GPIO is not set ++# CONFIG_I2C_NOMADIK is not set ++# CONFIG_I2C_OCORES is not set ++# CONFIG_I2C_PCA_PLATFORM is not set ++# CONFIG_I2C_RK3X is not set ++# CONFIG_I2C_SIMTEC is not set ++# CONFIG_I2C_VERSATILE is not set ++# CONFIG_I2C_XILINX is not set ++ ++# ++# External I2C/SMBus adapter drivers ++# ++# CONFIG_I2C_DIOLAN_U2C is not set ++# CONFIG_I2C_PARPORT_LIGHT is not set ++# CONFIG_I2C_ROBOTFUZZ_OSIF is not set ++# CONFIG_I2C_TAOS_EVM is not set ++# CONFIG_I2C_TINY_USB is not set ++ ++# ++# Other I2C/SMBus bus drivers ++# ++# CONFIG_I2C_STUB is not set ++# CONFIG_I2C_SLAVE is not set ++# CONFIG_I2C_DEBUG_CORE is not set ++# CONFIG_I2C_DEBUG_ALGO is not set ++# CONFIG_I2C_DEBUG_BUS is not set ++CONFIG_SPI=y ++# CONFIG_SPI_DEBUG is not set ++CONFIG_SPI_MASTER=y ++CONFIG_SPI_MEM=y ++ ++# ++# SPI Master Controller Drivers ++# ++# CONFIG_SPI_ALTERA is not set ++# CONFIG_SPI_AXI_SPI_ENGINE is not set ++CONFIG_SPI_BITBANG=y ++CONFIG_SPI_CADENCE=y ++# CONFIG_SPI_DESIGNWARE is not set ++# CONFIG_SPI_GPIO is not set ++# CONFIG_SPI_FSL_SPI is not set ++# CONFIG_SPI_OC_TINY is not set ++# CONFIG_SPI_PL022 is not set ++# CONFIG_SPI_PXA2XX is not set ++# CONFIG_SPI_ROCKCHIP is not set ++# CONFIG_SPI_SC18IS602 is not set ++# CONFIG_SPI_XCOMM is not set ++CONFIG_SPI_XILINX=y ++# CONFIG_SPI_ZYNQMP_GQSPI is not set ++ ++# ++# SPI Protocol Masters ++# ++# CONFIG_SPI_SPIDEV is not set ++# CONFIG_SPI_LOOPBACK_TEST is not set ++# CONFIG_SPI_TLE62X0 is not set ++# CONFIG_SPI_SLAVE is not set ++# CONFIG_SPMI is not set ++# CONFIG_HSI is not set ++CONFIG_PPS=y ++# CONFIG_PPS_DEBUG is not set ++ ++# ++# PPS clients support ++# ++# CONFIG_PPS_CLIENT_KTIMER is not set ++# CONFIG_PPS_CLIENT_LDISC is not set ++# CONFIG_PPS_CLIENT_GPIO is not set ++ ++# ++# PPS generators support ++# ++ ++# ++# PTP clock support ++# ++CONFIG_PTP_1588_CLOCK=y ++# CONFIG_DP83640_PHY is not set ++CONFIG_PINCTRL=y ++CONFIG_PINMUX=y ++CONFIG_PINCONF=y ++CONFIG_GENERIC_PINCONF=y ++# CONFIG_DEBUG_PINCTRL is not set ++# CONFIG_PINCTRL_AMD is not set ++# CONFIG_PINCTRL_MCP23S08 is not set ++# CONFIG_PINCTRL_SINGLE is not set ++# CONFIG_PINCTRL_SX150X is not set ++CONFIG_PINCTRL_ZYNQ=y ++CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y ++CONFIG_GPIOLIB=y ++CONFIG_GPIOLIB_FASTPATH_LIMIT=512 ++CONFIG_OF_GPIO=y ++CONFIG_GPIOLIB_IRQCHIP=y ++# CONFIG_DEBUG_GPIO is not set ++CONFIG_GPIO_SYSFS=y ++CONFIG_GPIO_GENERIC=y ++ ++# ++# Memory mapped GPIO drivers ++# ++# CONFIG_GPIO_74XX_MMIO is not set ++# CONFIG_GPIO_ALTERA is not set ++CONFIG_GPIO_DWAPB=y ++# CONFIG_GPIO_EXAR is not set ++# CONFIG_GPIO_FTGPIO010 is not set ++CONFIG_GPIO_GENERIC_PLATFORM=y ++# CONFIG_GPIO_GRGPIO is not set ++# CONFIG_GPIO_HLWD is not set ++# CONFIG_GPIO_MB86S7X is not set ++# CONFIG_GPIO_MOCKUP is not set ++# CONFIG_GPIO_MPC8XXX is not set ++CONFIG_GPIO_PL061=y ++# CONFIG_GPIO_SYSCON is not set ++# CONFIG_GPIO_XILINX is not set ++# CONFIG_GPIO_ZEVIO is not set ++CONFIG_GPIO_ZYNQ=y ++ ++# ++# I2C GPIO expanders ++# ++# CONFIG_GPIO_ADP5588 is not set ++# CONFIG_GPIO_ADNP is not set ++# CONFIG_GPIO_MAX7300 is not set ++# CONFIG_GPIO_MAX732X is not set ++# CONFIG_GPIO_PCA953X is not set ++# CONFIG_GPIO_PCF857X is not set ++# CONFIG_GPIO_TPIC2810 is not set ++ ++# ++# MFD GPIO expanders ++# ++# CONFIG_HTC_EGPIO is not set ++ ++# ++# PCI GPIO expanders ++# ++# CONFIG_GPIO_BT8XX is not set ++# CONFIG_GPIO_PCI_IDIO_16 is not set ++# CONFIG_GPIO_PCIE_IDIO_24 is not set ++# CONFIG_GPIO_RDC321X is not set ++ ++# ++# SPI GPIO expanders ++# ++# CONFIG_GPIO_74X164 is not set ++# CONFIG_GPIO_MAX3191X is not set ++# CONFIG_GPIO_MAX7301 is not set ++# CONFIG_GPIO_MC33880 is not set ++# CONFIG_GPIO_PISOSR is not set ++# CONFIG_GPIO_XRA1403 is not set ++ ++# ++# USB GPIO expanders ++# ++# CONFIG_W1 is not set ++# CONFIG_POWER_AVS is not set ++CONFIG_POWER_RESET=y ++# CONFIG_POWER_RESET_BRCMKONA is not set ++# CONFIG_POWER_RESET_BRCMSTB is not set ++# CONFIG_POWER_RESET_GPIO is not set ++# CONFIG_POWER_RESET_GPIO_RESTART is not set ++# CONFIG_POWER_RESET_LTC2952 is not set ++# CONFIG_POWER_RESET_RESTART is not set ++# CONFIG_POWER_RESET_VERSATILE is not set ++CONFIG_POWER_RESET_VEXPRESS=y ++# CONFIG_POWER_RESET_SYSCON is not set ++# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set ++# CONFIG_SYSCON_REBOOT_MODE is not set ++CONFIG_POWER_SUPPLY=y ++# CONFIG_POWER_SUPPLY_DEBUG is not set ++# CONFIG_PDA_POWER is not set ++# CONFIG_GENERIC_ADC_BATTERY is not set ++# CONFIG_TEST_POWER is not set ++# CONFIG_CHARGER_ADP5061 is not set ++# CONFIG_BATTERY_DS2780 is not set ++# CONFIG_BATTERY_DS2781 is not set ++# CONFIG_BATTERY_DS2782 is not set ++# CONFIG_BATTERY_LEGO_EV3 is not set ++# CONFIG_BATTERY_SBS is not set ++# CONFIG_CHARGER_SBS is not set ++# CONFIG_MANAGER_SBS is not set ++# CONFIG_BATTERY_BQ27XXX is not set ++# CONFIG_BATTERY_MAX17040 is not set ++# CONFIG_BATTERY_MAX17042 is not set ++# CONFIG_CHARGER_ISP1704 is not set ++# CONFIG_CHARGER_MAX8903 is not set ++# CONFIG_CHARGER_LP8727 is not set ++# CONFIG_CHARGER_GPIO is not set ++# CONFIG_CHARGER_MANAGER is not set ++# CONFIG_CHARGER_LTC3651 is not set ++# CONFIG_CHARGER_DETECTOR_MAX14656 is not set ++# CONFIG_CHARGER_BQ2415X is not set ++# CONFIG_CHARGER_BQ24190 is not set ++# CONFIG_CHARGER_BQ24257 is not set ++# CONFIG_CHARGER_BQ24735 is not set ++# CONFIG_CHARGER_BQ25890 is not set ++# CONFIG_CHARGER_SMB347 is not set ++# CONFIG_BATTERY_GAUGE_LTC2941 is not set ++# CONFIG_CHARGER_RT9455 is not set ++CONFIG_HWMON=y ++# CONFIG_HWMON_DEBUG_CHIP is not set ++ ++# ++# Native drivers ++# ++# CONFIG_SENSORS_AD7314 is not set ++# CONFIG_SENSORS_AD7414 is not set ++# CONFIG_SENSORS_AD7418 is not set ++# CONFIG_SENSORS_ADM1021 is not set ++# CONFIG_SENSORS_ADM1025 is not set ++# CONFIG_SENSORS_ADM1026 is not set ++# CONFIG_SENSORS_ADM1029 is not set ++# CONFIG_SENSORS_ADM1031 is not set ++# CONFIG_SENSORS_ADM9240 is not set ++# CONFIG_SENSORS_ADT7310 is not set ++# CONFIG_SENSORS_ADT7410 is not set ++# CONFIG_SENSORS_ADT7411 is not set ++# CONFIG_SENSORS_ADT7462 is not set ++# CONFIG_SENSORS_ADT7470 is not set ++# CONFIG_SENSORS_ADT7475 is not set ++# CONFIG_SENSORS_ASC7621 is not set ++# CONFIG_SENSORS_ASPEED is not set ++# CONFIG_SENSORS_ATXP1 is not set ++# CONFIG_SENSORS_DS620 is not set ++# CONFIG_SENSORS_DS1621 is not set ++# CONFIG_SENSORS_I5K_AMB is not set ++# CONFIG_SENSORS_F71805F is not set ++# CONFIG_SENSORS_F71882FG is not set ++# CONFIG_SENSORS_F75375S is not set ++# CONFIG_SENSORS_FTSTEUTATES is not set ++# CONFIG_SENSORS_GL518SM is not set ++# CONFIG_SENSORS_GL520SM is not set ++# CONFIG_SENSORS_G760A is not set ++# CONFIG_SENSORS_G762 is not set ++# CONFIG_SENSORS_GPIO_FAN is not set ++# CONFIG_SENSORS_HIH6130 is not set ++# CONFIG_SENSORS_IIO_HWMON is not set ++# CONFIG_SENSORS_IT87 is not set ++# CONFIG_SENSORS_JC42 is not set ++# CONFIG_SENSORS_POWR1220 is not set ++# CONFIG_SENSORS_LINEAGE is not set ++# CONFIG_SENSORS_LTC2945 is not set ++# CONFIG_SENSORS_LTC2990 is not set ++# CONFIG_SENSORS_LTC4151 is not set ++# CONFIG_SENSORS_LTC4215 is not set ++# CONFIG_SENSORS_LTC4222 is not set ++# CONFIG_SENSORS_LTC4245 is not set ++# CONFIG_SENSORS_LTC4260 is not set ++# CONFIG_SENSORS_LTC4261 is not set ++# CONFIG_SENSORS_MAX1111 is not set ++# CONFIG_SENSORS_MAX16065 is not set ++# CONFIG_SENSORS_MAX1619 is not set ++# CONFIG_SENSORS_MAX1668 is not set ++# CONFIG_SENSORS_MAX197 is not set ++# CONFIG_SENSORS_MAX31722 is not set ++# CONFIG_SENSORS_MAX6621 is not set ++# CONFIG_SENSORS_MAX6639 is not set ++# CONFIG_SENSORS_MAX6642 is not set ++# CONFIG_SENSORS_MAX6650 is not set ++# CONFIG_SENSORS_MAX6697 is not set ++# CONFIG_SENSORS_MAX31790 is not set ++# CONFIG_SENSORS_MCP3021 is not set ++# CONFIG_SENSORS_TC654 is not set ++# CONFIG_SENSORS_ADCXX is not set ++# CONFIG_SENSORS_LM63 is not set ++# CONFIG_SENSORS_LM70 is not set ++# CONFIG_SENSORS_LM73 is not set ++# CONFIG_SENSORS_LM75 is not set ++# CONFIG_SENSORS_LM77 is not set ++# CONFIG_SENSORS_LM78 is not set ++# CONFIG_SENSORS_LM80 is not set ++# CONFIG_SENSORS_LM83 is not set ++# CONFIG_SENSORS_LM85 is not set ++# CONFIG_SENSORS_LM87 is not set ++# CONFIG_SENSORS_LM90 is not set ++# CONFIG_SENSORS_LM92 is not set ++# CONFIG_SENSORS_LM93 is not set ++# CONFIG_SENSORS_LM95234 is not set ++# CONFIG_SENSORS_LM95241 is not set ++# CONFIG_SENSORS_LM95245 is not set ++# CONFIG_SENSORS_PC87360 is not set ++# CONFIG_SENSORS_PC87427 is not set ++# CONFIG_SENSORS_NTC_THERMISTOR is not set ++# CONFIG_SENSORS_NCT6683 is not set ++# CONFIG_SENSORS_NCT6775 is not set ++# CONFIG_SENSORS_NCT7802 is not set ++# CONFIG_SENSORS_NCT7904 is not set ++# CONFIG_SENSORS_NPCM7XX is not set ++# CONFIG_SENSORS_PCF8591 is not set ++CONFIG_PMBUS=y ++CONFIG_SENSORS_PMBUS=y ++# CONFIG_SENSORS_ADM1275 is not set ++# CONFIG_SENSORS_IBM_CFFPS is not set ++# CONFIG_SENSORS_IR35221 is not set ++# CONFIG_SENSORS_LM25066 is not set ++CONFIG_SENSORS_LTC2978=y ++CONFIG_SENSORS_LTC2978_REGULATOR=y ++# CONFIG_SENSORS_LTC3815 is not set ++# CONFIG_SENSORS_MAX16064 is not set ++# CONFIG_SENSORS_MAX20751 is not set ++# CONFIG_SENSORS_MAX31785 is not set ++# CONFIG_SENSORS_MAX34440 is not set ++# CONFIG_SENSORS_MAX8688 is not set ++# CONFIG_SENSORS_TPS40422 is not set ++# CONFIG_SENSORS_TPS53679 is not set ++CONFIG_SENSORS_UCD9000=y ++CONFIG_SENSORS_UCD9200=y ++# CONFIG_SENSORS_ZL6100 is not set ++# CONFIG_SENSORS_SHT15 is not set ++# CONFIG_SENSORS_SHT21 is not set ++# CONFIG_SENSORS_SHT3x is not set ++# CONFIG_SENSORS_SHTC1 is not set ++# CONFIG_SENSORS_SIS5595 is not set ++# CONFIG_SENSORS_DME1737 is not set ++# CONFIG_SENSORS_EMC1403 is not set ++# CONFIG_SENSORS_EMC2103 is not set ++# CONFIG_SENSORS_EMC6W201 is not set ++# CONFIG_SENSORS_SMSC47M1 is not set ++# CONFIG_SENSORS_SMSC47M192 is not set ++# CONFIG_SENSORS_SMSC47B397 is not set ++# CONFIG_SENSORS_SCH5627 is not set ++# CONFIG_SENSORS_SCH5636 is not set ++# CONFIG_SENSORS_STTS751 is not set ++# CONFIG_SENSORS_SMM665 is not set ++# CONFIG_SENSORS_ADC128D818 is not set ++# CONFIG_SENSORS_ADS1015 is not set ++# CONFIG_SENSORS_ADS7828 is not set ++# CONFIG_SENSORS_ADS7871 is not set ++# CONFIG_SENSORS_AMC6821 is not set ++# CONFIG_SENSORS_INA209 is not set ++# CONFIG_SENSORS_INA2XX is not set ++# CONFIG_SENSORS_INA3221 is not set ++# CONFIG_SENSORS_TC74 is not set ++# CONFIG_SENSORS_THMC50 is not set ++# CONFIG_SENSORS_TMP102 is not set ++# CONFIG_SENSORS_TMP103 is not set ++# CONFIG_SENSORS_TMP108 is not set ++# CONFIG_SENSORS_TMP401 is not set ++# CONFIG_SENSORS_TMP421 is not set ++# CONFIG_SENSORS_VEXPRESS is not set ++# CONFIG_SENSORS_VIA686A is not set ++# CONFIG_SENSORS_VT1211 is not set ++# CONFIG_SENSORS_VT8231 is not set ++# CONFIG_SENSORS_W83773G is not set ++# CONFIG_SENSORS_W83781D is not set ++# CONFIG_SENSORS_W83791D is not set ++# CONFIG_SENSORS_W83792D is not set ++# CONFIG_SENSORS_W83793 is not set ++# CONFIG_SENSORS_W83795 is not set ++# CONFIG_SENSORS_W83L785TS is not set ++# CONFIG_SENSORS_W83L786NG is not set ++# CONFIG_SENSORS_W83627HF is not set ++# CONFIG_SENSORS_W83627EHF is not set ++CONFIG_THERMAL=y ++# CONFIG_THERMAL_STATISTICS is not set ++CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 ++CONFIG_THERMAL_HWMON=y ++CONFIG_THERMAL_OF=y ++# CONFIG_THERMAL_WRITABLE_TRIPS is not set ++CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y ++# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set ++# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set ++# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set ++# CONFIG_THERMAL_GOV_FAIR_SHARE is not set ++CONFIG_THERMAL_GOV_STEP_WISE=y ++# CONFIG_THERMAL_GOV_BANG_BANG is not set ++# CONFIG_THERMAL_GOV_USER_SPACE is not set ++# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set ++CONFIG_CPU_THERMAL=y ++# CONFIG_THERMAL_EMULATION is not set ++# CONFIG_QORIQ_THERMAL is not set ++ ++# ++# ACPI INT340X thermal drivers ++# ++# CONFIG_GENERIC_ADC_THERMAL is not set ++CONFIG_WATCHDOG=y ++CONFIG_WATCHDOG_CORE=y ++# CONFIG_WATCHDOG_NOWAYOUT is not set ++CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y ++# CONFIG_WATCHDOG_SYSFS is not set ++ ++# ++# Watchdog Device Drivers ++# ++# CONFIG_SOFT_WATCHDOG is not set ++# CONFIG_GPIO_WATCHDOG is not set ++CONFIG_XILINX_WATCHDOG=y ++# CONFIG_ZIIRAVE_WATCHDOG is not set ++# CONFIG_ARM_SP805_WATCHDOG is not set ++CONFIG_CADENCE_WATCHDOG=y ++# CONFIG_FTWDT010_WATCHDOG is not set ++CONFIG_DW_WATCHDOG=y ++# CONFIG_MAX63XX_WATCHDOG is not set ++# CONFIG_ALIM7101_WDT is not set ++# CONFIG_I6300ESB_WDT is not set ++# CONFIG_MEN_A21_WDT is not set ++ ++# ++# PCI-based Watchdog Cards ++# ++# CONFIG_PCIPCWATCHDOG is not set ++# CONFIG_WDTPCI is not set ++ ++# ++# USB-based Watchdog Cards ++# ++# CONFIG_USBPCWATCHDOG is not set ++ ++# ++# Watchdog Pretimeout Governors ++# ++# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set ++CONFIG_SSB_POSSIBLE=y ++# CONFIG_SSB is not set ++CONFIG_BCMA_POSSIBLE=y ++# CONFIG_BCMA is not set ++ ++# ++# Multifunction device drivers ++# ++CONFIG_MFD_CORE=y ++# CONFIG_MFD_ALTERA_A10SR is not set ++# CONFIG_MFD_ACT8945A is not set ++# CONFIG_MFD_AS3711 is not set ++# CONFIG_MFD_AS3722 is not set ++# CONFIG_PMIC_ADP5520 is not set ++# CONFIG_MFD_AAT2870_CORE is not set ++# CONFIG_MFD_ATMEL_FLEXCOM is not set ++# CONFIG_MFD_ATMEL_HLCDC is not set ++# CONFIG_MFD_BCM590XX is not set ++# CONFIG_MFD_BD9571MWV is not set ++# CONFIG_MFD_AXP20X_I2C is not set ++# CONFIG_MFD_CROS_EC is not set ++# CONFIG_MFD_MADERA is not set ++# CONFIG_MFD_ASIC3 is not set ++# CONFIG_PMIC_DA903X is not set ++# CONFIG_MFD_DA9052_SPI is not set ++# CONFIG_MFD_DA9052_I2C is not set ++# CONFIG_MFD_DA9055 is not set ++# CONFIG_MFD_DA9062 is not set ++# CONFIG_MFD_DA9063 is not set ++# CONFIG_MFD_DA9150 is not set ++# CONFIG_MFD_DLN2 is not set ++# CONFIG_MFD_MC13XXX_SPI is not set ++# CONFIG_MFD_MC13XXX_I2C is not set ++# CONFIG_MFD_HI6421_PMIC is not set ++# CONFIG_HTC_PASIC3 is not set ++# CONFIG_HTC_I2CPLD is not set ++# CONFIG_LPC_ICH is not set ++# CONFIG_LPC_SCH is not set ++# CONFIG_MFD_JANZ_CMODIO is not set ++# CONFIG_MFD_KEMPLD is not set ++# CONFIG_MFD_88PM800 is not set ++# CONFIG_MFD_88PM805 is not set ++# CONFIG_MFD_88PM860X is not set ++# CONFIG_MFD_MAX14577 is not set ++# CONFIG_MFD_MAX77620 is not set ++# CONFIG_MFD_MAX77686 is not set ++# CONFIG_MFD_MAX77693 is not set ++# CONFIG_MFD_MAX77843 is not set ++# CONFIG_MFD_MAX8907 is not set ++# CONFIG_MFD_MAX8925 is not set ++# CONFIG_MFD_MAX8997 is not set ++# CONFIG_MFD_MAX8998 is not set ++# CONFIG_MFD_MT6397 is not set ++# CONFIG_MFD_MENF21BMC is not set ++# CONFIG_EZX_PCAP is not set ++# CONFIG_MFD_CPCAP is not set ++# CONFIG_MFD_VIPERBOARD is not set ++# CONFIG_MFD_RETU is not set ++# CONFIG_MFD_PCF50633 is not set ++# CONFIG_MFD_PM8XXX is not set ++# CONFIG_MFD_RDC321X is not set ++# CONFIG_MFD_RT5033 is not set ++# CONFIG_MFD_RC5T583 is not set ++# CONFIG_MFD_RK808 is not set ++# CONFIG_MFD_RN5T618 is not set ++# CONFIG_MFD_SEC_CORE is not set ++# CONFIG_MFD_SI476X_CORE is not set ++# CONFIG_MFD_SM501 is not set ++# CONFIG_MFD_SKY81452 is not set ++# CONFIG_MFD_SMSC is not set ++# CONFIG_ABX500_CORE is not set ++# CONFIG_MFD_STMPE is not set ++CONFIG_MFD_SYSCON=y ++# CONFIG_MFD_TI_AM335X_TSCADC is not set ++# CONFIG_MFD_LP3943 is not set ++# CONFIG_MFD_LP8788 is not set ++# CONFIG_MFD_TI_LMU is not set ++# CONFIG_MFD_PALMAS is not set ++# CONFIG_TPS6105X is not set ++# CONFIG_TPS65010 is not set ++# CONFIG_TPS6507X is not set ++# CONFIG_MFD_TPS65086 is not set ++# CONFIG_MFD_TPS65090 is not set ++# CONFIG_MFD_TPS65217 is not set ++# CONFIG_MFD_TI_LP873X is not set ++# CONFIG_MFD_TI_LP87565 is not set ++# CONFIG_MFD_TPS65218 is not set ++# CONFIG_MFD_TPS6586X is not set ++# CONFIG_MFD_TPS65910 is not set ++# CONFIG_MFD_TPS65912_I2C is not set ++# CONFIG_MFD_TPS65912_SPI is not set ++# CONFIG_MFD_TPS80031 is not set ++# CONFIG_TWL4030_CORE is not set ++# CONFIG_TWL6040_CORE is not set ++# CONFIG_MFD_WL1273_CORE is not set ++# CONFIG_MFD_LM3533 is not set ++# CONFIG_MFD_TC3589X is not set ++# CONFIG_MFD_T7L66XB is not set ++# CONFIG_MFD_TC6387XB is not set ++# CONFIG_MFD_TC6393XB is not set ++# CONFIG_MFD_VX855 is not set ++# CONFIG_MFD_ARIZONA_I2C is not set ++# CONFIG_MFD_ARIZONA_SPI is not set ++# CONFIG_MFD_WM8400 is not set ++# CONFIG_MFD_WM831X_I2C is not set ++# CONFIG_MFD_WM831X_SPI is not set ++# CONFIG_MFD_WM8350_I2C is not set ++# CONFIG_MFD_WM8994 is not set ++# CONFIG_MFD_ROHM_BD718XX is not set ++CONFIG_MFD_VEXPRESS_SYSREG=y ++CONFIG_REGULATOR=y ++# CONFIG_REGULATOR_DEBUG is not set ++CONFIG_REGULATOR_FIXED_VOLTAGE=y ++# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set ++# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set ++# CONFIG_REGULATOR_88PG86X is not set ++# CONFIG_REGULATOR_ACT8865 is not set ++# CONFIG_REGULATOR_AD5398 is not set ++# CONFIG_REGULATOR_ANATOP is not set ++# CONFIG_REGULATOR_DA9210 is not set ++# CONFIG_REGULATOR_DA9211 is not set ++# CONFIG_REGULATOR_FAN53555 is not set ++# CONFIG_REGULATOR_GPIO is not set ++# CONFIG_REGULATOR_ISL9305 is not set ++# CONFIG_REGULATOR_ISL6271A is not set ++# CONFIG_REGULATOR_LP3971 is not set ++# CONFIG_REGULATOR_LP3972 is not set ++# CONFIG_REGULATOR_LP872X is not set ++# CONFIG_REGULATOR_LP8755 is not set ++# CONFIG_REGULATOR_LTC3589 is not set ++# CONFIG_REGULATOR_LTC3676 is not set ++# CONFIG_REGULATOR_MAX1586 is not set ++# CONFIG_REGULATOR_MAX8649 is not set ++# CONFIG_REGULATOR_MAX8660 is not set ++# CONFIG_REGULATOR_MAX8952 is not set ++# CONFIG_REGULATOR_MAX8973 is not set ++# CONFIG_REGULATOR_MT6311 is not set ++# CONFIG_REGULATOR_PFUZE100 is not set ++# CONFIG_REGULATOR_PV88060 is not set ++# CONFIG_REGULATOR_PV88080 is not set ++# CONFIG_REGULATOR_PV88090 is not set ++# CONFIG_REGULATOR_SY8106A is not set ++# CONFIG_REGULATOR_TPS51632 is not set ++# CONFIG_REGULATOR_TPS62360 is not set ++# CONFIG_REGULATOR_TPS65023 is not set ++# CONFIG_REGULATOR_TPS6507X is not set ++# CONFIG_REGULATOR_TPS65132 is not set ++# CONFIG_REGULATOR_TPS6524X is not set ++# CONFIG_REGULATOR_VCTRL is not set ++# CONFIG_REGULATOR_VEXPRESS is not set ++# CONFIG_RC_CORE is not set ++CONFIG_MEDIA_SUPPORT=y ++ ++# ++# Multimedia core support ++# ++CONFIG_MEDIA_CAMERA_SUPPORT=y ++# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set ++# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set ++# CONFIG_MEDIA_RADIO_SUPPORT is not set ++# CONFIG_MEDIA_SDR_SUPPORT is not set ++# CONFIG_MEDIA_CEC_SUPPORT is not set ++CONFIG_MEDIA_CONTROLLER=y ++CONFIG_VIDEO_DEV=y ++CONFIG_VIDEO_V4L2_SUBDEV_API=y ++CONFIG_VIDEO_V4L2=y ++# CONFIG_VIDEO_ADV_DEBUG is not set ++# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set ++# CONFIG_VIDEO_PCI_SKELETON is not set ++CONFIG_V4L2_FWNODE=y ++ ++# ++# Media drivers ++# ++# CONFIG_MEDIA_USB_SUPPORT is not set ++# CONFIG_MEDIA_PCI_SUPPORT is not set ++CONFIG_V4L_PLATFORM_DRIVERS=y ++# CONFIG_VIDEO_CAFE_CCIC is not set ++# CONFIG_VIDEO_CADENCE is not set ++# CONFIG_VIDEO_MUX is not set ++# CONFIG_SOC_CAMERA is not set ++CONFIG_VIDEO_XILINX=y ++CONFIG_VIDEO_XILINX_TPG=y ++CONFIG_VIDEO_XILINX_VTC=y ++# CONFIG_V4L_MEM2MEM_DRIVERS is not set ++# CONFIG_V4L_TEST_DRIVERS is not set ++ ++# ++# Supported MMC/SDIO adapters ++# ++# CONFIG_CYPRESS_FIRMWARE is not set ++CONFIG_VIDEOBUF2_CORE=y ++CONFIG_VIDEOBUF2_V4L2=y ++CONFIG_VIDEOBUF2_MEMOPS=y ++CONFIG_VIDEOBUF2_DMA_CONTIG=y ++ ++# ++# Media ancillary drivers (tuners, sensors, i2c, spi, frontends) ++# ++# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set ++ ++# ++# I2C Encoders, decoders, sensors and other helper chips ++# ++ ++# ++# Audio decoders, processors and mixers ++# ++# CONFIG_VIDEO_TVAUDIO is not set ++# CONFIG_VIDEO_TDA7432 is not set ++# CONFIG_VIDEO_TDA9840 is not set ++# CONFIG_VIDEO_TDA1997X is not set ++# CONFIG_VIDEO_TEA6415C is not set ++# CONFIG_VIDEO_TEA6420 is not set ++# CONFIG_VIDEO_MSP3400 is not set ++# CONFIG_VIDEO_CS3308 is not set ++# CONFIG_VIDEO_CS5345 is not set ++# CONFIG_VIDEO_CS53L32A is not set ++# CONFIG_VIDEO_TLV320AIC23B is not set ++# CONFIG_VIDEO_UDA1342 is not set ++# CONFIG_VIDEO_WM8775 is not set ++# CONFIG_VIDEO_WM8739 is not set ++# CONFIG_VIDEO_VP27SMPX is not set ++# CONFIG_VIDEO_SONY_BTF_MPX is not set ++ ++# ++# RDS decoders ++# ++# CONFIG_VIDEO_SAA6588 is not set ++ ++# ++# Video decoders ++# ++# CONFIG_VIDEO_ADV7180 is not set ++# CONFIG_VIDEO_ADV7183 is not set ++# CONFIG_VIDEO_ADV748X is not set ++CONFIG_VIDEO_ADV7604=y ++# CONFIG_VIDEO_ADV7604_CEC is not set ++# CONFIG_VIDEO_ADV7842 is not set ++# CONFIG_VIDEO_BT819 is not set ++# CONFIG_VIDEO_BT856 is not set ++# CONFIG_VIDEO_BT866 is not set ++# CONFIG_VIDEO_KS0127 is not set ++# CONFIG_VIDEO_ML86V7667 is not set ++# CONFIG_VIDEO_AD5820 is not set ++# CONFIG_VIDEO_AK7375 is not set ++# CONFIG_VIDEO_DW9714 is not set ++# CONFIG_VIDEO_DW9807_VCM is not set ++# CONFIG_VIDEO_SAA7110 is not set ++# CONFIG_VIDEO_SAA711X is not set ++# CONFIG_VIDEO_TC358743 is not set ++# CONFIG_VIDEO_TVP514X is not set ++# CONFIG_VIDEO_TVP5150 is not set ++# CONFIG_VIDEO_TVP7002 is not set ++# CONFIG_VIDEO_TW2804 is not set ++# CONFIG_VIDEO_TW9903 is not set ++# CONFIG_VIDEO_TW9906 is not set ++# CONFIG_VIDEO_TW9910 is not set ++# CONFIG_VIDEO_VPX3220 is not set ++ ++# ++# Video and audio decoders ++# ++# CONFIG_VIDEO_SAA717X is not set ++# CONFIG_VIDEO_CX25840 is not set ++ ++# ++# Video encoders ++# ++# CONFIG_VIDEO_SAA7127 is not set ++# CONFIG_VIDEO_SAA7185 is not set ++# CONFIG_VIDEO_ADV7170 is not set ++# CONFIG_VIDEO_ADV7175 is not set ++# CONFIG_VIDEO_ADV7343 is not set ++# CONFIG_VIDEO_ADV7393 is not set ++# CONFIG_VIDEO_ADV7511 is not set ++# CONFIG_VIDEO_AD9389B is not set ++# CONFIG_VIDEO_AK881X is not set ++# CONFIG_VIDEO_THS8200 is not set ++ ++# ++# Camera sensor devices ++# ++# CONFIG_VIDEO_IMX258 is not set ++# CONFIG_VIDEO_IMX274 is not set ++# CONFIG_VIDEO_OV2640 is not set ++# CONFIG_VIDEO_OV2659 is not set ++# CONFIG_VIDEO_OV2680 is not set ++# CONFIG_VIDEO_OV2685 is not set ++# CONFIG_VIDEO_OV5640 is not set ++# CONFIG_VIDEO_OV5645 is not set ++# CONFIG_VIDEO_OV5647 is not set ++# CONFIG_VIDEO_OV6650 is not set ++# CONFIG_VIDEO_OV5670 is not set ++# CONFIG_VIDEO_OV5695 is not set ++# CONFIG_VIDEO_OV7251 is not set ++# CONFIG_VIDEO_OV772X is not set ++# CONFIG_VIDEO_OV7640 is not set ++# CONFIG_VIDEO_OV7670 is not set ++# CONFIG_VIDEO_OV7740 is not set ++# CONFIG_VIDEO_OV9650 is not set ++# CONFIG_VIDEO_OV13858 is not set ++# CONFIG_VIDEO_VS6624 is not set ++# CONFIG_VIDEO_MT9M032 is not set ++# CONFIG_VIDEO_MT9M111 is not set ++# CONFIG_VIDEO_MT9P031 is not set ++# CONFIG_VIDEO_MT9T001 is not set ++# CONFIG_VIDEO_MT9T112 is not set ++# CONFIG_VIDEO_MT9V011 is not set ++# CONFIG_VIDEO_MT9V032 is not set ++# CONFIG_VIDEO_MT9V111 is not set ++# CONFIG_VIDEO_SR030PC30 is not set ++# CONFIG_VIDEO_NOON010PC30 is not set ++# CONFIG_VIDEO_M5MOLS is not set ++# CONFIG_VIDEO_RJ54N1 is not set ++# CONFIG_VIDEO_S5K6AA is not set ++# CONFIG_VIDEO_S5K6A3 is not set ++# CONFIG_VIDEO_S5K4ECGX is not set ++# CONFIG_VIDEO_S5K5BAF is not set ++# CONFIG_VIDEO_SMIAPP is not set ++# CONFIG_VIDEO_ET8EK8 is not set ++# CONFIG_VIDEO_S5C73M3 is not set ++ ++# ++# Flash devices ++# ++# CONFIG_VIDEO_ADP1653 is not set ++# CONFIG_VIDEO_LM3560 is not set ++# CONFIG_VIDEO_LM3646 is not set ++ ++# ++# Video improvement chips ++# ++# CONFIG_VIDEO_UPD64031A is not set ++# CONFIG_VIDEO_UPD64083 is not set ++ ++# ++# Audio/Video compression chips ++# ++# CONFIG_VIDEO_SAA6752HS is not set ++ ++# ++# SDR tuner chips ++# ++ ++# ++# Miscellaneous helper chips ++# ++# CONFIG_VIDEO_THS7303 is not set ++# CONFIG_VIDEO_M52790 is not set ++# CONFIG_VIDEO_I2C is not set ++ ++# ++# Sensors used on soc_camera driver ++# ++ ++# ++# SPI helper chips ++# ++# CONFIG_VIDEO_GS1662 is not set ++ ++# ++# Media SPI Adapters ++# ++ ++# ++# Customise DVB Frontends ++# ++ ++# ++# Tools to develop new frontends ++# ++ ++# ++# Graphics support ++# ++CONFIG_VGA_ARB=y ++CONFIG_VGA_ARB_MAX_GPUS=16 ++# CONFIG_IMX_IPUV3_CORE is not set ++CONFIG_DRM=y ++# CONFIG_DRM_DP_AUX_CHARDEV is not set ++# CONFIG_DRM_DEBUG_MM is not set ++# CONFIG_DRM_DEBUG_SELFTEST is not set ++CONFIG_DRM_KMS_HELPER=y ++CONFIG_DRM_KMS_FB_HELPER=y ++CONFIG_DRM_FBDEV_EMULATION=y ++CONFIG_DRM_FBDEV_OVERALLOC=100 ++# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set ++# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set ++# CONFIG_DRM_DP_CEC is not set ++ ++# ++# I2C encoder or helper chips ++# ++# CONFIG_DRM_I2C_CH7006 is not set ++# CONFIG_DRM_I2C_SIL164 is not set ++# CONFIG_DRM_I2C_NXP_TDA998X is not set ++# CONFIG_DRM_I2C_NXP_TDA9950 is not set ++# CONFIG_DRM_HDLCD is not set ++# CONFIG_DRM_MALI_DISPLAY is not set ++# CONFIG_DRM_RADEON is not set ++# CONFIG_DRM_AMDGPU is not set ++ ++# ++# ACP (Audio CoProcessor) Configuration ++# ++ ++# ++# AMD Library routines ++# ++# CONFIG_DRM_NOUVEAU is not set ++# CONFIG_DRM_VGEM is not set ++# CONFIG_DRM_VKMS is not set ++# CONFIG_DRM_EXYNOS is not set ++# CONFIG_DRM_UDL is not set ++# CONFIG_DRM_AST is not set ++# CONFIG_DRM_MGAG200 is not set ++# CONFIG_DRM_CIRRUS_QEMU is not set ++# CONFIG_DRM_ARMADA is not set ++# CONFIG_DRM_RCAR_DW_HDMI is not set ++# CONFIG_DRM_RCAR_LVDS is not set ++# CONFIG_DRM_OMAP is not set ++# CONFIG_DRM_TILCDC is not set ++# CONFIG_DRM_QXL is not set ++# CONFIG_DRM_BOCHS is not set ++# CONFIG_DRM_FSL_DCU is not set ++# CONFIG_DRM_STM is not set ++CONFIG_DRM_PANEL=y ++ ++# ++# Display Panels ++# ++# CONFIG_DRM_PANEL_ARM_VERSATILE is not set ++# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set ++# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set ++# CONFIG_DRM_PANEL_LG_LG4573 is not set ++# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set ++CONFIG_DRM_BRIDGE=y ++CONFIG_DRM_PANEL_BRIDGE=y ++ ++# ++# Display Interface Bridges ++# ++# CONFIG_DRM_ANALOGIX_ANX78XX is not set ++# CONFIG_DRM_CDNS_DSI is not set ++# CONFIG_DRM_DUMB_VGA_DAC is not set ++# CONFIG_DRM_LVDS_ENCODER is not set ++# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set ++# CONFIG_DRM_NXP_PTN3460 is not set ++# CONFIG_DRM_PARADE_PS8622 is not set ++# CONFIG_DRM_SIL_SII8620 is not set ++# CONFIG_DRM_SII902X is not set ++# CONFIG_DRM_SII9234 is not set ++# CONFIG_DRM_THINE_THC63LVD1024 is not set ++# CONFIG_DRM_TOSHIBA_TC358767 is not set ++# CONFIG_DRM_TI_TFP410 is not set ++# CONFIG_DRM_I2C_ADV7511 is not set ++# CONFIG_DRM_STI is not set ++# CONFIG_DRM_ARCPGU is not set ++# CONFIG_DRM_HISI_HIBMC is not set ++# CONFIG_DRM_MXSFB is not set ++# CONFIG_DRM_TINYDRM is not set ++# CONFIG_DRM_PL111 is not set ++# CONFIG_DRM_TVE200 is not set ++# CONFIG_DRM_LEGACY is not set ++CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y ++ ++# ++# Frame buffer Devices ++# ++CONFIG_FB=y ++# CONFIG_FIRMWARE_EDID is not set ++CONFIG_FB_CMDLINE=y ++CONFIG_FB_NOTIFY=y ++CONFIG_FB_CFB_FILLRECT=y ++CONFIG_FB_CFB_COPYAREA=y ++CONFIG_FB_CFB_IMAGEBLIT=y ++CONFIG_FB_SYS_FILLRECT=y ++CONFIG_FB_SYS_COPYAREA=y ++CONFIG_FB_SYS_IMAGEBLIT=y ++# CONFIG_FB_FOREIGN_ENDIAN is not set ++CONFIG_FB_SYS_FOPS=y ++CONFIG_FB_DEFERRED_IO=y ++# CONFIG_FB_MODE_HELPERS is not set ++# CONFIG_FB_TILEBLITTING is not set ++ ++# ++# Frame buffer hardware drivers ++# ++# CONFIG_FB_CIRRUS is not set ++# CONFIG_FB_PM2 is not set ++# CONFIG_FB_ARMCLCD is not set ++# CONFIG_FB_CYBER2000 is not set ++# CONFIG_FB_ASILIANT is not set ++# CONFIG_FB_IMSTT is not set ++# CONFIG_FB_UVESA is not set ++# CONFIG_FB_OPENCORES is not set ++# CONFIG_FB_S1D13XXX is not set ++# CONFIG_FB_NVIDIA is not set ++# CONFIG_FB_RIVA is not set ++# CONFIG_FB_I740 is not set ++# CONFIG_FB_MATROX is not set ++# CONFIG_FB_RADEON is not set ++# CONFIG_FB_ATY128 is not set ++# CONFIG_FB_ATY is not set ++# CONFIG_FB_S3 is not set ++# CONFIG_FB_SAVAGE is not set ++# CONFIG_FB_SIS is not set ++# CONFIG_FB_NEOMAGIC is not set ++# CONFIG_FB_KYRO is not set ++# CONFIG_FB_3DFX is not set ++# CONFIG_FB_VOODOO1 is not set ++# CONFIG_FB_VT8623 is not set ++# CONFIG_FB_TRIDENT is not set ++# CONFIG_FB_ARK is not set ++# CONFIG_FB_PM3 is not set ++# CONFIG_FB_CARMINE is not set ++# CONFIG_FB_SMSCUFX is not set ++# CONFIG_FB_UDL is not set ++# CONFIG_FB_IBM_GXT4500 is not set ++# CONFIG_FB_XILINX is not set ++# CONFIG_FB_VIRTUAL is not set ++# CONFIG_FB_METRONOME is not set ++# CONFIG_FB_MB862XX is not set ++# CONFIG_FB_BROADSHEET is not set ++# CONFIG_FB_SIMPLE is not set ++# CONFIG_FB_SSD1307 is not set ++# CONFIG_FB_SM712 is not set ++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set ++CONFIG_HDMI=y ++ ++# ++# Console display driver support ++# ++CONFIG_DUMMY_CONSOLE=y ++CONFIG_FRAMEBUFFER_CONSOLE=y ++CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y ++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set ++# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set ++# CONFIG_LOGO is not set ++CONFIG_SOUND=y ++CONFIG_SND=y ++CONFIG_SND_TIMER=y ++CONFIG_SND_PCM=y ++CONFIG_SND_DMAENGINE_PCM=y ++CONFIG_SND_JACK=y ++CONFIG_SND_JACK_INPUT_DEV=y ++# CONFIG_SND_OSSEMUL is not set ++CONFIG_SND_PCM_TIMER=y ++# CONFIG_SND_HRTIMER is not set ++# CONFIG_SND_DYNAMIC_MINORS is not set ++CONFIG_SND_SUPPORT_OLD_API=y ++CONFIG_SND_PROC_FS=y ++CONFIG_SND_VERBOSE_PROCFS=y ++# CONFIG_SND_VERBOSE_PRINTK is not set ++# CONFIG_SND_DEBUG is not set ++# CONFIG_SND_SEQUENCER is not set ++CONFIG_SND_DRIVERS=y ++# CONFIG_SND_DUMMY is not set ++# CONFIG_SND_ALOOP is not set ++# CONFIG_SND_MTPAV is not set ++# CONFIG_SND_SERIAL_U16550 is not set ++# CONFIG_SND_MPU401 is not set ++CONFIG_SND_PCI=y ++# CONFIG_SND_AD1889 is not set ++# CONFIG_SND_ATIIXP is not set ++# CONFIG_SND_ATIIXP_MODEM is not set ++# CONFIG_SND_AU8810 is not set ++# CONFIG_SND_AU8820 is not set ++# CONFIG_SND_AU8830 is not set ++# CONFIG_SND_AW2 is not set ++# CONFIG_SND_BT87X is not set ++# CONFIG_SND_CA0106 is not set ++# CONFIG_SND_CMIPCI is not set ++# CONFIG_SND_OXYGEN is not set ++# CONFIG_SND_CS4281 is not set ++# CONFIG_SND_CS46XX is not set ++# CONFIG_SND_CTXFI is not set ++# CONFIG_SND_DARLA20 is not set ++# CONFIG_SND_GINA20 is not set ++# CONFIG_SND_LAYLA20 is not set ++# CONFIG_SND_DARLA24 is not set ++# CONFIG_SND_GINA24 is not set ++# CONFIG_SND_LAYLA24 is not set ++# CONFIG_SND_MONA is not set ++# CONFIG_SND_MIA is not set ++# CONFIG_SND_ECHO3G is not set ++# CONFIG_SND_INDIGO is not set ++# CONFIG_SND_INDIGOIO is not set ++# CONFIG_SND_INDIGODJ is not set ++# CONFIG_SND_INDIGOIOX is not set ++# CONFIG_SND_INDIGODJX is not set ++# CONFIG_SND_ENS1370 is not set ++# CONFIG_SND_ENS1371 is not set ++# CONFIG_SND_FM801 is not set ++# CONFIG_SND_HDSP is not set ++# CONFIG_SND_HDSPM is not set ++# CONFIG_SND_ICE1724 is not set ++# CONFIG_SND_INTEL8X0 is not set ++# CONFIG_SND_INTEL8X0M is not set ++# CONFIG_SND_KORG1212 is not set ++# CONFIG_SND_LOLA is not set ++# CONFIG_SND_MIXART is not set ++# CONFIG_SND_NM256 is not set ++# CONFIG_SND_PCXHR is not set ++# CONFIG_SND_RIPTIDE is not set ++# CONFIG_SND_RME32 is not set ++# CONFIG_SND_RME96 is not set ++# CONFIG_SND_RME9652 is not set ++# CONFIG_SND_SE6X is not set ++# CONFIG_SND_VIA82XX is not set ++# CONFIG_SND_VIA82XX_MODEM is not set ++# CONFIG_SND_VIRTUOSO is not set ++# CONFIG_SND_VX222 is not set ++# CONFIG_SND_YMFPCI is not set ++ ++# ++# HD-Audio ++# ++# CONFIG_SND_HDA_INTEL is not set ++CONFIG_SND_HDA_PREALLOC_SIZE=64 ++CONFIG_SND_ARM=y ++# CONFIG_SND_ARMAACI is not set ++CONFIG_SND_SPI=y ++CONFIG_SND_USB=y ++# CONFIG_SND_USB_AUDIO is not set ++# CONFIG_SND_USB_UA101 is not set ++# CONFIG_SND_USB_CAIAQ is not set ++# CONFIG_SND_USB_6FIRE is not set ++# CONFIG_SND_USB_HIFACE is not set ++# CONFIG_SND_BCD2000 is not set ++# CONFIG_SND_USB_POD is not set ++# CONFIG_SND_USB_PODHD is not set ++# CONFIG_SND_USB_TONEPORT is not set ++# CONFIG_SND_USB_VARIAX is not set ++CONFIG_SND_SOC=y ++CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y ++CONFIG_SND_SOC_ADI=y ++CONFIG_SND_SOC_ADI_AXI_I2S=y ++CONFIG_SND_SOC_ADI_AXI_SPDIF=y ++# CONFIG_SND_SOC_AMD_ACP is not set ++# CONFIG_SND_ATMEL_SOC is not set ++# CONFIG_SND_DESIGNWARE_I2S is not set ++ ++# ++# SoC Audio for Freescale CPUs ++# ++ ++# ++# Common SoC Audio options for Freescale CPUs: ++# ++# CONFIG_SND_SOC_FSL_ASRC is not set ++# CONFIG_SND_SOC_FSL_SAI is not set ++# CONFIG_SND_SOC_FSL_SSI is not set ++# CONFIG_SND_SOC_FSL_SPDIF is not set ++# CONFIG_SND_SOC_FSL_ESAI is not set ++# CONFIG_SND_SOC_IMX_AUDMUX is not set ++# CONFIG_SND_I2S_HI6210_I2S is not set ++# CONFIG_SND_SOC_IMG is not set ++ ++# ++# STMicroelectronics STM32 SOC audio support ++# ++# CONFIG_SND_SOC_XTFPGA_I2S is not set ++# CONFIG_ZX_TDM is not set ++CONFIG_SND_SOC_I2C_AND_SPI=y ++ ++# ++# CODEC drivers ++# ++# CONFIG_SND_SOC_AC97_CODEC is not set ++# CONFIG_SND_SOC_ADAU1701 is not set ++# CONFIG_SND_SOC_ADAU1761_I2C is not set ++# CONFIG_SND_SOC_ADAU1761_SPI is not set ++# CONFIG_SND_SOC_ADAU7002 is not set ++# CONFIG_SND_SOC_AK4104 is not set ++# CONFIG_SND_SOC_AK4458 is not set ++# CONFIG_SND_SOC_AK4554 is not set ++# CONFIG_SND_SOC_AK4613 is not set ++# CONFIG_SND_SOC_AK4642 is not set ++# CONFIG_SND_SOC_AK5386 is not set ++# CONFIG_SND_SOC_AK5558 is not set ++# CONFIG_SND_SOC_ALC5623 is not set ++# CONFIG_SND_SOC_BD28623 is not set ++# CONFIG_SND_SOC_BT_SCO is not set ++# CONFIG_SND_SOC_CS35L32 is not set ++# CONFIG_SND_SOC_CS35L33 is not set ++# CONFIG_SND_SOC_CS35L34 is not set ++# CONFIG_SND_SOC_CS35L35 is not set ++# CONFIG_SND_SOC_CS42L42 is not set ++# CONFIG_SND_SOC_CS42L51_I2C is not set ++# CONFIG_SND_SOC_CS42L52 is not set ++# CONFIG_SND_SOC_CS42L56 is not set ++# CONFIG_SND_SOC_CS42L73 is not set ++# CONFIG_SND_SOC_CS4265 is not set ++# CONFIG_SND_SOC_CS4270 is not set ++# CONFIG_SND_SOC_CS4271_I2C is not set ++# CONFIG_SND_SOC_CS4271_SPI is not set ++# CONFIG_SND_SOC_CS42XX8_I2C is not set ++# CONFIG_SND_SOC_CS43130 is not set ++# CONFIG_SND_SOC_CS4349 is not set ++# CONFIG_SND_SOC_CS53L30 is not set ++# CONFIG_SND_SOC_ES7134 is not set ++# CONFIG_SND_SOC_ES7241 is not set ++# CONFIG_SND_SOC_ES8316 is not set ++# CONFIG_SND_SOC_ES8328_I2C is not set ++# CONFIG_SND_SOC_ES8328_SPI is not set ++# CONFIG_SND_SOC_GTM601 is not set ++# CONFIG_SND_SOC_INNO_RK3036 is not set ++# CONFIG_SND_SOC_MAX98504 is not set ++# CONFIG_SND_SOC_MAX9867 is not set ++# CONFIG_SND_SOC_MAX98927 is not set ++# CONFIG_SND_SOC_MAX98373 is not set ++# CONFIG_SND_SOC_MAX9860 is not set ++# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set ++# CONFIG_SND_SOC_PCM1681 is not set ++# CONFIG_SND_SOC_PCM1789_I2C is not set ++# CONFIG_SND_SOC_PCM179X_I2C is not set ++# CONFIG_SND_SOC_PCM179X_SPI is not set ++# CONFIG_SND_SOC_PCM186X_I2C is not set ++# CONFIG_SND_SOC_PCM186X_SPI is not set ++# CONFIG_SND_SOC_PCM3168A_I2C is not set ++# CONFIG_SND_SOC_PCM3168A_SPI is not set ++# CONFIG_SND_SOC_PCM512x_I2C is not set ++# CONFIG_SND_SOC_PCM512x_SPI is not set ++# CONFIG_SND_SOC_RT5616 is not set ++# CONFIG_SND_SOC_RT5631 is not set ++# CONFIG_SND_SOC_SGTL5000 is not set ++# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set ++# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set ++# CONFIG_SND_SOC_SPDIF is not set ++# CONFIG_SND_SOC_SSM2305 is not set ++# CONFIG_SND_SOC_SSM2602_SPI is not set ++# CONFIG_SND_SOC_SSM2602_I2C is not set ++# CONFIG_SND_SOC_SSM4567 is not set ++# CONFIG_SND_SOC_STA32X is not set ++# CONFIG_SND_SOC_STA350 is not set ++# CONFIG_SND_SOC_STI_SAS is not set ++# CONFIG_SND_SOC_TAS2552 is not set ++# CONFIG_SND_SOC_TAS5086 is not set ++# CONFIG_SND_SOC_TAS571X is not set ++# CONFIG_SND_SOC_TAS5720 is not set ++# CONFIG_SND_SOC_TAS6424 is not set ++# CONFIG_SND_SOC_TDA7419 is not set ++# CONFIG_SND_SOC_TFA9879 is not set ++# CONFIG_SND_SOC_TLV320AIC23_I2C is not set ++# CONFIG_SND_SOC_TLV320AIC23_SPI is not set ++# CONFIG_SND_SOC_TLV320AIC31XX is not set ++# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set ++# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set ++# CONFIG_SND_SOC_TLV320AIC3X is not set ++# CONFIG_SND_SOC_TS3A227E is not set ++# CONFIG_SND_SOC_TSCS42XX is not set ++# CONFIG_SND_SOC_TSCS454 is not set ++# CONFIG_SND_SOC_WM8510 is not set ++# CONFIG_SND_SOC_WM8523 is not set ++# CONFIG_SND_SOC_WM8524 is not set ++# CONFIG_SND_SOC_WM8580 is not set ++# CONFIG_SND_SOC_WM8711 is not set ++# CONFIG_SND_SOC_WM8728 is not set ++# CONFIG_SND_SOC_WM8731 is not set ++# CONFIG_SND_SOC_WM8737 is not set ++# CONFIG_SND_SOC_WM8741 is not set ++# CONFIG_SND_SOC_WM8750 is not set ++# CONFIG_SND_SOC_WM8753 is not set ++# CONFIG_SND_SOC_WM8770 is not set ++# CONFIG_SND_SOC_WM8776 is not set ++# CONFIG_SND_SOC_WM8782 is not set ++# CONFIG_SND_SOC_WM8804_I2C is not set ++# CONFIG_SND_SOC_WM8804_SPI is not set ++# CONFIG_SND_SOC_WM8903 is not set ++# CONFIG_SND_SOC_WM8960 is not set ++# CONFIG_SND_SOC_WM8962 is not set ++# CONFIG_SND_SOC_WM8974 is not set ++# CONFIG_SND_SOC_WM8978 is not set ++# CONFIG_SND_SOC_WM8985 is not set ++# CONFIG_SND_SOC_ZX_AUD96P22 is not set ++# CONFIG_SND_SOC_MAX9759 is not set ++# CONFIG_SND_SOC_MT6351 is not set ++# CONFIG_SND_SOC_NAU8540 is not set ++# CONFIG_SND_SOC_NAU8810 is not set ++# CONFIG_SND_SOC_NAU8824 is not set ++# CONFIG_SND_SOC_TPA6130A2 is not set ++# CONFIG_SND_SIMPLE_CARD is not set ++# CONFIG_SND_SIMPLE_SCU_CARD is not set ++# CONFIG_SND_AUDIO_GRAPH_CARD is not set ++# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set ++ ++# ++# HID support ++# ++CONFIG_HID=y ++# CONFIG_HID_BATTERY_STRENGTH is not set ++# CONFIG_HIDRAW is not set ++# CONFIG_UHID is not set ++CONFIG_HID_GENERIC=y ++ ++# ++# Special HID drivers ++# ++# CONFIG_HID_A4TECH is not set ++# CONFIG_HID_ACCUTOUCH is not set ++# CONFIG_HID_ACRUX is not set ++# CONFIG_HID_APPLE is not set ++# CONFIG_HID_APPLEIR is not set ++# CONFIG_HID_ASUS is not set ++# CONFIG_HID_AUREAL is not set ++# CONFIG_HID_BELKIN is not set ++# CONFIG_HID_BETOP_FF is not set ++# CONFIG_HID_CHERRY is not set ++# CONFIG_HID_CHICONY is not set ++# CONFIG_HID_CORSAIR is not set ++# CONFIG_HID_COUGAR is not set ++# CONFIG_HID_PRODIKEYS is not set ++# CONFIG_HID_CMEDIA is not set ++# CONFIG_HID_CYPRESS is not set ++# CONFIG_HID_DRAGONRISE is not set ++# CONFIG_HID_EMS_FF is not set ++# CONFIG_HID_ELAN is not set ++# CONFIG_HID_ELECOM is not set ++# CONFIG_HID_ELO is not set ++# CONFIG_HID_EZKEY is not set ++# CONFIG_HID_GEMBIRD is not set ++# CONFIG_HID_GFRM is not set ++# CONFIG_HID_HOLTEK is not set ++# CONFIG_HID_GOOGLE_HAMMER is not set ++# CONFIG_HID_GT683R is not set ++# CONFIG_HID_KEYTOUCH is not set ++# CONFIG_HID_KYE is not set ++# CONFIG_HID_UCLOGIC is not set ++# CONFIG_HID_WALTOP is not set ++# CONFIG_HID_GYRATION is not set ++# CONFIG_HID_ICADE is not set ++# CONFIG_HID_ITE is not set ++# CONFIG_HID_JABRA is not set ++# CONFIG_HID_TWINHAN is not set ++# CONFIG_HID_KENSINGTON is not set ++# CONFIG_HID_LCPOWER is not set ++# CONFIG_HID_LED is not set ++# CONFIG_HID_LENOVO is not set ++# CONFIG_HID_LOGITECH is not set ++# CONFIG_HID_MAGICMOUSE is not set ++# CONFIG_HID_MAYFLASH is not set ++# CONFIG_HID_REDRAGON is not set ++CONFIG_HID_MICROSOFT=y ++# CONFIG_HID_MONTEREY is not set ++# CONFIG_HID_MULTITOUCH is not set ++# CONFIG_HID_NTI is not set ++# CONFIG_HID_NTRIG is not set ++# CONFIG_HID_ORTEK is not set ++# CONFIG_HID_PANTHERLORD is not set ++# CONFIG_HID_PENMOUNT is not set ++# CONFIG_HID_PETALYNX is not set ++# CONFIG_HID_PICOLCD is not set ++# CONFIG_HID_PLANTRONICS is not set ++# CONFIG_HID_PRIMAX is not set ++# CONFIG_HID_RETRODE is not set ++# CONFIG_HID_ROCCAT is not set ++# CONFIG_HID_SAITEK is not set ++# CONFIG_HID_SAMSUNG is not set ++# CONFIG_HID_SONY is not set ++# CONFIG_HID_SPEEDLINK is not set ++# CONFIG_HID_STEAM is not set ++# CONFIG_HID_STEELSERIES is not set ++# CONFIG_HID_SUNPLUS is not set ++# CONFIG_HID_RMI is not set ++# CONFIG_HID_GREENASIA is not set ++# CONFIG_HID_SMARTJOYPLUS is not set ++# CONFIG_HID_TIVO is not set ++# CONFIG_HID_TOPSEED is not set ++# CONFIG_HID_THINGM is not set ++# CONFIG_HID_THRUSTMASTER is not set ++# CONFIG_HID_UDRAW_PS3 is not set ++# CONFIG_HID_WACOM is not set ++# CONFIG_HID_WIIMOTE is not set ++# CONFIG_HID_XINMO is not set ++# CONFIG_HID_ZEROPLUS is not set ++# CONFIG_HID_ZYDACRON is not set ++# CONFIG_HID_SENSOR_HUB is not set ++# CONFIG_HID_ALPS is not set ++ ++# ++# USB HID support ++# ++CONFIG_USB_HID=y ++# CONFIG_HID_PID is not set ++# CONFIG_USB_HIDDEV is not set ++ ++# ++# I2C HID support ++# ++# CONFIG_I2C_HID is not set ++CONFIG_USB_OHCI_LITTLE_ENDIAN=y ++CONFIG_USB_SUPPORT=y ++CONFIG_USB_COMMON=y ++CONFIG_USB_ARCH_HAS_HCD=y ++CONFIG_USB=y ++CONFIG_USB_PCI=y ++# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set ++ ++# ++# Miscellaneous USB options ++# ++CONFIG_USB_DEFAULT_PERSIST=y ++# CONFIG_USB_DYNAMIC_MINORS is not set ++CONFIG_USB_OTG=y ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set ++# CONFIG_USB_OTG_FSM is not set ++# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set ++# CONFIG_USB_MON is not set ++# CONFIG_USB_WUSB_CBAF is not set ++ ++# ++# USB Host Controller Drivers ++# ++# CONFIG_USB_C67X00_HCD is not set ++# CONFIG_USB_XHCI_HCD is not set ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_EHCI_ROOT_HUB_TT=y ++# CONFIG_USB_EHCI_TT_NEWSCHED is not set ++CONFIG_USB_EHCI_PCI=y ++# CONFIG_USB_EHCI_HCD_PLATFORM is not set ++# CONFIG_USB_OXU210HP_HCD is not set ++# CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_FOTG210_HCD is not set ++# CONFIG_USB_MAX3421_HCD is not set ++# CONFIG_USB_OHCI_HCD is not set ++# CONFIG_USB_UHCI_HCD is not set ++# CONFIG_USB_SL811_HCD is not set ++# CONFIG_USB_R8A66597_HCD is not set ++# CONFIG_USB_HCD_TEST_MODE is not set ++ ++# ++# USB Device Class drivers ++# ++CONFIG_USB_ACM=m ++# CONFIG_USB_PRINTER is not set ++CONFIG_USB_WDM=m ++# CONFIG_USB_TMC is not set ++ ++# ++# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may ++# ++ ++# ++# also be needed; see USB_STORAGE Help for more info ++# ++CONFIG_USB_STORAGE=y ++# CONFIG_USB_STORAGE_DEBUG is not set ++# CONFIG_USB_STORAGE_REALTEK is not set ++# CONFIG_USB_STORAGE_DATAFAB is not set ++# CONFIG_USB_STORAGE_FREECOM is not set ++# CONFIG_USB_STORAGE_ISD200 is not set ++# CONFIG_USB_STORAGE_USBAT is not set ++# CONFIG_USB_STORAGE_SDDR09 is not set ++# CONFIG_USB_STORAGE_SDDR55 is not set ++# CONFIG_USB_STORAGE_JUMPSHOT is not set ++# CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set ++# CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set ++# CONFIG_USB_STORAGE_ENE_UB6250 is not set ++# CONFIG_USB_UAS is not set ++ ++# ++# USB Imaging devices ++# ++# CONFIG_USB_MDC800 is not set ++# CONFIG_USB_MICROTEK is not set ++# CONFIG_USBIP_CORE is not set ++# CONFIG_USB_MUSB_HDRC is not set ++# CONFIG_USB_DWC3 is not set ++CONFIG_USB_DWC2=y ++CONFIG_USB_DWC2_HOST=y ++ ++# ++# Gadget/Dual-role mode requires USB Gadget support to be enabled ++# ++# CONFIG_USB_DWC2_PERIPHERAL is not set ++# CONFIG_USB_DWC2_DUAL_ROLE is not set ++# CONFIG_USB_DWC2_PCI is not set ++# CONFIG_USB_DWC2_DEBUG is not set ++# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set ++CONFIG_USB_CHIPIDEA=y ++CONFIG_USB_CHIPIDEA_OF=y ++CONFIG_USB_CHIPIDEA_PCI=y ++CONFIG_USB_CHIPIDEA_UDC=y ++CONFIG_USB_CHIPIDEA_HOST=y ++# CONFIG_USB_ISP1760 is not set ++ ++# ++# USB port drivers ++# ++# CONFIG_USB_SERIAL is not set ++ ++# ++# USB Miscellaneous drivers ++# ++# CONFIG_USB_EMI62 is not set ++# CONFIG_USB_EMI26 is not set ++# CONFIG_USB_ADUTUX is not set ++# CONFIG_USB_SEVSEG is not set ++# CONFIG_USB_RIO500 is not set ++# CONFIG_USB_LEGOTOWER is not set ++# CONFIG_USB_LCD is not set ++# CONFIG_USB_CYPRESS_CY7C63 is not set ++# CONFIG_USB_CYTHERM is not set ++# CONFIG_USB_IDMOUSE is not set ++# CONFIG_USB_FTDI_ELAN is not set ++# CONFIG_USB_APPLEDISPLAY is not set ++# CONFIG_USB_SISUSBVGA is not set ++# CONFIG_USB_LD is not set ++# CONFIG_USB_TRANCEVIBRATOR is not set ++# CONFIG_USB_IOWARRIOR is not set ++# CONFIG_USB_TEST is not set ++# CONFIG_USB_EHSET_TEST_FIXTURE is not set ++# CONFIG_USB_ISIGHTFW is not set ++# CONFIG_USB_YUREX is not set ++# CONFIG_USB_EZUSB_FX2 is not set ++# CONFIG_USB_HUB_USB251XB is not set ++# CONFIG_USB_HSIC_USB3503 is not set ++# CONFIG_USB_HSIC_USB4604 is not set ++# CONFIG_USB_LINK_LAYER_TEST is not set ++# CONFIG_USB_CHAOSKEY is not set ++ ++# ++# USB Physical Layer drivers ++# ++CONFIG_USB_PHY=y ++CONFIG_NOP_USB_XCEIV=y ++# CONFIG_AM335X_PHY_USB is not set ++# CONFIG_USB_GPIO_VBUS is not set ++# CONFIG_USB_ISP1301 is not set ++CONFIG_USB_ULPI=y ++CONFIG_USB_ULPI_VIEWPORT=y ++CONFIG_USB_GADGET=y ++# CONFIG_USB_GADGET_DEBUG is not set ++# CONFIG_USB_GADGET_DEBUG_FILES is not set ++# CONFIG_USB_GADGET_DEBUG_FS is not set ++CONFIG_USB_GADGET_VBUS_DRAW=2 ++CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 ++ ++# ++# USB Peripheral Controller ++# ++# CONFIG_USB_FUSB300 is not set ++# CONFIG_USB_FOTG210_UDC is not set ++# CONFIG_USB_GR_UDC is not set ++# CONFIG_USB_R8A66597 is not set ++# CONFIG_USB_PXA27X is not set ++# CONFIG_USB_MV_UDC is not set ++# CONFIG_USB_MV_U3D is not set ++# CONFIG_USB_SNP_UDC_PLAT is not set ++# CONFIG_USB_M66592 is not set ++# CONFIG_USB_BDC_UDC is not set ++# CONFIG_USB_AMD5536UDC is not set ++# CONFIG_USB_NET2272 is not set ++# CONFIG_USB_NET2280 is not set ++# CONFIG_USB_GOKU is not set ++# CONFIG_USB_EG20T is not set ++CONFIG_USB_GADGET_XILINX=y ++# CONFIG_USB_DUMMY_HCD is not set ++CONFIG_USB_LIBCOMPOSITE=m ++CONFIG_USB_F_SS_LB=m ++# CONFIG_USB_CONFIGFS is not set ++CONFIG_USB_ZERO=m ++# CONFIG_USB_ZERO_HNPTEST is not set ++# CONFIG_USB_AUDIO is not set ++# CONFIG_USB_ETH is not set ++# CONFIG_USB_G_NCM is not set ++# CONFIG_USB_GADGETFS is not set ++# CONFIG_USB_FUNCTIONFS is not set ++# CONFIG_USB_MASS_STORAGE is not set ++# CONFIG_USB_G_SERIAL is not set ++# CONFIG_USB_MIDI_GADGET is not set ++# CONFIG_USB_G_PRINTER is not set ++# CONFIG_USB_CDC_COMPOSITE is not set ++# CONFIG_USB_G_ACM_MS is not set ++# CONFIG_USB_G_MULTI is not set ++# CONFIG_USB_G_HID is not set ++# CONFIG_USB_G_DBGP is not set ++# CONFIG_USB_G_WEBCAM is not set ++# CONFIG_TYPEC is not set ++# CONFIG_USB_ROLE_SWITCH is not set ++# CONFIG_USB_LED_TRIG is not set ++CONFIG_USB_ULPI_BUS=y ++# CONFIG_UWB is not set ++CONFIG_MMC=y ++CONFIG_PWRSEQ_EMMC=y ++# CONFIG_PWRSEQ_SD8787 is not set ++CONFIG_PWRSEQ_SIMPLE=y ++CONFIG_MMC_BLOCK=y ++CONFIG_MMC_BLOCK_MINORS=8 ++# CONFIG_SDIO_UART is not set ++# CONFIG_MMC_TEST is not set ++ ++# ++# MMC/SD/SDIO Host Controller Drivers ++# ++# CONFIG_MMC_DEBUG is not set ++# CONFIG_MMC_ARMMMCI is not set ++CONFIG_MMC_SDHCI=y ++# CONFIG_MMC_SDHCI_PCI is not set ++CONFIG_MMC_SDHCI_PLTFM=y ++CONFIG_MMC_SDHCI_OF_ARASAN=y ++# CONFIG_MMC_SDHCI_OF_AT91 is not set ++# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set ++# CONFIG_MMC_SDHCI_CADENCE is not set ++# CONFIG_MMC_SDHCI_F_SDH30 is not set ++# CONFIG_MMC_TIFM_SD is not set ++# CONFIG_MMC_SPI is not set ++# CONFIG_MMC_CB710 is not set ++# CONFIG_MMC_VIA_SDMMC is not set ++CONFIG_MMC_DW=y ++CONFIG_MMC_DW_PLTFM=y ++# CONFIG_MMC_DW_BLUEFIELD is not set ++# CONFIG_MMC_DW_EXYNOS is not set ++# CONFIG_MMC_DW_HI3798CV200 is not set ++# CONFIG_MMC_DW_K3 is not set ++# CONFIG_MMC_DW_PCI is not set ++# CONFIG_MMC_VUB300 is not set ++# CONFIG_MMC_USHC is not set ++# CONFIG_MMC_USDHI6ROL0 is not set ++CONFIG_MMC_CQHCI=y ++# CONFIG_MMC_TOSHIBA_PCI is not set ++# CONFIG_MMC_MTK is not set ++# CONFIG_MMC_SDHCI_XENON is not set ++# CONFIG_MMC_SDHCI_OMAP is not set ++# CONFIG_MEMSTICK is not set ++CONFIG_NEW_LEDS=y ++CONFIG_LEDS_CLASS=y ++# CONFIG_LEDS_CLASS_FLASH is not set ++# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set ++ ++# ++# LED drivers ++# ++# CONFIG_LEDS_BCM6328 is not set ++# CONFIG_LEDS_BCM6358 is not set ++# CONFIG_LEDS_CR0014114 is not set ++# CONFIG_LEDS_LM3530 is not set ++# CONFIG_LEDS_LM3642 is not set ++# CONFIG_LEDS_LM3692X is not set ++# CONFIG_LEDS_PCA9532 is not set ++CONFIG_LEDS_GPIO=y ++# CONFIG_LEDS_LP3944 is not set ++# CONFIG_LEDS_LP3952 is not set ++# CONFIG_LEDS_LP5521 is not set ++# CONFIG_LEDS_LP5523 is not set ++# CONFIG_LEDS_LP5562 is not set ++# CONFIG_LEDS_LP8501 is not set ++# CONFIG_LEDS_LP8860 is not set ++# CONFIG_LEDS_PCA955X is not set ++# CONFIG_LEDS_PCA963X is not set ++# CONFIG_LEDS_DAC124S085 is not set ++# CONFIG_LEDS_REGULATOR is not set ++# CONFIG_LEDS_BD2802 is not set ++# CONFIG_LEDS_LT3593 is not set ++# CONFIG_LEDS_TCA6507 is not set ++# CONFIG_LEDS_TLC591XX is not set ++# CONFIG_LEDS_LM355x is not set ++# CONFIG_LEDS_IS31FL319X is not set ++# CONFIG_LEDS_IS31FL32XX is not set ++ ++# ++# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) ++# ++# CONFIG_LEDS_BLINKM is not set ++# CONFIG_LEDS_SYSCON is not set ++# CONFIG_LEDS_MLXREG is not set ++# CONFIG_LEDS_USER is not set ++ ++# ++# LED Triggers ++# ++CONFIG_LEDS_TRIGGERS=y ++CONFIG_LEDS_TRIGGER_TIMER=y ++CONFIG_LEDS_TRIGGER_ONESHOT=y ++# CONFIG_LEDS_TRIGGER_MTD is not set ++CONFIG_LEDS_TRIGGER_HEARTBEAT=y ++CONFIG_LEDS_TRIGGER_BACKLIGHT=y ++CONFIG_LEDS_TRIGGER_CPU=y ++# CONFIG_LEDS_TRIGGER_ACTIVITY is not set ++CONFIG_LEDS_TRIGGER_GPIO=y ++CONFIG_LEDS_TRIGGER_DEFAULT_ON=y ++ ++# ++# iptables trigger is under Netfilter config (LED target) ++# ++CONFIG_LEDS_TRIGGER_TRANSIENT=y ++CONFIG_LEDS_TRIGGER_CAMERA=y ++# CONFIG_LEDS_TRIGGER_PANIC is not set ++# CONFIG_LEDS_TRIGGER_NETDEV is not set ++# CONFIG_ACCESSIBILITY is not set ++# CONFIG_INFINIBAND is not set ++CONFIG_EDAC_ATOMIC_SCRUB=y ++CONFIG_EDAC_SUPPORT=y ++CONFIG_EDAC=y ++CONFIG_EDAC_LEGACY_SYSFS=y ++# CONFIG_EDAC_DEBUG is not set ++# CONFIG_EDAC_ALTERA is not set ++# CONFIG_EDAC_SYNOPSYS is not set ++CONFIG_RTC_LIB=y ++CONFIG_RTC_CLASS=y ++CONFIG_RTC_HCTOSYS=y ++CONFIG_RTC_HCTOSYS_DEVICE="rtc0" ++CONFIG_RTC_SYSTOHC=y ++CONFIG_RTC_SYSTOHC_DEVICE="rtc0" ++# CONFIG_RTC_DEBUG is not set ++CONFIG_RTC_NVMEM=y ++ ++# ++# RTC interfaces ++# ++CONFIG_RTC_INTF_SYSFS=y ++CONFIG_RTC_INTF_PROC=y ++CONFIG_RTC_INTF_DEV=y ++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set ++# CONFIG_RTC_DRV_TEST is not set ++ ++# ++# I2C RTC drivers ++# ++# CONFIG_RTC_DRV_ABB5ZES3 is not set ++# CONFIG_RTC_DRV_ABX80X is not set ++# CONFIG_RTC_DRV_DS1307 is not set ++# CONFIG_RTC_DRV_DS1374 is not set ++# CONFIG_RTC_DRV_DS1672 is not set ++# CONFIG_RTC_DRV_HYM8563 is not set ++# CONFIG_RTC_DRV_MAX6900 is not set ++# CONFIG_RTC_DRV_RS5C372 is not set ++# CONFIG_RTC_DRV_ISL1208 is not set ++# CONFIG_RTC_DRV_ISL12022 is not set ++# CONFIG_RTC_DRV_ISL12026 is not set ++# CONFIG_RTC_DRV_X1205 is not set ++# CONFIG_RTC_DRV_PCF8523 is not set ++# CONFIG_RTC_DRV_PCF85063 is not set ++# CONFIG_RTC_DRV_PCF85363 is not set ++CONFIG_RTC_DRV_PCF8563=y ++# CONFIG_RTC_DRV_PCF8583 is not set ++# CONFIG_RTC_DRV_M41T80 is not set ++# CONFIG_RTC_DRV_BQ32K is not set ++# CONFIG_RTC_DRV_S35390A is not set ++# CONFIG_RTC_DRV_FM3130 is not set ++# CONFIG_RTC_DRV_RX8010 is not set ++# CONFIG_RTC_DRV_RX8581 is not set ++# CONFIG_RTC_DRV_RX8025 is not set ++# CONFIG_RTC_DRV_EM3027 is not set ++# CONFIG_RTC_DRV_RV8803 is not set ++ ++# ++# SPI RTC drivers ++# ++# CONFIG_RTC_DRV_M41T93 is not set ++# CONFIG_RTC_DRV_M41T94 is not set ++# CONFIG_RTC_DRV_DS1302 is not set ++# CONFIG_RTC_DRV_DS1305 is not set ++# CONFIG_RTC_DRV_DS1343 is not set ++# CONFIG_RTC_DRV_DS1347 is not set ++# CONFIG_RTC_DRV_DS1390 is not set ++# CONFIG_RTC_DRV_MAX6916 is not set ++# CONFIG_RTC_DRV_R9701 is not set ++# CONFIG_RTC_DRV_RX4581 is not set ++# CONFIG_RTC_DRV_RX6110 is not set ++# CONFIG_RTC_DRV_RS5C348 is not set ++# CONFIG_RTC_DRV_MAX6902 is not set ++# CONFIG_RTC_DRV_PCF2123 is not set ++# CONFIG_RTC_DRV_MCP795 is not set ++CONFIG_RTC_I2C_AND_SPI=y ++ ++# ++# SPI and I2C RTC drivers ++# ++# CONFIG_RTC_DRV_DS3232 is not set ++# CONFIG_RTC_DRV_PCF2127 is not set ++# CONFIG_RTC_DRV_RV3029C2 is not set ++ ++# ++# Platform RTC drivers ++# ++# CONFIG_RTC_DRV_CMOS is not set ++# CONFIG_RTC_DRV_DS1286 is not set ++# CONFIG_RTC_DRV_DS1511 is not set ++# CONFIG_RTC_DRV_DS1553 is not set ++# CONFIG_RTC_DRV_DS1685_FAMILY is not set ++# CONFIG_RTC_DRV_DS1742 is not set ++# CONFIG_RTC_DRV_DS2404 is not set ++# CONFIG_RTC_DRV_STK17TA8 is not set ++# CONFIG_RTC_DRV_M48T86 is not set ++# CONFIG_RTC_DRV_M48T35 is not set ++# CONFIG_RTC_DRV_M48T59 is not set ++# CONFIG_RTC_DRV_MSM6242 is not set ++# CONFIG_RTC_DRV_BQ4802 is not set ++# CONFIG_RTC_DRV_RP5C01 is not set ++# CONFIG_RTC_DRV_V3020 is not set ++# CONFIG_RTC_DRV_ZYNQMP is not set ++ ++# ++# on-CPU RTC drivers ++# ++# CONFIG_RTC_DRV_PL030 is not set ++# CONFIG_RTC_DRV_PL031 is not set ++# CONFIG_RTC_DRV_FTRTC010 is not set ++# CONFIG_RTC_DRV_SNVS is not set ++# CONFIG_RTC_DRV_R7301 is not set ++ ++# ++# HID Sensor RTC drivers ++# ++# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set ++CONFIG_DMADEVICES=y ++# CONFIG_DMADEVICES_DEBUG is not set ++ ++# ++# DMA Devices ++# ++CONFIG_DMA_ENGINE=y ++CONFIG_DMA_OF=y ++# CONFIG_ALTERA_MSGDMA is not set ++# CONFIG_AMBA_PL08X is not set ++# CONFIG_AXI_DMAC is not set ++# CONFIG_DW_AXI_DMAC is not set ++# CONFIG_FSL_EDMA is not set ++# CONFIG_INTEL_IDMA64 is not set ++# CONFIG_NBPFAXI_DMA is not set ++CONFIG_PL330_DMA=y ++# CONFIG_XILINX_DMA is not set ++# CONFIG_XILINX_ZYNQMP_DMA is not set ++# CONFIG_QCOM_HIDMA_MGMT is not set ++# CONFIG_QCOM_HIDMA is not set ++# CONFIG_DW_DMAC is not set ++# CONFIG_DW_DMAC_PCI is not set ++ ++# ++# DMA Clients ++# ++# CONFIG_ASYNC_TX_DMA is not set ++# CONFIG_DMATEST is not set ++ ++# ++# DMABUF options ++# ++CONFIG_SYNC_FILE=y ++# CONFIG_SW_SYNC is not set ++# CONFIG_AUXDISPLAY is not set ++CONFIG_UIO=y ++# CONFIG_UIO_CIF is not set ++CONFIG_UIO_PDRV_GENIRQ=y ++# CONFIG_UIO_DMEM_GENIRQ is not set ++# CONFIG_UIO_AEC is not set ++# CONFIG_UIO_SERCOS3 is not set ++# CONFIG_UIO_PCI_GENERIC is not set ++# CONFIG_UIO_NETX is not set ++# CONFIG_UIO_PRUSS is not set ++# CONFIG_UIO_MF624 is not set ++# CONFIG_VIRT_DRIVERS is not set ++CONFIG_VIRTIO_MENU=y ++# CONFIG_VIRTIO_PCI is not set ++# CONFIG_VIRTIO_MMIO is not set ++ ++# ++# Microsoft Hyper-V guest support ++# ++# CONFIG_STAGING is not set ++# CONFIG_GOLDFISH is not set ++# CONFIG_CHROME_PLATFORMS is not set ++# CONFIG_MELLANOX_PLATFORM is not set ++CONFIG_CLKDEV_LOOKUP=y ++CONFIG_HAVE_CLK_PREPARE=y ++CONFIG_COMMON_CLK=y ++ ++# ++# Common Clock Framework ++# ++CONFIG_ICST=y ++CONFIG_COMMON_CLK_VERSATILE=y ++CONFIG_CLK_SP810=y ++CONFIG_CLK_VEXPRESS_OSC=y ++# CONFIG_CLK_HSDK is not set ++# CONFIG_COMMON_CLK_MAX9485 is not set ++# CONFIG_COMMON_CLK_SI5351 is not set ++# CONFIG_COMMON_CLK_SI514 is not set ++# CONFIG_COMMON_CLK_SI544 is not set ++CONFIG_COMMON_CLK_SI570=y ++# CONFIG_COMMON_CLK_CDCE706 is not set ++# CONFIG_COMMON_CLK_CDCE925 is not set ++# CONFIG_COMMON_CLK_CS2000_CP is not set ++# CONFIG_COMMON_CLK_AXI_CLKGEN is not set ++# CONFIG_CLK_QORIQ is not set ++# CONFIG_COMMON_CLK_VC5 is not set ++# CONFIG_HWSPINLOCK is not set ++ ++# ++# Clock Source drivers ++# ++CONFIG_TIMER_OF=y ++CONFIG_TIMER_PROBE=y ++CONFIG_CLKSRC_MMIO=y ++CONFIG_DW_APB_TIMER=y ++CONFIG_DW_APB_TIMER_OF=y ++CONFIG_CADENCE_TTC_TIMER=y ++CONFIG_ARM_GLOBAL_TIMER=y ++CONFIG_ARM_TIMER_SP804=y ++CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y ++CONFIG_CLKSRC_VERSATILE=y ++# CONFIG_MAILBOX is not set ++CONFIG_IOMMU_SUPPORT=y ++ ++# ++# Generic IOMMU Pagetable Support ++# ++# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set ++# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set ++# CONFIG_IOMMU_DEBUGFS is not set ++# CONFIG_ARM_SMMU is not set ++ ++# ++# Remoteproc drivers ++# ++# CONFIG_REMOTEPROC is not set ++ ++# ++# Rpmsg drivers ++# ++# CONFIG_RPMSG_VIRTIO is not set ++# CONFIG_SOUNDWIRE is not set ++ ++# ++# SOC (System On Chip) specific Drivers ++# ++ ++# ++# Amlogic SoC drivers ++# ++ ++# ++# Broadcom SoC drivers ++# ++# CONFIG_SOC_BRCMSTB is not set ++ ++# ++# NXP/Freescale QorIQ SoC drivers ++# ++ ++# ++# i.MX SoC drivers ++# ++ ++# ++# Qualcomm SoC drivers ++# ++# CONFIG_SOC_TI is not set ++ ++# ++# Xilinx SoC drivers ++# ++# CONFIG_XILINX_VCU is not set ++# CONFIG_PM_DEVFREQ is not set ++CONFIG_EXTCON=y ++ ++# ++# Extcon Device Drivers ++# ++# CONFIG_EXTCON_ADC_JACK is not set ++# CONFIG_EXTCON_GPIO is not set ++# CONFIG_EXTCON_MAX3355 is not set ++# CONFIG_EXTCON_RT8973A is not set ++# CONFIG_EXTCON_SM5502 is not set ++# CONFIG_EXTCON_USB_GPIO is not set ++CONFIG_MEMORY=y ++# CONFIG_ARM_PL172_MPMC is not set ++CONFIG_IIO=y ++CONFIG_IIO_BUFFER=y ++# CONFIG_IIO_BUFFER_CB is not set ++# CONFIG_IIO_BUFFER_HW_CONSUMER is not set ++CONFIG_IIO_KFIFO_BUF=y ++CONFIG_IIO_TRIGGERED_BUFFER=y ++# CONFIG_IIO_CONFIGFS is not set ++CONFIG_IIO_TRIGGER=y ++CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 ++# CONFIG_IIO_SW_DEVICE is not set ++# CONFIG_IIO_SW_TRIGGER is not set ++ ++# ++# Accelerometers ++# ++# CONFIG_ADIS16201 is not set ++# CONFIG_ADIS16209 is not set ++# CONFIG_ADXL345_I2C is not set ++# CONFIG_ADXL345_SPI is not set ++# CONFIG_BMA180 is not set ++# CONFIG_BMA220 is not set ++# CONFIG_BMC150_ACCEL is not set ++# CONFIG_DA280 is not set ++# CONFIG_DA311 is not set ++# CONFIG_DMARD06 is not set ++# CONFIG_DMARD09 is not set ++# CONFIG_DMARD10 is not set ++# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set ++# CONFIG_IIO_ST_ACCEL_3AXIS is not set ++# CONFIG_KXSD9 is not set ++# CONFIG_KXCJK1013 is not set ++# CONFIG_MC3230 is not set ++# CONFIG_MMA7455_I2C is not set ++# CONFIG_MMA7455_SPI is not set ++# CONFIG_MMA7660 is not set ++# CONFIG_MMA8452 is not set ++# CONFIG_MMA9551 is not set ++# CONFIG_MMA9553 is not set ++# CONFIG_MXC4005 is not set ++# CONFIG_MXC6255 is not set ++# CONFIG_SCA3000 is not set ++# CONFIG_STK8312 is not set ++# CONFIG_STK8BA50 is not set ++ ++# ++# Analog to digital converters ++# ++# CONFIG_AD7266 is not set ++# CONFIG_AD7291 is not set ++# CONFIG_AD7298 is not set ++# CONFIG_AD7476 is not set ++# CONFIG_AD7766 is not set ++# CONFIG_AD7791 is not set ++# CONFIG_AD7793 is not set ++# CONFIG_AD7887 is not set ++# CONFIG_AD7923 is not set ++# CONFIG_AD799X is not set ++# CONFIG_CC10001_ADC is not set ++# CONFIG_ENVELOPE_DETECTOR is not set ++# CONFIG_HI8435 is not set ++# CONFIG_HX711 is not set ++# CONFIG_INA2XX_ADC is not set ++# CONFIG_LTC2471 is not set ++# CONFIG_LTC2485 is not set ++# CONFIG_LTC2497 is not set ++# CONFIG_MAX1027 is not set ++# CONFIG_MAX11100 is not set ++# CONFIG_MAX1118 is not set ++# CONFIG_MAX1363 is not set ++# CONFIG_MAX9611 is not set ++# CONFIG_MCP320X is not set ++# CONFIG_MCP3422 is not set ++# CONFIG_NAU7802 is not set ++# CONFIG_SD_ADC_MODULATOR is not set ++# CONFIG_TI_ADC081C is not set ++# CONFIG_TI_ADC0832 is not set ++# CONFIG_TI_ADC084S021 is not set ++# CONFIG_TI_ADC12138 is not set ++# CONFIG_TI_ADC108S102 is not set ++# CONFIG_TI_ADC128S052 is not set ++# CONFIG_TI_ADC161S626 is not set ++# CONFIG_TI_ADS1015 is not set ++# CONFIG_TI_ADS7950 is not set ++# CONFIG_TI_ADS8688 is not set ++# CONFIG_TI_TLC4541 is not set ++# CONFIG_VF610_ADC is not set ++CONFIG_XILINX_XADC=y ++ ++# ++# Analog Front Ends ++# ++# CONFIG_IIO_RESCALE is not set ++ ++# ++# Amplifiers ++# ++# CONFIG_AD8366 is not set ++ ++# ++# Chemical Sensors ++# ++# CONFIG_ATLAS_PH_SENSOR is not set ++# CONFIG_BME680 is not set ++# CONFIG_CCS811 is not set ++# CONFIG_IAQCORE is not set ++# CONFIG_VZ89X is not set ++ ++# ++# Hid Sensor IIO Common ++# ++ ++# ++# SSP Sensor Common ++# ++# CONFIG_IIO_SSP_SENSORHUB is not set ++ ++# ++# Counters ++# ++ ++# ++# Digital to analog converters ++# ++# CONFIG_AD5064 is not set ++# CONFIG_AD5360 is not set ++# CONFIG_AD5380 is not set ++# CONFIG_AD5421 is not set ++# CONFIG_AD5446 is not set ++# CONFIG_AD5449 is not set ++# CONFIG_AD5592R is not set ++# CONFIG_AD5593R is not set ++# CONFIG_AD5504 is not set ++# CONFIG_AD5624R_SPI is not set ++# CONFIG_LTC2632 is not set ++# CONFIG_AD5686_SPI is not set ++# CONFIG_AD5696_I2C is not set ++# CONFIG_AD5755 is not set ++# CONFIG_AD5758 is not set ++# CONFIG_AD5761 is not set ++# CONFIG_AD5764 is not set ++# CONFIG_AD5791 is not set ++# CONFIG_AD7303 is not set ++# CONFIG_AD8801 is not set ++# CONFIG_DPOT_DAC is not set ++# CONFIG_DS4424 is not set ++# CONFIG_M62332 is not set ++# CONFIG_MAX517 is not set ++# CONFIG_MAX5821 is not set ++# CONFIG_MCP4725 is not set ++# CONFIG_MCP4922 is not set ++# CONFIG_TI_DAC082S085 is not set ++# CONFIG_TI_DAC5571 is not set ++# CONFIG_VF610_DAC is not set ++ ++# ++# IIO dummy driver ++# ++ ++# ++# Frequency Synthesizers DDS/PLL ++# ++ ++# ++# Clock Generator/Distribution ++# ++# CONFIG_AD9523 is not set ++ ++# ++# Phase-Locked Loop (PLL) frequency synthesizers ++# ++# CONFIG_ADF4350 is not set ++ ++# ++# Digital gyroscope sensors ++# ++# CONFIG_ADIS16080 is not set ++# CONFIG_ADIS16130 is not set ++# CONFIG_ADIS16136 is not set ++# CONFIG_ADIS16260 is not set ++# CONFIG_ADXRS450 is not set ++# CONFIG_BMG160 is not set ++# CONFIG_MPU3050_I2C is not set ++# CONFIG_IIO_ST_GYRO_3AXIS is not set ++# CONFIG_ITG3200 is not set ++ ++# ++# Health Sensors ++# ++ ++# ++# Heart Rate Monitors ++# ++# CONFIG_AFE4403 is not set ++# CONFIG_AFE4404 is not set ++# CONFIG_MAX30100 is not set ++# CONFIG_MAX30102 is not set ++ ++# ++# Humidity sensors ++# ++# CONFIG_AM2315 is not set ++# CONFIG_DHT11 is not set ++# CONFIG_HDC100X is not set ++# CONFIG_HTS221 is not set ++# CONFIG_HTU21 is not set ++# CONFIG_SI7005 is not set ++# CONFIG_SI7020 is not set ++ ++# ++# Inertial measurement units ++# ++# CONFIG_ADIS16400 is not set ++# CONFIG_ADIS16480 is not set ++# CONFIG_BMI160_I2C is not set ++# CONFIG_BMI160_SPI is not set ++# CONFIG_KMX61 is not set ++# CONFIG_INV_MPU6050_I2C is not set ++# CONFIG_INV_MPU6050_SPI is not set ++# CONFIG_IIO_ST_LSM6DSX is not set ++ ++# ++# Light sensors ++# ++# CONFIG_ADJD_S311 is not set ++# CONFIG_AL3320A is not set ++# CONFIG_APDS9300 is not set ++# CONFIG_APDS9960 is not set ++# CONFIG_BH1750 is not set ++# CONFIG_BH1780 is not set ++# CONFIG_CM32181 is not set ++# CONFIG_CM3232 is not set ++# CONFIG_CM3323 is not set ++# CONFIG_CM3605 is not set ++# CONFIG_CM36651 is not set ++# CONFIG_GP2AP020A00F is not set ++# CONFIG_SENSORS_ISL29018 is not set ++# CONFIG_SENSORS_ISL29028 is not set ++# CONFIG_ISL29125 is not set ++# CONFIG_JSA1212 is not set ++# CONFIG_RPR0521 is not set ++# CONFIG_LTR501 is not set ++# CONFIG_LV0104CS is not set ++# CONFIG_MAX44000 is not set ++# CONFIG_OPT3001 is not set ++# CONFIG_PA12203001 is not set ++# CONFIG_SI1133 is not set ++# CONFIG_SI1145 is not set ++# CONFIG_STK3310 is not set ++# CONFIG_ST_UVIS25 is not set ++# CONFIG_TCS3414 is not set ++# CONFIG_TCS3472 is not set ++# CONFIG_SENSORS_TSL2563 is not set ++# CONFIG_TSL2583 is not set ++# CONFIG_TSL2772 is not set ++# CONFIG_TSL4531 is not set ++# CONFIG_US5182D is not set ++# CONFIG_VCNL4000 is not set ++# CONFIG_VEML6070 is not set ++# CONFIG_VL6180 is not set ++# CONFIG_ZOPT2201 is not set ++ ++# ++# Magnetometer sensors ++# ++# CONFIG_AK8974 is not set ++# CONFIG_AK8975 is not set ++# CONFIG_AK09911 is not set ++# CONFIG_BMC150_MAGN_I2C is not set ++# CONFIG_BMC150_MAGN_SPI is not set ++# CONFIG_MAG3110 is not set ++# CONFIG_MMC35240 is not set ++# CONFIG_IIO_ST_MAGN_3AXIS is not set ++# CONFIG_SENSORS_HMC5843_I2C is not set ++# CONFIG_SENSORS_HMC5843_SPI is not set ++ ++# ++# Multiplexers ++# ++# CONFIG_IIO_MUX is not set ++ ++# ++# Inclinometer sensors ++# ++ ++# ++# Triggers - standalone ++# ++# CONFIG_IIO_INTERRUPT_TRIGGER is not set ++# CONFIG_IIO_SYSFS_TRIGGER is not set ++ ++# ++# Digital potentiometers ++# ++# CONFIG_AD5272 is not set ++# CONFIG_DS1803 is not set ++# CONFIG_MAX5481 is not set ++# CONFIG_MAX5487 is not set ++# CONFIG_MCP4018 is not set ++# CONFIG_MCP4131 is not set ++# CONFIG_MCP4531 is not set ++# CONFIG_TPL0102 is not set ++ ++# ++# Digital potentiostats ++# ++# CONFIG_LMP91000 is not set ++ ++# ++# Pressure sensors ++# ++# CONFIG_ABP060MG is not set ++# CONFIG_BMP280 is not set ++# CONFIG_HP03 is not set ++# CONFIG_MPL115_I2C is not set ++# CONFIG_MPL115_SPI is not set ++# CONFIG_MPL3115 is not set ++# CONFIG_MS5611 is not set ++# CONFIG_MS5637 is not set ++# CONFIG_IIO_ST_PRESS is not set ++# CONFIG_T5403 is not set ++# CONFIG_HP206C is not set ++# CONFIG_ZPA2326 is not set ++ ++# ++# Lightning sensors ++# ++# CONFIG_AS3935 is not set ++ ++# ++# Proximity and distance sensors ++# ++# CONFIG_ISL29501 is not set ++# CONFIG_LIDAR_LITE_V2 is not set ++# CONFIG_RFD77402 is not set ++# CONFIG_SRF04 is not set ++# CONFIG_SX9500 is not set ++# CONFIG_SRF08 is not set ++ ++# ++# Resolver to digital converters ++# ++# CONFIG_AD2S1200 is not set ++ ++# ++# Temperature sensors ++# ++# CONFIG_MAXIM_THERMOCOUPLE is not set ++# CONFIG_MLX90614 is not set ++# CONFIG_MLX90632 is not set ++# CONFIG_TMP006 is not set ++# CONFIG_TMP007 is not set ++# CONFIG_TSYS01 is not set ++# CONFIG_TSYS02D is not set ++# CONFIG_NTB is not set ++# CONFIG_VME_BUS is not set ++# CONFIG_PWM is not set ++ ++# ++# IRQ chip support ++# ++CONFIG_IRQCHIP=y ++CONFIG_ARM_GIC=y ++CONFIG_ARM_GIC_MAX_NR=1 ++# CONFIG_IPACK_BUS is not set ++CONFIG_ARCH_HAS_RESET_CONTROLLER=y ++CONFIG_RESET_CONTROLLER=y ++CONFIG_RESET_SIMPLE=y ++# CONFIG_RESET_TI_SYSCON is not set ++CONFIG_RESET_ZYNQ=y ++# CONFIG_FMC is not set ++ ++# ++# PHY Subsystem ++# ++# CONFIG_GENERIC_PHY is not set ++# CONFIG_BCM_KONA_USB2_PHY is not set ++# CONFIG_PHY_PXA_28NM_HSIC is not set ++# CONFIG_PHY_PXA_28NM_USB2 is not set ++# CONFIG_PHY_CPCAP_USB is not set ++# CONFIG_PHY_MAPPHONE_MDM6600 is not set ++# CONFIG_PHY_QCOM_USB_HS is not set ++# CONFIG_PHY_QCOM_USB_HSIC is not set ++# CONFIG_PHY_SAMSUNG_USB2 is not set ++# CONFIG_PHY_TUSB1210 is not set ++# CONFIG_POWERCAP is not set ++# CONFIG_MCB is not set ++ ++# ++# Performance monitor support ++# ++# CONFIG_ARM_CCI_PMU is not set ++# CONFIG_ARM_CCN is not set ++CONFIG_ARM_PMU=y ++CONFIG_RAS=y ++ ++# ++# Android ++# ++# CONFIG_ANDROID is not set ++# CONFIG_DAX is not set ++CONFIG_NVMEM=y ++ ++# ++# HW tracing support ++# ++# CONFIG_STM is not set ++# CONFIG_INTEL_TH is not set ++CONFIG_FPGA=y ++CONFIG_FPGA_MGR_SOCFPGA=y ++# CONFIG_FPGA_MGR_SOCFPGA_A10 is not set ++CONFIG_ALTERA_PR_IP_CORE=y ++CONFIG_ALTERA_PR_IP_CORE_PLAT=y ++# CONFIG_FPGA_MGR_ALTERA_PS_SPI is not set ++# CONFIG_FPGA_MGR_ALTERA_CVP is not set ++CONFIG_FPGA_MGR_ZYNQ_FPGA=y ++# CONFIG_FPGA_MGR_XILINX_SPI is not set ++# CONFIG_FPGA_MGR_ICE40_SPI is not set ++# CONFIG_FPGA_MGR_MACHXO2_SPI is not set ++CONFIG_FPGA_BRIDGE=y ++CONFIG_SOCFPGA_FPGA_BRIDGE=y ++CONFIG_ALTERA_FREEZE_BRIDGE=y ++CONFIG_XILINX_PR_DECOUPLER=y ++CONFIG_FPGA_REGION=y ++CONFIG_OF_FPGA_REGION=y ++# CONFIG_FPGA_DFL is not set ++# CONFIG_FSI is not set ++# CONFIG_TEE is not set ++# CONFIG_SIOX is not set ++# CONFIG_SLIMBUS is not set ++ ++# ++# File systems ++# ++CONFIG_DCACHE_WORD_ACCESS=y ++CONFIG_FS_IOMAP=y ++CONFIG_EXT2_FS=y ++CONFIG_EXT2_FS_XATTR=y ++CONFIG_EXT2_FS_POSIX_ACL=y ++# CONFIG_EXT2_FS_SECURITY is not set ++CONFIG_EXT3_FS=y ++# CONFIG_EXT3_FS_POSIX_ACL is not set ++# CONFIG_EXT3_FS_SECURITY is not set ++CONFIG_EXT4_FS=y ++# CONFIG_EXT4_FS_POSIX_ACL is not set ++# CONFIG_EXT4_FS_SECURITY is not set ++# CONFIG_EXT4_ENCRYPTION is not set ++# CONFIG_EXT4_DEBUG is not set ++CONFIG_JBD2=y ++# CONFIG_JBD2_DEBUG is not set ++CONFIG_FS_MBCACHE=y ++# CONFIG_REISERFS_FS is not set ++# CONFIG_JFS_FS is not set ++# CONFIG_XFS_FS is not set ++# CONFIG_GFS2_FS is not set ++# CONFIG_OCFS2_FS is not set ++# CONFIG_BTRFS_FS is not set ++# CONFIG_NILFS2_FS is not set ++# CONFIG_F2FS_FS is not set ++CONFIG_FS_POSIX_ACL=y ++CONFIG_EXPORTFS=y ++# CONFIG_EXPORTFS_BLOCK_OPS is not set ++CONFIG_FILE_LOCKING=y ++CONFIG_MANDATORY_FILE_LOCKING=y ++# CONFIG_FS_ENCRYPTION is not set ++CONFIG_FSNOTIFY=y ++# CONFIG_DNOTIFY is not set ++CONFIG_INOTIFY_USER=y ++# CONFIG_FANOTIFY is not set ++# CONFIG_QUOTA is not set ++# CONFIG_AUTOFS4_FS is not set ++# CONFIG_AUTOFS_FS is not set ++# CONFIG_FUSE_FS is not set ++# CONFIG_OVERLAY_FS is not set ++ ++# ++# Caches ++# ++# CONFIG_FSCACHE is not set ++ ++# ++# CD-ROM/DVD Filesystems ++# ++# CONFIG_ISO9660_FS is not set ++# CONFIG_UDF_FS is not set ++ ++# ++# DOS/FAT/NT Filesystems ++# ++CONFIG_FAT_FS=y ++CONFIG_MSDOS_FS=y ++CONFIG_VFAT_FS=y ++CONFIG_FAT_DEFAULT_CODEPAGE=437 ++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" ++# CONFIG_FAT_DEFAULT_UTF8 is not set ++CONFIG_NTFS_FS=y ++# CONFIG_NTFS_DEBUG is not set ++CONFIG_NTFS_RW=y ++ ++# ++# Pseudo filesystems ++# ++CONFIG_PROC_FS=y ++CONFIG_PROC_SYSCTL=y ++CONFIG_PROC_PAGE_MONITOR=y ++# CONFIG_PROC_CHILDREN is not set ++CONFIG_KERNFS=y ++CONFIG_SYSFS=y ++CONFIG_TMPFS=y ++# CONFIG_TMPFS_POSIX_ACL is not set ++# CONFIG_TMPFS_XATTR is not set ++CONFIG_MEMFD_CREATE=y ++CONFIG_CONFIGFS_FS=y ++CONFIG_MISC_FILESYSTEMS=y ++# CONFIG_ORANGEFS_FS is not set ++# CONFIG_ADFS_FS is not set ++# CONFIG_AFFS_FS is not set ++# CONFIG_ECRYPT_FS is not set ++# CONFIG_HFS_FS is not set ++# CONFIG_HFSPLUS_FS is not set ++# CONFIG_BEFS_FS is not set ++# CONFIG_BFS_FS is not set ++# CONFIG_EFS_FS is not set ++CONFIG_JFFS2_FS=y ++CONFIG_JFFS2_FS_DEBUG=0 ++CONFIG_JFFS2_FS_WRITEBUFFER=y ++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set ++CONFIG_JFFS2_SUMMARY=y ++# CONFIG_JFFS2_FS_XATTR is not set ++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set ++CONFIG_JFFS2_ZLIB=y ++CONFIG_JFFS2_RTIME=y ++# CONFIG_CRAMFS is not set ++# CONFIG_SQUASHFS is not set ++# CONFIG_VXFS_FS is not set ++# CONFIG_MINIX_FS is not set ++# CONFIG_OMFS_FS is not set ++# CONFIG_HPFS_FS is not set ++# CONFIG_QNX4FS_FS is not set ++# CONFIG_QNX6FS_FS is not set ++# CONFIG_ROMFS_FS is not set ++# CONFIG_PSTORE is not set ++# CONFIG_SYSV_FS is not set ++# CONFIG_UFS_FS is not set ++CONFIG_NETWORK_FILESYSTEMS=y ++CONFIG_NFS_FS=y ++CONFIG_NFS_V2=y ++CONFIG_NFS_V3=y ++# CONFIG_NFS_V3_ACL is not set ++# CONFIG_NFS_V4 is not set ++# CONFIG_NFS_SWAP is not set ++CONFIG_ROOT_NFS=y ++# CONFIG_NFSD is not set ++CONFIG_GRACE_PERIOD=y ++CONFIG_LOCKD=y ++CONFIG_LOCKD_V4=y ++CONFIG_NFS_COMMON=y ++CONFIG_SUNRPC=y ++# CONFIG_SUNRPC_DEBUG is not set ++# CONFIG_CEPH_FS is not set ++# CONFIG_CIFS is not set ++# CONFIG_CODA_FS is not set ++# CONFIG_AFS_FS is not set ++CONFIG_NLS=y ++CONFIG_NLS_DEFAULT="iso8859-1" ++CONFIG_NLS_CODEPAGE_437=y ++# CONFIG_NLS_CODEPAGE_737 is not set ++# CONFIG_NLS_CODEPAGE_775 is not set ++# CONFIG_NLS_CODEPAGE_850 is not set ++# CONFIG_NLS_CODEPAGE_852 is not set ++# CONFIG_NLS_CODEPAGE_855 is not set ++# CONFIG_NLS_CODEPAGE_857 is not set ++# CONFIG_NLS_CODEPAGE_860 is not set ++# CONFIG_NLS_CODEPAGE_861 is not set ++# CONFIG_NLS_CODEPAGE_862 is not set ++# CONFIG_NLS_CODEPAGE_863 is not set ++# CONFIG_NLS_CODEPAGE_864 is not set ++# CONFIG_NLS_CODEPAGE_865 is not set ++# CONFIG_NLS_CODEPAGE_866 is not set ++# CONFIG_NLS_CODEPAGE_869 is not set ++# CONFIG_NLS_CODEPAGE_936 is not set ++# CONFIG_NLS_CODEPAGE_950 is not set ++# CONFIG_NLS_CODEPAGE_932 is not set ++# CONFIG_NLS_CODEPAGE_949 is not set ++# CONFIG_NLS_CODEPAGE_874 is not set ++# CONFIG_NLS_ISO8859_8 is not set ++# CONFIG_NLS_CODEPAGE_1250 is not set ++# CONFIG_NLS_CODEPAGE_1251 is not set ++CONFIG_NLS_ASCII=y ++CONFIG_NLS_ISO8859_1=y ++# CONFIG_NLS_ISO8859_2 is not set ++# CONFIG_NLS_ISO8859_3 is not set ++# CONFIG_NLS_ISO8859_4 is not set ++# CONFIG_NLS_ISO8859_5 is not set ++# CONFIG_NLS_ISO8859_6 is not set ++# CONFIG_NLS_ISO8859_7 is not set ++# CONFIG_NLS_ISO8859_9 is not set ++# CONFIG_NLS_ISO8859_13 is not set ++# CONFIG_NLS_ISO8859_14 is not set ++# CONFIG_NLS_ISO8859_15 is not set ++# CONFIG_NLS_KOI8_R is not set ++# CONFIG_NLS_KOI8_U is not set ++# CONFIG_NLS_MAC_ROMAN is not set ++# CONFIG_NLS_MAC_CELTIC is not set ++# CONFIG_NLS_MAC_CENTEURO is not set ++# CONFIG_NLS_MAC_CROATIAN is not set ++# CONFIG_NLS_MAC_CYRILLIC is not set ++# CONFIG_NLS_MAC_GAELIC is not set ++# CONFIG_NLS_MAC_GREEK is not set ++# CONFIG_NLS_MAC_ICELAND is not set ++# CONFIG_NLS_MAC_INUIT is not set ++# CONFIG_NLS_MAC_ROMANIAN is not set ++# CONFIG_NLS_MAC_TURKISH is not set ++# CONFIG_NLS_UTF8 is not set ++# CONFIG_DLM is not set ++ ++# ++# Security options ++# ++CONFIG_KEYS=y ++# CONFIG_PERSISTENT_KEYRINGS is not set ++# CONFIG_BIG_KEYS is not set ++# CONFIG_ENCRYPTED_KEYS is not set ++# CONFIG_KEY_DH_OPERATIONS is not set ++# CONFIG_SECURITY_DMESG_RESTRICT is not set ++# CONFIG_SECURITY is not set ++# CONFIG_SECURITYFS is not set ++CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y ++# CONFIG_HARDENED_USERCOPY is not set ++# CONFIG_FORTIFY_SOURCE is not set ++# CONFIG_STATIC_USERMODEHELPER is not set ++CONFIG_DEFAULT_SECURITY_DAC=y ++CONFIG_DEFAULT_SECURITY="" ++CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# ++CONFIG_CRYPTO_ALGAPI=y ++CONFIG_CRYPTO_ALGAPI2=y ++CONFIG_CRYPTO_AEAD=m ++CONFIG_CRYPTO_AEAD2=y ++CONFIG_CRYPTO_BLKCIPHER=m ++CONFIG_CRYPTO_BLKCIPHER2=y ++CONFIG_CRYPTO_HASH=y ++CONFIG_CRYPTO_HASH2=y ++CONFIG_CRYPTO_RNG=m ++CONFIG_CRYPTO_RNG2=y ++CONFIG_CRYPTO_RNG_DEFAULT=m ++CONFIG_CRYPTO_AKCIPHER2=y ++CONFIG_CRYPTO_AKCIPHER=y ++CONFIG_CRYPTO_KPP2=y ++CONFIG_CRYPTO_ACOMP2=y ++CONFIG_CRYPTO_RSA=y ++# CONFIG_CRYPTO_DH is not set ++# CONFIG_CRYPTO_ECDH is not set ++CONFIG_CRYPTO_MANAGER=y ++CONFIG_CRYPTO_MANAGER2=y ++# CONFIG_CRYPTO_USER is not set ++CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y ++CONFIG_CRYPTO_GF128MUL=m ++CONFIG_CRYPTO_NULL=m ++CONFIG_CRYPTO_NULL2=y ++# CONFIG_CRYPTO_PCRYPT is not set ++CONFIG_CRYPTO_WORKQUEUE=y ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_MCRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++CONFIG_CRYPTO_CCM=m ++CONFIG_CRYPTO_GCM=m ++# CONFIG_CRYPTO_CHACHA20POLY1305 is not set ++# CONFIG_CRYPTO_AEGIS128 is not set ++# CONFIG_CRYPTO_AEGIS128L is not set ++# CONFIG_CRYPTO_AEGIS256 is not set ++# CONFIG_CRYPTO_MORUS640 is not set ++# CONFIG_CRYPTO_MORUS1280 is not set ++CONFIG_CRYPTO_SEQIV=m ++CONFIG_CRYPTO_ECHAINIV=m ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CFB is not set ++CONFIG_CRYPTO_CTR=m ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++# CONFIG_CRYPTO_KEYWRAP is not set ++ ++# ++# Hash modes ++# ++CONFIG_CRYPTO_CMAC=m ++CONFIG_CRYPTO_HMAC=m ++# CONFIG_CRYPTO_XCBC is not set ++# CONFIG_CRYPTO_VMAC is not set ++ ++# ++# Digest ++# ++CONFIG_CRYPTO_CRC32C=y ++# CONFIG_CRYPTO_CRC32 is not set ++# CONFIG_CRYPTO_CRCT10DIF is not set ++CONFIG_CRYPTO_GHASH=m ++# CONFIG_CRYPTO_POLY1305 is not set ++# CONFIG_CRYPTO_MD4 is not set ++# CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set ++# CONFIG_CRYPTO_RMD128 is not set ++# CONFIG_CRYPTO_RMD160 is not set ++# CONFIG_CRYPTO_RMD256 is not set ++# CONFIG_CRYPTO_RMD320 is not set ++# CONFIG_CRYPTO_SHA1 is not set ++CONFIG_CRYPTO_SHA256=m ++# CONFIG_CRYPTO_SHA512 is not set ++# CONFIG_CRYPTO_SHA3 is not set ++# CONFIG_CRYPTO_SM3 is not set ++# CONFIG_CRYPTO_TGR192 is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# ++CONFIG_CRYPTO_AES=y ++# CONFIG_CRYPTO_AES_TI is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++CONFIG_CRYPTO_ARC4=m ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set ++# CONFIG_CRYPTO_CAST5 is not set ++# CONFIG_CRYPTO_CAST6 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set ++# CONFIG_CRYPTO_KHAZAD is not set ++# CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_CHACHA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_SM4 is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# ++# CONFIG_CRYPTO_DEFLATE is not set ++# CONFIG_CRYPTO_LZO is not set ++# CONFIG_CRYPTO_842 is not set ++# CONFIG_CRYPTO_LZ4 is not set ++# CONFIG_CRYPTO_LZ4HC is not set ++# CONFIG_CRYPTO_ZSTD is not set ++ ++# ++# Random Number Generation ++# ++# CONFIG_CRYPTO_ANSI_CPRNG is not set ++CONFIG_CRYPTO_DRBG_MENU=m ++CONFIG_CRYPTO_DRBG_HMAC=y ++# CONFIG_CRYPTO_DRBG_HASH is not set ++# CONFIG_CRYPTO_DRBG_CTR is not set ++CONFIG_CRYPTO_DRBG=m ++CONFIG_CRYPTO_JITTERENTROPY=m ++# CONFIG_CRYPTO_USER_API_HASH is not set ++# CONFIG_CRYPTO_USER_API_SKCIPHER is not set ++# CONFIG_CRYPTO_USER_API_RNG is not set ++# CONFIG_CRYPTO_USER_API_AEAD is not set ++CONFIG_CRYPTO_HASH_INFO=y ++CONFIG_CRYPTO_HW=y ++# CONFIG_CRYPTO_DEV_HIFN_795X is not set ++# CONFIG_CRYPTO_DEV_CCREE is not set ++CONFIG_ASYMMETRIC_KEY_TYPE=y ++CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y ++CONFIG_X509_CERTIFICATE_PARSER=y ++CONFIG_PKCS7_MESSAGE_PARSER=y ++# CONFIG_PKCS7_TEST_KEY is not set ++# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set ++ ++# ++# Certificates for signature checking ++# ++CONFIG_SYSTEM_TRUSTED_KEYRING=y ++CONFIG_SYSTEM_TRUSTED_KEYS="" ++# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set ++# CONFIG_SECONDARY_TRUSTED_KEYRING is not set ++# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set ++ ++# ++# Library routines ++# ++CONFIG_BITREVERSE=y ++CONFIG_HAVE_ARCH_BITREVERSE=y ++CONFIG_RATIONAL=y ++CONFIG_GENERIC_STRNCPY_FROM_USER=y ++CONFIG_GENERIC_STRNLEN_USER=y ++CONFIG_GENERIC_NET_UTILS=y ++CONFIG_GENERIC_PCI_IOMAP=y ++CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y ++CONFIG_CRC_CCITT=m ++CONFIG_CRC16=y ++# CONFIG_CRC_T10DIF is not set ++CONFIG_CRC_ITU_T=m ++CONFIG_CRC32=y ++# CONFIG_CRC32_SELFTEST is not set ++CONFIG_CRC32_SLICEBY8=y ++# CONFIG_CRC32_SLICEBY4 is not set ++# CONFIG_CRC32_SARWATE is not set ++# CONFIG_CRC32_BIT is not set ++# CONFIG_CRC64 is not set ++# CONFIG_CRC4 is not set ++CONFIG_CRC7=m ++# CONFIG_LIBCRC32C is not set ++# CONFIG_CRC8 is not set ++# CONFIG_RANDOM32_SELFTEST is not set ++CONFIG_ZLIB_INFLATE=y ++CONFIG_ZLIB_DEFLATE=y ++CONFIG_LZO_DECOMPRESS=y ++CONFIG_LZ4_DECOMPRESS=y ++CONFIG_XZ_DEC=y ++CONFIG_XZ_DEC_X86=y ++CONFIG_XZ_DEC_POWERPC=y ++CONFIG_XZ_DEC_IA64=y ++CONFIG_XZ_DEC_ARM=y ++CONFIG_XZ_DEC_ARMTHUMB=y ++CONFIG_XZ_DEC_SPARC=y ++CONFIG_XZ_DEC_BCJ=y ++# CONFIG_XZ_DEC_TEST is not set ++CONFIG_DECOMPRESS_GZIP=y ++CONFIG_DECOMPRESS_BZIP2=y ++CONFIG_DECOMPRESS_LZMA=y ++CONFIG_DECOMPRESS_XZ=y ++CONFIG_DECOMPRESS_LZO=y ++CONFIG_DECOMPRESS_LZ4=y ++CONFIG_GENERIC_ALLOCATOR=y ++CONFIG_ASSOCIATIVE_ARRAY=y ++CONFIG_HAS_IOMEM=y ++CONFIG_HAS_DMA=y ++CONFIG_NEED_DMA_MAP_STATE=y ++CONFIG_HAVE_GENERIC_DMA_COHERENT=y ++CONFIG_SGL_ALLOC=y ++CONFIG_CPU_RMAP=y ++CONFIG_DQL=y ++CONFIG_GLOB=y ++# CONFIG_GLOB_SELFTEST is not set ++CONFIG_NLATTR=y ++CONFIG_CLZ_TAB=y ++# CONFIG_CORDIC is not set ++# CONFIG_DDR is not set ++# CONFIG_IRQ_POLL is not set ++CONFIG_MPILIB=y ++CONFIG_LIBFDT=y ++CONFIG_OID_REGISTRY=y ++CONFIG_FONT_SUPPORT=y ++CONFIG_FONTS=y ++CONFIG_FONT_8x8=y ++CONFIG_FONT_8x16=y ++# CONFIG_FONT_6x11 is not set ++# CONFIG_FONT_7x14 is not set ++# CONFIG_FONT_PEARL_8x8 is not set ++# CONFIG_FONT_ACORN_8x8 is not set ++# CONFIG_FONT_MINI_4x6 is not set ++# CONFIG_FONT_6x10 is not set ++# CONFIG_FONT_10x18 is not set ++# CONFIG_FONT_SUN8x16 is not set ++# CONFIG_FONT_SUN12x22 is not set ++CONFIG_SG_POOL=y ++CONFIG_ARCH_HAS_SG_CHAIN=y ++CONFIG_SBITMAP=y ++# CONFIG_STRING_SELFTEST is not set ++ ++# ++# Kernel hacking ++# ++ ++# ++# printk and dmesg options ++# ++CONFIG_PRINTK_TIME=y ++CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 ++CONFIG_CONSOLE_LOGLEVEL_QUIET=4 ++CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 ++# CONFIG_BOOT_PRINTK_DELAY is not set ++CONFIG_DYNAMIC_DEBUG=y ++ ++# ++# Compile-time checks and compiler options ++# ++CONFIG_DEBUG_INFO=y ++# CONFIG_DEBUG_INFO_REDUCED is not set ++# CONFIG_DEBUG_INFO_SPLIT is not set ++# CONFIG_DEBUG_INFO_DWARF4 is not set ++# CONFIG_GDB_SCRIPTS is not set ++CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 ++# CONFIG_STRIP_ASM_SYMS is not set ++# CONFIG_READABLE_ASM is not set ++# CONFIG_UNUSED_SYMBOLS is not set ++# CONFIG_PAGE_OWNER is not set ++CONFIG_DEBUG_FS=y ++# CONFIG_HEADERS_CHECK is not set ++# CONFIG_DEBUG_SECTION_MISMATCH is not set ++CONFIG_SECTION_MISMATCH_WARN_ONLY=y ++# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set ++CONFIG_MAGIC_SYSRQ=y ++CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 ++CONFIG_MAGIC_SYSRQ_SERIAL=y ++CONFIG_DEBUG_KERNEL=y ++ ++# ++# Memory Debugging ++# ++# CONFIG_PAGE_EXTENSION is not set ++# CONFIG_DEBUG_PAGEALLOC is not set ++# CONFIG_PAGE_POISONING is not set ++# CONFIG_DEBUG_RODATA_TEST is not set ++# CONFIG_DEBUG_OBJECTS is not set ++# CONFIG_DEBUG_SLAB is not set ++CONFIG_HAVE_DEBUG_KMEMLEAK=y ++# CONFIG_DEBUG_KMEMLEAK is not set ++# CONFIG_DEBUG_STACK_USAGE is not set ++# CONFIG_DEBUG_VM is not set ++CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y ++# CONFIG_DEBUG_VIRTUAL is not set ++# CONFIG_DEBUG_MEMORY_INIT is not set ++# CONFIG_DEBUG_PER_CPU_MAPS is not set ++# CONFIG_DEBUG_HIGHMEM is not set ++CONFIG_ARCH_HAS_KCOV=y ++# CONFIG_DEBUG_SHIRQ is not set ++ ++# ++# Debug Lockups and Hangs ++# ++# CONFIG_SOFTLOCKUP_DETECTOR is not set ++CONFIG_DETECT_HUNG_TASK=y ++CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 ++# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set ++CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 ++# CONFIG_WQ_WATCHDOG is not set ++# CONFIG_PANIC_ON_OOPS is not set ++CONFIG_PANIC_ON_OOPS_VALUE=0 ++CONFIG_PANIC_TIMEOUT=0 ++# CONFIG_SCHED_DEBUG is not set ++# CONFIG_SCHEDSTATS is not set ++# CONFIG_SCHED_STACK_END_CHECK is not set ++# CONFIG_DEBUG_TIMEKEEPING is not set ++# CONFIG_DEBUG_PREEMPT is not set ++ ++# ++# Lock Debugging (spinlocks, mutexes, etc...) ++# ++CONFIG_LOCK_DEBUGGING_SUPPORT=y ++# CONFIG_PROVE_LOCKING is not set ++# CONFIG_LOCK_STAT is not set ++# CONFIG_DEBUG_RT_MUTEXES is not set ++# CONFIG_DEBUG_SPINLOCK is not set ++# CONFIG_DEBUG_MUTEXES is not set ++# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set ++# CONFIG_DEBUG_RWSEMS is not set ++# CONFIG_DEBUG_LOCK_ALLOC is not set ++# CONFIG_DEBUG_ATOMIC_SLEEP is not set ++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set ++# CONFIG_LOCK_TORTURE_TEST is not set ++# CONFIG_WW_MUTEX_SELFTEST is not set ++# CONFIG_STACKTRACE is not set ++# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set ++# CONFIG_DEBUG_KOBJECT is not set ++CONFIG_DEBUG_BUGVERBOSE=y ++# CONFIG_DEBUG_LIST is not set ++# CONFIG_DEBUG_PI_LIST is not set ++# CONFIG_DEBUG_SG is not set ++# CONFIG_DEBUG_NOTIFIERS is not set ++# CONFIG_DEBUG_CREDENTIALS is not set ++ ++# ++# RCU Debugging ++# ++# CONFIG_RCU_PERF_TEST is not set ++# CONFIG_RCU_TORTURE_TEST is not set ++CONFIG_RCU_CPU_STALL_TIMEOUT=60 ++# CONFIG_RCU_TRACE is not set ++# CONFIG_RCU_EQS_DEBUG is not set ++# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set ++# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set ++# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set ++# CONFIG_NOTIFIER_ERROR_INJECTION is not set ++# CONFIG_FAULT_INJECTION is not set ++# CONFIG_LATENCYTOP is not set ++CONFIG_HAVE_FUNCTION_TRACER=y ++CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y ++CONFIG_HAVE_DYNAMIC_FTRACE=y ++CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y ++CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y ++CONFIG_HAVE_SYSCALL_TRACEPOINTS=y ++CONFIG_HAVE_C_RECORDMCOUNT=y ++CONFIG_TRACE_CLOCK=y ++CONFIG_RING_BUFFER=y ++CONFIG_RING_BUFFER_ALLOW_SWAP=y ++CONFIG_TRACING_SUPPORT=y ++# CONFIG_FTRACE is not set ++# CONFIG_DMA_API_DEBUG is not set ++CONFIG_RUNTIME_TESTING_MENU=y ++# CONFIG_LKDTM is not set ++# CONFIG_TEST_LIST_SORT is not set ++# CONFIG_TEST_SORT is not set ++# CONFIG_BACKTRACE_SELF_TEST is not set ++# CONFIG_RBTREE_TEST is not set ++# CONFIG_INTERVAL_TREE_TEST is not set ++# CONFIG_PERCPU_TEST is not set ++# CONFIG_ATOMIC64_SELFTEST is not set ++# CONFIG_TEST_HEXDUMP is not set ++# CONFIG_TEST_STRING_HELPERS is not set ++# CONFIG_TEST_KSTRTOX is not set ++# CONFIG_TEST_PRINTF is not set ++# CONFIG_TEST_BITMAP is not set ++# CONFIG_TEST_BITFIELD is not set ++# CONFIG_TEST_UUID is not set ++# CONFIG_TEST_OVERFLOW is not set ++# CONFIG_TEST_RHASHTABLE is not set ++# CONFIG_TEST_HASH is not set ++# CONFIG_TEST_IDA is not set ++# CONFIG_TEST_LKM is not set ++# CONFIG_TEST_USER_COPY is not set ++# CONFIG_TEST_BPF is not set ++# CONFIG_FIND_BIT_BENCHMARK is not set ++# CONFIG_TEST_FIRMWARE is not set ++# CONFIG_TEST_SYSCTL is not set ++# CONFIG_TEST_UDELAY is not set ++# CONFIG_TEST_STATIC_KEYS is not set ++# CONFIG_TEST_KMOD is not set ++# CONFIG_MEMTEST is not set ++# CONFIG_BUG_ON_DATA_CORRUPTION is not set ++# CONFIG_SAMPLES is not set ++CONFIG_HAVE_ARCH_KGDB=y ++# CONFIG_KGDB is not set ++# CONFIG_UBSAN is not set ++CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y ++# CONFIG_STRICT_DEVMEM is not set ++# CONFIG_ARM_PTDUMP_DEBUGFS is not set ++# CONFIG_DEBUG_WX is not set ++CONFIG_ARM_UNWIND=y ++CONFIG_DEBUG_USER=y ++# CONFIG_DEBUG_LL is not set ++CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" ++CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" ++# CONFIG_PID_IN_CONTEXTIDR is not set ++# CONFIG_CORESIGHT is not set diff --git a/scripts/build-linux-kernel.sh b/scripts/build-linux-kernel.sh index 60696fb..e37270c 100755 --- a/scripts/build-linux-kernel.sh +++ b/scripts/build-linux-kernel.sh @@ -1,34 +1,33 @@ #!/bin/bash CURRENT_DIR=`pwd` -LINUX_BUILD_DIR=linux-4.14.123-armv7-fpga +LINUX_BUILD_DIR=linux-4.19.55-armv7-fpga ### Download Linux Kernel Source -git clone --depth 1 -b v4.14.123 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git $LINUX_BUILD_DIR +git clone --depth 1 -b v4.19.55 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git $LINUX_BUILD_DIR cd $LINUX_BUILD_DIR -git checkout -b linux-4.14.123-armv7-fpga refs/tags/v4.14.123 +git checkout -b linux-4.19.55-armv7-fpga refs/tags/v4.19.55 ### Patch for armv7-fpga -patch -p1 < ../files/linux-4.14.123-armv7-fpga.diff +patch -p1 < ../files/linux-4.19.55-armv7-fpga.diff git add --update git add arch/arm/configs/armv7_fpga_defconfig git add arch/arm/boot/dts/zynq-pynqz1.dts -git add arch/arm/boot/dts/zynq-zybo-z7.dts git commit -m "patch for armv7-fpga" ### Patch for usb chipidea driver -patch -p1 < ../files/linux-4.14.123-armv7-fpga-patch-usb-chipidea.diff +patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff git add --update git commit -m "patch for usb chipidea driver for issue #3" ### Patch for build debian package script -patch -p1 < ../files/linux-4.14.123-armv7-fpga-patch-builddeb.diff +patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-builddeb.diff git add --update git commit -m "patch for scripts/package/builddeb to add tools/include and postinst script to header package" ### Create tag and .version -git tag -a v4.14.123-armv7-fpga -m "release v4.14.123-armv7-fpga" +git tag -a v4.19.55-armv7-fpga -m "release v4.19.55-armv7-fpga" echo 0 > .version ### Setup for Build @@ -45,28 +44,28 @@ make zynq-pynqz1.dtb make socfpga_cyclone5_de0_sockit.dtb ### Copy zImage and devicetree to tareget/zybo-zynq/boot/ -cp arch/arm/boot/zImage ../target/zynq-zybo/boot/vmlinuz-4.14.123-armv7-fpga -cp arch/arm/boot/dts/zynq-zybo.dtb ../target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo/boot/devicetree-4.14.123-zynq-zybo.dts arch/arm/boot/dts/zynq-zybo.dtb +cp arch/arm/boot/zImage ../target/zynq-zybo/boot/vmlinuz-4.19.55-armv7-fpga +cp arch/arm/boot/dts/zynq-zybo.dtb ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dts arch/arm/boot/dts/zynq-zybo.dtb ### Copy zImage and devicetree to tareget/zybo-zynq-z7/boot/ -cp arch/arm/boot/zImage ../target/zynq-zybo-z7/boot/vmlinuz-4.14.123-armv7-fpga -cp arch/arm/boot/dts/zynq-zybo-z7.dtb ../target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo-z7/boot/devicetree-4.14.123-zynq-zybo-z7.dts arch/arm/boot/dts/zynq-zybo-z7.dtb +cp arch/arm/boot/zImage ../target/zynq-zybo-z7/boot/vmlinuz-4.19.55-armv7-fpga +cp arch/arm/boot/dts/zynq-zybo-z7.dtb ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dts arch/arm/boot/dts/zynq-zybo-z7.dtb ### Copy zImage and devicetree to tareget/zybo-pynqz1/boot/ -cp arch/arm/boot/zImage ../target/zynq-pynqz1/boot/vmlinuz-4.14.123-armv7-fpga -cp arch/arm/boot/dts/zynq-pynqz1.dtb ../target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-pynqz1/boot/devicetree-4.14.123-zynq-pynqz1.dts arch/arm/boot/dts/zynq-pynqz1.dtb +cp arch/arm/boot/zImage ../target/zynq-pynqz1/boot/vmlinuz-4.19.55-armv7-fpga +cp arch/arm/boot/dts/zynq-pynqz1.dtb ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dts arch/arm/boot/dts/zynq-pynqz1.dtb ### Copy zImage and devicetree to tareget/de0-nano-soc/boot/ -cp arch/arm/boot/zImage ../target/de0-nano-soc/boot/vmlinuz-4.14.123-armv7-fpga -cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de0-nano-soc/boot/devicetree-4.14.123-socfpga.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de0-nano-soc/boot/devicetree-4.14.123-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +cp arch/arm/boot/zImage ../target/de0-nano-soc/boot/vmlinuz-4.19.55-armv7-fpga +cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ### Copy zImage and devicetree to tareget/de10-nano/boot/ -cp arch/arm/boot/zImage ../target/de10-nano/boot/vmlinuz-4.14.123-armv7-fpga -cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de10-nano/boot/devicetree-4.14.123-socfpga.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de10-nano/boot/devicetree-4.14.123-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +cp arch/arm/boot/zImage ../target/de10-nano/boot/vmlinuz-4.19.55-armv7-fpga +cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb cd .. From bef14e9e79a012d3a3405f5dd657e22611ad614e Mon Sep 17 00:00:00 2001 From: ikwzm Date: Sun, 23 Jun 2019 18:33:58 +0900 Subject: [PATCH 03/24] [update] doc/build/device-drivers.md --- doc/build/device-drivers.md | 42 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/doc/build/device-drivers.md b/doc/build/device-drivers.md index bd2b1ba..c690d74 100644 --- a/doc/build/device-drivers.md +++ b/doc/build/device-drivers.md @@ -1,25 +1,25 @@ ### Build Device Drivers and Services Package -#### dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb +#### dtbocfg-4.19.55-armv7-fpga_0.0.6-1_armhf.deb ##### Download repository ```console -shell$ git clone --recursive --depth=1 -b v0.0.6 git://github.com/ikwzm/dtbocfg-kmod-dpkg +shell$ git clone --recursive --depth=1 -b v0.0.7 git://github.com/ikwzm/dtbocfg-kmod-dpkg shell$ cd dtbocfg-kmod-dpkg ``` -##### Cross Compile for linux-4.14.123-armv7-fpga +##### Cross Compile for linux-4.19.55-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.14.123-armv7-fpga kernel_src_dir=../../linux-4.14.123-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../linux-4.19.55-armv7-fpga binary : : : -shell$ file ../dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb -../dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../dtbocfg-4.19.55-armv7-fpga_0.0.7-1_armhf.deb +../dtbocfg-4.19.55-armv7-fpga_0.0.7-1_armhf.deb: Debian binary package (format 2.0) ``` -#### udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb +#### udmabuf-4.19.55-armv7-fpga_1.4.1-1_armhf.deb ##### Download repository @@ -28,18 +28,18 @@ shell$ git clone --recursive --depth=1 -b v1.4.1 git://github.com/ikwzm/udmabuf- shell$ cd udmabuf-kmod-dpkg ``` -##### Cross Compile for linux-4.14.123-armv7-fpga +##### Cross Compile for linux-4.19.55-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.14.123-armv7-fpga kernel_src_dir=../../linux-4.14.123-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../linux-4.19.55-armv7-fpga binary : : : -shell$ file ../udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb -../udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../udmabuf-4.19.55-armv7-fpga_1.4.1-1_armhf.deb +../udmabuf-4.19.55-armv7-fpga_1.4.1-1_armhf.deb: Debian binary package (format 2.0) ``` -#### fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb +#### fclkcfg-4.19.55-armv7-fpga_1.1.0-1_armhf.deb ##### Download repository @@ -48,18 +48,18 @@ shell$ git clone --recursive --depth=1 -b v1.1.0 git://github.com/ikwzm/fclkcfg- shell$ cd fclkcfg-kmod-dpkg ``` -##### Cross Compile for linux-4.14.123-armv7-fpga +##### Cross Compile for linux-4.19.55-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.14.123-armv7-fpga kernel_src_dir=../../linux-4.14.123-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../linux-4.19.55-armv7-fpga binary : : : -shell$ file ../fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb -../fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../fclkcfg-4.19.55-armv7-fpga_1.1.0-1_armhf.deb +../fclkcfg-4.19.55-armv7-fpga_1.1.0-1_armhf.deb: Debian binary package (format 2.0) ``` -#### zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb +#### zptty-4.19.55-armv7-fpga_1.0.0-1_armhf.deb ##### Download repository @@ -68,15 +68,15 @@ shell$ git clone --recursive --depth=1 -b v1.0.0 git://github.com/ikwzm/zptty-km shell$ cd zptty-kmod-dpkg ``` -##### Cross Compile for linux-4.14.123-armv7-fpga +##### Cross Compile for linux-4.19.55-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.14.123-armv7-fpga kernel_src_dir=../../linux-4.14.123-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../../../../linux-4.19.55-armv7-fpga binary : : : -shell$ file ../zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb -../zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../zptty-4.19.55-armv7-fpga_1.0.0-1_armhf.deb +../zptty-4.19.55-armv7-fpga_1.0.0-1_armhf.deb: Debian binary package (format 2.0) ``` #### dtbocfg-ctrl_0.0.5-1_all.deb From da518f9daf1473bf8eacfec1895941c539f739fb Mon Sep 17 00:00:00 2001 From: ikwzm Date: Wed, 10 Jul 2019 08:11:17 +0900 Subject: [PATCH 04/24] [update] scripts and documents for build linux-kernel-4.19.57-armv7-fpga --- ...nel-4.19.55.md => linux-kernel-4.19.57.md} | 48 +++++++++---------- ...ux-4.19.57-armv7-fpga-patch-builddeb.diff} | 0 ....19.57-armv7-fpga-patch-usb-chipidea.diff} | 0 ...pga.diff => linux-4.19.57-armv7-fpga.diff} | 0 scripts/build-linux-kernel.sh | 44 ++++++++--------- 5 files changed, 46 insertions(+), 46 deletions(-) rename doc/build/{linux-kernel-4.19.55.md => linux-kernel-4.19.57.md} (68%) rename files/{linux-4.19.55-armv7-fpga-patch-builddeb.diff => linux-4.19.57-armv7-fpga-patch-builddeb.diff} (100%) rename files/{linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff => linux-4.19.57-armv7-fpga-patch-usb-chipidea.diff} (100%) rename files/{linux-4.19.55-armv7-fpga.diff => linux-4.19.57-armv7-fpga.diff} (100%) diff --git a/doc/build/linux-kernel-4.19.55.md b/doc/build/linux-kernel-4.19.57.md similarity index 68% rename from doc/build/linux-kernel-4.19.55.md rename to doc/build/linux-kernel-4.19.57.md index d915e28..28b1547 100644 --- a/doc/build/linux-kernel-4.19.55.md +++ b/doc/build/linux-kernel-4.19.57.md @@ -10,14 +10,14 @@ There are two ways ##### Clone from linux-stable.git ```console -shell$ git clone --depth 1 -b v4.19.55 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.55-armv7-fpga +shell$ git clone --depth 1 -b v4.19.57 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.57-armv7-fpga ``` -##### Checkout v4.19.55 +##### Checkout v4.19.57 ```console -shell$ cd linux-4.19.55-armv7-fpga -shell$ git checkout -b linux-4.19.55-armv7-fpga refs/tags/v4.19.55 +shell$ cd linux-4.19.57-armv7-fpga +shell$ git checkout -b linux-4.19.57-armv7-fpga refs/tags/v4.19.57 ``` #### Patch for armv7-fpga @@ -25,7 +25,7 @@ shell$ git checkout -b linux-4.19.55-armv7-fpga refs/tags/v4.19.55 ##### Patch for armv7-fpga ```console -shell$ patch -p1 < ../files/linux-4.19.55-armv7-fpga.diff +shell$ patch -p1 < ../files/linux-4.19.57-armv7-fpga.diff shell$ git add --update shell$ git add arch/arm/configs/armv7_fpga_defconfig shell$ git add arch/arm/boot/dts/zynq-pynqz1.dts @@ -35,7 +35,7 @@ shell$ git commit -m "patch for armv7-fpga" ##### Patch for usb chipidea driver ```console -shell$ patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff +shell$ patch -p1 < ../files/linux-4.19.57-armv7-fpga-patch-usb-chipidea.diff shell$ git add --update shell$ git commit -m "patch for usb chipidea driver for issue #3" ``` @@ -43,7 +43,7 @@ shell$ git commit -m "patch for usb chipidea driver for issue #3" ##### Patch for build debian package script ```console -shell$ patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-builddeb.diff +shell$ patch -p1 < ../files/linux-4.19.57-armv7-fpga-patch-builddeb.diff shell$ git add --update shell$ git commit -m "patch for scripts/package/builddeb to add tools/include and postinst script to header package" ``` @@ -51,14 +51,14 @@ shell$ git commit -m "patch for scripts/package/builddeb to add tools/include an ##### Create tag and .version ```console -shell$ git tag -a v4.19.55-armv7-fpga -m "release v4.19.55-armv7-fpga" +shell$ git tag -a v4.19.57-armv7-fpga -m "release v4.19.57-armv7-fpga" shell$ echo 0 > .version ``` #### Setup for Build ````console -shell$ cd linux-4.19.55-armv7-fpga +shell$ cd linux-4.19.57-armv7-fpga shell$ export ARCH=arm shell$ export CROSS_COMPILE=arm-linux-gnueabihf- shell$ make armv7_fpga_defconfig @@ -78,42 +78,42 @@ shell$ make socfpga_cyclone5_de0_sockit.dtb #### Copy zImage and devicetree to target/zybo-zynq/boot/ ```console -shell$ cp arch/arm/boot/zImage ../target/zynq-zybo/boot/vmlinuz-4.19.55-armv7-fpga -shell$ cp arch/arm/boot/dts/zynq-zybo.dtb ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dtb -shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dts arch/arm/boot/dts/zynq-zybo.dtb +shell$ cp arch/arm/boot/zImage ../target/zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga +shell$ cp arch/arm/boot/dts/zynq-zybo.dtb ../target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dts arch/arm/boot/dts/zynq-zybo.dtb ``` #### Copy zImage and devicetree to tareget/zybo-zynq-z7/boot/ ```console -shell$ cp arch/arm/boot/zImage ../target/zynq-zybo-z7/boot/vmlinuz-4.19.55-armv7-fpga -shell$ cp arch/arm/boot/dts/zynq-zybo-z7.dtb ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dtb -shell$ ./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dts arch/arm/boot/dts/zynq-zybo-z7.dtb +shell$ cp arch/arm/boot/zImage ../target/zynq-zybo-z7/boot/vmlinuz-4.19.57-armv7-fpga +shell$ cp arch/arm/boot/dts/zynq-zybo-z7.dtb ../target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dts arch/arm/boot/dts/zynq-zybo-z7.dtb ``` #### Copy zImage and devicetree to target/zybo-pynqz1/boot/ ```console -shell$ cp arch/arm/boot/zImage ../target/zynq-pynqz1/boot/vmlinuz-4.19.55-armv7-fpga -shell$ cp arch/arm/boot/dts/zynq-pynqz1.dtb ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dtb -shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dts arch/arm/boot/dts/zynq-pynqz1.dtb +shell$ cp arch/arm/boot/zImage ../target/zynq-pynqz1/boot/vmlinuz-4.19.57-armv7-fpga +shell$ cp arch/arm/boot/dts/zynq-pynqz1.dtb ../target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dts arch/arm/boot/dts/zynq-pynqz1.dtb ``` #### Copy zImage and devicetree to target/de0-nano-soc/boot/ ```console -shell$ cp arch/arm/boot/zImage ../target/de0-nano-soc/boot/vmlinuz-4.19.55-armv7-fpga -shell$ cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dtb -shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +shell$ cp arch/arm/boot/zImage ../target/de0-nano-soc/boot/vmlinuz-4.19.57-armv7-fpga +shell$ cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts -o ../target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ``` #### Copy zImage and devicetree to tareget/de10-nano/boot/ ```console -shell$ cp arch/arm/boot/zImage ../target/de10-nano/boot/vmlinuz-4.19.55-armv7-fpga -shell$ cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dtb -shell$ ./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +shell$ cp arch/arm/boot/zImage ../target/de10-nano/boot/vmlinuz-4.19.57-armv7-fpga +shell$ cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de10-nano/boot/devicetree-4.19.57-socfpga.dtb +shell$ ./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de10-nano/boot/devicetree-4.19.57-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ``` diff --git a/files/linux-4.19.55-armv7-fpga-patch-builddeb.diff b/files/linux-4.19.57-armv7-fpga-patch-builddeb.diff similarity index 100% rename from files/linux-4.19.55-armv7-fpga-patch-builddeb.diff rename to files/linux-4.19.57-armv7-fpga-patch-builddeb.diff diff --git a/files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff b/files/linux-4.19.57-armv7-fpga-patch-usb-chipidea.diff similarity index 100% rename from files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff rename to files/linux-4.19.57-armv7-fpga-patch-usb-chipidea.diff diff --git a/files/linux-4.19.55-armv7-fpga.diff b/files/linux-4.19.57-armv7-fpga.diff similarity index 100% rename from files/linux-4.19.55-armv7-fpga.diff rename to files/linux-4.19.57-armv7-fpga.diff diff --git a/scripts/build-linux-kernel.sh b/scripts/build-linux-kernel.sh index e37270c..857fac6 100755 --- a/scripts/build-linux-kernel.sh +++ b/scripts/build-linux-kernel.sh @@ -1,33 +1,33 @@ #!/bin/bash CURRENT_DIR=`pwd` -LINUX_BUILD_DIR=linux-4.19.55-armv7-fpga +LINUX_BUILD_DIR=linux-4.19.57-armv7-fpga ### Download Linux Kernel Source -git clone --depth 1 -b v4.19.55 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git $LINUX_BUILD_DIR +git clone --depth 1 -b v4.19.57 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git $LINUX_BUILD_DIR cd $LINUX_BUILD_DIR -git checkout -b linux-4.19.55-armv7-fpga refs/tags/v4.19.55 +git checkout -b linux-4.19.57-armv7-fpga refs/tags/v4.19.57 ### Patch for armv7-fpga -patch -p1 < ../files/linux-4.19.55-armv7-fpga.diff +patch -p1 < ../files/linux-4.19.57-armv7-fpga.diff git add --update git add arch/arm/configs/armv7_fpga_defconfig git add arch/arm/boot/dts/zynq-pynqz1.dts git commit -m "patch for armv7-fpga" ### Patch for usb chipidea driver -patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-usb-chipidea.diff +patch -p1 < ../files/linux-4.19.57-armv7-fpga-patch-usb-chipidea.diff git add --update git commit -m "patch for usb chipidea driver for issue #3" ### Patch for build debian package script -patch -p1 < ../files/linux-4.19.55-armv7-fpga-patch-builddeb.diff +patch -p1 < ../files/linux-4.19.57-armv7-fpga-patch-builddeb.diff git add --update git commit -m "patch for scripts/package/builddeb to add tools/include and postinst script to header package" ### Create tag and .version -git tag -a v4.19.55-armv7-fpga -m "release v4.19.55-armv7-fpga" +git tag -a v4.19.57-armv7-fpga -m "release v4.19.57-armv7-fpga" echo 0 > .version ### Setup for Build @@ -44,28 +44,28 @@ make zynq-pynqz1.dtb make socfpga_cyclone5_de0_sockit.dtb ### Copy zImage and devicetree to tareget/zybo-zynq/boot/ -cp arch/arm/boot/zImage ../target/zynq-zybo/boot/vmlinuz-4.19.55-armv7-fpga -cp arch/arm/boot/dts/zynq-zybo.dtb ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo/boot/devicetree-4.19.55-zynq-zybo.dts arch/arm/boot/dts/zynq-zybo.dtb +cp arch/arm/boot/zImage ../target/zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga +cp arch/arm/boot/dts/zynq-zybo.dtb ../target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dts arch/arm/boot/dts/zynq-zybo.dtb ### Copy zImage and devicetree to tareget/zybo-zynq-z7/boot/ -cp arch/arm/boot/zImage ../target/zynq-zybo-z7/boot/vmlinuz-4.19.55-armv7-fpga -cp arch/arm/boot/dts/zynq-zybo-z7.dtb ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo-z7/boot/devicetree-4.19.55-zynq-zybo-z7.dts arch/arm/boot/dts/zynq-zybo-z7.dtb +cp arch/arm/boot/zImage ../target/zynq-zybo-z7/boot/vmlinuz-4.19.57-armv7-fpga +cp arch/arm/boot/dts/zynq-zybo-z7.dtb ../target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dts arch/arm/boot/dts/zynq-zybo-z7.dtb ### Copy zImage and devicetree to tareget/zybo-pynqz1/boot/ -cp arch/arm/boot/zImage ../target/zynq-pynqz1/boot/vmlinuz-4.19.55-armv7-fpga -cp arch/arm/boot/dts/zynq-pynqz1.dtb ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-pynqz1/boot/devicetree-4.19.55-zynq-pynqz1.dts arch/arm/boot/dts/zynq-pynqz1.dtb +cp arch/arm/boot/zImage ../target/zynq-pynqz1/boot/vmlinuz-4.19.57-armv7-fpga +cp arch/arm/boot/dts/zynq-pynqz1.dtb ../target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dts arch/arm/boot/dts/zynq-pynqz1.dtb ### Copy zImage and devicetree to tareget/de0-nano-soc/boot/ -cp arch/arm/boot/zImage ../target/de0-nano-soc/boot/vmlinuz-4.19.55-armv7-fpga -cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de0-nano-soc/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +cp arch/arm/boot/zImage ../target/de0-nano-soc/boot/vmlinuz-4.19.57-armv7-fpga +cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ### Copy zImage and devicetree to tareget/de10-nano/boot/ -cp arch/arm/boot/zImage ../target/de10-nano/boot/vmlinuz-4.19.55-armv7-fpga -cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dtb -./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de10-nano/boot/devicetree-4.19.55-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb +cp arch/arm/boot/zImage ../target/de10-nano/boot/vmlinuz-4.19.57-armv7-fpga +cp arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb ../target/de10-nano/boot/devicetree-4.19.57-socfpga.dtb +./scripts/dtc/dtc -I dtb -O dts --symbols -o ../target/de10-nano/boot/devicetree-4.19.57-socfpga.dts arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dtb cd .. From 7d13d20566163b6ca7ad8cbc69df1779c3a86784 Mon Sep 17 00:00:00 2001 From: ikwzm Date: Wed, 10 Jul 2019 08:12:01 +0900 Subject: [PATCH 05/24] [update] doc/build/device-drivers.md for linux-kernel-4.19.57-armv7-fpga --- doc/build/device-drivers.md | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/doc/build/device-drivers.md b/doc/build/device-drivers.md index c690d74..9c6661e 100644 --- a/doc/build/device-drivers.md +++ b/doc/build/device-drivers.md @@ -1,6 +1,6 @@ ### Build Device Drivers and Services Package -#### dtbocfg-4.19.55-armv7-fpga_0.0.6-1_armhf.deb +#### dtbocfg-4.19.57-armv7-fpga_0.0.6-1_armhf.deb ##### Download repository @@ -8,18 +8,18 @@ shell$ git clone --recursive --depth=1 -b v0.0.7 git://github.com/ikwzm/dtbocfg-kmod-dpkg shell$ cd dtbocfg-kmod-dpkg ``` -##### Cross Compile for linux-4.19.55-armv7-fpga +##### Cross Compile for linux-4.19.57-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../linux-4.19.55-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.57-armv7-fpga kernel_src_dir=../../linux-4.19.57-armv7-fpga binary : : : -shell$ file ../dtbocfg-4.19.55-armv7-fpga_0.0.7-1_armhf.deb -../dtbocfg-4.19.55-armv7-fpga_0.0.7-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb +../dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb: Debian binary package (format 2.0) ``` -#### udmabuf-4.19.55-armv7-fpga_1.4.1-1_armhf.deb +#### udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb ##### Download repository @@ -28,18 +28,18 @@ shell$ git clone --recursive --depth=1 -b v1.4.1 git://github.com/ikwzm/udmabuf- shell$ cd udmabuf-kmod-dpkg ``` -##### Cross Compile for linux-4.19.55-armv7-fpga +##### Cross Compile for linux-4.19.57-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../linux-4.19.55-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.57-armv7-fpga kernel_src_dir=../../linux-4.19.57-armv7-fpga binary : : : -shell$ file ../udmabuf-4.19.55-armv7-fpga_1.4.1-1_armhf.deb -../udmabuf-4.19.55-armv7-fpga_1.4.1-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb +../udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb: Debian binary package (format 2.0) ``` -#### fclkcfg-4.19.55-armv7-fpga_1.1.0-1_armhf.deb +#### fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb ##### Download repository @@ -48,18 +48,18 @@ shell$ git clone --recursive --depth=1 -b v1.1.0 git://github.com/ikwzm/fclkcfg- shell$ cd fclkcfg-kmod-dpkg ``` -##### Cross Compile for linux-4.19.55-armv7-fpga +##### Cross Compile for linux-4.19.57-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../linux-4.19.55-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.57-armv7-fpga kernel_src_dir=../../linux-4.19.57-armv7-fpga binary : : : -shell$ file ../fclkcfg-4.19.55-armv7-fpga_1.1.0-1_armhf.deb -../fclkcfg-4.19.55-armv7-fpga_1.1.0-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb +../fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb: Debian binary package (format 2.0) ``` -#### zptty-4.19.55-armv7-fpga_1.0.0-1_armhf.deb +#### zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb ##### Download repository @@ -68,15 +68,15 @@ shell$ git clone --recursive --depth=1 -b v1.0.0 git://github.com/ikwzm/zptty-km shell$ cd zptty-kmod-dpkg ``` -##### Cross Compile for linux-4.19.55-armv7-fpga +##### Cross Compile for linux-4.19.57-armv7-fpga ```console -shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.55-armv7-fpga kernel_src_dir=../../../../../linux-4.19.55-armv7-fpga binary +shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.57-armv7-fpga kernel_src_dir=../../../../../linux-4.19.57-armv7-fpga binary : : : -shell$ file ../zptty-4.19.55-armv7-fpga_1.0.0-1_armhf.deb -../zptty-4.19.55-armv7-fpga_1.0.0-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb +../zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb: Debian binary package (format 2.0) ``` #### dtbocfg-ctrl_0.0.5-1_all.deb From 7859927b239814d174f0b14a2cbf79427b7f89f8 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 13:08:14 +0900 Subject: [PATCH 06/24] [update] doc/build/device-drivers.md for udmabuf-kmod-dpkg v1.4.1 -> v1.4.2 --- doc/build/device-drivers.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/build/device-drivers.md b/doc/build/device-drivers.md index 9c6661e..404ae8c 100644 --- a/doc/build/device-drivers.md +++ b/doc/build/device-drivers.md @@ -19,12 +19,12 @@ shell$ file ../dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb ../dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb: Debian binary package (format 2.0) ``` -#### udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb +#### udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb ##### Download repository ```console -shell$ git clone --recursive --depth=1 -b v1.4.1 git://github.com/ikwzm/udmabuf-kmod-dpkg +shell$ git clone --recursive --depth=1 -b v1.4.2 git://github.com/ikwzm/udmabuf-kmod-dpkg shell$ cd udmabuf-kmod-dpkg ``` @@ -35,8 +35,8 @@ shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.57-armv7-fp : : : -shell$ file ../udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb -../udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb: Debian binary package (format 2.0) +shell$ file ../udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb +../udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb: Debian binary package (format 2.0) ``` #### fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb From 030428e5422861b16d657c9efae100bcf2bfb75f Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 13:58:03 +0900 Subject: [PATCH 07/24] [add] linux kernel 4.19.57 debian packages. --- ...x-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb | 3 +++ linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb create mode 100644 linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb diff --git a/linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb b/linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb new file mode 100644 index 0000000..5b8d430 --- /dev/null +++ b/linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb1172479a3f8021b9a1b81d94797e5e35ffaa8f856e9f518a0886d3be821b7c +size 10865932 diff --git a/linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb b/linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb new file mode 100644 index 0000000..f320a56 --- /dev/null +++ b/linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31499db8e9c8c7511b61e52f6cc0fd9163474b2501e36b312d3c1033f9c116a0 +size 6457344 From bb85b8a25ddd74162f02eaac68b8a34e6cfde578 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 14:00:45 +0900 Subject: [PATCH 08/24] [add] dtbocfg, fclkcfg, udmabuf, zptty debian packages. --- dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb | 3 +++ fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb | 3 +++ udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb | 3 +++ udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb | 3 +++ zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb | 3 +++ 5 files changed, 15 insertions(+) create mode 100644 dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb create mode 100644 fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb create mode 100644 udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb create mode 100644 udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb create mode 100644 zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb diff --git a/dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb b/dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb new file mode 100644 index 0000000..ab746d7 --- /dev/null +++ b/dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47c49f48b15adbed39cc9f131526e0a1af2c44ba94f28399b28aed048a5a5e6c +size 28528 diff --git a/fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb b/fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb new file mode 100644 index 0000000..8ba1bcb --- /dev/null +++ b/fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9d55dd38b2f4016bce4ed58d3a055e7532609b54d716bcb6d843d5c83a1099a +size 56932 diff --git a/udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb b/udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb new file mode 100644 index 0000000..37c2b20 --- /dev/null +++ b/udmabuf-4.19.57-armv7-fpga_1.4.1-1_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fa0a8a1b7a5aca23b6ad14b2b6b5bbbe5c2f081c9f20fc95130369aa8a9ed57 +size 73092 diff --git a/udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb b/udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb new file mode 100644 index 0000000..fffa62d --- /dev/null +++ b/udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4044d3d391816601a4387c460b2adf16f9da09626a9e34e235b6f973b331c7a2 +size 72580 diff --git a/zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb b/zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb new file mode 100644 index 0000000..aa6bde1 --- /dev/null +++ b/zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da62ae0be62b8ce9bd1bc7a93137770f9ed08cd61e4e3cf827b53e852c5429ba +size 66420 From d06da1687b2aa1efcaa458cb823a17f4260d2c61 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 14:35:30 +0900 Subject: [PATCH 09/24] [add] dtbocfg-ctrl debian package. --- dtbocfg-ctrl_0.0.5-1_all.deb | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 dtbocfg-ctrl_0.0.5-1_all.deb diff --git a/dtbocfg-ctrl_0.0.5-1_all.deb b/dtbocfg-ctrl_0.0.5-1_all.deb new file mode 100644 index 0000000..cdf8cf5 --- /dev/null +++ b/dtbocfg-ctrl_0.0.5-1_all.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:634b6633b8cddbe56aa9cef8c1bc37943781b4dac9415bb52cbbf82af9248adc +size 4664 From 1e7e6eee35707a1d25635f62b67a19f27687e960 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 14:38:59 +0900 Subject: [PATCH 10/24] [add] linux kernel image, devicetree for ZYBO-Z7. --- doc/install/zynq-zybo-z7.md | 32 +- .../boot/devicetree-4.19.57-zynq-zybo-z7.dtb | Bin 0 -> 10436 bytes .../boot/devicetree-4.19.57-zynq-zybo-z7.dts | 487 ++++++++++++++++++ .../boot/uEnv-linux-4.19.57-armv7-fpga.txt | 14 + target/zynq-zybo-z7/boot/uEnv.txt | 6 +- .../boot/vmlinuz-4.19.57-armv7-fpga | 3 + 6 files changed, 523 insertions(+), 19 deletions(-) create mode 100644 target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dtb create mode 100644 target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dts create mode 100644 target/zynq-zybo-z7/boot/uEnv-linux-4.19.57-armv7-fpga.txt create mode 100755 target/zynq-zybo-z7/boot/vmlinuz-4.19.57-armv7-fpga diff --git a/doc/install/zynq-zybo-z7.md b/doc/install/zynq-zybo-z7.md index 9d3b34c..e040e9e 100644 --- a/doc/install/zynq-zybo-z7.md +++ b/doc/install/zynq-zybo-z7.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v0.9.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -15,17 +15,17 @@ shell$ git lfs pull - boot.bin : Stage 1 Boot Loader(U-boot-spl) - u-boot.img : Stage 2 Boot Loader(U-boot) - uEnv.txt : U-Boot environment variables for linux boot - - vmlinuz-4.14.123-armv7-fpga : Linux Kernel Image (use Git LFS) - - devicetree-4.14.123-zynq-zybo-z7.dtb : Linux Device Tree Blob - - devicetree-4.14.123-zynq-zybo-z7.dts : Linux Device Tree Source + - vmlinuz-4.19.57-armv7-fpga : Linux Kernel Image (use Git LFS) + - devicetree-4.19.57-zynq-zybo-z7.dtb : Linux Device Tree Blob + - devicetree-4.19.57-zynq-zybo-z7.dts : Linux Device Tree Source * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) - * linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Image Package (use Git LFS) - * linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Headers Package (use Git LFS) + * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) + * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) - * fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) - * udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb : udmabuf Kernel Module (use Git LFS) - * zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) + * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) + * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) #### Format SD-Card @@ -39,13 +39,13 @@ shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/zynq-zybo-z7/boot/* /mnt/usb1 shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian -shell# cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# umount mnt/usb1 shell# umount mnt/usb2 ```` diff --git a/target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dtb b/target/zynq-zybo-z7/boot/devicetree-4.19.57-zynq-zybo-z7.dtb new file mode 100644 index 0000000000000000000000000000000000000000..6c8003bab7726f744700412f75885c25696f6c86 GIT binary patch literal 10436 zcmcIqPlzN}8GqfA7!%DT(HM;r<7{TL*)>x;)ie8Nb`c!1IVgxEqB#UYr@E@TyWHxk z+N$c==|xabgm@6WD4q-=hzMfv5Dy;wcM)^&pa@=E!Gj)z1up}N`1^hDz3SIJ-I+C6 zAH1sfzW2TFegEFSuj+UA|K}e{o&L2_YFDX~x9~oV{1Ebk$Ve-{2mGhHJo9Xs+6vxx znKEIv{s79h{v^t4Q8Gxbd;s|?tRUTuY;FGzQ?_G$!>Q8-yN9pv z^`JU@h2Frjkv}UgE}t>mT`!%)_}b}v1}W4``s6=TzT#jpZbi2k&oBrZ2KFh zPQ1S$lRu_^B3oXmm&P8!s230ciS5+aT9u57H1>MN>uo>cEYm&tadkl4d0WuVtsn|v z2j9O4Ll6mx^dCW9o6gV!pn09MzJJy*M;z*5_fTEKORXalMw-?>_n=HZEWa*4u79$R z#i1_lM;0FmgKRH`e}FxgH}R1vZ@?mJ=!8T%m`|;HqNECXsWzH{)24R*z87Wc?xbnM zn5|V%>W1l6Rq&w`>4}^-)fZ7Di6e482G}w=0dIW}?R%yl>!)YyiZZVv&&Yh~&ddBT z#-PkxlPTA2$ozGnEtGi&4R2Rwt`#Elph$8tbkGP*{%9k|2Z_}fn(fr(1w+Hy$=dfL zfD?w)dIk?${O)JwWgUj*Ux#aTtDB9+D-2-TbSJaQJ8-!UsP!@KWk>&iI zmE|dCyk)XbJ9Dx;XIN`^Mg3S=9s-V*C9C7I92d10=2>0lX&RSU{QCZM6QT|l>_LMh z!=btQ_L-Z@QB;Or;Gai}D~oy=)kYRO4*SYDRa_=PDpL!zeSk#d0DLYk>>5ng0oNSp8RSsK_4deb>-kWiE^AVZMPu@yE9wAX!h}Kz#KVRKT(gZ zTRbb*`vA~#6^R(AvA(7^XaA~5Xd15Gy4~pVWmFp;mf4GAE?YCW*IHg(eQ;f*KAu3P zu4L~kf? z50N>phjE$3wHUi+r@D+o9KFxUeQywt^n_%AiM$wl{}{za_C-GJ&L`^I%1QsWbM|qR zDW`qIwlW6R{no0S<%T@a)dym1G@AC~>`edrRXG?XiI+sWo6tqS)*Gnv{^9zA%sHzU zuNY3u#na-*LS*`o$4wU(bta2T{~~?r`l!Ccx2o@-gIuHUW%J9`xrYvmbpBz$sdM|r z`f^8f&ao&v=c}Gu(JmQ@|@;T+8lNVF#%#__c>uHxFZ znK9T^eH_`?zisc!woZSgZ<)G`$@7|wStMClm+2nP000S&%xQ^Jm_~#?vukYC?Pgqt zNo4Fd8|Om?NydVabCwmagu4BaE8oLVb>(0f0I3D*To-efi z4LF!2dv^Mhceoazp-N5X5 zg$hNybcJuyq~2V=cJ*g<$~SGhjy%JkKMe{jqIDAZ*3TJFCmklnYi*f)vCRJPEpsNW z>kwro!d;&1+CmuOs+=0kjV$Ez1o9l8O~BwdKA%Ki%iAfZ%vj9Z;By__kMQ{ffHQpd zB_IIkR36tht_`tnG&XG3wB~z_S6`2&PGNNjpP>50juvL;x0Q`=>Tm;Dc*FK6*Ox|v znm6+9%wu4A+h@1^K!wAkNTN8{1c;YnB#yP{tm)d7dj#<~{vw$HmbJt3DfYi9qBMHN z813#j#lb-*Gj4l0%q!W*05)T^3zWI3*fA;dN#q%sr(1{M{jV}}ty~micje}uWqDX8 z_a<=W5LTXLnw zp6iXXv3%k1f-(-+JmpJjl-wCNNRyz7E5gVd=2iR4Tm0CxWpAM~H+kaV&d~mv#&IHV z&9z0#qs6eFScNuyZ*wZ%EMI$QL=s(uaNd|2(mX-G?Qh0GnND~G(20CJ1o(F}2ma+w z=RBrs#=V|N=*X7=eCrYEG%ea-Z4TZ_qjT&-nut-ff9QUWzC0-7IJ<061P5zU`!(QF zlaz_6u_LbcbW|qNqi?Kne)8T=AQIv9iPxp3>!h_iH@AuNOPIDWeei0(VaoIa>Vo5o ztle%k8TInC>UIHY`252bKZ^6AO~J9r|DUGtj>X3w)&BF=?1x|C!;#y6-;z(A&6iKx z2a9X_U*Zdd=y4I>T2b0Rj(kNVJ+|Ma+i`&q_iDc6+4g&9+ncXmY{&U~WmUJ+l0v|K zA+r4+*6l~WxY+hbXWN^_f$b+j|8diP+?N63uLFNW4$aeiKT!SHr8>Vrmu^U^%dR0V=VzljXad}M+&urIA73);69#0-d= zEy7)J$6N<)wFq~?-H<$fUgKghpS{hINBYB;O#9K>1{#4wTYpvK968ZjU42WpFF18; z8r1psW^tU8?-b_;^Eh*7Cer!QERJ*H({#x1>l)|C$;-;~v)T6Ml)`rU&@XiR!X2MD zSf^HgyER>$?RtIhMt}%RTvZ-#!ZRgY~`Auf*JTl%>d#YH_-T^b`E8p=)Wp4>M>c`(=D>EE$HM@K%YzC)!`4vMW6D z*1)3xXCAolsyI}3MMbPmzGV7}rV7eI1-nGVf*%f58uTDN)s0aos~&zoiLb-I7?mma zy?y=-L?7e>@k0E@)s^448mo8r!w@S^t>l*??9fgik;Hw)5FQ^L+A>t1+*SxmE{-co zl+yCwrC<`Wl+ZgPl8C?~49N&C7g5F4QJG~=0!U%E;PtSZ b#=gP>l)|wFL5&D; + #size-cells = <0x1>; + compatible = "digilent,zynq-zybo-z7", "xlnx,zynq-7000"; + model = "Digilent Zybo Z7 board"; + + cpus { + #address-cells = <0x1>; + #size-cells = <0x0>; + + cpu@0 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x0>; + clocks = <0x1 0x3>; + clock-latency = <0x3e8>; + cpu0-supply = <0x2>; + operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240>; + phandle = <0x9>; + }; + + cpu@1 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x1>; + clocks = <0x1 0x3>; + phandle = <0xa>; + }; + }; + + fpga-full { + compatible = "fpga-region"; + fpga-mgr = <0x3>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0xb>; + }; + + pmu@f8891000 { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>; + interrupt-parent = <0x4>; + reg = <0xf8891000 0x1000 0xf8893000 0x1000>; + }; + + fixedregulator { + compatible = "regulator-fixed"; + regulator-name = "VCCPINT"; + regulator-min-microvolt = <0xf4240>; + regulator-max-microvolt = <0xf4240>; + regulator-boot-on; + regulator-always-on; + phandle = <0x2>; + }; + + amba { + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + interrupt-parent = <0x4>; + ranges; + phandle = <0xc>; + + adc@f8007100 { + compatible = "xlnx,zynq-xadc-1.00.a"; + reg = <0xf8007100 0x20>; + interrupts = <0x0 0x7 0x4>; + interrupt-parent = <0x4>; + clocks = <0x1 0xc>; + phandle = <0xd>; + }; + + can@e0008000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x1 0x13 0x1 0x24>; + clock-names = "can_clk", "pclk"; + reg = <0xe0008000 0x1000>; + interrupts = <0x0 0x1c 0x4>; + interrupt-parent = <0x4>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + phandle = <0xe>; + }; + + can@e0009000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x1 0x14 0x1 0x25>; + clock-names = "can_clk", "pclk"; + reg = <0xe0009000 0x1000>; + interrupts = <0x0 0x33 0x4>; + interrupt-parent = <0x4>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + phandle = <0xf>; + }; + + gpio@e000a000 { + compatible = "xlnx,zynq-gpio-1.0"; + #gpio-cells = <0x2>; + clocks = <0x1 0x2a>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x14 0x4>; + reg = <0xe000a000 0x1000>; + phandle = <0x8>; + }; + + i2c@e0004000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x1 0x26>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x19 0x4>; + reg = <0xe0004000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x10>; + }; + + i2c@e0005000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x1 0x27>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x30 0x4>; + reg = <0xe0005000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x11>; + }; + + interrupt-controller@f8f01000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + interrupt-controller; + reg = <0xf8f01000 0x1000 0xf8f00100 0x100>; + phandle = <0x4>; + }; + + cache-controller@f8f02000 { + compatible = "arm,pl310-cache"; + reg = <0xf8f02000 0x1000>; + interrupts = <0x0 0x2 0x4>; + arm,data-latency = <0x3 0x2 0x2>; + arm,tag-latency = <0x2 0x2 0x2>; + cache-unified; + cache-level = <0x2>; + phandle = <0x12>; + }; + + memory-controller@f8006000 { + compatible = "xlnx,zynq-ddrc-a05"; + reg = <0xf8006000 0x1000>; + phandle = <0x13>; + }; + + serial@e0000000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "disabled"; + clocks = <0x1 0x17 0x1 0x28>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0000000 0x1000>; + interrupts = <0x0 0x1b 0x4>; + phandle = <0x14>; + }; + + serial@e0001000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "okay"; + clocks = <0x1 0x18 0x1 0x29>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0001000 0x1000>; + interrupts = <0x0 0x32 0x4>; + clock-frequency = <0x1c2000>; + phandle = <0x15>; + }; + + spi@e0006000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0006000 0x1000>; + status = "disabled"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x1a 0x4>; + clocks = <0x1 0x19 0x1 0x22>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x16>; + }; + + spi@e0007000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0007000 0x1000>; + status = "disabled"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x31 0x4>; + clocks = <0x1 0x1a 0x1 0x23>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x17>; + }; + + ethernet@e000b000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000b000 0x1000>; + status = "okay"; + interrupts = <0x0 0x16 0x4>; + clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phy-mode = "rgmii-id"; + phy-handle = <0x5>; + phandle = <0x18>; + + ethernet-phy@0 { + reg = <0x0>; + device_type = "ethernet-phy"; + phandle = <0x5>; + }; + }; + + ethernet@e000c000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000c000 0x1000>; + status = "disabled"; + interrupts = <0x0 0x2d 0x4>; + clocks = <0x1 0x1f 0x1 0x1f 0x1 0xe>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x19>; + }; + + sdhci@e0100000 { + compatible = "arasan,sdhci-8.9a"; + status = "okay"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x1 0x15 0x1 0x20>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x18 0x4>; + reg = <0xe0100000 0x1000>; + phandle = <0x1a>; + }; + + sdhci@e0101000 { + compatible = "arasan,sdhci-8.9a"; + status = "disabled"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x1 0x16 0x1 0x21>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x2f 0x4>; + reg = <0xe0101000 0x1000>; + phandle = <0x1b>; + }; + + slcr@f8000000 { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; + reg = <0xf8000000 0x1000>; + ranges; + phandle = <0x6>; + + clkc@100 { + #clock-cells = <0x1>; + compatible = "xlnx,ps7-clkc"; + fclk-enable = <0xf>; + clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb"; + reg = <0x100 0x100>; + ps-clk-frequency = <0x1fca055>; + phandle = <0x1>; + }; + + rstc@200 { + compatible = "xlnx,zynq-reset"; + reg = <0x200 0x48>; + #reset-cells = <0x1>; + syscon = <0x6>; + phandle = <0x1c>; + }; + + pinctrl@700 { + compatible = "xlnx,pinctrl-zynq"; + reg = <0x700 0x200>; + syscon = <0x6>; + phandle = <0x1d>; + }; + }; + + dmac@f8003000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0xf8003000 0x1000>; + interrupt-parent = <0x4>; + interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7"; + interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>; + #dma-cells = <0x1>; + #dma-channels = <0x8>; + #dma-requests = <0x4>; + clocks = <0x1 0x1b>; + clock-names = "apb_pclk"; + phandle = <0x1e>; + }; + + devcfg@f8007000 { + compatible = "xlnx,zynq-devcfg-1.0"; + reg = <0xf8007000 0x100>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x8 0x4>; + clocks = <0x1 0xc>; + clock-names = "ref_clk"; + syscon = <0x6>; + phandle = <0x3>; + }; + + fpga-region0 { + compatible = "fpga-region"; + fpga-mgr = <0x3>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0x1f>; + }; + + timer@f8f00200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xf8f00200 0x20>; + interrupts = <0x1 0xb 0x301>; + interrupt-parent = <0x4>; + clocks = <0x1 0x4>; + phandle = <0x20>; + }; + + timer@f8001000 { + interrupt-parent = <0x4>; + interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>; + compatible = "cdns,ttc"; + clocks = <0x1 0x6>; + reg = <0xf8001000 0x1000>; + phandle = <0x21>; + }; + + timer@f8002000 { + interrupt-parent = <0x4>; + interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>; + compatible = "cdns,ttc"; + clocks = <0x1 0x6>; + reg = <0xf8002000 0x1000>; + phandle = <0x22>; + }; + + timer@f8f00600 { + interrupt-parent = <0x4>; + interrupts = <0x1 0xd 0x301>; + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xf8f00600 0x20>; + clocks = <0x1 0x4>; + phandle = <0x23>; + }; + + usb@e0002000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "okay"; + clocks = <0x1 0x1c>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x15 0x4>; + reg = <0xe0002000 0x1000>; + phy_type = "ulpi"; + dr_mode = "host"; + usb-phy = <0x7>; + phandle = <0x24>; + }; + + usb@e0003000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "disabled"; + clocks = <0x1 0x1d>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x2c 0x4>; + reg = <0xe0003000 0x1000>; + phy_type = "ulpi"; + phandle = <0x25>; + }; + + watchdog@f8005000 { + clocks = <0x1 0x2d>; + compatible = "cdns,wdt-r1p2"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x9 0x1>; + reg = <0xf8005000 0x1000>; + timeout-sec = <0xa>; + phandle = <0x26>; + }; + }; + + reserved-memory { + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + + zynq-dma-unusable-area { + reg = <0x0 0x80000>; + }; + }; + + aliases { + ethernet0 = "/amba/ethernet@e000b000"; + serial0 = "/amba/serial@e0001000"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x40000000>; + }; + + chosen { + bootargs = "earlycon"; + stdout-path = "serial0:115200n8"; + }; + + gpio-leds { + compatible = "gpio-leds"; + + ld4 { + label = "zynq-zybo-z7:green:ld4"; + gpios = <0x8 0x7 0x0>; + }; + }; + + phy0 { + compatible = "ulpi-phy"; + #phy-cells = <0x0>; + reg = <0xe0002000 0x1000>; + view-port = <0x170>; + drv-vbus; + phandle = <0x7>; + }; + + __symbols__ { + cpu0 = "/cpus/cpu@0"; + cpu1 = "/cpus/cpu@1"; + fpga_full = "/fpga-full"; + regulator_vccpint = "/fixedregulator"; + amba = "/amba"; + adc = "/amba/adc@f8007100"; + can0 = "/amba/can@e0008000"; + can1 = "/amba/can@e0009000"; + gpio0 = "/amba/gpio@e000a000"; + i2c0 = "/amba/i2c@e0004000"; + i2c1 = "/amba/i2c@e0005000"; + intc = "/amba/interrupt-controller@f8f01000"; + L2 = "/amba/cache-controller@f8f02000"; + mc = "/amba/memory-controller@f8006000"; + uart0 = "/amba/serial@e0000000"; + uart1 = "/amba/serial@e0001000"; + spi0 = "/amba/spi@e0006000"; + spi1 = "/amba/spi@e0007000"; + gem0 = "/amba/ethernet@e000b000"; + ethernet_phy = "/amba/ethernet@e000b000/ethernet-phy@0"; + gem1 = "/amba/ethernet@e000c000"; + sdhci0 = "/amba/sdhci@e0100000"; + sdhci1 = "/amba/sdhci@e0101000"; + slcr = "/amba/slcr@f8000000"; + clkc = "/amba/slcr@f8000000/clkc@100"; + rstc = "/amba/slcr@f8000000/rstc@200"; + pinctrl0 = "/amba/slcr@f8000000/pinctrl@700"; + dmac_s = "/amba/dmac@f8003000"; + devcfg = "/amba/devcfg@f8007000"; + fpga_region0 = "/amba/fpga-region0"; + global_timer = "/amba/timer@f8f00200"; + ttc0 = "/amba/timer@f8001000"; + ttc1 = "/amba/timer@f8002000"; + scutimer = "/amba/timer@f8f00600"; + usb0 = "/amba/usb@e0002000"; + usb1 = "/amba/usb@e0003000"; + watchdog0 = "/amba/watchdog@f8005000"; + usb_phy0 = "/phy0"; + }; +}; diff --git a/target/zynq-zybo-z7/boot/uEnv-linux-4.19.57-armv7-fpga.txt b/target/zynq-zybo-z7/boot/uEnv-linux-4.19.57-armv7-fpga.txt new file mode 100644 index 0000000..59a278c --- /dev/null +++ b/target/zynq-zybo-z7/boot/uEnv-linux-4.19.57-armv7-fpga.txt @@ -0,0 +1,14 @@ +######################################################################## +#uenv: config_name = zynq_zybo_z7 +#uenv: menu_title = Boot linux-4.19.57-armv7-fpga +#uenv: menu_priority = -1 +######################################################################## + +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-zynq_zybo_z7.dtb +linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio + +linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} +linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${fdt_addr_r} + +uenvcmd=run linux_load_cmd && run linux_boot_cmd diff --git a/target/zynq-zybo-z7/boot/uEnv.txt b/target/zynq-zybo-z7/boot/uEnv.txt index a78818d..fc0a864 100755 --- a/target/zynq-zybo-z7/boot/uEnv.txt +++ b/target/zynq-zybo-z7/boot/uEnv.txt @@ -1,5 +1,5 @@ -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-zynq-zybo-z7.dtb +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-zynq-zybo-z7.dtb linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} @@ -7,5 +7,5 @@ linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${ uenvcmd=run linux_load_cmd && run linux_boot_cmd -bootmenu_0=Boot linux-4.14.123-armv7-fpga=boot +bootmenu_0=Boot linux-4.19.57-armv7-fpga=boot diff --git a/target/zynq-zybo-z7/boot/vmlinuz-4.19.57-armv7-fpga b/target/zynq-zybo-z7/boot/vmlinuz-4.19.57-armv7-fpga new file mode 100755 index 0000000..40ce3f7 --- /dev/null +++ b/target/zynq-zybo-z7/boot/vmlinuz-4.19.57-armv7-fpga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbd7277e8f8280756d8489cd27042fd15a433a2712653ab8f498fa3726ee1ee4 +size 4718528 From 669f13326a5cae87e87955c50f7adaf0062499c8 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 14:50:57 +0900 Subject: [PATCH 11/24] [add] linux kernel image, devicetree for DE10-Nano. --- doc/install/de10-nano.md | 32 +- .../boot/devicetree-4.19.57-socfpga.dtb | Bin 0 -> 25296 bytes .../boot/devicetree-4.19.57-socfpga.dts | 1192 +++++++++++++++++ .../boot/uEnv-linux-4.19.57-armv7-fpga.txt | 14 + target/de10-nano/boot/uEnv.txt | 6 +- .../de10-nano/boot/vmlinuz-4.19.57-armv7-fpga | 3 + 6 files changed, 1228 insertions(+), 19 deletions(-) create mode 100644 target/de10-nano/boot/devicetree-4.19.57-socfpga.dtb create mode 100644 target/de10-nano/boot/devicetree-4.19.57-socfpga.dts create mode 100644 target/de10-nano/boot/uEnv-linux-4.19.57-armv7-fpga.txt create mode 100755 target/de10-nano/boot/vmlinuz-4.19.57-armv7-fpga diff --git a/doc/install/de10-nano.md b/doc/install/de10-nano.md index c89f912..e83f18a 100644 --- a/doc/install/de10-nano.md +++ b/doc/install/de10-nano.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v0.9.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -13,20 +13,20 @@ shell$ git lfs pull * target/de10-nano/ + boot/ - uEnv.txt : U-Boot environment variables for linux boot - - vmlinuz-4.14.123-armv7-fpga : Linux Kernel Image (use Git LFS) - - devicetree-4.14.123-socfpga.dtb : Linux Device Tree Blob - - devicetree-4.14.123-socfpga.dts : Linux Device Tree Source + - vmlinuz-4.19.57-armv7-fpga : Linux Kernel Image (use Git LFS) + - devicetree-4.19.57-socfpga.dtb : Linux Device Tree Blob + - devicetree-4.19.57-socfpga.dts : Linux Device Tree Source + u-boot/ - u-boot-spl.sfp : Stage 1 Boot Loader(U-boot-spl) - u-boot.img : Stage 2 Boot Loader(U-boot) * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) - * linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Image Package (use Git LFS) - * linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Headers Package (use Git LFS) + * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) + * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) - * fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) - * udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb : udmabuf Kernel Module (use Git LFS) - * zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) + * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) + * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) #### Format SD-Card @@ -42,13 +42,13 @@ shell# dd if=target/de10-nano/u-boot/u-boot-spl.sfp of=/dev/sdc3 bs=64k seek=0 shell# dd if=target/de10-nano/u-boot/u-boot.img of=/dev/sdc3 bs=64k seek=4 shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian -shell# cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-2_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-2_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# umount mnt/usb1 shell# umount mnt/usb2 ```` diff --git a/target/de10-nano/boot/devicetree-4.19.57-socfpga.dtb b/target/de10-nano/boot/devicetree-4.19.57-socfpga.dtb new file mode 100644 index 0000000000000000000000000000000000000000..a18dd457ff9b9bac8ae963f373d35bd3cf36a69a GIT binary patch literal 25296 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 + #size-cells = <0x1>; + model = "Terasic DE-0(Atlas)"; + compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga"; + + aliases { + ethernet0 = "/soc/ethernet@ff702000"; + ethernet1 = "/soc/ethernet@ff702000"; + serial0 = "/soc/serial0@ffc02000"; + serial1 = "/soc/serial1@ffc03000"; + timer0 = "/soc/timer0@ffc08000"; + timer1 = "/soc/timer1@ffc09000"; + timer2 = "/soc/timer2@ffd00000"; + timer3 = "/soc/timer3@ffd01000"; + }; + + cpus { + #address-cells = <0x1>; + #size-cells = <0x0>; + enable-method = "altr,socfpga-smp"; + + cpu@0 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x0>; + next-level-cache = <0x1>; + phandle = <0x3>; + }; + + cpu@1 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x1>; + next-level-cache = <0x1>; + phandle = <0x4>; + }; + }; + + pmu@ff111000 { + compatible = "arm,cortex-a9-pmu"; + interrupt-parent = <0x2>; + interrupts = <0x0 0xb0 0x4 0x0 0xb1 0x4>; + interrupt-affinity = <0x3 0x4>; + reg = <0xff111000 0x1000 0xff113000 0x1000>; + phandle = <0x39>; + }; + + intc@fffed000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + interrupt-controller; + reg = <0xfffed000 0x1000 0xfffec100 0x100>; + phandle = <0x2>; + }; + + soc { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "simple-bus"; + device_type = "soc"; + interrupt-parent = <0x2>; + ranges; + + amba { + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + + pdma@ffe01000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0xffe01000 0x1000>; + interrupts = <0x0 0x68 0x4 0x0 0x69 0x4 0x0 0x6a 0x4 0x0 0x6b 0x4 0x0 0x6c 0x4 0x0 0x6d 0x4 0x0 0x6e 0x4 0x0 0x6f 0x4>; + #dma-cells = <0x1>; + #dma-channels = <0x8>; + #dma-requests = <0x20>; + clocks = <0x5>; + clock-names = "apb_pclk"; + phandle = <0x35>; + }; + }; + + can@ffc00000 { + compatible = "bosch,d_can"; + reg = <0xffc00000 0x1000>; + interrupts = <0x0 0x83 0x4 0x0 0x84 0x4 0x0 0x85 0x4 0x0 0x86 0x4>; + clocks = <0x6>; + status = "disabled"; + phandle = <0x3a>; + }; + + can@ffc01000 { + compatible = "bosch,d_can"; + reg = <0xffc01000 0x1000>; + interrupts = <0x0 0x87 0x4 0x0 0x88 0x4 0x0 0x89 0x4 0x0 0x8a 0x4>; + clocks = <0x7>; + status = "disabled"; + phandle = <0x3b>; + }; + + clkmgr@ffd04000 { + compatible = "altr,clk-mgr"; + reg = <0xffd04000 0x1000>; + + clocks { + #address-cells = <0x1>; + #size-cells = <0x0>; + + osc1 { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + clock-frequency = <0x17d7840>; + phandle = <0x8>; + }; + + osc2 { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + phandle = <0xa>; + }; + + f2s_periph_ref_clk { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + phandle = <0xb>; + }; + + f2s_sdram_ref_clk { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + phandle = <0xd>; + }; + + main_pll@40 { + #address-cells = <0x1>; + #size-cells = <0x0>; + #clock-cells = <0x0>; + compatible = "altr,socfpga-pll-clock"; + clocks = <0x8>; + reg = <0x40>; + phandle = <0x9>; + + mpuclk@48 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + div-reg = <0xe0 0x0 0x9>; + reg = <0x48>; + phandle = <0xf>; + }; + + mainclk@4c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + div-reg = <0xe4 0x0 0x9>; + reg = <0x4c>; + phandle = <0x10>; + }; + + dbg_base_clk@50 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9 0x8>; + div-reg = <0xe8 0x0 0x9>; + reg = <0x50>; + phandle = <0x13>; + }; + + main_qspi_clk@54 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + reg = <0x54>; + phandle = <0x1c>; + }; + + main_nand_sdmmc_clk@58 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + reg = <0x58>; + phandle = <0x19>; + }; + + cfg_h2f_usr0_clk@5c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + reg = <0x5c>; + phandle = <0x15>; + }; + }; + + periph_pll@80 { + #address-cells = <0x1>; + #size-cells = <0x0>; + #clock-cells = <0x0>; + compatible = "altr,socfpga-pll-clock"; + clocks = <0x8 0xa 0xb>; + reg = <0x80>; + phandle = <0xc>; + + emac0_clk@88 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x88>; + phandle = <0x16>; + }; + + emac1_clk@8c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x8c>; + phandle = <0x17>; + }; + + per_qsi_clk@90 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x90>; + phandle = <0x1d>; + }; + + per_nand_mmc_clk@94 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x94>; + phandle = <0x1a>; + }; + + per_base_clk@98 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x98>; + phandle = <0x12>; + }; + + h2f_usr1_clk@9c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x9c>; + phandle = <0x18>; + }; + }; + + sdram_pll@c0 { + #address-cells = <0x1>; + #size-cells = <0x0>; + #clock-cells = <0x0>; + compatible = "altr,socfpga-pll-clock"; + clocks = <0x8 0xa 0xd>; + reg = <0xc0>; + phandle = <0xe>; + + ddr_dqs_clk@c8 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xc8>; + phandle = <0x1e>; + }; + + ddr_2x_dqs_clk@cc { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xcc>; + phandle = <0x1f>; + }; + + ddr_dq_clk@d0 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xd0>; + phandle = <0x20>; + }; + + h2f_usr2_clk@d4 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xd4>; + phandle = <0x21>; + }; + }; + + mpu_periph_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xf>; + fixed-divider = <0x4>; + phandle = <0x34>; + }; + + mpu_l2_ram_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xf>; + fixed-divider = <0x2>; + phandle = <0x3c>; + }; + + l4_main_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10>; + clk-gate = <0x60 0x0>; + phandle = <0x5>; + }; + + l3_main_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x10>; + fixed-divider = <0x1>; + phandle = <0x3d>; + }; + + l3_mp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10>; + div-reg = <0x64 0x0 0x2>; + clk-gate = <0x60 0x1>; + phandle = <0x11>; + }; + + l3_sp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x11>; + div-reg = <0x64 0x2 0x2>; + phandle = <0x3e>; + }; + + l4_mp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10 0x12>; + div-reg = <0x64 0x4 0x3>; + clk-gate = <0x60 0x2>; + phandle = <0x2a>; + }; + + l4_sp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10 0x12>; + div-reg = <0x64 0x7 0x3>; + clk-gate = <0x60 0x3>; + phandle = <0x2b>; + }; + + dbg_at_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x13>; + div-reg = <0x68 0x0 0x2>; + clk-gate = <0x60 0x4>; + phandle = <0x14>; + }; + + dbg_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x14>; + div-reg = <0x68 0x2 0x2>; + clk-gate = <0x60 0x5>; + phandle = <0x3f>; + }; + + dbg_trace_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x13>; + div-reg = <0x6c 0x0 0x3>; + clk-gate = <0x60 0x6>; + phandle = <0x40>; + }; + + dbg_timer_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x13>; + clk-gate = <0x60 0x7>; + phandle = <0x41>; + }; + + cfg_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x15>; + clk-gate = <0x60 0x8>; + phandle = <0x42>; + }; + + h2f_user0_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x15>; + clk-gate = <0x60 0x9>; + phandle = <0x43>; + }; + + emac_0_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x16>; + clk-gate = <0xa0 0x0>; + phandle = <0x28>; + }; + + emac_1_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x17>; + clk-gate = <0xa0 0x1>; + phandle = <0x29>; + }; + + usb_mp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x2>; + div-reg = <0xa4 0x0 0x3>; + phandle = <0x36>; + }; + + spi_m_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x3>; + div-reg = <0xa4 0x3 0x3>; + phandle = <0x33>; + }; + + can0_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x4>; + div-reg = <0xa4 0x6 0x3>; + phandle = <0x6>; + }; + + can1_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x5>; + div-reg = <0xa4 0x9 0x3>; + phandle = <0x7>; + }; + + gpio_db_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x6>; + div-reg = <0xa8 0x0 0x18>; + phandle = <0x44>; + }; + + h2f_user1_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x18>; + clk-gate = <0xa0 0x7>; + phandle = <0x45>; + }; + + sdmmc_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x19 0x1a>; + clk-gate = <0xa0 0x8>; + clk-phase = <0x0 0x87>; + phandle = <0x1b>; + }; + + sdmmc_clk_divided { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x1b>; + clk-gate = <0xa0 0x8>; + fixed-divider = <0x4>; + phandle = <0x2e>; + }; + + nand_x_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x19 0x1a>; + clk-gate = <0xa0 0x9>; + phandle = <0x30>; + }; + + nand_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x19 0x1a>; + clk-gate = <0xa0 0xa>; + fixed-divider = <0x4>; + phandle = <0x46>; + }; + + qspi_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x1c 0x1d>; + clk-gate = <0xa0 0xb>; + phandle = <0x31>; + }; + + ddr_dqs_clk_gate { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x1e>; + clk-gate = <0xd8 0x0>; + phandle = <0x47>; + }; + + ddr_2x_dqs_clk_gate { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x1f>; + clk-gate = <0xd8 0x1>; + phandle = <0x48>; + }; + + ddr_dq_clk_gate { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x20>; + clk-gate = <0xd8 0x2>; + phandle = <0x49>; + }; + + h2f_user2_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x21>; + clk-gate = <0xd8 0x3>; + phandle = <0x4a>; + }; + }; + }; + + fpga_bridge@ff400000 { + compatible = "altr,socfpga-lwhps2fpga-bridge"; + reg = <0xff400000 0x100000>; + resets = <0x22 0x61>; + clocks = <0x5>; + bridge-enable = <0x0>; + phandle = <0x24>; + }; + + fpga_bridge@ff500000 { + compatible = "altr,socfpga-hps2fpga-bridge"; + reg = <0xff500000 0x10000>; + resets = <0x22 0x60>; + clocks = <0x5>; + bridge-enable = <0x1>; + phandle = <0x25>; + }; + + fpga_bridge@ff600000 { + compatible = "altr,socfpga-fpga2hps-bridge"; + reg = <0xff600000 0x10000>; + resets = <0x22 0x62>; + clocks = <0x5>; + phandle = <0x26>; + }; + + fpgamgr@ff706000 { + compatible = "altr,socfpga-fpga-mgr"; + reg = <0xff706000 0x1000 0xffb90000 0x4>; + interrupts = <0x0 0xaf 0x4>; + phandle = <0x23>; + }; + + fpga-region0 { + compatible = "fpga-region"; + fpga-mgr = <0x23>; + fpga-bridges = <0x24 0x25 0x26>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0x4b>; + }; + + ethernet@ff700000 { + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; + altr,sysmgr-syscon = <0x27 0x60 0x0>; + reg = <0xff700000 0x2000>; + interrupts = <0x0 0x73 0x4>; + interrupt-names = "macirq"; + mac-address = [00 00 00 00 00 00]; + clocks = <0x28>; + clock-names = "stmmaceth"; + resets = <0x22 0x20>; + reset-names = "stmmaceth"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + tx-fifo-depth = <0x1000>; + rx-fifo-depth = <0x1000>; + status = "disabled"; + phandle = <0x4c>; + }; + + ethernet@ff702000 { + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; + altr,sysmgr-syscon = <0x27 0x60 0x2>; + reg = <0xff702000 0x2000>; + interrupts = <0x0 0x78 0x4>; + interrupt-names = "macirq"; + mac-address = [00 00 00 00 00 00]; + clocks = <0x29>; + clock-names = "stmmaceth"; + resets = <0x22 0x21>; + reset-names = "stmmaceth"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + tx-fifo-depth = <0x1000>; + rx-fifo-depth = <0x1000>; + status = "okay"; + phy-mode = "rgmii"; + txd0-skew-ps = <0x0>; + txd1-skew-ps = <0x0>; + txd2-skew-ps = <0x0>; + txd3-skew-ps = <0x0>; + rxd0-skew-ps = <0x1a4>; + rxd1-skew-ps = <0x1a4>; + rxd2-skew-ps = <0x1a4>; + rxd3-skew-ps = <0x1a4>; + txen-skew-ps = <0x0>; + txc-skew-ps = <0x744>; + rxdv-skew-ps = <0x1a4>; + rxc-skew-ps = <0x690>; + max-frame-size = <0xed8>; + phandle = <0x4d>; + }; + + gpio@ff708000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,dw-apb-gpio"; + reg = <0xff708000 0x1000>; + clocks = <0x2a>; + status = "okay"; + phandle = <0x4e>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x2>; + snps,nr-gpios = <0x1d>; + reg = <0x0>; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupts = <0x0 0xa4 0x4>; + phandle = <0x4f>; + }; + }; + + gpio@ff709000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,dw-apb-gpio"; + reg = <0xff709000 0x1000>; + clocks = <0x2a>; + status = "okay"; + phandle = <0x50>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x2>; + snps,nr-gpios = <0x1d>; + reg = <0x0>; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupts = <0x0 0xa5 0x4>; + phandle = <0x38>; + }; + }; + + gpio@ff70a000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,dw-apb-gpio"; + reg = <0xff70a000 0x1000>; + clocks = <0x2a>; + status = "okay"; + phandle = <0x51>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x2>; + snps,nr-gpios = <0x1b>; + reg = <0x0>; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupts = <0x0 0xa6 0x4>; + phandle = <0x2c>; + }; + }; + + i2c@ffc04000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc04000 0x1000>; + resets = <0x22 0x2c>; + clocks = <0x2b>; + interrupts = <0x0 0x9e 0x4>; + status = "okay"; + clock-frequency = <0x186a0>; + phandle = <0x52>; + + adxl345@0 { + compatible = "adi,adxl345"; + reg = <0x53>; + interrupt-parent = <0x2c>; + interrupts = <0x3 0x2>; + phandle = <0x53>; + }; + }; + + i2c@ffc05000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc05000 0x1000>; + resets = <0x22 0x2d>; + clocks = <0x2b>; + interrupts = <0x0 0x9f 0x4>; + status = "disabled"; + phandle = <0x54>; + }; + + i2c@ffc06000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc06000 0x1000>; + resets = <0x22 0x2e>; + clocks = <0x2b>; + interrupts = <0x0 0xa0 0x4>; + status = "disabled"; + phandle = <0x55>; + }; + + i2c@ffc07000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc07000 0x1000>; + resets = <0x22 0x2f>; + clocks = <0x2b>; + interrupts = <0x0 0xa1 0x4>; + status = "disabled"; + phandle = <0x56>; + }; + + eccmgr { + compatible = "altr,socfpga-ecc-manager"; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0x57>; + + l2-ecc@ffd08140 { + compatible = "altr,socfpga-l2-ecc"; + reg = <0xffd08140 0x4>; + interrupts = <0x0 0x24 0x1 0x0 0x25 0x1>; + }; + + ocram-ecc@ffd08144 { + compatible = "altr,socfpga-ocram-ecc"; + reg = <0xffd08144 0x4>; + iram = <0x2d>; + interrupts = <0x0 0xb2 0x1 0x0 0xb3 0x1>; + }; + }; + + l2-cache@fffef000 { + compatible = "arm,pl310-cache"; + reg = <0xfffef000 0x1000>; + interrupts = <0x0 0x26 0x4>; + cache-unified; + cache-level = <0x2>; + arm,tag-latency = <0x1 0x1 0x1>; + arm,data-latency = <0x2 0x1 0x1>; + prefetch-data = <0x1>; + prefetch-instr = <0x1>; + arm,shared-override; + arm,double-linefill = <0x1>; + arm,double-linefill-incr = <0x0>; + arm,double-linefill-wrap = <0x1>; + arm,prefetch-drop = <0x0>; + arm,prefetch-offset = <0x7>; + phandle = <0x1>; + }; + + l3regs@ff800000 { + compatible = "altr,l3regs", "syscon"; + reg = <0xff800000 0x1000>; + }; + + dwmmc0@ff704000 { + compatible = "altr,socfpga-dw-mshc"; + reg = <0xff704000 0x1000>; + interrupts = <0x0 0x8b 0x4>; + fifo-depth = <0x400>; + #address-cells = <0x1>; + #size-cells = <0x0>; + clocks = <0x2a 0x2e>; + clock-names = "biu", "ciu"; + status = "okay"; + broken-cd; + bus-width = <0x4>; + cap-mmc-highspeed; + cap-sd-highspeed; + vmmc-supply = <0x2f>; + vqmmc-supply = <0x2f>; + phandle = <0x58>; + }; + + nand@ff900000 { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "altr,socfpga-denali-nand"; + reg = <0xff900000 0x100000 0xffb80000 0x10000>; + reg-names = "nand_data", "denali_reg"; + interrupts = <0x0 0x90 0x4>; + dma-mask = <0xffffffff>; + clocks = <0x30>; + status = "disabled"; + phandle = <0x59>; + }; + + sram@ffff0000 { + compatible = "mmio-sram"; + reg = <0xffff0000 0x10000>; + phandle = <0x2d>; + }; + + spi@ff705000 { + compatible = "cdns,qspi-nor"; + #address-cells = <0x1>; + #size-cells = <0x0>; + reg = <0xff705000 0x1000 0xffa00000 0x1000>; + interrupts = <0x0 0x97 0x4>; + cdns,fifo-depth = <0x80>; + cdns,fifo-width = <0x4>; + cdns,trigger-address = <0x0>; + clocks = <0x31>; + status = "disabled"; + phandle = <0x5a>; + }; + + rstmgr@ffd05000 { + #reset-cells = <0x1>; + compatible = "altr,rst-mgr"; + reg = <0xffd05000 0x1000>; + altr,modrst-offset = <0x10>; + phandle = <0x22>; + }; + + snoop-control-unit@fffec000 { + compatible = "arm,cortex-a9-scu"; + reg = <0xfffec000 0x100>; + phandle = <0x5b>; + }; + + sdr@ffc25000 { + compatible = "altr,sdr-ctl", "syscon"; + reg = <0xffc25000 0x1000>; + phandle = <0x32>; + }; + + sdramedac { + compatible = "altr,sdram-edac"; + altr,sdr-syscon = <0x32>; + interrupts = <0x0 0x27 0x4>; + }; + + spi@fff00000 { + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x1>; + #size-cells = <0x0>; + reg = <0xfff00000 0x1000>; + interrupts = <0x0 0x9a 0x4>; + num-cs = <0x4>; + clocks = <0x33>; + status = "disabled"; + phandle = <0x5c>; + }; + + spi@fff01000 { + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x1>; + #size-cells = <0x0>; + reg = <0xfff01000 0x1000>; + interrupts = <0x0 0x9b 0x4>; + num-cs = <0x4>; + clocks = <0x33>; + status = "disabled"; + phandle = <0x5d>; + }; + + sysmgr@ffd08000 { + compatible = "altr,sys-mgr", "syscon"; + reg = <0xffd08000 0x4000>; + cpu1-start-addr = <0xffd080c4>; + phandle = <0x27>; + }; + + timer@fffec600 { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xfffec600 0x100>; + interrupts = <0x1 0xd 0xf01>; + clocks = <0x34>; + }; + + timer0@ffc08000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xa7 0x4>; + reg = <0xffc08000 0x1000>; + clocks = <0x2b>; + clock-names = "timer"; + phandle = <0x5e>; + }; + + timer1@ffc09000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xa8 0x4>; + reg = <0xffc09000 0x1000>; + clocks = <0x2b>; + clock-names = "timer"; + phandle = <0x5f>; + }; + + timer2@ffd00000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xa9 0x4>; + reg = <0xffd00000 0x1000>; + clocks = <0x8>; + clock-names = "timer"; + phandle = <0x60>; + }; + + timer3@ffd01000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xaa 0x4>; + reg = <0xffd01000 0x1000>; + clocks = <0x8>; + clock-names = "timer"; + phandle = <0x61>; + }; + + serial0@ffc02000 { + compatible = "snps,dw-apb-uart"; + reg = <0xffc02000 0x1000>; + interrupts = <0x0 0xa2 0x4>; + reg-shift = <0x2>; + reg-io-width = <0x4>; + clocks = <0x2b>; + dmas = <0x35 0x1c 0x35 0x1d>; + dma-names = "tx", "rx"; + status = "okay"; + clock-frequency = <0x1c2000>; + phandle = <0x62>; + }; + + serial1@ffc03000 { + compatible = "snps,dw-apb-uart"; + reg = <0xffc03000 0x1000>; + interrupts = <0x0 0xa3 0x4>; + reg-shift = <0x2>; + reg-io-width = <0x4>; + clocks = <0x2b>; + dmas = <0x35 0x1e 0x35 0x1f>; + dma-names = "tx", "rx"; + phandle = <0x63>; + }; + + usbphy { + #phy-cells = <0x0>; + compatible = "usb-nop-xceiv"; + status = "okay"; + phandle = <0x37>; + }; + + usb@ffb00000 { + compatible = "snps,dwc2"; + reg = <0xffb00000 0xffff>; + interrupts = <0x0 0x7d 0x4>; + clocks = <0x36>; + clock-names = "otg"; + resets = <0x22 0x22>; + reset-names = "dwc2"; + phys = <0x37>; + phy-names = "usb2-phy"; + status = "disabled"; + phandle = <0x64>; + }; + + usb@ffb40000 { + compatible = "snps,dwc2"; + reg = <0xffb40000 0xffff>; + interrupts = <0x0 0x80 0x4>; + clocks = <0x36>; + clock-names = "otg"; + resets = <0x22 0x23>; + reset-names = "dwc2"; + phys = <0x37>; + phy-names = "usb2-phy"; + status = "okay"; + phandle = <0x65>; + }; + + watchdog@ffd02000 { + compatible = "snps,dw-wdt"; + reg = <0xffd02000 0x1000>; + interrupts = <0x0 0xab 0x4>; + clocks = <0x8>; + status = "okay"; + phandle = <0x66>; + }; + + watchdog@ffd03000 { + compatible = "snps,dw-wdt"; + reg = <0xffd03000 0x1000>; + interrupts = <0x0 0xac 0x4>; + clocks = <0x8>; + status = "disabled"; + phandle = <0x67>; + }; + }; + + chosen { + bootargs = "earlyprintk"; + stdout-path = "serial0:115200n8"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x40000000>; + }; + + 3-3-v-regulator { + compatible = "regulator-fixed"; + regulator-name = "3.3V"; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + phandle = <0x2f>; + }; + + leds { + compatible = "gpio-leds"; + + hps0 { + label = "hps_led0"; + gpios = <0x38 0x18 0x0>; + linux,default-trigger = "heartbeat"; + }; + }; + + __symbols__ { + cpu0 = "/cpus/cpu@0"; + cpu1 = "/cpus/cpu@1"; + pmu = "/pmu@ff111000"; + intc = "/intc@fffed000"; + pdma = "/soc/amba/pdma@ffe01000"; + can0 = "/soc/can@ffc00000"; + can1 = "/soc/can@ffc01000"; + osc1 = "/soc/clkmgr@ffd04000/clocks/osc1"; + osc2 = "/soc/clkmgr@ffd04000/clocks/osc2"; + f2s_periph_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_periph_ref_clk"; + f2s_sdram_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_sdram_ref_clk"; + main_pll = "/soc/clkmgr@ffd04000/clocks/main_pll@40"; + mpuclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mpuclk@48"; + mainclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mainclk@4c"; + dbg_base_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/dbg_base_clk@50"; + main_qspi_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_qspi_clk@54"; + main_nand_sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_nand_sdmmc_clk@58"; + cfg_h2f_usr0_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/cfg_h2f_usr0_clk@5c"; + periph_pll = "/soc/clkmgr@ffd04000/clocks/periph_pll@80"; + emac0_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac0_clk@88"; + emac1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac1_clk@8c"; + per_qspi_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_qsi_clk@90"; + per_nand_mmc_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_nand_mmc_clk@94"; + per_base_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_base_clk@98"; + h2f_usr1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/h2f_usr1_clk@9c"; + sdram_pll = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0"; + ddr_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dqs_clk@c8"; + ddr_2x_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_2x_dqs_clk@cc"; + ddr_dq_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dq_clk@d0"; + h2f_usr2_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/h2f_usr2_clk@d4"; + mpu_periph_clk = "/soc/clkmgr@ffd04000/clocks/mpu_periph_clk"; + mpu_l2_ram_clk = "/soc/clkmgr@ffd04000/clocks/mpu_l2_ram_clk"; + l4_main_clk = "/soc/clkmgr@ffd04000/clocks/l4_main_clk"; + l3_main_clk = "/soc/clkmgr@ffd04000/clocks/l3_main_clk"; + l3_mp_clk = "/soc/clkmgr@ffd04000/clocks/l3_mp_clk"; + l3_sp_clk = "/soc/clkmgr@ffd04000/clocks/l3_sp_clk"; + l4_mp_clk = "/soc/clkmgr@ffd04000/clocks/l4_mp_clk"; + l4_sp_clk = "/soc/clkmgr@ffd04000/clocks/l4_sp_clk"; + dbg_at_clk = "/soc/clkmgr@ffd04000/clocks/dbg_at_clk"; + dbg_clk = "/soc/clkmgr@ffd04000/clocks/dbg_clk"; + dbg_trace_clk = "/soc/clkmgr@ffd04000/clocks/dbg_trace_clk"; + dbg_timer_clk = "/soc/clkmgr@ffd04000/clocks/dbg_timer_clk"; + cfg_clk = "/soc/clkmgr@ffd04000/clocks/cfg_clk"; + h2f_user0_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user0_clk"; + emac_0_clk = "/soc/clkmgr@ffd04000/clocks/emac_0_clk"; + emac_1_clk = "/soc/clkmgr@ffd04000/clocks/emac_1_clk"; + usb_mp_clk = "/soc/clkmgr@ffd04000/clocks/usb_mp_clk"; + spi_m_clk = "/soc/clkmgr@ffd04000/clocks/spi_m_clk"; + can0_clk = "/soc/clkmgr@ffd04000/clocks/can0_clk"; + can1_clk = "/soc/clkmgr@ffd04000/clocks/can1_clk"; + gpio_db_clk = "/soc/clkmgr@ffd04000/clocks/gpio_db_clk"; + h2f_user1_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user1_clk"; + sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk"; + sdmmc_clk_divided = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk_divided"; + nand_x_clk = "/soc/clkmgr@ffd04000/clocks/nand_x_clk"; + nand_clk = "/soc/clkmgr@ffd04000/clocks/nand_clk"; + qspi_clk = "/soc/clkmgr@ffd04000/clocks/qspi_clk"; + ddr_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dqs_clk_gate"; + ddr_2x_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_2x_dqs_clk_gate"; + ddr_dq_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dq_clk_gate"; + h2f_user2_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user2_clk"; + fpga_bridge_lwhps2fpga = "/soc/fpga_bridge@ff400000"; + fpga_bridge_hps2fpga = "/soc/fpga_bridge@ff500000"; + fpga_bridge_fpga2hps = "/soc/fpga_bridge@ff600000"; + fpgamgr0 = "/soc/fpgamgr@ff706000"; + fpga_region0 = "/soc/fpga-region0"; + gmac0 = "/soc/ethernet@ff700000"; + gmac1 = "/soc/ethernet@ff702000"; + gpio0 = "/soc/gpio@ff708000"; + porta = "/soc/gpio@ff708000/gpio-controller@0"; + gpio1 = "/soc/gpio@ff709000"; + portb = "/soc/gpio@ff709000/gpio-controller@0"; + gpio2 = "/soc/gpio@ff70a000"; + portc = "/soc/gpio@ff70a000/gpio-controller@0"; + i2c0 = "/soc/i2c@ffc04000"; + adxl345 = "/soc/i2c@ffc04000/adxl345@0"; + i2c1 = "/soc/i2c@ffc05000"; + i2c2 = "/soc/i2c@ffc06000"; + i2c3 = "/soc/i2c@ffc07000"; + eccmgr = "/soc/eccmgr"; + L2 = "/soc/l2-cache@fffef000"; + mmc0 = "/soc/dwmmc0@ff704000"; + mmc = "/soc/dwmmc0@ff704000"; + nand0 = "/soc/nand@ff900000"; + ocram = "/soc/sram@ffff0000"; + qspi = "/soc/spi@ff705000"; + rst = "/soc/rstmgr@ffd05000"; + scu = "/soc/snoop-control-unit@fffec000"; + sdr = "/soc/sdr@ffc25000"; + spi0 = "/soc/spi@fff00000"; + spi1 = "/soc/spi@fff01000"; + sysmgr = "/soc/sysmgr@ffd08000"; + timer0 = "/soc/timer0@ffc08000"; + timer1 = "/soc/timer1@ffc09000"; + timer2 = "/soc/timer2@ffd00000"; + timer3 = "/soc/timer3@ffd01000"; + uart0 = "/soc/serial0@ffc02000"; + uart1 = "/soc/serial1@ffc03000"; + usbphy0 = "/soc/usbphy"; + usb0 = "/soc/usb@ffb00000"; + usb1 = "/soc/usb@ffb40000"; + watchdog0 = "/soc/watchdog@ffd02000"; + watchdog1 = "/soc/watchdog@ffd03000"; + regulator_3_3v = "/3-3-v-regulator"; + }; +}; diff --git a/target/de10-nano/boot/uEnv-linux-4.19.57-armv7-fpga.txt b/target/de10-nano/boot/uEnv-linux-4.19.57-armv7-fpga.txt new file mode 100644 index 0000000..f0b7c66 --- /dev/null +++ b/target/de10-nano/boot/uEnv-linux-4.19.57-armv7-fpga.txt @@ -0,0 +1,14 @@ +######################################################################## +#uenv: config_name = socfpga_de10_nano +#uenv: menu_title = Boot linux-4.19.57-armv7-fpga +#uenv: menu_priority = -1 +######################################################################## + +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-socfpga.dtb +linux_boot_args=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio + +linux_load_cmd=fatload mmc 0 ${loadaddr} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr} ${linux_fdt_image} +linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${loadaddr} - ${fdt_addr} + +uenvcmd=run linux_load_cmd && run linux_boot_cmd diff --git a/target/de10-nano/boot/uEnv.txt b/target/de10-nano/boot/uEnv.txt index 9da1f18..636d823 100755 --- a/target/de10-nano/boot/uEnv.txt +++ b/target/de10-nano/boot/uEnv.txt @@ -1,5 +1,5 @@ -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-socfpga.dtb +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-socfpga.dtb linux_boot_args=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio linux_load_cmd=fatload mmc 0 ${loadaddr} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr} ${linux_fdt_image} @@ -7,5 +7,5 @@ linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${loadaddr} - ${fdt_a uenvcmd=run linux_load_cmd && run linux_boot_cmd -bootmenu_0=Boot linux-4.14.123-armv7-fpga=boot +bootmenu_0=Boot linux-4.19.57-armv7-fpga=boot diff --git a/target/de10-nano/boot/vmlinuz-4.19.57-armv7-fpga b/target/de10-nano/boot/vmlinuz-4.19.57-armv7-fpga new file mode 100755 index 0000000..40ce3f7 --- /dev/null +++ b/target/de10-nano/boot/vmlinuz-4.19.57-armv7-fpga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbd7277e8f8280756d8489cd27042fd15a433a2712653ab8f498fa3726ee1ee4 +size 4718528 From fbe6b9664608ac4f9e469f3ca2b8bed9785f28c8 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 15:23:30 +0900 Subject: [PATCH 12/24] [add] linux kernel image, devicetree for ZYBO. --- doc/install/zynq-zybo.md | 32 +- target/zynq-zybo/boot/design_1_wrapper.bit | Bin 2083852 -> 132 bytes .../boot/devicetree-4.19.57-zynq-zybo.dtb | Bin 0 -> 10306 bytes .../boot/devicetree-4.19.57-zynq-zybo.dts | 477 ++++++++++++++++++ .../boot/uEnv-linux-4.19.57-armv7-fpga.txt | 19 + target/zynq-zybo/boot/uEnv.txt | 6 +- .../zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga | 3 + 7 files changed, 518 insertions(+), 19 deletions(-) create mode 100644 target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dtb create mode 100644 target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dts create mode 100644 target/zynq-zybo/boot/uEnv-linux-4.19.57-armv7-fpga.txt create mode 100755 target/zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga diff --git a/doc/install/zynq-zybo.md b/doc/install/zynq-zybo.md index 73fee73..ff0c082 100644 --- a/doc/install/zynq-zybo.md +++ b/doc/install/zynq-zybo.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v0.9.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -16,18 +16,18 @@ shell$ git lfs pull - design_1_wrapper.bit : FPGA configuration file (Xilinx Bitstream Format) - u-boot.img : Stage 2 Boot Loader(U-boot) - uEnv.txt : U-Boot environment variables for linux boot - - vmlinuz-4.14.123-armv7-fpga : Linux Kernel Image (use Git LFS) - - devicetree-4.14.123-zynq-zybo.dtb : Linux Device Tree Blob - - devicetree-4.14.123-zynq-zybo.dts : Linux Device Tree Source + - vmlinuz-4.19.57-armv7-fpga : Linux Kernel Image (use Git LFS) + - devicetree-4.19.57-zynq-zybo.dtb : Linux Device Tree Blob + - devicetree-4.19.57-zynq-zybo.dts : Linux Device Tree Source + examples/ : Example Programs * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) - * linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Image Package (use Git LFS) - * linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Headers Package (use Git LFS) + * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) + * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) - * fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) - * udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb : udmabuf Kernel Module (use Git LFS) - * zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) + * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) + * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) #### Format SD-Card @@ -41,13 +41,13 @@ shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/zynq-zybo/boot/* /mnt/usb1 shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian -shell# cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp -r target/zynq-zybo/examples /mnt/usb2/home/fpga shell# umount mnt/usb1 shell# umount mnt/usb2 diff --git a/target/zynq-zybo/boot/design_1_wrapper.bit b/target/zynq-zybo/boot/design_1_wrapper.bit index ca61f422dacf4bae4e1b94154ea2455ec4e73bd0..b2b82e47885f0fc045644699c2564482af9fb8c6 100755 GIT binary patch literal 132 zcmWN?%MrpL5CG6SRnUL|7TAS!6Fw`g-{ARgvuc?YvVlXKo$*U%8rvE=M2SKA{Dk8!9@>| OQWdj*s{|cv@F0F8nT2?cP05(qSuN4ihxe((E# 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
>AY3!YYxL ze(!TmY8l1eO{$Y)bI{2hy}s}I{`c`jg3#-(!!Frr-*rxTuT!GJI+ep>NPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cHV%R8H8WT}CgtH!EsQZL_AiGjkFkfu<9Pnx12GGc47cn_rW1Gfm2e*^mGUkN^p+ z6M@U#w@wAEt{AgAaY~Z_2{fBP-0TdSoL}^zCTGa(NPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cnnWOMQaAv!grdTW6S1u z-sq;(dI--OcCCkwH6no@90Kj5EqAV_$u(+reoe04$=PlB?#W>rEX15|=hOARmaFk< z8J#19RtNG{Oj2u_Xa0T+V8TDF^ zJfgeSqm*3BSp2BkdGbqs_w~8*I#uC|3{Mq%a@Y#w%|a@-;A&k*=byD=-OMU0wOaXA zW>0YvAOR8}0TK`ymNp9x_zNsNt#5)CTCR=_hAXbu+2ngAbRzly6V{}6#o6X3Slp3c z*{3Oak>P0smIbd?epzyQNq_`MfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNZ`C65XNaWPh%HP6D}(ZU$^vf>pwbOozArmS-P{?3*}0K<#Ic; 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�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 XO)by(^ob|2AQr3xtOIjl9r*tMve2+C diff --git a/target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dtb b/target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dtb new file mode 100644 index 0000000000000000000000000000000000000000..fcfba0a3d30e9d86e59e3a5bfb12afcd4ad841d0 GIT binary patch literal 10306 zcmcIqPlzN}8Gqev5|fxoq9#Ts>TG6{Y|PY7^-OkmRy+*Z93qG&A~`71sj05%DYv_- zwyJuzCj`tvguRGf1j!|cAYLSrqX>ea2s!A;%yaW~n85G3d?|bj7e%;fZS(CNk zRloPW?|uK@zpwfa_xoG11NYpzXkj`Tc3HiT&siM54k#F z+P)ukZ9j(kYCj#M!z8OWUOCFH1+N_KCboGg3`0wV<3En_#B&aR?dw2Y+smV} zPmESvj4M{~C@^|ou%hTk;zY&>o5e|Fd0@$kd)JH^e=e>V#8Mb<7Vcu4F0$f~j} zla>7LK_NfkxnB&TV1GOu0)U5nKZ3F<@G=>sIfpd59lE;e%0A_(cGouhzKx=|By=x| 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 S!y(m(WTMeYE=@`hn*RdhOX+L? literal 0 HcmV?d00001 diff --git a/target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dts b/target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dts new file mode 100644 index 0000000..3527155 --- /dev/null +++ b/target/zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dts @@ -0,0 +1,477 @@ +/dts-v1/; + +/ { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "digilent,zynq-zybo", "xlnx,zynq-7000"; + model = "Digilent Zybo board"; + + cpus { + #address-cells = <0x1>; + #size-cells = <0x0>; + + cpu@0 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x0>; + clocks = <0x1 0x3>; + clock-latency = <0x3e8>; + cpu0-supply = <0x2>; + operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240>; + phandle = <0x9>; + }; + + cpu@1 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x1>; + clocks = <0x1 0x3>; + phandle = <0xa>; + }; + }; + + fpga-full { + compatible = "fpga-region"; + fpga-mgr = <0x3>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0xb>; + }; + + pmu@f8891000 { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>; + interrupt-parent = <0x4>; + reg = <0xf8891000 0x1000 0xf8893000 0x1000>; + }; + + fixedregulator { + compatible = "regulator-fixed"; + regulator-name = "VCCPINT"; + regulator-min-microvolt = <0xf4240>; + regulator-max-microvolt = <0xf4240>; + regulator-boot-on; + regulator-always-on; + phandle = <0x2>; + }; + + amba { + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + interrupt-parent = <0x4>; + ranges; + phandle = <0xc>; + + adc@f8007100 { + compatible = "xlnx,zynq-xadc-1.00.a"; + reg = <0xf8007100 0x20>; + interrupts = <0x0 0x7 0x4>; + interrupt-parent = <0x4>; + clocks = <0x1 0xc>; + phandle = <0xd>; + }; + + can@e0008000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x1 0x13 0x1 0x24>; + clock-names = "can_clk", "pclk"; + reg = <0xe0008000 0x1000>; + interrupts = <0x0 0x1c 0x4>; + interrupt-parent = <0x4>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + phandle = <0xe>; + }; + + can@e0009000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x1 0x14 0x1 0x25>; + clock-names = "can_clk", "pclk"; + reg = <0xe0009000 0x1000>; + interrupts = <0x0 0x33 0x4>; + interrupt-parent = <0x4>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + phandle = <0xf>; + }; + + gpio@e000a000 { + compatible = "xlnx,zynq-gpio-1.0"; + #gpio-cells = <0x2>; + clocks = <0x1 0x2a>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x14 0x4>; + reg = <0xe000a000 0x1000>; + phandle = <0x8>; + }; + + i2c@e0004000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x1 0x26>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x19 0x4>; + reg = <0xe0004000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x10>; + }; + + i2c@e0005000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x1 0x27>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x30 0x4>; + reg = <0xe0005000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x11>; + }; + + interrupt-controller@f8f01000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + interrupt-controller; + reg = <0xf8f01000 0x1000 0xf8f00100 0x100>; + phandle = <0x4>; + }; + + cache-controller@f8f02000 { + compatible = "arm,pl310-cache"; + reg = <0xf8f02000 0x1000>; + interrupts = <0x0 0x2 0x4>; + arm,data-latency = <0x3 0x2 0x2>; + arm,tag-latency = <0x2 0x2 0x2>; + cache-unified; + cache-level = <0x2>; + phandle = <0x12>; + }; + + memory-controller@f8006000 { + compatible = "xlnx,zynq-ddrc-a05"; + reg = <0xf8006000 0x1000>; + phandle = <0x13>; + }; + + serial@e0000000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "disabled"; + clocks = <0x1 0x17 0x1 0x28>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0000000 0x1000>; + interrupts = <0x0 0x1b 0x4>; + phandle = <0x14>; + }; + + serial@e0001000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "okay"; + clocks = <0x1 0x18 0x1 0x29>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0001000 0x1000>; + interrupts = <0x0 0x32 0x4>; + clock-frequency = <0x1c2000>; + phandle = <0x15>; + }; + + spi@e0006000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0006000 0x1000>; + status = "disabled"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x1a 0x4>; + clocks = <0x1 0x19 0x1 0x22>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x16>; + }; + + spi@e0007000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0007000 0x1000>; + status = "disabled"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x31 0x4>; + clocks = <0x1 0x1a 0x1 0x23>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x17>; + }; + + ethernet@e000b000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000b000 0x1000>; + status = "okay"; + interrupts = <0x0 0x16 0x4>; + clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phy-mode = "rgmii-id"; + phy-handle = <0x5>; + phandle = <0x18>; + + ethernet-phy@0 { + reg = <0x0>; + device_type = "ethernet-phy"; + phandle = <0x5>; + }; + }; + + ethernet@e000c000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000c000 0x1000>; + status = "disabled"; + interrupts = <0x0 0x2d 0x4>; + clocks = <0x1 0x1f 0x1 0x1f 0x1 0xe>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x19>; + }; + + sdhci@e0100000 { + compatible = "arasan,sdhci-8.9a"; + status = "okay"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x1 0x15 0x1 0x20>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x18 0x4>; + reg = <0xe0100000 0x1000>; + phandle = <0x1a>; + }; + + sdhci@e0101000 { + compatible = "arasan,sdhci-8.9a"; + status = "disabled"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x1 0x16 0x1 0x21>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x2f 0x4>; + reg = <0xe0101000 0x1000>; + phandle = <0x1b>; + }; + + slcr@f8000000 { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; + reg = <0xf8000000 0x1000>; + ranges; + phandle = <0x6>; + + clkc@100 { + #clock-cells = <0x1>; + compatible = "xlnx,ps7-clkc"; + fclk-enable = <0xf>; + clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb"; + reg = <0x100 0x100>; + ps-clk-frequency = <0x2faf080>; + phandle = <0x1>; + }; + + rstc@200 { + compatible = "xlnx,zynq-reset"; + reg = <0x200 0x48>; + #reset-cells = <0x1>; + syscon = <0x6>; + phandle = <0x1c>; + }; + + pinctrl@700 { + compatible = "xlnx,pinctrl-zynq"; + reg = <0x700 0x200>; + syscon = <0x6>; + phandle = <0x1d>; + }; + }; + + dmac@f8003000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0xf8003000 0x1000>; + interrupt-parent = <0x4>; + interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7"; + interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>; + #dma-cells = <0x1>; + #dma-channels = <0x8>; + #dma-requests = <0x4>; + clocks = <0x1 0x1b>; + clock-names = "apb_pclk"; + phandle = <0x1e>; + }; + + devcfg@f8007000 { + compatible = "xlnx,zynq-devcfg-1.0"; + reg = <0xf8007000 0x100>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x8 0x4>; + clocks = <0x1 0xc>; + clock-names = "ref_clk"; + syscon = <0x6>; + phandle = <0x3>; + }; + + fpga-region0 { + compatible = "fpga-region"; + fpga-mgr = <0x3>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0x1f>; + }; + + timer@f8f00200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xf8f00200 0x20>; + interrupts = <0x1 0xb 0x301>; + interrupt-parent = <0x4>; + clocks = <0x1 0x4>; + phandle = <0x20>; + }; + + timer@f8001000 { + interrupt-parent = <0x4>; + interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>; + compatible = "cdns,ttc"; + clocks = <0x1 0x6>; + reg = <0xf8001000 0x1000>; + phandle = <0x21>; + }; + + timer@f8002000 { + interrupt-parent = <0x4>; + interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>; + compatible = "cdns,ttc"; + clocks = <0x1 0x6>; + reg = <0xf8002000 0x1000>; + phandle = <0x22>; + }; + + timer@f8f00600 { + interrupt-parent = <0x4>; + interrupts = <0x1 0xd 0x301>; + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xf8f00600 0x20>; + clocks = <0x1 0x4>; + phandle = <0x23>; + }; + + usb@e0002000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "okay"; + clocks = <0x1 0x1c>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x15 0x4>; + reg = <0xe0002000 0x1000>; + phy_type = "ulpi"; + dr_mode = "host"; + usb-phy = <0x7>; + phandle = <0x24>; + }; + + usb@e0003000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "disabled"; + clocks = <0x1 0x1d>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x2c 0x4>; + reg = <0xe0003000 0x1000>; + phy_type = "ulpi"; + phandle = <0x25>; + }; + + watchdog@f8005000 { + clocks = <0x1 0x2d>; + compatible = "cdns,wdt-r1p2"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x9 0x1>; + reg = <0xf8005000 0x1000>; + timeout-sec = <0xa>; + phandle = <0x26>; + }; + }; + + reserved-memory { + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + + zynq-dma-unusable-area { + reg = <0x0 0x80000>; + }; + }; + + aliases { + ethernet0 = "/amba/ethernet@e000b000"; + serial0 = "/amba/serial@e0001000"; + mmc0 = "/amba/sdhci@e0100000"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x20000000>; + }; + + chosen { + bootargs = [00]; + stdout-path = "serial0:115200n8"; + }; + + phy0 { + #phy-cells = <0x0>; + compatible = "usb-nop-xceiv"; + reset-gpios = <0x8 0x2e 0x1>; + phandle = <0x7>; + }; + + __symbols__ { + cpu0 = "/cpus/cpu@0"; + cpu1 = "/cpus/cpu@1"; + fpga_full = "/fpga-full"; + regulator_vccpint = "/fixedregulator"; + amba = "/amba"; + adc = "/amba/adc@f8007100"; + can0 = "/amba/can@e0008000"; + can1 = "/amba/can@e0009000"; + gpio0 = "/amba/gpio@e000a000"; + i2c0 = "/amba/i2c@e0004000"; + i2c1 = "/amba/i2c@e0005000"; + intc = "/amba/interrupt-controller@f8f01000"; + L2 = "/amba/cache-controller@f8f02000"; + mc = "/amba/memory-controller@f8006000"; + uart0 = "/amba/serial@e0000000"; + uart1 = "/amba/serial@e0001000"; + spi0 = "/amba/spi@e0006000"; + spi1 = "/amba/spi@e0007000"; + gem0 = "/amba/ethernet@e000b000"; + ethernet_phy = "/amba/ethernet@e000b000/ethernet-phy@0"; + gem1 = "/amba/ethernet@e000c000"; + sdhci0 = "/amba/sdhci@e0100000"; + sdhci1 = "/amba/sdhci@e0101000"; + slcr = "/amba/slcr@f8000000"; + clkc = "/amba/slcr@f8000000/clkc@100"; + rstc = "/amba/slcr@f8000000/rstc@200"; + pinctrl0 = "/amba/slcr@f8000000/pinctrl@700"; + dmac_s = "/amba/dmac@f8003000"; + devcfg = "/amba/devcfg@f8007000"; + fpga_region0 = "/amba/fpga-region0"; + global_timer = "/amba/timer@f8f00200"; + ttc0 = "/amba/timer@f8001000"; + ttc1 = "/amba/timer@f8002000"; + scutimer = "/amba/timer@f8f00600"; + usb0 = "/amba/usb@e0002000"; + usb1 = "/amba/usb@e0003000"; + watchdog0 = "/amba/watchdog@f8005000"; + usb_phy0 = "/phy0"; + }; +}; diff --git a/target/zynq-zybo/boot/uEnv-linux-4.19.57-armv7-fpga.txt b/target/zynq-zybo/boot/uEnv-linux-4.19.57-armv7-fpga.txt new file mode 100644 index 0000000..e032047 --- /dev/null +++ b/target/zynq-zybo/boot/uEnv-linux-4.19.57-armv7-fpga.txt @@ -0,0 +1,19 @@ +######################################################################## +#uenv: config_name = zynq_zybo +#uenv: menu_title = Boot linux-4.19.57-armv7-fpga with FPGA program +#uenv: menu_priority = -1 +######################################################################## + +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-zynq-zybo.dtb +linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio + +fpga_load_cmd=fatload mmc 0 0x03000000 design_1_wrapper.bit && fpga loadb 0 0x03000000 $filesize +slcr_unlock_cmd=mw.l 0xF8000008 0xDF0D +slcr_lock_cmd=mw.l 0xF8000004 0x767B +fpga_set_cmd=run slcr_unlock_cmd && mw.l 0xF8000170 0x00100A00 && run slcr_lock_cmd + +linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} +linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${fdt_addr_r} + +uenvcmd=run fpga_load_cmd && run fpga_set_cmd && run linux_load_cmd && run linux_boot_cmd diff --git a/target/zynq-zybo/boot/uEnv.txt b/target/zynq-zybo/boot/uEnv.txt index 8dda90f..a9c8a83 100755 --- a/target/zynq-zybo/boot/uEnv.txt +++ b/target/zynq-zybo/boot/uEnv.txt @@ -1,5 +1,5 @@ -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-zynq-zybo.dtb +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-zynq-zybo.dtb linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio fpga_load_cmd=fatload mmc 0 0x03000000 design_1_wrapper.bit && fpga loadb 0 0x03000000 $filesize @@ -12,5 +12,5 @@ linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${ uenvcmd=run fpga_load_cmd && run fpga_set_cmd && run linux_load_cmd && run linux_boot_cmd -bootmenu_0=Boot linux-4.14.123-armv7-fpga with FPGA program=boot +bootmenu_0=Boot linux-4.19.57-armv7-fpga with FPGA program=boot diff --git a/target/zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga b/target/zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga new file mode 100755 index 0000000..40ce3f7 --- /dev/null +++ b/target/zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbd7277e8f8280756d8489cd27042fd15a433a2712653ab8f498fa3726ee1ee4 +size 4718528 From d8f162ac5d9b61f5f4d9ca0a2655cdae0864d9b1 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Wed, 10 Jul 2019 23:54:37 +0900 Subject: [PATCH 13/24] [add] linux kernel image, devicetree for PYNQ-Z1. --- doc/install/zynq-pynqz1.md | 32 +- .../boot/devicetree-4.19.57-zynq-pynqz1.dtb | Bin 0 -> 10314 bytes .../boot/devicetree-4.19.57-zynq-pynqz1.dts | 478 ++++++++++++++++++ .../boot/uEnv-linux-4.19.57-armv7-fpga.txt | 14 + target/zynq-pynqz1/boot/uEnv.txt | 6 +- .../boot/vmlinuz-4.19.57-armv7-fpga | 3 + 6 files changed, 514 insertions(+), 19 deletions(-) create mode 100644 target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dtb create mode 100644 target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dts create mode 100644 target/zynq-pynqz1/boot/uEnv-linux-4.19.57-armv7-fpga.txt create mode 100755 target/zynq-pynqz1/boot/vmlinuz-4.19.57-armv7-fpga diff --git a/doc/install/zynq-pynqz1.md b/doc/install/zynq-pynqz1.md index 5ac42ac..3df630e 100644 --- a/doc/install/zynq-pynqz1.md +++ b/doc/install/zynq-pynqz1.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v0.9.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -15,18 +15,18 @@ shell$ git lfs pull - boot.bin : Stage 1 Boot Loader(U-boot-spl) - u-boot.img : Stage 2 Boot Loader(U-boot) - uEnv.txt : U-Boot environment variables for linux boot - - vmlinuz-4.14.123-armv7-fpga : Linux Kernel Image (use Git LFS) - - devicetree-4.14.123-zynq-pynqz1.dtb : Linux Device Tree Blob - - devicetree-4.14.123-zynq-pynqz1.dts : Linux Device Tree Source + - vmlinuz-4.19.57-armv7-fpga : Linux Kernel Image (use Git LFS) + - devicetree-4.19.57-zynq-pynqz1.dtb : Linux Device Tree Blob + - devicetree-4.19.57-zynq-pynqz1.dts : Linux Device Tree Source + examples/ : Example Programs * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) - * linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Image Package (use Git LFS) - * linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Headers Package (use Git LFS) + * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) + * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) - * fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) - * udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb : udmabuf Kernel Module (use Git LFS) - * zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) + * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) + * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) #### Format SD-Card @@ -40,13 +40,13 @@ shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/zynq-pynqz1/boot/* /mnt/usb1 shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian -shell# cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp -r target/zynq-pynqz1/examples /mnt/usb2/home/fpga shell# umount mnt/usb1 shell# umount mnt/usb2 diff --git a/target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dtb b/target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dtb new file mode 100644 index 0000000000000000000000000000000000000000..a5c10f9a379eb4246910d675fef254794ef6e71a GIT binary patch literal 10314 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 literal 0 HcmV?d00001 diff --git a/target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dts b/target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dts new file mode 100644 index 0000000..7ed8a4f --- /dev/null +++ b/target/zynq-pynqz1/boot/devicetree-4.19.57-zynq-pynqz1.dts @@ -0,0 +1,478 @@ +/dts-v1/; + +/ { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "digilent,zynq-pynqz1", "xlnx,zynq-7000"; + model = "Zynq PYNQ-Z1 Development Board"; + + cpus { + #address-cells = <0x1>; + #size-cells = <0x0>; + + cpu@0 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x0>; + clocks = <0x1 0x3>; + clock-latency = <0x3e8>; + cpu0-supply = <0x2>; + operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240>; + phandle = <0x9>; + }; + + cpu@1 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x1>; + clocks = <0x1 0x3>; + phandle = <0xa>; + }; + }; + + fpga-full { + compatible = "fpga-region"; + fpga-mgr = <0x3>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0xb>; + }; + + pmu@f8891000 { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>; + interrupt-parent = <0x4>; + reg = <0xf8891000 0x1000 0xf8893000 0x1000>; + }; + + fixedregulator { + compatible = "regulator-fixed"; + regulator-name = "VCCPINT"; + regulator-min-microvolt = <0xf4240>; + regulator-max-microvolt = <0xf4240>; + regulator-boot-on; + regulator-always-on; + phandle = <0x2>; + }; + + amba { + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + interrupt-parent = <0x4>; + ranges; + phandle = <0xc>; + + adc@f8007100 { + compatible = "xlnx,zynq-xadc-1.00.a"; + reg = <0xf8007100 0x20>; + interrupts = <0x0 0x7 0x4>; + interrupt-parent = <0x4>; + clocks = <0x1 0xc>; + phandle = <0xd>; + }; + + can@e0008000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x1 0x13 0x1 0x24>; + clock-names = "can_clk", "pclk"; + reg = <0xe0008000 0x1000>; + interrupts = <0x0 0x1c 0x4>; + interrupt-parent = <0x4>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + phandle = <0xe>; + }; + + can@e0009000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x1 0x14 0x1 0x25>; + clock-names = "can_clk", "pclk"; + reg = <0xe0009000 0x1000>; + interrupts = <0x0 0x33 0x4>; + interrupt-parent = <0x4>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + phandle = <0xf>; + }; + + gpio@e000a000 { + compatible = "xlnx,zynq-gpio-1.0"; + #gpio-cells = <0x2>; + clocks = <0x1 0x2a>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x14 0x4>; + reg = <0xe000a000 0x1000>; + phandle = <0x7>; + }; + + i2c@e0004000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x1 0x26>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x19 0x4>; + reg = <0xe0004000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x10>; + }; + + i2c@e0005000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x1 0x27>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x30 0x4>; + reg = <0xe0005000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x11>; + }; + + interrupt-controller@f8f01000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + interrupt-controller; + reg = <0xf8f01000 0x1000 0xf8f00100 0x100>; + phandle = <0x4>; + }; + + cache-controller@f8f02000 { + compatible = "arm,pl310-cache"; + reg = <0xf8f02000 0x1000>; + interrupts = <0x0 0x2 0x4>; + arm,data-latency = <0x3 0x2 0x2>; + arm,tag-latency = <0x2 0x2 0x2>; + cache-unified; + cache-level = <0x2>; + phandle = <0x12>; + }; + + memory-controller@f8006000 { + compatible = "xlnx,zynq-ddrc-a05"; + reg = <0xf8006000 0x1000>; + phandle = <0x13>; + }; + + serial@e0000000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "okay"; + clocks = <0x1 0x17 0x1 0x28>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0000000 0x1000>; + interrupts = <0x0 0x1b 0x4>; + clock-frequency = <0x1c2000>; + phandle = <0x14>; + }; + + serial@e0001000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "disabled"; + clocks = <0x1 0x18 0x1 0x29>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0001000 0x1000>; + interrupts = <0x0 0x32 0x4>; + phandle = <0x15>; + }; + + spi@e0006000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0006000 0x1000>; + status = "disabled"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x1a 0x4>; + clocks = <0x1 0x19 0x1 0x22>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x16>; + }; + + spi@e0007000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0007000 0x1000>; + status = "disabled"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x31 0x4>; + clocks = <0x1 0x1a 0x1 0x23>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x17>; + }; + + ethernet@e000b000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000b000 0x1000>; + status = "okay"; + interrupts = <0x0 0x16 0x4>; + clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phy-mode = "rgmii-id"; + phy-handle = <0x5>; + phandle = <0x18>; + + ethernet-phy@0 { + reg = <0x1>; + phandle = <0x5>; + }; + }; + + ethernet@e000c000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000c000 0x1000>; + status = "disabled"; + interrupts = <0x0 0x2d 0x4>; + clocks = <0x1 0x1f 0x1 0x1f 0x1 0xe>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phandle = <0x19>; + }; + + sdhci@e0100000 { + compatible = "arasan,sdhci-8.9a"; + status = "okay"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x1 0x15 0x1 0x20>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x18 0x4>; + reg = <0xe0100000 0x1000>; + phandle = <0x1a>; + }; + + sdhci@e0101000 { + compatible = "arasan,sdhci-8.9a"; + status = "disabled"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x1 0x16 0x1 0x21>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x2f 0x4>; + reg = <0xe0101000 0x1000>; + phandle = <0x1b>; + }; + + slcr@f8000000 { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; + reg = <0xf8000000 0x1000>; + ranges; + phandle = <0x6>; + + clkc@100 { + #clock-cells = <0x1>; + compatible = "xlnx,ps7-clkc"; + fclk-enable = <0xf>; + clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb"; + reg = <0x100 0x100>; + ps-clk-frequency = <0x2faf080>; + phandle = <0x1>; + }; + + rstc@200 { + compatible = "xlnx,zynq-reset"; + reg = <0x200 0x48>; + #reset-cells = <0x1>; + syscon = <0x6>; + phandle = <0x1c>; + }; + + pinctrl@700 { + compatible = "xlnx,pinctrl-zynq"; + reg = <0x700 0x200>; + syscon = <0x6>; + phandle = <0x1d>; + }; + }; + + dmac@f8003000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0xf8003000 0x1000>; + interrupt-parent = <0x4>; + interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7"; + interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>; + #dma-cells = <0x1>; + #dma-channels = <0x8>; + #dma-requests = <0x4>; + clocks = <0x1 0x1b>; + clock-names = "apb_pclk"; + phandle = <0x1e>; + }; + + devcfg@f8007000 { + compatible = "xlnx,zynq-devcfg-1.0"; + reg = <0xf8007000 0x100>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x8 0x4>; + clocks = <0x1 0xc>; + clock-names = "ref_clk"; + syscon = <0x6>; + phandle = <0x3>; + }; + + fpga-region0 { + compatible = "fpga-region"; + fpga-mgr = <0x3>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0x1f>; + }; + + timer@f8f00200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xf8f00200 0x20>; + interrupts = <0x1 0xb 0x301>; + interrupt-parent = <0x4>; + clocks = <0x1 0x4>; + phandle = <0x20>; + }; + + timer@f8001000 { + interrupt-parent = <0x4>; + interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>; + compatible = "cdns,ttc"; + clocks = <0x1 0x6>; + reg = <0xf8001000 0x1000>; + phandle = <0x21>; + }; + + timer@f8002000 { + interrupt-parent = <0x4>; + interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>; + compatible = "cdns,ttc"; + clocks = <0x1 0x6>; + reg = <0xf8002000 0x1000>; + phandle = <0x22>; + }; + + timer@f8f00600 { + interrupt-parent = <0x4>; + interrupts = <0x1 0xd 0x301>; + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xf8f00600 0x20>; + clocks = <0x1 0x4>; + phandle = <0x23>; + }; + + usb@e0002000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "okay"; + clocks = <0x1 0x1c>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x15 0x4>; + reg = <0xe0002000 0x1000>; + phy_type = "ulpi"; + dr_mode = "host"; + usb-reset = <0x7 0x2e 0x0>; + usb-phy = <0x8>; + phandle = <0x24>; + }; + + usb@e0003000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "disabled"; + clocks = <0x1 0x1d>; + interrupt-parent = <0x4>; + interrupts = <0x0 0x2c 0x4>; + reg = <0xe0003000 0x1000>; + phy_type = "ulpi"; + phandle = <0x25>; + }; + + watchdog@f8005000 { + clocks = <0x1 0x2d>; + compatible = "cdns,wdt-r1p2"; + interrupt-parent = <0x4>; + interrupts = <0x0 0x9 0x1>; + reg = <0xf8005000 0x1000>; + timeout-sec = <0xa>; + phandle = <0x26>; + }; + }; + + reserved-memory { + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + + zynq-dma-unusable-area { + reg = <0x0 0x80000>; + }; + }; + + aliases { + ethernet0 = "/amba/ethernet@e000b000"; + serial0 = "/amba/serial@e0000000"; + }; + + memory { + device_type = "memory"; + reg = <0x0 0x20000000>; + }; + + chosen { + bootargs = "earlycon"; + stdout-path = "serial0:115200n8"; + }; + + phy0 { + compatible = "ulpi-phy"; + #phy-cells = <0x0>; + reg = <0xe0002000 0x1000>; + view-port = <0x170>; + drv-vbus; + phandle = <0x8>; + }; + + __symbols__ { + cpu0 = "/cpus/cpu@0"; + cpu1 = "/cpus/cpu@1"; + fpga_full = "/fpga-full"; + regulator_vccpint = "/fixedregulator"; + amba = "/amba"; + adc = "/amba/adc@f8007100"; + can0 = "/amba/can@e0008000"; + can1 = "/amba/can@e0009000"; + gpio0 = "/amba/gpio@e000a000"; + i2c0 = "/amba/i2c@e0004000"; + i2c1 = "/amba/i2c@e0005000"; + intc = "/amba/interrupt-controller@f8f01000"; + L2 = "/amba/cache-controller@f8f02000"; + mc = "/amba/memory-controller@f8006000"; + uart0 = "/amba/serial@e0000000"; + uart1 = "/amba/serial@e0001000"; + spi0 = "/amba/spi@e0006000"; + spi1 = "/amba/spi@e0007000"; + gem0 = "/amba/ethernet@e000b000"; + ethernet_phy = "/amba/ethernet@e000b000/ethernet-phy@0"; + gem1 = "/amba/ethernet@e000c000"; + sdhci0 = "/amba/sdhci@e0100000"; + sdhci1 = "/amba/sdhci@e0101000"; + slcr = "/amba/slcr@f8000000"; + clkc = "/amba/slcr@f8000000/clkc@100"; + rstc = "/amba/slcr@f8000000/rstc@200"; + pinctrl0 = "/amba/slcr@f8000000/pinctrl@700"; + dmac_s = "/amba/dmac@f8003000"; + devcfg = "/amba/devcfg@f8007000"; + fpga_region0 = "/amba/fpga-region0"; + global_timer = "/amba/timer@f8f00200"; + ttc0 = "/amba/timer@f8001000"; + ttc1 = "/amba/timer@f8002000"; + scutimer = "/amba/timer@f8f00600"; + usb0 = "/amba/usb@e0002000"; + usb1 = "/amba/usb@e0003000"; + watchdog0 = "/amba/watchdog@f8005000"; + usb_phy0 = "/phy0"; + }; +}; diff --git a/target/zynq-pynqz1/boot/uEnv-linux-4.19.57-armv7-fpga.txt b/target/zynq-pynqz1/boot/uEnv-linux-4.19.57-armv7-fpga.txt new file mode 100644 index 0000000..fee4a78 --- /dev/null +++ b/target/zynq-pynqz1/boot/uEnv-linux-4.19.57-armv7-fpga.txt @@ -0,0 +1,14 @@ +######################################################################## +#uenv: config_name = zynq_pynqz1 +#uenv: menu_title = Boot linux-4.19.57-armv7-fpga +#uenv: menu_priority = -1 +######################################################################## + +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-zynq-pynqz1.dtb +linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio + +linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} +linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${fdt_addr_r} + +uenvcmd=run linux_load_cmd && run linux_boot_cmd diff --git a/target/zynq-pynqz1/boot/uEnv.txt b/target/zynq-pynqz1/boot/uEnv.txt index fc81935..57f5060 100755 --- a/target/zynq-pynqz1/boot/uEnv.txt +++ b/target/zynq-pynqz1/boot/uEnv.txt @@ -1,5 +1,5 @@ -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-zynq-pynqz1.dtb +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-zynq-pynqz1.dtb linux_boot_args=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio linux_load_cmd=fatload mmc 0 ${kernel_addr_r} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr_r} ${linux_fdt_image} @@ -7,5 +7,5 @@ linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${kernel_addr_r} - ${ uenvcmd=run linux_load_cmd && run linux_boot_cmd -bootmenu_0=Boot linux-4.14.123-armv7-fpga=boot +bootmenu_0=Boot linux-4.19.57-armv7-fpga=boot diff --git a/target/zynq-pynqz1/boot/vmlinuz-4.19.57-armv7-fpga b/target/zynq-pynqz1/boot/vmlinuz-4.19.57-armv7-fpga new file mode 100755 index 0000000..40ce3f7 --- /dev/null +++ b/target/zynq-pynqz1/boot/vmlinuz-4.19.57-armv7-fpga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbd7277e8f8280756d8489cd27042fd15a433a2712653ab8f498fa3726ee1ee4 +size 4718528 From f810fcf45e956518358104fcc3d477c7d24a27e6 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Thu, 11 Jul 2019 00:00:59 +0900 Subject: [PATCH 14/24] [add] linux kernel image, devicetree for DE0-Nano-SoC. --- doc/install/de0-nano-soc.md | 32 +- target/de0-nano-soc/boot/DE0_NANO_SOC.rbf | Bin 1312432 -> 132 bytes .../boot/devicetree-4.19.57-socfpga.dtb | Bin 0 -> 25296 bytes .../boot/devicetree-4.19.57-socfpga.dts | 1192 +++++++++++++++++ .../boot/uEnv-linux-4.19.57-armv7-fpga.txt | 18 + target/de0-nano-soc/boot/uEnv.txt | 6 +- .../boot/vmlinuz-4.19.57-armv7-fpga | 3 + 7 files changed, 1232 insertions(+), 19 deletions(-) create mode 100644 target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dtb create mode 100644 target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dts create mode 100644 target/de0-nano-soc/boot/uEnv-linux-4.19.57-armv7-fpga.txt create mode 100755 target/de0-nano-soc/boot/vmlinuz-4.19.57-armv7-fpga diff --git a/doc/install/de0-nano-soc.md b/doc/install/de0-nano-soc.md index e266002..e58a7ea 100644 --- a/doc/install/de0-nano-soc.md +++ b/doc/install/de0-nano-soc.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v0.9.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -14,21 +14,21 @@ shell$ git lfs pull + boot/ - DE0_NANO_SOC.rbf : FPGA configuration file (Raw Binary Format) - uEnv.txt : U-Boot environment variables for linux boot - - vmlinuz-4.14.123-armv7-fpga : Linux Kernel Image (use Git LFS) - - devicetree-4.14.123-socfpga.dtb : Linux Device Tree Blob - - devicetree-4.14.123-socfpga.dts : Linux Device Tree Source + - vmlinuz-4.19.57-armv7-fpga : Linux Kernel Image (use Git LFS) + - devicetree-4.19.57-socfpga.dtb : Linux Device Tree Blob + - devicetree-4.19.57-socfpga.dts : Linux Device Tree Source + u-boot/ - u-boot-spl.sfp : Stage 1 Boot Loader(U-boot-spl) - u-boot.img : Stage 2 Boot Loader(U-boot) + examples/ : Example Programs * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) - * linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Image Package (use Git LFS) - * linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb : Linux Headers Package (use Git LFS) + * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) + * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) - * fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) - * udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb : udmabuf Kernel Module (use Git LFS) - * zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) + * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) + * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) #### Format SD-Card @@ -44,13 +44,13 @@ shell# dd if=target/de0-nano-soc/u-boot/u-boot-spl.sfp of=/dev/sdc3 bs=64k seek= shell# dd if=target/de0-nano-soc/u-boot/u-boot.img of=/dev/sdc3 bs=64k seek=4 shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian -shell# cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-2_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp linux-headers-4.14.123-armv7-fpga_4.14.123-armv7-fpga-2_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp -r target/de0-nano-soc/examples /mnt/usb2/home/fpga shell# umount mnt/usb1 shell# umount mnt/usb2 diff --git a/target/de0-nano-soc/boot/DE0_NANO_SOC.rbf b/target/de0-nano-soc/boot/DE0_NANO_SOC.rbf index 5c3eaeb46f8e78c33503e6a42f19ceaab8cb3fad..6535ceebfad5998e75b18ecaa8a57f74843267e0 100755 GIT binary patch literal 132 zcmWN_K@x)?3;@78ukZsENf3;`K}-rWZE+g((AU?~&g{ist?e_E-Va@^eb)YXiH^7B z+{WDARu9hha;DXN(2`&dYetv=7%`#%lOX4`q(CA8{IW&5d)^5hVWgNRn1v;!#m9_H O6Bw;O9vnLG2<8tcO(%N* literal 1312432 zcmeFa4V+w6c|U$<9KsL-?k=lLA||tOEfbm=>q`}1$k}z|e?!xPtyX;LA5g22YN6J) zh}N80E_lI}Y(lINtt2*DtSA(#ee+i)VT-FDN~r#7ZU5Dv*cL06;YB3nW&hvrbI!SQ z?%kQq!t5>^yw7K!`@EdzJkN8^dG5J)X79{QPd~A69^jYmpPv51N2aI0{J`||i|?79 ze&Alnt?B76J~%!7w}+;u`yjs*@{`J6>==TcXA+%RO-w!+$cp>Cx z!Ou$IU*88C^m#q-P4ICR@I>IpfUk$$zk*ii6Sy4mw-MvJ@NqJ5HTs_i41zy9?}?qI zJo*zk13?ZQXFx+sBxsA|v!JsI$XOlbtPZNgFWWjH)Q=f-mmZz;opfEgr_^)l=WMbx z<)|m2^y8#^6&%rmCav-?b6!PRm7}q7yj8h=33YnXY8QlB1Cw_0gsL3dddQk8&`xcM zzEeB8B<-{DXwy|1Sg3+Jq^c87T_>norK7Xi_-&rOwtAt^JK3rq8$o}`Kii9XLRF5b z7#gYss}P8UsvOe?>WGg6wChs^D^JVf5!Oj^pEQ#|8I^)cj$vXr)XV9=D&L?Pb_O(xCeHy*dl6Pn{ zb2~nsK8N#6pFU_$An(vqAC`SQeGcc8KIa?sd^?<@KgMwRn|`L{ zTr?|BnTyqY*l5oQc_%vxm4LRC#OFQroY-Fa&KAJ=C3QU51p#fnk~-e1=AAhIq>cyM z5j3>KENCc*hXZX5NF8rgGYH!qrW?O-8D-Z-IvZ%)Na}d2N)gva>UgjTPaSbK(6*7( z@m7^0u8q|3U=yA?;%uO8BdO!9Y6f9DF$)?B;^9DB15(FZ)eORRhkm2ekErb`mwql5ZOQuxao$10<7_zZ0T;j_^Y=k}0(pm?`mpTd>2o-z^y!24 z1o95s>ib^M=4a<-_MP3{wYq-YsIyzjl)29*DC>+=14)}ef|g_Zpe);swk>Dp{QerI zl!;BC_7H5+rYI}`DC?6{14)}ef|g_Zpe&oEL2%I+o1C8fTtHbPQVk>}Hi6nhut}Su zumGT}Pf`seZ2}2ej_rf8Y&Y7roSpOgYnW0dHi6nhut}Su&;uy1ulD#Xt2~AF`1xd& z=S+M2;- z_`Ii1SPgDAOblmX)GTfD+SCVcK3eBG6U3LvJCweV6QC~-l*eoEM1qo|IrzM%PT6$V ze|inuG!NNvIGJsa5tOx8@S%aEO{=3EIJCMslUe#H>x8t~fu~AaeMdsyS?Hw8+BmtJ zE%eISfXetOceD3wQ!MTMK0c2o6g)x8(H{KRj(60z z>&TzGqmx>B$|iWq#3oRCD09hJbB+hwEM)s`1TDw*L0PsNZClRH`TaFa-T0c|DLZ7&(gvLZ_5#Xv_QsyfiPdS?(2kU# zNkX^=0x7!OjZGYt`Vj^{GfL2=8J!8);O7b& zhQz?jk)l8+oomZd&sO_w(EBpSKv~A(+Xcs5k`g^ZdA#(uu|)6lo}FXG#t9zv^_qI? zhwS48<#p7KcYYmpdY}4jj(60z>%uGO9X7!`1e@$b)De_L882eEb^Iku^bL%jwzfdY(geQPL)3P?~EeZFaR8k9&-a%@wI8mKI7f;!N`d`q6iQQ#>z zfdnPTG^MTyB-Iu{($`^6=2$ch05WHg-Pkpi0Og^R9c_{UXp7{#fkuNv-^S@kv!JYk zv`OCPt8Jc&x(=YA(@t+~**5{ldsMLzGHKK58An4-`g-JJ5MrV;b9ntBr_*4F z1SQ8b)mBg11QHaGYao<7kUT+I^!cXMX;30T*?CkVnL`sq0X47*bkGE&fEw5Y60-dj zb-<>j8k9&-ax@3>!~pS|AR0(e7Rfh(8c0wcI$5agPhMLjKWDJxpUqx*joRad_4+HX zO?&)&vdVL&JwC;HIdOh_1?4%=3BT%-37cV*Cu@(NPgZ%(w8wX44>u1zv?~The^L!} z6l_wzpaMfmIS9_)#G~Q6#Bq%@>;fA4 z*|1Buwi+>1TS{>Z?^1BQP+O<2E!By_;p%uGJ>D@J$Hma-FTQcmXmbeGKo|cCt;8bQ z$3Qjt3@XZge;Q=LZ}-}?<86B)L(h0gOtkxP+0755Fn$Lb43VJZhy(fyZ#%iZq{5?p z47@{~<-Pc5l0MSU@wQ!2MnkHNI2m`?fFVZxjq;Gr*YT zolMFm0;xk^_W2S7htxNLmjdfRLKAr?&@xa1BOrl&nq&Zq2igG%bxV`rNJ860NF8si z1L?0Ji~`5dcR#4IxEypjbg}i>ggga41T6vyj*@4d1fj6=+e}M)ERI zB1Nr{Ho+3K9AU>?fK4l_F4U?MqQPNlbAaf!HK)3EC z$^iObA)I%x`6e338pvAJR!Nx{0trfvhBhr91ea_etF0VaItf|=Dl0oWYGtNIBye3c zDHLvOl!;9sLCLWly9qh6I>sp>M+M5gK-qkqe^SRw4M1kBGVL6K6@c6%1FAhL>kFB2 z7?14=M1vAoqmD9`1~LYLF`bB zl5Hb(yj2OIe+?u}V%f1Cc3iFl`VyS~WDcQIYyfDWGbbGd5*R~Sn#`e%5A{s2PLf!# zaC~Bn{&J24mmKeO>}I>R=MuUkrZrTS3i0xw-o>eVyx3XCBpR5+LVxE!hTieCIUFzs zYmhOCSuo@CV!^=qCl#LgyFq6hXis+jNh441YTvm?#s!;HEN9^Lb*yrXr7l(-vg3Ul z=ZbXH_K7W(abZk~jYQrTINqn$-uWkWyloP~E(F(=e8>ZUA6np^TDRD#KbjJVEJwS< z7LK)b&h;WsDr*Po=I|EunHlT88|hL3o4`)s;`ryAZ-)>9-18mpVlp0)d9yz$jhG`* zIyj1XmTM$!ErO(grUci8yo*KZcz+m<`Vcpece(8Du{LhLM5QUu{J|$Y&+SG!2O~N zXzFczvf3hfg4BWauSJu-m!XRJOFi0lN0Rxn{S_LB8c5J`#JFvI$_iKlI?!O~pVS{e z#2~2y>z}%gkQu+q8qLz*AHVCCjLRv|-ygq*o|xEK|I|6qjv<{TzL=q1gYm~tSwX=V zG_6`uJxw5?gfxE;~vl(na|qQ5dShH$7Qc=OlnI11Fj1dxxby^>Qh*Dj!~UMTX>$c?!wVBk~er=X(mm=r!8b$SIo zW0De-9L<651kg|0d^8o5L5NKtp>BxuZ-OUkU;=Qafad!Abf%Hyo4P-;9g^6IgZ3Ob zm9~se$txh?G@CQ)pedS}dtno8jHTEP-qDb92hh}^gHW)f#3qnXH$?n2!4owQT@qkE zbzrJCeS^eu76$#9J3;dRUK7b%SZ1jL)s~lu_hgN@vKRXC!MoRtwp&7IPe>?vU=v6v z@jx3dA8l12qGucJ%Az>@K_AWp{v;ml$P+-9Io@dGI3p%zD6|#0J@v-W3vYH3i z5pfh{3kp=`p+kJv#q~|*fwsQA&s)D8iL-P4xle&tZodNW>VW+f4*-r&k?}xsv;MTz z%X<@^jnh-5-C#%^&xTo`lUbOxcVn@+@V;O62-;<0Y3e$F_H@E$d`fdC9UEMdUMwXY z+D)=n=ubW8QUmM2PM|s|p%ZORELpyV6C{nmd2<0ES5Vqg=f9YtTR#{^{dA>X79{B6KL zrp_X5n9~%H)W?gTVq}hM0;pg+W&44oKzowoNgcnl1RfXw3z$m{Y=FNK$Q%Or51^aG zoopH7YC=@NEND?YSH9DUtdT`&4j2PL%dt%h7(Z*0&E(m>47IPQXKbJXVV!9pL0cT9 zKq$dR90b8x;MtWr;+Y_nNhJjw`iW3dA7D%hb|q3GlnUx5`vb;6H7IQeB~a$#WY(WJ zf?iQi88Bk)8FK`vh(#b3SU=&xHmL^^w8hgv`(Q^~<~RYAn6_P6TC_3gUjzGr{|fBm z7#NE@Dez42O(3ZTPQZq1&6*~>h7>p<671ki1HWP0wQYYDXbhWuzyjhok)wbShg6BViNKlMR22M#e z?Es9SNlPZ~1bElK304D@MQ#03N93GHj-=>Mo;4#3NMK`-C1C0Wq#p|fw#=XL>gZ26 z6R3b1NYEC^`=EV+Jp02B_aeeEK>8+iJmt{p73&}I733z6pn(&>QJ@2{VXgoL{|rM= z7RitBfHn^O)j--QQv1qVcyuIf0twop0wpLpikrl@hOSAcM1TS^mIgL}uS6Wim3Y=J zEE>B>G%29=unC@^cz~TIwf)IAfs{4<0$i+r0#El%Ae$6W1Dil)DSmI_pTWwUMljak ziA^A55k`T!Wc%2Bxh75OfeN?}?F3#L_W_$g1!UkRgQL9(LL@}cF<%Xy$aV)B3`3Lp z5HmKw{1e-ZjVetgfc}*A8Gv3&C1tDA5O+}rP;xYV8H=ESFclhu5>oylUk|LZ15l$D zHE0#roC0OwASs%O3eKvagtfpb84D%Qn&qpOCggdrB|;%+`5|jiDg?o9Aln>NEprYi zdEzqUw;NbRP63d#X6ZSkP!rbz2~~^anOhZDu#`NZYLPsl3e-SnHw?ZCB%A|fl??#K zs9FRGIDXcUfM-{=s!n9cD%n>Hzxn@KmH2jiLhTrrL7}Zuu`?hvBv6);6p@D%u&49q zLDcNuC11@Z1_RhIlGiz+!F+(a>#hP%90oE*0@tky%0!xjztg&Q?>0VIceh>DPY0MY(EEl5}yr#DsVS&2<;lQ4-Pc) zA>RaF1w99}_(JnK>NSuRkWgmc78Lp`@Mi+S3W7*~QYskIU9YOtdBA(DD&z^P(=-OU zT%5x`+fJf+pbc%&pEBDcBT7D1@C2?OZT$W#AP)m~(*U4>Y~PJ>?RI`4JK!7z!8&=K z;V;2!_N9*V0Q)KtYyjQ!faHlZamaYXkZ~I(l=`Ygkfi_fZHKC(sLw6n&jC6eV>s+X zeO(W{z|;MrY?S2WNtz9jW8n_VCHLz$Wk<%TspP1WQmB z$$J4sbO(lYIAWC|d-+hk%C<$I=Kx6w8g^Q^_5mt^-8LuPh0@3$mvpiUC4z~26&yYj zvbMUbK#7#AKp&i*)Im1JD%SuixjqF9a(opqd7p>Z9-FskE-~K0Sq0>LI;?^ZfRZ=Z2*?M*HPAsShEsN+BhV#t zgP5H_LsEy6`dP*yt(x*IXDMYL-V z>!#6BTN|HHNB^X&VYeD~=$;^0fhvwfA6{hz+H+ilszve+lw&}zV!Z%PwU~;9*a5Kv zSobEc4tC1+sezVu4pcm!Gz^H`G>jj)mM9 z%j;^wJ`coV$x*0;Hx^xwRkUzi%#UlvbB#GVba~P)J5V=nHxCWkbO7z?SR-(6Y6O(~ z9x(#Cy-OLVay-~H(6NOP&}6;Pp;PT^*qj3-B`}r-1rZ>1yvxnym8CL= zu$S7m{bUZoE1(0$2!g-6i$|ubEpn|iFai$SHAItHS7BxzlJTKw#`x?Uj(Bq!*lVJ@ z*7)N)hwknCnH;HTgNt=4R5N0=&4lxoA#n4@1|_ZLz!+j@^OKw`|58hNjd5|ku1TIL zT^C`*)4OYdr%L=QPnjKm6>Tr|+GnuL7f`jBj2}#=@zZX%8$Wmg$KP?Rrn!BzvD%6Z zmjpNZ5wDs1s}EHOjH!XjQjmcAktX9oJGWnx476=aQP!~43t=5wkiE#t3Oc4q)HWv# zp1^(JDo{-U;Oxln25O6P{(*NuJMIm00UI)9+8&>$wsT#Dib$ZHBGUn?&<$nu8Zyz3 zS%thC=s-ILbk22vecFdA1V0Ab6b}}(V?b%g`SO9|s`?7@cKp7&qn&S%<+FjZ?U0qP zLrgzLw!3z=ncNaR+I6;*>k|x)Cu|3Xui4$}cG8trt{@g=2X!!Utsp|rUKs5`X# zI`S@M_Tjv1i&c&js4OL~#fXNTL0dJ=#FWl~BUUfO^WpY$+GyZ8FwkNI3OmPJmH6Vd zZMU=OLaByXM^K)YF=(ebMp6%};2p3oG%&IhYW-k)>?r*|}CB)Qo(<+W)x*m=@m zBVcO$kO?%YT02p6I3(kr%??H~ej0no_qRlLe*JNfC&KS4pmH`@3LA!&JcCc3E6r2@ zv>ekRe0{<*4uI)Mt+~9qQL%0xs$gj`32M zu9E45%rTRvi)p(iHBjg4MHe?|oXPMDm@fg^6jBD-N^EP8w?;0{;Q8iSQvl@{&jA?% z2ET}LGf(e6lWGT5$G~59K3$We$})UUCPHADKN;6V=xn;uY`)zLtsR@I)`pa^6sRHv za!e6$5_vSC*F;VRkUXI&#~}DFDDxEnbs>~hY0y2u0{ra;t-^ljRnRKNBET_Op6_oHlpGD+ z2fxfigA&OnKmo|Qlm?H=wG!$o(fXIy1(t_eKzXzY{{+TqSRPgK7e;H2PVGYZZB;9f z4!by{mY4k(q5=|{K;^~MoIE&oc8~(ig9Qyrq)n9x0II;<@UKB-53#Wz3MfnWfsP=S z24$^(9M}MF-GFP$)M<+#vaY06;9l%i8kA$wUM%XGKu7EFPkuM3Ab7X`f|WYvp2K<; zu>5WatHAFDR;_==aj{%(Bd{ai#6j6ud%ajyv=IpnAZ;|QtbjZe{tbsmN zklD8he3d;%8dxh$gw6+T1;!8_jx=yLWUgx!xEn~&7ReJdunFXOu0UD)1Pw~;20GJF zP2{)TL3R(YiW~wU-T1DUlL8VHu!-v{?KqdjD#RfmDM8B-2h;)W9P9=|zg3GM33z7d zSnL4U4N9zncgQApP4xRiEjEsxibm^(suUClXg|01}Y%qH-QQb8dQ_o^8jK1Q9x&? z6{Qb(j>!jY1xJ5i<)+YsCy*${LQa~LC~f9Y1^KuqGfxMRV?gyReBHJy&}PXPN*waY zw`x?WquZaYd8)0G;Oba;jr@OZH#o;@n9Z)r`XKUL1T8oj)W!5%aX1Mm%P|cX!*6$n zRmXs)+9Av`1h1FP1vx1%KlxvwlT+5_-c*7ihRZEuB4U+CCY4Hz%EROadnH!J?yxbe zZI;ORJI25A{**1p32^qx%Xd|mNz|}cKvKeNIU0-1(T|Cys%y^VtE`@BxEPu`*l8kI zVpl*M_6-=1bx0s@u?n_od1t3wJK9!ZAEB*p$2w+g1%H~h0M-lnDsYGj>WR$J)<4?` z4cn$EI6K=$Sed5>GHEQX-AV6hL(VXA3OOUOayZ@S~si`$1oYhl+>OR6DAD;Ad&taBi;zB4UWoUa;h4A* zc#5Sfp(hs5v4Gc4xOB?@*6D{hL`uKF5mMS=jgJOTTj~i_IkpeF&BDkC2pRZ#ZTl)v zL9{E(S%T<5UgnXV$s=}&wM}4u>m%VIGaPdq0{$I&>KuCVkhK$A*RO*e`?|5Z@iLwU zlCo_C)Y*L;_lsgjofpsN<=jDAl6RJ;JTGv||9i%r$20U{LB?}fs~!y$CvA3Uz3cnu zfBD!An|RxO#6WBPL!Z2+b^N=Jn1q?=fgA3=Z288ae4-b6)$)m6=oz;DpHvgAc+pFN zo}o!K&mzRLv}K#>Sw%;A%_Hyo+EHsNyeJGv{PMH2Fj? z$h6LMnoso1Iav@*KG6#@tuvkG6FqZI7DSUz^ny(5OsDxo&zzG5(c}}oAk#Y2X+F_2 z=VU=N`9v?sw9a&zPxQ<=SrAP=(F-!IGo9uWJ#$VLM3YbSf=ug7r};$BoRbC7JQ*jt zE>Em2$aMAKwDryK;KpOm9(~;ZG43Ju%oERV-M84KAlpXi00UC(zu(cWY%B%4q4 zLe8$|JD+H8G8U4}Cz`W6KTk#U&$>{p_x$4@{$A_1PMg(esWqmbl9)LEmZJv`-TZ#F z{rtO*9(?c3A81Ux{jL+r@4b0zW8y6jpRnSTo44)*bNu+ub00qb3LLJyB3ya%njglO z-n`~eeChr*hsG}*z52j~wfhf^AASF!D~^88p<6FhAH93rFjwAv%h4}9bnE*SnZfto z`T@25zwSCA$B%w1!|VVvOz%7HzU8C>n1PAA?>eb~Fc-HEja_%#_2Ls_M7xRX3r?I`dF!cn zG(K_eU0+-sF_n`Xn>RbH7j$3be+VBr= zd3Zn$6F1+rq417d9=#Zc4_sMTcgqJZZtU96XzOk{^`=J5!}uhEjZY%LRLEGz$pOCa zR9=wrr@i$@`*1k8|ED*d(t7**Y|*UTe_F7vULGDO)Fx^* zb=A;#slKkhg8m1mhSiRtcQSz55v?x->(>^LC6m^1f4RAK09op|UMXp0xwa9F4vv+P zX3(fXf}5xeH%1yRtecF3Uv5+e`r_wT0;V}$iFZk!CpRjS^^vJ{^~$pNtjprT{cE4y zxHQ~37E7YKKfbvBsgbZbxGp+|dD7v@`$Bd9H*dV|ea9X=?eHHSSVCuMzJD*$V&oH@ zPjvSgNM9!dZlNRGSj-M8(nzp=pp5NKV*?!uPTU?rj&}^z`@=9=S8DcS%N=giYIW?u z5q88uBdeXJ5Cun=0zj!IG+!@oDYhp`b3iW`MnYhwSZ0 zC0IFzO|x#dP$ni~yeaN4HP?#VU}|w(*@V5gQCm4W+=%MCMq|y`1MwJSq=s$RrdDDq z<8;W(xCdjPab*CB;d`3H2zdV$1~ol97Nas;J)?YZFlom-j5i_tjCd&cY23Ot|h#qZ&<0hb_5&v zU>W;)*z6w)*6)aL@7$<`Q9tB$CEQ<7&4xJ!(pF0UUb*+d7zxH1$s*KR7W z9370u>a|9xf_r$xZa^+Z1MoN*yVT_RG43)mSCavg7~<=Ct)L4r5>ta^1y6lrFfDUT zxRy+e#_HZ*J8Fn+-pXly$Gp{ZAM9=GVc6XLf zboaTL*Os5HiJqVTx^Mvw`=6H?tMrP&Gyc0g{fT2|G%UK}G334`zUK>T2H|B%K596U=^Sm)1Jl?nuPa1Fh9uGf^ z@#HZc2;TDW_HA2g4{txPh0hy*kPjZKtMNo|^1Lyb z7pyi99LuxEcQ*NiGoLs#$U{q>R1dzg1<%gWPtUaTi;o5lwk{g+)_-!T%_HgA7(1dPuZv?QTC6nibo8pIw0ZmJ zF6LQ)!@UD|HhSYD5B=@GwB9w>|GhpjCvi6F&(>upJNiYG^NC)h$$m0SG`7&b2pfyp zK}B+p_LjJT7V(g=eX@5@p6umQ$mYr3op?-amwn23ATHMN1Q&N?c?g;NxE13HwokjO zm+=qw;h<(7?hQgUP_)nX_VL+X+1s(lO$>$DH01*&HZh7CAJiDJ&qEI|wXrx(9*7>` z1JO~rVxBUt)v*chvX2=vHSD_X8D!)_iO;VM6(A^HZOVG6po+0FPeY^gz*yNn4h><) zX#C-IXT0aAGyc^5z{esLSZ`tSe_Qo7e{=5rWSD5&OW;A5VLl}`$mfm^2YiyNf#xgFSeiTtu#s}ZXXSjCwuW37Wb4fA05W!!##v7*AFA&qax;NGFT2HK2bG1g3qv& zRhf@k*=KukEtwF%ykEw(1e<-WfD402l9-5i$k;s(U28;f|5&;GK=eSUx8w0(_dqlr z9p+6uAAn|R=4!%L<|0>1{NW$9 zzW>%GRDFj}-FM3H5)jl?Pggldp zv^V_x{r~jatxq+Q5gZB3JQd5L4)w`!yCf5a8ySE){LPZs@iqp48z%3;V4Pp!;yhUY z;Qx2;#_z1S?p4Py{*eMtno?Qn6FzgIkF@=J;|IQf<%$ir&hcbi8tXB0)|WJOZ}ul1fw7bn_0Mfn*hk9nG@9^K><-Qxt#wR=9%bDgOk?edB4 zaRTSseNGb{&DGl?*?nQ%ANIEn{>$vq_zv(Ag4THh8~@>HA39|TrF8gI=2RVrceAJ# z`JMD4O?N)g`9yc0fqd)eJ~#8)l27!!PG@&#`9yc0n|W<{5=`_H_tY`J<(OZ0ybsLr zEAaKhe6smeKH0qbhjGNirTbUo+m!Jw$MWRy(fG<^e8ce-=39>Wb;tOYV}9N7E%J58 z_?Bb&y5kQFO#Bxg08S3cmmJIY9plS~Kk+?228>wv_F)9WBfwka`;Pao#`h1`_$06# zk z@(kk<{2fDYk_USRM=Gi?4^Q^sQTpPBCKGAcWs9w$TiSBg<=h#1==s8YQuV(o~_d0`f?4M8c z94D$*vwWg^oxwTw&nJ406VeVct=w4@Vj{WnAp5sLIYL-uQ zuQNEu{`o}DaiV%P%O|?m8JuJP4ikMueZ;Wb+JEQyL(9I4Pc$ZQg#F8C!}z1mc=PQa zE+zRN0nC%+e=kQ?sR#MboXqLe;HLA z^yi)Y@QZK&{E^R2%}ESMp4zokewyt;o;D6))X?^CK zT|6&Mb%)mrOEXa~t68@_TadgEd0mzOd;Mpo-~Xl7=WptqO1JZ7_ZNU9wuj z6Wt}_Aei;q(zVy(G|afab75Ow{Oj`{ddk*)$2rB4qLrC9rjlRl-Vbm1>56Ud&c6_O zp_l9NpNR3iq&EB4KAP{Yn;B^JDI5N_uTTegZzLQ_j`td_E$MeK% z=DLAQoG(9n@_x1beEu%U&HULDd^qsEH*alByyap3?8(-BV2&Th51t%<1rAqUfsYBU z!6yW7UV~2v?q73g{8Ikx34j0O==<>z!T0c!fywWmT#1heCcl5eUp!Ix{gV?y9^zd` z%BK+5jC^_ZE%v8L@Cn4H@uP?Xa=;Is$j_f#TzJPVAGo-HA3eF4KYD_XJFdG0A9sv- z7@s`#4jk}dNAvq9$MF-7{M8fr`ID#dLyzjq=I2lF8z?uv`<|D)q4o27Yz4Vr6&YDy z7;HY5?tmm8IVzWDhSe4J|H^zllJ@9{^TCpRjS^^qy>H(H+E zxHQ~37E7YKKfbvBsgbZbxGp+|dD7v@`$Bd9H*dV|ea9X=ZQFHGOa=pC%l@Fi$ z@z#g7_T+n^I_p9Of1SJ^e8)o~Vc2c!@1;$DJSuZae!+?|$04rTLY|o%ewtxM0(vzZ$vi=JFDoVUteB z%LJO1_M1tlj*f}HY;w()kGb(d_m5@#UjhG-JraHc<*bp)P(@!-9t!ap`7S?#^3d;1 z-&8no-cqfjF1H+af9Rfb_qO(Ydr4M5UpjUyq-|&1zxU~_Pfyyc^B+P9)L`7e&#ve~ ztOiQ>RTPEaQ0W`PPpFj9Qmpa^RbqAT*ZM!q$gb2@uUiZM_&8$Kb_doV|JM8`FJO+{XUreO_VNMK@gmO(<2`qZk_tJ zByane&l3A76ueX|^%XfcHDnsPx5QK#Z=~P9`iwotp8s!4^TsKe*EBOP=VjXE!b_Rg zA`2gI9wKy_=%rQSytR(;ODm-OVK8g~8gCfslKXE)bjFA8|Mf4nUiK^VFdg&j!o85` zxFc@Z_P`rQTBqWaJ%ZrLQQ}Lhz_I+SZ|vFK_V5ed_s9urTHkrq5mYEau;fdn(^+|4 z<-V1F()##EmheowO(jXOqVL)BxxXoGIJl_K25}GW3?a7Wxxltdr&n!my=i-5tICn# zXJHcKo*3RFrNF#@qf3}v{Qjs9Gye%-Y+GADzv0p42QFKpH{t#e+I*+0eY!Hf@7 zxT$r?dGxwN_r2)tw{3J!D9F5;y#yoZ#3X9ZN$)Io4QZ`}a()(>w*LE7XMF9Lv+rN3|DWqP9f#co7rgB2 z$jjA1#}qS4xd^qM@s*7qExqnrnKn;ca(N@S*4ZE1u%Abrp8{mYt{9=qX}4pZ5SlQc7%OX9k4`{j?^`Gn+hZULej;X4oU_>4@R2qDa@2-+_WP1KyIUN?S@-KFc&fXfl~;fJ z{%_rT`#;Y3cZj#+Eza~kmME<+eE8rumueYiAGf^? zd}1qvH-ugOV;!vd_5b?*vIC##`bxUPU>8l*rLc9O^`7@_{hjjpudx45(B^$uyd7ZY znfEsK<{b;r>3+7u7#8>Uw6DADzB8^n^JJUHrlKm;f_^?l69k*h(>;N%FXxk+_@%E&ni}B$Jn_H!0-o6nRu+R$9y@~d=2G8iS(h7l6sK=wupIXBErsEc zu+~>paa`)Vyg1Pa>R~N-btSm0q{haMg8jtaAQ&(9?W+gtNf zOR<-OJO&iV1DYlWd}lt2Y!YuGV$t|T_kE+aLfltwuH}Dj;}YLHFAu*G|Fd;D>}C$v z(0=QSe)`4-TNjPkxzIb;_AMV7FZF%B)~NM|ubw!4^H}NCm65Z;+MbE$tiNP`h-W-6 zAKQP{>&tsi+<~V%_e{Qe^CgqDb){Et-oAJIlKQ~@lWUtlvL_tcyKb^}&EU$Zr#DXy zYyGcTxqmRkoW7|sRv1>77i+Ik%Oh2&<3(OwmG~jh#<1df&{x7i-Uq!5lUNJ32NU(a zQUkvx5DtXvihHgfoC@Q<%kcnLBmDKkXD5fl`1SEG4xSZWv*-G!@Bg(`m*YvQJ>!>O z{*g;Cgv+9<_S8p^-!5HbzyyBFFvri z7qyJs){d087=@rOEFwi+Ms@?$f-XI8Aeg`e57dH2eExHP`tNURz3I(%2GKLZ`&ToF zZC+G@mzaE&IY$z--uMUkAQonU=C}lQvGSEzm{p+Hd?oVTX&$R9FQ>em@^VVgKz>f- z=R~?9dXn;T%FC&z0!nwz%PB9XbVc+e<>i!@Q%?ny?wprXUQX$X=t;`UDKDp<3Mkz< zFQ>em(iPE@l$TRpPCXS+x^rGmc{!ykq9-XYr@WkcDxh@dyqxlKN>@ZrQeIAZIrUUP z>CSmM<>i#Fh@Papobqz&sesa*^K#0|DP0jgNqITt<4l$TSwB6^bYa>~o8 zrvgfM&dVt;r*uX1B<1Clms3v#lemdMcoF=e(Tqa!OZ3Pf}h^c{%k|KZyRzo%3?a%PCzEJxO^v<>k~<0i`?V<&>9Gx*~d#@^Z?{siy);ch1WxFQ;@x z^d#lwl$TRa1(fcbms4I&>5Aw{%F8J)r=AKZ-8nC(yqwY%(UX*yQ(jIz6;Qf!UQT&A zr7NN*DKDqIoO&vtbmzRB@^VU7L{Cy)PI)=?R6yy@c{%0fl&*-Lq`aK+a_Xso(w*~i z%F8KT5j{zHIpyWlQvszr=jD`_Q@SF0lJauO%c-XVN_Wo7DKDpVMf4=)<&>9GPX(0j zoR?ExPU(v1Ny^J9FQ=XgDBU?Pr@Wlf715KFms4I&Jrz*8b6!q)Ii)M2Cn+zdyqtO} zpmgWFobqx?S42-zUQT&A^;AIV&UrcI<&>_7o}|2-@^b2_fYP1wa>~moT@gJ=c{%0f z)KdYaJLlz;ms7eTdXn;T%FC&z0!nwz%PB9XbVc+e<>i!@Q%?ny?wprXUQX$X=t;`U zDKDp<3Mkzem(iPE@l$TRpPCXS+x^rGmc{!ykq9-XYr@WkcDxh@dyqxlKN>@Zr zQeIAZIrUUP>CSmM<>i#Fh@Papobqz&sesa*^K#0|DP0jgNqITt<4l$TSw zB6^a3w#!MTPL;dNVAMrFA8K8omr4-m0uBVD0b^xRCWoybJ@lHJFZj;UiGs-?^N5Ea zk^@+1d5|G3RQi&rpQJYyBqc3oRJMVna^T1Re*aTH^x-7`CBm2#yCieLGang$ed}Yt z)^3)GwW3{tq;a9%VsU zTaL@vW@dFUhF~i=lL&Uoj7G%PS#Q}mb?nQ&+^NmeEk@ohTxRBN-f8XK?|I-&f7rTk zhwDS?=ja!AW(oW*i_GhPT66PPuK(au(_x?J{5ltg$&s^u^@|_=$a`CRf0WKzB!9|X z^MVbhoo7-DZ55*@YLm)$_ix;C%!cnB;}XNgrVDf$Mi~DTx$E#eFOP{$uIy+G|k+E zyDma+{Pjof{EgN>eSEoCA7AkPN`4k=Ue|P?uamt8$V` z$|Mn7=s1Yty$b7HS7wAVTL|3=&c5N$t&gNtR=yDJT*ZdHOo*d^*F$qDk?js_p#OK5)b9TVwBPXW`9xGJa`IHMH#)m~+`C=}WxU z&Sy=ZQrdXOQ*3lyLUvJ2B%Haj^Ki3a&RB1=R4RUYMmOj(OKTM z2x;5WX^cc^#C4B#Ina$#Gn>0E#l8dbFppc`Tf6o5j(z)odu>TLx(mIApv&GFGJ7NaUX^rRCWL*-;1s;3ZsuCoW7CA*OoQ7G1{RZz0&^CKV=4q% zFaO|yYs&}Ud6bpeOO=CR5i!r9&CT@EMYp+FbF<^(y5GRIBl*xUyYJL%Mq_-za5K`X zmjh-k6VASbx*-xwmsLr|pyDtt$6}9N8^eucwNwf5!m>E9W8!YF%VDdscg_A|ww~fD z4YA@9%d&(6e@!}YlzpVdln;!l1dv5!fy-1`omZ+HgB&Osi62iI$ zm7Lu?QxjVZIxg0dMMG)1S+QwIs-C&Kx3SF(j{5>i6;;N0P~mRId2RQJjV(%xaK@(& zeQ>DttmLv$qmpNa%)iZq4zMFdJY9sXM~11@rHR+`QKK>KNCN?-O%&1zCl7Lg-hhb& z2~M4HGLzQEt2pzKIKw=!}taX_}PK zSwNR8Csxh~HcnkHNj7of4kwFQkhZ4HnONq`Z@uG78(&^LdsVVOS+lyIAv=U<$V?Pf z382FaNEu{WO%h(lrXAyG_u`fcz|MvH=}s_x@S$&ir}d3nZ5!5KmRshf-aZ*Rb7%4&foTlq3G3s1hBlj-n%xR)*#5F z_)3qD(OmXqud1xpHNz6ndgI?8_}yc#`RC7}VNxKy{q7fzjwilO6TSKqP z^9&c}lnH_@;8QJ0uXKk*O~&-*%~>L(+GR`;VwR}}V+P4UF*Py(mKyjqC;aq^Uuk{# z8Po%6hWJODYpO894hEQ4bN1BzM(~L-6X*ukJ#WJWl1`}(W<@w63s>JX{e?em{rnf5 zY^n5SIK$Xi3pPQUU(MRi%&KOG+|FD~Z9mK_N|YNNJm45RKVI!o#$fKxcLHg##q)>{*O(yMJHTt_F&6KjWK+|D`XB{zl+fctOR zKV4GBJ1huMFcq|3`cE4!Exa!@n(VPA3ds^|k{asIj7_?6#$Er!B&o(kgA0an=csdn z-f-bOWK!TwPMpz27#D7Dow{}YkFI{>acj2Oe{4uV@uo{#(39bqVvRgr6EO?1F%{)w{L%$`-6jjaTM$p5hWk=pC?G@_5dOB{62YVh zHJC|_gU9PsYUG7#i7W#l8D+0$(kN5lUGL1k3oE>|3dOv}o+S*CIo5c|i}kWtZldeK z%5pf-z^#X*UkW3PItGsszz%8QogQ5O;0~+C@aPA3^xV4d_osj7=(~TneKUpB@xl%R zf-%lijIhr1B|5Iw$cGnnyoiS37Bj0gAy8sUkRxtm(7FtKJt~SdS4Y7Y^thxz1-A%L zBhvFSI#m%TRkD&e*YILq4}z(B4E4(8WYis3st}1MXLX+7d83>-`D87>3#bQzHDFE|CQsf7~J==AI5|G zp83Og*;lr2+tPgIp?KL}9*U1Pc=^#UJoNPo)s@$cTV@-XDQLh9zIW;(wf)boJt5>F z-u0)~o=`sJ>lf{txcJ)R$9FYw7~J>L?}h!>ZoeXIu0nuo5kOsa0J!Z!!5!CKsCK~9 zFkM>a{bWumKr=A0?b?$H2y$`Zy*IW7gyieB(wL9#?u@Qg9ok|dH(7L`-i``dCkbct@jUr*-$w5oy3imzMDUAWnt*9 z7q5(QI1z^zoESGxy{WO{t{1GHYOelK0|$70C)}$qua1s;D_o}V?ydK2`Sk6d#R?Jn z_KgNZks6pBP=%Kl`x>Rep`AgqzY(l2_7wtEDUl!6rM{xt6$OKhni^<82sXt93Oj~E zbhlCi-TO|jlsCowE1GMA*N+WGgQJyY@mZI}gZtMGZCSbelybASX?&p3f7!+L9V4OM zzP19lr7n=28Puz${D*J-Z}-x_Vb z>2uB=YbW#7uoFB|841=8lvj?G!l7s=IB|OfG2StRl{I2T4a8$bv`46#?GeSI=_^uk zy^|Vo0W~x+guo5F$)bw7I6^iE)d0$;j719i4IdYyi>W4-ds^u*94OLbYQwKJebJeD0~wU2CUlXfI}oBOPA3f24uD1|b&K50qAp4VH%@ zT{^M9*j&4*yt0VOt28L89Z{u*VMUm#K};1ydT&c8BEctm3cCfDkn&*@v< z4CB7BqiXBIfupXeT~_KJFP^osG^8g7HZ9lvQ?;5|h`pPp2H{Ta917Lo=*a~$3p^W< zU5#SgTswkEq}Yh!{;@K%WqP$nse*|c-V`^A+eMssWo*+M2sW3lADE2Q4TEui88g?| zT#7$if61VZkLjEIlpd@PE)U1|Hjv>p$gtELzO2-&4V)F?99)lu8f=Ug?Me(^z5kwv z?`i$+mt3XwOf`!C@c_0lLO;;5B6m4#z4Ci+T(XN41 zC{QIz!^pAqx*b=){OE(fg!?BSFwahG;8kI?Vs>zxg z!V5e>?9l^jM&m?5RzS48y^b+UAuQz-!O^~{h5=2PwLl{V=fQ7&Y~w!{Zv2*86XV|% z1?Sw9f!9Noj9^oNi2#!n-ezmnAl9eV>yD$4D&k8Jd4V%?7~%~t3sztu;ISk-0y&C+ zZKwa_tDk6n@i&YlS%>6tqKJwEvG-Pd4TCm0y5z-1;UwiAX`9#|Mq8wfJQ@SMu(E4H zktXIvk?Cb(#A1u1al|#y_?I3;ytT|8*t)cFh6Qpe_ol-XErQ^J%@16;t@VvdjFevJ2(b zE7*3?!+So~dio2jft&gCe#KdIr+eL6LX+%iTrxA;HEHE(=u|c<*UfG)urs~waL~<# z;9A*WZXg&UM`f;_961(8REDxmVEPpg55N5OeeF9l(RvHy(lf(M<aewUtMX%Bopq>29%t$JbT+awrw&tW`rT!!@!<9HZ@r+v;eF>8E;}M zGa-TG#F1gav@GYa#uy=Be&#eF*b-W&yy5Sk)q3{#jnrNtmq2^6yAH@jm&r&L$dqr* zWE6M{#9>1#gLeaxIWgJuh!v7?$k5D|4K)@4+c+6CCfj(jLQ`f4t#6!m<9{D_W5d0} zXu`2i&5qI6FpLRi8m$f0A^P|$v_&kSVheyA00TA-T+Y%ULJT9bC}lTCP(g_^pNqz0 zNCqCg-N3w&ulQCm;kwlieD|gcLibFAyO{72KI*Oyc7GLx$|&UwGiMo(!ik}INWk`C zq&jXCFmNOW5|VM-HQHP>1^03qb5|gXHIcGGFAhbOc(N$6WWp#0BPW;9K}!vED_E}x zvEj2f)|YQM$-d>CTrJxnC0sji^#l#DeU<7w!ep0lm!&DJDn=N#Ui^{`e^vU>ec%ah z4T_j%vms{IO+=YfXUc_E9fr+kKj0BwwqW%Dn0O8M3$G z%#x*U$TN$0-S7VIxjR~){|oj3xWrRqWQB!r$+f@3o^u*p(1W43@uz; zPCJ~E=HJ+8$u8pszd610k6SCxV;6usA!_MDJ>24TZlCR3#D6Og4p$1-wH;8onea9;|`7l=~JXfLQ zW;9dLUP-PrK$VhW-C~NhmUL|w4x^fp%c{YPyf%>#GDy3a?aLkpScZEn>lDvaa8|=h ziD|n2EkAwDYg_;KqiiMEgl$x-aPyrcV9X%GpUiR6)#;c&TBXL9Da;ECJK0r}D~6Kt zW`haL`4GGKk21%? z0Yp$jV8ze4i_zwyAGUty^k4nu)|WrTz67<F4iXRXclJjUI|CV6wDnN@53 z;2B%Lf9w^{HSJPuSQpJx&yEs{WhT=*-|V`r0 z$JWb?wX>Is7|vOkZuMMYMnU#c(fZf79{AJpfiK%zxTLn)_fMX3TtpmzC_cA+Lgng|4QOip`+HvTqSpVsL?j#*VSx4|>~a+}8TczG z3un$6o`&5K$oTu{L9OpcJOTXVMJGtrbuDI5j$m@Rmpa#4!edki}dlV zp{ox>mP>@J9S1whBD#Hap{_@_zxQa?mC!Rub}lNaCF z`i0-LA}U_ShbMY0C#Sh77CZEAL(}%kg;(O1tEEhxHl>tV<-E%5y0>3sqE$I-@q=+#i zc&UzV_-{5ko*pfe`Pc$}a*&ma`52Asc2i+Y8V_@a!TmPpqRnEwR=q-47^5Rb#gXHZ zA994d8|;Ed-Ov$kTkZqgRx2=mzk(57r$(H_wH#AnVvc=T73|7<8pv~C*ZM#twF z0U$x-W=rfsv)hxm#_23{y_8G^jm%AfXD)Flv%krJf-dpsfIcH&Ots0LB5#&k8}B*$ zt4G~E<}S+cqsGi7ULA#ta8O63;381Rx{WfI8d*lOspG7G2*+p$f(GuE*g8T(9pMB} zy!G3RM>Vkas)P@P)nOS#cy||soz0ym3ZGt-x#E$F;7Q|6x=^1ka}cAQkFVm56IH^= zR}Ka+C=4m=LxJI4lsN8_;f+Ulu7@A~tzm#jOgH!m7VM|6ZvA`oS8r(j=yK$EnQo3@3--7YW(i}*l(URkG+2vJMu=8EoC?{i4?R|>HwV!Ne+nH1;6c1V*aGCK zO2YS~jfpIMJ(z+hkewFa64y z_nRI()_`?ZvDAp@&45r$1a_1ihrARTwRH|m%8AJeP&OQnCLomtD9EJT4y5wLyu+@Hp20ktuQ8Xak`Ir*=5>!doi^IawH^-cS3`jl;h;+(RqK}&H zBaPe-1X{dAe;Fry>Wm|&OQ`+-h{Cr$Az-W9H6(p`Ku7$!VT#(#tE(6){Tvx8rI21Y zq(32j``4#`_eHIbz00*4iVuj|^^$RTQ*PQ*Ir>pMW^ej*%svU5a)QL=Gu=rm8ObE2 zIpgUMuKH^08_%{%RSMpUdco#iPd=MxZYMD5QTfig*l{Uj&cG~lr-Ez_Y(QkR^5YPr zGJn{NxM#?C;UAD(Q#D1SLr`pMX4BC1sI*0wSs!|Hv;zAVmM;qHu!WKiR^WDplw!>H zKDirc_YWj&ZrBIV`+^re`t}dCzUIDMEM#8^#7&Ak^W^z0m4tH`gCj)7Sz*c6*~n!pYuDO-+aJiJmcpIuftrC0k@iMLlaBiOaz8!2&v# zW*+b{9{LEbzx2NCr?x&iAOiGApu%tCC$~slp)K{qDTcJj&BV}2KlCa!N^(Z>S zHw{5!oPRN^xp*B%Q8OOuoM0SenvF`1 zR2d~I*w&0Sk_zKe;dLJ46Cy(pmtXl92CdV+b^fmMb(gzQAO)WJHS}#~Wm1r{&1?j4 zqDmMc8%$0Z8-`&Fsj5}@*9Mq7fGGf5o~a*hBgiW>%{T>c+KWY~OEHyE%&gH4wY36| zTWGdnY-Q6EN1ESutvEVv7aycV#B)2$PXogds}S&tSI!!B_L7*K*)pEQlokY&6GJ;* z*z|!;#V2g68=GPzhUV3XOB!imNUVQ=oZ~$2F~A^r*WJ_aTy|3OrIPSV7?z_g5($7{ zCb9pYy0;Irq^j?IYZql(j4gCG4eTKkm>x^4Nm@Z9I_3qcw?$hsc7%A);Bz$~c9KrQ z3Fh{^NZf08xRwX0UG^;^I9^;@e}t-a;Tpzi`R*pPsn#wq~i=wsq6+y8yW2Tf;c_kUb)Gt0{Tb zJS8n{!&>*aJ8s%8eV!n~zlpk58CE_Y>U>sHOW94A?#q}fveL$XGFA52jeq>tr=Iht z$3M^*cSu{NoBEnM)=d;!7;n3|Rm{$|%5ZsNv6?R@RMF)S#|eUUGIeP#`1RVv$tX!L z{`FJ;?6}^o=7aCzwkpY^(!QF^YQ{pzlUeTZxrIQ8VmmQ-R;#`Q-canUC=_#--)(%h z;>xiE+5)saRij(~;+*;DSlZ-M0P%8F!{1)`$`?tRKi!T`c{=vFDJ~E|3<|Z`C)mcd7q;?={ks-_qV#sZF zfyW>&M8R-M%%-}K0=?K;6H3jL7P($XWZId)OSNs9hzpzZqcUfdBj5P#|2(?zS;{A6 zjJjzgtu>7|+*tr11bmLaZBGk?ZYNSX+Me);aaPYQrUGX1FF8T5&N)~_!WU?1Lzk{O zS840?z3o4dO&~KEdw}I zw;z0nEdz$vv1PzRr%mqMyy%`{=is8xb2$4;mD6G3A?+FPKK2ZFAA1Jq?_KN}@GkZY zSUzFTfKBZg@HX}gcu0E&T*saP&4G;q^hQ7JXwLxN>u>f9xJVlZ=%xOLv}b@$9{6(i zTiKtTU7cztf6U1;In#DXzBGJfI{DHj`v!bz@W{;JMK%ujxxqIMvU|V_c1|6A)30{h zN8j{O4$uE+H@=2eHlF{*?&LN9?d-}9r|9gI2-ag=-Z)M*&_^JEf^0deE zdhOiQJ&Stze__5gyYUSFYV&ySfQ2aFt^8fQq95u_RkuIRrg?vQS{HgtySW(e9dLMV zY5V2@Ke2S;<^jd*Nk#vbK|0+&vM*!vfQ{L`y_VZQY^U|^0lW!4DbTaSB%3kRc&&M! zx6s)z0N9_@%Vvk<%58CpZU-;r=GTDi9m9v8i`W61^oEfot8Vgs*lxk)USrgIn z9Am1qS;@BKU8o$0Wy(3Jd{aVnSPo9VW)qO`8RMkcH;0$0$dMN{@&JclwI{oEru?#= z^Xi!$q}wyO(Ptm{;L_-q-d@9kfR!KXSvzj^9_km>~oV6;Uf_|buxAh#1~3k^U7Xa%ikiOS0OG;B_5f$28= z$dd{aY^+rMo39vkQVZcYrdnjwn>axQx@dHI5!dI^QBL`<5(TYQ)F1uMSFS(p>DOO3 zj+~c+m1S>G^nzYlX{|7e+-`l5I!oWa?l)qit1FamVyl#EfdXvuBNv&rDyCLw>i~=u zyDCGW)g*6jy2@f;^2cKi%k)cO%=*c6M zBBN$p<4hD*XVKOTt5T}4AzrAKzpIl}2fJQrPAFEF7VNs3Kk-;^Nh%h~q~n~6_a0D- zLe@S7?}8>$aP(XM@YNT$j;%EW9qtU$DOSWBF0>WMlIz@hwOh&euhyG^EV&*Td&7T@tQsy=ZZAu6Dt0ZovzNyM=6Y}Ek@ZZO_Xbsw@6W5^cC`MiDq5TC zSNVIL8^StPyVzzXm%jVE)8~%9{!=Csq=NUwSdlp1+E(%C1|hzDkIs0-o(m~F?wc!> z_V&V=AHS9=JOK!)Ov;a)>16BzCJKXw+H5%kIeS$?7tKVZd;W2@RkPYs_)2AD1pF&w zQ1UK}Ov=fF9p}z)Xtv}h`0Cp~^5v7SyxNSYEhTq0M&Xf<;iL= z6w3uaQCuS`>{Wt97D;zV9;zozu*42up91^`im1$V%c`dK>o5K45Ucf7E*XCF74D)Ocq$w>0)Z0t0jf<0QjI)ait*RGB1y zmlKbAlTX1qtFG8^v@Vv_p3zEisFPflq-8|u7rr*G0GGypE0B>_s9*&(Kl_bKKhiqy z%K9mh99YNm$OfR+e4{H{u@b&a?u@izA`|*XCpoFINzg!T(=LD7!&o@>zVx=*rDU5`zWxA{!S~;8q#llorx_ECdO83UoWz~zO z)3m*Ff;B`FMZ0jRj3%}GqFsnWBBb>NH*~>S ztX`U;56ap_T+w=2Mf-6${aXi)<#O7p$PL)5D0XFUvP!G=FkqPm+RM^87*v78x8D5H z``=6uvRP^^C8p{-k_R0g^P}!6K^A2Wqys&w^^L979nUs zO&^!F6_VLdrh5iO?DeNrxno^r!9sULJk9bf%{YSb#U|e(fFH${HzHP)b;4!2BLWRG z&JXSR<{!Rd^rQC(4oQTpAWjiW6Iw56t?LxJRl*ojW1XA3D8m&Y1NNY}b-I;X>$*5$ z#Co(vkN_GLY7puTjsUT0Q&-1{x<(4GQ`9OBsnA++AXqLWe>F(F(=w{WI*Enjotgf@|u{@Gz^;~u2YWB~nv0Pf8E2?J8 zEW?t0=JpP3&#YnqvB6SwnBE&4wc}Z^gkk1stHKU8_6%Jn3}=FNp%QtVvq2;~a>aAH zjK!>q9kUL1s_YFv^ypn@jNW}Cj8$r)NS)WJiEMr7iR4q|OQIz5eQ#wymidIDD&jT7 z%GdqGHh?Pzic%{cY+5^ortumJG=hZq>yxF}t|K(j=h6Jo%8b66-u2Z}k2xzq6~!7d zXTxv1J>%%iRjb=fDJbRVhsy~t)`cmrKN)B0zKZ*jT%ea?2f6qP<#W2_LG4s|IK{>e zF@64TH=>$4M9@-+*h&o?M{OQA)G7{%hNbn@|McijeslEJ{e}=&*3^2p zPJ^HfO7!J*bOJ?^KdsZK{G1fciwRmmS5yP1oIs7BkW(%zF@pa>U*I?weViIs#%j}W z&3EGz4kT9~n6xO32ytPMYLcCXR{tCr=^3pQ32<^$*yiS7hmm^o9gqC}CEGW*$g|#} z;X9l0PMy&VrGf!~&ha7F*wDhDYX#`ONw$02j-X%367%0kL|VOIN=EE?-m4zEb2h<29RQCVh$`ZWPI+4>c8rHdv5sbCGnHzdZJ zK~*ZM*g{5QV8l?8G|9t&&nm@jdQ>}U4p~%R-+%4j{l+Q3eEfs4rqI9F-xCCYS9f_Y zC&EmZ)8&;?A>Awj!QL(YDPg2MM1WeuN_jnBi1UyKP&f-H^>)rcTDchdelz>h?bu7{ zQz}KdJ0tRk^!9KY@tDObI>gm_OGgRhRsbP^j2lt>T}F5}>>kh&u3(6D#}XB8Zy4;B zFT_JE-99vFG9@g(?il^Ydx>_Ih;@f4jUer%{^l%ovluvoJAUUo|FAlG(;I6^DbNxv zqP=6pvKkqBn;_Rt4Lxzemk_nNAysq1gMh$^!hm_sfUN1{P`@QC5i3=jvm6ZdFBbPdu;-CO(hLRvYMSz1Wf{ocU66n9+UYmFsuCJpACfR^s1$ zNS{!$6tUY9$YqC52}eV@ktC zjTB8cR7R;)lUfl)TN9L?~$V_d!hA0S~*QYbq*x#)gUL72LtPnJy0%F z3T&4K1u9jNA(3v3g-pfURmv_3ya$LMg4l`X|o_*9J^JMI3DJoT-QTdn^nhZEeN z*PMDnVvB~AKn!GXBBtT_Y%OLMI{pU)K->)EL#zUFQaN$IVKgTy5)hC3REAnhU#P~q zVg@fAyI0Tj>x*Q42>>QrQlP~Z?dTGDaYB8&>ngIG6$>u@FW3D+_|@NNw2QFSCZcf7 zx}O?aRFZB?Fy$ys8)POs|mT2H7L060wm~!l}}A z!=hF*?&KC28M^@7P^&6}Ur~5wm4Ua7Cj!4j%5K9U);CMv2Lfi9zA&XTi-bP*-tgs{K9i#NKHQ?+6D|oBi7Xz zKjJ>^tcgA@X)$B2ii(clp ziT_^7RLGgGj}H=(Phy_$f9!hnz{juu!c$-JC(Uj9%_avz6S`_?;o@AFu|PieDjJuX zHkB@V4m7oWMlOvaV9w1DO!7tqAbq0Pwv>9i@;UU4REA&~F5j-LVlfSdkG^@q&BdwLK6^ahUgnV@$7~mkmbr_d zFi$axsLBN}(91)4szOq63`&>*jS9#al14u$nuL?6z!Lkc^K1^_8jkqG#3%pN>-A69em*_Xns9**Z6yp~L4J-^|UahIMRvxVU zEHhlnMA?uN5;b#JSv`D5=gOBp_1NvrTM)it83Bb*m@9#TyWWSwP;N-7WmhjMR%Jv^ z)Yki`4*TP#l0<9j*<@I*9R$JHZdd3bD$0>4n%**x=&S>LGv0*zMNqo#wl7L2a0pcp zbU{fxS9O6}>SuhCfYj)XzjW!LlP-SMn1iKt+!V6HYQUfA#8NpfYL_^FXJA3tO4r3s z{2^!@H_xDpVN3p`6&j(qExbLeP6RlhBNDoG^pJaLnEIBS~wRD2&DlJ zFSZflFT0C2eL`@i|u-O;nIud~hkr4rI?nv2NKA~eCXJaa@H>fZ7&SVni5O)eLE z9TU`SYNbW|awAC`Dx}d=l?$j)1`SIDfsI`(*H+}~GgB@tmu5OD3U&Ekj^tXPfeSWD z3>4ne~KbFwsUr4t|3AMD@4Oi6i zpdcJeHfFN;(^+rPB4YFBx(79CiWl3KT4ktiMRRdRV%g!NqoN1i1G$n?M7e@S$d+sE zck>8uMAzi-oInBdJe%}=oYR<}T<5w&h(Ju0)Sv)hg^BiEYpF#%6swGvD$YE}{_wv( z{;toAo^vsCozY`R&H`B{T?W}B z-}j8if9|ArG_ULkPTG_x7eURE7+-ecdYA$#xr>RyO3j{|CTEm1fD|u$9UV�J6mu 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

@od-d_=xo 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%0A5)w&cobGmk+I5u*cJdM=<^dwVgZh<*}<; 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 diff --git a/target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dtb b/target/de0-nano-soc/boot/devicetree-4.19.57-socfpga.dtb new file mode 100644 index 0000000000000000000000000000000000000000..a18dd457ff9b9bac8ae963f373d35bd3cf36a69a GIT binary patch literal 25296 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 + #size-cells = <0x1>; + model = "Terasic DE-0(Atlas)"; + compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga"; + + aliases { + ethernet0 = "/soc/ethernet@ff702000"; + ethernet1 = "/soc/ethernet@ff702000"; + serial0 = "/soc/serial0@ffc02000"; + serial1 = "/soc/serial1@ffc03000"; + timer0 = "/soc/timer0@ffc08000"; + timer1 = "/soc/timer1@ffc09000"; + timer2 = "/soc/timer2@ffd00000"; + timer3 = "/soc/timer3@ffd01000"; + }; + + cpus { + #address-cells = <0x1>; + #size-cells = <0x0>; + enable-method = "altr,socfpga-smp"; + + cpu@0 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x0>; + next-level-cache = <0x1>; + phandle = <0x3>; + }; + + cpu@1 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x1>; + next-level-cache = <0x1>; + phandle = <0x4>; + }; + }; + + pmu@ff111000 { + compatible = "arm,cortex-a9-pmu"; + interrupt-parent = <0x2>; + interrupts = <0x0 0xb0 0x4 0x0 0xb1 0x4>; + interrupt-affinity = <0x3 0x4>; + reg = <0xff111000 0x1000 0xff113000 0x1000>; + phandle = <0x39>; + }; + + intc@fffed000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + interrupt-controller; + reg = <0xfffed000 0x1000 0xfffec100 0x100>; + phandle = <0x2>; + }; + + soc { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "simple-bus"; + device_type = "soc"; + interrupt-parent = <0x2>; + ranges; + + amba { + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + + pdma@ffe01000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0xffe01000 0x1000>; + interrupts = <0x0 0x68 0x4 0x0 0x69 0x4 0x0 0x6a 0x4 0x0 0x6b 0x4 0x0 0x6c 0x4 0x0 0x6d 0x4 0x0 0x6e 0x4 0x0 0x6f 0x4>; + #dma-cells = <0x1>; + #dma-channels = <0x8>; + #dma-requests = <0x20>; + clocks = <0x5>; + clock-names = "apb_pclk"; + phandle = <0x35>; + }; + }; + + can@ffc00000 { + compatible = "bosch,d_can"; + reg = <0xffc00000 0x1000>; + interrupts = <0x0 0x83 0x4 0x0 0x84 0x4 0x0 0x85 0x4 0x0 0x86 0x4>; + clocks = <0x6>; + status = "disabled"; + phandle = <0x3a>; + }; + + can@ffc01000 { + compatible = "bosch,d_can"; + reg = <0xffc01000 0x1000>; + interrupts = <0x0 0x87 0x4 0x0 0x88 0x4 0x0 0x89 0x4 0x0 0x8a 0x4>; + clocks = <0x7>; + status = "disabled"; + phandle = <0x3b>; + }; + + clkmgr@ffd04000 { + compatible = "altr,clk-mgr"; + reg = <0xffd04000 0x1000>; + + clocks { + #address-cells = <0x1>; + #size-cells = <0x0>; + + osc1 { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + clock-frequency = <0x17d7840>; + phandle = <0x8>; + }; + + osc2 { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + phandle = <0xa>; + }; + + f2s_periph_ref_clk { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + phandle = <0xb>; + }; + + f2s_sdram_ref_clk { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + phandle = <0xd>; + }; + + main_pll@40 { + #address-cells = <0x1>; + #size-cells = <0x0>; + #clock-cells = <0x0>; + compatible = "altr,socfpga-pll-clock"; + clocks = <0x8>; + reg = <0x40>; + phandle = <0x9>; + + mpuclk@48 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + div-reg = <0xe0 0x0 0x9>; + reg = <0x48>; + phandle = <0xf>; + }; + + mainclk@4c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + div-reg = <0xe4 0x0 0x9>; + reg = <0x4c>; + phandle = <0x10>; + }; + + dbg_base_clk@50 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9 0x8>; + div-reg = <0xe8 0x0 0x9>; + reg = <0x50>; + phandle = <0x13>; + }; + + main_qspi_clk@54 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + reg = <0x54>; + phandle = <0x1c>; + }; + + main_nand_sdmmc_clk@58 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + reg = <0x58>; + phandle = <0x19>; + }; + + cfg_h2f_usr0_clk@5c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x9>; + reg = <0x5c>; + phandle = <0x15>; + }; + }; + + periph_pll@80 { + #address-cells = <0x1>; + #size-cells = <0x0>; + #clock-cells = <0x0>; + compatible = "altr,socfpga-pll-clock"; + clocks = <0x8 0xa 0xb>; + reg = <0x80>; + phandle = <0xc>; + + emac0_clk@88 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x88>; + phandle = <0x16>; + }; + + emac1_clk@8c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x8c>; + phandle = <0x17>; + }; + + per_qsi_clk@90 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x90>; + phandle = <0x1d>; + }; + + per_nand_mmc_clk@94 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x94>; + phandle = <0x1a>; + }; + + per_base_clk@98 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x98>; + phandle = <0x12>; + }; + + h2f_usr1_clk@9c { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xc>; + reg = <0x9c>; + phandle = <0x18>; + }; + }; + + sdram_pll@c0 { + #address-cells = <0x1>; + #size-cells = <0x0>; + #clock-cells = <0x0>; + compatible = "altr,socfpga-pll-clock"; + clocks = <0x8 0xa 0xd>; + reg = <0xc0>; + phandle = <0xe>; + + ddr_dqs_clk@c8 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xc8>; + phandle = <0x1e>; + }; + + ddr_2x_dqs_clk@cc { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xcc>; + phandle = <0x1f>; + }; + + ddr_dq_clk@d0 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xd0>; + phandle = <0x20>; + }; + + h2f_usr2_clk@d4 { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xe>; + reg = <0xd4>; + phandle = <0x21>; + }; + }; + + mpu_periph_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xf>; + fixed-divider = <0x4>; + phandle = <0x34>; + }; + + mpu_l2_ram_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0xf>; + fixed-divider = <0x2>; + phandle = <0x3c>; + }; + + l4_main_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10>; + clk-gate = <0x60 0x0>; + phandle = <0x5>; + }; + + l3_main_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-perip-clk"; + clocks = <0x10>; + fixed-divider = <0x1>; + phandle = <0x3d>; + }; + + l3_mp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10>; + div-reg = <0x64 0x0 0x2>; + clk-gate = <0x60 0x1>; + phandle = <0x11>; + }; + + l3_sp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x11>; + div-reg = <0x64 0x2 0x2>; + phandle = <0x3e>; + }; + + l4_mp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10 0x12>; + div-reg = <0x64 0x4 0x3>; + clk-gate = <0x60 0x2>; + phandle = <0x2a>; + }; + + l4_sp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x10 0x12>; + div-reg = <0x64 0x7 0x3>; + clk-gate = <0x60 0x3>; + phandle = <0x2b>; + }; + + dbg_at_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x13>; + div-reg = <0x68 0x0 0x2>; + clk-gate = <0x60 0x4>; + phandle = <0x14>; + }; + + dbg_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x14>; + div-reg = <0x68 0x2 0x2>; + clk-gate = <0x60 0x5>; + phandle = <0x3f>; + }; + + dbg_trace_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x13>; + div-reg = <0x6c 0x0 0x3>; + clk-gate = <0x60 0x6>; + phandle = <0x40>; + }; + + dbg_timer_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x13>; + clk-gate = <0x60 0x7>; + phandle = <0x41>; + }; + + cfg_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x15>; + clk-gate = <0x60 0x8>; + phandle = <0x42>; + }; + + h2f_user0_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x15>; + clk-gate = <0x60 0x9>; + phandle = <0x43>; + }; + + emac_0_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x16>; + clk-gate = <0xa0 0x0>; + phandle = <0x28>; + }; + + emac_1_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x17>; + clk-gate = <0xa0 0x1>; + phandle = <0x29>; + }; + + usb_mp_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x2>; + div-reg = <0xa4 0x0 0x3>; + phandle = <0x36>; + }; + + spi_m_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x3>; + div-reg = <0xa4 0x3 0x3>; + phandle = <0x33>; + }; + + can0_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x4>; + div-reg = <0xa4 0x6 0x3>; + phandle = <0x6>; + }; + + can1_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x5>; + div-reg = <0xa4 0x9 0x3>; + phandle = <0x7>; + }; + + gpio_db_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x12>; + clk-gate = <0xa0 0x6>; + div-reg = <0xa8 0x0 0x18>; + phandle = <0x44>; + }; + + h2f_user1_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x18>; + clk-gate = <0xa0 0x7>; + phandle = <0x45>; + }; + + sdmmc_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x19 0x1a>; + clk-gate = <0xa0 0x8>; + clk-phase = <0x0 0x87>; + phandle = <0x1b>; + }; + + sdmmc_clk_divided { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x1b>; + clk-gate = <0xa0 0x8>; + fixed-divider = <0x4>; + phandle = <0x2e>; + }; + + nand_x_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x19 0x1a>; + clk-gate = <0xa0 0x9>; + phandle = <0x30>; + }; + + nand_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x19 0x1a>; + clk-gate = <0xa0 0xa>; + fixed-divider = <0x4>; + phandle = <0x46>; + }; + + qspi_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0xb 0x1c 0x1d>; + clk-gate = <0xa0 0xb>; + phandle = <0x31>; + }; + + ddr_dqs_clk_gate { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x1e>; + clk-gate = <0xd8 0x0>; + phandle = <0x47>; + }; + + ddr_2x_dqs_clk_gate { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x1f>; + clk-gate = <0xd8 0x1>; + phandle = <0x48>; + }; + + ddr_dq_clk_gate { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x20>; + clk-gate = <0xd8 0x2>; + phandle = <0x49>; + }; + + h2f_user2_clk { + #clock-cells = <0x0>; + compatible = "altr,socfpga-gate-clk"; + clocks = <0x21>; + clk-gate = <0xd8 0x3>; + phandle = <0x4a>; + }; + }; + }; + + fpga_bridge@ff400000 { + compatible = "altr,socfpga-lwhps2fpga-bridge"; + reg = <0xff400000 0x100000>; + resets = <0x22 0x61>; + clocks = <0x5>; + bridge-enable = <0x0>; + phandle = <0x24>; + }; + + fpga_bridge@ff500000 { + compatible = "altr,socfpga-hps2fpga-bridge"; + reg = <0xff500000 0x10000>; + resets = <0x22 0x60>; + clocks = <0x5>; + bridge-enable = <0x1>; + phandle = <0x25>; + }; + + fpga_bridge@ff600000 { + compatible = "altr,socfpga-fpga2hps-bridge"; + reg = <0xff600000 0x10000>; + resets = <0x22 0x62>; + clocks = <0x5>; + phandle = <0x26>; + }; + + fpgamgr@ff706000 { + compatible = "altr,socfpga-fpga-mgr"; + reg = <0xff706000 0x1000 0xffb90000 0x4>; + interrupts = <0x0 0xaf 0x4>; + phandle = <0x23>; + }; + + fpga-region0 { + compatible = "fpga-region"; + fpga-mgr = <0x23>; + fpga-bridges = <0x24 0x25 0x26>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0x4b>; + }; + + ethernet@ff700000 { + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; + altr,sysmgr-syscon = <0x27 0x60 0x0>; + reg = <0xff700000 0x2000>; + interrupts = <0x0 0x73 0x4>; + interrupt-names = "macirq"; + mac-address = [00 00 00 00 00 00]; + clocks = <0x28>; + clock-names = "stmmaceth"; + resets = <0x22 0x20>; + reset-names = "stmmaceth"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + tx-fifo-depth = <0x1000>; + rx-fifo-depth = <0x1000>; + status = "disabled"; + phandle = <0x4c>; + }; + + ethernet@ff702000 { + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; + altr,sysmgr-syscon = <0x27 0x60 0x2>; + reg = <0xff702000 0x2000>; + interrupts = <0x0 0x78 0x4>; + interrupt-names = "macirq"; + mac-address = [00 00 00 00 00 00]; + clocks = <0x29>; + clock-names = "stmmaceth"; + resets = <0x22 0x21>; + reset-names = "stmmaceth"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + tx-fifo-depth = <0x1000>; + rx-fifo-depth = <0x1000>; + status = "okay"; + phy-mode = "rgmii"; + txd0-skew-ps = <0x0>; + txd1-skew-ps = <0x0>; + txd2-skew-ps = <0x0>; + txd3-skew-ps = <0x0>; + rxd0-skew-ps = <0x1a4>; + rxd1-skew-ps = <0x1a4>; + rxd2-skew-ps = <0x1a4>; + rxd3-skew-ps = <0x1a4>; + txen-skew-ps = <0x0>; + txc-skew-ps = <0x744>; + rxdv-skew-ps = <0x1a4>; + rxc-skew-ps = <0x690>; + max-frame-size = <0xed8>; + phandle = <0x4d>; + }; + + gpio@ff708000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,dw-apb-gpio"; + reg = <0xff708000 0x1000>; + clocks = <0x2a>; + status = "okay"; + phandle = <0x4e>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x2>; + snps,nr-gpios = <0x1d>; + reg = <0x0>; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupts = <0x0 0xa4 0x4>; + phandle = <0x4f>; + }; + }; + + gpio@ff709000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,dw-apb-gpio"; + reg = <0xff709000 0x1000>; + clocks = <0x2a>; + status = "okay"; + phandle = <0x50>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x2>; + snps,nr-gpios = <0x1d>; + reg = <0x0>; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupts = <0x0 0xa5 0x4>; + phandle = <0x38>; + }; + }; + + gpio@ff70a000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,dw-apb-gpio"; + reg = <0xff70a000 0x1000>; + clocks = <0x2a>; + status = "okay"; + phandle = <0x51>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x2>; + snps,nr-gpios = <0x1b>; + reg = <0x0>; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupts = <0x0 0xa6 0x4>; + phandle = <0x2c>; + }; + }; + + i2c@ffc04000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc04000 0x1000>; + resets = <0x22 0x2c>; + clocks = <0x2b>; + interrupts = <0x0 0x9e 0x4>; + status = "okay"; + clock-frequency = <0x186a0>; + phandle = <0x52>; + + adxl345@0 { + compatible = "adi,adxl345"; + reg = <0x53>; + interrupt-parent = <0x2c>; + interrupts = <0x3 0x2>; + phandle = <0x53>; + }; + }; + + i2c@ffc05000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc05000 0x1000>; + resets = <0x22 0x2d>; + clocks = <0x2b>; + interrupts = <0x0 0x9f 0x4>; + status = "disabled"; + phandle = <0x54>; + }; + + i2c@ffc06000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc06000 0x1000>; + resets = <0x22 0x2e>; + clocks = <0x2b>; + interrupts = <0x0 0xa0 0x4>; + status = "disabled"; + phandle = <0x55>; + }; + + i2c@ffc07000 { + #address-cells = <0x1>; + #size-cells = <0x0>; + compatible = "snps,designware-i2c"; + reg = <0xffc07000 0x1000>; + resets = <0x22 0x2f>; + clocks = <0x2b>; + interrupts = <0x0 0xa1 0x4>; + status = "disabled"; + phandle = <0x56>; + }; + + eccmgr { + compatible = "altr,socfpga-ecc-manager"; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + phandle = <0x57>; + + l2-ecc@ffd08140 { + compatible = "altr,socfpga-l2-ecc"; + reg = <0xffd08140 0x4>; + interrupts = <0x0 0x24 0x1 0x0 0x25 0x1>; + }; + + ocram-ecc@ffd08144 { + compatible = "altr,socfpga-ocram-ecc"; + reg = <0xffd08144 0x4>; + iram = <0x2d>; + interrupts = <0x0 0xb2 0x1 0x0 0xb3 0x1>; + }; + }; + + l2-cache@fffef000 { + compatible = "arm,pl310-cache"; + reg = <0xfffef000 0x1000>; + interrupts = <0x0 0x26 0x4>; + cache-unified; + cache-level = <0x2>; + arm,tag-latency = <0x1 0x1 0x1>; + arm,data-latency = <0x2 0x1 0x1>; + prefetch-data = <0x1>; + prefetch-instr = <0x1>; + arm,shared-override; + arm,double-linefill = <0x1>; + arm,double-linefill-incr = <0x0>; + arm,double-linefill-wrap = <0x1>; + arm,prefetch-drop = <0x0>; + arm,prefetch-offset = <0x7>; + phandle = <0x1>; + }; + + l3regs@ff800000 { + compatible = "altr,l3regs", "syscon"; + reg = <0xff800000 0x1000>; + }; + + dwmmc0@ff704000 { + compatible = "altr,socfpga-dw-mshc"; + reg = <0xff704000 0x1000>; + interrupts = <0x0 0x8b 0x4>; + fifo-depth = <0x400>; + #address-cells = <0x1>; + #size-cells = <0x0>; + clocks = <0x2a 0x2e>; + clock-names = "biu", "ciu"; + status = "okay"; + broken-cd; + bus-width = <0x4>; + cap-mmc-highspeed; + cap-sd-highspeed; + vmmc-supply = <0x2f>; + vqmmc-supply = <0x2f>; + phandle = <0x58>; + }; + + nand@ff900000 { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "altr,socfpga-denali-nand"; + reg = <0xff900000 0x100000 0xffb80000 0x10000>; + reg-names = "nand_data", "denali_reg"; + interrupts = <0x0 0x90 0x4>; + dma-mask = <0xffffffff>; + clocks = <0x30>; + status = "disabled"; + phandle = <0x59>; + }; + + sram@ffff0000 { + compatible = "mmio-sram"; + reg = <0xffff0000 0x10000>; + phandle = <0x2d>; + }; + + spi@ff705000 { + compatible = "cdns,qspi-nor"; + #address-cells = <0x1>; + #size-cells = <0x0>; + reg = <0xff705000 0x1000 0xffa00000 0x1000>; + interrupts = <0x0 0x97 0x4>; + cdns,fifo-depth = <0x80>; + cdns,fifo-width = <0x4>; + cdns,trigger-address = <0x0>; + clocks = <0x31>; + status = "disabled"; + phandle = <0x5a>; + }; + + rstmgr@ffd05000 { + #reset-cells = <0x1>; + compatible = "altr,rst-mgr"; + reg = <0xffd05000 0x1000>; + altr,modrst-offset = <0x10>; + phandle = <0x22>; + }; + + snoop-control-unit@fffec000 { + compatible = "arm,cortex-a9-scu"; + reg = <0xfffec000 0x100>; + phandle = <0x5b>; + }; + + sdr@ffc25000 { + compatible = "altr,sdr-ctl", "syscon"; + reg = <0xffc25000 0x1000>; + phandle = <0x32>; + }; + + sdramedac { + compatible = "altr,sdram-edac"; + altr,sdr-syscon = <0x32>; + interrupts = <0x0 0x27 0x4>; + }; + + spi@fff00000 { + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x1>; + #size-cells = <0x0>; + reg = <0xfff00000 0x1000>; + interrupts = <0x0 0x9a 0x4>; + num-cs = <0x4>; + clocks = <0x33>; + status = "disabled"; + phandle = <0x5c>; + }; + + spi@fff01000 { + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x1>; + #size-cells = <0x0>; + reg = <0xfff01000 0x1000>; + interrupts = <0x0 0x9b 0x4>; + num-cs = <0x4>; + clocks = <0x33>; + status = "disabled"; + phandle = <0x5d>; + }; + + sysmgr@ffd08000 { + compatible = "altr,sys-mgr", "syscon"; + reg = <0xffd08000 0x4000>; + cpu1-start-addr = <0xffd080c4>; + phandle = <0x27>; + }; + + timer@fffec600 { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xfffec600 0x100>; + interrupts = <0x1 0xd 0xf01>; + clocks = <0x34>; + }; + + timer0@ffc08000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xa7 0x4>; + reg = <0xffc08000 0x1000>; + clocks = <0x2b>; + clock-names = "timer"; + phandle = <0x5e>; + }; + + timer1@ffc09000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xa8 0x4>; + reg = <0xffc09000 0x1000>; + clocks = <0x2b>; + clock-names = "timer"; + phandle = <0x5f>; + }; + + timer2@ffd00000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xa9 0x4>; + reg = <0xffd00000 0x1000>; + clocks = <0x8>; + clock-names = "timer"; + phandle = <0x60>; + }; + + timer3@ffd01000 { + compatible = "snps,dw-apb-timer"; + interrupts = <0x0 0xaa 0x4>; + reg = <0xffd01000 0x1000>; + clocks = <0x8>; + clock-names = "timer"; + phandle = <0x61>; + }; + + serial0@ffc02000 { + compatible = "snps,dw-apb-uart"; + reg = <0xffc02000 0x1000>; + interrupts = <0x0 0xa2 0x4>; + reg-shift = <0x2>; + reg-io-width = <0x4>; + clocks = <0x2b>; + dmas = <0x35 0x1c 0x35 0x1d>; + dma-names = "tx", "rx"; + status = "okay"; + clock-frequency = <0x1c2000>; + phandle = <0x62>; + }; + + serial1@ffc03000 { + compatible = "snps,dw-apb-uart"; + reg = <0xffc03000 0x1000>; + interrupts = <0x0 0xa3 0x4>; + reg-shift = <0x2>; + reg-io-width = <0x4>; + clocks = <0x2b>; + dmas = <0x35 0x1e 0x35 0x1f>; + dma-names = "tx", "rx"; + phandle = <0x63>; + }; + + usbphy { + #phy-cells = <0x0>; + compatible = "usb-nop-xceiv"; + status = "okay"; + phandle = <0x37>; + }; + + usb@ffb00000 { + compatible = "snps,dwc2"; + reg = <0xffb00000 0xffff>; + interrupts = <0x0 0x7d 0x4>; + clocks = <0x36>; + clock-names = "otg"; + resets = <0x22 0x22>; + reset-names = "dwc2"; + phys = <0x37>; + phy-names = "usb2-phy"; + status = "disabled"; + phandle = <0x64>; + }; + + usb@ffb40000 { + compatible = "snps,dwc2"; + reg = <0xffb40000 0xffff>; + interrupts = <0x0 0x80 0x4>; + clocks = <0x36>; + clock-names = "otg"; + resets = <0x22 0x23>; + reset-names = "dwc2"; + phys = <0x37>; + phy-names = "usb2-phy"; + status = "okay"; + phandle = <0x65>; + }; + + watchdog@ffd02000 { + compatible = "snps,dw-wdt"; + reg = <0xffd02000 0x1000>; + interrupts = <0x0 0xab 0x4>; + clocks = <0x8>; + status = "okay"; + phandle = <0x66>; + }; + + watchdog@ffd03000 { + compatible = "snps,dw-wdt"; + reg = <0xffd03000 0x1000>; + interrupts = <0x0 0xac 0x4>; + clocks = <0x8>; + status = "disabled"; + phandle = <0x67>; + }; + }; + + chosen { + bootargs = "earlyprintk"; + stdout-path = "serial0:115200n8"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x40000000>; + }; + + 3-3-v-regulator { + compatible = "regulator-fixed"; + regulator-name = "3.3V"; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + phandle = <0x2f>; + }; + + leds { + compatible = "gpio-leds"; + + hps0 { + label = "hps_led0"; + gpios = <0x38 0x18 0x0>; + linux,default-trigger = "heartbeat"; + }; + }; + + __symbols__ { + cpu0 = "/cpus/cpu@0"; + cpu1 = "/cpus/cpu@1"; + pmu = "/pmu@ff111000"; + intc = "/intc@fffed000"; + pdma = "/soc/amba/pdma@ffe01000"; + can0 = "/soc/can@ffc00000"; + can1 = "/soc/can@ffc01000"; + osc1 = "/soc/clkmgr@ffd04000/clocks/osc1"; + osc2 = "/soc/clkmgr@ffd04000/clocks/osc2"; + f2s_periph_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_periph_ref_clk"; + f2s_sdram_ref_clk = "/soc/clkmgr@ffd04000/clocks/f2s_sdram_ref_clk"; + main_pll = "/soc/clkmgr@ffd04000/clocks/main_pll@40"; + mpuclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mpuclk@48"; + mainclk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/mainclk@4c"; + dbg_base_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/dbg_base_clk@50"; + main_qspi_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_qspi_clk@54"; + main_nand_sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/main_nand_sdmmc_clk@58"; + cfg_h2f_usr0_clk = "/soc/clkmgr@ffd04000/clocks/main_pll@40/cfg_h2f_usr0_clk@5c"; + periph_pll = "/soc/clkmgr@ffd04000/clocks/periph_pll@80"; + emac0_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac0_clk@88"; + emac1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/emac1_clk@8c"; + per_qspi_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_qsi_clk@90"; + per_nand_mmc_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_nand_mmc_clk@94"; + per_base_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/per_base_clk@98"; + h2f_usr1_clk = "/soc/clkmgr@ffd04000/clocks/periph_pll@80/h2f_usr1_clk@9c"; + sdram_pll = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0"; + ddr_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dqs_clk@c8"; + ddr_2x_dqs_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_2x_dqs_clk@cc"; + ddr_dq_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/ddr_dq_clk@d0"; + h2f_usr2_clk = "/soc/clkmgr@ffd04000/clocks/sdram_pll@c0/h2f_usr2_clk@d4"; + mpu_periph_clk = "/soc/clkmgr@ffd04000/clocks/mpu_periph_clk"; + mpu_l2_ram_clk = "/soc/clkmgr@ffd04000/clocks/mpu_l2_ram_clk"; + l4_main_clk = "/soc/clkmgr@ffd04000/clocks/l4_main_clk"; + l3_main_clk = "/soc/clkmgr@ffd04000/clocks/l3_main_clk"; + l3_mp_clk = "/soc/clkmgr@ffd04000/clocks/l3_mp_clk"; + l3_sp_clk = "/soc/clkmgr@ffd04000/clocks/l3_sp_clk"; + l4_mp_clk = "/soc/clkmgr@ffd04000/clocks/l4_mp_clk"; + l4_sp_clk = "/soc/clkmgr@ffd04000/clocks/l4_sp_clk"; + dbg_at_clk = "/soc/clkmgr@ffd04000/clocks/dbg_at_clk"; + dbg_clk = "/soc/clkmgr@ffd04000/clocks/dbg_clk"; + dbg_trace_clk = "/soc/clkmgr@ffd04000/clocks/dbg_trace_clk"; + dbg_timer_clk = "/soc/clkmgr@ffd04000/clocks/dbg_timer_clk"; + cfg_clk = "/soc/clkmgr@ffd04000/clocks/cfg_clk"; + h2f_user0_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user0_clk"; + emac_0_clk = "/soc/clkmgr@ffd04000/clocks/emac_0_clk"; + emac_1_clk = "/soc/clkmgr@ffd04000/clocks/emac_1_clk"; + usb_mp_clk = "/soc/clkmgr@ffd04000/clocks/usb_mp_clk"; + spi_m_clk = "/soc/clkmgr@ffd04000/clocks/spi_m_clk"; + can0_clk = "/soc/clkmgr@ffd04000/clocks/can0_clk"; + can1_clk = "/soc/clkmgr@ffd04000/clocks/can1_clk"; + gpio_db_clk = "/soc/clkmgr@ffd04000/clocks/gpio_db_clk"; + h2f_user1_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user1_clk"; + sdmmc_clk = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk"; + sdmmc_clk_divided = "/soc/clkmgr@ffd04000/clocks/sdmmc_clk_divided"; + nand_x_clk = "/soc/clkmgr@ffd04000/clocks/nand_x_clk"; + nand_clk = "/soc/clkmgr@ffd04000/clocks/nand_clk"; + qspi_clk = "/soc/clkmgr@ffd04000/clocks/qspi_clk"; + ddr_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dqs_clk_gate"; + ddr_2x_dqs_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_2x_dqs_clk_gate"; + ddr_dq_clk_gate = "/soc/clkmgr@ffd04000/clocks/ddr_dq_clk_gate"; + h2f_user2_clk = "/soc/clkmgr@ffd04000/clocks/h2f_user2_clk"; + fpga_bridge_lwhps2fpga = "/soc/fpga_bridge@ff400000"; + fpga_bridge_hps2fpga = "/soc/fpga_bridge@ff500000"; + fpga_bridge_fpga2hps = "/soc/fpga_bridge@ff600000"; + fpgamgr0 = "/soc/fpgamgr@ff706000"; + fpga_region0 = "/soc/fpga-region0"; + gmac0 = "/soc/ethernet@ff700000"; + gmac1 = "/soc/ethernet@ff702000"; + gpio0 = "/soc/gpio@ff708000"; + porta = "/soc/gpio@ff708000/gpio-controller@0"; + gpio1 = "/soc/gpio@ff709000"; + portb = "/soc/gpio@ff709000/gpio-controller@0"; + gpio2 = "/soc/gpio@ff70a000"; + portc = "/soc/gpio@ff70a000/gpio-controller@0"; + i2c0 = "/soc/i2c@ffc04000"; + adxl345 = "/soc/i2c@ffc04000/adxl345@0"; + i2c1 = "/soc/i2c@ffc05000"; + i2c2 = "/soc/i2c@ffc06000"; + i2c3 = "/soc/i2c@ffc07000"; + eccmgr = "/soc/eccmgr"; + L2 = "/soc/l2-cache@fffef000"; + mmc0 = "/soc/dwmmc0@ff704000"; + mmc = "/soc/dwmmc0@ff704000"; + nand0 = "/soc/nand@ff900000"; + ocram = "/soc/sram@ffff0000"; + qspi = "/soc/spi@ff705000"; + rst = "/soc/rstmgr@ffd05000"; + scu = "/soc/snoop-control-unit@fffec000"; + sdr = "/soc/sdr@ffc25000"; + spi0 = "/soc/spi@fff00000"; + spi1 = "/soc/spi@fff01000"; + sysmgr = "/soc/sysmgr@ffd08000"; + timer0 = "/soc/timer0@ffc08000"; + timer1 = "/soc/timer1@ffc09000"; + timer2 = "/soc/timer2@ffd00000"; + timer3 = "/soc/timer3@ffd01000"; + uart0 = "/soc/serial0@ffc02000"; + uart1 = "/soc/serial1@ffc03000"; + usbphy0 = "/soc/usbphy"; + usb0 = "/soc/usb@ffb00000"; + usb1 = "/soc/usb@ffb40000"; + watchdog0 = "/soc/watchdog@ffd02000"; + watchdog1 = "/soc/watchdog@ffd03000"; + regulator_3_3v = "/3-3-v-regulator"; + }; +}; diff --git a/target/de0-nano-soc/boot/uEnv-linux-4.19.57-armv7-fpga.txt b/target/de0-nano-soc/boot/uEnv-linux-4.19.57-armv7-fpga.txt new file mode 100644 index 0000000..cc1af0c --- /dev/null +++ b/target/de0-nano-soc/boot/uEnv-linux-4.19.57-armv7-fpga.txt @@ -0,0 +1,18 @@ +######################################################################## +#uenv: config_name = socfpga_de0_nano_soc +#uenv: menu_title = Boot linux-4.19.57-armv7-fpga with FPGA program +#uenv: menu_priority = -1 +######################################################################## + +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-socfpga.dtb +linux_boot_args=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio + +fpga_load_cmd=fatload mmc 0 $fpgadata DE0_NANO_SOC.rbf && fpga load 0 $fpgadata $filesize +fpga_set_cmd=bridge enable + +linux_load_cmd=fatload mmc 0 ${loadaddr} ${linux_kernel_image} && fatload mmc 0 ${fdt_addr} ${linux_fdt_image} +linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${loadaddr} - ${fdt_addr} + +uenvcmd=run fpga_load_cmd && run fpga_set_cmd && run linux_load_cmd && run linux_boot_cmd + diff --git a/target/de0-nano-soc/boot/uEnv.txt b/target/de0-nano-soc/boot/uEnv.txt index d26fcde..d586abe 100755 --- a/target/de0-nano-soc/boot/uEnv.txt +++ b/target/de0-nano-soc/boot/uEnv.txt @@ -1,5 +1,5 @@ -linux_kernel_image=vmlinuz-4.14.123-armv7-fpga -linux_fdt_image=devicetree-4.14.123-socfpga.dtb +linux_kernel_image=vmlinuz-4.19.57-armv7-fpga +linux_fdt_image=devicetree-4.19.57-socfpga.dtb linux_boot_args=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio fpga_load_cmd=fatload mmc 0 $fpgadata DE0_NANO_SOC.rbf && fpga load 0 $fpgadata $filesize @@ -10,5 +10,5 @@ linux_boot_cmd=setenv bootargs ${linux_boot_args} && bootz ${loadaddr} - ${fdt_a uenvcmd=run fpga_load_cmd && run fpga_set_cmd && run linux_load_cmd && run linux_boot_cmd -bootmenu_0=Boot linux-4.14.123-armv7-fpga with FPGA program=boot +bootmenu_0=Boot linux-4.19.57-armv7-fpga with FPGA program=boot diff --git a/target/de0-nano-soc/boot/vmlinuz-4.19.57-armv7-fpga b/target/de0-nano-soc/boot/vmlinuz-4.19.57-armv7-fpga new file mode 100755 index 0000000..40ce3f7 --- /dev/null +++ b/target/de0-nano-soc/boot/vmlinuz-4.19.57-armv7-fpga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbd7277e8f8280756d8489cd27042fd15a433a2712653ab8f498fa3726ee1ee4 +size 4718528 From 591487326c6aa05e1097f9b0146ae4be52a6984d Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Thu, 11 Jul 2019 00:07:12 +0900 Subject: [PATCH 15/24] [update] target/zynq-zybo-de0-nano-soc/Makefile for Linux Kernel 4.19.57 --- doc/install/zynq-zybo-de0-nano-soc.md | 36 +++++++++++++------------- target/zynq-zybo-de0-nano-soc/Makefile | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/doc/install/zynq-zybo-de0-nano-soc.md b/doc/install/zynq-zybo-de0-nano-soc.md index 584ab76..fdbc48e 100644 --- a/doc/install/zynq-zybo-de0-nano-soc.md +++ b/doc/install/zynq-zybo-de0-nano-soc.md @@ -5,7 +5,7 @@ It corresponds to boot of both ZYBO and DE0-Nano-SoC in one SD-Card. #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v0.8.2 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -23,14 +23,14 @@ Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 1870 Bytes = 1.83 kB = 0.00 MB -cp ../zynq-zybo/boot/vmlinuz-4.14.34-armv7-fpga boot/vmlinuz-4.14.34-armv7-fpga +cp ../zynq-zybo/boot/vmlinuz-4.19.57-armv7-fpga boot/vmlinuz-4.19.57-armv7-fpga cp ../zynq-zybo/boot/boot.bin boot/boot.bin cp ../zynq-zybo/boot/design_1_wrapper.bit boot/design_1_wrapper.bit -cp ../zynq-zybo/boot/devicetree-4.14.34-zynq-zybo.dtb boot/devicetree-4.14.34-zynq-zybo.dtb -cp ../zynq-zybo/boot/devicetree-4.14.34-zynq-zybo.dts boot/devicetree-4.14.34-zynq-zybo.dts +cp ../zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dtb boot/devicetree-4.19.57-zynq-zybo.dtb +cp ../zynq-zybo/boot/devicetree-4.19.57-zynq-zybo.dts boot/devicetree-4.19.57-zynq-zybo.dts cp ../zynq-zybo/boot/u-boot.img boot/u-boot.img -cp ../de0-nano-soc/boot/devicetree-4.14.34-socfpga.dtb boot/devicetree-4.14.34-socfpga.dtb -cp ../de0-nano-soc/boot/devicetree-4.14.34-socfpga.dts boot/devicetree-4.14.34-socfpga.dts +cp ../de0-nano-soc/boot/devicetree-4.19.57-socfpga.dtb boot/devicetree-4.19.57-socfpga.dtb +cp ../de0-nano-soc/boot/devicetree-4.19.57-socfpga.dts boot/devicetree-4.19.57-socfpga.dts cp ../de0-nano-soc/boot/DE0_NANO_SOC.rbf boot/DE0_NANO_SOC.rbf cp ../de0-nano-soc/u-boot/u-boot-spl.sfp u-boot/u-boot-spl.sfp cp ../de0-nano-soc/u-boot/u-boot.img u-boot/u-boot.img @@ -56,13 +56,13 @@ cp ../de0-nano-soc/u-boot/u-boot.img u-boot/u-boot.img - u-boot-spl.sfp : Stage 1 Boot Loader (for DE0-Nano-SoC U-boot-spl) - u-boot.img : Stage 2 Boot Loader (for DE0-Nano-SoC U-boot image) * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) - * linux-image-4.14.34-armv7-fpga_4.14.34-armv7-fpga-1_armhf.deb : Linux Image Package (use Git LFS) - * linux-headers-4.14.34-armv7-fpga_4.14.34-armv7-fpga-1_armhf.deb : Linux Headers Package (use Git LFS) + * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) + * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.14.34-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) - * fclkcfg-4.14.34-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) - * udmabuf-4.14.34-armv7-fpga_1.2.3-1_armhf.deb : udmabuf Kernel Module (use Git LFS) - * zptty-4.14.34-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) + * udmabuf-4.19.57-armv7-fpga_1.2.3-1_armhf.deb : udmabuf Kernel Module (use Git LFS) + * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) #### Format SD-Card @@ -78,13 +78,13 @@ shell# dd if=target/zynq-zybo-de0-nano-soc/u-boot/u-boot-spl.sfp of=/dev/sdc3 bs shell# dd if=target/zynq-zybo-de0-nano-soc/u-boot/u-boot.img of=/dev/sdc3 bs=64k seek=4 shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian -shell# cp linux-image-4.14.34-armv7-fpga_4.14.34-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp linux-headers-4.14.34-armv7-fpga_4.14.34-armv7-fpga-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.14.34-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp fclkcfg-4.14.34-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp udmabuf-4.14.34-armv7-fpga_1.2.3-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp zptty-4.14.34-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp udmabuf-4.19.57-armv7-fpga_1.2.3-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# umount mnt/usb1 shell# umount mnt/usb2 ```` diff --git a/target/zynq-zybo-de0-nano-soc/Makefile b/target/zynq-zybo-de0-nano-soc/Makefile index 797b886..7e3a468 100644 --- a/target/zynq-zybo-de0-nano-soc/Makefile +++ b/target/zynq-zybo-de0-nano-soc/Makefile @@ -1,4 +1,4 @@ -VERSION=4.14.123 +VERSION=4.19.57 XILINX_TARGET_PATH=../zynq-zybo ALTERA_TARGET_PATH=../de0-nano-soc From 3a3c74ceb293f5310a972fbcb38a885e7603b2bb Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Thu, 11 Jul 2019 00:08:35 +0900 Subject: [PATCH 16/24] [add] .gitattributes for git lfs. --- .gitattributes | 2 ++ target/de0-nano-soc/boot/.gitattributes | 3 +++ target/de10-nano/boot/.gitattributes | 2 ++ target/zynq-pynqz1/boot/.gitattributes | 2 ++ target/zynq-zybo-z7/boot/.gitattributes | 2 ++ target/zynq-zybo/boot/.gitattributes | 3 +++ 6 files changed, 14 insertions(+) create mode 100644 .gitattributes create mode 100644 target/de0-nano-soc/boot/.gitattributes create mode 100644 target/de10-nano/boot/.gitattributes create mode 100644 target/zynq-pynqz1/boot/.gitattributes create mode 100644 target/zynq-zybo-z7/boot/.gitattributes create mode 100644 target/zynq-zybo/boot/.gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..78f37e4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.deb filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text diff --git a/target/de0-nano-soc/boot/.gitattributes b/target/de0-nano-soc/boot/.gitattributes new file mode 100644 index 0000000..fc91484 --- /dev/null +++ b/target/de0-nano-soc/boot/.gitattributes @@ -0,0 +1,3 @@ +vmlinuz-* filter=lfs diff=lfs merge=lfs -text +zImage-* filter=lfs diff=lfs merge=lfs -text +*.rbf filter=lfs diff=lfs merge=lfs -text diff --git a/target/de10-nano/boot/.gitattributes b/target/de10-nano/boot/.gitattributes new file mode 100644 index 0000000..48a77f4 --- /dev/null +++ b/target/de10-nano/boot/.gitattributes @@ -0,0 +1,2 @@ +vmlinuz-* filter=lfs diff=lfs merge=lfs -text +zImage-* filter=lfs diff=lfs merge=lfs -text diff --git a/target/zynq-pynqz1/boot/.gitattributes b/target/zynq-pynqz1/boot/.gitattributes new file mode 100644 index 0000000..48a77f4 --- /dev/null +++ b/target/zynq-pynqz1/boot/.gitattributes @@ -0,0 +1,2 @@ +vmlinuz-* filter=lfs diff=lfs merge=lfs -text +zImage-* filter=lfs diff=lfs merge=lfs -text diff --git a/target/zynq-zybo-z7/boot/.gitattributes b/target/zynq-zybo-z7/boot/.gitattributes new file mode 100644 index 0000000..48a77f4 --- /dev/null +++ b/target/zynq-zybo-z7/boot/.gitattributes @@ -0,0 +1,2 @@ +vmlinuz-* filter=lfs diff=lfs merge=lfs -text +zImage-* filter=lfs diff=lfs merge=lfs -text diff --git a/target/zynq-zybo/boot/.gitattributes b/target/zynq-zybo/boot/.gitattributes new file mode 100644 index 0000000..1838c66 --- /dev/null +++ b/target/zynq-zybo/boot/.gitattributes @@ -0,0 +1,3 @@ +vmlinuz-* filter=lfs diff=lfs merge=lfs -text +zImage-* filter=lfs diff=lfs merge=lfs -text +*.bit filter=lfs diff=lfs merge=lfs -text From d713960f402bda8468ed099062cb0bf9bb0f6e1e Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Thu, 11 Jul 2019 15:48:59 +0900 Subject: [PATCH 17/24] [update] script and document for build debian9-rootfs-vanilla.tgz --- doc/build/debian9-rootfs.md | 20 +++++++++++++++----- scripts/build-debian9-rootfs-with-qemu.sh | 6 +++++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/doc/build/debian9-rootfs.md b/doc/build/debian9-rootfs.md index 35131a1..e92e21c 100644 --- a/doc/build/debian9-rootfs.md +++ b/doc/build/debian9-rootfs.md @@ -16,7 +16,7 @@ shell$ sudo debootstrap --arch=armhf --foreign $distro $ shell$ sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin shell$ sudo cp /etc/resolv.conf $targetdir/etc shell$ sudo cp scripts/build-debian9-rootfs-with-qemu.sh $targetdir -shell$ sudo cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb $targetdir +shell$ sudo cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb $targetdir ```` #### Build debian9-rootfs with QEMU @@ -26,6 +26,10 @@ shell$ sudo cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb $ ```console shell$ sudo chroot $targetdir ``` +If you are using Ubuntu on WSL(Windows Subsystem for Linux) and you have a chroot failure, +please see the folowing page. + +[./doc/build/debian9-rootfs-on-wsl.md](debian9-rootfs-on-wsl.md) There are two ways @@ -67,7 +71,7 @@ debian9-rootfs# apt-get update ```console debian9-rootfs# apt-get install -y locales dialog debian9-rootfs# dpkg-reconfigure locales -debian9-rootfs# apt-get install -y net-tools openssh-server ntpdate resolvconf sudo less hwinfo ntp tcsh zsh +debian9-rootfs# apt-get install -y net-tools popenssh-server ntpdate resolvconf sudo less hwinfo ntp tcsh zsh ``` ##### Setup hostname @@ -194,11 +198,17 @@ debian9-rootfs# apt-get install -y samba debian9-rootfs# apt-get install -y avahi-daemon ``` +##### Install haveged for Linux Kernel 4.19 + +```console +debian9-rootfs# apt-get install -y haveged +``` + ##### Install Linux Modules ```console debian9-rootfs# mkdir /mnt/boot -debian9-rootfs# dpkg -i linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb +debian9-rootfs# dpkg -i linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb ``` ##### Clean Cache @@ -219,8 +229,8 @@ debian9-rootfs# dpkg -l > dpkg-list.txt debian9-rootfs# exit shell$ sudo rm -f $targetdir/usr/bin/qemu-arm-static shell$ sudo rm -f $targetdir/build-debian9-rootfs-with-qemu.sh -shell$ sudo rm -f $targetdir/linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb -shell$ sudo mv $targetdir/dpkg-list.txt files/dpkg-list.txt +shell$ sudo rm -f $targetdir/linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb +shell$ sudo mv $targetdir/dpkg-list.txt files/debian9-dpkg-list.txt ``` #### Build debian9-rootfs-vanilla.tgz diff --git a/scripts/build-debian9-rootfs-with-qemu.sh b/scripts/build-debian9-rootfs-with-qemu.sh index a5e0a83..2184a00 100755 --- a/scripts/build-debian9-rootfs-with-qemu.sh +++ b/scripts/build-debian9-rootfs-with-qemu.sh @@ -112,10 +112,14 @@ cd / apt-get install -y avahi-daemon apt-get install -y samba +#### Install haveged for Linux Kernel 4.19 + +apt-get install -y haveged + #### Install Linux Modules mkdir /mnt/boot -dpkg -i linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb +dpkg -i linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb #### Clean Cache From cbe6210e2dafd8945fb35fdcd33e6b226d724237 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Thu, 11 Jul 2019 15:48:59 +0900 Subject: [PATCH 18/24] [update] script and document for build debian9-rootfs-vanilla.tgz --- doc/build/debian9-rootfs.md | 18 ++++++++++++++---- scripts/build-debian9-rootfs-with-qemu.sh | 6 +++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/doc/build/debian9-rootfs.md b/doc/build/debian9-rootfs.md index 35131a1..8aeb7b7 100644 --- a/doc/build/debian9-rootfs.md +++ b/doc/build/debian9-rootfs.md @@ -16,7 +16,7 @@ shell$ sudo debootstrap --arch=armhf --foreign $distro $ shell$ sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin shell$ sudo cp /etc/resolv.conf $targetdir/etc shell$ sudo cp scripts/build-debian9-rootfs-with-qemu.sh $targetdir -shell$ sudo cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb $targetdir +shell$ sudo cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb $targetdir ```` #### Build debian9-rootfs with QEMU @@ -26,6 +26,10 @@ shell$ sudo cp linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb $ ```console shell$ sudo chroot $targetdir ``` +If you are using Ubuntu on WSL(Windows Subsystem for Linux) and you have a chroot failure, +please see the folowing page. + +[./doc/build/debian9-rootfs-on-wsl.md](debian9-rootfs-on-wsl.md) There are two ways @@ -194,11 +198,17 @@ debian9-rootfs# apt-get install -y samba debian9-rootfs# apt-get install -y avahi-daemon ``` +##### Install haveged for Linux Kernel 4.19 + +```console +debian9-rootfs# apt-get install -y haveged +``` + ##### Install Linux Modules ```console debian9-rootfs# mkdir /mnt/boot -debian9-rootfs# dpkg -i linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb +debian9-rootfs# dpkg -i linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb ``` ##### Clean Cache @@ -219,8 +229,8 @@ debian9-rootfs# dpkg -l > dpkg-list.txt debian9-rootfs# exit shell$ sudo rm -f $targetdir/usr/bin/qemu-arm-static shell$ sudo rm -f $targetdir/build-debian9-rootfs-with-qemu.sh -shell$ sudo rm -f $targetdir/linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb -shell$ sudo mv $targetdir/dpkg-list.txt files/dpkg-list.txt +shell$ sudo rm -f $targetdir/linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb +shell$ sudo mv $targetdir/dpkg-list.txt files/debian9-dpkg-list.txt ``` #### Build debian9-rootfs-vanilla.tgz diff --git a/scripts/build-debian9-rootfs-with-qemu.sh b/scripts/build-debian9-rootfs-with-qemu.sh index a5e0a83..2184a00 100755 --- a/scripts/build-debian9-rootfs-with-qemu.sh +++ b/scripts/build-debian9-rootfs-with-qemu.sh @@ -112,10 +112,14 @@ cd / apt-get install -y avahi-daemon apt-get install -y samba +#### Install haveged for Linux Kernel 4.19 + +apt-get install -y haveged + #### Install Linux Modules mkdir /mnt/boot -dpkg -i linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb +dpkg -i linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb #### Clean Cache From 44a6e410937c6f9f21d0eed59ee623d2715e41f8 Mon Sep 17 00:00:00 2001 From: ikwzm Date: Sat, 13 Jul 2019 14:43:08 +0900 Subject: [PATCH 19/24] [add] script and document for build debian10-rootfs-vanilla.tgz --- doc/build/debian10-rootfs.md | 237 +++++++++++++++++++++ scripts/build-debian10-rootfs-with-qemu.sh | 128 +++++++++++ 2 files changed, 365 insertions(+) create mode 100644 doc/build/debian10-rootfs.md create mode 100644 scripts/build-debian10-rootfs-with-qemu.sh diff --git a/doc/build/debian10-rootfs.md b/doc/build/debian10-rootfs.md new file mode 100644 index 0000000..4af8306 --- /dev/null +++ b/doc/build/debian10-rootfs.md @@ -0,0 +1,237 @@ +### Build Debian10 RootFS + +#### Setup parameters + +```console +shell$ apt-get install qemu-user-static debootstrap binfmt-support +shell$ export targetdir=debian10-rootfs +shell$ export distro=buster +``` + +#### Build the root file system in $targetdir(=debian10-rootfs) + +```console +shell$ mkdir $targetdir +shell$ sudo debootstrap --arch=armhf --foreign $distro $targetdir +shell$ sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin +shell$ sudo cp /etc/resolv.conf $targetdir/etc +shell$ sudo cp scripts/build-debian10-rootfs-with-qemu.sh $targetdir +shell$ sudo cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb $targetdir +```` + +#### Build debian10-rootfs with QEMU + +##### Change Root to debian10-rootfs + +```console +shell$ sudo chroot $targetdir +``` + +There are two ways + +1. run build-debian10-rootfs-with-qemu.sh (easy) +2. run this chapter step-by-step (annoying) + +##### Setup APT + +````console +debian10-rootfs# distro=buster +debian10-rootfs# export LANG=C +debian10-rootfs# /debootstrap/debootstrap --second-stage +```` + +```console +debian10-rootfs# cat < /etc/apt/sources.list +deb http://ftp.jp.debian.org/debian buster main contrib non-free +deb-src http://ftp.jp.debian.org/debian buster main contrib non-free +deb http://ftp.jp.debian.org/debian buster-updates main contrib non-free +deb-src http://ftp.jp.debian.org/debian buster-updates main contrib non-free +deb http://security.debian.org/debian-security buster/updates main contrib non-free +deb-src http://security.debian.org/debian-security buster/updates main contrib non-free +EOT +``` + +```console +debian10-rootfs# cat < /etc/apt/apt.conf.d/71-no-recommends +APT::Install-Recommends "0"; +APT::Install-Suggests "0"; +EOT +``` + +```console +debian10-rootfs# apt-get update +``` + +##### Install applications + +```console +debian10-rootfs# apt-get install -y locales dialog +debian10-rootfs# dpkg-reconfigure locales +debian10-rootfs# apt-get install -y net-tools openssh-server ntpdate resolvconf sudo less hwinfo ntp tcsh zsh file +``` + +##### Setup hostname + +```console +debian10-rootfs# echo debian-fpga > /etc/hostname +``` + +##### Setup root password + +```console +debian10-rootfs# passwd +``` + +This time, we set the "admin" at the root' password. + +To be able to login as root from Zynq serial port. + +```console +debian10-rootfs# cat <> /etc/securetty +# Seral Port for Xilinx Zynq +ttyPS0 +EOT +``` + +##### Add a new guest user + +```console +debian10-rootfs# adduser fpga +``` + +This time, we set the "fpga" at the fpga'password. + +```console +debian10-rootfs# echo "fpga ALL=(ALL:ALL) ALL" > /etc/sudoers.d/fpga +``` + +##### Setup sshd config + +```console +debian10-rootfs# sed -i -e 's/#PasswordAuthentication/PasswordAuthentication/g' /etc/ssh/sshd_config +``` + +##### Setup Time Zone + +```console +debian10-rootfs# dpkg-reconfigure tzdata +``` + +or if noninteractive set to Asia/Tokyo + +```console +debian10-rootfs# echo "Asia/Tokyo" > /etc/timezone +debian10-rootfs# dpkg-reconfigure -f noninteractive tzdata +``` + + +##### Setup fstab + +```console +debian10-rootfs# cat < /etc/fstab +/dev/mmcblk0p1 /mnt/boot auto defaults 0 0 +none /config configfs defaults 0 0 +EOT +```` + +##### Setup Network Interface + +```console +debian10-rootfs# cat < /etc/network/interfaces.d/eth0 +allow-hotplug eth0 +iface eth0 inet dhcp +EOT +```` + +##### Setup /lib/firmware + +```console +debian10-rootfs# mkdir /lib/firmware +``` + +##### Install Wireless tools and firmware + +```console +debian10-rootfs# apt-get install -y wireless-tools +debian10-rootfs# apt-get install -y wpasupplicant +debian10-rootfs# apt-get install -y firmware-realtek +debian10-rootfs# apt-get install -y firmware-ralink +``` + +##### Install Development applications + +```console +debian10-rootfs# apt-get install -y build-essential +debian10-rootfs# apt-get install -y git +debian10-rootfs# apt-get install -y u-boot-tools +debian10-rootfs# apt-get install -y libssl-dev +debian10-rootfs# apt-get install -y socat +debian10-rootfs# apt-get install -y ruby rake ruby-msgpack ruby-serialport +debian10-rootfs# apt-get install -y python python-dev python-setuptools python-wheel python-pip +debian10-rootfs# apt-get install -y python3 python3-dev python3-setuptools python3-wheel python3-pip python3-numpy +debian10-rootfs# pip3 install msgpack-rpc-python +``` + +##### Install Device Tree Compiler (supported symbol version) + +```console +debian10-rootfs# apt-get install -y flex bison pkg-config +debian10-rootfs# cd root +debian10-rootfs# mkdir src +debian10-rootfs# cd src +debian10-rootfs# git clone https://git.kernel.org/pub/scm/utils/dtc/dtc.git dtc +debian10-rootfs# cd dtc +debian10-rootfs# make +debian10-rootfs# make HOME=/usr/local install-bin +debian10-rootfs# cd / +``` + +##### Install Other applications + +```console +debian10-rootfs# apt-get install -y samba +debian10-rootfs# apt-get install -y avahi-daemon +``` + +##### Install haveged for Linux Kernel 4.19 + +```console +debian10-rootfs# apt-get install -y haveged +``` + +##### Install Linux Modules + +```console +debian10-rootfs# mkdir /mnt/boot +debian10-rootfs# dpkg -i linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb +``` + +##### Clean Cache + +```console +debian10-rootfs# apt-get clean +``` + +##### Create Debian Package List + +```console +debian10-rootfs# dpkg -l > dpkg-list.txt +``` + +##### Finish + +```console +debian10-rootfs# exit +shell$ sudo rm -f $targetdir/usr/bin/qemu-arm-static +shell$ sudo rm -f $targetdir/build-debian10-rootfs-with-qemu.sh +shell$ sudo rm -f $targetdir/linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb +shell$ sudo mv $targetdir/dpkg-list.txt files/debian10-dpkg-list.txt +``` + +#### Build debian10-rootfs-vanilla.tgz + +```console +shell$ cd $targetdir +shell$ sudo tar cfz ../debian10-rootfs-vanilla.tgz * +``` + diff --git a/scripts/build-debian10-rootfs-with-qemu.sh b/scripts/build-debian10-rootfs-with-qemu.sh new file mode 100644 index 0000000..382f7a0 --- /dev/null +++ b/scripts/build-debian10-rootfs-with-qemu.sh @@ -0,0 +1,128 @@ + +#### Setup APT + +distro=buster +export LANG=C + +/debootstrap/debootstrap --second-stage + +cat < /etc/apt/sources.list +deb http://ftp.jp.debian.org/debian buster main contrib non-free +deb-src http://ftp.jp.debian.org/debian buster main contrib non-free +deb http://ftp.jp.debian.org/debian buster-updates main contrib non-free +deb-src http://ftp.jp.debian.org/debian buster-updates main contrib non-free +deb http://security.debian.org/debian-security buster/updates main contrib non-free +deb-src http://security.debian.org/debian-security buster/updates main contrib non-free +EOT + +cat < /etc/apt/apt.conf.d/71-no-recommends +APT::Install-Recommends "0"; +APT::Install-Suggests "0"; +EOT + +apt-get update -y + +#### Install Core applications + +apt-get install -y locales dialog +dpkg-reconfigure locales +apt-get install -y net-tools openssh-server ntpdate resolvconf sudo less hwinfo ntp tcsh zsh file + +#### Setup hostname + +echo "debian-fpga" > /etc/hostname + +#### Set root password + +echo Set root password +passwd + +cat <> /etc/securetty +# Seral Port for Xilinx Zynq +ttyPS0 +EOT + +#### Add fpga user + +echo Add fpga user +adduser fpga +echo "fpga ALL=(ALL:ALL) ALL" > /etc/sudoers.d/fpga + +#### Setup sshd config + +sed -i -e 's/#PasswordAuthentication/PasswordAuthentication/g' /etc/ssh/sshd_config + +#### Setup Time Zone + +dpkg-reconfigure tzdata + +#### Setup fstab + +cat < /etc/fstab +/dev/mmcblk0p1 /mnt/boot auto defaults 0 0 +none /config configfs defaults 0 0 +EOT + +#### Setup Network Interface + +cat < /etc/network/interfaces.d/eth0 +allow-hotplug eth0 +iface eth0 inet dhcp +EOT + +#### Setup /lib/firmware + +mkdir /lib/firmware + +#### Install Wireless tools and firmware + +apt-get install -y wireless-tools +apt-get install -y wpasupplicant +apt-get install -y firmware-realtek +apt-get install -y firmware-ralink + +#### Install Development applications + +apt-get install -y build-essential +apt-get install -y git +apt-get install -y u-boot-tools +apt-get install -y libssl-dev +apt-get install -y socat +apt-get install -y ruby ruby-msgpack ruby-serialport +apt-get install -y python python-dev python-setuptools python-wheel python-pip +apt-get install -y python3 python3-dev python3-setuptools python3-wheel python3-pip python3-numpy +pip3 install msgpack-rpc-python + +#### Install Device Tree Compiler (supported symbol version) + +apt-get install -y flex bison pkg-config +cd root +mkdir src +cd src +git clone https://git.kernel.org/pub/scm/utils/dtc/dtc.git dtc +cd dtc +make +make HOME=/usr/local install-bin +cd / + +#### Install Other applications + +apt-get install -y avahi-daemon +apt-get install -y samba + +#### Install haveged for Linux Kernel 4.19 + +apt-get install -y haveged + +#### Install Linux Modules + +mkdir /mnt/boot +dpkg -i linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb + +#### Clean Cache + +apt-get clean + +#### Create Debian Package List + +dpkg -l > dpkg-list.txt From 3bda5a0ea722b46373dbae474eba54bf9a17fc19 Mon Sep 17 00:00:00 2001 From: ikwzm Date: Sat, 13 Jul 2019 16:18:46 +0900 Subject: [PATCH 20/24] [add] debian10-rootfs-vanilla.tgz --- debian10-rootfs-vanilla.tgz | 3 + files/debian10-dpkg-list.txt | 364 +++++++++++++++++++++++++++++++++++ 2 files changed, 367 insertions(+) create mode 100644 debian10-rootfs-vanilla.tgz create mode 100644 files/debian10-dpkg-list.txt diff --git a/debian10-rootfs-vanilla.tgz b/debian10-rootfs-vanilla.tgz new file mode 100644 index 0000000..d89bf19 --- /dev/null +++ b/debian10-rootfs-vanilla.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4116c3cba356d0801f0ee2077e19e758220bad089690c7b60042d7d654dff0cc +size 385141863 diff --git a/files/debian10-dpkg-list.txt b/files/debian10-dpkg-list.txt new file mode 100644 index 0000000..156a73b --- /dev/null +++ b/files/debian10-dpkg-list.txt @@ -0,0 +1,364 @@ +Desired=Unknown/Install/Remove/Purge/Hold +| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend +|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) +||/ Name Version Architecture Description ++++-==============================-===========================-============-=============================================================================== +ii adduser 3.118 all add and remove users and groups +ii apt 1.8.2 armhf commandline package manager +ii apt-transport-https 1.8.2 all transitional package for https support +ii apt-utils 1.8.2 armhf package management related utility programs +ii avahi-daemon 0.7-4+b1 armhf Avahi mDNS/DNS-SD daemon +ii base-files 10.3 armhf Debian base system miscellaneous files +ii base-passwd 3.5.46 armhf Debian base system master password and group files +ii bash 5.0-4 armhf GNU Bourne Again SHell +ii bind9-host 1:9.11.5.P4+dfsg-5.1 armhf DNS lookup utility (deprecated) +ii binutils 2.31.1-16 armhf GNU assembler, linker and binary utilities +ii binutils-arm-linux-gnueabihf 2.31.1-16 armhf GNU binary utilities, for arm-linux-gnueabihf target +ii binutils-common:armhf 2.31.1-16 armhf Common files for the GNU assembler, linker and binary utilities +ii bison 2:3.3.2.dfsg-1 armhf YACC-compatible parser generator +ii bsdmainutils 11.1.2+b1 armhf collection of more utilities from FreeBSD +ii bsdutils 1:2.33.1-0.1 armhf basic utilities from 4.4BSD-Lite +ii build-essential 12.6 armhf Informational list of build-essential packages +ii bzip2 1.0.6-9.1 armhf high-quality block-sorting file compressor - utilities +ii ca-certificates 20190110 all Common CA certificates +ii coreutils 8.30-3 armhf GNU core utilities +ii cpio 2.12+dfsg-9 armhf GNU cpio -- a program to manage archives of files +ii cpp 4:8.3.0-1 armhf GNU C preprocessor (cpp) +ii cpp-8 8.3.0-6 armhf GNU C preprocessor +ii cron 3.0pl1-134 armhf process scheduling daemon +ii dash 0.5.10.2-5 armhf POSIX-compliant shell +ii dbus 1.12.16-1 armhf simple interprocess messaging system (daemon and utilities) +ii debconf 1.5.71 all Debian configuration management system +ii debconf-i18n 1.5.71 all full internationalization support for debconf +ii debian-archive-keyring 2019.1 all GnuPG archive keys of the Debian archive +ii debianutils 4.8.6.1 armhf Miscellaneous utilities specific to Debian +ii dh-python 3.20190308 all Debian helper tools for packaging Python libraries and applications +ii dialog 1.3-20190211-1 armhf Displays user-friendly dialog boxes from shell scripts +ii diffutils 1:3.7-3 armhf File comparison utilities +ii dmidecode 3.2-1 armhf SMBIOS/DMI table decoder +ii dmsetup 2:1.02.155-3 armhf Linux Kernel Device Mapper userspace library +ii dpkg 1.19.7 armhf Debian package management system +ii dpkg-dev 1.19.7 all Debian package development tools +ii e2fsprogs 1.44.5-1 armhf ext2/ext3/ext4 file system utilities +ii fdisk 2.33.1-0.1 armhf collection of partitioning utilities +ii file 1:5.35-4 armhf Recognize the type of data in a file using "magic" numbers +ii findutils 4.6.0+git+20190209-2 armhf utilities for finding files--find, xargs +ii firmware-misc-nonfree 20190114-1 all Binary firmware for various drivers in the Linux kernel +ii firmware-ralink 20190114-1 all Binary firmware for Ralink wireless cards (dummmy package) +ii firmware-realtek 20190114-1 all Binary firmware for Realtek wired/wifi/BT adapters +ii flex 2.6.4-6.2 armhf fast lexical analyzer generator +ii g++ 4:8.3.0-1 armhf GNU C++ compiler +ii g++-8 8.3.0-6 armhf GNU C++ compiler +ii gcc 4:8.3.0-1 armhf GNU C compiler +ii gcc-8 8.3.0-6 armhf GNU C compiler +ii gcc-8-base:armhf 8.3.0-6 armhf GCC, the GNU Compiler Collection (base package) +ii gdbm-l10n 1.18.1-4 all GNU dbm database routines (translation files) +ii git 1:2.20.1-2 armhf fast, scalable, distributed revision control system +ii git-man 1:2.20.1-2 all fast, scalable, distributed revision control system (manual pages) +ii gpgv 2.2.12-1 armhf GNU privacy guard - signature verification tool +ii grep 3.3-1 armhf GNU grep, egrep and fgrep +ii gzip 1.9-3 armhf GNU compression utilities +ii haveged 1.9.1-7 armhf Linux entropy source using the HAVEGE algorithm +ii hostname 3.21 armhf utility to set/show the host name or domain name +ii hwinfo 21.63-3 armhf Hardware identification system +ii ifupdown 0.8.35 armhf high level tools to configure network interfaces +ii init 1.56+nmu1 armhf metapackage ensuring an init system is installed +ii init-system-helpers 1.56+nmu1 all helper tools for all init systems +ii iproute2 4.20.0-2 armhf networking and traffic control tools +ii iptables 1.8.2-4 armhf administration tools for packet filtering and NAT +ii iputils-ping 3:20180629-2 armhf Tools to test the reachability of network hosts +ii isc-dhcp-client 4.4.1-2 armhf DHCP client for automatically obtaining an IP address +ii isc-dhcp-common 4.4.1-2 armhf common manpages relevant to all of the isc-dhcp packages +ii kmod 26-1 armhf tools for managing Linux kernel modules +ii less 487-0.1+b1 armhf pager program similar to more +ii libacl1:armhf 2.2.53-4 armhf access control list - shared library +ii libapparmor1:armhf 2.13.2-10 armhf changehat AppArmor library +ii libapt-inst2.0:armhf 1.8.2 armhf deb package format runtime library +ii libapt-pkg5.0:armhf 1.8.2 armhf package management runtime library +ii libargon2-1:armhf 0~20171227-0.2 armhf memory-hard hashing function - runtime library +ii libasan5:armhf 8.3.0-6 armhf AddressSanitizer -- a fast memory error detector +ii libatomic1:armhf 8.3.0-6 armhf support library providing __atomic built-in functions +ii libattr1:armhf 1:2.4.48-4 armhf extended attribute handling - shared library +ii libaudit-common 1:2.8.4-3 all Dynamic library for security auditing - common files +ii libaudit1:armhf 1:2.8.4-3 armhf Dynamic library for security auditing +ii libavahi-client3:armhf 0.7-4+b1 armhf Avahi client library +ii libavahi-common-data:armhf 0.7-4+b1 armhf Avahi common data files +ii libavahi-common3:armhf 0.7-4+b1 armhf Avahi common library +ii libavahi-core7:armhf 0.7-4+b1 armhf Avahi's embeddable mDNS/DNS-SD library +ii libbind9-161:armhf 1:9.11.5.P4+dfsg-5.1 armhf BIND9 Shared Library used by BIND +ii libbinutils:armhf 2.31.1-16 armhf GNU binary utilities (private shared library) +ii libbison-dev:armhf 2:3.3.2.dfsg-1 armhf YACC-compatible parser generator - development library +ii libblas3:armhf 3.8.0-2 armhf Basic Linear Algebra Reference implementations, shared library +ii libblkid1:armhf 2.33.1-0.1 armhf block device ID library +ii libbsd0:armhf 0.9.1-2 armhf utility functions from BSD systems - shared library +ii libbz2-1.0:armhf 1.0.6-9.1 armhf high-quality block-sorting file compressor library - runtime +ii libc-bin 2.28-10 armhf GNU C Library: Binaries +ii libc-dev-bin 2.28-10 armhf GNU C Library: Development binaries +ii libc-l10n 2.28-10 all GNU C Library: localization files +ii libc6:armhf 2.28-10 armhf GNU C Library: Shared libraries +ii libc6-dev:armhf 2.28-10 armhf GNU C Library: Development Libraries and Header Files +ii libcap-ng0:armhf 0.7.9-2 armhf An alternate POSIX capabilities library +ii libcap2:armhf 1:2.25-2 armhf POSIX 1003.1e capabilities (library) +ii libcap2-bin 1:2.25-2 armhf POSIX 1003.1e capabilities (utilities) +ii libcc1-0:armhf 8.3.0-6 armhf GCC cc1 plugin for GDB +ii libcom-err2:armhf 1.44.5-1 armhf common error description library +ii libcryptsetup12:armhf 2:2.1.0-5 armhf disk encryption support - shared library +ii libcups2:armhf 2.2.10-6 armhf Common UNIX Printing System(tm) - Core library +ii libcurl3-gnutls:armhf 7.64.0-4 armhf easy-to-use client-side URL transfer library (GnuTLS flavour) +ii libdaemon0:armhf 0.14-7 armhf lightweight C library for daemons - runtime library +ii libdb5.3:armhf 5.3.28+dfsg1-0.5 armhf Berkeley v5.3 Database Libraries [runtime] +ii libdbus-1-3:armhf 1.12.16-1 armhf simple interprocess messaging system (library) +ii libdebconfclient0:armhf 0.249 armhf Debian Configuration Management System (C-implementation library) +ii libdevmapper1.02.1:armhf 2:1.02.155-3 armhf Linux Kernel Device Mapper userspace library +ii libdns-export1104 1:9.11.5.P4+dfsg-5.1 armhf Exported DNS Shared Library +ii libdns1104:armhf 1:9.11.5.P4+dfsg-5.1 armhf DNS Shared Library used by BIND +ii libdpkg-perl 1.19.7 all Dpkg perl modules +ii libedit2:armhf 3.1-20181209-1 armhf BSD editline and history libraries +ii libelf1:armhf 0.176-1.1 armhf library to read and write ELF files +ii liberror-perl 0.17027-2 all Perl module for error/exception handling in an OO-ish way +ii libestr0:armhf 0.1.10-2.1 armhf Helper functions for handling strings (lib) +ii libexpat1:armhf 2.2.6-2 armhf XML parsing C library - runtime library +ii libexpat1-dev:armhf 2.2.6-2 armhf XML parsing C library - development kit +ii libext2fs2:armhf 1.44.5-1 armhf ext2/ext3/ext4 file system libraries +ii libfastjson4:armhf 0.99.8-2 armhf fast json library for C +ii libfdisk1:armhf 2.33.1-0.1 armhf fdisk partitioning library +ii libffi6:armhf 3.2.1-9 armhf Foreign Function Interface library runtime +ii libfstrm0:armhf 0.4.0-1 armhf Frame Streams (fstrm) library +ii libgcc-8-dev:armhf 8.3.0-6 armhf GCC support library (development files) +ii libgcc1:armhf 1:8.3.0-6 armhf GCC support library +ii libgcrypt20:armhf 1.8.4-5 armhf LGPL Crypto library - runtime library +ii libgdbm-compat4:armhf 1.18.1-4 armhf GNU dbm database routines (legacy support runtime version) +ii libgdbm6:armhf 1.18.1-4 armhf GNU dbm database routines (runtime version) +ii libgeoip1:armhf 1.6.12-1 armhf non-DNS IP-to-country resolver library +ii libgfortran5:armhf 8.3.0-6 armhf Runtime library for GNU Fortran applications +ii libglib2.0-0:armhf 2.58.3-2 armhf GLib library of C routines +ii libgmp10:armhf 2:6.1.2+dfsg-4 armhf Multiprecision arithmetic library +ii libgnutls30:armhf 3.6.7-4 armhf GNU TLS library - main runtime library +ii libgomp1:armhf 8.3.0-6 armhf GCC OpenMP (GOMP) support library +ii libgpg-error0:armhf 1.35-1 armhf GnuPG development runtime library +ii libgssapi-krb5-2:armhf 1.17-3 armhf MIT Kerberos runtime libraries - krb5 GSS-API Mechanism +ii libhavege1:armhf 1.9.1-7 armhf entropy source using the HAVEGE algorithm - shared library +ii libhd21:armhf 21.63-3 armhf Hardware identification system library +ii libhogweed4:armhf 3.4.1-1 armhf low level cryptographic library (public-key cryptos) +ii libicu63:armhf 63.1-6 armhf International Components for Unicode +ii libidn11:armhf 1.33-2.2 armhf GNU Libidn library, implementation of IETF IDN specifications +ii libidn2-0:armhf 2.0.5-1 armhf Internationalized domain names (IDNA2008/TR46) library +ii libip4tc0:armhf 1.8.2-4 armhf netfilter libip4tc library +ii libip6tc0:armhf 1.8.2-4 armhf netfilter libip6tc library +ii libiptc0:armhf 1.8.2-4 armhf netfilter libiptc library +ii libisc-export1100:armhf 1:9.11.5.P4+dfsg-5.1 armhf Exported ISC Shared Library +ii libisc1100:armhf 1:9.11.5.P4+dfsg-5.1 armhf ISC Shared Library used by BIND +ii libisccc161:armhf 1:9.11.5.P4+dfsg-5.1 armhf Command Channel Library used by BIND +ii libisccfg163:armhf 1:9.11.5.P4+dfsg-5.1 armhf Config File Handling Library used by BIND +ii libisl19:armhf 0.20-2 armhf manipulating sets and relations of integer points bounded by linear constraints +ii libiw30:armhf 30~pre9-13 armhf Wireless tools - library +ii libjansson4:armhf 2.12-1 armhf C library for encoding, decoding and manipulating JSON data +ii libjson-c3:armhf 0.12.1+ds-2 armhf JSON manipulation library - shared library +ii libk5crypto3:armhf 1.17-3 armhf MIT Kerberos runtime libraries - Crypto Library +ii libkeyutils1:armhf 1.6-6 armhf Linux Key Management Utilities (library) +ii libkmod2:armhf 26-1 armhf libkmod shared library +ii libkrb5-3:armhf 1.17-3 armhf MIT Kerberos runtime libraries +ii libkrb5support0:armhf 1.17-3 armhf MIT Kerberos runtime libraries - Support library +ii liblapack3:armhf 3.8.0-2 armhf Library of linear algebra routines 3 - shared version +ii libldap-2.4-2:armhf 2.4.47+dfsg-3 armhf OpenLDAP libraries +ii libldap-common 2.4.47+dfsg-3 all OpenLDAP common files for libraries +ii libldb1:armhf 2:1.5.1+really1.4.6-3 armhf LDAP-like embedded database - shared library +ii liblmdb0:armhf 0.9.22-1 armhf Lightning Memory-Mapped Database shared library +ii liblocale-gettext-perl 1.07-3+b4 armhf module using libc functions for internationalization in Perl +ii liblognorm5:armhf 2.0.5-1 armhf log normalizing library +ii liblwres161:armhf 1:9.11.5.P4+dfsg-5.1 armhf Lightweight Resolver Library used by BIND +ii liblz4-1:armhf 1.8.3-1 armhf Fast LZ compression algorithm library - runtime +ii liblzma5:armhf 5.2.4-1 armhf XZ-format compression library +ii libmagic-mgc 1:5.35-4 armhf File type determination library using "magic" numbers (compiled magic file) +ii libmagic1:armhf 1:5.35-4 armhf Recognize the type of data in a file using "magic" numbers - library +ii libmnl0:armhf 1.0.4-2 armhf minimalistic Netlink communication library +ii libmount1:armhf 2.33.1-0.1 armhf device mounting library +ii libmpc3:armhf 1.1.0-1 armhf multiple precision complex floating-point library +ii libmpdec2:armhf 2.4.2-2 armhf library for decimal floating point arithmetic (runtime library) +ii libmpfr6:armhf 4.0.2-1 armhf multiple precision floating-point computation +ii libncurses6:armhf 6.1+20181013-2 armhf shared libraries for terminal handling +ii libncursesw6:armhf 6.1+20181013-2 armhf shared libraries for terminal handling (wide character support) +ii libnetfilter-conntrack3:armhf 1.0.7-1 armhf Netfilter netlink-conntrack library +ii libnettle6:armhf 3.4.1-1 armhf low level cryptographic library (symmetric and one-way cryptos) +ii libnewt0.52:armhf 0.52.20-8 armhf Not Erik's Windowing Toolkit - text mode windowing with slang +ii libnfnetlink0:armhf 1.0.1-3+b1 armhf Netfilter netlink library +ii libnftnl11:armhf 1.1.2-2 armhf Netfilter nftables userspace API library +ii libnghttp2-14:armhf 1.36.0-2 armhf library implementing HTTP/2 protocol (shared library) +ii libnl-3-200:armhf 3.4.0-1 armhf library for dealing with netlink sockets +ii libnl-genl-3-200:armhf 3.4.0-1 armhf library for dealing with netlink sockets - generic netlink +ii libnl-route-3-200:armhf 3.4.0-1 armhf library for dealing with netlink sockets - route interface +ii libopts25:armhf 1:5.18.12-4 armhf automated option processing library based on autogen +ii libp11-kit0:armhf 0.23.15-2 armhf library for loading and coordinating access to PKCS#11 modules - runtime +ii libpam-modules:armhf 1.3.1-5 armhf Pluggable Authentication Modules for PAM +ii libpam-modules-bin 1.3.1-5 armhf Pluggable Authentication Modules for PAM - helper binaries +ii libpam-runtime 1.3.1-5 all Runtime support for the PAM library +ii libpam0g:armhf 1.3.1-5 armhf Pluggable Authentication Modules library +ii libpcre2-8-0:armhf 10.32-5 armhf New Perl Compatible Regular Expression Library- 8 bit runtime files +ii libpcre3:armhf 2:8.39-12 armhf Old Perl 5 Compatible Regular Expression Library - runtime files +ii libpcsclite1:armhf 1.8.24-1 armhf Middleware to access a smart card using PC/SC (library) +ii libperl5.28:armhf 5.28.1-6 armhf shared Perl library +ii libpopt0:armhf 1.16-12 armhf lib for parsing cmdline parameters +ii libprocps7:armhf 2:3.3.15-2 armhf library for accessing process information from /proc +ii libprotobuf-c1:armhf 1.3.1-1+b1 armhf Protocol Buffers C shared library (protobuf-c) +ii libpsl5:armhf 0.20.2-2 armhf Library for Public Suffix List (shared libraries) +ii libpython-dev:armhf 2.7.16-1 armhf header files and a static library for Python2 +ii libpython-stdlib:armhf 2.7.16-1 armhf interactive high-level object-oriented language (Python2) +ii libpython2-dev:armhf 2.7.16-1 armhf header files and a static library for Python2 +ii libpython2-stdlib:armhf 2.7.16-1 armhf interactive high-level object-oriented language (Python2) +ii libpython2.7:armhf 2.7.16-2 armhf Shared Python runtime library (version 2.7) +ii libpython2.7-dev:armhf 2.7.16-2 armhf Header files and a static library for Python (v2.7) +ii libpython2.7-minimal:armhf 2.7.16-2 armhf Minimal subset of the Python language (version 2.7) +ii libpython2.7-stdlib:armhf 2.7.16-2 armhf Interactive high-level object-oriented language (standard library, version 2.7) +ii libpython3-dev:armhf 3.7.3-1 armhf header files and a static library for Python (default) +ii libpython3-stdlib:armhf 3.7.3-1 armhf interactive high-level object-oriented language (default python3 version) +ii libpython3.7:armhf 3.7.3-2 armhf Shared Python runtime library (version 3.7) +ii libpython3.7-dev:armhf 3.7.3-2 armhf Header files and a static library for Python (v3.7) +ii libpython3.7-minimal:armhf 3.7.3-2 armhf Minimal subset of the Python language (version 3.7) +ii libpython3.7-stdlib:armhf 3.7.3-2 armhf Interactive high-level object-oriented language (standard library, version 3.7) +ii libreadline7:armhf 7.0-5 armhf GNU readline and history libraries, run-time libraries +ii librtmp1:armhf 2.4+20151223.gitfa8646d.1-2 armhf toolkit for RTMP streams (shared library) +ii libruby2.5:armhf 2.5.5-3 armhf Libraries necessary to run Ruby 2.5 +ii libsasl2-2:armhf 2.1.27+dfsg-1 armhf Cyrus SASL - authentication abstraction library +ii libsasl2-modules-db:armhf 2.1.27+dfsg-1 armhf Cyrus SASL - pluggable authentication modules (DB) +ii libseccomp2:armhf 2.3.3-4 armhf high level interface to Linux seccomp filter +ii libselinux1:armhf 2.8-1+b1 armhf SELinux runtime shared libraries +ii libsemanage-common 2.8-2 all Common files for SELinux policy management libraries +ii libsemanage1:armhf 2.8-2 armhf SELinux policy management library +ii libsepol1:armhf 2.8-1 armhf SELinux library for manipulating binary security policies +ii libsigsegv2:armhf 2.12-2 armhf Library for handling page faults in a portable way +ii libslang2:armhf 2.3.2-2 armhf S-Lang programming library - runtime version +ii libsmartcols1:armhf 2.33.1-0.1 armhf smart column output alignment library +ii libsqlite3-0:armhf 3.27.2-3 armhf SQLite 3 shared library +ii libss2:armhf 1.44.5-1 armhf command-line interface parsing library +ii libssh2-1:armhf 1.8.0-2.1 armhf SSH2 client-side library +ii libssl-dev:armhf 1.1.1c-1 armhf Secure Sockets Layer toolkit - development files +ii libssl1.1:armhf 1.1.1c-1 armhf Secure Sockets Layer toolkit - shared libraries +ii libstdc++-8-dev:armhf 8.3.0-6 armhf GNU Standard C++ Library v3 (development files) +ii libstdc++6:armhf 8.3.0-6 armhf GNU Standard C++ Library v3 +ii libsystemd0:armhf 241-5 armhf systemd utility library +ii libtalloc2:armhf 2.1.14-2 armhf hierarchical pool based memory allocator +ii libtasn1-6:armhf 4.13-3 armhf Manage ASN.1 structures (runtime) +ii libtdb1:armhf 1.3.16-2+b1 armhf Trivial Database - shared library +ii libtevent0:armhf 0.9.37-1 armhf talloc-based event loop library - shared library +ii libtext-charwidth-perl 0.04-7.1+b1 armhf get display widths of characters on the terminal +ii libtext-iconv-perl 1.7-5+b7 armhf converts between character sets in Perl +ii libtext-wrapi18n-perl 0.06-7.1 all internationalized substitute of Text::Wrap +ii libtinfo6:armhf 6.1+20181013-2 armhf shared low-level terminfo library for terminal handling +ii libubsan1:armhf 8.3.0-6 armhf UBSan -- undefined behaviour sanitizer (runtime) +ii libudev1:armhf 241-5 armhf libudev shared library +ii libunistring2:armhf 0.9.10-1 armhf Unicode string library for C +ii libuuid1:armhf 2.33.1-0.1 armhf Universally Unique ID library +ii libwbclient0:armhf 2:4.9.5+dfsg-5 armhf Samba winbind client library +ii libwrap0:armhf 7.6.q-28 armhf Wietse Venema's TCP wrappers library +ii libxml2:armhf 2.9.4+dfsg1-7+b3 armhf GNOME XML library +ii libxtables12:armhf 1.8.2-4 armhf netfilter xtables library +ii libyaml-0-2:armhf 0.2.1-1 armhf Fast YAML 1.1 parser and emitter library +ii libzstd1:armhf 1.3.8+dfsg-3 armhf fast lossless compression algorithm +ii linux-image-4.19.57-armv7-fpga 4.19.57-armv7-fpga-0 armhf Linux kernel, version 4.19.57-armv7-fpga +ii linux-libc-dev:armhf 4.19.37-5 armhf Linux support headers for userspace development +ii locales 2.28-10 all GNU C Library: National Language (locale) data [support] +ii login 1:4.5-1.1 armhf system login tools +ii logrotate 3.14.0-4 armhf Log rotation utility +ii lsb-base 10.2019051400 all Linux Standard Base init script functionality +ii m4 1.4.18-2 armhf macro processing language +ii make 4.2.1-1.2 armhf utility for directing compilation +ii mawk 1.3.3-17+b3 armhf a pattern scanning and text processing language +ii mime-support 3.62 all MIME files 'mime.types' & 'mailcap', and support programs +ii mount 2.33.1-0.1 armhf tools for mounting and manipulating filesystems +ii nano 3.2-3 armhf small, friendly text editor inspired by Pico +ii ncurses-base 6.1+20181013-2 all basic terminal type definitions +ii ncurses-bin 6.1+20181013-2 armhf terminal-related programs and man pages +ii net-tools 1.60+git20180626.aebd88e-1 armhf NET-3 networking toolkit +ii netbase 5.6 all Basic TCP/IP networking system +ii ntp 1:4.2.8p12+dfsg-4 armhf Network Time Protocol daemon and utility programs +ii ntpdate 1:4.2.8p12+dfsg-4 armhf client for setting system time from NTP servers (deprecated) +ii openssh-client 1:7.9p1-10 armhf secure shell (SSH) client, for secure access to remote machines +ii openssh-server 1:7.9p1-10 armhf secure shell (SSH) server, for secure access from remote machines +ii openssh-sftp-server 1:7.9p1-10 armhf secure shell (SSH) sftp server module, for SFTP access from remote machines +ii openssl 1.1.1c-1 armhf Secure Sockets Layer toolkit - cryptographic utility +ii passwd 1:4.5-1.1 armhf change and administer password and group data +ii patch 2.7.6-3 armhf Apply a diff file to an original +ii perl 5.28.1-6 armhf Larry Wall's Practical Extraction and Report Language +ii perl-base 5.28.1-6 armhf minimal Perl system +ii perl-modules-5.28 5.28.1-6 all Core Perl modules +ii pkg-config 0.29-6 armhf manage compile and link flags for libraries +ii procps 2:3.3.15-2 armhf /proc file system utilities +ii python 2.7.16-1 armhf interactive high-level object-oriented language (Python2 version) +ii python-crypto 2.6.1-9+b1 armhf cryptographic algorithms and protocols for Python +ii python-dev 2.7.16-1 armhf header files and a static library for Python2 +ii python-dnspython 1.16.0-1 all DNS toolkit for Python +ii python-ldb 2:1.5.1+really1.4.6-3 armhf Python bindings for LDB +ii python-minimal 2.7.16-1 armhf minimal subset of the Python2 language +ii python-pip 18.1-5 all Python package installer +ii python-pip-whl 18.1-5 all Python package installer +ii python-pkg-resources 40.8.0-1 all Package Discovery and Resource Access using pkg_resources +ii python-samba 2:4.9.5+dfsg-5 armhf Python bindings for Samba +ii python-setuptools 40.8.0-1 all Python Distutils Enhancements +ii python-talloc:armhf 2.1.14-2 armhf hierarchical pool based memory allocator - Python bindings +ii python-tdb 1.3.16-2+b1 armhf Python bindings for TDB +ii python-wheel 0.32.3-2 all built-package format for Python +ii python2 2.7.16-1 armhf interactive high-level object-oriented language (Python2 version) +ii python2-dev 2.7.16-1 armhf header files and a static library for Python2 +ii python2-minimal 2.7.16-1 armhf minimal subset of the Python2 language +ii python2.7 2.7.16-2 armhf Interactive high-level object-oriented language (version 2.7) +ii python2.7-dev 2.7.16-2 armhf Header files and a static library for Python (v2.7) +ii python2.7-minimal 2.7.16-2 armhf Minimal subset of the Python language (version 2.7) +ii python3 3.7.3-1 armhf interactive high-level object-oriented language (default python3 version) +ii python3-dev 3.7.3-1 armhf header files and a static library for Python (default) +ii python3-distutils 3.7.3-1 all distutils package for Python 3.x +ii python3-lib2to3 3.7.3-1 all Interactive high-level object-oriented language (2to3, version 3.6) +ii python3-minimal 3.7.3-1 armhf minimal subset of the Python language (default python3 version) +ii python3-numpy 1:1.16.2-1 armhf Fast array facility to the Python 3 language +ii python3-pip 18.1-5 all Python package installer +ii python3-pkg-resources 40.8.0-1 all Package Discovery and Resource Access using pkg_resources +ii python3-setuptools 40.8.0-1 all Python3 Distutils Enhancements +ii python3-wheel 0.32.3-2 all built-package format for Python +ii python3.7 3.7.3-2 armhf Interactive high-level object-oriented language (version 3.7) +ii python3.7-dev 3.7.3-2 armhf Header files and a static library for Python (v3.7) +ii python3.7-minimal 3.7.3-2 armhf Minimal subset of the Python language (version 3.7) +ii rake 12.3.1-3 all ruby make-like utility +ii readline-common 7.0-5 all GNU readline and history libraries, common files +ii resolvconf 1.79 all name server information handler +ii rsyslog 8.1901.0-1 armhf reliable system and kernel logging daemon +ii ruby 1:2.5.1 armhf Interpreter of object-oriented scripting language Ruby (default version) +ii ruby-did-you-mean 1.2.1-1 all smart error messages for Ruby > 2.3 +ii ruby-minitest 5.11.3-1 all Ruby test tools supporting TDD, BDD, mocking, and benchmarking +ii ruby-msgpack 1.1.0-1+b2 armhf Ruby library for MessagePack +ii ruby-net-telnet 0.1.1-2 all telnet client library +ii ruby-power-assert 1.1.1-1 all library showing values of variables and method calls in an expression +ii ruby-serialport 1.3.1-1+b5 armhf Library for using RS-232 serial ports from Ruby programs +ii ruby-test-unit 3.2.8-1 all unit testing framework for Ruby +ii ruby-xmlrpc 0.3.0-2 all XMLRPC library for Ruby +ii ruby2.5 2.5.5-3 armhf Interpreter of object-oriented scripting language Ruby +ii rubygems-integration 1.11 all integration of Debian Ruby packages with Rubygems +ii samba 2:4.9.5+dfsg-5 armhf SMB/CIFS file, print, and login server for Unix +ii samba-common 2:4.9.5+dfsg-5 all common files used by both the Samba server and client +ii samba-common-bin 2:4.9.5+dfsg-5 armhf Samba common files used by both the server and the client +ii samba-libs:armhf 2:4.9.5+dfsg-5 armhf Samba core libraries +ii sed 4.7-1 armhf GNU stream editor for filtering/transforming text +ii sensible-utils 0.0.12 all Utilities for sensible alternative selection +ii socat 1.7.3.2-2 armhf multipurpose relay for bidirectional data transfer +ii sudo 1.8.27-1 armhf Provide limited super user privileges to specific users +ii systemd 241-5 armhf system and service manager +ii systemd-sysv 241-5 armhf system and service manager - SysV links +ii sysvinit-utils 2.93-8 armhf System-V-like utilities +ii tar 1.30+dfsg-6 armhf GNU version of the tar archiving utility +ii tasksel 3.53 all tool for selecting tasks for installation on Debian systems +ii tasksel-data 3.53 all official tasks used for installation of Debian systems +ii tcsh 6.20.00-7+b1 armhf TENEX C Shell, an enhanced version of Berkeley csh +ii tdb-tools 1.3.16-2+b1 armhf Trivial Database - bundled binaries +ii tzdata 2019a-1 all time zone and daylight-saving time data +ii u-boot-tools 2019.01+dfsg-7 armhf companion tools for Das U-Boot bootloader +ii ucf 3.0038+nmu1 all Update Configuration File(s): preserve user changes to config files +ii udev 241-5 armhf /dev/ and hotplug management daemon +ii util-linux 2.33.1-0.1 armhf miscellaneous system utilities +ii vim-common 2:8.1.0875-5 all Vi IMproved - Common files +ii vim-tiny 2:8.1.0875-5 armhf Vi IMproved - enhanced vi editor - compact version +ii whiptail 0.52.20-8 armhf Displays user-friendly dialog boxes from shell scripts +ii wireless-tools 30~pre9-13 armhf Tools for manipulating Linux Wireless Extensions +ii wpasupplicant 2:2.7+git20190128+0c1e29f-6 armhf client support for WPA and WPA2 (IEEE 802.11i) +ii xxd 2:8.1.0875-5 armhf tool to make (or reverse) a hex dump +ii xz-utils 5.2.4-1 armhf XZ-format compression utilities +ii zlib1g:armhf 1:1.2.11.dfsg-1 armhf compression library - runtime +ii zsh 5.7.1-1 armhf shell with lots of features +ii zsh-common 5.7.1-1 all architecture independent files for Zsh From 8ee0625892ed2cdc67f6b123779d40f423cb006a Mon Sep 17 00:00:00 2001 From: ikwzm Date: Sat, 13 Jul 2019 16:29:50 +0900 Subject: [PATCH 21/24] [update] Readme.md and doc/install/ for v1.0.0 --- Readme.md | 13 ++++----- doc/install/de0-nano-soc.md | 4 +-- doc/install/de10-nano.md | 4 +-- doc/install/device-drivers.md | 50 +++++++++++++++++------------------ doc/install/zynq-pynqz1.md | 4 +-- doc/install/zynq-zybo-z7.md | 4 +-- doc/install/zynq-zybo.md | 4 +-- 7 files changed, 40 insertions(+), 43 deletions(-) diff --git a/Readme.md b/Readme.md index e679162..2884313 100644 --- a/Readme.md +++ b/Readme.md @@ -22,20 +22,20 @@ This Repository provides a Linux Boot Image(U-boot, Kernel, Root-fs) for FPGA-So + Customized boot by uEnv.txt + Customized boot by boot.scr + Enable bootmenu -* Linux Kernel Version v4.14.123 +* Linux Kernel Version v4.19.57 + Available in both Xilinx-Zynq-7000 and Altera-SoC in a single image + Enable Device Tree Overlay + Enable FPGA Manager + Enable FPGA Bridge + Enable FPGA Reagion + Patch for issue #3(USB-HOST does not work with PYNQ-Z1) -* Debian9(stretch) Root File System +* Debian10(buster) Root File System + Installed build-essential + Installed device-tree-compiler + Installed ruby ruby-msgpack ruby-serialport + Installed python python3 python3-numpy msgpack-rpc-python + Installed u-boot-tools - + Installed Other package list -> [files/dpkg-list.txt](files/dpkg-list.txt) + + Installed Other package list -> [files/debian10-dpkg-list.txt](files/debian10-dpkg-list.txt) * FPGA Device Drivers and Services + [dtbocfg (Device Tree Blob Overlay Configuration File System)](https://github.com/ikwzm/dtbocfg) + [fclkcfg (FPGA Clock Configuration Device Driver)](https://github.com/ikwzm/fclkcfg) @@ -59,9 +59,6 @@ Install Tutorial ------------------------------------------------------------------------------------ -* [uio_irq_sample](doc/tutorial/uio_irq_sample.md) -* [accumulator](doc/tutorial/accumulator.md) -* [fibonacci](doc/tutorial/fibonacci.md) * FPGA-SoC-Linux-Example-1 - [FPGA-SoC-Linux-Example-1-ZYBO](https://github.com/ikwzm/FPGA-SoC-Linux-Example-1-ZYBO) - [FPGA-SoC-Linux-Example-1-ZYBO-Z7](https://github.com/ikwzm/FPGA-SoC-Linux-Example-1-ZYBO-Z7) @@ -77,7 +74,7 @@ Build * [Build U-boot for PYNQ-Z1](doc/build/u-boot-zynq-pynqz1.md) * [Build U-boot for DE0-Nano-SoC](doc/build/u-boot-de0-nano-soc.md) * [Build U-boot for DE10-Nano](doc/build/u-boot-de10-nano.md) -* [Build Linux Kernel](doc/build/linux-kernel-4.14.123.md) -* [Build Debian9 RootFS](doc/build/debian9-rootfs.md) +* [Build Linux Kernel](doc/build/linux-kernel-4.19.57.md) +* [Build Debian10 RootFS](doc/build/debian10-rootfs.md) * [Build Device Drivers and Services Package](doc/build/device-drivers.md) diff --git a/doc/install/de0-nano-soc.md b/doc/install/de0-nano-soc.md index e58a7ea..a4f4b26 100644 --- a/doc/install/de0-nano-soc.md +++ b/doc/install/de0-nano-soc.md @@ -21,7 +21,7 @@ shell$ git lfs pull - u-boot-spl.sfp : Stage 1 Boot Loader(U-boot-spl) - u-boot.img : Stage 2 Boot Loader(U-boot) + examples/ : Example Programs - * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) + * debian10-rootfs-vanilla.tgz : Debian10 Root File System (use Git LFS) * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) @@ -42,7 +42,7 @@ shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/de0-nano-soc/boot/* /mnt/usb1 shell# dd if=target/de0-nano-soc/u-boot/u-boot-spl.sfp of=/dev/sdc3 bs=64k seek=0 shell# dd if=target/de0-nano-soc/u-boot/u-boot.img of=/dev/sdc3 bs=64k seek=4 -shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 +shell# tar xfz debian10-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/de10-nano.md b/doc/install/de10-nano.md index e83f18a..58a4641 100644 --- a/doc/install/de10-nano.md +++ b/doc/install/de10-nano.md @@ -19,7 +19,7 @@ shell$ git lfs pull + u-boot/ - u-boot-spl.sfp : Stage 1 Boot Loader(U-boot-spl) - u-boot.img : Stage 2 Boot Loader(U-boot) - * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) + * debian10-rootfs-vanilla.tgz : Debian10 Root File System (use Git LFS) * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) @@ -40,7 +40,7 @@ shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/de10-nano/boot/* /mnt/usb1 shell# dd if=target/de10-nano/u-boot/u-boot-spl.sfp of=/dev/sdc3 bs=64k seek=0 shell# dd if=target/de10-nano/u-boot/u-boot.img of=/dev/sdc3 bs=64k seek=4 -shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 +shell# tar xfz debian10-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/device-drivers.md b/doc/install/device-drivers.md index 74db7f9..de7506c 100644 --- a/doc/install/device-drivers.md +++ b/doc/install/device-drivers.md @@ -22,60 +22,60 @@ root@debian-fpga:~# ```console fpga@debian-fpga:~$ cd /home/fpga/debian -fpga@debian-fpga:~/debian$ sudo dpkg -i linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb -Selecting previously unselected package linux-image-4.14.123-armv7-fpga. +fpga@debian-fpga:~/debian$ sudo dpkg -i linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb +Selecting previously unselected package linux-image-4.19.57-armv7-fpga. (Reading database ... 94098 files and directories currently installed.) -Preparing to unpack linux-image-4.14.123-armv7-fpga_4.14.123-armv7-fpga-1_armhf.deb ... -Unpacking linux-image-4.14.123-armv7-fpga (4.14.123-armv7-fpga-1) ... -Setting up linux-image-4.14.123-armv7-fpga (4.14.123-armv7-fpga-1) ... +Preparing to unpack linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb ... +Unpacking linux-image-4.19.57-armv7-fpga (4.19.57-armv7-fpga-0) ... +Setting up linux-image-4.19.57-armv7-fpga (4.19.57-armv7-fpga-0) ... ``` #### Install dtbocfg kernel module package ```console fpga@debian-fpga:~$ cd /home/fpga/debian -fpga@debian-fpga:~/debian$ sudo dpkg -i dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb -Selecting previously unselected package dtbocfg-4.14.123-armv7-fpga. +fpga@debian-fpga:~/debian$ sudo dpkg -i dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb +Selecting previously unselected package dtbocfg-4.19.57-armv7-fpga. (Reading database ... 94204 files and directories currently installed.) -Preparing to unpack dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb ... -Unpacking dtbocfg-4.14.123-armv7-fpga (0.0.6-1) ... -Setting up dtbocfg-4.14.123-armv7-fpga (0.0.6-1) ... +Preparing to unpack dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb ... +Unpacking dtbocfg-4.19.57-armv7-fpga (0.0.7-1) ... +Setting up dtbocfg-4.19.57-armv7-fpga (0.0.7-1) ... ``` #### Install fclkcfg kernel module package ```console fpga@debian-fpga:~$ cd /home/fpga/debian -fpga@debian-fpga:~/debian$ sudo dpkg -i fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb -Selecting previously unselected package fclkcfg-4.14.123-armv7-fpga. +fpga@debian-fpga:~/debian$ sudo dpkg -i fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb +Selecting previously unselected package fclkcfg-4.19.57-armv7-fpga. (Reading database ... 94210 files and directories currently installed.) -Preparing to unpack fclkcfg-4.14.123-armv7-fpga_1.1.0-1_armhf.deb ... -Unpacking fclkcfg-4.14.123-armv7-fpga (1.1.0-1) ... -Setting up fclkcfg-4.14.123-armv7-fpga (1.1.0-1) ... +Preparing to unpack fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb ... +Unpacking fclkcfg-4.19.57-armv7-fpga (1.1.0-1) ... +Setting up fclkcfg-4.19.57-armv7-fpga (1.1.0-1) ... ``` #### Install udmabuf kernel module package ```console fpga@debian-fpga:~$ cd /home/fpga/debian -fpga@debian-fpga:~/debian$ sudo dpkg -i udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb -Selecting previously unselected package udmabuf-4.14.123-armv7-fpga. +fpga@debian-fpga:~/debian$ sudo dpkg -i udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb +Selecting previously unselected package udmabuf-4.19.57-armv7-fpga. (Reading database ... 94215 files and directories currently installed.) -Preparing to unpack udmabuf-4.14.123-armv7-fpga_1.4.1-1_armhf.deb ... -Unpacking udmabuf-4.14.123-armv7-fpga (1.4.1-1) ... -Setting up udmabuf-4.14.123-armv7-fpga (1.4.1-1) ... +Preparing to unpack udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb ... +Unpacking udmabuf-4.19.57-armv7-fpga (1.4.2-0) ... +Setting up udmabuf-4.19.57-armv7-fpga (1.4.2-0) ... ``` #### Install zptty kernel module package ```console fpga@debian-fpga:~$ cd /home/fpga/debian -fpga@debian-fpga:~/debian$ sudo dpkg -i zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb -Selecting previously unselected package zptty-4.14.123-armv7-fpga. +fpga@debian-fpga:~/debian$ sudo dpkg -i zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb +Selecting previously unselected package zptty-4.19.57-armv7-fpga. (Reading database ... 94220 files and directories currently installed.) -Preparing to unpack zptty-4.14.123-armv7-fpga_1.0.0-1_armhf.deb ... -Unpacking zptty-4.14.123-armv7-fpga (1.0.0-1) ... -Setting up zptty-4.14.123-armv7-fpga (1.0.0-1) ... +Preparing to unpack zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb ... +Unpacking zptty-4.19.57-armv7-fpga (1.0.0-1) ... +Setting up zptty-4.19.57-armv7-fpga (1.0.0-1) ... ``` #### Install dtbocfg control package diff --git a/doc/install/zynq-pynqz1.md b/doc/install/zynq-pynqz1.md index 3df630e..68d317e 100644 --- a/doc/install/zynq-pynqz1.md +++ b/doc/install/zynq-pynqz1.md @@ -19,7 +19,7 @@ shell$ git lfs pull - devicetree-4.19.57-zynq-pynqz1.dtb : Linux Device Tree Blob - devicetree-4.19.57-zynq-pynqz1.dts : Linux Device Tree Source + examples/ : Example Programs - * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) + * debian10-rootfs-vanilla.tgz : Debian10 Root File System (use Git LFS) * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) @@ -38,7 +38,7 @@ shell$ git lfs pull shell# mount /dev/sdc1 /mnt/usb1 shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/zynq-pynqz1/boot/* /mnt/usb1 -shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 +shell# tar xfz debian10-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/zynq-zybo-z7.md b/doc/install/zynq-zybo-z7.md index e040e9e..f5fbbe1 100644 --- a/doc/install/zynq-zybo-z7.md +++ b/doc/install/zynq-zybo-z7.md @@ -18,7 +18,7 @@ shell$ git lfs pull - vmlinuz-4.19.57-armv7-fpga : Linux Kernel Image (use Git LFS) - devicetree-4.19.57-zynq-zybo-z7.dtb : Linux Device Tree Blob - devicetree-4.19.57-zynq-zybo-z7.dts : Linux Device Tree Source - * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) + * debian10-rootfs-vanilla.tgz : Debian10 Root File System (use Git LFS) * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) @@ -37,7 +37,7 @@ shell$ git lfs pull shell# mount /dev/sdc1 /mnt/usb1 shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/zynq-zybo-z7/boot/* /mnt/usb1 -shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 +shell# tar xfz debian10-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/zynq-zybo.md b/doc/install/zynq-zybo.md index ff0c082..2fc7620 100644 --- a/doc/install/zynq-zybo.md +++ b/doc/install/zynq-zybo.md @@ -20,7 +20,7 @@ shell$ git lfs pull - devicetree-4.19.57-zynq-zybo.dtb : Linux Device Tree Blob - devicetree-4.19.57-zynq-zybo.dts : Linux Device Tree Source + examples/ : Example Programs - * debian9-rootfs-vanilla.tgz : Debian9 Root File System (use Git LFS) + * debian10-rootfs-vanilla.tgz : Debian10 Root File System (use Git LFS) * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) @@ -39,7 +39,7 @@ shell$ git lfs pull shell# mount /dev/sdc1 /mnt/usb1 shell# mount /dev/sdc2 /mnt/usb2 shell# cp target/zynq-zybo/boot/* /mnt/usb1 -shell# tar xfz debian9-rootfs-vanilla.tgz -C /mnt/usb2 +shell# tar xfz debian10-rootfs-vanilla.tgz -C /mnt/usb2 shell# mkdir /mnt/usb2/home/fpga/debian shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian From a814ad821b6c7e5d4715c60565b87f70b1b5fd0d Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Sun, 14 Jul 2019 00:04:20 +0900 Subject: [PATCH 22/24] [update] documents for install v1.0.0-rc1 --- doc/install/de0-nano-soc.md | 2 +- doc/install/de10-nano.md | 2 +- doc/install/zynq-pynqz1.md | 2 +- doc/install/zynq-zybo-de0-nano-soc.md | 2 +- doc/install/zynq-zybo-z7.md | 2 +- doc/install/zynq-zybo.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/install/de0-nano-soc.md b/doc/install/de0-nano-soc.md index a4f4b26..61a8636 100644 --- a/doc/install/de0-nano-soc.md +++ b/doc/install/de0-nano-soc.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` diff --git a/doc/install/de10-nano.md b/doc/install/de10-nano.md index 58a4641..1e1b0ff 100644 --- a/doc/install/de10-nano.md +++ b/doc/install/de10-nano.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` diff --git a/doc/install/zynq-pynqz1.md b/doc/install/zynq-pynqz1.md index 68d317e..ce92278 100644 --- a/doc/install/zynq-pynqz1.md +++ b/doc/install/zynq-pynqz1.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` diff --git a/doc/install/zynq-zybo-de0-nano-soc.md b/doc/install/zynq-zybo-de0-nano-soc.md index fdbc48e..6ac21ec 100644 --- a/doc/install/zynq-zybo-de0-nano-soc.md +++ b/doc/install/zynq-zybo-de0-nano-soc.md @@ -5,7 +5,7 @@ It corresponds to boot of both ZYBO and DE0-Nano-SoC in one SD-Card. #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` diff --git a/doc/install/zynq-zybo-z7.md b/doc/install/zynq-zybo-z7.md index f5fbbe1..2775471 100644 --- a/doc/install/zynq-zybo-z7.md +++ b/doc/install/zynq-zybo-z7.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` diff --git a/doc/install/zynq-zybo.md b/doc/install/zynq-zybo.md index 2fc7620..c925dce 100644 --- a/doc/install/zynq-zybo.md +++ b/doc/install/zynq-zybo.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` From 1d7b2221f8e379c5c0169528ff9b593156e4a34a Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Mon, 15 Jul 2019 18:01:36 +0900 Subject: [PATCH 23/24] [update] dtbocfg 0.0.7 -> 0.0.8 --- doc/build/device-drivers.md | 6 +++--- doc/install/device-drivers.md | 8 ++++---- dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb | 3 --- dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb | 3 +++ 4 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb create mode 100644 dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb diff --git a/doc/build/device-drivers.md b/doc/build/device-drivers.md index 404ae8c..c46ba4c 100644 --- a/doc/build/device-drivers.md +++ b/doc/build/device-drivers.md @@ -1,11 +1,11 @@ ### Build Device Drivers and Services Package -#### dtbocfg-4.19.57-armv7-fpga_0.0.6-1_armhf.deb +#### dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb ##### Download repository ```console -shell$ git clone --recursive --depth=1 -b v0.0.7 git://github.com/ikwzm/dtbocfg-kmod-dpkg +shell$ git clone --recursive --depth=1 -b v0.0.8 git://github.com/ikwzm/dtbocfg-kmod-dpkg shell$ cd dtbocfg-kmod-dpkg ``` ##### Cross Compile for linux-4.19.57-armv7-fpga @@ -15,7 +15,7 @@ shell$ sudo debian/rules arch=arm deb_arch=armhf kernel_release=4.19.57-armv7-fp : : : -shell$ file ../dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb +shell$ file ../dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb ../dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb: Debian binary package (format 2.0) ``` diff --git a/doc/install/device-drivers.md b/doc/install/device-drivers.md index 74db7f9..abe08fe 100644 --- a/doc/install/device-drivers.md +++ b/doc/install/device-drivers.md @@ -34,12 +34,12 @@ Setting up linux-image-4.14.123-armv7-fpga (4.14.123-armv7-fpga-1) ... ```console fpga@debian-fpga:~$ cd /home/fpga/debian -fpga@debian-fpga:~/debian$ sudo dpkg -i dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb +fpga@debian-fpga:~/debian$ sudo dpkg -i dtbocfg-4.14.123-armv7-fpga_0.0.8-1_armhf.deb Selecting previously unselected package dtbocfg-4.14.123-armv7-fpga. (Reading database ... 94204 files and directories currently installed.) -Preparing to unpack dtbocfg-4.14.123-armv7-fpga_0.0.6-1_armhf.deb ... -Unpacking dtbocfg-4.14.123-armv7-fpga (0.0.6-1) ... -Setting up dtbocfg-4.14.123-armv7-fpga (0.0.6-1) ... +Preparing to unpack dtbocfg-4.14.123-armv7-fpga_0.0.8-1_armhf.deb ... +Unpacking dtbocfg-4.14.123-armv7-fpga (0.0.8-1) ... +Setting up dtbocfg-4.14.123-armv7-fpga (0.0.8-1) ... ``` #### Install fclkcfg kernel module package diff --git a/dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb b/dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb deleted file mode 100644 index ab746d7..0000000 --- a/dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:47c49f48b15adbed39cc9f131526e0a1af2c44ba94f28399b28aed048a5a5e6c -size 28528 diff --git a/dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb b/dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb new file mode 100644 index 0000000..f97f44b --- /dev/null +++ b/dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d090e72b365826d21dbf18097561a67c0e74f9f278227c31e3b13b889e352d67 +size 28348 From 0c14ca1a5f0dff5ca6db6aa95bde5ef4a75dde76 Mon Sep 17 00:00:00 2001 From: Ichiro Kawazome Date: Tue, 16 Jul 2019 07:48:13 +0900 Subject: [PATCH 24/24] [update] documents for install v1.0.0 --- doc/install/de0-nano-soc.md | 6 +++--- doc/install/de10-nano.md | 6 +++--- doc/install/zynq-pynqz1.md | 6 +++--- doc/install/zynq-zybo-de0-nano-soc.md | 10 +++++----- doc/install/zynq-zybo-z7.md | 6 +++--- doc/install/zynq-zybo.md | 6 +++--- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/doc/install/de0-nano-soc.md b/doc/install/de0-nano-soc.md index 61a8636..27a0897 100644 --- a/doc/install/de0-nano-soc.md +++ b/doc/install/de0-nano-soc.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -25,7 +25,7 @@ shell$ git lfs pull * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) @@ -47,7 +47,7 @@ shell# mkdir /mnt shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/de10-nano.md b/doc/install/de10-nano.md index 1e1b0ff..c32a620 100644 --- a/doc/install/de10-nano.md +++ b/doc/install/de10-nano.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -23,7 +23,7 @@ shell$ git lfs pull * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) @@ -45,7 +45,7 @@ shell# mkdir /mnt shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/zynq-pynqz1.md b/doc/install/zynq-pynqz1.md index ce92278..4d0216d 100644 --- a/doc/install/zynq-pynqz1.md +++ b/doc/install/zynq-pynqz1.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -23,7 +23,7 @@ shell$ git lfs pull * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) @@ -43,7 +43,7 @@ shell# mkdir /mnt shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/zynq-zybo-de0-nano-soc.md b/doc/install/zynq-zybo-de0-nano-soc.md index 6ac21ec..895da0f 100644 --- a/doc/install/zynq-zybo-de0-nano-soc.md +++ b/doc/install/zynq-zybo-de0-nano-soc.md @@ -5,7 +5,7 @@ It corresponds to boot of both ZYBO and DE0-Nano-SoC in one SD-Card. #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -59,9 +59,9 @@ cp ../de0-nano-soc/u-boot/u-boot.img u-boot/u-boot.img * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.19.57-armv7-fpga_0.0.6-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) - * udmabuf-4.19.57-armv7-fpga_1.2.3-1_armhf.deb : udmabuf Kernel Module (use Git LFS) + * udmabuf-4.19.57-armv7-fpga_1.4.2-1_armhf.deb : udmabuf Kernel Module (use Git LFS) * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) #### Format SD-Card @@ -81,9 +81,9 @@ shell# mkdir /mnt/u shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.6-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian -shell# cp udmabuf-4.19.57-armv7-fpga_1.2.3-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# umount mnt/usb1 shell# umount mnt/usb2 diff --git a/doc/install/zynq-zybo-z7.md b/doc/install/zynq-zybo-z7.md index 2775471..1f2f59b 100644 --- a/doc/install/zynq-zybo-z7.md +++ b/doc/install/zynq-zybo-z7.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -22,7 +22,7 @@ shell$ git lfs pull * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) @@ -42,7 +42,7 @@ shell# mkdir /mnt shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian diff --git a/doc/install/zynq-zybo.md b/doc/install/zynq-zybo.md index c925dce..f3ba453 100644 --- a/doc/install/zynq-zybo.md +++ b/doc/install/zynq-zybo.md @@ -3,7 +3,7 @@ #### Downlowd from github ```console -shell$ git clone --depth=1 --branch v1.0.0-rc1 git://github.com/ikwzm/FPGA-SoC-Linux +shell$ git clone --depth=1 --branch v1.0.0 git://github.com/ikwzm/FPGA-SoC-Linux shell$ cd FPGA-SoC-Linux shell$ git lfs pull ``` @@ -24,7 +24,7 @@ shell$ git lfs pull * linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Image Package (use Git LFS) * linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb : Linux Headers Package (use Git LFS) * dtbocfg-ctrl_0.0.5-1_all.deb : dtbocfg Control Pakcage (use Git LFS) - * dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) + * dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb : dtbocfg Kernel Module (use Git LFS) * fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb : fclkcfg Kernel Module (use Git LFS) * udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb : udmabuf Kernel Module (use Git LFS) * zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb : zptty Kernel Module (use Git LFS) @@ -44,7 +44,7 @@ shell# mkdir /mnt shell# cp linux-image-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp linux-headers-4.19.57-armv7-fpga_4.19.57-armv7-fpga-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp dtbocfg-ctrl_0.0.5-1_all.deb /mnt/usb2/home/fpga/debian -shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.7-1_armhf.deb /mnt/usb2/home/fpga/debian +shell# cp dtbocfg-4.19.57-armv7-fpga_0.0.8-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp fclkcfg-4.19.57-armv7-fpga_1.1.0-1_armhf.deb /mnt/usb2/home/fpga/debian shell# cp udmabuf-4.19.57-armv7-fpga_1.4.2-0_armhf.deb /mnt/usb2/home/fpga/debian shell# cp zptty-4.19.57-armv7-fpga_1.0.0-1_armhf.deb /mnt/usb2/home/fpga/debian