pzw Posted March 16, 2019 Posted March 16, 2019 Not sure if this is the right forum, or it should be under board bringup.... I have a few Duo2 boards running with the FriendlyElec image, but my OrangePi boards all run Armbian... I do prefer Armbian :-) . Playing around a little I can get the Nanopi Neo Air image running, but not with the wired ethernet. (My boards reside on my own design with a ethernet jack, which works perfect with the FE/FA image) I have the Armbian build environment running in a VM, and can compile my own kernel etc. ButI need a few pointers how to get the right board config in the image/kernel.... Or... Does someone already have a build setup running for the Duo2, who is willing to share it? Thanks in advance for your time..! Paul
pzw Posted March 24, 2019 Author Posted March 24, 2019 I played around a little bit with the build system and got a working config for a Duo2. I made an image, which worked fine. But... After the standard compile process my new / added files are gone... I guess that's because the build system updates the files. Still strange that the image building went fine! Anyway, I will make the same files again, and keep a few copies... How do I prevent this from happening again? Once I have verified that everything works fine, I will posts the files here too. (I tried opening a thread in the board bringup forum, but I can't?)
pzw Posted March 25, 2019 Author Posted March 25, 2019 This is what I see when I run dmesg: [ 9.119901] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator [ 9.119929] cpu cpu0: _opp_add: OPP not supported by regulators (1056000000) [ 9.120409] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator [ 9.120445] cpu cpu0: _opp_add: OPP not supported by regulators (1104000000) [ 9.120645] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator [ 9.120659] cpu cpu0: _opp_add: OPP not supported by regulators (1152000000) [ 9.120859] core: _opp_supported_by_regulators: OPP minuV: 1320000 maxuV: 1320000, not supported by regulator [ 9.120874] cpu cpu0: _opp_add: OPP not supported by regulators (1200000000) [ 9.121078] core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000, not supported by regulator [ 9.121095] cpu cpu0: _opp_add: OPP not supported by regulators (1224000000) [ 9.121256] core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000, not supported by regulator [ 9.121282] cpu cpu0: _opp_add: OPP not supported by regulators (1248000000) [ 9.121545] core: _opp_supported_by_regulators: OPP minuV: 1340000 maxuV: 1340000, not supported by regulator [ 9.121566] cpu cpu0: _opp_add: OPP not supported by regulators (1296000000) [ 9.121848] core: _opp_supported_by_regulators: OPP minuV: 1400000 maxuV: 1400000, not supported by regulator [ 9.121865] cpu cpu0: _opp_add: OPP not supported by regulators (1344000000) [ 9.122055] core: _opp_supported_by_regulators: OPP minuV: 1400000 maxuV: 1400000, not supported by regulator [ 9.122088] cpu cpu0: _opp_add: OPP not supported by regulators (1368000000) I have created a .dts / .dto without these setpoints, so it looks like it is not being loaded. It is named sun8i-h3-nanopi-duo2.dto . The contents are: (of the .dts) Spoiler /dts-v1/; / { interrupt-parent = <0x1>; #address-cells = <0x1>; #size-cells = <0x1>; model = "FriendlyARM NanoPi DUO2"; compatible = "friendlyarm,nanopi-duo", "allwinner,sun8i-h3"; chosen { #address-cells = <0x1>; #size-cells = <0x1>; ranges; stdout-path = "serial0:115200n8"; framebuffer-hdmi { compatible = "allwinner,simple-framebuffer", "simple-framebuffer"; allwinner,pipeline = "mixer0-lcd0-hdmi"; clocks = <0x2 0x6 0x3 0x66 0x3 0x6f>; status = "disabled"; }; framebuffer-tve { compatible = "allwinner,simple-framebuffer", "simple-framebuffer"; allwinner,pipeline = "mixer1-lcd1-tve"; clocks = <0x2 0x7 0x3 0x67>; status = "disabled"; }; }; clocks { #address-cells = <0x1>; #size-cells = <0x1>; ranges; osc24M_clk { #clock-cells = <0x0>; compatible = "fixed-clock"; clock-frequency = <0x16e3600>; clock-output-names = "osc24M"; phandle = <0xe>; }; osc32k_clk { #clock-cells = <0x0>; compatible = "fixed-clock"; clock-frequency = <0x8000>; clock-output-names = "osc32k"; phandle = <0xf>; }; ext_osc32k_clk { #clock-cells = <0x0>; compatible = "fixed-clock"; clock-frequency = <0x8000>; clock-output-names = "ext_osc32k"; phandle = <0x20>; }; internal-osc-clk { #clock-cells = <0x0>; compatible = "fixed-clock"; clock-frequency = <0xf42400>; clock-accuracy = <0x11e1a300>; clock-output-names = "iosc"; phandle = <0x21>; }; }; opp_table0 { compatible = "operating-points-v2"; opp-shared; phandle = <0x27>; opp@120000000 { opp-hz = <0x0 0x7270e00>; opp-microvolt = <0xfde80 0xfde80 0x13d620>; clock-latency-ns = <0x3b9b0>; }; opp@240000000 { opp-hz = <0x0 0xe4e1c00>; opp-microvolt = <0xfde80 0xfde80 0x13d620>; clock-latency-ns = <0x3b9b0>; }; opp@480000000 { opp-hz = <0x0 0x1c9c3800>; opp-microvolt = <0xfde80 0xfde80 0x13d620>; clock-latency-ns = <0x3b9b0>; }; opp@648000000 { opp-hz = <0x0 0x269fb200>; opp-microvolt = <0xfde80 0xfde80 0x13d620>; clock-latency-ns = <0x3b9b0>; }; opp@816000000 { opp-hz = <0x0 0x30a32c00>; opp-microvolt = <0x10c8e0 0x10c8e0 0x13d620>; clock-latency-ns = <0x3b9b0>; }; opp@960000000 { opp-hz = <0x0 0x39387000>; opp-microvolt = <0x124f80 0x124f80 0x13d620>; clock-latency-ns = <0x3b9b0>; }; opp@1008000000 { opp-hz = <0x0 0x3c14dc00>; opp-microvolt = <0x124f80 0x124f80 0x13d620>; clock-latency-ns = <0x3b9b0>; }; }; display-engine { compatible = "allwinner,sun8i-h3-display-engine"; allwinner,pipelines = <0x4>; status = "disabled"; phandle = <0x2c>; }; soc { compatible = "simple-bus"; #address-cells = <0x1>; #size-cells = <0x1>; ranges; clock@1000000 { reg = <0x1000000 0x100000>; clocks = <0x3 0x65 0x3 0x30>; clock-names = "mod", "bus"; resets = <0x3 0x22>; #clock-cells = <0x1>; #reset-cells = <0x1>; compatible = "allwinner,sun8i-h3-de2-clk"; phandle = <0x2>; }; mixer@1100000 { compatible = "allwinner,sun8i-h3-de2-mixer-0"; reg = <0x1100000 0x100000>; clocks = <0x2 0x0 0x2 0x6>; clock-names = "bus", "mod"; resets = <0x2 0x0>; phandle = <0x4>; ports { #address-cells = <0x1>; #size-cells = <0x0>; port@1 { reg = <0x1>; phandle = <0x2d>; endpoint { remote-endpoint = <0x5>; phandle = <0x6>; }; }; }; }; syscon@1c00000 { compatible = "allwinner,sun8i-h3-system-controller", "syscon"; reg = <0x1c00000 0x1000>; phandle = <0x10>; }; dma-controller@1c02000 { compatible = "allwinner,sun8i-h3-dma"; reg = <0x1c02000 0x1000>; interrupts = <0x0 0x32 0x4>; clocks = <0x3 0x15>; resets = <0x3 0x6>; #dma-cells = <0x1>; phandle = <0x13>; }; lcd-controller@1c0c000 { compatible = "allwinner,sun8i-h3-tcon-tv", "allwinner,sun8i-a83t-tcon-tv"; reg = <0x1c0c000 0x1000>; interrupts = <0x0 0x56 0x4>; clocks = <0x3 0x2a 0x3 0x66>; clock-names = "ahb", "tcon-ch1"; resets = <0x3 0x1b>; reset-names = "lcd"; phandle = <0x2e>; ports { #address-cells = <0x1>; #size-cells = <0x0>; port@0 { reg = <0x0>; phandle = <0x2f>; endpoint { remote-endpoint = <0x6>; phandle = <0x5>; }; }; port@1 { #address-cells = <0x1>; #size-cells = <0x0>; reg = <0x1>; phandle = <0x30>; endpoint@1 { reg = <0x1>; remote-endpoint = <0x7>; phandle = <0x1e>; }; }; }; }; mmc@1c0f000 { reg = <0x1c0f000 0x1000>; pinctrl-names = "default"; pinctrl-0 = <0x8>; resets = <0x3 0x7>; reset-names = "ahb"; interrupts = <0x0 0x3c 0x4>; status = "okay"; #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun7i-a20-mmc"; clocks = <0x3 0x16 0x3 0x47 0x3 0x49 0x3 0x48>; clock-names = "ahb", "mmc", "output", "sample"; bus-width = <0x4>; cd-gpios = <0x9 0x5 0x6 0x1>; vmmc-supply = <0xa>; phandle = <0x31>; }; mmc@1c10000 { reg = <0x1c10000 0x1000>; pinctrl-names = "default"; pinctrl-0 = <0xb>; resets = <0x3 0x8>; reset-names = "ahb"; interrupts = <0x0 0x3d 0x4>; status = "disabled"; #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun7i-a20-mmc"; clocks = <0x3 0x17 0x3 0x4a 0x3 0x4c 0x3 0x4b>; clock-names = "ahb", "mmc", "output", "sample"; phandle = <0x32>; }; mmc@1c11000 { reg = <0x1c11000 0x1000>; resets = <0x3 0x9>; reset-names = "ahb"; interrupts = <0x0 0x3e 0x4>; status = "okay"; #address-cells = <0x1>; #size-cells = <0x0>; compatible = "allwinner,sun7i-a20-mmc"; clocks = <0x3 0x18 0x3 0x4d 0x3 0x4f 0x3 0x4e>; clock-names = "ahb", "mmc", "output", "sample"; pinctrl-names = "default"; pinctrl-0 = <0xc>; vmmc-supply = <0xa>; bus-width = <0x8>; non-removable; cap-mmc-hw-reset; phandle = <0x33>; }; usb@1c19000 { compatible = "allwinner,sun8i-h3-musb"; reg = <0x1c19000 0x400>; clocks = <0x3 0x20>; resets = <0x3 0x11>; interrupts = <0x0 0x47 0x4>; interrupt-names = "mc"; phys = <0xd 0x0>; phy-names = "usb"; extcon = <0xd 0x0>; status = "okay"; dr_mode = "peripheral"; phandle = <0x34>; }; eeprom@01c14000 { compatible = "allwinner,sun8i-h3-sid"; reg = <0x1c14000 0x400>; phandle = <0x35>; }; phy@1c19400 { compatible = "allwinner,sun8i-h3-usb-phy"; reg = <0x1c19400 0x2c 0x1c1a800 0x4 0x1c1b800 0x4 0x1c1c800 0x4 0x1c1d800 0x4>; reg-names = "phy_ctrl", "pmu0", "pmu1", "pmu2", "pmu3"; clocks = <0x3 0x58 0x3 0x59 0x3 0x5a 0x3 0x5b>; clock-names = "usb0_phy", "usb1_phy", "usb2_phy", "usb3_phy"; resets = <0x3 0x0 0x3 0x1 0x3 0x2 0x3 0x3>; reset-names = "usb0_reset", "usb1_reset", "usb2_reset", "usb3_reset"; status = "okay"; #phy-cells = <0x1>; usb0_id_det-gpios = <0x9 0x6 0xc 0x0>; phandle = <0xd>; }; usb@1c1a000 { compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; reg = <0x1c1a000 0x100>; interrupts = <0x0 0x48 0x4>; clocks = <0x3 0x21 0x3 0x25>; resets = <0x3 0x12 0x3 0x16>; status = "okay"; phandle = <0x36>; }; usb@1c1a400 { compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; reg = <0x1c1a400 0x100>; interrupts = <0x0 0x49 0x4>; clocks = <0x3 0x21 0x3 0x25 0x3 0x5c>; resets = <0x3 0x12 0x3 0x16>; status = "okay"; phandle = <0x37>; }; usb@1c1b000 { compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; reg = <0x1c1b000 0x100>; interrupts = <0x0 0x4a 0x4>; clocks = <0x3 0x22 0x3 0x26>; resets = <0x3 0x13 0x3 0x17>; phys = <0xd 0x1>; phy-names = "usb"; status = "disabled"; phandle = <0x38>; }; usb@1c1b400 { compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; reg = <0x1c1b400 0x100>; interrupts = <0x0 0x4b 0x4>; clocks = <0x3 0x22 0x3 0x26 0x3 0x5d>; resets = <0x3 0x13 0x3 0x17>; phys = <0xd 0x1>; phy-names = "usb"; status = "disabled"; phandle = <0x39>; }; usb@1c1c000 { compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; reg = <0x1c1c000 0x100>; interrupts = <0x0 0x4c 0x4>; clocks = <0x3 0x23 0x3 0x27>; resets = <0x3 0x14 0x3 0x18>; phys = <0xd 0x2>; phy-names = "usb"; status = "disabled"; phandle = <0x3a>; }; usb@1c1c400 { compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; reg = <0x1c1c400 0x100>; interrupts = <0x0 0x4d 0x4>; clocks = <0x3 0x23 0x3 0x27 0x3 0x5e>; resets = <0x3 0x14 0x3 0x18>; phys = <0xd 0x2>; phy-names = "usb"; status = "disabled"; phandle = <0x3b>; }; usb@1c1d000 { compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; reg = <0x1c1d000 0x100>; interrupts = <0x0 0x4e 0x4>; clocks = <0x3 0x24 0x3 0x28>; resets = <0x3 0x15 0x3 0x19>; phys = <0xd 0x3>; phy-names = "usb"; status = "okay"; phandle = <0x3c>; }; usb@1c1d400 { compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; reg = <0x1c1d400 0x100>; interrupts = <0x0 0x4f 0x4>; clocks = <0x3 0x24 0x3 0x28 0x3 0x5f>; resets = <0x3 0x15 0x3 0x19>; phys = <0xd 0x3>; phy-names = "usb"; status = "okay"; phandle = <0x3d>; }; clock@1c20000 { reg = <0x1c20000 0x400>; clocks = <0xe 0xf>; clock-names = "hosc", "losc"; #clock-cells = <0x1>; #reset-cells = <0x1>; compatible = "allwinner,sun8i-h3-ccu"; phandle = <0x3>; }; pinctrl@1c20800 { reg = <0x1c20800 0x400>; interrupts = <0x0 0xb 0x4 0x0 0x11 0x4>; clocks = <0x3 0x36 0xe 0xf>; clock-names = "apb", "hosc", "losc"; gpio-controller; #gpio-cells = <0x3>; interrupt-controller; #interrupt-cells = <0x3>; compatible = "allwinner,sun8i-h3-pinctrl"; phandle = <0x9>; csi { pins = "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11"; function = "csi"; phandle = <0x1f>; }; emac0 { pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD7", "PD8", "PD9", "PD10", "PD12", "PD13", "PD15", "PD16", "PD17"; function = "emac"; drive-strength = <0x28>; phandle = <0x3e>; }; i2c0 { pins = "PA11", "PA12"; function = "i2c0"; phandle = <0x1a>; }; i2c1 { pins = "PA18", "PA19"; function = "i2c1"; phandle = <0x1b>; }; i2c2 { pins = "PE12", "PE13"; function = "i2c2"; phandle = <0x1c>; }; i2s0 { pins = "PA18", "PA19", "PA20", "PA21"; function = "i2s0"; phandle = <0x3f>; }; i2s1 { pins = "PG10", "PG11", "PG12", "PG13"; function = "i2s1"; phandle = <0x40>; }; mmc0 { pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; function = "mmc0"; drive-strength = <0x1e>; bias-pull-up; phandle = <0x8>; }; mmc1 { pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; function = "mmc1"; drive-strength = <0x1e>; bias-pull-up; phandle = <0xb>; }; mmc2_8bit { pins = "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; function = "mmc2"; drive-strength = <0x28>; bias-pull-up; phandle = <0xc>; }; spdif { pins = "PA17"; function = "spdif"; phandle = <0x41>; }; spi0 { pins = "PC0", "PC1", "PC2", "PC3"; function = "spi0"; phandle = <0x14>; }; spi1 { pins = "PA15", "PA16", "PA14", "PA13"; function = "spi1"; phandle = <0x15>; }; uart0 { pins = "PA4", "PA5"; function = "uart0"; phandle = <0x19>; }; uart1 { pins = "PG6", "PG7"; function = "uart1"; phandle = <0x42>; }; uart1_rts_cts { pins = "PG8", "PG9"; function = "uart1"; phandle = <0x43>; }; uart2 { pins = "PA0", "PA1"; function = "uart2"; phandle = <0x44>; }; uart3 { pins = "PA13", "PA14"; function = "uart3"; phandle = <0x45>; }; uart3_rts_cts { pins = "PA15", "PA16"; function = "uart3"; phandle = <0x46>; }; led_pins { pins = "PA10"; function = "gpio_out"; phandle = <0x28>; }; }; thermal-sensor@1c25000 { reg = <0x1c25000 0x100>; interrupts = <0x0 0x1f 0x4>; clocks = <0x3 0x37 0x3 0x45>; clock-names = "bus", "mod"; resets = <0x3 0x2a>; #io-channel-cells = <0x0>; compatible = "allwinner,sun8i-h3-ths"; #thermal-sensor-cells = <0x0>; phandle = <0x24>; }; timer@1c20c00 { compatible = "allwinner,sun4i-a10-timer"; reg = <0x1c20c00 0xa0>; interrupts = <0x0 0x12 0x4 0x0 0x13 0x4>; clocks = <0xe>; }; ethernet@1c30000 { compatible = "allwinner,sun8i-h3-emac"; syscon = <0x10>; reg = <0x1c30000 0x10000>; interrupts = <0x0 0x52 0x4>; interrupt-names = "macirq"; resets = <0x3 0xc>; reset-names = "stmmaceth"; clocks = <0x3 0x1b>; clock-names = "stmmaceth"; status = "okay"; phy-handle = <0x11>; phy-mode = "mii"; allwinner,leds-active-low; phandle = <0x47>; mdio { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "snps,dwmac-mdio"; phandle = <0x12>; }; mdio-mux { compatible = "allwinner,sun8i-h3-mdio-mux"; #address-cells = <0x1>; #size-cells = <0x0>; mdio-parent-bus = <0x12>; mdio@1 { compatible = "allwinner,sun8i-h3-mdio-internal"; reg = <0x1>; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x48>; ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0x1>; clocks = <0x3 0x43>; resets = <0x3 0x27>; phandle = <0x11>; }; }; mdio@2 { reg = <0x2>; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x49>; }; }; }; spi@1c68000 { compatible = "allwinner,sun8i-h3-spi"; reg = <0x1c68000 0x1000>; interrupts = <0x0 0x41 0x4>; clocks = <0x3 0x1e 0x3 0x52>; clock-names = "ahb", "mod"; dmas = <0x13 0x17 0x13 0x17>; dma-names = "rx", "tx"; pinctrl-names = "default"; pinctrl-0 = <0x14>; resets = <0x3 0xf>; status = "disabled"; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x4a>; }; spi@1c69000 { compatible = "allwinner,sun8i-h3-spi"; reg = <0x1c69000 0x1000>; interrupts = <0x0 0x42 0x4>; clocks = <0x3 0x1f 0x3 0x53>; clock-names = "ahb", "mod"; dmas = <0x13 0x18 0x13 0x18>; dma-names = "rx", "tx"; pinctrl-names = "default"; pinctrl-0 = <0x15>; resets = <0x3 0x10>; status = "disabled"; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x4b>; }; watchdog@1c20ca0 { compatible = "allwinner,sun6i-a31-wdt"; reg = <0x1c20ca0 0x20>; interrupts = <0x0 0x19 0x4>; phandle = <0x4c>; }; spdif@1c21000 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-spdif"; reg = <0x1c21000 0x400>; interrupts = <0x0 0xc 0x4>; clocks = <0x3 0x35 0x3 0x57>; resets = <0x3 0x29>; clock-names = "apb", "spdif"; dmas = <0x13 0x2>; dma-names = "tx"; status = "disabled"; phandle = <0x4d>; }; pwm@1c21400 { compatible = "allwinner,sun8i-h3-pwm"; reg = <0x1c21400 0x8>; clocks = <0xe>; #pwm-cells = <0x3>; status = "disabled"; phandle = <0x4e>; }; i2s@1c22000 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-i2s"; reg = <0x1c22000 0x400>; interrupts = <0x0 0xd 0x4>; clocks = <0x3 0x38 0x3 0x54>; clock-names = "apb", "mod"; dmas = <0x13 0x3 0x13 0x3>; resets = <0x3 0x2b>; dma-names = "rx", "tx"; status = "disabled"; phandle = <0x4f>; }; i2s@1c22400 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-i2s"; reg = <0x1c22400 0x400>; interrupts = <0x0 0xe 0x4>; clocks = <0x3 0x39 0x3 0x55>; clock-names = "apb", "mod"; dmas = <0x13 0x4 0x13 0x4>; resets = <0x3 0x2c>; dma-names = "rx", "tx"; status = "disabled"; phandle = <0x50>; }; i2s@1c22800 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-i2s"; reg = <0x1c22800 0x400>; interrupts = <0x0 0xf 0x4>; clocks = <0x3 0x3a 0x3 0x56>; clock-names = "apb", "mod"; dmas = <0x13 0x1b>; resets = <0x3 0x2d>; dma-names = "tx"; phandle = <0x17>; }; sound { compatible = "simple-audio-card"; simple-audio-card,format = "i2s"; simple-audio-card,name = "allwinner,hdmi"; simple-audio-card,mclk-fs = <0x100>; phandle = <0x51>; simple-audio-card,codec { sound-dai = <0x16>; }; simple-audio-card,cpu { sound-dai = <0x17>; }; }; codec@1c22c00 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-codec"; reg = <0x1c22c00 0x400>; interrupts = <0x0 0x1d 0x4>; clocks = <0x3 0x34 0x3 0x6d>; clock-names = "apb", "codec"; resets = <0x3 0x28>; dmas = <0x13 0xf 0x13 0xf>; dma-names = "rx", "tx"; allwinner,codec-analog-controls = <0x18>; status = "disabled"; phandle = <0x52>; }; serial@1c28000 { compatible = "snps,dw-apb-uart"; reg = <0x1c28000 0x400>; interrupts = <0x0 0x0 0x4>; reg-shift = <0x2>; reg-io-width = <0x4>; clocks = <0x3 0x3e>; resets = <0x3 0x31>; dmas = <0x13 0x6 0x13 0x6>; dma-names = "rx", "tx"; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x19>; phandle = <0x53>; }; serial@1c28400 { compatible = "snps,dw-apb-uart"; reg = <0x1c28400 0x400>; interrupts = <0x0 0x1 0x4>; reg-shift = <0x2>; reg-io-width = <0x4>; clocks = <0x3 0x3f>; resets = <0x3 0x32>; dmas = <0x13 0x7 0x13 0x7>; dma-names = "rx", "tx"; status = "disabled"; phandle = <0x54>; }; serial@1c28800 { compatible = "snps,dw-apb-uart"; reg = <0x1c28800 0x400>; interrupts = <0x0 0x2 0x4>; reg-shift = <0x2>; reg-io-width = <0x4>; clocks = <0x3 0x40>; resets = <0x3 0x33>; dmas = <0x13 0x8 0x13 0x8>; dma-names = "rx", "tx"; status = "disabled"; phandle = <0x55>; }; serial@1c28c00 { compatible = "snps,dw-apb-uart"; reg = <0x1c28c00 0x400>; interrupts = <0x0 0x3 0x4>; reg-shift = <0x2>; reg-io-width = <0x4>; clocks = <0x3 0x41>; resets = <0x3 0x34>; dmas = <0x13 0x9 0x13 0x9>; dma-names = "rx", "tx"; status = "disabled"; phandle = <0x56>; }; i2c@1c2ac00 { compatible = "allwinner,sun6i-a31-i2c"; reg = <0x1c2ac00 0x400>; interrupts = <0x0 0x6 0x4>; clocks = <0x3 0x3b>; resets = <0x3 0x2e>; pinctrl-names = "default"; pinctrl-0 = <0x1a>; status = "disabled"; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x57>; }; i2c@1c2b000 { compatible = "allwinner,sun6i-a31-i2c"; reg = <0x1c2b000 0x400>; interrupts = <0x0 0x7 0x4>; clocks = <0x3 0x3c>; resets = <0x3 0x2f>; pinctrl-names = "default"; pinctrl-0 = <0x1b>; status = "disabled"; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x58>; }; i2c@1c2b400 { compatible = "allwinner,sun6i-a31-i2c"; reg = <0x1c2b400 0x400>; interrupts = <0x0 0x8 0x4>; clocks = <0x3 0x3d>; resets = <0x3 0x30>; pinctrl-names = "default"; pinctrl-0 = <0x1c>; status = "disabled"; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x59>; }; interrupt-controller@1c81000 { compatible = "arm,gic-400"; reg = <0x1c81000 0x1000 0x1c82000 0x2000 0x1c84000 0x2000 0x1c86000 0x2000>; interrupt-controller; #interrupt-cells = <0x3>; interrupts = <0x1 0x9 0xf04>; phandle = <0x1>; }; hdmi@1ee0000 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-dw-hdmi", "allwinner,sun8i-a83t-dw-hdmi"; reg = <0x1ee0000 0x10000>; reg-io-width = <0x1>; interrupts = <0x0 0x58 0x4>; clocks = <0x3 0x2f 0x3 0x70 0x3 0x6f>; clock-names = "iahb", "isfr", "tmds"; resets = <0x3 0x21>; reset-names = "ctrl"; phys = <0x1d>; phy-names = "hdmi-phy"; status = "disabled"; phandle = <0x16>; ports { #address-cells = <0x1>; #size-cells = <0x0>; port@0 { reg = <0x0>; phandle = <0x5a>; endpoint { remote-endpoint = <0x1e>; phandle = <0x7>; }; }; port@1 { reg = <0x1>; phandle = <0x5b>; }; }; }; hdmi-phy@1ef0000 { compatible = "allwinner,sun8i-h3-hdmi-phy"; reg = <0x1ef0000 0x10000>; clocks = <0x3 0x2f 0x3 0x70 0x3 0x6>; clock-names = "bus", "mod", "pll-0"; resets = <0x3 0x20>; reset-names = "phy"; #phy-cells = <0x0>; phandle = <0x1d>; }; camera@1cb0000 { compatible = "allwinner,sun8i-h3-csi", "allwinner,sun6i-a31-csi"; reg = <0x1cb0000 0x1000>; interrupts = <0x0 0x54 0x4>; clocks = <0x3 0x2d 0x3 0x6a 0x3 0x62>; clock-names = "bus", "mod", "ram"; resets = <0x3 0x1e>; pinctrl-names = "default"; pinctrl-0 = <0x1f>; status = "disabled"; phandle = <0x5c>; }; rtc@1f00000 { compatible = "allwinner,sun6i-a31-rtc"; reg = <0x1f00000 0x54>; interrupts = <0x0 0x28 0x4 0x0 0x29 0x4>; clock-output-names = "rtc-osc32k", "rtc-osc32k-out"; clocks = <0x20>; #clock-cells = <0x1>; phandle = <0x5d>; }; clock@1f01400 { compatible = "allwinner,sun8i-h3-r-ccu"; reg = <0x1f01400 0x100>; clocks = <0xe 0xf 0x21 0x3 0x9>; clock-names = "hosc", "losc", "iosc", "pll-periph"; #clock-cells = <0x1>; #reset-cells = <0x1>; phandle = <0x22>; }; codec-analog@1f015c0 { compatible = "allwinner,sun8i-h3-codec-analog"; reg = <0x1f015c0 0x4>; phandle = <0x18>; }; ir@1f02000 { compatible = "allwinner,sun5i-a13-ir"; clocks = <0x22 0x4 0x22 0xb>; clock-names = "apb", "ir"; resets = <0x22 0x0>; interrupts = <0x0 0x25 0x4>; reg = <0x1f02000 0x400>; status = "disabled"; phandle = <0x5e>; }; i2c@1f02400 { compatible = "allwinner,sun6i-a31-i2c"; reg = <0x1f02400 0x400>; interrupts = <0x0 0x2c 0x4>; pinctrl-names = "default"; pinctrl-0 = <0x23>; clocks = <0x22 0x9>; resets = <0x22 0x5>; status = "disabled"; #address-cells = <0x1>; #size-cells = <0x0>; phandle = <0x5f>; }; pinctrl@1f02c00 { compatible = "allwinner,sun8i-h3-r-pinctrl"; reg = <0x1f02c00 0x400>; interrupts = <0x0 0x2d 0x4>; clocks = <0x22 0x3 0xe 0xf>; clock-names = "apb", "hosc", "losc"; gpio-controller; #gpio-cells = <0x3>; interrupt-controller; #interrupt-cells = <0x3>; phandle = <0x2a>; ir { pins = "PL11"; function = "s_cir_rx"; phandle = <0x60>; }; r-i2c { pins = "PL0", "PL1"; function = "s_i2c"; phandle = <0x23>; }; led_pins { pins = "PL10"; function = "gpio_out"; phandle = <0x29>; }; key_pins { pins = "PL3"; function = "gpio_in"; phandle = <0x2b>; }; }; system-control@1c00000 { compatible = "allwinner,sun8i-h3-system-control"; reg = <0x1c00000 0x30>; #address-cells = <0x1>; #size-cells = <0x1>; ranges; sram@1d00000 { compatible = "mmio-sram"; reg = <0x1d00000 0x80000>; #address-cells = <0x1>; #size-cells = <0x1>; ranges = <0x0 0x1d00000 0x80000>; phandle = <0x61>; sram-section@0 { compatible = "allwinner,sun8i-h3-sram-c1", "allwinner,sun4i-a10-sram-c1"; reg = <0x0 0x80000>; phandle = <0x62>; }; }; }; gpu@1c40000 { compatible = "allwinner,sun8i-h3-mali", "arm,mali-400"; reg = <0x1c40000 0x10000>; interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4 0x0 0x65 0x4>; interrupt-names = "gp", "gpmmu", "pp0", "ppmmu0", "pp1", "ppmmu1", "pmu"; clocks = <0x3 0x31 0x3 0x72>; clock-names = "bus", "core"; resets = <0x3 0x23>; assigned-clocks = <0x3 0x72>; assigned-clock-rates = <0x16e36000>; phandle = <0x63>; }; }; thermal-zones { cpu_thermal { polling-delay-passive = <0x14a>; polling-delay = <0x3e8>; thermal-sensors = <0x24 0x0>; phandle = <0x64>; trips { cpu-warm { temperature = <0xfde8>; hysteresis = <0x7d0>; type = "passive"; phandle = <0x25>; }; cpu-very-hot { temperature = <0x15f90>; hysteresis = <0x7d0>; type = "critical"; phandle = <0x65>; }; }; cooling-maps { cpu-warm-limit { trip = <0x25>; cooling-device = <0x26 0xffffffff 0xffffffff>; }; }; }; cpu-thermal { polling-delay-passive = <0xfa>; polling-delay = <0x3e8>; thermal-sensors = <0x24 0x0>; }; }; cpus { #address-cells = <0x1>; #size-cells = <0x0>; cpu@0 { compatible = "arm,cortex-a7"; device_type = "cpu"; reg = <0x0>; clocks = <0x3 0xe>; clock-names = "cpu"; operating-points-v2 = <0x27>; clock-frequency = <0x47868c00>; #cooling-cells = <0x2>; cooling-min-level = <0x0>; cooling-max-level = <0xf>; phandle = <0x26>; }; cpu@1 { compatible = "arm,cortex-a7"; device_type = "cpu"; reg = <0x1>; clocks = <0x3 0xe>; clock-names = "cpu"; operating-points-v2 = <0x27>; #cooling-cells = <0x2>; clock-frequency = <0x47868c00>; }; cpu@2 { compatible = "arm,cortex-a7"; device_type = "cpu"; reg = <0x2>; clocks = <0x3 0xe>; clock-names = "cpu"; operating-points-v2 = <0x27>; #cooling-cells = <0x2>; clock-frequency = <0x47868c00>; }; cpu@3 { compatible = "arm,cortex-a7"; device_type = "cpu"; reg = <0x3>; clocks = <0x3 0xe>; clock-names = "cpu"; operating-points-v2 = <0x27>; #cooling-cells = <0x2>; clock-frequency = <0x47868c00>; }; }; timer { compatible = "arm,armv7-timer"; interrupts = <0x1 0xd 0xf08 0x1 0xe 0xf08 0x1 0xb 0xf08 0x1 0xa 0xf08>; }; ahci-5v { compatible = "regulator-fixed"; regulator-name = "ahci-5v"; regulator-min-microvolt = <0x4c4b40>; regulator-max-microvolt = <0x4c4b40>; regulator-boot-on; enable-active-high; gpio = <0x9 0x1 0x8 0x0>; status = "disabled"; phandle = <0x66>; }; usb0-vbus { compatible = "regulator-fixed"; regulator-name = "usb0-vbus"; regulator-min-microvolt = <0x4c4b40>; regulator-max-microvolt = <0x4c4b40>; enable-active-high; gpio = <0x9 0x1 0x9 0x0>; status = "disabled"; phandle = <0x67>; }; usb1-vbus { compatible = "regulator-fixed"; regulator-name = "usb1-vbus"; regulator-min-microvolt = <0x4c4b40>; regulator-max-microvolt = <0x4c4b40>; regulator-boot-on; enable-active-high; gpio = <0x9 0x7 0x6 0x0>; status = "disabled"; phandle = <0x68>; }; usb2-vbus { compatible = "regulator-fixed"; regulator-name = "usb2-vbus"; regulator-min-microvolt = <0x4c4b40>; regulator-max-microvolt = <0x4c4b40>; regulator-boot-on; enable-active-high; gpio = <0x9 0x7 0x3 0x0>; status = "disabled"; phandle = <0x69>; }; vcc3v0 { compatible = "regulator-fixed"; regulator-name = "vcc3v0"; regulator-min-microvolt = <0x2dc6c0>; regulator-max-microvolt = <0x2dc6c0>; phandle = <0x6a>; }; vcc3v3 { compatible = "regulator-fixed"; regulator-name = "vcc3v3"; regulator-min-microvolt = <0x325aa0>; regulator-max-microvolt = <0x325aa0>; phandle = <0xa>; }; vcc5v0 { compatible = "regulator-fixed"; regulator-name = "vcc5v0"; regulator-min-microvolt = <0x4c4b40>; regulator-max-microvolt = <0x4c4b40>; phandle = <0x6b>; }; aliases { serial0 = "/soc/serial@1c28000"; ethernet0 = "/soc/ethernet@1c30000"; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <0x28 0x29>; status { label = "nanopi:blue:status"; gpios = <0x9 0x0 0xa 0x0>; linux,default-trigger = "heartbeat"; }; pwr { label = "nanopi:green:pwr"; gpios = <0x2a 0x0 0xa 0x0>; default-state = "on"; }; }; r_gpio_keys { compatible = "gpio-keys"; input-name = "k1"; pinctrl-names = "default"; pinctrl-0 = <0x2b>; k1 { label = "k1"; linux,code = <0x74>; gpios = <0x2a 0x0 0x3 0x1>; }; }; __symbols__ { osc24M = "/clocks/osc24M_clk"; osc32k = "/clocks/osc32k_clk"; ext_osc32k = "/clocks/ext_osc32k_clk"; iosc = "/clocks/internal-osc-clk"; cpu0_opp_table = "/opp_table0"; de = "/display-engine"; display_clocks = "/soc/clock@1000000"; mixer0 = "/soc/mixer@1100000"; mixer0_out = "/soc/mixer@1100000/ports/port@1"; mixer0_out_tcon0 = "/soc/mixer@1100000/ports/port@1/endpoint"; syscon = "/soc/syscon@1c00000"; dma = "/soc/dma-controller@1c02000"; tcon0 = "/soc/lcd-controller@1c0c000"; tcon0_in = "/soc/lcd-controller@1c0c000/ports/port@0"; tcon0_in_mixer0 = "/soc/lcd-controller@1c0c000/ports/port@0/endpoint"; tcon0_out = "/soc/lcd-controller@1c0c000/ports/port@1"; tcon0_out_hdmi = "/soc/lcd-controller@1c0c000/ports/port@1/endpoint@1"; mmc0 = "/soc/mmc@1c0f000"; mmc1 = "/soc/mmc@1c10000"; mmc2 = "/soc/mmc@1c11000"; usb_otg = "/soc/usb@1c19000"; sid = "/soc/eeprom@01c14000"; usbphy = "/soc/phy@1c19400"; ehci0 = "/soc/usb@1c1a000"; ohci0 = "/soc/usb@1c1a400"; ehci1 = "/soc/usb@1c1b000"; ohci1 = "/soc/usb@1c1b400"; ehci2 = "/soc/usb@1c1c000"; ohci2 = "/soc/usb@1c1c400"; ehci3 = "/soc/usb@1c1d000"; ohci3 = "/soc/usb@1c1d400"; ccu = "/soc/clock@1c20000"; pio = "/soc/pinctrl@1c20800"; csi_pins = "/soc/pinctrl@1c20800/csi"; emac_rgmii_pins = "/soc/pinctrl@1c20800/emac0"; i2c0_pins = "/soc/pinctrl@1c20800/i2c0"; i2c1_pins = "/soc/pinctrl@1c20800/i2c1"; i2c2_pins = "/soc/pinctrl@1c20800/i2c2"; i2s0_pins = "/soc/pinctrl@1c20800/i2s0"; i2s1_pins = "/soc/pinctrl@1c20800/i2s1"; mmc0_pins = "/soc/pinctrl@1c20800/mmc0"; mmc1_pins = "/soc/pinctrl@1c20800/mmc1"; mmc2_8bit_pins = "/soc/pinctrl@1c20800/mmc2_8bit"; spdif_tx_pins_a = "/soc/pinctrl@1c20800/spdif"; spi0_pins = "/soc/pinctrl@1c20800/spi0"; spi1_pins = "/soc/pinctrl@1c20800/spi1"; uart0_pins_a = "/soc/pinctrl@1c20800/uart0"; uart1_pins = "/soc/pinctrl@1c20800/uart1"; uart1_rts_cts_pins = "/soc/pinctrl@1c20800/uart1_rts_cts"; uart2_pins = "/soc/pinctrl@1c20800/uart2"; uart3_pins = "/soc/pinctrl@1c20800/uart3"; uart3_rts_cts_pins = "/soc/pinctrl@1c20800/uart3_rts_cts"; leds_npi = "/soc/pinctrl@1c20800/led_pins"; ths = "/soc/thermal-sensor@1c25000"; emac = "/soc/ethernet@1c30000"; mdio = "/soc/ethernet@1c30000/mdio"; internal_mdio = "/soc/ethernet@1c30000/mdio-mux/mdio@1"; int_mii_phy = "/soc/ethernet@1c30000/mdio-mux/mdio@1/ethernet-phy@1"; external_mdio = "/soc/ethernet@1c30000/mdio-mux/mdio@2"; spi0 = "/soc/spi@1c68000"; spi1 = "/soc/spi@1c69000"; wdt0 = "/soc/watchdog@1c20ca0"; spdif = "/soc/spdif@1c21000"; pwm = "/soc/pwm@1c21400"; i2s0 = "/soc/i2s@1c22000"; i2s1 = "/soc/i2s@1c22400"; i2s2 = "/soc/i2s@1c22800"; sound_hdmi = "/soc/sound"; codec = "/soc/codec@1c22c00"; uart0 = "/soc/serial@1c28000"; uart1 = "/soc/serial@1c28400"; uart2 = "/soc/serial@1c28800"; uart3 = "/soc/serial@1c28c00"; i2c0 = "/soc/i2c@1c2ac00"; i2c1 = "/soc/i2c@1c2b000"; i2c2 = "/soc/i2c@1c2b400"; gic = "/soc/interrupt-controller@1c81000"; hdmi = "/soc/hdmi@1ee0000"; hdmi_in = "/soc/hdmi@1ee0000/ports/port@0"; hdmi_in_tcon0 = "/soc/hdmi@1ee0000/ports/port@0/endpoint"; hdmi_out = "/soc/hdmi@1ee0000/ports/port@1"; hdmi_phy = "/soc/hdmi-phy@1ef0000"; csi = "/soc/camera@1cb0000"; rtc = "/soc/rtc@1f00000"; r_ccu = "/soc/clock@1f01400"; codec_analog = "/soc/codec-analog@1f015c0"; ir = "/soc/ir@1f02000"; r_i2c = "/soc/i2c@1f02400"; r_pio = "/soc/pinctrl@1f02c00"; ir_pins_a = "/soc/pinctrl@1f02c00/ir"; r_i2c_pins = "/soc/pinctrl@1f02c00/r-i2c"; leds_r_npi = "/soc/pinctrl@1f02c00/led_pins"; sw_r_npi = "/soc/pinctrl@1f02c00/key_pins"; sram_c = "/soc/system-control@1c00000/sram@1d00000"; ve_sram = "/soc/system-control@1c00000/sram@1d00000/sram-section@0"; mali = "/soc/gpu@1c40000"; cpu_thermal = "/thermal-zones/cpu_thermal"; cpu_hot_trip = "/thermal-zones/cpu_thermal/trips/cpu-warm"; cpu_very_hot_trip = "/thermal-zones/cpu_thermal/trips/cpu-very-hot"; cpu0 = "/cpus/cpu@0"; reg_ahci_5v = "/ahci-5v"; reg_usb0_vbus = "/usb0-vbus"; reg_usb1_vbus = "/usb1-vbus"; reg_usb2_vbus = "/usb2-vbus"; reg_vcc3v0 = "/vcc3v0"; reg_vcc3v3 = "/vcc3v3"; reg_vcc5v0 = "/vcc5v0"; }; }; My question is now how to ensure that the overlay is loaded? Maybe @tkaiser or @Igor can help? If there is a page somewhere describing what to do I can (most likely) figure it all out myself... :-) I am running into a few other issues, but I think that once I understand how to work with the overlays, I will should be ok....
martinayotte Posted March 26, 2019 Posted March 26, 2019 1 hour ago, pzw said: I have created a .dts / .dto without these setpoints, so it looks like it is not being loaded. It is named sun8i-h3-nanopi-duo2.dto That is normal that your modifications are not loaded because the *.dto is not the normal filename extention : Main DT should be *.dtb and overlays are *.dtbo 1
pzw Posted March 26, 2019 Author Posted March 26, 2019 Hi @martinayotte ; Thanks for that hint :-) . I changed the extension and it looks like it is still not loading. Where can I find / set which dtb is being loaded at boot time? This is what I have at the moment in the /boot/dtb-4.19.25-sunxi dir: root@nanopiduo2:/boot/dtb-4.19.25-sunxi# dtc -o sun8i-h3-nanopi-duo2.dtb sun8i-h3-nanopi-duo2.dts sun8i-h3-nanopi-duo2.dtb: Warning (unit_address_vs_reg): Node /opp_table0/opp@120000000 has a unit name, but no reg property sun8i-h3-nanopi-duo2.dtb: Warning (unit_address_vs_reg): Node /opp_table0/opp@240000000 has a unit name, but no reg property sun8i-h3-nanopi-duo2.dtb: Warning (unit_address_vs_reg): Node /opp_table0/opp@480000000 has a unit name, but no reg property sun8i-h3-nanopi-duo2.dtb: Warning (unit_address_vs_reg): Node /opp_table0/opp@648000000 has a unit name, but no reg property sun8i-h3-nanopi-duo2.dtb: Warning (unit_address_vs_reg): Node /opp_table0/opp@816000000 has a unit name, but no reg property sun8i-h3-nanopi-duo2.dtb: Warning (unit_address_vs_reg): Node /opp_table0/opp@960000000 has a unit name, but no reg property sun8i-h3-nanopi-duo2.dtb: Warning (unit_address_vs_reg): Node /opp_table0/opp@1008000000 has a unit name, but no reg property sun8i-h3-nanopi-duo2.dtb: Warning (simple_bus_reg): Node /soc/eeprom@01c14000 simple-bus unit address format error, expected "1c14000" sun8i-h3-nanopi-duo2.dtb: Warning (simple_bus_reg): Node /soc/sound missing or empty reg/ranges property root@nanopiduo2:/boot/dtb-4.19.25-sunxi# ls *duo2* sun8i-h3-nanopi-duo2.dtb sun8i-h3-nanopi-duo2.dts root@nanopiduo2:/boot/dtb-4.19.25-sunxi# Do you have more pointers? :-) Thanks in advance! Paul
NicoD Posted March 26, 2019 Posted March 26, 2019 @pzwI also got one of those. I haven't tried any armbian on it. I did use images for the M1+ from FriendlyElec because they were better. Maybe the one from Armbian works.https://www.armbian.com/nanopi-m1-plus/ It is end of support. But could be a good base to build upon. I should pick it up again and try. I made a wifi cam with a small powerbank. But I'm not happy of the camera. Picture isn't stable. 1
pzw Posted March 26, 2019 Author Posted March 26, 2019 Hi @NicoD ; Looks like a good start for sure. I also consider a learning project for me, since I would like to learn more about how the kernel etc works, so I can make the needed overlays where needed... But for now I need to make sure they are loading! (Pretty critical step in the process!) 1
Recommended Posts