Jump to content

RockPi 4b 'board bring up'


chwe

Recommended Posts

This thread summarizes the efforts done to get armbian support for the new RockPi 4b.

 

ROCKPI4B_Angle_View.png

 

Boardspecs (from: https://wiki.radxa.com/Rockpi4/getting_started):

 

  • Rockchip RK3399
  • 64bit dual channel LPDDR4@3200Mb/s, 1GB/2GB/4GB optioal

storage:

  • eMMC module (optional)
  • uSD card
  • M.2 SSD (M.2 connector supports up to 2T M2 NVME SSD)

display:

  • HDMI 2.0 up to 4k@60
  • MIPI DSI 2 lanes via FPC connector

other features:

  • 3.5mm jack with mic
  • MIPI CSI 2 lanes via FPC connector, support up to 800 MP camera.
  • 802.11 ac wifi
  • Bluetooth 5.0
  • USB 3.0 OTG X1, hardware switch for host/device switch, upper one
  • USB 3.0 HOST X1, dedicated USB 3.0 channel, lower one
  • USB 2.0 HOST X2
  • GbE LAN with PoE support (hat required!)
  • 40-pin expansion header
  • USB PD, support USB Type C PD 2.0, 9V/2A, 12V/2A, 15V/2A, 20V/2A. (supports Qualcomm® Quick Charge as well)
  • 85mm x 54mm

 

Current support status (and some background):

first dev samples arrived and @martinayotte and @TonyMac32 started to integrate it into the rockchip64 boardfamily. Radxa offers a patched kernel and u-boot based on rockchips out of tree 4.4 kernel and 2017.09 u-boot. The our rockchip64 family is based on @ayufan s u-boot (which is a fork of rockchips) but a simple patch in of raxdas defconfig and the needed devicetree files don't work (it breaks on several parts during compilation related to USB and other stuff I'm still not 100% sure why.. :ph34r::lol:). So we went for a defconfig and DT file based on the one of the RockPro64 (cause even without patching, those images booted - a lot of stuff didn't work but at least it allowed us to start getting things working).

People related to Radxa forked the buildscript (https://github.com/brian541/build) and I assume that's why they can provide some 'preview' Armbian images on their site. Problem here is that they defined their kernel and their u-boot in a new linuxfamily (https://github.com/brian541/build/blob/master/config/sources/rk3399rockpi4b.conf) we simply can't have another RK3399 boardfamily (we have two, they share the kernels but not u-boot cause some boards have issues with upstream u-boot - we don't want to manage another u-boot fork nor another 4.4 kernel, it's ayufans or upstream).

That's why things may need a bit of time until they work properly on the RockPi.

 

Currently working (rockchip64-dev branch):

GbE

USB

Wifi (but laggy)

SD-Card (seems to be fine now)

HDMI (not committed yet)

 

Currently broken or with issues:

SD-Card has random hangs (probably speed issues)

 

everything else must be expected as broken at the moment. As far as I know nobody is currently working on 4.4 images and it might need some time to bring things up there. So RockPi 4b images must be considered as early wip at the moment and have to be built on your own cause we don't provide images yet.

 

side-note: first patches are also upstream to support the board in mainline kernel (not done by us https://patchwork.kernel.org/patch/10745929/)

 

@martinayotte & @TonyMac32 can you please correct in case I screwed something up in my summary? :D:ph34r:

 

@Igor or @zador.blood.stained if you think the thread fits better into the 'board bring up' subforum just move it. ;)

Edited by chwe
updated (3/x)
Link to comment
Share on other sites

18 minutes ago, chwe said:

Currently broken or with issues:

SD-Card has random hangs (probably speed issues)

As per @TonyMac32 suggestion, I changed sdmmc pins to get higher strength, and committed that yesterday, it seems to fix the issue.

Tony had also the HDMI working last night, but he didn't committed that yet, too tired to avoid going to sleep ... ;)

Link to comment
Share on other sites

The HDMI should be committed, I didn't fix a couple things I noticed on pcie and the audio codec yet. ;-). The Wlan may also be better, the Radxa device tree sets the io to 20 mA across the board on it, committed with hdmi. @Martinayotte, if you would verify it works, I didn't try to bring it up yet.

Sent from my Pixel using Tapatalk

Link to comment
Share on other sites

suggestion: let's combine all DT patches once most of the stuff is working.

 

btw. I may work a bit on 4.4 kernel this weekend and if the basic stuff is working I may go down the CSI rabbit hole once again to see if we get the camera working with ISP1 :ph34r: (just out of fun :lol::rolleyes: - having a new idea for the lab where this board would actually fit quite well for some image recognition shit which could be funny :ph34r:)

Link to comment
Share on other sites

8 minutes ago, TonyMac32 said:

This early on that is a tough one, most of the work is basic board support, so device tree/etc.

Sent from my Pixel using Tapatalk
 

yeah...that require to understanding what you need to find without google all the time.  

Link to comment
Share on other sites

2 hours ago, Dante4 said:

Anything just user (as is no creating drivers experience) can help with?

 

you can start with testing: https://github.com/armbian/testings

maybe not yet for the RockPi 4b but for other boards you have?

 

1 hour ago, Dante4 said:

yeah...that require to understanding what you need to find without google all the time.  

google is a good helper which I quite often use. :)

 

If you want to dive into this it might be worth to start with some basics in device tree. The kernel comes with docs, docs are great to understand what a *random devicetree node* does. Combine this stuff try to build images, get errors on building or that the DT doesn't work, use google (or ask here), build again and learn step by step. :)

 

You need a virtual machine with ubuntu on it and some spare-time. You may file a few times until you get something working but that's fine. Happens to all of us.

Link to comment
Share on other sites

11 minutes ago, chwe said:

 

you can start with testing: https://github.com/armbian/testings

maybe not yet for the RockPi 4b but for other boards you have?

That i can do for sure for renegade-default (if i understand correctly it's my roc-cc aka Renegade)

 

11 minutes ago, chwe said:

google is a good helper which I quite often use. :)

 

If you want to dive into this it might be worth to start with some basics in device tree. The kernel comes with docs, docs are great to understand what a *random devicetree node* does. Combine this stuff try to build images, get errors on building or that the DT doesn't work, use google (or ask here), build again and learn step by step. :)

 

You need a virtual machine with ubuntu on it and some spare-time. You may file a few times until you get something working but that's fine. Happens to all of us.

I do agree with this, but i know difference between "let google this and this" and "google what the hell is this?" right now i'm more about 2nd. But wanna to become closer to first.

Thanks for your advice :), since I do have alot of spare-time for now i will dive in.  (would prefer to not fry anything... -_-'''')

Link to comment
Share on other sites

2 hours ago, Dante4 said:

I do agree with this, but i know difference between "let google this and this" and "google what the hell is this?" right now i'm more about 2nd. But wanna to become closer to first.

As most of us were in the beginnings.. ;)

 

2 hours ago, Dante4 said:

(would prefer to not fry anything... -_-'''')

I don't guarantee but I think it's not that easy to fry something with a wrong devicetree.. It's a way easier with connecting random crap to the pin-header.

 

Since you want to get closer to group 1 let's give an example:

 

That's the original DT for the RockPi4b (4.4.x kernel) spoiler cause it just messes up to show the whole one for everyone (https://github.com/radxa/kernel/blob/release-4.4-rockpi4/arch/arm64/boot/dts/rockchip/rockpi-4b-linux.dts):

Spoiler

/*
 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

/dts-v1/;

#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/input/input.h>
#include "rk3399.dtsi"
#include "rk3399-linux.dtsi"
#include "rk3399-opp.dtsi"


/ {

	model = "ROCK PI 4B";
	compatible = "rockchip,rockpi","rockchip,rk3399";

	fiq_debugger: fiq-debugger {
		compatible = "rockchip,fiq-debugger";
		rockchip,serial-id = <2>;
		rockchip,signal-irq = <182>;
		rockchip,wake-irq = <0>;
		rockchip,irq-mode-enable = <1>;  /* If enable uart uses irq instead of fiq */
		rockchip,baudrate = <1500000>;  /* Only 115200 and 1500000 */
		pinctrl-names = "default";
		pinctrl-0 = <&uart2c_xfer>;
	};

	vcc1v8_s0: vcc1v8-s0 {
		compatible = "regulator-fixed";
		regulator-name = "vcc1v8_s0";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};

	vcc_sys: vcc-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc_sys";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

	vcc_phy: vcc-phy-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc_phy";
		regulator-always-on;
		regulator-boot-on;
	};

	vcc3v3_sys: vcc3v3-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_sys";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		vin-supply = <&vcc_sys>;
	};

	vcc3v3_pcie: vcc3v3-pcie-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio2 26 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&pcie_drv>;
		regulator-boot-on;
		regulator-always-on;
		regulator-name = "vcc3v3_pcie";
		vin-supply = <&vcc3v3_sys>;
	};

	vcc5v0_host: vcc5v0-host-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&host_vbus_drv>;
		regulator-name = "vcc5v0_host";
		regulator-always-on;
	};

	vcc5v0_otg: vcc5v0-otg-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&otg_vbus_drv>;
		regulator-name = "vcc5v0_otg";
		regulator-always-on;
	};

	vdd_log: vdd-log {
		compatible = "pwm-regulator";
		pwms = <&pwm2 0 25000 1>;
		regulator-name = "vdd_log";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <1400000>;
		regulator-always-on;
		regulator-boot-on;

		/* for rockchip boot on */
		rockchip,pwm_id= <2>;
		rockchip,pwm_voltage = <900000>;

		vin-supply = <&vcc_sys>;
	};

	clkin_gmac: external-gmac-clock {
		compatible = "fixed-clock";
		clock-frequency = <125000000>;
		clock-output-names = "clkin_gmac";
		#clock-cells = <0>;
	};

	es8316-sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,name = "rockchip,es8316-codec";
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,widgets =
			"Microphone", "Mic Jack",
			"Headphone", "Headphone Jack";
		simple-audio-card,routing =
			"Mic Jack", "MICBIAS1",
			"IN1P", "Mic Jack",
			"Headphone Jack", "HPOL",
			"Headphone Jack", "HPOR";
		simple-audio-card,cpu {
			sound-dai = <&i2s0>;
		};
		simple-audio-card,codec {
			sound-dai = <&es8316>;
		};
	};

	hdmi_sound: hdmi-sound {
		status = "disabled";
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,name = "rockchip,hdmi";

		simple-audio-card,cpu {
			sound-dai = <&i2s2>;
		};
		simple-audio-card,codec {
			sound-dai = <&dw_hdmi_audio>;
		};
	};

	dw_hdmi_audio: dw-hdmi-audio {
		status = "disabled";
		compatible = "rockchip,dw-hdmi-audio";
		#sound-dai-cells = <0>;
	};

	hdmi_codec: hdmi-codec {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,name = "HDMI-CODEC";

		simple-audio-card,cpu {
			sound-dai = <&i2s2>;
		};

		simple-audio-card,codec {
			sound-dai = <&hdmi>;
		};
	};

	spdif-sound {
		status = "okay";
		compatible = "simple-audio-card";
		simple-audio-card,name = "ROCKCHIP,SPDIF";
		simple-audio-card,cpu {
			sound-dai = <&spdif>;
		};
		simple-audio-card,codec {
			sound-dai = <&spdif_out>;
		};
	};

	spdif_out: spdif-out {
		status = "okay";
		compatible = "linux,spdif-dit";
		#sound-dai-cells = <0>;
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		clocks = <&rk808 1>;
		clock-names = "ext_clock";
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_enable_h>;

		/*
		 * On the module itself this is one of these (depending
		 * on the actual card populated):
		 * - SDIO_RESET_L_WL_REG_ON
		 * - PDN (power down when low)
		 */
		reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
	};

	wireless-wlan {
		compatible = "wlan-platdata";
		rockchip,grf = <&grf>;
		wifi_chip_type = "ap6256";
		sdio_vref = <1800>;
		WIFI,host_wake_irq = <&gpio0 3 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};

	wireless-bluetooth {
		compatible = "bluetooth-platdata";
		clocks = <&rk808 1>;
		clock-names = "ext_clock";
		/* wifi-bt-power-toggle; */
		uart_rts_gpios = <&gpio2 19 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default", "rts_gpio";
		pinctrl-0 = <&uart0_rts>;
		pinctrl-1 = <&uart0_gpios>;
		/* BT,power_gpio  = <&gpio3 19 GPIO_ACTIVE_HIGH>; */
		BT,reset_gpio    = <&gpio0 9 GPIO_ACTIVE_HIGH>;
		BT,wake_gpio     = <&gpio2 27 GPIO_ACTIVE_HIGH>;
		BT,wake_host_irq = <&gpio0 4 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};

	test-power {
		status = "okay";
	};
};

&hdmi {
	#address-cells = <1>;
	#size-cells = <0>;
	#sound-dai-cells = <0>;
	status = "okay";
};

&sdmmc {
	clock-frequency = <100000000>;
	clock-freq-min-max = <100000 100000000>;
	supports-sd;
	bus-width = <4>;
	cap-mmc-highspeed;
	cap-sd-highspeed;
	disable-wp;
	num-slots = <1>;
	//sd-uhs-sdr104;
	vqmmc-supply = <&vcc_sd>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
	card-detect-delay = <800>;
	status = "okay";
};

&sdio0 {
	clock-frequency = <100000000>;
	clock-freq-min-max = <200000 100000000>;
	supports-sdio;
	bus-width = <4>;
	disable-wp;
	cap-sd-highspeed;
	cap-sdio-irq;
	keep-power-in-suspend;
	mmc-pwrseq = <&sdio_pwrseq>;
	non-removable;
	num-slots = <1>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
	sd-uhs-sdr104;
	status = "okay";
};

&emmc_phy {
	status = "okay";
};

&sdhci {
	bus-width = <8>;
	mmc-hs400-1_8v;
	supports-emmc;
	non-removable;
	mmc-hs400-enhanced-strobe;
	status = "okay";
};

&i2s0 {
	status = "okay";
	rockchip,i2s-broken-burst-len;
	rockchip,playback-channels = <8>;
	rockchip,capture-channels = <8>;
	#sound-dai-cells = <0>;
};

&i2s2 {
	status = "okay";
	#sound-dai-cells = <0>;
};

&i2c0 {
	status = "okay";
	i2c-scl-rising-time-ns = <168>;
	i2c-scl-falling-time-ns = <4>;
	clock-frequency = <400000>;

	vdd_cpu_b: syr827@40 {
		compatible = "silergy,syr827";
		reg = <0x40>;
		regulator-compatible = "fan53555-reg";
		pinctrl-0 = <&vsel1_gpio>;
		vsel-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
		regulator-name = "vdd_cpu_b";
		regulator-min-microvolt = <712500>;
		regulator-max-microvolt = <1500000>;
		regulator-ramp-delay = <1000>;
		fcs,suspend-voltage-selector = <1>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc_sys>;
		regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

	vdd_gpu: syr828@41 {
		compatible = "silergy,syr828";
		reg = <0x41>;
		regulator-compatible = "fan53555-reg";
		pinctrl-0 = <&vsel2_gpio>;
		vsel-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		regulator-name = "vdd_gpu";
		regulator-min-microvolt = <712500>;
		regulator-max-microvolt = <1500000>;
		regulator-ramp-delay = <1000>;
		fcs,suspend-voltage-selector = <1>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc_sys>;
		regulator-initial-mode = <1>; /* 1:force PWM 2:auto */
		regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

	rk808: pmic@1b {
		compatible = "rockchip,rk808";
		reg = <0x1b>;
		interrupt-parent = <&gpio1>;
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int_l>;
		rockchip,system-power-controller;
		wakeup-source;
		#clock-cells = <1>;
		clock-output-names = "xin32k", "rk808-clkout2";

		vcc1-supply = <&vcc_sys>;
		vcc2-supply = <&vcc_sys>;
		vcc3-supply = <&vcc_sys>;
		vcc4-supply = <&vcc_sys>;
		vcc6-supply = <&vcc_sys>;
		vcc7-supply = <&vcc_sys>;
		vcc8-supply = <&vcc3v3_sys>;
		vcc9-supply = <&vcc_sys>;
		vcc10-supply = <&vcc_sys>;
		vcc11-supply = <&vcc_sys>;
		vcc12-supply = <&vcc3v3_sys>;
		vddio-supply = <&vcc_1v8>;

		regulators {
			vdd_center: DCDC_REG1 {
				regulator-name = "vdd_center";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vdd_cpu_l: DCDC_REG2 {
				regulator-name = "vdd_cpu_l";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_ddr: DCDC_REG3 {
				regulator-name = "vcc_ddr";
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc_1v8: DCDC_REG4 {
				regulator-name = "vcc_1v8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcc1v8_dvp: LDO_REG1 {
				regulator-name = "vcc1v8_codec";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcca1v8_hdmi: LDO_REG2 {
				regulator-name = "vcca1v8_hdmi";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcca_1v8: LDO_REG3 {
				regulator-name = "vcca_1v8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcc_sd: LDO_REG4 {
				regulator-name = "vcc_sd";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcc3v0_sd: LDO_REG5 {
				regulator-name = "vcc3v0_sd";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcc_1v5: LDO_REG6 {
				regulator-name = "vcc_1v5";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1500000>;
				};
			};

			vcca0v9_hdmi: LDO_REG7 {
				regulator-name = "vcca0v9_hdmi";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <900000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <900000>;
				};
			};

			vcc_3v0: LDO_REG8 {
				regulator-name = "vcc_3v0";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcc3v3_s3: SWITCH_REG1 {
				regulator-name = "vcc3v3_s3";
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc3v3_s0: SWITCH_REG2 {
				regulator-name = "vcc3v3_s0";
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};
		};
	};
};

&i2c1 {
	status = "okay";
	i2c-scl-rising-time-ns = <300>;
	i2c-scl-falling-time-ns = <15>;

	es8316: es8316@11 {
		#sound-dai-cells = <0>;
		compatible = "everest,es8316";
		reg = <0x11>;
		clocks = <&cru SCLK_I2S_8CH_OUT>;
		clock-names = "mclk";
		pinctrl-names = "default";
		pinctrl-0 = <&i2s_8ch_mclk>;
	};

	rockpi_mcu: rockpi_mcu@45 {
	    compatible = "rockpi_mcu";
	    reg = <0x45>;
	};

	rockpi_ft5406: rockpi_ft5406@38 {
		compatible = "rockpi_ft5406";
		reg = <0x38>;
	};

};

&i2c7 {
	status = "okay";
};

&i2c4 {
	status = "okay";

	camera1: camera-module@10 {
		status = "okay";
		compatible = "sony,imx219";
		reg = <0x10>;

		clocks = <&cru SCLK_CIF_OUT>;
		clock-names = "clk_cif_out";
		pinctrl-names = "rockchip,camera_default";
		pwdn-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		
		port {
			ucam_out0: endpoint {
				remote-endpoint = <&mipi_in_ucam0>;
				data-lanes = <1 2>;
			};
		};
	};
};

&i2c2 {
	status = "okay";
	camera2: camera-module@10 {
		status = "disabled";
		compatible = "omnivision,ov13850-v4l2-i2c-subdev";
		reg = < 0x10 >;
		device_type = "v4l2-i2c-subdev";
		clocks = <&cru SCLK_CIF_OUT>;
		clock-names = "clk_cif_out";
		pinctrl-names = "rockchip,camera_default",
				"rockchip,camera_sleep";
		pinctrl-0 = <&cam0_default_pins>;
		pinctrl-1 = <&cam0_sleep_pins>;
		//rockchip,pd-gpio = <&gpio4 4 GPIO_ACTIVE_LOW>;
		rockchip,pwr-gpio = <&gpio4 4 GPIO_ACTIVE_HIGH>;
		rockchip,rst-gpio = <&gpio3 29 GPIO_ACTIVE_LOW>;
		rockchip,camera-module-mclk-name = "clk_cif_out";
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "cmk-cb0695-fv1";
		rockchip,camera-module-len-name = "lg9569a2";
		rockchip,camera-module-fov-h = "66.0";
		rockchip,camera-module-fov-v = "50.1";
		rockchip,camera-module-orientation = <0>;
		rockchip,camera-module-iq-flip = <0>;
		rockchip,camera-module-iq-mirror = <0>;
		rockchip,camera-module-flip = <1>;
		rockchip,camera-module-mirror = <0>;

		rockchip,camera-module-defrect0 = <2112 1568 0 0 2112 1568>;
		rockchip,camera-module-defrect1 = <4224 3136 0 0 4224 3136>;
		rockchip,camera-module-defrect3 = <3264 2448 0 0 3264 2448>;
		rockchip,camera-module-flash-support = <1>;
		rockchip,camera-module-mipi-dphy-index = <0>;
	};

	camera3: camera-module@36 {
		status = "disabled";
		compatible = "omnivision,ov4690-v4l2-i2c-subdev";
		reg = <0x36>;
		device_type = "v4l2-i2c-subdev";
		clocks = <&cru SCLK_CIF_OUT>;
		clock-names = "clk_cif_out";
		pinctrl-names = "rockchip,camera_default",
				"rockchip,camera_sleep";
		pinctrl-0 = <&cam0_default_pins>;
		pinctrl-1 = <&cam0_sleep_pins>;
		rockchip,pd-gpio = <&gpio3 4 GPIO_ACTIVE_LOW>;
		//rockchip,pwr-gpio = <&gpio3 13 0>;
		rockchip,rst-gpio = <&gpio2 10 GPIO_ACTIVE_LOW>;
		rockchip,camera-module-mclk-name = "clk_cif_out";
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "LA6111PA";
		rockchip,camera-module-len-name = "YM6011P";
		rockchip,camera-module-fov-h = "116";
		rockchip,camera-module-fov-v = "61";
		rockchip,camera-module-orientation = <0>;
		rockchip,camera-module-iq-flip = <0>;
		rockchip,camera-module-iq-mirror = <0>;
		rockchip,camera-module-flip = <0>;
		rockchip,camera-module-mirror = <1>;

		rockchip,camera-module-defrect0 = <2688 1520 0 0 2688 1520>;
		rockchip,camera-module-flash-support = <0>;
		rockchip,camera-module-mipi-dphy-index = <0>;
	};

};

&i2c7 {
	status = "okay";
};

&cpu_l0 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_l1 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_l2 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_l3 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_b0 {
	cpu-supply = <&vdd_cpu_b>;
};

&cpu_b1 {
	cpu-supply = <&vdd_cpu_b>;
};

&gpu {
	status = "okay";
	mali-supply = <&vdd_gpu>;
};

&threshold {
	temperature = <85000>;
};

&target {
	temperature = <100000>;
};

&soc_crit {
	temperature = <105000>;
};

&tcphy0 {
	status = "okay";
};

&tcphy1 {
	status = "okay";
};

&tsadc {
	/* tshut mode 0:CRU 1:GPIO */
	rockchip,hw-tshut-mode = <1>;
	/* tshut polarity 0:LOW 1:HIGH */
	rockchip,hw-tshut-polarity = <1>;
	rockchip,hw-tshut-temp = <110000>;
	status = "okay";
};

&u2phy0 {
	status = "okay";
	enable-active-high;
	/* otg-vbus-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;*/
	gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;

	u2phy0_otg: otg-port {
		status = "okay";
	};

	u2phy0_host: host-port {
		phy-supply = <&vcc5v0_host>;
		status = "okay";
	};
};

&u2phy1 {
	status = "okay";

	u2phy1_otg: otg-port {
		status = "okay";
	};

	u2phy1_host: host-port {
		phy-supply = <&vcc5v0_host>;
		status = "okay";
	};
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_xfer &uart0_cts>;
	status = "okay";
};

&uart2 {
	status = "okay";
};

&uart4 {
	status = "okay";
};

&usb_host0_ehci {
	status = "okay";
};

&usb_host0_ohci {
	status = "okay";
};

&usb_host1_ehci {
	status = "okay";
};

&usb_host1_ohci {
	status = "okay";
};

&usbdrd3_0 {
	extcon = <&u2phy0>;
	status = "okay";
};

&usbdrd_dwc3_0 {
	dr_mode = "otg";
	status = "okay";
};

&usbdrd3_1 {
	status = "okay";
};

&usbdrd_dwc3_1 {
	dr_mode = "host";
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&pwm3 {
	status = "okay";

	interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH 0>;
	compatible = "rockchip,remotectl-pwm";
	remote_pwm_id = <3>;
	handle_cpu_id = <1>;
	remote_support_psci = <1>;

	ir_key1 {
		rockchip,usercode = <0x4040>;
		rockchip,key_table =
			<0xf2	KEY_REPLY>,
			<0xba	KEY_BACK>,
			<0xf4	KEY_UP>,
			<0xf1	KEY_DOWN>,
			<0xef	KEY_LEFT>,
			<0xee	KEY_RIGHT>,
			<0xbd	KEY_HOME>,
			<0xea	KEY_VOLUMEUP>,
			<0xe3	KEY_VOLUMEDOWN>,
			<0xe2	KEY_SEARCH>,
			<0xb2	KEY_POWER>,
			<0xbc	KEY_MUTE>,
			<0xec	KEY_MENU>,
			<0xbf	0x190>,
			<0xe0	0x191>,
			<0xe1	0x192>,
			<0xe9	183>,
			<0xe6	248>,
			<0xe8	185>,
			<0xe7	186>,
			<0xf0	388>,
			<0xbe	0x175>;
	};

	ir_key2 {
		rockchip,usercode = <0xff00>;
		rockchip,key_table =
			<0xf9	KEY_HOME>,
			<0xbf	KEY_BACK>,
			<0xfb	KEY_MENU>,
			<0xaa	KEY_REPLY>,
			<0xb9	KEY_UP>,
			<0xe9	KEY_DOWN>,
			<0xb8	KEY_LEFT>,
			<0xea	KEY_RIGHT>,
			<0xeb	KEY_VOLUMEDOWN>,
			<0xef	KEY_VOLUMEUP>,
			<0xf7	KEY_MUTE>,
			<0xe7	KEY_POWER>,
			<0xfc	KEY_POWER>,
			<0xa9	KEY_VOLUMEDOWN>,
			<0xa8	KEY_VOLUMEDOWN>,
			<0xe0	KEY_VOLUMEDOWN>,
			<0xa5	KEY_VOLUMEDOWN>,
			<0xab	183>,
			<0xb7	388>,
			<0xe8	388>,
			<0xf8	184>,
			<0xaf	185>,
			<0xed	KEY_VOLUMEDOWN>,
			<0xee	186>,
			<0xb3	KEY_VOLUMEDOWN>,
			<0xf1	KEY_VOLUMEDOWN>,
			<0xf2	KEY_VOLUMEDOWN>,
			<0xf3	KEY_SEARCH>,
			<0xb4	KEY_VOLUMEDOWN>,
			<0xbe	KEY_SEARCH>;
	};

	ir_key3 {
		rockchip,usercode = <0x1dcc>;
		rockchip,key_table =
			<0xee	KEY_REPLY>,
			<0xf0	KEY_BACK>,
			<0xf8	KEY_UP>,
			<0xbb	KEY_DOWN>,
			<0xef	KEY_LEFT>,
			<0xed	KEY_RIGHT>,
			<0xfc	KEY_HOME>,
			<0xf1	KEY_VOLUMEUP>,
			<0xfd	KEY_VOLUMEDOWN>,
			<0xb7	KEY_SEARCH>,
			<0xff	KEY_POWER>,
			<0xf3	KEY_MUTE>,
			<0xbf	KEY_MENU>,
			<0xf9	0x191>,
			<0xf5	0x192>,
			<0xb3	388>,
			<0xbe	KEY_1>,
			<0xba	KEY_2>,
			<0xb2	KEY_3>,
			<0xbd	KEY_4>,
			<0xf9	KEY_5>,
			<0xb1	KEY_6>,
			<0xfc	KEY_7>,
			<0xf8	KEY_8>,
			<0xb0	KEY_9>,
			<0xb6	KEY_0>,
			<0xb5	KEY_BACKSPACE>;
	};
};

&gmac {
	phy-supply = <&vcc_phy>;
	phy-mode = "rgmii";
	clock_in_out = "input";
	snps,reset-gpio = <&gpio3 15 GPIO_ACTIVE_LOW>;
	snps,reset-active-low;
	snps,reset-delays-us = <0 10000 50000>;
	assigned-clocks = <&cru SCLK_RMII_SRC>;
	assigned-clock-parents = <&clkin_gmac>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&rgmii_pins>;
	pinctrl-1 = <&rgmii_sleep_pins>;
	tx_delay = <0x28>;
	rx_delay = <0x11>;
	status = "okay";
};

&dsi {
	status = "okay";
};

&vopb_out_dsi {
    status = "disabled";
};

&vopl_out_dsi {
    status = "disabled";
};

&dsi1 {
	rockchip,dual-channel = <&dsi>;
	status = "okay";


	panel: panel@0 {
		compatible ="rockpi,tc358762";
		reg = <0>;
		status = "okay";
	
	};

};

&saradc {
	status = "okay";
};

&io_domains {
	status = "okay";

	bt656-supply = <&vcc_3v0>; /* bt656_gpio2ab_ms */
	audio-supply = <&vcc_3v0>; /* audio_gpio3d4a_ms */
	sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */
	gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */
};

&pcie_phy {
	status = "okay";
};

&pcie0 {
	ep-gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>;
	num-lanes = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&pcie_clkreqnb_cpm>;
	status = "okay";
};

&pinctrl {

	sdio0 {
		sdio0_bus1: sdio0-bus1 {
			rockchip,pins =
				<2 20 RK_FUNC_1 &pcfg_pull_up_20ma>;
		};

		sdio0_bus4: sdio0-bus4 {
			rockchip,pins =
				<2 20 RK_FUNC_1 &pcfg_pull_up_20ma>,
				<2 21 RK_FUNC_1 &pcfg_pull_up_20ma>,
				<2 22 RK_FUNC_1 &pcfg_pull_up_20ma>,
				<2 23 RK_FUNC_1 &pcfg_pull_up_20ma>;
		};

		sdio0_cmd: sdio0-cmd {
			rockchip,pins =
				<2 24 RK_FUNC_1 &pcfg_pull_up_20ma>;
		};

		sdio0_clk: sdio0-clk {
			rockchip,pins =
				<2 25 RK_FUNC_1 &pcfg_pull_none_20ma>;
		};
	};

	sdmmc {
		sdmmc_bus1: sdmmc-bus1 {
			rockchip,pins =
				<4 8 RK_FUNC_1 &pcfg_pull_up_8ma>;
		};

		sdmmc_bus4: sdmmc-bus4 {
			rockchip,pins =
				<4 8 RK_FUNC_1 &pcfg_pull_up_8ma>,
				<4 9 RK_FUNC_1 &pcfg_pull_up_8ma>,
				<4 10 RK_FUNC_1 &pcfg_pull_up_8ma>,
				<4 11 RK_FUNC_1 &pcfg_pull_up_8ma>;
		};

		sdmmc_clk: sdmmc-clk {
			rockchip,pins =
				<4 12 RK_FUNC_1 &pcfg_pull_none_18ma>;
		};

		sdmmc_cmd: sdmmc-cmd {
			rockchip,pins =
				<4 13 RK_FUNC_1 &pcfg_pull_up_8ma>;
		};
	};

	sdio-pwrseq {
		wifi_enable_h: wifi-enable-h {
			rockchip,pins =
				<0 10 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	wireless-bluetooth {
		uart0_gpios: uart0-gpios {
			rockchip,pins =
				<2 19 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	usb2 {
		host_vbus_drv: host-vbus-drv {
			rockchip,pins =
				<4 25 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		otg_vbus_drv: otg-vbus-drv {
			rockchip,pins =
				<1 3 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pcie {
		pcie_drv: pcie-drv {
			rockchip,pins =
				<2 26 RK_FUNC_GPIO &pcfg_pull_none>;
			};
	};

	pmic {
		pmic_int_l: pmic-int-l {
			rockchip,pins =
				<1 21 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		vsel1_gpio: vsel1-gpio {
			rockchip,pins =
				<1 17 RK_FUNC_GPIO &pcfg_pull_down>;
		};

		vsel2_gpio: vsel2-gpio {
			rockchip,pins =
				<1 14 RK_FUNC_GPIO &pcfg_pull_down>;
		};
	};

	gmac {
		rgmii_sleep_pins: rgmii-sleep-pins {
			rockchip,pins =
				<3 15 RK_FUNC_GPIO &pcfg_output_low>;
		};
	};

	i2c4 {                                                                 
		i2c4_xfer: i2c4-xfer {
			rockchip,pins =
				<1 12 RK_FUNC_1 &pcfg_pull_up>,
				<1 11 RK_FUNC_1 &pcfg_pull_up>;
		};
	};
};

&pvtm {
	status = "okay";
};

&pmu_pvtm {
	status = "okay";
};

&pmu_io_domains {
	status = "okay";
	pmu1830-supply = <&vcc_3v0>;
};

&rockchip_suspend {
	status = "okay";
	rockchip,sleep-debug-en = <0>;
	rockchip,sleep-mode-config = <
		(0
		| RKPM_SLP_ARMPD
		| RKPM_SLP_PERILPPD
		| RKPM_SLP_DDR_RET
		| RKPM_SLP_PLLPD
		| RKPM_SLP_CENTER_PD
		| RKPM_SLP_AP_PWROFF
		)
	>;
	rockchip,wakeup-config = <
		(0
		| RKPM_GPIO_WKUP_EN
		| RKPM_PWM_WKUP_EN
		)
	>;
	rockchip,pwm-regulator-config = <
		(0
		| PWM2_REGULATOR_EN
		)
	>;
	rockchip,power-ctrl =
		<&gpio1 17 GPIO_ACTIVE_HIGH>,
		<&gpio1 14 GPIO_ACTIVE_HIGH>;
};

&vopb {
	status = "okay";
};

&vopb_mmu {
	status = "okay";
};

&vopl {
	status = "okay";
};

&vopl_mmu {
	status = "okay";
};

&rkisp1_0 {
	status = "okay";
	port {
		#address-cells = <1>;
		#size-cells = <0>;

		isp0_mipi_in: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&dphy_rx0_out>;
		};
	};
};

&mipi_dphy_rx0 {
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;

			mipi_in_ucam0: endpoint@1 {
				reg = <1>;
				remote-endpoint = <&ucam_out0>;
				data-lanes = <1 2>;
			};
		};

		port@1 {
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;

			dphy_rx0_out: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&isp0_mipi_in>;
			};
		};
	};
};


&isp0_mmu {
	status = "okay";
};


&isp1_mmu {
	status = "disabled";
};

&vpu {
	status = "okay";
	/* 0 means ion, 1 means drm */
	//allocator = <0>;
};

&rkvdec {
	status = "okay";
	/* 0 means ion, 1 means drm */
	//allocator = <0>;
};

&display_subsystem {
	status = "okay";
};

&dsi1_in_vopl {
	status = "okay";
};

&dsi1_in_vopb {
	status = "disabled";
};

&route_dsi {
	status = "disabled";
 };
&route_dsi1{
	status = "okay";
	connect = <&vopl_out_dsi1>;
};

&hdmi_in_vopl {
	status = "disabled";
};

&hdmi_in_vopb {
	status = "okay";
};

&route_hdmi {
	status = "okay";
	connect = <&vopb_out_hdmi>;
};

 

 

the first few lines after comment tell us which other DT files are included here e.g. (rk3399.dtsi):

#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/input/input.h>
#include "rk3399.dtsi"
#include "rk3399-linux.dtsi"
#include "rk3399-opp.dtsi"

basically just another 'layer' of describing hardware, since a lot of stuff is shared with all rk3399 based boards this stuff is usually described once there and the nodes are used again and again for every board.

 

The nodes after it describe the hardware and how it is connected (also partly software e.g. there are multiple UARTs available, a node has to tell the kernel which one should be used to output the debug console).

 

Now let's look at such a node:

	fiq_debugger: fiq-debugger {
		compatible = "rockchip,fiq-debugger";
		rockchip,serial-id = <2>;
		rockchip,signal-irq = <182>;
		rockchip,wake-irq = <0>;
		rockchip,irq-mode-enable = <1>;  /* If enable uart uses irq instead of fiq */
		rockchip,baudrate = <1500000>;  /* Only 115200 and 1500000 */
		pinctrl-names = "default";
		pinctrl-0 = <&uart2c_xfer>;
};

the compatible part is the first one which is interesting cause it gives you some hints where you get further information. :) (https://github.com/radxa/kernel/blob/release-4.4-rockpi4/Documentation/devicetree/bindings/serial/rockchip_fiq_debugger.txt)

From there you get most of the information out what this node does and how it can be configured.. E.g. for the fiq node, it could be worth to set baudrate to 115200 cause this is the common baudrate for all SBCs (except rockchips which often favor higher baudrates for whatever reasons :ph34r:). So obviously when you connect an USB-UART you've to set it to 1500000 not the default 115200 (keep in mind, if it's patched in the kernel, it should also be patched in u-boot, otherwise things get messy).

 

That's just a short introduction and you've to read a lot of stuff until all this stuff makes sense. :P Maybe I write something about the buildsystem tomorrow.

Link to comment
Share on other sites

so today we're talking a little bit about the buildscript (likely that those posts will be splitted out into it's own thread to build up a miniseries of tutorials)... I just talk about basics of it. To be honest, I don't know every part of it fully but for detailed questions there are people here which can answer specific parts. For the simplicity we assume that the SoC on the board is a supported one (rk3399 is). A basic overview with tree -L 2 to get a overview:

Spoiler

chwe@chwe-HP:~/armbian/build$ tree -L 2
.
├── cache
│   ├── rootfs
│   ├── sources
│   ├── toolchains
│   └── utility
├── compile.sh
├── config
│   ├── aptly.conf
│   ├── aptly-temp.conf
│   ├── armbian.key
│   ├── boards
│   ├── bootenv
│   ├── bootscripts
│   ├── fex
│   ├── kernel
│   ├── sources
│   └── templates
├── config-default.conf
├── config-docker.conf
├── config-vagrant.conf
├── Dockerfile
├── lib
│   ├── build-all.sh
│   ├── chroot-buildpackages.sh
│   ├── compilation.sh
│   ├── configuration.sh
│   ├── debootstrap-ng.sh
│   ├── desktop.sh
│   ├── distributions.sh
│   ├── fel-load.sh
│   ├── general.sh
│   ├── image-helpers.sh
│   ├── main.sh
│   ├── makeboarddeb.sh
│   ├── repository.sh
│   └── upgrade.sh
├── LICENSE
├── main.sh -> lib/upgrade.sh
├── output
│   ├── config
│   ├── debs
│   ├── debug
│   ├── images
│   └── patch
├── packages
│   ├── blobs
│   ├── bsp
│   ├── extras
│   └── extras-buildpkgs
├── patch
│   ├── atf
│   ├── kernel
│   ├── misc
│   └── u-boot
├── README.md
├── userpatches
│   ├── atf
│   ├── customize-image.sh
│   ├── kernel
│   ├── misc
│   ├── overlay
│   ├── README
│   └── u-boot
└── Vagrantfile

36 directories, 28 files

 

 

  • cache: to avoid downloading the sources again and again every time you build an image and saving you time to build images, armbians build-script caches sources (e.g. rootfs, kernel sources, u-boot sources, atf, compilers - out of tree sources can't always be compiled with the newest compiler versions so we also have some older ones)
  • config: basic configuration files for your board, the kernel and sources we use.
  • config --> board: an armbian specific boardconfig file, for the RockPi 4b it looks like the follwowing:
    # RK3399 hexa core 2G/4GB SoC GBe eMMC USB3 WiFi
    BOARD_NAME="RockPi-4B"
    BOARDFAMILY="rockchip64"
    BOOTCONFIG="rockpi4b-rk3399_defconfig"
    #
    MODULES=""
    MODULES_NEXT=""
    #
    KERNEL_TARGET="default,dev"
    CLI_TARGET="stretch,bionic:default"
    DESKTOP_TARGET="stretch,bionic:default"
    
    CLI_BETA_TARGET=""
    DESKTOP_BETA_TARGET=""

    BOARDFAMILY tells you which sources it uses (later more on that).
    BOOTCONFIG telly you which xxx_defconfig file in u-boot will be used (maybe something for an u-boot plumber tutorial follow up) Modules is only needed if you've to install special modules to enhance functionality (something for a more detailed tutorial).
    KERNEL_TARGET (will be explained in sources), CLI_TARGET (which flavors of Armbian you can build (here we provide only ubuntu bionic and debian stretch for some older kernels we've to provide xenial as well cause they're not able to work properly with stretch or bionic).
    DESKTOP_TARGET - same as CLI but with a DESKTOP (e.g. we don't provide DESKTOP images for boards without HDMI etc.). CLI_BETA_TARGET not of interest yet.

 

  • config --> kernel (the .config file you normally get with make ARCH=arm xxx_defconfig if you compile kernels on your own - our configs differ often from defconfigs provided by kernels often to enhance functionality)
  • config --> sources as you can see, the RockPi4b is part of the rockchip64 family therefore (https://github.com/armbian/build/blob/master/config/sources/rockchip64.conf):
    Spoiler

     

    
    ARCH=arm64
    KERNEL_IMAGE_TYPE=Image
    OFFSET=16
    
    BOOTSCRIPT='boot-rockchip64.cmd:boot.cmd'
    BOOTENV_FILE='rockchip-default.txt'
    
    UBOOT_TARGET_MAP=";;idbloader.bin uboot.img trust.bin"
    UBOOT_USE_GCC='> 7.0'
    
    BOOTSOURCE='https://github.com/ayufan-rock64/linux-u-boot'
    BOOTDIR='u-boot-rockchip64'
    BOOTPATCHDIR="u-boot-rockchip64-${BRANCH}"
    BOOTBRANCH='branch:rockchip-master'
    
    BOOTDELAY=0
    HAS_UUID_SUPPORT=yes
    OVERLAY_PREFIX='rockchip'
    SERIALCON=ttyS2
    
    ATFSOURCE='https://github.com/ayufan-rock64/arm-trusted-firmware'
    ATFDIR='arm-trusted-firmware-rockchip64'
    ATFBRANCH='branch:rockchip'
    ATF_USE_GCC='> 6.3'
    GOVERNOR="ondemand"
    
    if [[ $BOARD == rockpro64 ]] || [[ $BOARD == rockpi-4b ]]; then
    
    	ATF_TARGET_MAP='M0_CROSS_COMPILE=arm-linux-gnueabi- PLAT=rk3399 DEBUG=1 bl31;;trust.bin'
    	ATF_TOOLCHAIN2="arm-linux-gnueabi-:> 5.0"
    	UBOOT_TARGET_MAP="BL31=$SRC/cache/sources/rkbin-tools/rk33/rk3399_bl31_v1.17.elf u-boot-dtb.bin spl/u-boot-spl.bin u-boot.itb;;spl/u-boot-spl.bin u-boot.itb"
    	CPUMIN="600000"
    	CPUMAX="1900000"
    
    else
    
    	ATF_TARGET_MAP='PLAT=rk322xh DEBUG=1 bl31;;trust.bin'
    	CPUMIN="600000"
    	CPUMAX="1390000"
    
    fi
    
    case $BRANCH in
    	default)
    		KERNELSOURCE='https://github.com/ayufan-rock64/linux-kernel'
    		KERNELBRANCH='tag:4.4.154-1128-rockchip-ayufan'
    		KERNELDIR='linux-rockchip64'
    		KERNEL_USE_GCC='> 7.0'
    	;;
    
    	dev)
    		KERNELSOURCE='https://github.com/ayufan-rock64/linux-mainline-kernel'
    		KERNELBRANCH='tag:4.20.0-1083-ayufan'
    		KERNELDIR='linux-rockchip64'
    		KERNEL_USE_GCC='> 7.0'
    	;;
    esac
    
    write_uboot_platform()
    {
    	if [[ -f $1/rksd_loader.img ]] ; then
    		dd if=$1/rksd_loader.img of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1
    	else
    		dd if=$1/idbloader.bin of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1
    		dd if=$1/uboot.img of=$2 seek=16384 conv=notrunc status=none >/dev/null 2>&1
    		dd if=$1/trust.bin of=$2 seek=24576 conv=notrunc status=none >/dev/null 2>&1
    	fi
    }
    
    setup_write_uboot_platform()
    {
    	if grep -q "ubootpart" /proc/cmdline; then
    		local tmp=$(cat /proc/cmdline)
    		tmp="${tmp##*ubootpart=}"
    		tmp="${tmp%% *}"
    		[[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2>/dev/null)
    		[[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2>/dev/null)
    		[[ -n $dev ]] && DEVICE="/dev/$dev"
    	fi
    }
    
    uboot_custom_postprocess()
    {
    	# bootloader image
    	if [[ $BOARD == rockpro64 ]] || [[ $BOARD == rockpi-4b ]]; then
    		# 3399
    		tools/mkimage -n rk3399 -T rksd -d $SRC/cache/sources/rkbin-tools/rk33/rk3399_ddr_933MHz_v1.13.bin rksd_loader.img
    		cat spl/u-boot-spl.bin >> rksd_loader.img
    		dd if=u-boot.itb of=rksd_loader.img seek=448 conv=notrunc
    		cp rksd_loader.img $SRC/.tmp/$uboot_name/usr/lib/$uboot_name/$f_dst
    		tools/mkimage -n rk3399 -T rksd -d $SRC/cache/sources/rkbin-tools/rk33/rk3399_ddr_933MHz_v1.13.bin rkspi_loader.img
    		cat spl/u-boot-spl.bin >> rkspi_loader.img
    		for i in `seq 1 128`; do dd count=4 status=none; dd if=/dev/zero count=4 status=none; done < rkspi_loader.img > rkspi_loader.tmp
    		mv rkspi_loader.tmp rkspi_loader.img
    		dd if=u-boot.itb of=rkspi_loader.img seek=1024 conv=notrunc
    		cp rkspi_loader.img $SRC/.tmp/$uboot_name/usr/lib/$uboot_name/$f_dst
    	else
    		# 3328
    		tools/mkimage -n rk3328 -T rksd -d $SRC/cache/sources/rkbin-tools/rk33/rk3328_ddr_786MHz_v1.13.bin idbloader.bin
    		cat $SRC/cache/sources/rkbin-tools/rk33/rk3328_miniloader_v2.46.bin >> idbloader.bin
    		loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000
    	fi
    }
    
    atf_custom_postprocess()
    {
    	# remove bl31.bin which can be 4+GiB in size and thus may fill the tmpfs mount
    	rm -f build/rk322xh/debug/bl31.bin
    	# ATF
    	trust_merger trust.ini
    }
    
    family_tweaks()
    {
    	# enable root login via the serial console  ttys2 may be deprecated
    	echo "ttyS2" >> $SDCARD/etc/securetty
    	echo "ttyFIQ0" >> $SDCARD/etc/securetty
    
    
    	if [[ $BOARD == z28pro ]]; then
    		echo "fdtfile=rockchip/rk3328-z28pro.dtb" >> $SDCARD/boot/armbianEnv.txt
    		chroot $SDCARD /bin/bash -c "systemctl --no-reload enable z28pro-bluetooth.service >/dev/null 2>&1"
    	fi
    }
    
    family_tweaks_bsp()
    {
    	if [[ $BOARD == z28pro ]]; then
    		mkdir -p $destination/usr/local/bin
                    # Bluetooth
                    install -m 755 $SRC/packages/bsp/rk3328/z28pro/8822b_hciattach $destination/usr/bin
                    install -m 755 $SRC/packages/bsp/rk3328/z28pro/start_bt.sh $destination/usr/local/bin
                    cp $SRC/packages/bsp/rk3328/z28pro/z28pro-bluetooth.service $destination/lib/systemd/system/
            fi
    }
     

    for a beginner, most of this configs here can be ignored cause it needs some knowledge to deal with but a few interesting parts will be explained. It basically describes you which sources we use for ArmTrustedFirmware (part of  all(most?) ARM64 boards during boot. U-boot (before the kernel fires up) and which kernel sources will be used for default (often a BSP Kernel), next (mostly a vanilla kernel) and dev (mostly a kernel close to mainline - for rockchip64 for example this is a kernel based on 4.20). some tweaks needed to build an image (e.g. different SoCs expect the u-boot binary on a clear defined place inside the SD-Card for example here: dd if=$1/uboot.img of=$2 seek=16384 conv=notrunc status=none >/dev/null 2>&1 ) tweaks which are needed to boot up the board (e.g. rockchip needs a few binaries and it depends on which rockchip SoC, (sometimes also ramspecific) you use to boot up a board - rockchip64 is for rk3328 and rk3399 and they use different binaries) some family_tweaks here to enable debug console etc. (boardspecific tweaks are also here with some if statements to keep those changes separated from the others). To do changes here or to create such a file from plain (for a new boardfamily) you might need some more experience but it's worth to have a look at it (especially to check which sources we use). The rest of config is currently not that important.

  • config-default.conf (shows up after you build an image for the first time): this file will be important but since this post here gets anyways too long I try to explain it in the next days (it deserves to have it's own day) :D

  • lib: the build-script is not only one big bash-script it's splittened into different ones. In the beginnings you (hopefully) don't need to change something in them but cause the script isn't everywhere 100% clean (we've to be pragmatic here + different people have different opinions how stuff should be solved) it's worth to try to understand how random part of the script work (needs knowledge in bash and definitively not learned within a few hours - you need some background this grows over time)

  • output: that's where your kernel config (if you decide for Show a kernel configuration menu before compilation - would also need it's own post), debs (debian packages built during compilation, e.g. needed for sending kernelupgrades via apt upgrade), debug (also something for a further tutorial - you'll have a lot of fun with this folder during development :lol:) images (the finally compiled images if nothing fails) patch (will be explained in the follow up, but that's most of the work devs do here.. :D - e.g. if we fix something inside a kernel or u-boot etc. a patch is automatically generated this is then moved to the appropriate patch folder and part of the buildscript)

  • packagesblobs we've to deliver (e.g. to boot up a board), bsp (board support package - I also call non vanilla kernels bsp kernels, it has similarities but it's not the same - some boards need special configurations, e.g the bananapi r2 which has 5x GbE has here some configuration files to bring up all it's interfaces), tools (never worked with, ask someone else :D ) extras-buildpkgs for packages we deliver to get the enhanced functionality ( also not needed to understand fully in the beginnings - wouldn't call myself an expert on this part.. :D )

  • patch: if you generate a patch for kernel or u-boot and you want that others can use it as well place it here in the right folder, create a pull request to armbian and we'll get it. The structure is 'relatively' simple splitted into kernel, u-boot and atf (you won't patch atf soon.. :D ) for the kernel then splitted into boardfamily-branch (default,  next & dev - for the rockpi this means rockchip64-default and rockchip64-dev is of interest). For u-boot it's mostly u-boot-boardfamily (sometimes we have two branches for u-boot, e.g. the time we switch from a out of tree u-boot to upstream or we need different u-boot sources. not that often here u-boot-rockchip64-dev is of interest for the RockPi)

  • userpatch: the same than patches but for stuff you don't submit back to our tree (e.g. you can place your patch there if for whatever reasons it's not accepted by armbian - e.g. if it breaks other boards)

now you got an brief overview how much you'll have to learn until you understand it fully and in the next days I might partly explain how to use it.. If you can't wait reading more.. there you go:

https://forum.armbian.com/topic/6-how-to-build-my-own-image-or-kernel/?page=6&amp;tab=comments#comment-65998

https://forum.armbian.com/topic/7296-bananapi-r2-csc-mt7623-as-new-boardfamily/

 

have fun. :P

Link to comment
Share on other sites

Talking about config-default.conf and a bit of my workflow (others might do it different and I do boardbring up, kernel-patching by accident not by training - I normally do in science not in computes stuff :ph34r::lol:) for patching today:

Spoiler

# Read build script documentation https://docs.armbian.com/Developer-Guide_Build-Options/
# for detailed explanation of these options and for additional options not listed here

KERNEL_ONLY=""				# leave empty to select each time, set to "yes" or "no" to skip dialog prompt
KERNEL_CONFIGURE=""			# leave empty to select each time, set to "yes" or "no" to skip dialog prompt
CLEAN_LEVEL="make,debs,oldcache"	# comma-separated list of clean targets: "make" = make clean for selected kernel and u-boot,
					# "debs" = delete packages in "./output/debs" for current branch and family,
					# "alldebs" = delete all packages in "./output/debs", "images" = delete "./output/images",
					# "cache" = delete "./output/cache", "sources" = delete "./sources"
					# "oldcache" = remove old cached rootfs except for the newest 8 files

DEST_LANG="en_US.UTF-8"			# sl_SI.UTF-8, en_US.UTF-8

# advanced
KERNEL_KEEP_CONFIG="no"			# do not overwrite kernel config before compilation
EXTERNAL="yes"				# build and install extra applications and drivers
EXTERNAL_NEW="prebuilt"			# compile and install or install prebuilt additional packages
CREATE_PATCHES="no"			# wait that you make changes to uboot and kernel source and creates patches
BUILD_ALL="no"				# cycle through available boards and make images or kernel/u-boot packages.
					# set KERNEL_ONLY to "yes" or "no" to build all packages/all images
FORCE_BOOTSCRIPT_UPDATE="no"		# update bootscript when upgrading bsp package


BSPFREEZE=""				# freeze armbian packages (u-boot, kernel, dtb)
INSTALL_HEADERS=""			# install kernel headers package
LIB_TAG="master"			# change to "branchname" to use any branch currently available.
CARD_DEVICE=""				# device name /dev/sdx of your SD card to burn directly to the card when done


CRYPTROOT_ENABLE=no			# enable root filesystem encryption using LUKS
CRYPTROOT_PARAMETERS=""			# optionally: change cryptsetup's defaults like cipher, hash etc.
					# Currently only LUKS1 is supported, so don't use --type luks2
CRYPTROOT_PASSPHRASE="MYSECRETPASS"	# enter the encryption passphrase (can also be changed later on the CLI)
CRYPTROOT_SSH_UNLOCK=no			# enable dropbear to unlock your device via SSH
					# if you have an SSH public key store it in userpatches/dropbear_authorized_keys
					# otherwise a new SSH key will be created and stored beside the OS image
CRYPTROOT_SSH_UNLOCK_PORT=2022 # dropbear SSH port

 

actually the first line describes everything you need here... :lol: just read the docs and you'll get most of the things well described. For simplicity we use the menu which opens by starting the script with sudo ./compile.sh without any additional flags (docs explain also how to do it with flags but that not really needed, it's just faster than searching your board in the menu.

LIB_TAG becomes important cause it defines on which branch you build images (e.g. normally you do it on master when you just want to build the newest image for your board with armbians settings - as a developer who doesn't commit directly into armbians master, the workflow differs a bit and other branches than master become more important).

 

I assume that you've a GitHub account and already forked the project online. If you look at my masters tree (https://github.com/chwe17/build) it's mostly a few commits behind armbians masters tree (depends when I last synced my master with armbians - github explains perfectly how to sync a fork and how to add another remote) but it's never commits ahead of armbians master I do want to have the same git history in master as armbian has it just makes things simpler (git merge will always works without issues :P ).. On my current buildmachine I cloned directly my fork for building and not armbians. In case you have cloned the original and you don't want to loose all your stuff in cache (e.g. compilers which just need a bunch of time) you'll have to delete the remotes and set origin to your fork (google will help you on this one) and upstream to https://github.com/armbian/build.git (or dealing everytime with the proper commands when push stuff online - if you're not a git-ninja :ph34r: just set origin to your fork and upstream to armbians). Example:

chwe@chwe-HP:~/armbian/build$ git remote -v
origin	https://github.com/chwe17/build.git (fetch)
origin	https://github.com/chwe17/build.git (push)
upstream	https://github.com/armbian/build.git (fetch)
upstream	https://github.com/armbian/build.git (push)

 

First make sure that (at least) your local master branch is synced with armbians (due to set origin to your fork, this doesn't happen automatically during build! it will only sync it with your fork which is quite sure some commits behind armbians):

  1. check on which branch you are. We will do all the development in features branches not in master! So you might be on a different one from your last build:
    chwe@chwe-HP:~/armbian/build$ git branch
    * master
      mt7623
      r2_gmac

     

  2.  in this case everything is fine but it happened quite often in the beginnings that I was on one of my features branches which then ended in a mess (I've some features branches which have a lot of changes compared to armbians master)... :lol:
  3. if you're on a features branch make sure you've a clean working tree before you switch. git status can help you here to ensure your tree is clean. Example for a clean one:
    chwe@chwe-HP:~/armbian/build$ git status
    On branch mt7623
    Your branch is up to date with 'origin/mt7623'.
    
    nothing to commit, working tree clean

    or a dirty one:

    chwe@chwe-HP:~/armbian/build$ git status
    On branch mt7623
    Your branch is up to date with 'origin/mt7623'.
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    
    	some_random_fancy_shit_i_did_in_my_features_branch.txt
    
    nothing added to commit but untracked files present (use "git add" to track)

    (either with git stash or git add -A && git commit see git manuals what might be appropriate here - I prefer often to commit stuff if it's (partly) working and stash only when I'm quite sure I'll switch back to the features branch soon, commit messages can help you sometimes if you don't remember the rational behind a changes you did a few weeks back on features which need a bit more time to develop ISP1 driver on rk3288 was a feature I tried over weeks and failed more than once :lol: - btw. got never merged into master for good reasons). If the tree is clean switch to master with git checkout master!

  4. now we sync our master with armbians master (and push it online to our fork as well, example in spoiler):

    git fetch upstream
    git merge upstream/master
    git push
    Spoiler

     

    
    chwe@chwe-HP:~/armbian/build$ git fetch upstream
    remote: Enumerating objects: 168, done.
    remote: Counting objects: 100% (168/168), done.
    remote: Compressing objects: 100% (68/68), done.
    remote: Total 168 (delta 105), reused 152 (delta 94), pack-reused 0
    Receiving objects: 100% (168/168), 36.01 KiB | 4.00 MiB/s, done.
    Resolving deltas: 100% (105/105), completed with 50 local objects.
    From https://github.com/armbian/build
       8c6569e4..34ccb5d6  master     -> upstream/master
       393e0bd2..df55ef1b  tvboxes    -> upstream/tvboxes
    chwe@chwe-HP:~/armbian/build$ git merge upstream/master
    Updating 7e6889c3..34ccb5d6
    Fast-forward
     config/boards/helios4.conf                         |   3 +-
     config/boards/{rockpi-b4.wip => rockpi-4b.wip}     |   4 +-
     config/kernel/linux-mvebu64-next.config            |  24 +-
     config/kernel/linux-rockchip-next.config           |   8 +-
     config/kernel/linux-rockchip64-dev.config          |  96 ++++--
     config/sources/rk3399.conf                         |  10 +
     config/sources/rockchip64.conf                     |  10 +-
     lib/chroot-buildpackages.sh                        |   2 +-
     lib/compilation.sh                                 |  23 --
     lib/configuration.sh                               |   3 +
     lib/debootstrap-ng.sh                              |   2 +-
     lib/distributions.sh                               |   9 +-
     .../common/etc/update-motd.d/30-armbian-sysinfo    |  37 +--
     .../usr/lib/armbian/armbian-hardware-monitor       |   9 +-
     packages/bsp/common/usr/sbin/nand-sata-install     | 125 ++++----
     packages/bsp/rk3399/20-gpu-governor.conf           |   2 +
     packages/bsp/rk3399/50-mali.rules                  |   2 +
     packages/bsp/rk3399/50-rk3399-vpu.rules            |   3 +
     packages/bsp/rockchip/50-hevc.rules                |   2 +-
     packages/bsp/rockchip/50-mali.rules                |   2 +-
     packages/bsp/rockchip/50-vpu.rules                 |   2 +-
     packages/bsp/rockchip/60-media.rules               |   2 +-
     ...io:_Add_native_DSD_support_for_Mytek_DACs.patch |  72 +++++
     ..._detection_for_XMOS-based_implementations.patch |  72 +++++
     patch/kernel/rk3399-default/50-fix_drm.patch       |  23 ++
     .../xt-q8l-v10-add-device-tree.patch               |   2 +-
     ...288-add-missing-interleaved-pcm-attribute.patch |  37 +++
     .../rockchip-dev/xt-q8l-v10-add-device-tree.patch  |  68 +++--
     .../rockchip-next/xt-q8l-v10-add-device-tree.patch |   2 +-
     ...ard-rockpib4.patch => add-board-rockpi4b.patch} | 328 +++++++++++----------
     .../kernel/rockchip64-dev/fix-rockpro64-emmc.patch |  11 +-
     .../rockchip64-dev/fix-spi1-flash-speed.patch      |  13 +
     .../general-add-overlay-compilation-support.patch  |  35 ---
     .../rockchip64-dev/renegade-add-io_domains.patch   |  37 ---
     patch/kernel/rockchip64-dev/renegade-add-uhs.patch |  73 -----
     .../rockchip64-dev/rk3328-add-GRF-GPIO.patch       |  43 ---
     .../rockchip64-dev/rk3328-sd-drive-level-8ma.patch |  45 +++
     .../rockchip64-dev/rk3399-sd-drive-level-8ma.patch |  49 +++
     ...001-realtek-wifi-881xAU-605ecfa.patch.disabled} |   0
     ...-wifi-881xAU-adding-kernel-4.14.patch.disabled} |   0
     ...altek-wifi-881xAU-enable-8814au.patch.disabled} |   0
     ...ek-wifi-881xAU-update-to-5a5d0f.patch.disabled} |   0
     .../board_xt-q8l-v10/xt-q8l-v10-device-tree.patch  |   2 +-
     ...ard-rockpib4.patch => add-board-rockpi4b.patch} |  20 +-
     44 files changed, 774 insertions(+), 538 deletions(-)
     rename config/boards/{rockpi-b4.wip => rockpi-4b.wip} (80%)
     create mode 100644 packages/bsp/rk3399/20-gpu-governor.conf
     create mode 100644 packages/bsp/rk3399/50-mali.rules
     create mode 100644 packages/bsp/rk3399/50-rk3399-vpu.rules
     create mode 100644 patch/kernel/cubox-default/Linux4.14-001-ALSA:_usb-audio:_Add_native_DSD_support_for_Mytek_DACs.patch
     create mode 100644 patch/kernel/cubox-default/Linux4.14-002-ALSA:_usb-audio:_generic_DSD_detection_for_XMOS-based_implementations.patch
     create mode 100644 patch/kernel/rk3399-default/50-fix_drm.patch
     create mode 100644 patch/kernel/rockchip-dev/3002_RK3288-add-missing-interleaved-pcm-attribute.patch
     rename patch/kernel/rockchip64-dev/{add-board-rockpib4.patch => add-board-rockpi4b.patch} (86%)
     create mode 100644 patch/kernel/rockchip64-dev/fix-spi1-flash-speed.patch
     delete mode 100644 patch/kernel/rockchip64-dev/renegade-add-io_domains.patch
     delete mode 100644 patch/kernel/rockchip64-dev/renegade-add-uhs.patch
     delete mode 100644 patch/kernel/rockchip64-dev/rk3328-add-GRF-GPIO.patch
     create mode 100644 patch/kernel/rockchip64-dev/rk3328-sd-drive-level-8ma.patch
     create mode 100644 patch/kernel/rockchip64-dev/rk3399-sd-drive-level-8ma.patch
     rename patch/kernel/rockchip64-dev/{wifi-0001-realtek-wifi-881xAU-605ecfa.patch => wifi-0001-realtek-wifi-881xAU-605ecfa.patch.disabled} (100%)
     rename patch/kernel/rockchip64-dev/{wifi-0002-realtek-wifi-881xAU-adding-kernel-4.14.patch => wifi-0002-realtek-wifi-881xAU-adding-kernel-4.14.patch.disabled} (100%)
     rename patch/kernel/rockchip64-dev/{wifi-0003-realtek-wifi-881xAU-enable-8814au.patch => wifi-0003-realtek-wifi-881xAU-enable-8814au.patch.disabled} (100%)
     rename patch/kernel/rockchip64-dev/{wifi-0005-realtek-wifi-881xAU-update-to-5a5d0f.patch => wifi-0005-realtek-wifi-881xAU-update-to-5a5d0f.patch.disabled} (100%)
     rename patch/u-boot/u-boot-rockchip64-dev/{add-board-rockpib4.patch => add-board-rockpi4b.patch} (97%)
    chwe@chwe-HP:~/armbian/build$ git push
    Username for 'https://github.com': chwe17
    Password for 'https://chwe17@github.com': 
    Counting objects: 364, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (140/140), done.
    Writing objects: 100% (364/364), 63.17 KiB | 15.79 MiB/s, done.
    Total 364 (delta 268), reused 315 (delta 221)
    remote: Resolving deltas: 100% (268/268), completed with 56 local objects.
    To https://github.com/chwe17/build.git
       7e6889c3..34ccb5d6  master -> master

    if you visit your fork online this should be visible: This branch is even with armbian:master.

  5. Let's create a features branch for our funny new feature locally and on remote (git checkout -b branchname && git push -u origin rockpi_tutorial):

    chwe@chwe-HP:~/armbian/build$ git checkout -b rockpi_tutorial
    Switched to a new branch 'rockpi_tutorial'
    chwe@chwe-HP:~/armbian/build$ git push -u origin rockpi_tutorial
    Username for 'https://github.com': chwe17
    Password for 'https://chwe17@github.com': 
    Total 0 (delta 0), reused 0 (delta 0)
    remote: 
    remote: Create a pull request for 'rockpi_tutorial' on GitHub by visiting:
    remote:      https://github.com/chwe17/build/pull/new/rockpi_tutorial
    remote: 
    To https://github.com/chwe17/build.git
     * [new branch]        rockpi_tutorial -> rockpi_tutorial
    Branch 'rockpi_tutorial' set up to track remote branch 'rockpi_tutorial' from 'origin'.
    

    now config-default.conf and especially LIB_TAG becomes important. We tell the build-script now that by default we want to build images on our new features branch. So change LIB_TAG="master" to LIB_TAG="rockpi_tutorial" with your favorite editor. Cause we go to create a patch, change it to yes as well CREATE_PATCHES="yes".

In the next days I'll have a look if there's an easy but meaningful example of patching something for RockPi including the pull request to bring it back to armbian. I'm quite confident we'll find something in the device tree to fix... :lol::ph34r:

 

The reason I work with features branches is quite simple.. In case my random ponny feature doesn't make it in the pull request (maybe the change isn't that smart or it breaks something I didn't consider) and therefore doesn't get merged into armbians masters I simply can delete my branch or let it collect dust but I don't have to do anything in my masters branch (e.g. 'rewrite' the git history to have it even with armbians for my next features branch which is hopefully better than the one which didn't make it - it's just painful to clean up a messed up masters to get it back to the githistory of armbians - believe me, I did it more than once when I wasn't that familiar with git :lol::ph34r: - as said in the starter, we all didn't start as git-kernel-u-boot-userspace ninjas :ph34r:). On a features branch this doesn't happen. :) delete it or let it collect dust once you don't need it anymore. 

Link to comment
Share on other sites

Thanks @chwe for your posts!

 

 

8 hours ago, JMCC said:

 

RK3399 media testing script released, in case someone makes the board work and wants to give it a try:

 

 

Well. Official Armbian not really ready yet and Radxa Armbian is Debian Stretch,  but thanks for it, that's really helpful for just user 

 

 

 

Link to comment
Share on other sites

On 1/4/2019 at 8:30 PM, chwe said:

some 'preview' Armbian images on their site. Problem here is that they defined their kernel and their u-boot in a new linuxfamily (https://github.com/brian541/build/blob/master/config/sources/rk3399rockpi4b.conf)

 

 

didn't saw any progress in the last days.. So not sure that they really prepare a PR. In case yes.. they should sync first with the current stage.. :D

Link to comment
Share on other sites

As promised we prepare a little patch for our RockPi... :)Since it's a while since we created our branch it makes sense to sync our branch with upstream. with:

git fetch upstream && git merge upstream/master && git push (followed by your username & password to keep the branch updated)

 

Spoiler

chwe@chwe-HP:~/armbian/build$ git fetch upstream
remote: Enumerating objects: 475, done.
remote: Counting objects: 100% (475/475), done.
remote: Compressing objects: 100% (45/45), done.
remote: Total 692 (delta 430), reused 464 (delta 430), pack-reused 217
Receiving objects: 100% (692/692), 210.76 KiB | 776.00 KiB/s, done.
Resolving deltas: 100% (520/520), completed with 121 local objects.
From https://github.com/armbian/build
   34ccb5d6..a156fddf  master     -> upstream/master
   df55ef1b..15a9940c  tvboxes    -> upstream/tvboxes
chwe@chwe-HP:~/armbian/build$ git merge upstream/master
Updating 34ccb5d6..a156fddf
Fast-forward
 README.md                                          |      2 +-
 config/boards/bananapim2ultra.csc                  |      6 +-
 config/boards/bananapim3.csc                       |      6 +-
 config/boards/bananapim64.csc                      |      4 +-
 config/boards/lepotato.conf                        |      6 +-
 config/boards/{lime-a64.wip => lime-a64.conf}      |      4 +-
 config/boards/nanopik2-s905.conf                   |      6 +-
 config/boards/odroidc2.conf                        |      8 +-
 config/boards/odroidxu4.conf                       |      7 +-
 config/boards/olinuxino-a64.wip                    |     22 -
 config/boards/orangepilite2.wip                    |      2 +-
 config/boards/orangepioneplus.wip                  |      2 +-
 config/boards/orangepiwin.conf                     |      4 +-
 config/boards/pine64.conf                          |      2 +-
 config/boards/pine64so.conf                        |      2 +-
 config/boards/pinebook-a64.conf                    |      7 +-
 config/boards/pineh64.wip                          |      2 +-
 config/boards/teres-a64.wip                        |      6 +-
 config/boards/tritium-h3.csc                       |      2 +-
 config/bootscripts/boot-meson64.cmd                |      2 +-
 config/kernel/linux-meson64-dev.config             |     84 +-
 config/kernel/linux-meson64-next.config            |   1621 +-
 config/kernel/linux-mvebu-next.config              |      2 +-
 config/kernel/linux-odroidxu4-default.config       |      2 +-
 config/kernel/linux-odroidxu4-dev.config           |   6098 +
 config/kernel/linux-odroidxu4-next.config          |   1522 +-
 config/kernel/linux-rockchip-next.config           |   3008 +-
 config/kernel/linux-rockchip64-dev.config          |     70 +-
 config/kernel/linux-sunxi-next.config              |   2899 +-
 config/kernel/linux-sunxi64-next.config            |   2438 +-
 config/sources/meson64.conf                        |      4 +-
 config/sources/mvebu-helios4.inc                   |      3 -
 config/sources/odroidxu4.conf                      |     14 +
 config/sources/rk3399.conf                         |      2 +-
 config/sources/rockchip.conf                       |      6 +-
 config/sources/sun50iw1.conf                       |     11 +
 config/sources/sun50iw6.conf                       |     20 +-
 config/sources/sunxi64_common.inc                  |     10 +-
 config/sources/sunxi_common.inc                    |      8 +-
 lib/configuration.sh                               |      2 +-
 packages/bsp/common/usr/sbin/nand-sata-install     |      4 +-
 packages/bsp/helios4/fancontrol.patch              |     22 -
 ...on-add-support-for-1080p25-mode.patch.disabled} |      0
 .../1024-fix-atomic-modeswitching.patch            |     67 +
 ...eson-gxbb-nanopi-k2-Add-HDMI-CEC-and-CVBS.patch |     81 -
 .../0001-libretech-cc-disable-CVBS-connector.patch |     24 -
 ...2-ASoC-meson-add-meson-audio-core-driver.patch} |     62 +-
 ...ake-DMT-timings-parameters-and-pixel-cloc.patch |   1314 -
 ...0003-ASoC-meson-add-register-definitions.patch} |      3 +-
 ... 0004-ASoC-meson-add-aiu-i2s-dma-support.patch} |     24 +-
 ...witch-gxbb-cts-amclk-div-to-the-generic-d.patch |     44 -
 ...5-ASoC-meson-add-initial-i2s-dai-support.patch} |     25 +-
 ...on-remove-unused-clk-audio-divider-driver.patch |     48 -
 ...006-ASoC-meson-add-aiu-spdif-dma-support.patch} |     27 +-
 ...ASoC-meson-add-initial-spdif-dai-support.patch} |     28 +-
 ...-dts-meson-gx-add-audio-controller-nodes.patch} |      3 +-
 ... 0010-snd-meson-activate-HDMI-audio-path.patch} |      3 +-
 ...-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch} |      3 +-
 ...eson-gx-add-sound-dai-cells-to-HDMI-node.patch} |      3 +-
 ...son-activate-hdmi-audio-HDMI-enabled-boa.patch} |     15 +-
 ...w-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch} |      5 +-
 .../0017-soc-amlogic-add-meson-canvas-driver.patch |      0
 ...-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch |      0
 ...all-drm_crtc_vblank_on-drm_crtc_vblank_of.patch |     36 -
 ...20-drm-meson-Use-optional-canvas-provider.patch |    172 +
 ...orm-meson-ao-cec-make-busy-TX-warning-sil.patch |     32 -
 ...eson-gx-Add-canvas-provider-node-to-the-v.patch |     25 +
 .../0021-soc-amlogic-add-meson-canvas-driver.patch |    280 -
 ...upport-Overlay-plane-for-video-rendering.patch} |    457 +-
 ...-soc-amlogic-add-meson-canvas-documentati.patch |     55 -
 ...-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch |     40 -
 ...ove-OSD-scaler-management-into-plane-atom.patch |    198 +
 .../0024-drm-meson-Add-primary-plane-scaling.patch |    285 +
 ...rm-meson-convert-to-the-new-canvas-module.patch |    399 -
 ...a-meson-add-v4l2-m2m-video-decoder-driver.patch |   5906 -
 ...eson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch |     55 +
 .../0027-ARM64-dts-meson-gx-add-vdec-entry.patch   |     35 -
 ...eson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch |     79 +
 ...eson-gxl-libretech-cc-fix-GPIO-lines-name.patch |     38 +
 ...meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch |      0
 ...-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch |     38 +
 ...meson-gxl-khadas-vim-fix-GPIO-lines-names.patch |     38 +
 ...son-Add-support-for-VIC-alternate-timings.patch |    328 +
 ...a-meson-add-v4l2-m2m-video-decoder-driver.patch |   2969 +
 .../0034-MAINTAINERS-Add-meson-video-decoder.patch |     32 +
 .../0035-arm64-dts-meson-gx-add-vdec-entry.patch   |     38 +
 ...=> 0036-arm64-dts-meson-add-vdec-entries.patch} |     45 +-
 ...introduce-controls-and-V4L2_CID_MIN_BUFFE.patch |    153 +
 ...eodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch |     49 +
 ...allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch |    270 +
 ...dia-meson-vdec-add-H.264-decoding-support.patch |    591 +
 ...dia-meson-vdec-add-MPEG4-decoding-support.patch |    313 +
 ...dia-meson-vdec-add-MJPEG-decoding-support.patch |    253 +
 ...son-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch |     42 +
 .../1008-drm-meson-Add-HDMI-1.4-4k-modes.patch     |    165 +
 ...009-drm-meson-Use-drm_fbdev_generic_setup.patch |    100 +
 ...up-drm-meson-Use-optional-canvas-provider.patch |     21 +
 ...son-add-support-for-1080p25-mode.patch.disabled |     21 +
 ...dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch |    147 +
 .../1015-drm-meson-add-HDMI-div40-TMDS-mode.patch  |     69 +
 ...meson-add-support-for-HDMI2.0-2160p-modes.patch |     28 +
 ...dge-dw-hdmi-add-support-for-YUV420-output.patch |    198 +
 ...dw-hdmi-support-dynamically-get-input-out.patch |    102 +
 ...e-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch |     46 +
 .../1020-drm-meson-Add-YUV420-output-support.patch |    582 +
 ...eson-Output-in-YUV444-if-sink-supports-it.patch |     31 +
 ...ix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch |    124 +
 .../1024-fix-atomic-modeswitching.patch            |     86 +
 ...dts-meson-Fix-IRQ-trigger-type-for-macirq.patch |     62 +
 ...rm-meson-fix-max-mode_config-height-width.patch |     33 +
 .../kernel/meson64-next/board-nanopi_k2_hdmi.patch |     77 -
 .../meson64-next/board-odroidc2-enable-SPI.patch   |     11 +-
 ...-SPI.patch => board_nanopi_k2_add_spidev.patch} |     19 +-
 ...rk-fclk_div3-critical.patch => fclk_div3.patch} |      2 +-
 .../general-add-configfs-overlay.patch}            |     52 +-
 .../general-add-overlay-compilation-support.patch  |      0
 .../meson64-next/general-aufs4.18-20180820.patch   |  38760 -
 .../general-aufs4.19-20181029.patch                |      0
 .../general-dwc2-partial-powerdown-fix.patch       |     12 +
 .../general-meson64-add-uartC-alias.patch          |     12 +
 .../general-meson64-fix-uartC-pinctrl.patch        |     30 +
 .../general-meson64-i2cX-missing-pins.patch        |     22 +
 .../meson64-next/general-meson64-overlays.patch    |    172 +
 .../meson64-next/general-packaging-4.17-next.patch |     28 +-
 .../meson64_remove_spidev_warning.patch            |     18 +
 .../meson64-next/wifi-2002-02-rtl8188eu.patch      |     11 +-
 ...eneral-armbian-boot-logo-on-screen-center.patch |      0
 .../general-aufs4.19-20181029.patch                |      0
 ...asing_DMA_block_memory_allocation_to_2048.patch |      0
 .../odroidxu4-dev/general-packaging-4.18-dev.patch |    221 +
 .../overclock-1.5-2.0.patch.disabled               |      0
 .../wifi-0001-realtek-881xAU-605ecfa.patch}        |      0
 ...i-0002-realtek-881xAU-adding-kernel-4.14.patch} |      0
 .../wifi-0003-realtek-881xAU-enable-8814au.patch}  |      0
 ...ifi-0005-realtek-881xAU-update-to-5a5d0f.patch} |      0
 .../wifi-2001-01-rtl8188eu-kconfig-makefile.patch  |      0
 .../wifi-2002-02-rtl8188eu.patch                   |      0
 .../0000-remove-stock-8188eu-8812au.patch          | 624724 +++++++++++
 .../0001-aufs4.14-20181119.patch                   |      0
 .../armbian-boot-logo-on-screen-center.patch       |      0
 ...asing_DMA_block_memory_allocation_to_2048.patch |      0
 .../kernel/odroidxu4-next/not-booting-bugfix.patch |     55 +
 ...ckaging-4.x-NEXT-with-postinstall-scripts.patch |     53 +-
 .../odroidxu4-next/wifi-0010-realtek-8188EU.patch  | 315820 ++++++
 ...0011-realtek-8188EU-kconfig-makefile-4.14.patch |     24 +
 .../0000-mali-r19p0-01rel0.patch                   |      0
 ...Mali-midgard-r19p0-fixes-for-4.13-kernels.patch |      0
 ...ew-header-on-4.12-kernels-for-copy_-_user.patch |      0
 ...ser_pages-calls-to-use-the-new-calling-pr.patch |      0
 ...TOO-severe-when-looking-for-the-IRQ-names.patch |      0
 ...ew-compatible-list-mainly-used-by-Rockchi.patch |      0
 ...6-gpu-arm-Midgard-setup_timer-timer_setup.patch |      0
 ...-Arm-Midgard-Replace-ACCESS_ONCE-by-READ_.patch |      0
 ...u-arm-midgard-Remove-sys_close-references.patch |      0
 ...Midgard-Adapt-to-the-new-mmap-call-checks.patch |      0
 ...i-Midgard-remove-rcu_read_lock-references.patch |      0
 ...r-act8865-add-restart-handler-for-act8846.patch |      0
 ...egrating-Mali-Midgard-video-and-gpu-drive.patch |      0
 ...p-add-all-known-operating-points-to-the-a.patch |      0
 ...p-rk3288-prefer-vdpu-for-vcodec-clock-sou.patch |      0
 ...ove-the-dependency-to-the-clk_mali-symbol.patch |      0
 .../1005-ASUS-Tinkerboard-Stupid-reboot.patch      |      0
 ...c-dw-mci-rockchip-Handle-ASUS-Tinkerboard.patch |      0
 ...rockchip-power-domain-export-idle-request.patch |      0
 ...-rockchip-better-clock-selection-logic-an.patch |      0
 .../1100-media-Add-JPEG_RAW-format.patch           |      0
 ...ls-for-JPEG-quantization-tables.patch.disabled} |      0
 ...ts-rk3288-miqi-Enabling-the-Mali-GPU-node.patch |      0
 ...kchip-fix-the-regulator-s-voltage-range-o.patch |      0
 ...kchip-add-the-MiQi-board-s-fan-definition.patch |      0
 ...kchip-add-support-for-1800-MHz-operation-.patch |      0
 ...-dts-rockchip-miqi-add-turbo-mode-operati.patch |      0
 .../2006-ARM-DTSI-rk3288-Missing-GRF-handles.patch |      0
 ...3288-DTSI-rk3288-Add-missing-SPI2-pinctrl.patch |      0
 ...d-support-for-Tinkerboard-s-SPI-interface.patch |      0
 ...SI-rk3288-Adding-cells-addresses-and-size.patch |      0
 ...SI-rk3288-Adding-missing-EDP-power-domain.patch |      0
 ...DTSI-rk3288-Adding-missing-VOPB-registers.patch |      0
 ...-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch |      0
 ...-rk3288-tinker-Enabling-SDIO-Wireless-and.patch |      0
 ...3288-tinker-Setup-the-Bluetooth-UART-pins.patch |      0
 ...-rk3288-tinker-Improving-the-CPU-max-volt.patch |      0
 ...-rk3288-tinker-Setting-up-the-SD-regulato.patch |      0
 ...-rk3288-tinker-Defined-the-I2C-interfaces.patch |      0
 ...288-tinker-Add-the-MIPI-DSI-node.patch.disabled |      0
 ...S-rk3288-tinker-Defining-SDMMC-properties.patch |      0
 ...0-ARM-DTSI-rk3288-Define-the-VPU-services.patch |      0
 ...-rk3288-miqi-Enable-the-Video-encoding-MM.patch |      0
 ...288-tinker-Enable-the-Video-encoding-MMU-.patch |      0
 ...3288-firefly-Enable-the-Video-encoding-MM.patch |      0
 ...3288-veyron-Enable-the-Video-encoding-MMU.patch |      0
 ...SI-rk3288-Renamed-the-VPU-services-clocks.patch |      0
 ...DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch |      0
 ...e-VPU-service-as-defined-in-the-V4L2-driv.patch |      0
 ...000_RK3288-Tinkerboard-add-1.7_1.8Ghz_OPP.patch |      0
 .../board-tinkerboard-enable-emmc-support.patch    |      0
 .../general-add-overlay-compilation-support.patch} |     34 +-
 .../general-add-overlays.patch                     |      0
 .../xt-q8l-v10-add-device-tree.patch               |      0
 .../xt-q8l-v10-add-dts-makefile.patch              |      0
 .../xt-q8l-v10-remote-keymap.patch                 |      0
 .../wifi-0001-realtek-wifi-881xAU-605ecfa.patch    | 992322 ------------------
 ...02-realtek-wifi-881xAU-adding-kernel-4.14.patch |     26 -
 ...fi-0003-realtek-wifi-881xAU-enable-8814au.patch |     46 -
 ...0005-realtek-wifi-881xAU-update-to-5a5d0f.patch |   4586 -
 ...6-gpu-arm-Midgard-setup_timer-timer_setup.patch |     98 +
 ...-Arm-Midgard-Replace-ACCESS_ONCE-by-READ_.patch |     35 +
 ...u-arm-midgard-Remove-sys_close-references.patch |     32 +
 .../1001-Integrating-the-Mali-drivers.patch        |     65 -
 ...egrating-Mali-Midgard-video-and-gpu-drive.patch |     39 +
 ...h => 1005-ASUS-Tinkerboard-Stupid-reboot.patch} |     67 +-
 .../1006-rockchip-rga-v4l2-m2m-support.patch       |   2295 -
 ...rockchip-power-domain-export-idle-request.patch |     82 +
 ...ndings-Document-the-Rockchip-RGA-bindings.patch |     59 -
 .../1008-dwc2-avoid_nak_for_csplit.patch           |     83 -
 ...1008-rockchip-dwc2-usb-partial-power-down.patch |      0
 ...-rk3288-support-for-dedicating-NPLL-to-a-.patch |      0
 ...-rockchip-better-clock-selection-logic-an.patch |    424 +
 .../1100-media-Add-JPEG_RAW-format.patch           |     63 +
 ...Add-controls-for-JPEG-quantization-tables.patch |    153 +
 ...I-rk3288-Adding-cells-addresses-and-size.patch} |      0
 ...I-rk3288-Adding-missing-EDP-power-domain.patch} |      0
 ...TSI-rk3288-Adding-missing-VOPB-registers.patch} |      0
 .../2012-ARM-DTSI-rk3288-Add-the-RGA-node.patch    |     40 -
 ...DTSI-rk3288-Fixed-the-SPDIF-node-address.patch} |      0
 ...rk3288-tinker-Enabling-SDIO-Wireless-and.patch} |      0
 ...288-tinker-Setup-the-Bluetooth-UART-pins.patch} |      0
 ...-rk3288-tinker-Improving-the-CPU-max-volt.patch |     29 +
 ...rk3288-tinker-Setting-up-the-SD-regulato.patch} |      0
 ...rk3288-tinker-Defined-the-I2C-interfaces.patch} |      0
 ...88-tinker-Add-the-MIPI-DSI-node.patch.disabled} |      0
 ...-rk3288-tinker-Defining-SDMMC-properties.patch} |      0
 ...-rk3288-tinker-Defining-the-SPI-interface.patch |     49 -
 ...-ARM-DTSI-rk3288-Define-the-VPU-services.patch} |      0
 ...rk3288-miqi-Enable-the-Video-encoding-MM.patch} |      0
 ...88-tinker-Enable-the-Video-encoding-MMU-.patch} |      0
 ...288-firefly-Enable-the-Video-encoding-MM.patch} |      0
 ...288-veyron-Enable-the-Video-encoding-MMU.patch} |      0
 ...SI-rk3288-Renamed-the-VPU-services-clocks.patch |     39 +
 ...DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch |     56 +
 ...e-VPU-service-as-defined-in-the-V4L2-driv.patch |     43 +
 .../rockchip-next/260_DTS_gpiomem_node.patch       |     17 -
 .../kernel/rockchip-next/261_gpiomem_driver.patch  |    364 -
 ...000_RK3288-Tinkerboard-add-1.7_1.8Ghz_OPP.patch |     45 +
 ...dio.patch => 3001_Tinkerboard-4.19-audio.patch} |     18 +-
 ...288-add-missing-interleaved-pcm-attribute.patch |      0
 .../3004-Tinkerboard-overclocking-operation.patch  |    122 -
 ...-dai_name-for-HDMI-codec-to-the-asoc-tree.patch |     13 -
 .../rockchip-next/5000-add-link-miniarm-dtb.patch  |     20 -
 .../ARM-DTSI-rk3288-add-usbphy-reset.patch         |      8 +-
 ...y-reset-when-waking-up-in-rk3288-platform.patch |     27 +-
 .../rockchip-next/bash_to_afterinstall.patch       |     11 -
 ...d-tinkerboard-support-older-eMMC-installs.patch |    665 +
 .../brcmfmac-add-ap6330-firmware.patch             |     38 +-
 .../general-add-overlay-compilation-support.patch  |    119 +
 .../rockchip-next/general-add-overlays.patch       |    513 +
 .../general-aufs4.19-20181029.patch                |      0
 ...asing_DMA_block_memory_allocation_to_2048.patch |     27 +
 .../general-packaging-4.17-dev.patch}              |      8 +-
 .../rockchip-next/memolry-leak-fix-r8723bs.patch   |     26 -
 ...linked-power-save-info-when-not-debugging.patch |     22 -
 .../rockchip-next/wifi-2002-02-rtl8188eu.patch     |     11 +-
 .../rockchip-next/xt-q8l-v10-add-device-tree.patch |     78 +-
 patch/kernel/rockchip64-default/50-fix_drm.patch   |     23 +
 .../rockchip64-default/Add_dts_rk3328-roc-cc.patch |      4 +-
 .../rockchip64-default/enable-1512mhz-opp.patch    |     22 +
 .../board-rockpi4-dts-wip-fixup.patch              |     63 +
 .../timekeeping32-tweaks-for-4.20.y.patch          |     24 +
 ...llwinner-a64-Enable-HDMI-output-on-A64-bo.patch |    286 -
 ...llwinner-a64-enable-sound-on-Pine64-and-S.patch |     14 +-
 ...move-ANA78xx-driver-to-analogix-subdirect.patch |      9 +-
 ...or-brcm-wifi-on-Cubietruck-and-Banana-Pro.patch |     90 +
 .../kernel/sunxi-dev/add-h5-emmc-compatible.patch  |     26 +
 .../kernel/sunxi-dev/add-orangepi-zeroplus2.patch  |    204 +-
 ...inner-a64-Add-Pine64-LTS-device-tree-file.patch |     12 -
 ...64-dts-allwinner-a64-Olinuxino-enable-USB.patch |      8 -
 .../sunxi-dev/board-h3-add-rtc-osc32k-out.patch    |     28 +
 ...-arm64-allwinner-h6-add-EMAC-device-nodes.patch |     13 -
 patch/kernel/sunxi-dev/fix-H6-irq-banks.patch      |     13 +
 .../fix-bananam2ultra-missing-clk-out-a.patch      |     42 +
 .../sunxi-dev/fix-bananapi-m2-plus-wifi.patch      |     13 +
 .../sunxi-dev/fix-bananapi-m2-ultra-wifi.patch     |    108 +
 patch/kernel/sunxi-dev/fix-orangepiwin-usb.patch   |     35 +
 .../general-add-overlay-compilation-support.patch  |     35 -
 .../general-aufs4.19-20181029.patch.disabled       |  39290 +
 ...-dev.patch => general-packaging-4.20-dev.patch} |      2 +-
 .../kernel/sunxi-dev/general-sunxi-overlays.patch  |    322 +-
 ...nand-disable-badblock-check-for-migration.patch |     19 +-
 .../timekeeping32-tweaks-for-4.20.y.patch          |     24 +
 .../sunxi-dev/wifi-bt-bananapi-m2-plus.patch       |     34 +
 .../sunxi-next/00-19-add-H3-i2s-DT-nodes.patch     |     50 -
 .../00-readd-dwmac-sun8i-DT-bindings-arm64.patch   |    307 -
 .../00-readd-dwmac-sun8i-DT-bindings.patch         |    301 -
 .../00-readd-dwmac-sun8i-compatibles.patch         |     31 -
 .../0000-axp-adjustements.patch.disabled           |    229 +
 .../sunxi-next/0000-remove-old-ths-node.patch      |     24 +
 ...100-codec-Initial-implementation.patch.disabled |    346 +
 patch/kernel/sunxi-next/0000-unlock-h5-dvfs.patch  |     46 +
 ...m64-allwinner-a64-enable-Wi-Fi-for-Pine64.patch |     52 +
 .../kernel/sunxi-next/0001-aufs4.14-20181119.patch |  39402 -
 ...arm64-allwinner-a64-add-Mali-device-node.patch} |     70 +-
 ...dwmac-sun8i-support-RGMII-modes-with-PHY-.patch |     35 +
 ...nner-a64-disable-the-RTL8211E-internal-RX.patch |     35 +
 ...drm-gem-cma-Export-with-handle-allocator.patch} |     13 +-
 ...atch => 0006-drm-sun4i-Add-GEM-allocator.patch} |     21 +-
 ...07-Add-sopine-HDMI-sound-and-WiFi-support.patch |     96 +
 ...ts-sun50i-a64-pine64-add-HDMI-audio-nodes.patch |     39 +
 ...-update-the-Allwinner-GPADC-device-tree-b.patch |     95 +
 ...4i-gpadc-iio-rename-A33-specified-registe.patch |     56 +
 ...4i-gpadc-iio-rework-sampling-start-end-co.patch |    237 +
 ...4i-gpadc-iio-rework-support-clocks-and-re.patch |    168 +
 ...4i-gpadc-iio-rework-support-multible-sens.patch |    186 +
 ...4i-gpadc-iio-rework-support-nvmem-calibra.patch |    166 +
 ...4i-gpadc-iio-rework-add-interrupt-support.patch |    253 +
 ...4i-gpadc-iio-add-support-for-H3-thermal-s.patch |     67 +
 ...4i-gpadc-iio-add-support-for-A83T-thermal.patch |     75 +
 ...xi-h3-h5-add-support-for-the-thermal-sens.patch |     39 +
 ...8i-h3-add-support-for-the-thermal-sensor-.patch |     30 +
 ...1-arm-dts-sun8i-h3-add-thermal-zone-to-H3.patch |     36 +
 ...un8i-h3-enable-H3-sid-controller.patch.disabled |     34 +
 ...dd-support-for-the-thermal-senso.patch.disabled |     38 +
 ...8i-a83t-add-thermal-zone-to-A83T.patch.disabled |     46 +
 ...adc-Kconfig-enable-A80-A64-and-H5-for-THS.patch |     26 +
 ...4i-gpadc-iio-add-support-for-H5-thermal-s.patch |     79 +
 ...4i-gpadc-iio-add-support-for-A80-thermal-.patch |     86 +
 ...4i-gpadc-iio-add-support-for-A64-thermal-.patch |     87 +
 ...llwinner-h5-add-support-for-the-thermal-s.patch |     30 +
 ...64-dts-allwinner-h5-add-termal-zone-to-H5.patch |     43 +
 ...9i-a80-add-support-for-the-thermal-sensor.patch |     42 +
 ...arm-dts-sun9i-a80-add-thermal-zone-to-A80.patch |     54 +
 patch/kernel/sunxi-next/0034-dts-a64-ths.patch     |     62 +
 ...g-add-mux-and-pll-notifiers-for-A64-CPU-c.patch |     73 +
 ...-iio-ignore-zero-samples-to-avoid-force-p.patch |     31 +
 patch/kernel/sunxi-next/0037-a64-dvfs-wip.patch    |    256 +
 .../0038-ARM-dts-add-gpu-node-to-exynos4.patch     |     64 +
 ...-add-switch-delay-property-for-mali-utgar.patch |     29 +
 .../0042-drm-lima-add-lima-uapi-header.patch       |    215 +
 ...3-drm-lima-add-mali-4xx-GPU-hardware-regs.patch |    325 +
 .../0044-drm-lima-add-lima-core-driver.patch       |    573 +
 .../0045-drm-lima-add-GPU-device-functions.patch   |    573 +
 .../0046-drm-lima-add-PMU-related-functions.patch  |    144 +
 .../0047-drm-lima-add-L2-cache-functions.patch     |    158 +
 .../0048-drm-lima-add-GP-related-functions.patch   |    358 +
 .../0049-drm-lima-add-PP-related-functions.patch   |    487 +
 .../0050-drm-lima-add-MMU-related-functions.patch  |    218 +
 .../0051-drm-lima-add-BCAST-related-function.patch |    131 +
 .../0052-drm-lima-add-DLBU-related-functions.patch |    142 +
 ...lima-add-GPU-virtual-memory-space-handing.patch |    414 +
 ...0054-drm-lima-add-TTM-subsystem-functions.patch |    481 +
 ...0055-drm-lima-add-buffer-object-functions.patch |    235 +
 .../0056-drm-lima-add-GEM-related-functions.patch  |    530 +
 ...-drm-lima-add-GEM-Prime-related-functions.patch |    126 +
 ...drm-lima-add-GPU-schedule-using-DRM_SCHED.patch |    651 +
 ...59-drm-lima-add-context-related-functions.patch |    222 +
 .../0060-drm-lima-add-makefile-and-kconfig.patch   |     83 +
 ...use-SPDX-identifiers-and-change-copyright.patch |   1115 +
 .../0062-drm-lima-lima_reg.h-use-BIT.patch         |    306 +
 .../0063-drm-lima-add-IRQF_SHARED-for-GP-irq.patch |     30 +
 ...-lima-Kconfig-only-depend-on-ARM-or-ARM64.patch |     30 +
 ...0065-drm-lima-add-comments-for-lima_reg.h.patch |     31 +
 ...66-drm-lima-wait-bo-fence-before-bo-close.patch |    114 +
 .../0067-drm-lima-refine-lima_gem_sync_bo.patch    |    125 +
 ...vm-will-be-freed-when-lima_sched_free_job.patch |     25 +
 ...ima-vm-alloc-buffer-with-multi-page-table.patch |    189 +
 ...0-drm-lima-clear-vm-page-table-when-alloc.patch |     35 +
 ...-update-SPDX-header-to-match-kernel-rules.patch |    514 +
 ...-drm-fourcc-add-ARM-tiled-format-modifier.patch |     33 +
 .../0073-drm-lima-add-DRM_LIMA_GEM_MOD-ioctl.patch |    172 +
 ...ble-LDOs-for-pll-mipi-and-add-min-max-rat.patch |     58 +
 ...75-sopine-baseboard-enable-HS200-for-eMMC.patch |     25 +
 .../0076-drm-lima-remove-depend-on-ARM-arch.patch  |     63 +
 .../0077-drm-lima-port-to-4.18-kernel.patch        |     27 +
 ...ser-can-choose-not-to-use-dlbu-on-mali450.patch |    309 +
 ...o-workaround-for-dw_hdmi-v1.32a.patch.disabled} |     11 +-
 ...isable-error-message-about-failure-to-all.patch |     26 +
 ...timer-Workaround-for-Allwinner-A64-timer-.patch |    178 +
 ...allwinner-a64-Enable-A64-timer-workaround.patch |     30 +
 ...ng-Add-maximum-rate-constraint-to-NM-PLLs.patch |      0
 ...g-h3-h5-Add-max.-rate-constraint-to-pll-v.patch |      0
 ...g-Adjust-MP-clock-parent-rate-when-allowe.patch |    107 +
 ...nxi-ng-Use-u64-for-calculation-of-NM-rate.patch |      0
 ...con-Pass-drm_encoder-into-sun4i_tcon0_mod.patch |      0
 ...con-Rename-Dithering-related-register-mac.patch |      0
 ...con-Add-dithering-support-for-RGB565-RGB6.patch |      0
 ...con-prevent-tcon-panel-dereference-if-nul.patch |      0
 ...xi-ng-a64-Add-minimal-rate-for-video-PLLs.patch |      0
 ...g-a64-Add-max.-rate-constraint-to-video-P.patch |      0
 ...-display-Add-compatible-for-A64-DE2-displ.patch |      0
 ...0094-drm-sun4i-Add-support-for-A64-mixers.patch |      0
 ...-sun4i-Add-support-for-A64-display-engine.patch |      0
 ...dings-display-Add-compatible-for-A64-HDMI.patch |      0
 ...-clock-sun50i-a64-ccu-Add-PLL_VIDEO0-macr.patch |      0
 ...64-dts-allwinner-a64-Add-display-pipeline.patch |      0
 ...-sun4i-drm-add-HDMI-VCC-supply-property-f.patch |      0
 ...4i-Add-support-for-HDMI-voltage-regulator.patch |      0
 ...llwinner-a64-Enable-HDMI-output-on-A64-bo.patch |    364 +
 ...-power-supply-axp20x-add-AXP813-AC-power-.patch |     42 +
 ...-power-supply-axp20x-add-AXP803-power-bin.patch |     43 +
 ...-gpio-gpio-axp209-add-AXP803-GPIO-binding.patch |     38 +
 ...-bindings-iio-adc-add-AXP803-ADC-bindings.patch |     37 +
 ...RM-dts-axp81x-add-AC-power-supply-subnode.patch |     34 +
 ...llwinner-axp803-add-AC-and-battery-power-.patch |     63 +
 ...llwinner-a64-sopine-baseboard-enable-powe.patch |     39 +
 ...llwinner-a64-pinebook-enable-power-suppli.patch |     35 +
 ...ply-add-AC-power-supply-driver-for-AXP813.patch |    179 +
 ...xp20x-Add-AC-power-supply-cell-for-AXP813.patch |     41 +
 ...mfd-axp20x-Add-supported-cells-for-AXP803.patch |     49 +
 ...i2s-move-code-from-startup-shutdown-hooks.patch |      0
 ...-i2s-Add-compatibility-with-A64-codec-I2S.patch |      0
 ...un8i-codec-Don-t-hardcode-BCLK-LRCK-ratio.patch |      0
 ...codec-analog-split-regmap-code-into-separ.patch |      0
 ...ding-Add-bindings-for-Allwinner-A64-codec.patch |     40 +
 ...Add-new-driver-for-Allwinner-A64-codec-s-.patch |      0
 ...allow-the-sun8i-codec-driver-to-be-built-.patch |      0
 ...llwinner-a64-add-nodes-necessary-for-anal.patch |     99 +
 ...llwinner-a64-enable-sound-on-Pine64-and-S.patch |    120 +
 ...ts-allwinner-a64-enable-sound-on-Pinebook.patch |     86 +
 ...con-enable-dithering-on-tcon0-is-there-s-.patch |     58 +
 ...x-Lima-to-work-with-drm-scheduler-changes.patch |     46 +
 .../0125-drm-lima-Fix-lima-cache-creation.patch    |     56 +
 ...move-ANA78xx-driver-to-analogix-subdirect.patch |    100 +
 ...split-some-definitions-of-ANX78xx-to-dedi.patch |   1005 +
 ...-extract-some-Analogix-I2C-DP-common-code.patch |    403 +
 ...gs-Add-ANX6345-DP-eDP-transmitter-binding.patch |     64 +
 ...0-drm-bridge-Add-Analogix-anx6345-support.patch |    981 +
 ...4-allwinner-a64-add-pinmux-for-RGB666-LCD.patch |     37 +
 ...nner-a64-enable-ANX6345-bridge-on-Pineboo.patch |     84 +
 ...nner-a64-enable-ANX6345-bridge-on-TERES-I.patch |     87 +
 ...gb-Add-5-tolerance-to-dot-clock-frequency.patch |     58 +
 ...g-enable-so-said-LDOs-for-A64-SoC-s-pll-m.patch |     43 +
 .../kernel/sunxi-next/0136-hdmi-audio-fixup.patch  |     24 +
 .../sunxi-next/0137-Pinebook-HDMI-audio.patch      |     39 +
 ...rename-SND_SUNXI_ADDA_PR_REGMAP-to-SND_SU.patch |      0
 ...dd-new-quirk-for-broken-local-ext-feature.patch |     54 +
 ...uetooth-hci_h5-Add-support-for-reset-GPIO.patch |     57 +
 ...ngs-net-bluetooth-Add-rtl8723bs-bluetooth.patch |     57 +
 ...ci_h5-Add-support-for-binding-RTL8723BS-w.patch |     68 +
 ...tooth-btrtl-add-support-for-the-RTL8723CS.patch |    311 +
 ...llwinner-a64-enable-Bluetooth-On-Pinebook.patch |     44 +
 ...-allwinner-a64-enable-Bluetooth-On-Pine64.patch |     40 +
 ...nner-a64-enable-Bluetooth-On-SoPine-baseb.patch |     45 +
 patch/kernel/sunxi-next/02-add-H3-mixers.patch     |     52 -
 patch/kernel/sunxi-next/03-add-H3-TCONs.patch      |    165 -
 .../sunxi-next/04-add-H3-DE-compatible.patch       |     24 -
 .../05-clk_de-allow-set-rate-parent.patch          |     32 -
 .../sunxi-next/06-export-H3-clk-pll-de.patch       |     44 -
 .../sunxi-next/07-1-add-H3-H5-DE2-DT-nodes.patch   |    202 -
 .../sunxi-next/07-2-add-H3-DE2-DT-nodes.patch      |     19 -
 .../sunxi-next/07-3-add-H5-DE2-DT-nodes.patch      |     32 -
 .../sunxi-next/08-dw-hdmi-enable-polling.patch     |     30 -
 .../sunxi-next/09-dw-hdmi-add-workarounds.patch    |     40 -
 .../10-clk-hdmi-allow-set-rate-parent.patch        |     28 -
 .../11-drm-sun4i-allow-building-arm64.patch        |     25 -
 .../kernel/sunxi-next/12-dw-hdmi-add-H3-glue.patch |    557 -
 .../sunxi-next/13-dw-hdmi-add-DT-nodes.patch       |     59 -
 .../sunxi-next/14-sun4i-i2s-workarounds.patch      |     89 -
 .../15-clk-sunxi-ng-fix-runtime-warnings.patch     |     95 -
 .../sunxi-next/16-H3-add-HDMI-sound-nodes.patch    |     55 -
 .../17-1-enable-hdmi-video-on-several-boards.patch |    340 -
 .../17-2-enable-hdmi-video-on-several-boards.patch |    126 -
 .../18-1-enable-hdmi-sound-on-several-boards.patch |    117 -
 .../18-2-enable-hdmi-sound-on-several-boards.patch |     52 -
 .../21-sun4i-gpadc-iio-add-split-sun8i.patch       |     30 -
 .../22-sun4i-gpadc-iio-add-H3-support.patch        |    397 -
 ...-sun4i-gpadc-iio-add-H3-thermal-sensor-DT.patch |     28 -
 ...4-sun4i-gpadc-iio-add-H3-CPU-thermal-zone.patch |     93 -
 ...sun4i-gpadc-iio-workaround-for-raw-0-read.patch |     34 -
 .../26-sun4i-gpadc-iio-add-h5-a64-support.patch    |    153 -
 .../sunxi-next/27-sun4i-gpadc-iio-add-h5-DT.patch  |     28 -
 .../33-pll-gpu-allow-set-rate-parent.patch         |     28 -
 .../40-add-SY8106A-regulator-driver.patch          |    236 -
 .../sunxi-next/41-h3-h5-Add-r_i2c-controller.patch |     45 -
 .../sunxi-next/42-h3-h5-Add-r_i2c-pins.patch       |     35 -
 .../sunxi-next/45-add-h3-cpu-OPP-table.patch       |     76 -
 .../sunxi-next/46-H3-add-opp-table-to-cpu.patch    |     56 -
 .../sunxi-next/47-03-enable-dvfs-opi-pc.patch      |     36 -
 .../sunxi-next/47-04-enable-dvfs-opi-2.patch       |     36 -
 .../sunxi-next/47-05-enable-dvfs-opi-lite.patch    |     32 -
 .../sunxi-next/51-01-enable-dvfs-opi-pc2.patch     |     36 -
 .../sunxi-next/51-02-enable-dvfs-opi-prime.patch   |     36 -
 ...or-brcm-wifi-on-Cubietruck-and-Banana-Pro.patch |     90 +
 .../Revert_BT_HCIUART_RTL_ACPI_dependency.patch    |     18 +
 patch/kernel/sunxi-next/add-A64-nmi_intc.patch     |     19 -
 .../add-a20-olimex-som204-evb-emmc.patch           |    371 -
 .../add-a20-olinuxino-micro-emmc-support.patch     |     98 -
 patch/kernel/sunxi-next/add-a64-pinebook.patch     |    361 -
 .../add-ad9834-dt-bindings.patch.disabled          |    174 -
 patch/kernel/sunxi-next/add-axp803-DT.patch        |    156 -
 patch/kernel/sunxi-next/add-bananapi-m2-zero.patch |    164 -
 .../sunxi-next/add-emmc-nanopineo-core.patch       |     26 -
 patch/kernel/sunxi-next/add-h3-librecomputer.patch |    255 -
 .../sunxi-next/add-hdmi-net-bits-beelinkx3.patch   |    139 -
 patch/kernel/sunxi-next/add-missing-spi-a64.patch  |     56 -
 .../kernel/sunxi-next/add-orangepi-zeroplus2.patch |      4 +-
 .../sunxi-next/add-r40-m2ultra-a83t-i2s-i2c.patch  |   1746 -
 .../add-sdio-wifi-orangepi-zero-plus2.patch        |     60 -
 patch/kernel/sunxi-next/add-sunxi-overlays.patch   |   3763 -
 patch/kernel/sunxi-next/add-sunxi64-overlays.patch |   1821 -
 .../add-usb-orangepi-zero-plus2.patch.disabled     |     30 -
 patch/kernel/sunxi-next/add_otg_neoair.patch       |     31 -
 .../arm64-set-default-target-to-Image.patch        |     13 -
 patch/kernel/sunxi-next/bash_to_afterinstall.patch |     11 -
 ...rm64-dts-allwinner-a64-Add-L2-cache-nodes.patch |      0
 ...inner-a64-Add-Pine64-LTS-device-tree-file.patch |     31 +
 ...-allwinner-a64-Olinuxino-fix-DRAM-voltage.patch |      0
 ...llwinner-a64-Olinuxino-add-Ethernet-nodes.patch |      0
 ...64-dts-allwinner-a64-Olinuxino-enable-USB.patch |     88 +
 ...llwinner-a64-NanoPi-A64-Fix-DCDC1-voltage.patch |      0
 ...dts-allwinner-a64-NanoPi-A64-Add-Ethernet.patch |      0
 ...ts-allwinner-a64-NanoPi-A64-Add-Wifi-chip.patch |     41 +
 ...winner-a64-NanoPi-A64-Add-blue-status-LED.patch |     20 +
 ...40-Add-max.-rate-constraint-to-video-PLLs.patch |      0
 ...i-ng-nkmp-Add-constraint-for-maximum-rate.patch |      0
 ...3t-Add-max.-rate-constraint-to-video-PLLs.patch |      0
 .../board-a83t-add-one-more-freq-step-1.6ghz.patch |     32 +
 ...s-sun8i-a83t-Add-the-cir-pin-for-the-A83T.patch |      0
 ...8i-a83t-Add-support-for-the-cir-interface.patch |      0
 ...n8i-a83t-bananapi-m3-Enable-IR-controller.patch |     16 +
 ...ter-size-should-be-the-whole-memory-block.patch |      0
 patch/kernel/sunxi-next/board-add-tritium-h5.patch |    480 -
 ...o.patch => board-bpi-m2-zero-enable-dvfs.patch} |     18 +-
 .../board-bpi-m3-make-ethernet-working.patch       |      0
 ...ard-cubieboard-cubietruck-green-LED-mmc0.patch} |     12 +
 ...2.patch => board-cubietruck-enable-uart2.patch} |      0
 .../board-cubietruckplus-enable-hdmi.patch         |     50 +
 ...ch => board-h2plus-nanopi-duo-add-device.patch} |    137 +-
 ...h => board-h2plus-sunvell-r69-add-device.patch} |     60 +-
 ...3-address-some-stability-issues.patch.disabled} |      0
 ... board-h3-nanopi-fix-random-ethernet-mac.patch} |      0
 .../board-h3-nanopi-neo-core-add-emmc.patch        |     28 +
 ...patch => board-h5-add-0000-nanopi-k1plus.patch} |    231 +-
 .../board-h5-add-0001-nanopi-neo-core2.patch       |     19 +-
 .../board-h5-add-0002-nanopi-neo2-v1.1.patch       |      8 +-
 ...tch => board-h5-add-0003-nanopi-m1-plus2.patch} |     34 +-
 .../board-h5-orangepi-pc2-add-spi-flash.patch      |     36 +
 ...oard-h5-orangepi-zero-plus-add-regulator.patch} |     14 +-
 .../board-h5-orangepi-zero-plus2-onboard-led.patch |     27 +
 .../board-h6-add-orangepi-one-plus-and-lite2.patch |    558 +
 .../sunxi-next/board-h6-add-rtc-osc32k-out.patch   |     35 +
 .../kernel/sunxi-next/board-h6-clock-higher.patch  |     17 +
 ...rd-nanopiair-h3-camera-wifi-bluetooth-otg.patch |    175 +
 .../sunxi-next/board-olinuxino-A64-add-eMMC.patch  |     35 +
 ...d-orangepi-zero-plus2-onboard-led-support.patch |     29 -
 ...dd-support-for-the-MMC-controller-on-H6.patch.1 |     70 +
 ...er-h6-add-device-tree-nodes-for-MMC-con.patch.1 |     99 +
 ...8-arm64-allwinner-h6-add-missing-mmc-pins.patch |     19 +
 ...64-allwinner-h6-enable-MMC0-2-on-Pine-H64.patch |     61 +
 ...4-allwinner-h6-add-PRCM-CCU-device-node.patch.1 |     37 +
 ...er-h6-add-node-for-R_PIO-pin-controller.patch.1 |     41 +
 ...nner-h6-add-R_INTC-interrupt-controller.patch.1 |     39 +
 ...arm64-allwinner-h6-add-R_I2C-controller.patch.1 |     55 +
 ...lwinner-h6-enable-AXP805-PMIC-on-Pine-H64.patch |    143 +
 ...nner-h6-add-PCF8563-RTC-on-Pine-H64-board.patch |     33 +
 ...er-add-phy-driver-for-USB3-PHY-on-Allwinn.patch |    287 +
 ...-usb-add-binding-for-the-DWC3-controller-.patch |     64 +
 ...-arm64-allwinner-h6-add-USB3-device-nodes.patch |     67 +
 ...allwinner-h6-enable-USB3-port-on-Pine-H64.patch |     57 +
 ...usb-add-support-for-missing-USB-PHY-index.patch |     50 +
 ...phy-sun4i-usb-add-support-for-H6-USB2-PHY.patch |     76 +
 ...llwinner-h6-add-USB2-related-device-nodes.patch |    116 +
 ...rm64-allwinner-h6-enable-USB2-on-Pine-H64.patch |     70 +
 ...m64-allwinner-h6-add-basical-DVFS-support.patch |     76 +
 ...lwinner-h6-add-CPU-regulator-for-Pine-H64.patch |     33 +
 ...sun8i-force-select-external-PHY-when-no-i.patch |     41 +
 ...c-sun8i-add-support-for-Allwinner-H6-EMAC.patch |     52 +
 ...-arm64-allwinner-h6-add-EMAC-device-nodes.patch |     77 +
 ...nner-h6-add-support-for-the-Ethernet-on-P.patch |     73 +
 .../sunxi-next/board-pine64-add-spi-flash.patch    |     37 +
 .../board-r40-sata-support.patch                   |      0
 .../brcmfmac_ap_banana_ct.patch.disabled           |     11 -
 .../camera-add-the-H3-H5-CSI-controller.patch      |      0
 .../sunxi-next/cubietruck_green_LED_mmc0.patch     |     12 -
 .../sunxi-next/enable-fsl-timer-errata.patch       |     12 -
 .../fix-A64-mmc2-remove-PC1-pin.patch              |      0
 .../fix-a20-olinuxino-micro-lan8710-support.patch  |     25 -
 .../kernel/sunxi-next/fix-i2c2-reg-property.patch  |     13 -
 .../sunxi-next/fix-many-orangepiwin-dts.patch      |    195 -
 .../fix-zeroplus2-mmc0-cd-polarity.patch           |     13 -
 .../general-add-H6-GPIO-disable_strict_mode.patch  |     12 +
 patch/kernel/sunxi-next/general-add-H6-I2Cs.patch  |     75 +
 patch/kernel/sunxi-next/general-add-H6-UARTs.patch |     60 +
 .../sunxi-next/general-add-configfs-overlay.patch  |    326 +
 .../kernel/sunxi-next/general-add-h3-mixer1.patch  |     30 +
 ...DT-pins.patch => general-add-i2s-DT-pins.patch} |      6 +-
 ...d.patch => general-add-nand-H27UBG8T2BTR.patch} |      4 +-
 .../general-add-overlay-compilation-support.patch  |    119 +
 .../general-arm64-add-proc-cpuinfo-entries.patch   |     13 +
 ...eneral-armbian-boot-logo-on-screen-center.patch |  13063 +
 .../sunxi-next/general-aufs4.19-20181029.patch     |  39290 +
 ....patch => general-axp20x-sysfs-interface.patch} |      0
 ...general-enable-allwinner-SoCs-SID-support.patch |     27 +
 ...eral-enable-kernel-dtbs-symbol-generation.patch |     14 +
 ...asing_DMA_block_memory_allocation_to_2048.patch |     27 +
 ...ext.patch => general-packaging-4.17-next.patch} |    178 +-
 ...ral-provoke-the-early-load-of-sun8i-codec.patch |     25 +
 ....patch => general-spidev-remove-warnings.patch} |      0
 .../kernel/sunxi-next/general-sunxi-overlays.patch |   6836 +
 ...e.patch => general-sunxi-rtc-clocksource.patch} |      8 -
 .../sunxi-next/lime-a10-add-240-mhz-cpufreq.patch  |     12 -
 .../sunxi-next/memolry-leak-fix-r8723bs.patch      |     26 -
 ...nand-disable-badblock-check-for-migration.patch |     35 +
 patch/kernel/sunxi-next/p-board-h6-add-THS.patch   |    818 +
 patch/kernel/sunxi-next/patch-4.19.12-13.patch     |   2156 +
 .../sunxi-next/scripts-dtc-import-updates.patch    |   1248 -
 .../sunxi-next/set-DMA-coherent-pool-to-2M.patch   |     13 -
 ...linked-power-save-info-when-not-debugging.patch |     22 -
 .../sunxi-next/sunxi-add-orangepi-zero-plus.patch  |    198 -
 .../sunxi-h3-h5-uart3_rts_cts_pins.patch           |     26 -
 .../sunxi-h5-add-gpio-regulator-overclock.patch    |    124 +
 .../sunxi-hdmi-enable-beelink-x2.patch.unresolved  |    157 -
 .../sunxi-hdmi-enable-friendlyarm-m1.patch         |     99 -
 .../sunxi-hdmi-enable-friendlyarm-m1plus.patch     |    196 -
 .../sunxi-hdmi-enable-friendlyarm-neoplus2.patch   |    252 -
 .../sunxi-hdmi-enable-sinovoip-bananam2plus.patch  |     82 -
 .../sunxi-hdmi-otg_enble-opi-zero2plus-h5.patch    |    101 -
 ...network-dwmac-sun8i_backport_from_4.15-rc.patch |    927 -
 ...dwmac_h3_gigabit_boards_new_external_mdio.patch |     39 -
 .../sunxi-wireless-enable-friendlyarm-neoair.patch |     89 -
 .../sunxi64-hdmi-thermal-dma-pmw-enable.patch      |   2007 -
 .../sunxi64-new-bananapi-m64-ethernet-fix.patch    |     40 -
 .../sunxi64-olinuxino-ethernet-wireless-emmc.patch |    154 -
 .../sunxi64-pine64-plus-ethernet-fix.patch         |    141 -
 ...s-29-sun4i-gpadc-iio-add-h5-thermal-zone.patch} |      0
 ... => ths-49-add-h5-cpu-opp-table.patch.disabled} |      0
 ... ths-50-add-h5-opp-table-to-cpu.patch.disabled} |     12 +-
 ...anopi-neo-plus2-enable-regulator-fix-leds.patch |     45 +
 .../kernel/sunxi-next/wifi-2002-02-rtl8188eu.patch |     11 +-
 ...-3001-add-realtek-8189es-kconfig-makefile.patch |     25 +
 ...al.patch => wifi-3002-add-realtek-8189es.patch} |   1377 +-
 ...-4001-add-realtek-8723cs-kconfig-makefile.patch |     23 +
 .../sunxi-next/wifi-4002-add-realtek-8723cs.patch  | 348942 ++++++
 ...-driver.patch => wifi-add-realtek-8189fs.patch} |  71306 +-
 ...wireless-driver.patch => wifi-add-xradio.patch} |    183 +-
 ...eq.patch => wifi-orangepi-pc-plus-pwrseq.patch} |      0
 ...angepiprime.patch => wifi-orangepi-prime.patch} |      0
 ... wifi-orangepi-zero-fix-xradio-interrupt.patch} |      0
 .../xxx-0001-network-audio-orangepiwin-dts.patch   |      0
 ...xxx-0002-enable_usb_uart1-orangepiwin-dts.patch |      0
 .../xxx-a64-olinuxino-eth.patch                    |      0
 patch/kernel/sunxi-next/xxx-nanopik1plus.patch     |     47 +
 .../sunxi-next/xxx-nanopineo2v1.0-dvfs.patch       |     52 +
 .../sunxi-next/xxx-olinuxino-battery-audio.patch   |     86 +
 .../sunxi-next/xxx-orangepi2-plus-regulator.patch  |     47 +
 .../xxx-orangepiprime-addregulator.patch           |     80 +
 .../xxx-orangepizero-plus2-default-regulator.patch |     32 +
 ...book-revert-pwm-polairity-TEMP-WORKAROUND.patch |     13 +
 .../xxx-teres-add-battery-hdmi-bits.patch          |    158 +
 .../u-boot-rockchip64-dev/add-board-rockpi4b.patch |      6 +-
 .../add-a20-olinuxino-micro-emmc-support.patch     |     27 -
 .../u-boot-sunxi/add-bananapi-bpi-zero.patch       |     10 +-
 patch/u-boot/u-boot-sunxi/add-beelink-x2.patch     |      2 +-
 patch/u-boot/u-boot-sunxi/add-nanopi-duo.patch     |      2 +-
 .../u-boot-sunxi/add-nanopi-m1-plus2-emmc.patch    |     13 +-
 patch/u-boot/u-boot-sunxi/add-nanopineoplus2.patch |     14 +-
 .../u-boot-sunxi/add-orangepi-zeroplus.patch       |     14 +-
 .../u-boot-sunxi/add-orangepi-zeroplus2_h3.patch   |     22 +-
 patch/u-boot/u-boot-sunxi/add-sunvell-r69.patch    |      4 +-
 patch/u-boot/u-boot-sunxi/add-tritium-series.patch |    497 -
 .../u-boot-sunxi/add-xx-nanopi-k1-plus-emmc.patch  |      2 +-
 .../u-boot-sunxi/add-xx-nanopineocore2.patch       |     17 +-
 .../u-boot/u-boot-sunxi/add_emmc_orangepiwin.patch |     21 +-
 .../u-boot-sunxi/enable-autoboot-keyed.patch       |     10 +-
 .../enable-ethernet-orangepiprime.patch            |     16 +-
 .../u-boot/u-boot-sunxi/fix-usb1-vbus-opiwin.patch |     14 +-
 .../lower-default-DRAM-freq-A64-H5.patch           |      6 +-
 665 files changed, 1475307 insertions(+), 1151067 deletions(-)
 rename config/boards/{lime-a64.wip => lime-a64.conf} (86%)
 delete mode 100644 config/boards/olinuxino-a64.wip
 create mode 100644 config/kernel/linux-odroidxu4-dev.config
 delete mode 100644 packages/bsp/helios4/fancontrol.patch
 rename patch/kernel/meson64-dev/{1012-drm-meson-add-support-for-1080p25-mode.patch => 1012-drm-meson-add-support-for-1080p25-mode.patch.disabled} (100%)
 create mode 100644 patch/kernel/meson64-dev/1024-fix-atomic-modeswitching.patch
 delete mode 100644 patch/kernel/meson64-next/0001-ARM64-dts-meson-gxbb-nanopi-k2-Add-HDMI-CEC-and-CVBS.patch
 delete mode 100644 patch/kernel/meson64-next/0001-libretech-cc-disable-CVBS-connector.patch
 rename patch/kernel/meson64-next/{0006-ASoC-meson-add-meson-audio-core-driver.patch => 0002-ASoC-meson-add-meson-audio-core-driver.patch} (85%)
 delete mode 100644 patch/kernel/meson64-next/0002-drm-meson-Make-DMT-timings-parameters-and-pixel-cloc.patch
 rename patch/kernel/meson64-next/{0007-ASoC-meson-add-register-definitions.patch => 0003-ASoC-meson-add-register-definitions.patch} (99%)
 rename patch/kernel/meson64-next/{0008-ASoC-meson-add-aiu-i2s-dma-support.patch => 0004-ASoC-meson-add-aiu-i2s-dma-support.patch} (94%)
 delete mode 100644 patch/kernel/meson64-next/0004-clk-meson-switch-gxbb-cts-amclk-div-to-the-generic-d.patch
 rename patch/kernel/meson64-next/{0009-ASoC-meson-add-initial-i2s-dai-support.patch => 0005-ASoC-meson-add-initial-i2s-dai-support.patch} (95%)
 delete mode 100644 patch/kernel/meson64-next/0005-clk-meson-remove-unused-clk-audio-divider-driver.patch
 rename patch/kernel/meson64-next/{0010-ASoC-meson-add-aiu-spdif-dma-support.patch => 0006-ASoC-meson-add-aiu-spdif-dma-support.patch} (94%)
 rename patch/kernel/meson64-next/{0011-ASoC-meson-add-initial-spdif-dai-support.patch => 0007-ASoC-meson-add-initial-spdif-dai-support.patch} (93%)
 rename patch/kernel/meson64-next/{0013-ARM64-dts-meson-gx-add-audio-controller-nodes.patch => 0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch} (98%)
 rename patch/kernel/meson64-next/{0014-snd-meson-activate-HDMI-audio-path.patch => 0010-snd-meson-activate-HDMI-audio-path.patch} (96%)
 rename patch/kernel/meson64-next/{0015-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch => 0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch} (90%)
 rename patch/kernel/meson64-next/{0016-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch => 0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch} (94%)
 rename patch/kernel/meson64-next/{0017-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch => 0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch} (98%)
 rename patch/kernel/meson64-next/{0018-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch => 0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch} (96%)
 rename patch/kernel/{meson64-dev => meson64-next}/0017-soc-amlogic-add-meson-canvas-driver.patch (100%)
 rename patch/kernel/{meson64-dev => meson64-next}/0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch (100%)
 delete mode 100644 patch/kernel/meson64-next/0019-drm-meson-Call-drm_crtc_vblank_on-drm_crtc_vblank_of.patch
 create mode 100644 patch/kernel/meson64-next/0020-drm-meson-Use-optional-canvas-provider.patch
 delete mode 100644 patch/kernel/meson64-next/0020-media-platform-meson-ao-cec-make-busy-TX-warning-sil.patch
 create mode 100644 patch/kernel/meson64-next/0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch
 delete mode 100644 patch/kernel/meson64-next/0021-soc-amlogic-add-meson-canvas-driver.patch
 rename patch/kernel/meson64-next/{0025-WIP-drm-meson-Support-Overlay-plane-for-video-render.patch => 0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch} (75%)
 delete mode 100644 patch/kernel/meson64-next/0022-dt-bindings-soc-amlogic-add-meson-canvas-documentati.patch
 delete mode 100644 patch/kernel/meson64-next/0023-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch
 create mode 100644 patch/kernel/meson64-next/0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch
 create mode 100644 patch/kernel/meson64-next/0024-drm-meson-Add-primary-plane-scaling.patch
 delete mode 100644 patch/kernel/meson64-next/0024-drm-meson-convert-to-the-new-canvas-module.patch
 delete mode 100644 patch/kernel/meson64-next/0026-media-meson-add-v4l2-m2m-video-decoder-driver.patch
 create mode 100644 patch/kernel/meson64-next/0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch
 delete mode 100644 patch/kernel/meson64-next/0027-ARM64-dts-meson-gx-add-vdec-entry.patch
 create mode 100644 patch/kernel/meson64-next/0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch
 create mode 100644 patch/kernel/meson64-next/0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch
 rename patch/kernel/{meson64-dev => meson64-next}/0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch (100%)
 create mode 100644 patch/kernel/meson64-next/0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch
 create mode 100644 patch/kernel/meson64-next/0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch
 create mode 100644 patch/kernel/meson64-next/0032-drm-meson-Add-support-for-VIC-alternate-timings.patch
 create mode 100644 patch/kernel/meson64-next/0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch
 create mode 100644 patch/kernel/meson64-next/0034-MAINTAINERS-Add-meson-video-decoder.patch
 create mode 100644 patch/kernel/meson64-next/0035-arm64-dts-meson-gx-add-vdec-entry.patch
 rename patch/kernel/meson64-next/{0028-ARM64-dts-meson-add-vdec-entries.patch => 0036-arm64-dts-meson-add-vdec-entries.patch} (54%)
 create mode 100644 patch/kernel/meson64-next/0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch
 create mode 100644 patch/kernel/meson64-next/0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch
 create mode 100644 patch/kernel/meson64-next/0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch
 create mode 100644 patch/kernel/meson64-next/0040-media-meson-vdec-add-H.264-decoding-support.patch
 create mode 100644 patch/kernel/meson64-next/0041-media-meson-vdec-add-MPEG4-decoding-support.patch
 create mode 100644 patch/kernel/meson64-next/0042-media-meson-vdec-add-MJPEG-decoding-support.patch
 create mode 100644 patch/kernel/meson64-next/0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch
 create mode 100644 patch/kernel/meson64-next/1008-drm-meson-Add-HDMI-1.4-4k-modes.patch
 create mode 100644 patch/kernel/meson64-next/1009-drm-meson-Use-drm_fbdev_generic_setup.patch
 create mode 100644 patch/kernel/meson64-next/1010-fixup-drm-meson-Use-optional-canvas-provider.patch
 create mode 100644 patch/kernel/meson64-next/1012-drm-meson-add-support-for-1080p25-mode.patch.disabled
 create mode 100644 patch/kernel/meson64-next/1014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch
 create mode 100644 patch/kernel/meson64-next/1015-drm-meson-add-HDMI-div40-TMDS-mode.patch
 create mode 100644 patch/kernel/meson64-next/1016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch
 create mode 100644 patch/kernel/meson64-next/1017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch
 create mode 100644 patch/kernel/meson64-next/1018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch
 create mode 100644 patch/kernel/meson64-next/1019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch
 create mode 100644 patch/kernel/meson64-next/1020-drm-meson-Add-YUV420-output-support.patch
 create mode 100644 patch/kernel/meson64-next/1021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
 create mode 100644 patch/kernel/meson64-next/1023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch
 create mode 100644 patch/kernel/meson64-next/1024-fix-atomic-modeswitching.patch
 create mode 100644 patch/kernel/meson64-next/2001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch
 create mode 100644 patch/kernel/meson64-next/2001-drm-meson-fix-max-mode_config-height-width.patch
 delete mode 100644 patch/kernel/meson64-next/board-nanopi_k2_hdmi.patch
 rename patch/kernel/meson64-next/{board-nanopik2-add-SPI.patch => board_nanopi_k2_add_spidev.patch} (75%)
 rename patch/kernel/meson64-next/{meson64-mark-fclk_div3-critical.patch => fclk_div3.patch} (90%)
 rename patch/kernel/{sunxi-next/add-configfs-overlay-for-v4.10.x.patch => meson64-next/general-add-configfs-overlay.patch} (88%)
 rename patch/kernel/{rockchip-dev => meson64-next}/general-add-overlay-compilation-support.patch (100%)
 delete mode 100644 patch/kernel/meson64-next/general-aufs4.18-20180820.patch
 rename patch/kernel/{odroidxu4-next => meson64-next}/general-aufs4.19-20181029.patch (100%)
 create mode 100644 patch/kernel/meson64-next/general-dwc2-partial-powerdown-fix.patch
 create mode 100644 patch/kernel/meson64-next/general-meson64-add-uartC-alias.patch
 create mode 100644 patch/kernel/meson64-next/general-meson64-fix-uartC-pinctrl.patch
 create mode 100644 patch/kernel/meson64-next/general-meson64-i2cX-missing-pins.patch
 create mode 100644 patch/kernel/meson64-next/general-meson64-overlays.patch
 create mode 100644 patch/kernel/meson64-next/meson64_remove_spidev_warning.patch
 rename patch/kernel/{odroidxu4-next => odroidxu4-dev}/general-armbian-boot-logo-on-screen-center.patch (100%)
 rename patch/kernel/{rockchip-dev => odroidxu4-dev}/general-aufs4.19-20181029.patch (100%)
 rename patch/kernel/{odroidxu4-next => odroidxu4-dev}/general-increasing_DMA_block_memory_allocation_to_2048.patch (100%)
 create mode 100644 patch/kernel/odroidxu4-dev/general-packaging-4.18-dev.patch
 rename patch/kernel/{odroidxu4-next => odroidxu4-dev}/overclock-1.5-2.0.patch.disabled (100%)
 rename patch/kernel/{meson64-dev/wifi-0001-realtek-wifi-881xAU-605ecfa.patch => odroidxu4-dev/wifi-0001-realtek-881xAU-605ecfa.patch} (100%)
 rename patch/kernel/{meson64-dev/wifi-0002-realtek-wifi-881xAU-adding-kernel-4.14.patch => odroidxu4-dev/wifi-0002-realtek-881xAU-adding-kernel-4.14.patch} (100%)
 rename patch/kernel/{meson64-dev/wifi-0003-realtek-wifi-881xAU-enable-8814au.patch => odroidxu4-dev/wifi-0003-realtek-881xAU-enable-8814au.patch} (100%)
 rename patch/kernel/{meson64-dev/wifi-0005-realtek-wifi-881xAU-update-to-5a5d0f.patch => odroidxu4-dev/wifi-0005-realtek-881xAU-update-to-5a5d0f.patch} (100%)
 rename patch/kernel/{odroidxu4-next => odroidxu4-dev}/wifi-2001-01-rtl8188eu-kconfig-makefile.patch (100%)
 rename patch/kernel/{odroidxu4-next => odroidxu4-dev}/wifi-2002-02-rtl8188eu.patch (100%)
 create mode 100644 patch/kernel/odroidxu4-next/0000-remove-stock-8188eu-8812au.patch
 rename patch/kernel/{rockchip-next => odroidxu4-next}/0001-aufs4.14-20181119.patch (100%)
 rename patch/kernel/{sunxi-next => odroidxu4-next}/armbian-boot-logo-on-screen-center.patch (100%)
 rename patch/kernel/{rockchip-next => odroidxu4-next}/increasing_DMA_block_memory_allocation_to_2048.patch (100%)
 create mode 100644 patch/kernel/odroidxu4-next/not-booting-bugfix.patch
 rename patch/kernel/{rockchip-next => odroidxu4-next}/packaging-4.x-NEXT-with-postinstall-scripts.patch (94%)
 create mode 100644 patch/kernel/odroidxu4-next/wifi-0010-realtek-8188EU.patch
 create mode 100644 patch/kernel/odroidxu4-next/wifi-0011-realtek-8188EU-kconfig-makefile-4.14.patch
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0000-mali-r19p0-01rel0.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0001-Mali-midgard-r19p0-fixes-for-4.13-kernels.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0002-Using-the-new-header-on-4.12-kernels-for-copy_-_user.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0003-Adapt-get_user_pages-calls-to-use-the-new-calling-pr.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0004-Don-t-be-TOO-severe-when-looking-for-the-IRQ-names.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0005-Added-the-new-compatible-list-mainly-used-by-Rockchi.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0006-gpu-arm-Midgard-setup_timer-timer_setup.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0007-drivers-gpu-Arm-Midgard-Replace-ACCESS_ONCE-by-READ_.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0008-gpu-arm-midgard-Remove-sys_close-references.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0009-GPU-ARM-Midgard-Adapt-to-the-new-mmap-call-checks.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/0010-GPU-Mali-Midgard-remove-rcu_read_lock-references.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1-2-regulator-act8865-add-restart-handler-for-act8846.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1001-drivers-Integrating-Mali-Midgard-video-and-gpu-drive.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1002-clk-rockchip-add-all-known-operating-points-to-the-a.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1003-clk-rockchip-rk3288-prefer-vdpu-for-vcodec-clock-sou.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1004-Remove-the-dependency-to-the-clk_mali-symbol.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1005-ASUS-Tinkerboard-Stupid-reboot.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1005-drivers-mmc-dw-mci-rockchip-Handle-ASUS-Tinkerboard.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1006-soc-rockchip-power-domain-export-idle-request.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1010-drm-dw_hdmi-rockchip-better-clock-selection-logic-an.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/1100-media-Add-JPEG_RAW-format.patch (100%)
 rename patch/kernel/rockchip-dev/{1101-media-Add-controls-for-JPEG-quantization-tables.patch => need_to_be_checked/1101-media-Add-controls-for-JPEG-quantization-tables.patch.disabled} (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2001-dts-rk3288-miqi-Enabling-the-Mali-GPU-node.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2003-ARM-dts-rockchip-add-the-MiQi-board-s-fan-definition.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2004-ARM-dts-rockchip-add-support-for-1800-MHz-operation-.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2005-Readapt-ARM-dts-rockchip-miqi-add-turbo-mode-operati.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2006-ARM-DTSI-rk3288-Missing-GRF-handles.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2007-RK3288-DTSI-rk3288-Add-missing-SPI2-pinctrl.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2008-Added-support-for-Tinkerboard-s-SPI-interface.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2009-ARM-DTSI-rk3288-Adding-cells-addresses-and-size.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2010-ARM-DTSI-rk3288-Adding-missing-EDP-power-domain.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2011-ARM-DTSI-rk3288-Adding-missing-VOPB-registers.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2012-ARM-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2013-ARM-DTS-rk3288-tinker-Enabling-SDIO-Wireless-and.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2015-ARM-DTS-rk3288-tinker-Improving-the-CPU-max-volt.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2016-ARM-DTS-rk3288-tinker-Setting-up-the-SD-regulato.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2019-ARM-DTS-rk3288-tinker-Add-the-MIPI-DSI-node.patch.disabled (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2019-ARM-DTS-rk3288-tinker-Defining-SDMMC-properties.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2020-ARM-DTSI-rk3288-Define-the-VPU-services.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2021-ARM-DTS-rk3288-miqi-Enable-the-Video-encoding-MM.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2022-ARM-DTS-rk3288-tinker-Enable-the-Video-encoding-MMU-.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2023-ARM-DTSI-rk3288-firefly-Enable-the-Video-encoding-MM.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2024-ARM-DTSI-rk3288-veyron-Enable-the-Video-encoding-MMU.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2025-ARM-DTSI-rk3288-Renamed-the-VPU-services-clocks.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2026-ARM-DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/2027-ARM-dtsi-The-VPU-service-as-defined-in-the-V4L2-driv.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/3000_RK3288-Tinkerboard-add-1.7_1.8Ghz_OPP.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/board-tinkerboard-enable-emmc-support.patch (100%)
 rename patch/kernel/{sunxi-next/add-overlay-compilation-support.patch => rockchip-dev/need_to_be_checked/general-add-overlay-compilation-support.patch} (93%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/general-add-overlays.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/xt-q8l-v10-add-device-tree.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/xt-q8l-v10-add-dts-makefile.patch (100%)
 rename patch/kernel/rockchip-dev/{ => need_to_be_checked}/xt-q8l-v10-remote-keymap.patch (100%)
 delete mode 100644 patch/kernel/rockchip-dev/wifi-0001-realtek-wifi-881xAU-605ecfa.patch
 delete mode 100644 patch/kernel/rockchip-dev/wifi-0002-realtek-wifi-881xAU-adding-kernel-4.14.patch
 delete mode 100644 patch/kernel/rockchip-dev/wifi-0003-realtek-wifi-881xAU-enable-8814au.patch
 delete mode 100644 patch/kernel/rockchip-dev/wifi-0005-realtek-wifi-881xAU-update-to-5a5d0f.patch
 create mode 100644 patch/kernel/rockchip-next/0006-gpu-arm-Midgard-setup_timer-timer_setup.patch
 create mode 100644 patch/kernel/rockchip-next/0007-drivers-gpu-Arm-Midgard-Replace-ACCESS_ONCE-by-READ_.patch
 create mode 100644 patch/kernel/rockchip-next/0008-gpu-arm-midgard-Remove-sys_close-references.patch
 delete mode 100644 patch/kernel/rockchip-next/1001-Integrating-the-Mali-drivers.patch
 create mode 100644 patch/kernel/rockchip-next/1001-drivers-Integrating-Mali-Midgard-video-and-gpu-drive.patch
 rename patch/kernel/rockchip-next/{1005-ASUS-Reboot-patch-2-The-Return.patch => 1005-ASUS-Tinkerboard-Stupid-reboot.patch} (67%)
 delete mode 100644 patch/kernel/rockchip-next/1006-rockchip-rga-v4l2-m2m-support.patch
 create mode 100644 patch/kernel/rockchip-next/1006-soc-rockchip-power-domain-export-idle-request.patch
 delete mode 100644 patch/kernel/rockchip-next/1007-dt-bindings-Document-the-Rockchip-RGA-bindings.patch
 delete mode 100644 patch/kernel/rockchip-next/1008-dwc2-avoid_nak_for_csplit.patch
 rename patch/kernel/{rockchip-dev => rockchip-next}/1008-rockchip-dwc2-usb-partial-power-down.patch (100%)
 rename patch/kernel/{rockchip-dev => rockchip-next}/1009-drivers-clk-rk3288-support-for-dedicating-NPLL-to-a-.patch (100%)
 create mode 100644 patch/kernel/rockchip-next/1010-drm-dw_hdmi-rockchip-better-clock-selection-logic-an.patch
 create mode 100644 patch/kernel/rockchip-next/1100-media-Add-JPEG_RAW-format.patch
 create mode 100644 patch/kernel/rockchip-next/1101-media-Add-controls-for-JPEG-quantization-tables.patch
 rename patch/kernel/rockchip-next/{2010-ARM-DTSI-rk3288-Adding-cells-addresses-and-size.patch => 2009-ARM-DTSI-rk3288-Adding-cells-addresses-and-size.patch} (100%)
 rename patch/kernel/rockchip-next/{2011-ARM-DTSI-rk3288-Adding-missing-EDP-power-domain.patch => 2010-ARM-DTSI-rk3288-Adding-missing-EDP-power-domain.patch} (100%)
 rename patch/kernel/rockchip-next/{2013-ARM-DTSI-rk3288-Adding-missing-VOPB-registers.patch => 2011-ARM-DTSI-rk3288-Adding-missing-VOPB-registers.patch} (100%)
 delete mode 100644 patch/kernel/rockchip-next/2012-ARM-DTSI-rk3288-Add-the-RGA-node.patch
 rename patch/kernel/rockchip-next/{2014-ARM-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch => 2012-ARM-DTSI-rk3288-Fixed-the-SPDIF-node-address.patch} (100%)
 rename patch/kernel/rockchip-next/{2015-ARM-DTS-rk3288-tinker-Enabling-SDIO-Wireless-and.patch => 2013-ARM-DTS-rk3288-tinker-Enabling-SDIO-Wireless-and.patch} (100%)
 rename patch/kernel/rockchip-next/{2028-Tinker-Bluetooth.patch => 2014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch} (100%)
 create mode 100644 patch/kernel/rockchip-next/2015-ARM-DTS-rk3288-tinker-Improving-the-CPU-max-volt.patch
 rename patch/kernel/rockchip-next/{2017-ARM-DTS-rk3288-tinker-Setting-up-the-SD-regulato.patch => 2016-ARM-DTS-rk3288-tinker-Setting-up-the-SD-regulato.patch} (100%)
 rename patch/kernel/rockchip-next/{2018-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch => 2017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch} (100%)
 rename patch/kernel/rockchip-next/{2019-ARM-DTS-rk3288-tinker-Add-the-MIPI-DSI-node.patch => 2019-ARM-DTS-rk3288-tinker-Add-the-MIPI-DSI-node.patch.disabled} (100%)
 rename patch/kernel/rockchip-next/{2021-ARM-DTS-rk3288-tinker-Defining-SDMMC-properties.patch => 2019-ARM-DTS-rk3288-tinker-Defining-SDMMC-properties.patch} (100%)
 delete mode 100644 patch/kernel/rockchip-next/2020-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch
 rename patch/kernel/rockchip-next/{2022-ARM-DTSI-rk3288-Define-the-VPU-services.patch => 2020-ARM-DTSI-rk3288-Define-the-VPU-services.patch} (100%)
 rename patch/kernel/rockchip-next/{2023-ARM-DTS-rk3288-miqi-Enable-the-Video-encoding-MM.patch => 2021-ARM-DTS-rk3288-miqi-Enable-the-Video-encoding-MM.patch} (100%)
 rename patch/kernel/rockchip-next/{2024-ARM-DTS-rk3288-tinker-Enable-the-Video-encoding-MMU-.patch => 2022-ARM-DTS-rk3288-tinker-Enable-the-Video-encoding-MMU-.patch} (100%)
 rename patch/kernel/rockchip-next/{2025-ARM-DTSI-rk3288-firefly-Enable-the-Video-encoding-MM.patch => 2023-ARM-DTSI-rk3288-firefly-Enable-the-Video-encoding-MM.patch} (100%)
 rename patch/kernel/rockchip-next/{2026-ARM-DTSI-rk3288-veyron-Enable-the-Video-encoding-MMU.patch => 2024-ARM-DTSI-rk3288-veyron-Enable-the-Video-encoding-MMU.patch} (100%)
 create mode 100644 patch/kernel/rockchip-next/2025-ARM-DTSI-rk3288-Renamed-the-VPU-services-clocks.patch
 create mode 100644 patch/kernel/rockchip-next/2026-ARM-DTSI-rk3288-Set-the-VPU-MMU-power-domains.patch
 create mode 100644 patch/kernel/rockchip-next/2027-ARM-dtsi-The-VPU-service-as-defined-in-the-V4L2-driv.patch
 delete mode 100644 patch/kernel/rockchip-next/260_DTS_gpiomem_node.patch
 delete mode 100644 patch/kernel/rockchip-next/261_gpiomem_driver.patch
 create mode 100644 patch/kernel/rockchip-next/3000_RK3288-Tinkerboard-add-1.7_1.8Ghz_OPP.patch
 rename patch/kernel/rockchip-next/{2027_Tinkerboard-Next-audio.patch => 3001_Tinkerboard-4.19-audio.patch} (50%)
 rename patch/kernel/{rockchip-dev => rockchip-next}/3002_RK3288-add-missing-interleaved-pcm-attribute.patch (100%)
 delete mode 100644 patch/kernel/rockchip-next/3004-Tinkerboard-overclocking-operation.patch
 delete mode 100644 patch/kernel/rockchip-next/4001-rockchip-Fix-dai_name-for-HDMI-codec-to-the-asoc-tree.patch
 delete mode 100644 patch/kernel/rockchip-next/5000-add-link-miniarm-dtb.patch
 delete mode 100644 patch/kernel/rockchip-next/bash_to_afterinstall.patch
 create mode 100644 patch/kernel/rockchip-next/board-tinkerboard-support-older-eMMC-installs.patch
 create mode 100644 patch/kernel/rockchip-next/general-add-overlay-compilation-support.patch
 create mode 100644 patch/kernel/rockchip-next/general-add-overlays.patch
 rename patch/kernel/{sunxi-dev => rockchip-next}/general-aufs4.19-20181029.patch (100%)
 create mode 100644 patch/kernel/rockchip-next/general-increasing_DMA_block_memory_allocation_to_2048.patch
 rename patch/kernel/{odroidxu4-next/general-packaging-4.18-next.patch => rockchip-next/general-packaging-4.17-dev.patch} (98%)
 delete mode 100644 patch/kernel/rockchip-next/memolry-leak-fix-r8723bs.patch
 delete mode 100644 patch/kernel/rockchip-next/staging-rtl8723bs-hide-nolinked-power-save-info-when-not-debugging.patch
 create mode 100644 patch/kernel/rockchip64-default/50-fix_drm.patch
 create mode 100644 patch/kernel/rockchip64-dev/board-rockpi4-dts-wip-fixup.patch
 create mode 100644 patch/kernel/rockchip64-dev/timekeeping32-tweaks-for-4.20.y.patch
 create mode 100644 patch/kernel/sunxi-dev/ARM-dts-sun7i-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-and-Banana-Pro.patch
 create mode 100644 patch/kernel/sunxi-dev/add-h5-emmc-compatible.patch
 create mode 100644 patch/kernel/sunxi-dev/board-h3-add-rtc-osc32k-out.patch
 create mode 100644 patch/kernel/sunxi-dev/fix-H6-irq-banks.patch
 create mode 100644 patch/kernel/sunxi-dev/fix-bananam2ultra-missing-clk-out-a.patch
 create mode 100644 patch/kernel/sunxi-dev/fix-bananapi-m2-plus-wifi.patch
 create mode 100644 patch/kernel/sunxi-dev/fix-bananapi-m2-ultra-wifi.patch
 create mode 100644 patch/kernel/sunxi-dev/fix-orangepiwin-usb.patch
 create mode 100644 patch/kernel/sunxi-dev/general-aufs4.19-20181029.patch.disabled
 rename patch/kernel/sunxi-dev/{general-packaging-4.17-dev.patch => general-packaging-4.20-dev.patch} (99%)
 create mode 100644 patch/kernel/sunxi-dev/timekeeping32-tweaks-for-4.20.y.patch
 create mode 100644 patch/kernel/sunxi-dev/wifi-bt-bananapi-m2-plus.patch
 delete mode 100644 patch/kernel/sunxi-next/00-19-add-H3-i2s-DT-nodes.patch
 delete mode 100644 patch/kernel/sunxi-next/00-readd-dwmac-sun8i-DT-bindings-arm64.patch
 delete mode 100644 patch/kernel/sunxi-next/00-readd-dwmac-sun8i-DT-bindings.patch
 delete mode 100644 patch/kernel/sunxi-next/00-readd-dwmac-sun8i-compatibles.patch
 create mode 100644 patch/kernel/sunxi-next/0000-axp-adjustements.patch.disabled
 create mode 100644 patch/kernel/sunxi-next/0000-remove-old-ths-node.patch
 create mode 100644 patch/kernel/sunxi-next/0000-sound-soc-ac100-codec-Initial-implementation.patch.disabled
 create mode 100644 patch/kernel/sunxi-next/0000-unlock-h5-dvfs.patch
 create mode 100644 patch/kernel/sunxi-next/0001-arm64-allwinner-a64-enable-Wi-Fi-for-Pine64.patch
 delete mode 100644 patch/kernel/sunxi-next/0001-aufs4.14-20181119.patch
 rename patch/kernel/sunxi-next/{32-h3-DT-add-mali-node.patch => 0002-arm64-allwinner-a64-add-Mali-device-node.patch} (52%)
 create mode 100644 patch/kernel/sunxi-next/0003-net-stmmac-dwmac-sun8i-support-RGMII-modes-with-PHY-.patch
 create mode 100644 patch/kernel/sunxi-next/0004-arm64-allwinner-a64-disable-the-RTL8211E-internal-RX.patch
 rename patch/kernel/sunxi-next/{31-drm-gem-cma-export-allocator.patch => 0005-drm-gem-cma-Export-with-handle-allocator.patch} (85%)
 rename patch/kernel/sunxi-next/{30-sun4i-drm-add-GEM-allocator.patch => 0006-drm-sun4i-Add-GEM-allocator.patch} (86%)
 create mode 100644 patch/kernel/sunxi-next/0007-Add-sopine-HDMI-sound-and-WiFi-support.patch
 create mode 100644 patch/kernel/sunxi-next/0008-arm64-dts-sun50i-a64-pine64-add-HDMI-audio-nodes.patch
 create mode 100644 patch/kernel/sunxi-next/0009-dt-bindings-update-the-Allwinner-GPADC-device-tree-b.patch
 create mode 100644 patch/kernel/sunxi-next/0011-iio-adc-sun4i-gpadc-iio-rename-A33-specified-registe.patch
 create mode 100644 patch/kernel/sunxi-next/0012-iio-adc-sun4i-gpadc-iio-rework-sampling-start-end-co.patch
 create mode 100644 patch/kernel/sunxi-next/0013-iio-adc-sun4i-gpadc-iio-rework-support-clocks-and-re.patch
 create mode 100644 patch/kernel/sunxi-next/0014-iio-adc-sun4i-gpadc-iio-rework-support-multible-sens.patch
 create mode 100644 patch/kernel/sunxi-next/0015-iio-adc-sun4i-gpadc-iio-rework-support-nvmem-calibra.patch
 create mode 100644 patch/kernel/sunxi-next/0016-iio-adc-sun4i-gpadc-iio-rework-add-interrupt-support.patch
 create mode 100644 patch/kernel/sunxi-next/0017-iio-adc-sun4i-gpadc-iio-add-support-for-H3-thermal-s.patch
 create mode 100644 patch/kernel/sunxi-next/0018-iio-adc-sun4i-gpadc-iio-add-support-for-A83T-thermal.patch
 create mode 100644 patch/kernel/sunxi-next/0019-arm-dts-sunxi-h3-h5-add-support-for-the-thermal-sens.patch
 create mode 100644 patch/kernel/sunxi-next/0020-arm-dts-sun8i-h3-add-support-for-the-thermal-sensor-.patch
 create mode 100644 patch/kernel/sunxi-next/0021-arm-dts-sun8i-h3-add-thermal-zone-to-H3.patch
 create mode 100644 patch/kernel/sunxi-next/0022-arm-dts-sun8i-h3-enable-H3-sid-controller.patch.disabled
 create mode 100644 patch/kernel/sunxi-next/0023-arm-dts-sun8i-a83t-add-support-for-the-thermal-senso.patch.disabled
 create mode 100644 patch/kernel/sunxi-next/0024-arm-dts-sun8i-a83t-add-thermal-zone-to-A83T.patch.disabled
 create mode 100644 patch/kernel/sunxi-next/0026-iio-adc-Kconfig-enable-A80-A64-and-H5-for-THS.patch
 create mode 100644 patch/kernel/sunxi-next/0027-iio-adc-sun4i-gpadc-iio-add-support-for-H5-thermal-s.patch
 create mode 100644 patch/kernel/sunxi-next/0028-iio-adc-sun4i-gpadc-iio-add-support-for-A80-thermal-.patch
 create mode 100644 patch/kernel/sunxi-next/0029-iio-adc-sun4i-gpadc-iio-add-support-for-A64-thermal-.patch
 create mode 100644 patch/kernel/sunxi-next/0030-arm64-dts-allwinner-h5-add-support-for-the-thermal-s.patch
 create mode 100644 patch/kernel/sunxi-next/0031-arm64-dts-allwinner-h5-add-termal-zone-to-H5.patch
 create mode 100644 patch/kernel/sunxi-next/0032-arm-dts-sun9i-a80-add-support-for-the-thermal-sensor.patch
 create mode 100644 patch/kernel/sunxi-next/0033-arm-dts-sun9i-a80-add-thermal-zone-to-A80.patch
 create mode 100644 patch/kernel/sunxi-next/0034-dts-a64-ths.patch
 create mode 100644 patch/kernel/sunxi-next/0035-clk-sunxi-ng-add-mux-and-pll-notifiers-for-A64-CPU-c.patch
 create mode 100644 patch/kernel/sunxi-next/0036-sun4i-gpadc-iio-ignore-zero-samples-to-avoid-force-p.patch
 create mode 100644 patch/kernel/sunxi-next/0037-a64-dvfs-wip.patch
 create mode 100644 patch/kernel/sunxi-next/0038-ARM-dts-add-gpu-node-to-exynos4.patch
 create mode 100644 patch/kernel/sunxi-next/0039-dt-bindings-add-switch-delay-property-for-mali-utgar.patch
 create mode 100644 patch/kernel/sunxi-next/0042-drm-lima-add-lima-uapi-header.patch
 create mode 100644 patch/kernel/sunxi-next/0043-drm-lima-add-mali-4xx-GPU-hardware-regs.patch
 create mode 100644 patch/kernel/sunxi-next/0044-drm-lima-add-lima-core-driver.patch
 create mode 100644 patch/kernel/sunxi-next/0045-drm-lima-add-GPU-device-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0046-drm-lima-add-PMU-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0047-drm-lima-add-L2-cache-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0048-drm-lima-add-GP-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0049-drm-lima-add-PP-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0050-drm-lima-add-MMU-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0051-drm-lima-add-BCAST-related-function.patch
 create mode 100644 patch/kernel/sunxi-next/0052-drm-lima-add-DLBU-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0053-drm-lima-add-GPU-virtual-memory-space-handing.patch
 create mode 100644 patch/kernel/sunxi-next/0054-drm-lima-add-TTM-subsystem-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0055-drm-lima-add-buffer-object-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0056-drm-lima-add-GEM-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0057-drm-lima-add-GEM-Prime-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0058-drm-lima-add-GPU-schedule-using-DRM_SCHED.patch
 create mode 100644 patch/kernel/sunxi-next/0059-drm-lima-add-context-related-functions.patch
 create mode 100644 patch/kernel/sunxi-next/0060-drm-lima-add-makefile-and-kconfig.patch
 create mode 100644 patch/kernel/sunxi-next/0061-drm-lima-use-SPDX-identifiers-and-change-copyright.patch
 create mode 100644 patch/kernel/sunxi-next/0062-drm-lima-lima_reg.h-use-BIT.patch
 create mode 100644 patch/kernel/sunxi-next/0063-drm-lima-add-IRQF_SHARED-for-GP-irq.patch
 create mode 100644 patch/kernel/sunxi-next/0064-drm-lima-Kconfig-only-depend-on-ARM-or-ARM64.patch
 create mode 100644 patch/kernel/sunxi-next/0065-drm-lima-add-comments-for-lima_reg.h.patch
 create mode 100644 patch/kernel/sunxi-next/0066-drm-lima-wait-bo-fence-before-bo-close.patch
 create mode 100644 patch/kernel/sunxi-next/0067-drm-lima-refine-lima_gem_sync_bo.patch
 create mode 100644 patch/kernel/sunxi-next/0068-drm-lima-vm-will-be-freed-when-lima_sched_free_job.patch
 create mode 100644 patch/kernel/sunxi-next/0069-drm-lima-vm-alloc-buffer-with-multi-page-table.patch
 create mode 100644 patch/kernel/sunxi-next/0070-drm-lima-clear-vm-page-table-when-alloc.patch
 create mode 100644 patch/kernel/sunxi-next/0071-drm-lima-update-SPDX-header-to-match-kernel-rules.patch
 create mode 100644 patch/kernel/sunxi-next/0072-drm-fourcc-add-ARM-tiled-format-modifier.patch
 create mode 100644 patch/kernel/sunxi-next/0073-drm-lima-add-DRM_LIMA_GEM_MOD-ioctl.patch
 create mode 100644 patch/kernel/sunxi-next/0074-a64-ccu-enable-LDOs-for-pll-mipi-and-add-min-max-rat.patch
 create mode 100644 patch/kernel/sunxi-next/0075-sopine-baseboard-enable-HS200-for-eMMC.patch
 create mode 100644 patch/kernel/sunxi-next/0076-drm-lima-remove-depend-on-ARM-arch.patch
 create mode 100644 patch/kernel/sunxi-next/0077-drm-lima-port-to-4.18-kernel.patch
 create mode 100644 patch/kernel/sunxi-next/0078-drm-lima-user-can-choose-not-to-use-dlbu-on-mali450.patch
 rename patch/kernel/sunxi-next/{19-add-audio-workarounds.patch => 0079-drm-bridge-Add-audio-workaround-for-dw_hdmi-v1.32a.patch.disabled} (87%)
 create mode 100644 patch/kernel/sunxi-next/0080-rtl8723bs-disable-error-message-about-failure-to-all.patch
 create mode 100644 patch/kernel/sunxi-next/0081-arm64-arch_timer-Workaround-for-Allwinner-A64-timer-.patch
 create mode 100644 patch/kernel/sunxi-next/0082-arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/0083-clk-sunxi-ng-Add-maximum-rate-constraint-to-NM-PLLs.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0084-clk-sunxi-ng-h3-h5-Add-max.-rate-constraint-to-pll-v.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/0085-clk-sunxi-ng-Adjust-MP-clock-parent-rate-when-allowe.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/0086-clk-sunxi-ng-Use-u64-for-calculation-of-NM-rate.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0087-drm-sun4i-tcon-Pass-drm_encoder-into-sun4i_tcon0_mod.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0088-drm-sun4i-tcon-Rename-Dithering-related-register-mac.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0089-drm-sun4i-tcon-Add-dithering-support-for-RGB565-RGB6.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0090-drm-sun4i-tcon-prevent-tcon-panel-dereference-if-nul.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0091-clk-sunxi-ng-a64-Add-minimal-rate-for-video-PLLs.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0092-clk-sunxi-ng-a64-Add-max.-rate-constraint-to-video-P.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0093-dt-bindings-display-Add-compatible-for-A64-DE2-displ.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0094-drm-sun4i-Add-support-for-A64-mixers.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0095-drm-sun4i-Add-support-for-A64-display-engine.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0096-dt-bindings-display-Add-compatible-for-A64-HDMI.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0097-dt-bindings-clock-sun50i-a64-ccu-Add-PLL_VIDEO0-macr.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0098-arm64-dts-allwinner-a64-Add-display-pipeline.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0099-dt-bindings-sun4i-drm-add-HDMI-VCC-supply-property-f.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0100-drm-sun4i-Add-support-for-HDMI-voltage-regulator.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/0101-arm64-dts-allwinner-a64-Enable-HDMI-output-on-A64-bo.patch
 create mode 100644 patch/kernel/sunxi-next/0102-dt-bindings-power-supply-axp20x-add-AXP813-AC-power-.patch
 create mode 100644 patch/kernel/sunxi-next/0103-dt-bindings-power-supply-axp20x-add-AXP803-power-bin.patch
 create mode 100644 patch/kernel/sunxi-next/0104-dt-bindings-gpio-gpio-axp209-add-AXP803-GPIO-binding.patch
 create mode 100644 patch/kernel/sunxi-next/0105-dt-bindings-iio-adc-add-AXP803-ADC-bindings.patch
 create mode 100644 patch/kernel/sunxi-next/0106-ARM-dts-axp81x-add-AC-power-supply-subnode.patch
 create mode 100644 patch/kernel/sunxi-next/0107-arm64-dts-allwinner-axp803-add-AC-and-battery-power-.patch
 create mode 100644 patch/kernel/sunxi-next/0108-arm64-dts-allwinner-a64-sopine-baseboard-enable-powe.patch
 create mode 100644 patch/kernel/sunxi-next/0109-arm64-dts-allwinner-a64-pinebook-enable-power-suppli.patch
 create mode 100644 patch/kernel/sunxi-next/0110-power-supply-add-AC-power-supply-driver-for-AXP813.patch
 create mode 100644 patch/kernel/sunxi-next/0111-mfd-axp20x-Add-AC-power-supply-cell-for-AXP813.patch
 create mode 100644 patch/kernel/sunxi-next/0112-mfd-axp20x-Add-supported-cells-for-AXP803.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/0113-ASoC-sun4i-i2s-move-code-from-startup-shutdown-hooks.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0114-ASoC-sun4i-i2s-Add-compatibility-with-A64-codec-I2S.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0115-ASoC-sun8i-codec-Don-t-hardcode-BCLK-LRCK-ratio.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0116-ASoC-sun8i-codec-analog-split-regmap-code-into-separ.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/0117-ASoC-dt-binding-Add-bindings-for-Allwinner-A64-codec.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/0118-ASoC-sunxi-Add-new-driver-for-Allwinner-A64-codec-s-.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/0119-ASoC-sunxi-allow-the-sun8i-codec-driver-to-be-built-.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/0120-arm64-dts-allwinner-a64-add-nodes-necessary-for-anal.patch
 create mode 100644 patch/kernel/sunxi-next/0121-arm64-dts-allwinner-a64-enable-sound-on-Pine64-and-S.patch
 create mode 100644 patch/kernel/sunxi-next/0122-arm64-dts-allwinner-a64-enable-sound-on-Pinebook.patch
 create mode 100644 patch/kernel/sunxi-next/0123-drm-sun4i-tcon-enable-dithering-on-tcon0-is-there-s-.patch
 create mode 100644 patch/kernel/sunxi-next/0124-drm-lima-Fix-Lima-to-work-with-drm-scheduler-changes.patch
 create mode 100644 patch/kernel/sunxi-next/0125-drm-lima-Fix-lima-cache-creation.patch
 create mode 100644 patch/kernel/sunxi-next/0126-drm-bridge-move-ANA78xx-driver-to-analogix-subdirect.patch
 create mode 100644 patch/kernel/sunxi-next/0127-drm-bridge-split-some-definitions-of-ANX78xx-to-dedi.patch
 create mode 100644 patch/kernel/sunxi-next/0128-drm-bridge-extract-some-Analogix-I2C-DP-common-code.patch
 create mode 100644 patch/kernel/sunxi-next/0129-dt-bindings-Add-ANX6345-DP-eDP-transmitter-binding.patch
 create mode 100644 patch/kernel/sunxi-next/0130-drm-bridge-Add-Analogix-anx6345-support.patch
 create mode 100644 patch/kernel/sunxi-next/0131-arm64-allwinner-a64-add-pinmux-for-RGB666-LCD.patch
 create mode 100644 patch/kernel/sunxi-next/0132-arm64-allwinner-a64-enable-ANX6345-bridge-on-Pineboo.patch
 create mode 100644 patch/kernel/sunxi-next/0133-arm64-allwinner-a64-enable-ANX6345-bridge-on-TERES-I.patch
 create mode 100644 patch/kernel/sunxi-next/0134-drm-sun4i-rgb-Add-5-tolerance-to-dot-clock-frequency.patch
 create mode 100644 patch/kernel/sunxi-next/0135-clk-sunxi-ng-enable-so-said-LDOs-for-A64-SoC-s-pll-m.patch
 create mode 100644 patch/kernel/sunxi-next/0136-hdmi-audio-fixup.patch
 create mode 100644 patch/kernel/sunxi-next/0137-Pinebook-HDMI-audio.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/0138-ASoC-sunxi-rename-SND_SUNXI_ADDA_PR_REGMAP-to-SND_SU.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/0139-Bluetooth-Add-new-quirk-for-broken-local-ext-feature.patch
 create mode 100644 patch/kernel/sunxi-next/0140-Bluetooth-hci_h5-Add-support-for-reset-GPIO.patch
 create mode 100644 patch/kernel/sunxi-next/0141-dt-bindings-net-bluetooth-Add-rtl8723bs-bluetooth.patch
 create mode 100644 patch/kernel/sunxi-next/0142-Bluetooth-hci_h5-Add-support-for-binding-RTL8723BS-w.patch
 create mode 100644 patch/kernel/sunxi-next/0143-Bluetooth-btrtl-add-support-for-the-RTL8723CS.patch
 create mode 100644 patch/kernel/sunxi-next/0144-arm64-allwinner-a64-enable-Bluetooth-On-Pinebook.patch
 create mode 100644 patch/kernel/sunxi-next/0145-arm64-allwinner-a64-enable-Bluetooth-On-Pine64.patch
 create mode 100644 patch/kernel/sunxi-next/0146-arm64-allwinner-a64-enable-Bluetooth-On-SoPine-baseb.patch
 delete mode 100644 patch/kernel/sunxi-next/02-add-H3-mixers.patch
 delete mode 100644 patch/kernel/sunxi-next/03-add-H3-TCONs.patch
 delete mode 100644 patch/kernel/sunxi-next/04-add-H3-DE-compatible.patch
 delete mode 100644 patch/kernel/sunxi-next/05-clk_de-allow-set-rate-parent.patch
 delete mode 100644 patch/kernel/sunxi-next/06-export-H3-clk-pll-de.patch
 delete mode 100644 patch/kernel/sunxi-next/07-1-add-H3-H5-DE2-DT-nodes.patch
 delete mode 100644 patch/kernel/sunxi-next/07-2-add-H3-DE2-DT-nodes.patch
 delete mode 100644 patch/kernel/sunxi-next/07-3-add-H5-DE2-DT-nodes.patch
 delete mode 100644 patch/kernel/sunxi-next/08-dw-hdmi-enable-polling.patch
 delete mode 100644 patch/kernel/sunxi-next/09-dw-hdmi-add-workarounds.patch
 delete mode 100644 patch/kernel/sunxi-next/10-clk-hdmi-allow-set-rate-parent.patch
 delete mode 100644 patch/kernel/sunxi-next/11-drm-sun4i-allow-building-arm64.patch
 delete mode 100644 patch/kernel/sunxi-next/12-dw-hdmi-add-H3-glue.patch
 delete mode 100644 patch/kernel/sunxi-next/13-dw-hdmi-add-DT-nodes.patch
 delete mode 100644 patch/kernel/sunxi-next/14-sun4i-i2s-workarounds.patch
 delete mode 100644 patch/kernel/sunxi-next/15-clk-sunxi-ng-fix-runtime-warnings.patch
 delete mode 100644 patch/kernel/sunxi-next/16-H3-add-HDMI-sound-nodes.patch
 delete mode 100644 patch/kernel/sunxi-next/17-1-enable-hdmi-video-on-several-boards.patch
 delete mode 100644 patch/kernel/sunxi-next/17-2-enable-hdmi-video-on-several-boards.patch
 delete mode 100644 patch/kernel/sunxi-next/18-1-enable-hdmi-sound-on-several-boards.patch
 delete mode 100644 patch/kernel/sunxi-next/18-2-enable-hdmi-sound-on-several-boards.patch
 delete mode 100644 patch/kernel/sunxi-next/21-sun4i-gpadc-iio-add-split-sun8i.patch
 delete mode 100644 patch/kernel/sunxi-next/22-sun4i-gpadc-iio-add-H3-support.patch
 delete mode 100644 patch/kernel/sunxi-next/23-sun4i-gpadc-iio-add-H3-thermal-sensor-DT.patch
 delete mode 100644 patch/kernel/sunxi-next/24-sun4i-gpadc-iio-add-H3-CPU-thermal-zone.patch
 delete mode 100644 patch/kernel/sunxi-next/25-sun4i-gpadc-iio-workaround-for-raw-0-read.patch
 delete mode 100644 patch/kernel/sunxi-next/26-sun4i-gpadc-iio-add-h5-a64-support.patch
 delete mode 100644 patch/kernel/sunxi-next/27-sun4i-gpadc-iio-add-h5-DT.patch
 delete mode 100644 patch/kernel/sunxi-next/33-pll-gpu-allow-set-rate-parent.patch
 delete mode 100644 patch/kernel/sunxi-next/40-add-SY8106A-regulator-driver.patch
 delete mode 100644 patch/kernel/sunxi-next/41-h3-h5-Add-r_i2c-controller.patch
 delete mode 100644 patch/kernel/sunxi-next/42-h3-h5-Add-r_i2c-pins.patch
 delete mode 100644 patch/kernel/sunxi-next/45-add-h3-cpu-OPP-table.patch
 delete mode 100644 patch/kernel/sunxi-next/46-H3-add-opp-table-to-cpu.patch
 delete mode 100644 patch/kernel/sunxi-next/47-03-enable-dvfs-opi-pc.patch
 delete mode 100644 patch/kernel/sunxi-next/47-04-enable-dvfs-opi-2.patch
 delete mode 100644 patch/kernel/sunxi-next/47-05-enable-dvfs-opi-lite.patch
 delete mode 100644 patch/kernel/sunxi-next/51-01-enable-dvfs-opi-pc2.patch
 delete mode 100644 patch/kernel/sunxi-next/51-02-enable-dvfs-opi-prime.patch
 create mode 100644 patch/kernel/sunxi-next/ARM-dts-sun7i-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-and-Banana-Pro.patch
 create mode 100644 patch/kernel/sunxi-next/Revert_BT_HCIUART_RTL_ACPI_dependency.patch
 delete mode 100644 patch/kernel/sunxi-next/add-A64-nmi_intc.patch
 delete mode 100644 patch/kernel/sunxi-next/add-a20-olimex-som204-evb-emmc.patch
 delete mode 100644 patch/kernel/sunxi-next/add-a20-olinuxino-micro-emmc-support.patch
 delete mode 100644 patch/kernel/sunxi-next/add-a64-pinebook.patch
 delete mode 100644 patch/kernel/sunxi-next/add-ad9834-dt-bindings.patch.disabled
 delete mode 100644 patch/kernel/sunxi-next/add-axp803-DT.patch
 delete mode 100644 patch/kernel/sunxi-next/add-bananapi-m2-zero.patch
 delete mode 100644 patch/kernel/sunxi-next/add-emmc-nanopineo-core.patch
 delete mode 100644 patch/kernel/sunxi-next/add-h3-librecomputer.patch
 delete mode 100644 patch/kernel/sunxi-next/add-hdmi-net-bits-beelinkx3.patch
 delete mode 100644 patch/kernel/sunxi-next/add-missing-spi-a64.patch
 delete mode 100644 patch/kernel/sunxi-next/add-r40-m2ultra-a83t-i2s-i2c.patch
 delete mode 100644 patch/kernel/sunxi-next/add-sdio-wifi-orangepi-zero-plus2.patch
 delete mode 100644 patch/kernel/sunxi-next/add-sunxi-overlays.patch
 delete mode 100644 patch/kernel/sunxi-next/add-sunxi64-overlays.patch
 delete mode 100644 patch/kernel/sunxi-next/add-usb-orangepi-zero-plus2.patch.disabled
 delete mode 100644 patch/kernel/sunxi-next/add_otg_neoair.patch
 delete mode 100644 patch/kernel/sunxi-next/arm64-set-default-target-to-Image.patch
 delete mode 100644 patch/kernel/sunxi-next/bash_to_afterinstall.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a64-v3-01-19-arm64-dts-allwinner-a64-Add-L2-cache-nodes.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/board-a64-v3-02-19-arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-file.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a64-v3-13-19-arm64-dts-allwinner-a64-Olinuxino-fix-DRAM-voltage.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a64-v3-14-19-arm64-dts-allwinner-a64-Olinuxino-add-Ethernet-nodes.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/board-a64-v3-15-19-arm64-dts-allwinner-a64-Olinuxino-enable-USB.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a64-v3-16-19-arm64-dts-allwinner-a64-NanoPi-A64-Fix-DCDC1-voltage.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a64-v3-17-19-arm64-dts-allwinner-a64-NanoPi-A64-Add-Ethernet.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/board-a64-v3-18-19-arm64-dts-allwinner-a64-NanoPi-A64-Add-Wifi-chip.patch
 create mode 100644 patch/kernel/sunxi-next/board-a64-v3-19-19-arm64-dts-allwinner-a64-NanoPi-A64-Add-blue-status-LED.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a83t-3-5-clk-sunxi-ng-r40-Add-max.-rate-constraint-to-video-PLLs.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a83t-4-5-clk-sunxi-ng-nkmp-Add-constraint-for-maximum-rate.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a83t-5-5-clk-sunxi-ng-a83t-Add-max.-rate-constraint-to-video-PLLs.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/board-a83t-add-one-more-freq-step-1.6ghz.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a83t-v7-1-4-ARM-dts-sun8i-a83t-Add-the-cir-pin-for-the-A83T.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a83t-v7-2-4-ARM-dts-sun8i-a83t-Add-support-for-the-cir-interface.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/board-a83t-v7-3-4-ARM-dts-sun8i-a83t-bananapi-m3-Enable-IR-controller.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-a83t-v7-4-4-ARM-dts-sun8i-h3-h5-ir-register-size-should-be-the-whole-memory-block.patch (100%)
 delete mode 100644 patch/kernel/sunxi-next/board-add-tritium-h5.patch
 rename patch/kernel/sunxi-next/{47-01-enable-dvfs-opi-zero.patch => board-bpi-m2-zero-enable-dvfs.patch} (56%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-bpi-m3-make-ethernet-working.patch (100%)
 rename patch/kernel/sunxi-next/{cubieboard_green_LED_mmc0.patch => board-cubieboard-cubietruck-green-LED-mmc0.patch} (53%)
 rename patch/kernel/sunxi-next/{cubietruck-enable-uart2.patch => board-cubietruck-enable-uart2.patch} (100%)
 create mode 100644 patch/kernel/sunxi-next/board-cubietruckplus-enable-hdmi.patch
 rename patch/kernel/sunxi-next/{add-nanopi-duo.patch => board-h2plus-nanopi-duo-add-device.patch} (73%)
 rename patch/kernel/sunxi-next/{add-sunvell-r69.patch => board-h2plus-sunvell-r69-add-device.patch} (89%)
 rename patch/kernel/sunxi-next/{board-h3-address-some-stability-issues.patch => board-h3-address-some-stability-issues.patch.disabled} (100%)
 rename patch/kernel/sunxi-next/{fix-nanopi-neo-random-eth-mac.patch => board-h3-nanopi-fix-random-ethernet-mac.patch} (100%)
 create mode 100644 patch/kernel/sunxi-next/board-h3-nanopi-neo-core-add-emmc.patch
 rename patch/kernel/sunxi-next/{board-nanopi-k1-add.patch => board-h5-add-0000-nanopi-k1plus.patch} (70%)
 rename patch/kernel/sunxi-next/{add-nanopi-m1-plus2.patch => board-h5-add-0003-nanopi-m1-plus2.patch} (89%)
 create mode 100644 patch/kernel/sunxi-next/board-h5-orangepi-pc2-add-spi-flash.patch
 rename patch/kernel/sunxi-next/{47-02-enable-dvfs-opi-one.patch => board-h5-orangepi-zero-plus-add-regulator.patch} (56%)
 create mode 100644 patch/kernel/sunxi-next/board-h5-orangepi-zero-plus2-onboard-led.patch
 create mode 100644 patch/kernel/sunxi-next/board-h6-add-orangepi-one-plus-and-lite2.patch
 create mode 100644 patch/kernel/sunxi-next/board-h6-add-rtc-osc32k-out.patch
 create mode 100644 patch/kernel/sunxi-next/board-h6-clock-higher.patch
 create mode 100644 patch/kernel/sunxi-next/board-nanopiair-h3-camera-wifi-bluetooth-otg.patch
 create mode 100644 patch/kernel/sunxi-next/board-olinuxino-A64-add-eMMC.patch
 delete mode 100644 patch/kernel/sunxi-next/board-orangepi-zero-plus2-onboard-led-support.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0007-mmc-sunxi-add-support-for-the-MMC-controller-on-H6.patch.1
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0008-arm64-allwinner-h6-add-device-tree-nodes-for-MMC-con.patch.1
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0008-arm64-allwinner-h6-add-missing-mmc-pins.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0009-arm64-allwinner-h6-enable-MMC0-2-on-Pine-H64.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0011-arm64-allwinner-h6-add-PRCM-CCU-device-node.patch.1
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0013-arm64-allwinner-h6-add-node-for-R_PIO-pin-controller.patch.1
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0014-arm64-allwinner-h6-add-R_INTC-interrupt-controller.patch.1
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0015-arm64-allwinner-h6-add-R_I2C-controller.patch.1
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0018-arm64-allwinner-h6-enable-AXP805-PMIC-on-Pine-H64.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0019-arm64-allwinner-h6-add-PCF8563-RTC-on-Pine-H64-board.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0020-phy-allwinner-add-phy-driver-for-USB3-PHY-on-Allwinn.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0021-dt-bindings-usb-add-binding-for-the-DWC3-controller-.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0023-arm64-allwinner-h6-add-USB3-device-nodes.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0024-arm64-allwinner-h6-enable-USB3-port-on-Pine-H64.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0025-phy-sun4i-usb-add-support-for-missing-USB-PHY-index.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0026-phy-sun4i-usb-add-support-for-H6-USB2-PHY.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0027-arm64-allwinner-h6-add-USB2-related-device-nodes.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0028-arm64-allwinner-h6-enable-USB2-on-Pine-H64.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0029-arm64-allwinner-h6-add-basical-DVFS-support.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0030-arm64-allwinner-h6-add-CPU-regulator-for-Pine-H64.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0032-net-stmmac-sun8i-force-select-external-PHY-when-no-i.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0033-net-stmmac-sun8i-add-support-for-Allwinner-H6-EMAC.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0034-arm64-allwinner-h6-add-EMAC-device-nodes.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine-h6-pine-h6-0035-arm64-allwinner-h6-add-support-for-the-Ethernet-on-P.patch
 create mode 100644 patch/kernel/sunxi-next/board-pine64-add-spi-flash.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/board-r40-sata-support.patch (100%)
 delete mode 100644 patch/kernel/sunxi-next/brcmfmac_ap_banana_ct.patch.disabled
 rename patch/kernel/{sunxi-dev => sunxi-next}/camera-add-the-H3-H5-CSI-controller.patch (100%)
 delete mode 100644 patch/kernel/sunxi-next/cubietruck_green_LED_mmc0.patch
 delete mode 100644 patch/kernel/sunxi-next/enable-fsl-timer-errata.patch
 rename patch/kernel/{sunxi-dev => sunxi-next}/fix-A64-mmc2-remove-PC1-pin.patch (100%)
 delete mode 100644 patch/kernel/sunxi-next/fix-a20-olinuxino-micro-lan8710-support.patch
 delete mode 100644 patch/kernel/sunxi-next/fix-i2c2-reg-property.patch
 delete mode 100644 patch/kernel/sunxi-next/fix-many-orangepiwin-dts.patch
 delete mode 100644 patch/kernel/sunxi-next/fix-zeroplus2-mmc0-cd-polarity.patch
 create mode 100644 patch/kernel/sunxi-next/general-add-H6-GPIO-disable_strict_mode.patch
 create mode 100644 patch/kernel/sunxi-next/general-add-H6-I2Cs.patch
 create mode 100644 patch/kernel/sunxi-next/general-add-H6-UARTs.patch
 create mode 100644 patch/kernel/sunxi-next/general-add-configfs-overlay.patch
 create mode 100644 patch/kernel/sunxi-next/general-add-h3-mixer1.patch
 rename patch/kernel/sunxi-next/{00-20-add-i2s-DT-pins.patch => general-add-i2s-DT-pins.patch} (85%)
 rename patch/kernel/sunxi-next/{add-H27UBG8T2BTR-nand.patch => general-add-nand-H27UBG8T2BTR.patch} (89%)
 create mode 100644 patch/kernel/sunxi-next/general-add-overlay-compilation-support.patch
 create mode 100644 patch/kernel/sunxi-next/general-arm64-add-proc-cpuinfo-entries.patch
 create mode 100644 patch/kernel/sunxi-next/general-armbian-boot-logo-on-screen-center.patch
 create mode 100644 patch/kernel/sunxi-next/general-aufs4.19-20181029.patch
 rename patch/kernel/sunxi-next/{axp20x-sysfs-interface.patch => general-axp20x-sysfs-interface.patch} (100%)
 create mode 100644 patch/kernel/sunxi-next/general-enable-allwinner-SoCs-SID-support.patch
 create mode 100644 patch/kernel/sunxi-next/general-enable-kernel-dtbs-symbol-generation.patch
 create mode 100644 patch/kernel/sunxi-next/general-increasing_DMA_block_memory_allocation_to_2048.patch
 rename patch/kernel/sunxi-next/{packaging-4.x-next.patch => general-packaging-4.17-next.patch} (63%)
 create mode 100644 patch/kernel/sunxi-next/general-provoke-the-early-load-of-sun8i-codec.patch
 rename patch/kernel/sunxi-next/{spidev-remove-warnings.patch => general-spidev-remove-warnings.patch} (100%)
 create mode 100644 patch/kernel/sunxi-next/general-sunxi-overlays.patch
 rename patch/kernel/sunxi-next/{rtc-sunxi-clocksource.patch => general-sunxi-rtc-clocksource.patch} (95%)
 delete mode 100644 patch/kernel/sunxi-next/lime-a10-add-240-mhz-cpufreq.patch
 delete mode 100644 patch/kernel/sunxi-next/memolry-leak-fix-r8723bs.patch
 create mode 100644 patch/kernel/sunxi-next/nand-disable-badblock-check-for-migration.patch
 create mode 100644 patch/kernel/sunxi-next/p-board-h6-add-THS.patch
 create mode 100644 patch/kernel/sunxi-next/patch-4.19.12-13.patch
 delete mode 100644 patch/kernel/sunxi-next/scripts-dtc-import-updates.patch
 delete mode 100644 patch/kernel/sunxi-next/set-DMA-coherent-pool-to-2M.patch
 delete mode 100644 patch/kernel/sunxi-next/staging-rtl8723bs-hide-nolinked-power-save-info-when-not-debugging.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-add-orangepi-zero-plus.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-h3-h5-uart3_rts_cts_pins.patch
 create mode 100644 patch/kernel/sunxi-next/sunxi-h5-add-gpio-regulator-overclock.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-hdmi-enable-beelink-x2.patch.unresolved
 delete mode 100644 patch/kernel/sunxi-next/sunxi-hdmi-enable-friendlyarm-m1.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-hdmi-enable-friendlyarm-m1plus.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-hdmi-enable-friendlyarm-neoplus2.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-hdmi-enable-sinovoip-bananam2plus.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-hdmi-otg_enble-opi-zero2plus-h5.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-network-dwmac-sun8i_backport_from_4.15-rc.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-network-dwmac_h3_gigabit_boards_new_external_mdio.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi-wireless-enable-friendlyarm-neoair.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi64-hdmi-thermal-dma-pmw-enable.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi64-new-bananapi-m64-ethernet-fix.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi64-olinuxino-ethernet-wireless-emmc.patch
 delete mode 100644 patch/kernel/sunxi-next/sunxi64-pine64-plus-ethernet-fix.patch
 rename patch/kernel/sunxi-next/{29-sun4i-gpadc-iio-add-h5-thermal-zone.patch => ths-29-sun4i-gpadc-iio-add-h5-thermal-zone.patch} (100%)
 rename patch/kernel/sunxi-next/{49-add-h5-cpu-OPP-table.patch => ths-49-add-h5-cpu-opp-table.patch.disabled} (100%)
 rename patch/kernel/sunxi-next/{50-H5-add-opp-table-to-cpu.patch => ths-50-add-h5-opp-table-to-cpu.patch.disabled} (87%)
 create mode 100644 patch/kernel/sunxi-next/update-nanopi-neo-plus2-enable-regulator-fix-leds.patch
 create mode 100644 patch/kernel/sunxi-next/wifi-3001-add-realtek-8189es-kconfig-makefile.patch
 rename patch/kernel/sunxi-next/{90-02-add_rtl8189es-experimental.patch => wifi-3002-add-realtek-8189es.patch} (98%)
 create mode 100644 patch/kernel/sunxi-next/wifi-4001-add-realtek-8723cs-kconfig-makefile.patch
 create mode 100644 patch/kernel/sunxi-next/wifi-4002-add-realtek-8723cs.patch
 rename patch/kernel/sunxi-next/{add-realtek-8189fs-driver.patch => wifi-add-realtek-8189fs.patch} (92%)
 rename patch/kernel/sunxi-next/{add-xradio-wireless-driver.patch => wifi-add-xradio.patch} (99%)
 rename patch/kernel/sunxi-next/{add-opi-pc-plus-wifi-pwrseq.patch => wifi-orangepi-pc-plus-pwrseq.patch} (100%)
 rename patch/kernel/sunxi-next/{add-wifi-orangepiprime.patch => wifi-orangepi-prime.patch} (100%)
 rename patch/kernel/sunxi-next/{fix-xradio-interrupt.patch => wifi-orangepi-zero-fix-xradio-interrupt.patch} (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/xxx-0001-network-audio-orangepiwin-dts.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/xxx-0002-enable_usb_uart1-orangepiwin-dts.patch (100%)
 rename patch/kernel/{sunxi-dev => sunxi-next}/xxx-a64-olinuxino-eth.patch (100%)
 create mode 100644 patch/kernel/sunxi-next/xxx-nanopik1plus.patch
 create mode 100644 patch/kernel/sunxi-next/xxx-nanopineo2v1.0-dvfs.patch
 create mode 100644 patch/kernel/sunxi-next/xxx-olinuxino-battery-audio.patch
 create mode 100644 patch/kernel/sunxi-next/xxx-orangepi2-plus-regulator.patch
 create mode 100644 patch/kernel/sunxi-next/xxx-orangepiprime-addregulator.patch
 create mode 100644 patch/kernel/sunxi-next/xxx-orangepizero-plus2-default-regulator.patch
 create mode 100644 patch/kernel/sunxi-next/xxx-pinebook-revert-pwm-polairity-TEMP-WORKAROUND.patch
 create mode 100644 patch/kernel/sunxi-next/xxx-teres-add-battery-hdmi-bits.patch
 delete mode 100644 patch/u-boot/u-boot-sunxi/add-tritium-series.patch

 

 

 

It's not allays that much.. :P but it's worth to do it before you start with development. according to radxas device tree the RockPI has two configurable LEDs.

https://github.com/radxa/kernel/blob/c26d93d001494bbeec86d62e9954b932f254776c/arch/arm64/boot/dts/rockchip/rockpi-4b-linux.dts#L271-L284

	gpio-leds {
		compatible = "gpio-leds";


		user-led1 {
			gpios=<&gpio3 28 GPIO_ACTIVE_HIGH>;
			linux,default-trigger="heartbeat";
			default-state = "on";
		};


		user-led2 {
			gpios=<&gpio3 29 GPIO_ACTIVE_HIGH>;
			linux,default-trigger="heartbeat";
			default-state = "on";
		};

If we don't know what we can do with those we can look into documentation:

https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/leds-gpio.txt

and from there:

https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.txt

 

you see we've quite some options to set our LEDs. At the moment there's different usage in Armbian but I prefer to have one LED always on, ant the other one in heartbeat (some indication in case the board crashes). We could also set one LED to disk-activity but as an example this should do the job. A bit a more useful name for the nodes could also help who knows which led is which if they're named led1 and led2...

so first make sure we're on the right branch and have create patch properly set nano default-config.conf: (cause we build dev image set EXPERT="yes")

CREATE_PATCHES="yes"                    # wait that you make changes to uboot a$
BUILD_ALL="no"                          # cycle through available boards and ma$
                                        # set KERNEL_ONLY to "yes" or "no" to b$

BSPFREEZE=""                            # freeze armbian packages (u-boot, kern$
INSTALL_HEADERS=""                      # install kernel headers package
LIB_TAG="rockpi_tutorial"                       # change to "branchname" to use$
CARD_DEVICE="/dev/mmcblk0"                              # device name /dev/sdx $
EXPERT="yes"

 

if we now compile for our board we will be prompted to make changes once for ATF (we don't, our little change has nothing to do with ATF) u-boot (we could.. but heartbeat doesn't make sense here.. we want it once the board is booted fully up) and kernel.

ATF:

[ warn ] Make your changes in this directory: [ /home/chwe/armbian/build/cache/sources/arm-trusted-firmware-rockchip64/rockchip ]
[ warn ] Press <Enter> after you are done [ waiting ]
[ warn ] No changes found, skipping patch creation 

u-boot:

[ warn ] Make your changes in this directory: [ /home/chwe/armbian/build/cache/sources/u-boot-rockchip64/rockchip-master ]
[ warn ] Press <Enter> after you are done [ waiting ]

okay.. it might make sense to fix the RockPi DT in u-boot as well... That's how the DT looks at the moment (armbian/build/cache/sources/u-boot-rockchip64/rockchip-master/arch/arm/dts/rk3399-rockpi4b.dts):

Spoiler

 


	leds {
		status = "okay";
		compatible = "gpio-leds";

		power-led {
			label = "power";
			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
		};

		standby-led {
			label = "standby";
			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
		};
	};

as you can see.. wrong gpios and a naming which is IMO also not satisfying... Let's change it to:

Spoiler

	leds {
		status = "okay";
		compatible = "gpio-leds";

		power-led {
			label = "power";
			gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
		};

		system-status {
			label = "status";
			gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
		};
	};

 

as you can see, we didn't use heartbeat yet (and the gpios are also wrong).. and now for the kernel:

[ warn ] Make your changes in this directory: [ /home/chwe/armbian/build/cache/sources/u-boot-rockchip64/rockchip-master ]
[ warn ] Press <Enter> after you are done [ waiting ]

/home/chwe/armbian/build/cache/sources/linux-rockchip64/4.20.0-1083-ayufan/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts

keep in mind.. we've to change it in the LED node and the pinctrl node..

 

in build/output/patch we get two patches:

u-boot-rockchip64-dev.patch:

Spoiler

diff --git a/arch/arm/dts/rk3399-rockpi4b.dts b/arch/arm/dts/rk3399-rockpi4b.dts
index 5d73ce5..1a231c8 100644
--- a/arch/arm/dts/rk3399-rockpi4b.dts
+++ b/arch/arm/dts/rk3399-rockpi4b.dts
@@ -67,12 +67,12 @@
 
 		power-led {
 			label = "power";
-			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
 		};
 
-		standby-led {
-			label = "standby";
-			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+		system-status {
+			label = "status";
+			gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
 		};
 	};

 

and for the kernel: (kernel-rockchip64-dev.patch)

Spoiler

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
index 7f10da2a8..6cec6bab3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
@@ -140,20 +140,21 @@
 	};
 
 	leds {
+		status = "okay";
 		compatible = "gpio-leds";
 		pinctrl-names = "default";
-		pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
+		pinctrl-0 = <&power_led_gpio>, <&status_led_gpio>;
 
-		work-led {
-			label = "work";
+		power-led {
+			label = "power";
+			gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
 			default-state = "on";
-			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
 		};
 
-		diy-led {
-			label = "diy";
-			default-state = "off";
-			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
+		system-status {
+			label = "status";
+			gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
 		};
 	};
 
@@ -643,12 +644,12 @@
 	};
 
 	leds {
-		work_led_gpio: work_led-gpio {
-			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+		power_led_gpio: power_led_gpio {
+			rockchip,pins = <3 28 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 
-		diy_led_gpio: diy_led-gpio {
-			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+		status_led_gpio: status_led_gpio {
+			rockchip,pins = <3 29 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};

 

now let's boot the image.. The green led is bright as hell.. and the red one shows heartbeat..  annoying.. let's change them vice versa and hope that everything was right.. :P

as long as we keep the patches in output without renaming them, they get applied in the next run we build an image.. and the can "edit" them. so it's just change gpios in the DT..

Spoiler

uboot:


diff --git a/arch/arm/dts/rk3399-rockpi4b.dts b/arch/arm/dts/rk3399-rockpi4b.dts
index 5d73ce5..8e6457e 100644
--- a/arch/arm/dts/rk3399-rockpi4b.dts
+++ b/arch/arm/dts/rk3399-rockpi4b.dts
@@ -67,12 +67,12 @@
 
 		power-led {
 			label = "power";
-			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
 		};
 
-		standby-led {
-			label = "standby";
-			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+		system-status {
+			label = "status";
+			gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
 		};
 	};
 

kernel:


diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
index 7f10da2a8..66cbea6cc 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
@@ -140,20 +140,21 @@
 	};
 
 	leds {
+		status = "okay";
 		compatible = "gpio-leds";
 		pinctrl-names = "default";
-		pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
+		pinctrl-0 = <&power_led_gpio>, <&status_led_gpio>;
 
-		work-led {
-			label = "work";
+		power-led {
+			label = "power";
+			gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
 			default-state = "on";
-			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
 		};
 
-		diy-led {
-			label = "diy";
-			default-state = "off";
-			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
+		system-status {
+			label = "status";
+			gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
 		};
 	};
 
@@ -643,12 +644,12 @@
 	};
 
 	leds {
-		work_led_gpio: work_led-gpio {
-			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+		power_led_gpio: power_led_gpio {
+			rockchip,pins = <3 29 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 
-		diy_led_gpio: diy_led-gpio {
-			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+		status_led_gpio: status_led_gpio {
+			rockchip,pins = <3 28 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
 

 

hmm seems that now both LEDs are always on.. so something is wrong here.. either the DT from the BSP kernel isn't correct.. or it doesn't work..

means, we've no idea how to trigger the green LED. But we know how to trigger the RED LED. Now let's write a patch which only triggers the RED LED and erase the other LED node cause we've no clue how to trigger it.

U-boot:

diff --git a/arch/arm/dts/rk3399-rockpi4b.dts b/arch/arm/dts/rk3399-rockpi4b.dts
index 5d73ce5..5574e9b 100644
--- a/arch/arm/dts/rk3399-rockpi4b.dts
+++ b/arch/arm/dts/rk3399-rockpi4b.dts
@@ -65,14 +65,9 @@
 		status = "okay";
 		compatible = "gpio-leds";

-		power-led {
-			label = "power";
-			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
-		};
-
-		standby-led {
-			label = "standby";
-			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+		system-status {
+			label = "status";
+			gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
 		};
 	};

Kernel:


diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
index 7f10da2a8..1d4721dcc 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts
@@ -140,20 +140,15 @@
 	};

 	leds {
+		status = "okay";
 		compatible = "gpio-leds";
 		pinctrl-names = "default";
-		pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
-
-		work-led {
-			label = "work";
-			default-state = "on";
-			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
-		};
+		pinctrl-0 = <&status_led_gpio>;

-		diy-led {
-			label = "diy";
-			default-state = "off";
-			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
+		system-status {
+			label = "status";
+			gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
 		};
 	};

@@ -643,12 +638,8 @@
 	};

 	leds {
-		work_led_gpio: work_led-gpio {
-			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-
-		diy_led_gpio: diy_led-gpio {
-			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+		status_led_gpio: status_led_gpio {
+			rockchip,pins = <3 28 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};

Now since we know that our patch works, let's give it a meaningful name and move it in the correct folder. the patchname makes it easy for you.. and rename it to a meaningful name. (build/patch/kernel/rockchip64-dev & build/patch/u-boot/u-boot-rockchip64-dev). For the beginnings fix-rockpi4b-led.patch sounds ok-ish. We've to check if those new patches apply correctly after moving to the right folder:

uboot:

[ o.k. ] * [l][c] add-board-renegade.patch 
[ o.k. ] * [l][c] add-board-rockpi4b.patch 
[ o.k. ] * [l][c] add-missing-SDMMC0_PWR_H-rockpro64.patch 
[ o.k. ] * [l][c] add-u-boot-delay-rockpro64.patch 
[ o.k. ] * [l][c] board-renegade-updates.patch 
[ o.k. ] * [l][c] enable-DT-overlays-support.patch 
[ o.k. ] * [l][c] fix-rockpi4b-led.patch 

and kernel:

[ o.k. ] * [l][c] RK3328-enable-1512mhz-opp.patch 
[ o.k. ] * [l][c] RK3399-enable_1.5_2.0_ghz_cpufreq_opp.patch 
[ o.k. ] * [l][c] add-board-rockpi4b.patch 
[ o.k. ] * [l][c] add-fusb30x-driver.patch 
[ o.k. ] * [l][c] board-rockpi4-dts-wip-fixup.patch 
[ o.k. ] * [l][c] firefly-rk3399-enable-wifi.patch 
[ o.k. ] * [l][c] fix-rockpi4b-led.patch 
[ o.k. ] * [l][c] fix-rockpro64-emmc.patch 
[ o.k. ] * [l][c] fix-spi1-flash-speed.patch 
[ o.k. ] * [l][c] general-add-overlay-compilation-support.patch 
[ o.k. ] * [l][c] general-increasing_DMA_block_memory_allocation_to_2048.patch 
[ o.k. ] * [l][c] general-packaging-4.17-dev.patch 
[ o.k. ] * [l][c] general-rockchip-overlays.patch 
[ o.k. ] * [l][c] nanopi4-dts.patch 
[ o.k. ] * [l][c] orangepi-rk3399-dts.patch 
[ o.k. ] * [l][c] renegade-add-HDMI-nodes.patch 
[ o.k. ] * [l][c] renegade-enable-usb3.patch 
[ o.k. ] * [l][c] rk3328-sd-drive-level-8ma.patch 
[ o.k. ] * [l][c] rk3399-sd-drive-level-8ma.patch 
[ o.k. ] * [l][c] timekeeping32-tweaks-for-4.20.y.patch 
[ o.k. ] * [l][c] unlock-temperature.patch 

seems that everything is okay. So it's time to bring them back to armbian. :) Let's check our repo with git status:

chwe@chwe-HP:~/armbian/build$ git status
On branch rockpi_tutorial
Your branch is up to date with 'origin/rockpi_tutorial'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	patch/kernel/rockchip64-dev/fix-rockpi4b-led.patch
	patch/u-boot/u-boot-rockchip64-dev/fix-rockpi4b-led.patch

nothing added to commit but untracked files present (use "git add" to track)

there are our two new patches.. lets add and commit (with a meaningful commit message) them with: git add -A && git commit followed by git push

chwe@chwe-HP:~/armbian/build$ git push
Username for 'https://github.com': chwe17
Password for 'https://chwe17@github.com': 
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 1.50 KiB | 1.50 MiB/s, done.
Total 9 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), completed with 4 local objects.
To https://github.com/chwe17/build.git
   a156fddf..bb63ed6d  rockpi_tutorial -> rockpi_tutorial

https://github.com/chwe17/build/tree/rockpi_tutorial

our features branch is now one commit ahead of armbian master and we can create a PR against armbians master:

https://github.com/armbian/build/pull/1236

 

You see, just adding something simple like triggering an LED to heartbeat can give you some headache.. and takes more time that we expected cause the second LED didn't behave as we thought. But finally, we got it. :)

 

Edit: this post was written 'on the fly'.. :P If something isn't clear, just let me know.. and I'll try to explain it better.

Edit2: cause 'we know' that @TonyMac32 does a lot with RK boards we request him as reviewer. :)

Link to comment
Share on other sites

for whatever reason compiling ATF fails from time to time..

3.2.1.make -C plat/rockchip/rk3399/drivers/m0 BUILD=/home/chwe/armbian/build/cache/sources/arm-trusted-firmware-rockchip64/rockchip/build/rk3399/debug/m0
make[1]: Entering directory '/home/chwe/armbian/build/cache/sources/arm-trusted-firmware-rockchip64/rockchip/plat/rockchip/rk3399/drivers/m0'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/chwe/armbian/build/cache/sources/arm-trusted-firmware-rockchip64/rockchip/plat/rockchip/rk3399/drivers/m0'
make: Nothing to be done for 'bl31'.
out:trust.bin
E: [mergetrust] filter_elf ./build/rk322xh/debug/bl31/bl31.elf file failed
merge failed!
[ error ] ERROR in function compile_atf [ compilation.sh:83 ]
[ error ] ATF file not found [ trust.bin ]
[ o.k. ] Process terminated 

the sources with ATF were still there.. but int fails.. the merge looks like doing it for the wrong soc? someone has a clue?

 

Edit: if you build an image for the rockpro first.. it normally doesn't break..

Link to comment
Share on other sites

The RockPi does not boot Armbian Stretch from the inserted SD card if an eMMC is installed at the same time. As soon as I remove the eMMC it works. An image of radxa boots even if eMMC is installed. This behavior irritates me a bit, is that normal?

 

Image on the SD card: Armbian_5.73.190128_Rockpi-4b_Debian_stretch_dev_4.20.0

I hope I'm right here if I find something while testing the nightly development branch.

Link to comment
Share on other sites

8 minutes ago, mitag said:

An image of radxa boots even if eMMC is installed. This behavior irritates me a bit, is that normal?

probably not.. But you have at least to provide a bootlog from serial console to get a clue where it messes.. RockPi is in early stage of board bring up (wip). Bugs must be expected..

 

9 minutes ago, mitag said:

I hope I'm right here

nope, therefore moved to the rockpi thread..

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines