Jump to content

Armbian for Amlogic S805 and S802/S812


masteripper

Recommended Posts

vor 7 Minuten schrieb armbian-mxq:

Ok, I am also interested to know whether we may add more resolution in the dtb for kernel 3, say 1366x768p? In the attached dts of old kernel, I can see a section mesonfb. Vmode=3 and default resolution is set to 1980x1080p in hex

normaly the driver should change resolution 

 

in dtb there should be only one for starting the box/kernel like a nativ resolution

 

after kernel start x11 should do it

 

because i  used headless , i haven`t play with any HDMI and Display part , most things i change was on wifi and sdio part

Link to comment
Share on other sites

i will try dts comparison when i have a little more time. Its really sad that such a good hardware is not supported fully by linux. for the TV my idea was to display htop, iptraf, bwm-ng etc. 

 

from cursory look, kernel 3 dtb and kernel 5 dtb look vastly different:

this is from kernel 3 meson8b_mxq.dtb

Quote


/dts-v1/;

/ {
	amlogic-dt-id = "m8b_m201_1G";
	compatible = "AMLOGIC,8726_M8B";
	model = "AMLOGIC";
	interrupt-parent = <0x01>;
	#address-cells = <0x01>;
	#size-cells = <0x01>;

	cpus {
		#address-cells = <0x01>;
		#size-cells = <0x00>;

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			reg = <0x200>;
		};

		cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			reg = <0x01>;
		};

		cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			reg = <0x02>;
		};

		cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			reg = <0x03>;
		};
	};

	cache-controller {
		compatible = "arm,meson-pl310-cache";
		reg = <0xc4200000 0x1000>;
		arm,data-latency = <0x03 0x03 0x03>;
		arm,tag-latency = <0x02 0x02 0x02>;
		arm,filter-ranges = <0x100000 0xc0000000>;
		cache-unified;
		cache-level = <0x02>;
		aux-instruction_prefetch;
		aux-data_prefetch;
		aux-ns_lockdown;
		aux-force_no_write_alloc;
		aux-cache_replace_policy_round_robin;
		aux-early_write_response;
		aux-full_line_of_zero;
		aux-ns_int_ctrl;
		aux-share_override;
		prefetch-double_line_fill;
		prefetch-prefetch_drop;
		prefetch-prefetch_offset = <0x07>;
	};

	memory {
		device_type = "memory";
		aml_reserved_start = <0x6000000>;
		aml_reserved_end = <0x5000000>;
		phys_offset = <0x200000>;
		linux,total-memory = <0x3fe00000>;
		#address-cells = <0x01>;
		#size-cells = <0x01>;

		region@0 {
			region_name = "cma_0";
			reg = <0x00 0x1200000>;
			linux,contiguous-region;
			linux,phandle = <0x02>;
			phandle = <0x02>;
		};
	};

	interrupt-controller {
		compatible = "arm,cortex-a9-gic";
		reg = <0xc4301000 0x1000 0xc4300100 0x100>;
		interrupt-controller;
		#interrupt-cells = <0x03>;
		#address-cells = <0x00>;
		linux,phandle = <0x01>;
		phandle = <0x01>;
	};

	vpu {
		compatible = "amlogic,vpu";
		dev_name = "vpu";
		status = "ok";
		clk_level = <0x03>;
	};

	mesonfb {
		compatible = "amlogic,mesonfb";
		dev_name = "mesonfb";
		status = "okay";
		reserve-memory = <0x1800000 0x100000>;
		reserve-iomap = "true";
		vmode = <0x03>;
		scale_mode = <0x01>;
		4k2k_fb = <0x00>;
		display_size_default = <0x780 0x438 0x780 0xca8 0x20>;
	};

	deinterlace {
		compatible = "amlogic,deinterlace";
		dev_name = "deinterlace";
		status = "ok";
		reserve-memory = <0x2100000>;
	};

	mesonstream {
		compatible = "amlogic,mesonstream";
		dev_name = "mesonstream.0";
		status = "okay";
		reserve-memory = <0x2000000>;
	};

	vdec {
		compatible = "amlogic,vdec";
		dev_name = "vdec.0";
		status = "okay";
		reserve-memory = <0x4000000>;
		reserve-iomap = "true";
	};

	ppmgr {
		compatible = "amlogic,ppmgr";
		dev_name = "ppmgr";
		status = "okay";
		reserve-memory = <0x2000000>;
	};

	amvenc_avc {
		compatible = "amlogic,amvenc_avc";
		dev_name = "amvenc_avc.0";
		status = "okay";
		linux,contiguous-region = <0x02>;
		reserve-iomap = "true";
	};

	ion_dev {
		compatible = "amlogic,ion_dev";
		dev_name = "ion_dev";
		status = "ok";
		share-memory-name = "ppmgr0";
		share-memory-offset = <0x00>;
		share-memory-size = <0x2000000>;
	};

	mesonvout {
		compatible = "amlogic,mesonvout";
		dev_name = "mesonvout";
		status = "okay";
	};

	amvideocap {
		compatible = "amlogic,amvideocap";
		dev_name = "amvideocap.0";
		status = "okay";
		reserve-memory = <0x600000>;
		reserve-iomap = "true";
	};

	rtc {
		compatible = "amlogic,aml_rtc";
		sec_adjust = <0x6c7>;
		status = "okay";
	};

	uart_ao {
		compatible = "amlogic,aml_uart";
		port_name = "uart_ao";
		status = "okay";
		dev_name = "uart_ao";
	};

	uart_0 {
		compatible = "amlogic,aml_uart";
		port_name = "uart_a";
		status = "disabled";
		dev_name = "uart_0";
	};

	uart_1 {
		compatible = "amlogic,aml_uart";
		port_name = "uart_b";
		status = "okay";
		dev_name = "uart_1";
		pinctrl-names = "default";
		pinctrl-0 = <0x03>;
	};

	uart_2 {
		compatible = "amlogic,aml_uart";
		port_name = "uart_c";
		status = "disabled";
		dev_name = "uart_2";
	};

	uart_3 {
		compatible = "amlogic,aml_uart";
		port_name = "uart_d";
		status = "ok";
		dev_name = "uart_3";
	};

	bt-dev {
		compatible = "amlogic,bt-dev";
		dev_name = "bt-dev";
		status = "ok";
		gpio_reset = "GPIOX_20";
	};

	wifi {
		compatible = "amlogic,aml_broadcm_wifi";
		dev_name = "aml_broadcm_wifi";
		status = "okay";
		interrupt_pin = "GPIOX_21";
		irq_num = <0x04>;
		irq_trigger_type = "GPIO_IRQ_HIGH";
		power_on_pin = "GPIOAO_6";
		power_on_pin2 = "GPIOX_11";
		clock_32k_pin = "GPIOX_10";
	};

	wifi_power {
		compatible = "amlogic,wifi_power";
		dev_name = "wifi_power";
		status = "okay";
		power_gpio = "GPIOAO_6";
		power_gpio2 = "GPIOX_11";
	};

	sdio {
		compatible = "amlogic,aml_sdio";
		dev_name = "aml_sdio.0";
		status = "okay";
		reg = <0xc1108c20 0x20>;
		pinctrl-names = "sd_clk_cmd_pins\0sd_all_pins\0emmc_clk_cmd_pins\0emmc_all_pins\0sdio_clk_cmd_pins\0sdio_all_pins\0sd_1bit_pins";
		pinctrl-0 = <0x04>;
		pinctrl-1 = <0x05>;
		pinctrl-2 = <0x06>;
		pinctrl-3 = <0x07>;
		pinctrl-4 = <0x08>;
		pinctrl-5 = <0x09>;
		pinctrl-6 = <0x0a>;

		sd {
			status = "okay";
			port = <0x01>;
			pinname = "sd";
			ocr_avail = <0x200000>;
			caps = "MMC_CAP_4_BIT_DATA\0MMC_CAP_MMC_HIGHSPEED\0MMC_CAP_SD_HIGHSPEED";
			f_min = <0x493e0>;
			f_max = <0x2faf080>;
			f_max_w = <0x2faf080>;
			max_req_size = <0x20000>;
			gpio_dat3 = "CARD_4";
			jtag_pin = "CARD_0";
			gpio_cd = "CARD_6";
			irq_in = <0x03>;
			irq_out = <0x05>;
			card_type = <0x05>;
		};

		sdio {
			status = "ok";
			port = <0x00>;
			pinname = "sdio";
			ocr_avail = <0x200000>;
			caps = "MMC_CAP_4_BIT_DATA\0MMC_CAP_SDIO_IRQ\0MMC_CAP_MMC_HIGHSPEED\0MMC_CAP_SD_HIGHSPEED\0MMC_CAP_NONREMOVABLE";
			f_min = <0x493e0>;
			f_max = <0x2faf080>;
			max_req_size = <0x20000>;
			card_type = <0x03>;
		};
	};

	sdhc {
		compatible = "amlogic,aml_sdhc";
		dev_name = "aml_sdhc.0";
		status = "okay";
		reg = <0xc1108e00 0x3c>;
		pinctrl-names = "sdhc_sd_clk_cmd_pins\0sdhc_sd_all_pins\0sdhc_emmc_clk_cmd_pins\0sdhc_emmc_all_pins\0sdhc_sdio_clk_cmd_pins\0sdhc_sdio_all_pins";
		pinctrl-0 = <0x0b>;
		pinctrl-1 = <0x0c>;
		pinctrl-2 = <0x0d>;
		pinctrl-3 = <0x0e>;
		pinctrl-4 = <0x0f>;
		pinctrl-5 = <0x10>;

		emmc {
			status = "okay";
			port = <0x05>;
			pinname = "emmc";
			ocr_avail = <0x200000>;
			caps = "MMC_CAP_8_BIT_DATA\0MMC_CAP_MMC_HIGHSPEED\0MMC_CAP_SD_HIGHSPEED\0MMC_CAP_NONREMOVABLE\0MMC_CAP_ERASE\0MMC_CAP_HW_RESET";
			caps2 = "MMC_CAP2_HS200_1_8V_SDR";
			f_min = <0x493e0>;
			f_max = <0x5f5e100>;
			max_req_size = <0x20000>;
			gpio_dat3 = "BOOT_3";
			card_type = <0x01>;
		};
	};

	dvfs {
		compatible = "amlogic, amlogic-dvfs";
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "ok";

		vcck_dvfs {
			dvfs_id = <0x01>;
			table_count = <0x0d>;
			dvfs_table = <0x17700 0xd1f60 0xd1f60 0x2ee00 0xd1f60 0xd1f60 0x4c2c0 0xd1f60 0xd1f60 0x639c0 0xd1f60 0xd1f60 0x7b0c0 0xd1f60 0xd1f60 0x927c0 0xd1f60 0xd1f60 0xafc80 0xd1f60 0xd1f60 0xc7380 0xdbba0 0xdbba0 0xf6180 0xe09c0 0xe09c0 0x124f80 0xecd10 0xecd10 0x142440 0x10c8e0 0x10c8e0 0x16b480 0x10c8e0 0x10c8e0 0x177000 0x116520 0x116520>;
		};
	};

	meson_vcck_dvfs_driver {
		compatible = "amlogic, meson_vcck_dvfs";
		dev_name = "meson_vcck_dvfs_driver";
		status = "ok";
		pinctrl-names = "default";
		pinctrl-0 = <0x11>;
		use_pwm = <0x01>;
		pmw_controller = "PWM_C";
		table_count = <0x1d>;
		cs_voltage_table = <0x1c0000 0xd1f60 0x1b0001 0xd4670 0x1a0002 0xd6d80 0x190003 0xd9490 0x180004 0xdbba0 0x170005 0xde2b0 0x160006 0xe09c0 0x150007 0xe30d0 0x140008 0xe57e0 0x130009 0xe7ef0 0x12000a 0xea600 0x11000b 0xecd10 0x10000c 0xef420 0xf000d 0xf1b30 0xe000e 0xf4240 0xd000f 0xf6950 0xc0010 0xf9060 0xb0011 0xfb770 0xa0012 0xfde80 0x90013 0x100590 0x80014 0x102ca0 0x70015 0x1053b0 0x60016 0x107ac0 0x50017 0x10a1d0 0x40018 0x10c8e0 0x30019 0x10eff0 0x2001a 0x111700 0x1001b 0x113e10 0x1c 0x116520>;
	};

	arm_pmu {
		compatible = "arm,cortex-a9-pmu";
		status = "ok";
		interrupts = <0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x99 0x04 0x00 0x9a 0x04>;
	};

	usb_con {
		lm-compatible = "logicmodule-bus";

		usb_b {
			lm-compatible = "amlogic,usb";
			lm-periph-id = <0x01>;
			clock-src = "usb1";
			port-id = <0x01>;
			port-type = <0x01>;
			port-speed = <0x00>;
			port-config = <0x00>;
			port-dma = <0x00>;
			port-id-mode = <0x01>;
			status = "okay";
		};

		usb_a {
			lm-compatible = "amlogic,usb";
			lm-periph-id = <0x00>;
			clock-src = "usb0";
			port-id = <0x00>;
			port-type = <0x00>;
			port-speed = <0x00>;
			port-config = <0x00>;
			port-dma = <0x00>;
			port-id-mode = <0x00>;
			gpio-vbus-power = "GPIOAO_5";
			gpio-work-mask = <0x01>;
			status = "okay";
		};
	};

	led {
		compatible = "amlogic-led";
		dev_name = "aml-setio";
		status = "okay";
		red_led_gpio = "GPIOAO_1";
		blue_led_gpio = "GPIOAO_1";
		red_led_mode = <0x00>;
		blue_led_mode = <0x01>;
	};

	audio_platform {
		compatible = "amlogic,aml-i2s";
		dev_name = "aml-i2s.0";
		status = "okay";
	};

	audio_dai {
		compatible = "amlogic,aml-i2s-dai";
		dev_name = "aml-i2s-dai.0";
		status = "okay";
	};

	audio_spdif_dai {
		compatible = "amlogic,aml-spdif-dai";
		dev_name = "aml-spdif-dai.0";
		status = "okay";
	};

	audio_spdif_codec {
		compatible = "amlogic,aml-spdif-codec";
		dev_name = "spdif-dit.0";
		status = "okay";
	};

	audio_pcm2BT_codec {
		compatible = "amlogic,pcm2BT-codec";
		dev_name = "pcm2bt.0";
		status = "okay";
	};

	audio_pcm_dai {
		compatible = "amlogic,aml-pcm-dai";
		dev_name = "aml-pcm-dai.0";
		status = "okay";
	};

	audio_pcm {
		compatible = "amlogic,aml-pcm";
		dev_name = "aml-pcm.0";
		status = "okay";
	};

	audio_m8_audio {
		compatible = "amlogic,m8_audio_codec";
		dev_name = "aml_m8_codec.0";
		status = "disable";
	};

	dummy_codec {
		compatible = "amlogic,aml_dummy_codec";
		dev_name = "dummy_codec.0";
		status = "okay";
	};

	aml_audio_codec {
		compatible = "amlogic,audio_codec";

		rt5616 {
			codec_name = "rt5616";
			i2c_addr = <0x1b>;
			i2c_bus = "i2c_bus_d";
			id_reg = <0x00>;
			id_val = <0x21>;
			capless = <0x00>;
			status = "disable";
		};

		rt5631 {
			codec_name = "rt5631";
			i2c_addr = <0x1a>;
			i2c_bus = "i2c_bus_b";
			id_reg = <0x00>;
			id_val = <0x01>;
			capless = <0x00>;
			status = "disable";
		};

		wm8960 {
			codec_name = "wm8960";
			i2c_addr = <0x1a>;
			i2c_bus = "i2c_bus_b";
			capless = <0x01>;
			status = "disable";
		};

		dummy {
			codec_name = "dummy_codec";
			status = "okay";
		};
	};

	aml_m8_sound_card {
		compatible = "sound_card, aml_snd_m8";
		aml,sound_card = "AML-M8AUDIO";
		aml,codec_dai = "AML-M8\0rt5616-aif1\0rt5631-hifi\0wm8960-hifi\0dummy_codec";
		aml,audio-routing-rt5616 = "Ext Spk\0LOUTL\0Ext Spk\0LOUTR\0HP\0HPOL\0HP\0HPOR\0micbias1\0MAIN MIC\0IN2P\0micbias1";
		aml,audio-routing-amlm8 = "Ext Spk\0LINEOUTL\0Ext Spk\0LINEOUTR\0HP\0HP_L\0HP\0HP_R\0MICBIAS\0MAIN MIC\0LINPUT1\0MICBIAS";
		aml,audio-routing-dummy = "Ext Spk\0LOUTL\0Ext Spk\0LOUTR";
		mute_gpio = "GPIO_BSD_EN";
		hp_disable;
		hp_paraments = <0x320 0x12c 0x00 0x05 0x01>;
		pinctrl-names = "aml_snd_m8";
		pinctrl-0 = <0x12>;
		status = "okay";
	};

	gpio_keypad {
		compatible = "amlogic,gpio_keypad";
		status = "okay";
		scan_period = <0x14>;
		key_num = <0x01>;
		key_name = "power";
		key_code = <0x74>;
		key_pin = "GPIOAO_3";
		irq_keyup = <0x06>;
		irq_keydown = <0x07>;
	};

	saradc {
		compatible = "amlogic,saradc";
		status = "okay";
	};

	meson-remote {
		compatible = "amlogic,aml_remote";
		dev_name = "meson-remote";
		status = "ok";
		ao_baseaddr = <0xf3100480>;
		pinctrl-names = "default";
		pinctrl-0 = <0x13>;
	};

	spi@cc000000 {
		compatible = "amlogic,apollo_spi_nor";
		status = "ok";
		reg = <0xcc000000 0x4000000>;
		pinctrl-names = "default";
		pinctrl-0 = <0x14>;
		nr-parts = <0x02>;
		nr-part-0 = <0x15>;
		nr-part-1 = <0x16>;

		bootloader {
			offset = <0x00>;
			size = <0x100000>;
			linux,phandle = <0x15>;
			phandle = <0x15>;
		};

		ubootenv {
			offset = <0x100000>;
			size = <0x10000>;
			linux,phandle = <0x16>;
			phandle = <0x16>;
		};
	};

	nand {
		compatible = "amlogic,aml_nand";
		dev_name = "nand";
		status = "ok";
		reg = <0xd0048600 0x24>;
		pinctrl-names = "nand_rb_mod\0nand_norb_mod";
		pinctrl-0 = <0x17 0x18 0x19>;
		pinctrl-1 = <0x17 0x18 0x19>;
		device_id = <0x00>;
		plat-names = "nandnormal";
		plat-num = <0x01>;
		plat-part-0 = <0x1a>;

		normal {
			enable_pad = "ce0\0ce1\0ce2\0ce3";
			busy_pad = "rb0";
			linux,phandle = <0x1a>;
			phandle = <0x1a>;
		};
	};

	efuse {
		compatible = "amlogic,efuse";
		dev_name = "efuse";
		status = "okay";
		plat-pos = <0x00 0x1c6>;
		plat-count = <0x3a>;
		usid-min = <0x08>;
		usid-max = <0x1f>;
	};

	thermal {
		compatible = "amlogic-thermal";
		#thermal-cells = <0x07>;
		dev_name = "aml_thermal";
		trip_point = <0x3c 0x177001 0x177001 0x1ff 0x1ff 0x03 0x02 0x41 0x16b481 0x16b481 0x1aa 0x1aa 0x03 0x02 0x46 0x142441 0x142441 0x148 0x148 0x02 0x02 0x4b 0x124f81 0x124f81 0x148 0x148 0x02 0x01 0x50 0xf6181 0xf6181 0x148 0x148 0x02 0x01 0x5a 0xafc81 0xafc81 0xfb 0xfb 0x01 0x01 0x104 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff>;
		cpu_cali_a = <0x00>;
		idle_interval = <0x3e8>;
		use_virtual_thermal;
		freq_sample_period = <0x1e>;
		report_time = <0x01 0x0a 0x1e 0x3c>;
		cpu_virtual = <0x7a120 0x28 0x28 0x28 0x28 0x927c0 0x2d 0x37 0x3c 0x41 0xc3500 0x32 0x3c 0x41 0x46 0xf4240 0x37 0x41 0x46 0x4b 0x124f80 0x3c 0x46 0x4b 0x50 0x149970 0x41 0x4b 0x50 0x55>;
		gpu_virtual = <0xb7 0x28 0x28 0x28 0x28 0xfb 0x28 0x2d 0x32 0x37 0x13f 0x32 0x3c 0x41 0x46 0x1aa 0x37 0x41 0x46 0x4b 0x1ff 0x3c 0x46 0x4b 0x50>;
	};

	securitykey {
		compatible = "amlogic,aml_keys";
		status = "ok";
	};

	unifykey {
		compatible = "amlogic,unifykey";
		status = "ok";
		unifykey-num = <0x06>;
		unifykey-index-0 = <0x1b>;
		unifykey-index-1 = <0x1c>;
		unifykey-index-2 = <0x1d>;
		unifykey-index-3 = <0x1e>;
		unifykey-index-4 = <0x1f>;
		unifykey-index-5 = <0x20>;

		key_0 {
			key-name = "usid";
			key-device = "nandkey";
			key-dataformat = "allascii";
			key-permit = "read\0write\0del";
			linux,phandle = <0x1b>;
			phandle = <0x1b>;
		};

		key_1 {
			key-name = "mac";
			key-device = "nandkey";
			key-dataformat = "hexdata";
			key-permit = "read\0write\0del";
			linux,phandle = <0x1c>;
			phandle = <0x1c>;
		};

		key_2 {
			key-name = "hdcp";
			key-device = "nandkey";
			key-dataformat = "hexdata";
			key-permit = "read\0write\0del";
			linux,phandle = <0x1d>;
			phandle = <0x1d>;
		};

		key_3 {
			key-name = "secure_boot_set";
			key-device = "efusekey";
			key-dataformat = "hexdata";
			key-permit = "read\0write";
			linux,phandle = <0x1e>;
			phandle = <0x1e>;
		};

		key_4 {
			key-name = "mac_bt";
			key-device = "nandkey";
			key-dataformat = "hexdata";
			key-permit = "read\0write\0del";
			linux,phandle = <0x1f>;
			phandle = <0x1f>;
		};

		key_5 {
			key-name = "mac_wifi";
			key-device = "nandkey";
			key-dataformat = "hexdata";
			key-permit = "read\0write\0del";
			linux,phandle = <0x20>;
			phandle = <0x20>;
		};
	};

	amhdmitx {
		compatible = "amlogic,amhdmitx";
		dev_name = "amhdmitx";
		status = "ok";
		vend-data = <0x21>;
		pwr-ctrl = <0x22>;

		vend_data {
			vendor_name = "Amlogic";
			vendor_id = <0x00>;
			product_desc = "M8 MBox SKTv1";
			cec_osd_string = "MBox";
			cec_config = <0x0f>;
			ao_cec = <0x01>;
			linux,phandle = <0x21>;
			phandle = <0x21>;
		};

		pwr_ctrl {
			pwr_5v_on = [00];
			pwr_5v_off = [00];
			pwr_3v3_on = [00];
			pwr_3v3_off = [00];
			pwr_hpll_vdd_on = [00];
			pwr_hpll_vdd_off = [00];
			linux,phandle = <0x22>;
			phandle = <0x22>;
		};
	};

	aml_pm {
		compatible = "amlogic,pm-m8";
		dev_name = "aml_pm_m8";
		status = "okay";
	};

	cpufreq-meson {
		compatible = "amlogic,cpufreq-meson";
		syspll_fixed;
		status = "okay";
	};

	aml_aes {
		compatible = "amlogic,aes";
		dev_name = "aml_aes";
	};

	aml_tdes {
		compatible = "amlogic,des,tdes";
		dev_name = "aml_tdes";
	};

	gpio {
		compatible = "amlogic,m8b-gpio";
		dev_name = "gpio";
		#gpio-cells = <0x02>;
	};

	pinmux {
		compatible = "amlogic,pinmux-m8b";
		dev_name = "pinmux";
		#pinmux-cells = <0x02>;

		b_uart {
			amlogic,setmask = <0x04 0x3c0>;
			amlogic,pins = "GPIOX_16\0GPIOX_17\0GPIOX_18\0GPIOX_19";
			linux,phandle = <0x03>;
			phandle = <0x03>;
		};

		nand_input {
			amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_12\0BOOT_13\0BOOT_8\0BOOT_9\0BOOT_10\0BOOT_11\0BOOT_14\0BOOT_15\0BOOT_16\0BOOT_17";
			amlogic,enable-output = <0x01>;
			linux,phandle = <0x17>;
			phandle = <0x17>;
		};

		conf_nand {
			amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_15";
			amlogic,pullup = <0x00>;
			linux,phandle = <0x18>;
			phandle = <0x18>;
		};

		nand {
			amlogic,setmask = <0x02 0x7fe0000>;
			amlogic,clrmask = <0x05 0x0e 0x06 0x3f000000 0x04 0x7c000000>;
			amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_8\0BOOT_9\0BOOT_10\0BOOT_12\0BOOT_13\0BOOT_14\0BOOT_15\0BOOT_16\0BOOT_17";
			linux,phandle = <0x19>;
			phandle = <0x19>;
		};

		sdhc_b_pin {
			amlogic,setmask = <0x02 0xfc00>;
			amlogic,clrmask = <0x02 0xf0 0x08 0x600>;
			amlogic,pins = "CARD_0\0CARD_1\0CARD_2\0CARD_3\0CARD_4\0CARD_5";
		};

		sdhc_c_pin {
			amlogic,setmask = <0x06 0x3f000000>;
			amlogic,clrmask = <0x04 0x6c000000 0x02 0x4c00000>;
			amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_10\0BOOT_11";
		};

		sdhc_a_pin {
			amlogic,setmask = <0x08 0x3f>;
			amlogic,clrmask = <0x05 0x6c00>;
			amlogic,pins = "GPIOX_0\0GPIOX_1\0GPIOX_2\0GPIOX_3\0GPIOX_8\0GPIOX_9";
		};

		sdio_all_pins {
			amlogic,setmask = <0x08 0x3f>;
			amlogic,clrmask = <0x06 0x3f000000 0x02 0xfc00 0x05 0x6c00>;
			amlogic,pins = "GPIOX_0\0GPIOX_1\0GPIOX_2\0GPIOX_3\0GPIOX_8\0GPIOX_9";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x09>;
			phandle = <0x09>;
		};

		sdio_clk_cmd_pins {
			amlogic,setmask = <0x08 0x03>;
			amlogic,clrmask = <0x06 0x3f000000 0x02 0xfc00 0x05 0x6c00>;
			amlogic,pins = "GPIOX_8\0GPIOX_9";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x08>;
			phandle = <0x08>;
		};

		sd_all_pins {
			amlogic,setmask = <0x02 0xfc00>;
			amlogic,clrmask = <0x06 0x3f000000 0x08 0x63f 0x02 0xf0>;
			amlogic,pins = "CARD_0\0CARD_1\0CARD_2\0CARD_3\0CARD_4\0CARD_5";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x05>;
			phandle = <0x05>;
		};

		sd_1bit_pins {
			amlogic,setmask = <0x02 0x8c00>;
			amlogic,clrmask = <0x06 0x3f000000 0x08 0x3f 0x02 0xf0>;
			amlogic,pins = "CARD_0\0CARD_1\0CARD_2\0CARD_3\0CARD_4\0CARD_5";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x0a>;
			phandle = <0x0a>;
		};

		sd_clk_cmd_pins {
			amlogic,setmask = <0x02 0xc00>;
			amlogic,clrmask = <0x06 0x3f000000 0x08 0x3f 0x02 0xf0>;
			amlogic,pins = "CARD_2\0CARD_3";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x04>;
			phandle = <0x04>;
		};

		emmc_all_pins {
			amlogic,setmask = <0x06 0xfc000000>;
			amlogic,clrmask = <0x02 0x6c2fc00 0x08 0x3f 0x04 0x6c000000>;
			amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_8\0BOOT_10";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x07>;
			phandle = <0x07>;
		};

		emmc_clk_cmd_pins {
			amlogic,setmask = <0x06 0xc0000000>;
			amlogic,clrmask = <0x02 0x6c2fc00 0x08 0x3f 0x07 0xc0000>;
			amlogic,pins = "BOOT_8\0BOOT_10";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x06>;
			phandle = <0x06>;
		};

		sdhc_sd_clk_cmd_pins {
			amlogic,setmask = <0x02 0x30>;
			amlogic,clrmask = <0x05 0x7c00 0x04 0x7c000000 0x02 0xfc00 0x08 0x600>;
			amlogic,pins = "CARD_2\0CARD_3";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x0b>;
			phandle = <0x0b>;
		};

		sdhc_sd_all_pins {
			amlogic,setmask = <0x02 0xf0>;
			amlogic,clrmask = <0x05 0x7c00 0x04 0x7c000000 0x02 0xfc00 0x08 0x600>;
			amlogic,pins = "CARD_0\0CARD_1\0CARD_2\0CARD_3\0CARD_4\0CARD_5";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x0c>;
			phandle = <0x0c>;
		};

		sdhc_emmc_clk_cmd_pins {
			amlogic,setmask = <0x07 0xc0000>;
			amlogic,clrmask = <0x02 0x4c000f0 0x05 0x7c00 0x06 0xff000000>;
			amlogic,pins = "BOOT_8\0BOOT_10";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x0d>;
			phandle = <0x0d>;
		};

		sdhc_emmc_all_pins {
			amlogic,setmask = <0x04 0x70000000 0x07 0xc0000>;
			amlogic,clrmask = <0x02 0x4c000f0 0x05 0x7c00 0x06 0xff000000>;
			amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_8\0BOOT_10";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x0e>;
			phandle = <0x0e>;
		};

		sdhc_sdio_clk_cmd_pins {
			amlogic,setmask = <0x05 0xc00>;
			amlogic,clrmask = <0x02 0x58000f0 0x04 0x7c000000 0x08 0x3f>;
			amlogic,pins = "GPIOX_8\0GPIOX_9";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x0f>;
			phandle = <0x0f>;
		};

		sdhc_sdio_all_pins {
			amlogic,setmask = <0x05 0x6c00>;
			amlogic,clrmask = <0x02 0x58000f0 0x04 0x7c000000 0x08 0x3f>;
			amlogic,pins = "GPIOX_0\0GPIOX_1\0GPIOX_2\0GPIOX_3\0GPIOX_8\0GPIOX_9";
			amlogic,enable-output = <0x01>;
			amlogic,pullup = <0x01>;
			amlogic,pullupen = <0x01>;
			linux,phandle = <0x10>;
			phandle = <0x10>;
		};

		remote_pin {
			amlogic,setmask = <0x0a 0x01>;
			amlogic,pins = "GPIOAO_7";
			linux,phandle = <0x13>;
			phandle = <0x13>;
		};

		audio_pin {
			amlogic,setmask = <0x0a 0x78000000 0x01 0x80>;
			amlogic,clrmask = <0x0a 0x80002000 0x01 0x10000 0x03 0x40000>;
			amlogic,pins = "GPIOAO_8\0GPIOAO_9\0GPIOAO_10\0GPIOAO_11\0GPIOY_3";
			linux,phandle = <0x12>;
			phandle = <0x12>;
		};

		aml_spi_nor_pins {
			amlogic,setmask = <0x05 0x0f>;
			amlogic,clrmask = <0x02 0x10380000>;
			amlogic,pins = "BOOT_11\0BOOT_12\0BOOT_13\0BOOT_18";
			linux,phandle = <0x14>;
			phandle = <0x14>;
		};

		aml_pwm {
			amlogic,setmask = <0x03 0x1000000>;
			amlogic,clrmask = <0x00 0x48 0x07 0x10000020>;
			amlogic,pins = "GPIODV_9";
			linux,phandle = <0x11>;
			phandle = <0x11>;
		};

		dvb_p_ts0_pins {
			amlogic,setmask = <0x03 0x37>;
			amlogic,clrmask = <0x05 0xc0 0x09 0x37c>;
			amlogic,pins = "GPIOY_9\0GPIOY_10\0GPIOY_11\0GPIOY_12\0GPIOY_13\0GPIOY_14\0GPIOY_6\0GPIOY_7\0GPIOY_0\0GPIOY_1\0GPIOY_8";
			linux,phandle = <0x23>;
			phandle = <0x23>;
		};

		dvb_s_ts0_pins {
			amlogic,setmask = <0x03 0x17>;
			amlogic,clrmask = <0x09 0x378>;
			amlogic,pins = "GPIOY_9\0GPIOY_0\0GPIOY_1\0GPIOY_8";
			linux,phandle = <0x24>;
			phandle = <0x24>;
		};
	};

	ethernet@0xc9410000 {
		compatible = "amlogic,meson8b-rmii-dwmac\0snps,dwmac";
		reg = <0xc9410000 0x10000 0xc1108108 0x04>;
		interrupts = <0x00 0x08 0x01>;
		interrupt-names = "macirq";
		clocks = "clk81";
		clock-names = "stmmaceth";
	};

	meson-rng {
		compatible = "amlogic,meson-rng";
		status = "ok";
	};

	dvb {
		compatible = "amlogic,dvb";
		ts0 = "parallel";
		ts0_control = <0x00>;
		ts0_invert = <0x00>;
		pinctrl-names = "p_ts0\0s_ts0";
		pinctrl-0 = <0x23>;
		pinctrl-1 = <0x24>;
	};

	dvbfe {
		compatible = "amlogic,dvbfe";
		dtv_demod0 = "Si2168";
		dtv_demod0_i2c_adap_id = <0x04>;
		dtv_demod0_i2c_addr = <0x64>;
		dtv_demod0_reset_value = <0x00>;
		dtv_demod0_reset_gpio = "GPIOY_3";
		fe0_dtv_demod = <0x00>;
		fe0_ts = <0x00>;
		fe0_dev = <0x00>;
	};
};


 

and the following is meson-odroidc1.dtb it works but resolution is not correct. doesn't boot if there is no hdmi:

Quote


 

/dts-v1/;

/ {
	#address-cells = <0x01>;
	#size-cells = <0x01>;
	interrupt-parent = <0x01>;
	model = "Hardkernel ODROID-C1";
	compatible = "hardkernel,odroid-c1\0amlogic,meson8b";

	iio-hwmon {
		compatible = "iio-hwmon";
		io-channels = <0x02 0x08>;
	};

	soc {
		compatible = "simple-bus";
		#address-cells = <0x01>;
		#size-cells = <0x01>;
		ranges;

		cbus@c1100000 {
			compatible = "simple-bus";
			reg = <0xc1100000 0x200000>;
			#address-cells = <0x01>;
			#size-cells = <0x01>;
			ranges = <0x00 0xc1100000 0x200000>;

			system-controller@4000 {
				compatible = "amlogic,meson-hhi-sysctrl\0simple-mfd\0syscon";
				reg = <0x4000 0x400>;
				phandle = <0x0a>;

				clock-controller {
					compatible = "amlogic,meson8b-clkc";
					clocks = <0x03 0x04 0x01>;
					clock-names = "xtal\0ddr_pll";
					#clock-cells = <0x01>;
					#reset-cells = <0x01>;
					phandle = <0x05>;
				};

				phy {
					compatible = "amlogic,meson8b-hdmi-tx-phy";
					clocks = <0x05 0x84>;
					#phy-cells = <0x00>;
					phandle = <0x34>;
				};

				power-controller {
					compatible = "amlogic,meson8b-pwrc";
					#power-domain-cells = <0x01>;
					amlogic,ao-sysctrl = <0x06>;
					resets = <0x07 0x42 0x07 0x43 0x07 0x4b 0x07 0x4f 0x07 0x86 0x07 0x87 0x07 0x89 0x07 0x8d 0x07 0x05 0x07 0x0a 0x07 0x85>;
					reset-names = "dblk\0pic_dc\0hdmi_apb\0hdmi_system\0venci\0vencp\0vdac\0vencl\0viu\0venc\0rdma";
					clocks = <0x05 0xbe>;
					clock-names = "vpu";
					assigned-clocks = <0x05 0xbe>;
					assigned-clock-rates = <0xadb4789>;
					phandle = <0x20>;
				};
			};

			audio-controller@5400 {
				compatible = "amlogic,aiu-meson8b\0amlogic,aiu";
				#sound-dai-cells = <0x02>;
				reg = <0x5400 0x2ac>;
				interrupts = <0x00 0x30 0x01 0x00 0x32 0x01>;
				interrupt-names = "i2s\0spdif";
				status = "okay";
				clocks = <0x05 0x26 0x05 0x28 0x05 0x50 0x05 0xd1 0x05 0x2c 0x05 0x27 0x05 0x51 0x05 0xd4 0x05 0xd5>;
				clock-names = "pclk\0i2s_pclk\0i2s_aoclk\0i2s_mclk\0i2s_mixer\0spdif_pclk\0spdif_aoclk\0spdif_mclk\0spdif_mclk_sel";
				resets = <0x07 0x06>;
				phandle = <0x3e>;
			};

			assist@7c00 {
				compatible = "amlogic,meson-mx-assist\0syscon";
				reg = <0x7c00 0x200>;
			};

			rng@8100 {
				compatible = "amlogic,meson8b-rng\0amlogic,meson-rng";
				reg = <0x8100 0x08>;
				clocks = <0x05 0x19>;
				clock-names = "core";
			};

			serial@84c0 {
				compatible = "amlogic,meson8b-uart\0amlogic,meson-uart";
				reg = <0x84c0 0x18>;
				interrupts = <0x00 0x1a 0x01>;
				status = "disabled";
				clocks = <0x05 0x0a 0x03 0x05 0x1a>;
				clock-names = "baud\0xtal\0pclk";
			};

			serial@84dc {
				compatible = "amlogic,meson8b-uart\0amlogic,meson-uart";
				reg = <0x84dc 0x18>;
				interrupts = <0x00 0x4b 0x01>;
				status = "disabled";
				clocks = <0x05 0x0a 0x03 0x05 0x30>;
				clock-names = "baud\0xtal\0pclk";
			};

			i2c@8500 {
				compatible = "amlogic,meson6-i2c";
				reg = <0x8500 0x20>;
				interrupts = <0x00 0x15 0x01>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				status = "disabled";
				clocks = <0x05 0x16>;
			};

			pwm@8550 {
				compatible = "amlogic,meson8b-pwm";
				reg = <0x8550 0x10>;
				#pwm-cells = <0x03>;
				status = "disabled";
			};

			pwm@8650 {
				compatible = "amlogic,meson8b-pwm";
				reg = <0x8650 0x10>;
				#pwm-cells = <0x03>;
				status = "okay";
				pinctrl-0 = <0x08 0x09>;
				pinctrl-names = "default";
				clocks = <0x03 0x03>;
				clock-names = "clkin0\0clkin1";
				phandle = <0x40>;
			};

			adc@8680 {
				compatible = "amlogic,meson8b-saradc\0amlogic,meson-saradc";
				reg = <0x8680 0x34>;
				#io-channel-cells = <0x01>;
				interrupts = <0x00 0x49 0x01>;
				status = "okay";
				clocks = <0x03 0x05 0x17>;
				clock-names = "clkin\0core";
				amlogic,hhi-sysctrl = <0x0a>;
				nvmem-cells = <0x0b>;
				nvmem-cell-names = "temperature_calib";
				vref-supply = <0x0c>;
				phandle = <0x02>;
			};

			serial@8700 {
				compatible = "amlogic,meson8b-uart\0amlogic,meson-uart";
				reg = <0x8700 0x18>;
				interrupts = <0x00 0x5d 0x01>;
				status = "disabled";
				clocks = <0x05 0x0a 0x03 0x05 0x44>;
				clock-names = "baud\0xtal\0pclk";
			};

			i2c@87c0 {
				compatible = "amlogic,meson6-i2c";
				reg = <0x87c0 0x20>;
				interrupts = <0x00 0x80 0x01>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				status = "disabled";
				clocks = <0x05 0x16>;
			};

			phy@8800 {
				compatible = "amlogic,meson8b-usb2-phy\0amlogic,meson-mx-usb2-phy";
				#phy-cells = <0x00>;
				reg = <0x8800 0x20>;
				status = "okay";
				clocks = <0x05 0x37 0x05 0x32>;
				clock-names = "usb_general\0usb";
				resets = <0x07 0x22>;
				phandle = <0x1d>;
			};

			phy@8820 {
				compatible = "amlogic,meson8b-usb2-phy\0amlogic,meson-mx-usb2-phy";
				#phy-cells = <0x00>;
				reg = <0x8820 0x20>;
				status = "okay";
				clocks = <0x05 0x37 0x05 0x33>;
				clock-names = "usb_general\0usb";
				resets = <0x07 0x22>;
				phandle = <0x1f>;
			};

			mmc@8c20 {
				compatible = "amlogic,meson8b-sdio\0amlogic,meson-mx-sdio";
				reg = <0x8c20 0x20>;
				interrupts = <0x00 0x1c 0x01>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				status = "okay";
				clocks = <0x05 0x1e 0x05 0x0a>;
				clock-names = "core\0clkin";
				pinctrl-0 = <0x0d>;
				pinctrl-names = "default";

				slot@1 {
					compatible = "mmc-slot";
					reg = <0x01>;
					status = "okay";
					bus-width = <0x04>;
					no-sdio;
					cap-mmc-highspeed;
					cap-sd-highspeed;
					disable-wp;
					cd-gpios = <0x0e 0x35 0x01>;
					vmmc-supply = <0x0f>;
					vqmmc-supply = <0x10>;
				};
			};

			spi@8c80 {
				compatible = "amlogic,meson6-spifc";
				reg = <0x8c80 0x80>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				status = "disabled";
			};

			mmc@8e00 {
				compatible = "amlogic,meson8-sdhc\0amlogic,meson-mx-sdhc";
				reg = <0x8e00 0x42>;
				interrupts = <0x00 0x4e 0x01>;
				status = "okay";
				clocks = <0x03 0x05 0x07 0x05 0x06 0x05 0x08 0x05 0x1b>;
				clock-names = "clkin0\0clkin1\0clkin2\0clkin3\0pclk";
				pinctrl-0 = <0x11>;
				pinctrl-names = "default";
				bus-width = <0x08>;
				max-frequency = <0x5f5e100>;
				disable-wp;
				cap-mmc-highspeed;
				mmc-hs200-1_8v;
				no-sdio;
				mmc-pwrseq = <0x12>;
				vmmc-supply = <0x13>;
				vqmmc-supply = <0x0c>;
			};

			interrupt-controller@9880 {
				compatible = "amlogic,meson-gpio-intc\0amlogic,meson8b-gpio-intc";
				reg = <0x9880 0x10>;
				interrupt-controller;
				#interrupt-cells = <0x02>;
				amlogic,channel-interrupts = <0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47>;
				status = "okay";
				phandle = <0x24>;
			};

			watchdog@9900 {
				compatible = "amlogic,meson8b-wdt";
				reg = <0x9900 0x08>;
				interrupts = <0x00 0x00 0x01>;
			};

			timer@9940 {
				compatible = "amlogic,meson6-timer";
				reg = <0x9940 0x18>;
				interrupts = <0x00 0x0a 0x01 0x00 0x0b 0x01 0x00 0x06 0x01 0x00 0x1d 0x01>;
				clocks = <0x03 0x05 0x0a>;
				clock-names = "xtal\0pclk";
			};

			reset-controller@4404 {
				compatible = "amlogic,meson8b-reset";
				reg = <0x4404 0x9c>;
				#reset-cells = <0x01>;
				phandle = <0x07>;
			};

			analog-top@81a8 {
				compatible = "amlogic,meson8b-analog-top\0syscon";
				reg = <0x81a8 0x14>;
			};

			pwm@86c0 {
				compatible = "amlogic,meson8b-pwm";
				reg = <0x86c0 0x10>;
				#pwm-cells = <0x03>;
				status = "disabled";
			};

			clock-measure@8758 {
				compatible = "amlogic,meson8b-clk-measure";
				reg = <0x8758 0x1c>;
			};

			pinctrl@9880 {
				compatible = "amlogic,meson8b-cbus-pinctrl";
				reg = <0x9880 0x10>;
				#address-cells = <0x01>;
				#size-cells = <0x01>;
				ranges;
				phandle = <0x14>;

				banks@80b0 {
					reg = <0x80b0 0x28 0x80e8 0x18 0x8120 0x18 0x8030 0x38>;
					reg-names = "mux\0pull\0pull-enable\0gpio";
					gpio-controller;
					#gpio-cells = <0x02>;
					gpio-ranges = <0x14 0x00 0x00 0x54>;
					gpio-line-names = "J2 Header Pin 35\0J2 Header Pin 36\0J2 Header Pin 32\0J2 Header Pin 31\0J2 Header Pin 29\0J2 Header Pin 18\0J2 Header Pin 22\0J2 Header Pin 16\0J2 Header Pin 23\0J2 Header Pin 21\0J2 Header Pin 19\0J2 Header Pin 33\0J2 Header Pin 8\0J2 Header Pin 10\0J2 Header Pin 15\0J2 Header Pin 13\0J2 Header Pin 24\0J2 Header Pin 26\0Revision (upper)\0Revision (lower)\0J2 Header Pin 7\0\0J2 Header Pin 12\0J2 Header Pin 11\0\0\0\0TFLASH_VDD_EN\0\0\0VCCK_PWM (PWM_C)\0I2CA_SDA\0I2CA_SCL\0I2CB_SDA\0I2CB_SCL\0VDDEE_PWM (PWM_D)\0\0HDMI_HPD\0HDMI_I2C_SDA\0HDMI_I2C_SCL\0ETH_PHY_INTR\0ETH_PHY_NRST\0ETH_TXD1\0ETH_TXD0\0ETH_TXD3\0ETH_TXD2\0ETH_RGMII_TX_CLK\0SD_DATA1 (SDB_D1)\0SD_DATA0 (SDB_D0)\0SD_CLK\0SD_CMD\0SD_DATA3 (SDB_D3)\0SD_DATA2 (SDB_D2)\0SD_CDN (SD_DET_N)\0SDC_D0 (EMMC)\0SDC_D1 (EMMC)\0SDC_D2 (EMMC)\0SDC_D3 (EMMC)\0SDC_D4 (EMMC)\0SDC_D5 (EMMC)\0SDC_D6 (EMMC)\0SDC_D7 (EMMC)\0SDC_CLK (EMMC)\0SDC_RSTn (EMMC)\0SDC_CMD (EMMC)\0BOOT_SEL\0\0\0\0\0\0\0\0ETH_RXD1\0ETH_RXD0\0ETH_RX_DV\0RGMII_RX_CLK\0ETH_RXD3\0ETH_RXD2\0ETH_TXEN\0ETH_PHY_REF_CLK_25MOUT\0ETH_MDC\0ETH_MDIO\0";
					phandle = <0x0e>;
				};

				eth-rgmii {
					phandle = <0x21>;

					mux {
						groups = "eth_tx_clk\0eth_tx_en\0eth_txd1_0\0eth_txd0_0\0eth_rx_clk\0eth_rx_dv\0eth_rxd1\0eth_rxd0\0eth_mdio_en\0eth_mdc\0eth_ref_clk\0eth_txd2\0eth_txd3\0eth_rxd3\0eth_rxd2";
						function = "ethernet";
						bias-disable;
					};
				};

				eth-rmii {

					mux {
						groups = "eth_tx_en\0eth_txd1_0\0eth_txd0_0\0eth_rx_clk\0eth_rx_dv\0eth_rxd1\0eth_rxd0\0eth_mdio_en\0eth_mdc";
						function = "ethernet";
						bias-disable;
					};
				};

				hdmi-hpd {
					phandle = <0x35>;

					mux {
						groups = "hdmi_hpd";
						function = "hdmi";
						bias-disable;
					};
				};

				hdmi-i2c {
					phandle = <0x36>;

					mux {
						groups = "hdmi_sda\0hdmi_scl";
						function = "hdmi";
						bias-disable;
					};
				};

				i2c-a {

					mux {
						groups = "i2c_sda_a\0i2c_sck_a";
						function = "i2c_a";
						bias-disable;
					};
				};

				sd-b {
					phandle = <0x0d>;

					mux {
						groups = "sd_d0_b\0sd_d1_b\0sd_d2_b\0sd_d3_b\0sd_clk_b\0sd_cmd_b";
						function = "sd_b";
						bias-disable;
					};
				};

				sdxc-c {
					phandle = <0x11>;

					mux {
						groups = "sdxc_d0_c\0sdxc_d13_c\0sdxc_d47_c\0sdxc_clk_c\0sdxc_cmd_c";
						function = "sdxc_c";
						bias-pull-up;
					};
				};

				pwm-c1 {
					phandle = <0x08>;

					mux {
						groups = "pwm_c1";
						function = "pwm_c";
						bias-disable;
					};
				};

				pwm-d {
					phandle = <0x09>;

					mux {
						groups = "pwm_d";
						function = "pwm_d";
						bias-disable;
					};
				};

				uart-b0 {

					mux {
						groups = "uart_tx_b0\0uart_rx_b0";
						function = "uart_b";
						bias-disable;
					};
				};

				uart-b0-cts-rts {

					mux {
						groups = "uart_cts_b0\0uart_rts_b0";
						function = "uart_b";
						bias-disable;
					};
				};
			};
		};

		cache-controller@c4200000 {
			compatible = "arm,pl310-cache";
			reg = <0xc4200000 0x1000>;
			cache-unified;
			cache-level = <0x02>;
			arm,data-latency = <0x03 0x03 0x03>;
			arm,tag-latency = <0x02 0x02 0x02>;
			arm,filter-ranges = <0x100000 0xc0000000>;
			prefetch-data = <0x01>;
			prefetch-instr = <0x01>;
			arm,shared-override;
			phandle = <0x25>;
		};

		bus@c4300000 {
			compatible = "simple-bus";
			reg = <0xc4300000 0x10000>;
			#address-cells = <0x01>;
			#size-cells = <0x01>;
			ranges = <0x00 0xc4300000 0x10000>;

			interrupt-controller@1000 {
				compatible = "arm,cortex-a9-gic";
				reg = <0x1000 0x1000 0x100 0x100>;
				interrupt-controller;
				#interrupt-cells = <0x03>;
				phandle = <0x01>;
			};

			scu@0 {
				compatible = "arm,cortex-a5-scu";
				reg = <0x00 0x100>;
			};

			timer@200 {
				compatible = "arm,cortex-a5-global-timer";
				reg = <0x200 0x20>;
				interrupts = <0x01 0x0b 0xf01>;
				clocks = <0x05 0x7e>;
				status = "disabled";
			};

			timer@600 {
				compatible = "arm,cortex-a5-twd-timer";
				reg = <0x600 0x20>;
				interrupts = <0x01 0x0d 0xf01>;
				clocks = <0x05 0x7e>;
			};
		};

		aobus@c8100000 {
			compatible = "simple-bus";
			reg = <0xc8100000 0x100000>;
			#address-cells = <0x01>;
			#size-cells = <0x01>;
			ranges = <0x00 0xc8100000 0x100000>;

			mailbox@0 {
				compatible = "amlogic,meson-mx-ao-arc-mbox";
				reg = <0x00 0x0c>;
				#mbox-cells = <0x01>;
				phandle = <0x29>;
			};

			remoteproc@1c {
				compatible = "amlogic,meson-mx-ao-arc-rproc";
				reg = <0x1c 0x08 0x38 0x08>;
				reg-names = "remap\0cpu";
				amlogic,sram = <0x15>;
				amlogic,secbus2 = <0x16>;
				resets = <0x07 0x4d>;
				reset-names = "arc625";
				phandle = <0x28>;
			};

			ir-receiver@480 {
				compatible = "amlogic,meson6-ir";
				reg = <0x480 0x20>;
				interrupts = <0x00 0x0f 0x01>;
				status = "okay";
				pinctrl-0 = <0x17>;
				pinctrl-names = "default";
			};

			serial@4c0 {
				compatible = "amlogic,meson8b-uart\0amlogic,meson-uart";
				reg = <0x4c0 0x18>;
				interrupts = <0x00 0x5a 0x01>;
				status = "okay";
				clocks = <0x05 0x0a 0x03 0x05 0x0a>;
				clock-names = "baud\0xtal\0pclk";
				pinctrl-0 = <0x18>;
				pinctrl-names = "default";
			};

			i2c@500 {
				compatible = "amlogic,meson6-i2c";
				reg = <0x500 0x20>;
				interrupts = <0x00 0x5c 0x01>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				status = "disabled";
				clocks = <0x05 0x0a>;
			};

			rtc@740 {
				compatible = "amlogic,meson8b-rtc";
				reg = <0x740 0x14>;
				interrupts = <0x00 0x48 0x01>;
				#address-cells = <0x01>;
				#size-cells = <0x01>;
				status = "disabled";
				resets = <0x07 0x8a>;
				clocks = <0x19>;
				vdd-supply = <0x1a>;
			};

			pmu@e0 {
				compatible = "amlogic,meson8b-pmu\0syscon";
				reg = <0xe0 0x18>;
				phandle = <0x06>;
			};

			pinctrl@84 {
				compatible = "amlogic,meson8b-aobus-pinctrl";
				reg = <0x84 0x0c>;
				#address-cells = <0x01>;
				#size-cells = <0x01>;
				ranges;
				phandle = <0x1b>;

				ao-bank@14 {
					reg = <0x14 0x04 0x2c 0x04 0x24 0x08>;
					reg-names = "mux\0pull\0gpio";
					gpio-controller;
					#gpio-cells = <0x02>;
					gpio-ranges = <0x1b 0x00 0x00 0x0f>;
					gpio-line-names = "UART TX\0UART RX\0\0TF_3V3N_1V8_EN\0USB_HUB_RST_N\0USB_OTG_PWREN\0J7 Header Pin 2\0IR_IN\0J7 Header Pin 4\0J7 Header Pin 6\0J7 Header Pin 5\0J7 Header Pin 7\0HDMI_CEC\0SYS_LED\0";
					phandle = <0x3d>;

					usb-hub {
						gpio-hog;
						gpios = <0x04 0x00>;
						output-high;
						line-name = "usb-hub-reset";
					};
				};

				hdmi-cec-ao {

					mux {
						groups = "hdmi_cec_1";
						function = "hdmi_cec";
						bias-pull-up;
					};
				};

				i2s-am-clk-out {

					mux {
						groups = "i2s_am_clk_out";
						function = "i2s";
						bias-disable;
					};
				};

				i2s-ao-clk-out {

					mux {
						groups = "i2s_ao_clk_out";
						function = "i2s";
						bias-disable;
					};
				};

				i2s-lr-clk-out {

					mux {
						groups = "i2s_lr_clk_out";
						function = "i2s";
						bias-disable;
					};
				};

				i2s-out-ch01 {

					mux {
						groups = "i2s_out_01";
						function = "i2s";
						bias-disable;
					};
				};

				spdif-out-1 {

					mux {
						groups = "spdif_out_1";
						function = "spdif_1";
						bias-disable;
					};
				};

				uart_ao_a {
					phandle = <0x18>;

					mux {
						groups = "uart_tx_ao_a\0uart_rx_ao_a";
						function = "uart_ao";
						bias-disable;
					};
				};

				remote {
					phandle = <0x17>;

					mux {
						groups = "remote_input";
						function = "remote";
						bias-disable;
					};
				};
			};

			cec@100 {
				compatible = "amlogic,meson-gx-ao-cec";
				reg = <0x100 0x14>;
				interrupts = <0x00 0x97 0x01>;
				hdmi-phandle = <0x1c>;
			};
		};

		usb@c9040000 {
			compatible = "amlogic,meson8b-usb\0snps,dwc2";
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			reg = <0xc9040000 0x40000>;
			interrupts = <0x00 0x1e 0x04>;
			phys = <0x1d>;
			phy-names = "usb2-phy";
			g-rx-fifo-size = <0x200>;
			g-np-tx-fifo-size = <0x1f4>;
			g-tx-fifo-size = <0x100 0xc0 0x80 0x80 0x80>;
			dr_mode = "otg";
			status = "okay";
			clocks = <0x05 0x41>;
			clock-names = "otg";
			usb-role-switch;

			connector {
				compatible = "extcon-usb-b-connector\0usb-b-connector";
				type = "micro";
				extcon = <0x1d>;
				vbus-supply = <0x1e>;
			};
		};

		usb@c90c0000 {
			compatible = "amlogic,meson8b-usb\0snps,dwc2";
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			reg = <0xc90c0000 0x40000>;
			interrupts = <0x00 0x1f 0x04>;
			phys = <0x1f>;
			phy-names = "usb2-phy";
			dr_mode = "host";
			status = "okay";
			clocks = <0x05 0x40>;
			clock-names = "otg";
		};

		ethernet@c9410000 {
			compatible = "amlogic,meson8b-dwmac\0snps,dwmac-3.70a\0snps,dwmac";
			reg = <0xc9410000 0x10000 0xc1108140 0x04>;
			interrupts = <0x00 0x08 0x04>;
			interrupt-names = "macirq";
			status = "okay";
			clocks = <0x05 0x24 0x05 0x5f 0x05 0x5f 0x05 0x05>;
			clock-names = "stmmaceth\0clkin0\0clkin1\0timing-adjustment";
			rx-fifo-depth = <0x1000>;
			tx-fifo-depth = <0x800>;
			resets = <0x07 0x2b>;
			reset-names = "stmmaceth";
			power-domains = <0x20 0x01>;
			pinctrl-0 = <0x21>;
			pinctrl-names = "default";
			phy-handle = <0x22>;
			phy-mode = "rgmii-id";
			nvmem-cells = <0x23>;
			nvmem-cell-names = "mac-address";

			mdio {
				compatible = "snps,dwmac-mdio";
				#address-cells = <0x01>;
				#size-cells = <0x00>;

				ethernet-phy@0 {
					reg = <0x00>;
					reset-assert-us = <0x2710>;
					reset-deassert-us = <0x13880>;
					reset-gpios = <0x0e 0x29 0x01>;
					interrupt-parent = <0x24>;
					interrupts = <0x11 0x08>;
					realtek,led-0-mode = <0x00>;
					realtek,led-1-mode = <0x1a>;
					realtek,led-2-mode = <0x1c>;
					phandle = <0x22>;
				};
			};
		};

		sram@d9000000 {
			compatible = "mmio-sram";
			reg = <0xd9000000 0x20000>;
			#address-cells = <0x01>;
			#size-cells = <0x01>;
			ranges = <0x00 0xd9000000 0x20000>;
			phandle = <0x15>;

			smp-sram@1ff80 {
				compatible = "amlogic,meson8b-smp-sram";
				reg = <0x1ff80 0x08>;
			};
		};

		bootrom@d9040000 {
			compatible = "amlogic,meson-mx-bootrom\0syscon";
			reg = <0xd9040000 0x10000>;
		};

		secbus@da000000 {
			compatible = "simple-bus";
			reg = <0xda000000 0x6000>;
			#address-cells = <0x01>;
			#size-cells = <0x01>;
			ranges = <0x00 0xda000000 0x6000>;

			nvmem@0 {
				compatible = "amlogic,meson8b-efuse";
				reg = <0x00 0x2000>;
				#address-cells = <0x01>;
				#size-cells = <0x01>;
				clocks = <0x05 0x3a>;
				clock-names = "core";

				calib@1f4 {
					reg = <0x1f4 0x04>;
					phandle = <0x0b>;
				};

				calib@1f8 {
					reg = <0x1f8 0x02>;
					phandle = <0x3a>;
				};

				mac@1b4 {
					reg = <0x1b4 0x06>;
					phandle = <0x23>;
				};
			};

			bus@4000 {
				compatible = "amlogic,meson-mx-secbus2";
				reg = <0x4000 0x2000>;
				phandle = <0x16>;
			};
		};
	};

	thermal-sensor {
		compatible = "generic-adc-thermal";
		#thermal-sensor-cells = <0x00>;
		io-channels = <0x02 0x08>;
		io-channel-names = "sensor-channel";
		phandle = <0x2e>;
	};

	xtal-clk {
		compatible = "fixed-clock";
		clock-frequency = <0x16e3600>;
		clock-output-names = "xtal";
		#clock-cells = <0x00>;
		phandle = <0x03>;
	};

	cpus {
		#address-cells = <0x01>;
		#size-cells = <0x00>;

		cpu@200 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			next-level-cache = <0x25>;
			reg = <0x200>;
			enable-method = "amlogic,meson8b-smp";
			resets = <0x05 0x03>;
			operating-points-v2 = <0x26>;
			clocks = <0x05 0x0c>;
			#cooling-cells = <0x02>;
			cpu-supply = <0x27>;
			phandle = <0x2a>;
		};

		cpu@201 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			next-level-cache = <0x25>;
			reg = <0x201>;
			enable-method = "amlogic,meson8b-smp";
			resets = <0x05 0x04>;
			operating-points-v2 = <0x26>;
			clocks = <0x05 0x0c>;
			#cooling-cells = <0x02>;
			phandle = <0x2b>;
		};

		cpu@202 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			next-level-cache = <0x25>;
			reg = <0x202>;
			enable-method = "amlogic,meson8b-smp";
			resets = <0x05 0x05>;
			operating-points-v2 = <0x26>;
			clocks = <0x05 0x0c>;
			#cooling-cells = <0x02>;
			phandle = <0x2c>;
		};

		cpu@203 {
			device_type = "cpu";
			compatible = "arm,cortex-a5";
			next-level-cache = <0x25>;
			reg = <0x203>;
			enable-method = "amlogic,meson8b-smp";
			resets = <0x05 0x06>;
			operating-points-v2 = <0x26>;
			clocks = <0x05 0x0c>;
			#cooling-cells = <0x02>;
			phandle = <0x2d>;
		};
	};

	opp-table {
		compatible = "operating-points-v2";
		opp-shared;
		phandle = <0x26>;

		opp-96000000 {
			opp-hz = <0x00 0x5b8d800>;
			opp-microvolt = <0xd1f60>;
		};

		opp-192000000 {
			opp-hz = <0x00 0xb71b000>;
			opp-microvolt = <0xd1f60>;
		};

		opp-312000000 {
			opp-hz = <0x00 0x1298be00>;
			opp-microvolt = <0xd1f60>;
		};

		opp-408000000 {
			opp-hz = <0x00 0x18519600>;
			opp-microvolt = <0xd1f60>;
		};

		opp-504000000 {
			opp-hz = <0x00 0x1e0a6e00>;
			opp-microvolt = <0xd1f60>;
		};

		opp-600000000 {
			opp-hz = <0x00 0x23c34600>;
			opp-microvolt = <0xd1f60>;
		};

		opp-720000000 {
			opp-hz = <0x00 0x2aea5400>;
			opp-microvolt = <0xd1f60>;
		};

		opp-816000000 {
			opp-hz = <0x00 0x30a32c00>;
			opp-microvolt = <0xdbba0>;
		};

		opp-1008000000 {
			opp-hz = <0x00 0x3c14dc00>;
			opp-microvolt = <0x116520>;
		};

		opp-1200000000 {
			opp-hz = <0x00 0x47868c00>;
			opp-microvolt = <0x116520>;
		};

		opp-1320000000 {
			opp-hz = <0x00 0x4ead9a00>;
			opp-microvolt = <0x116520>;
		};

		opp-1488000000 {
			opp-hz = <0x00 0x58b11400>;
			opp-microvolt = <0x116520>;
		};

		opp-1536000000 {
			opp-hz = <0x00 0x5b8d8000>;
			opp-microvolt = <0x116520>;
		};
	};

	gpu-opp-table {
		compatible = "operating-points-v2";
		phandle = <0x32>;

		opp-255000000 {
			opp-hz = <0x00 0xf32fdc0>;
			opp-microvolt = <0x10c8e0>;
		};

		opp-364285714 {
			opp-hz = <0x00 0x15b68f12>;
			opp-microvolt = <0x10c8e0>;
		};

		opp-425000000 {
			opp-hz = <0x00 0x1954fc40>;
			opp-microvolt = <0x10c8e0>;
		};

		opp-510000000 {
			opp-hz = <0x00 0x1e65fb80>;
			opp-microvolt = <0x10c8e0>;
		};

		opp-637500000 {
			opp-hz = <0x00 0x25ff7a60>;
			opp-microvolt = <0x10c8e0>;
			turbo-mode;
		};
	};

	ao-arc-firmware {
		compatible = "amlogic,meson8b-ao-arc-firmware";
		amlogic,rproc = <0x28>;
		mboxes = <0x29 0x00 0x29 0x01 0x29 0x02>;
	};

	pmu {
		compatible = "arm,cortex-a5-pmu";
		interrupts = <0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x99 0x04 0x00 0x9a 0x04>;
		interrupt-affinity = <0x2a 0x2b 0x2c 0x2d>;
	};

	reserved-memory {
		#address-cells = <0x01>;
		#size-cells = <0x01>;
		ranges;

		hwrom@0 {
			reg = <0x00 0x200000>;
			no-map;
		};
	};

	thermal-zones {

		soc {
			polling-delay-passive = <0xfa>;
			polling-delay = <0x3e8>;
			thermal-sensors = <0x2e>;

			cooling-maps {

				map0 {
					trip = <0x2f>;
					cooling-device = <0x2a 0xffffffff 0xffffffff 0x2b 0xffffffff 0xffffffff 0x2c 0xffffffff 0xffffffff 0x2d 0xffffffff 0xffffffff 0x30 0xffffffff 0xffffffff>;
				};

				map1 {
					trip = <0x31>;
					cooling-device = <0x2a 0xffffffff 0xffffffff 0x2b 0xffffffff 0xffffffff 0x2c 0xffffffff 0xffffffff 0x2d 0xffffffff 0xffffffff 0x30 0xffffffff 0xffffffff>;
				};
			};

			trips {

				soc-passive {
					temperature = <0x13880>;
					hysteresis = <0x7d0>;
					type = "passive";
					phandle = <0x2f>;
				};

				soc-hot {
					temperature = <0x15f90>;
					hysteresis = <0x7d0>;
					type = "hot";
					phandle = <0x31>;
				};

				soc-critical {
					temperature = <0x1adb0>;
					hysteresis = <0x7d0>;
					type = "critical";
				};
			};
		};
	};

	bus@c8000000 {
		compatible = "simple-bus";
		reg = <0xc8000000 0x8000>;
		#address-cells = <0x01>;
		#size-cells = <0x01>;
		ranges = <0x00 0xc8000000 0x8000>;

		clock-controller@400 {
			compatible = "amlogic,meson8b-ddr-clkc";
			reg = <0x400 0x20>;
			clocks = <0x03>;
			clock-names = "xtal";
			#clock-cells = <0x01>;
			phandle = <0x04>;
		};

		bus@6000 {
			compatible = "simple-bus";
			reg = <0x6000 0x400>;
			#address-cells = <0x01>;
			#size-cells = <0x01>;
			ranges = <0x00 0x6000 0x400>;

			video-lut@48 {
				compatible = "amlogic,meson8b-canvas\0amlogic,canvas";
				reg = <0x48 0x14>;
				phandle = <0x39>;
			};
		};
	};

	bus@d0000000 {
		compatible = "simple-bus";
		reg = <0xd0000000 0x200000>;
		#address-cells = <0x01>;
		#size-cells = <0x01>;
		ranges = <0x00 0xd0000000 0x200000>;

		gpu@c0000 {
			compatible = "amlogic,meson8b-mali\0arm,mali-450";
			reg = <0xc0000 0x40000>;
			interrupts = <0x00 0xa0 0x04 0x00 0xa1 0x04 0x00 0xa2 0x04 0x00 0xa3 0x04 0x00 0xa4 0x04 0x00 0xa5 0x04 0x00 0xa6 0x04 0x00 0xa7 0x04>;
			interrupt-names = "gp\0gpmmu\0pp\0pmu\0pp0\0ppmmu0\0pp1\0ppmmu1";
			resets = <0x07 0x4e>;
			clocks = <0x05 0x0a 0x05 0x0b>;
			clock-names = "bus\0core";
			operating-points-v2 = <0x32>;
			#cooling-cells = <0x02>;
			mali-supply = <0x33>;
			phandle = <0x30>;
		};

		hdmi-tx@42000 {
			compatible = "amlogic,meson8b-hdmi-tx";
			reg = <0x42000 0x0c>;
			interrupts = <0x00 0x39 0x01>;
			phys = <0x34>;
			phy-names = "hdmi";
			clocks = <0x05 0x3f 0x05 0xae>;
			clock-names = "pclk\0sys";
			sound-name-prefix = "HDMITX";
			#sound-dai-cells = <0x00>;
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			status = "okay";
			pinctrl-0 = <0x35 0x36>;
			pinctrl-names = "default";
			phandle = <0x1c>;

			port@0 {
				reg = <0x00>;

				endpoint {
					remote-endpoint = <0x37>;
					phandle = <0x3b>;
				};
			};

			port@1 {
				reg = <0x01>;

				endpoint {
					remote-endpoint = <0x38>;
					phandle = <0x3c>;
				};
			};
		};

		vpu@100000 {
			compatible = "amlogic,meson8b-vpu";
			reg = <0x100000 0x10000>;
			reg-names = "vpu";
			interrupts = <0x00 0x03 0x01>;
			amlogic,canvas = <0x39>;
			amlogic,hhi-sysctrl = <0x0a>;
			clocks = <0x05 0x46 0x05 0x3e 0x05 0x4d 0x05 0x72 0x05 0x83 0x05 0x84 0x05 0x03 0x05 0x89 0x05 0xa7 0x05 0xa3 0x05 0xa5 0x05 0xa1 0x05 0xa9 0x05 0xab>;
			clock-names = "vpu_intr\0hdmi_intr_sync\0venci_int\0hdmi_pll_dco\0hdmi_pll_lvds_od\0hdmi_pll_hdmi_od\0vid_pll\0vid_pll_final_div\0hdmi_tx_pixel\0cts_encp\0cts_enci\0cts_enct\0cts_encl\0cts_vdac0";
			resets = <0x05 0x0f 0x05 0x0e 0x05 0x0d 0x05 0x0c>;
			reset-names = "vid_pll_pre\0vid_pll_post\0vid_pll_soft_pre\0vid_pll_soft_post";
			power-domains = <0x20 0x00>;
			nvmem-cells = <0x3a>;
			nvmem-cell-names = "cvbs_trimming";
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			#sound-dai-cells = <0x00>;
			sound-name-prefix = "HDMITX";

			port@0 {
				reg = <0x00>;
			};

			port@1 {
				reg = <0x01>;

				endpoint {
					remote-endpoint = <0x3b>;
					phandle = <0x37>;
				};
			};
		};
	};

	aliases {
		serial0 = "/soc/aobus@c8100000/serial@4c0";
		mmc0 = "/soc/cbus@c1100000/mmc@8c20/slot@1";
		mmc1 = "/soc/cbus@c1100000/mmc@8e00";
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory {
		device_type = "memory";
		reg = <0x40000000 0x40000000>;
	};

	emmc-pwrseq {
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <0x0e 0x3f 0x01>;
		phandle = <0x12>;
	};

	hdmi-connector {
		compatible = "hdmi-connector";
		type = [61 00];

		port {

			endpoint {
				remote-endpoint = <0x3c>;
				phandle = <0x38>;
			};
		};
	};

	leds {
		compatible = "gpio-leds";

		blue {
			label = "c1:blue:alive";
			gpios = <0x3d 0x0d 0x01>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};
	};

	regulator-p5v0 {
		compatible = "regulator-fixed";
		regulator-name = "P5V0";
		regulator-min-microvolt = <0x4c4b40>;
		regulator-max-microvolt = <0x4c4b40>;
		phandle = <0x3f>;
	};

	regulator-tflash_vdd {
		compatible = "regulator-fixed";
		regulator-name = "TFLASH_VDD";
		regulator-min-microvolt = <0x325aa0>;
		regulator-max-microvolt = <0x325aa0>;
		vin-supply = <0x13>;
		gpio = <0x0e 0x1b 0x00>;
		enable-active-high;
		phandle = <0x0f>;
	};

	gpio-regulator-tf_io {
		compatible = "regulator-gpio";
		regulator-name = "TF_IO";
		regulator-min-microvolt = <0x1b7740>;
		regulator-max-microvolt = <0x325aa0>;
		vin-supply = <0x13>;
		gpios = <0x3d 0x03 0x00>;
		gpios-states = <0x00>;
		states = <0x325aa0 0x00 0x1b7740 0x01>;
		phandle = <0x10>;
	};

	rtc32k-xtal-clk {
		compatible = "fixed-clock";
		clock-frequency = <0x8000>;
		clock-output-names = "RTC32K";
		#clock-cells = <0x00>;
		phandle = <0x19>;
	};

	sound {
		compatible = "amlogic,gx-sound-card";
		model = "M8B-ODROID-C1";
		assigned-clocks = <0x05 0x5d 0x05 0x5e>;
		assigned-clock-rates = <0x11940000 0x10266000>;

		dai-link-0 {
			sound-dai = <0x3e 0x00 0x00>;
		};

		dai-link-1 {
			sound-dai = <0x3e 0x00 0x02>;
			dai-format = "i2s";
			mclk-fs = <0x100>;

			codec-0 {
				sound-dai = <0x3e 0x01 0x00>;
			};
		};

		dai-link-2 {
			sound-dai = <0x3e 0x01 0x02>;

			codec-0 {
				sound-dai = <0x1c>;
			};
		};
	};

	regulator-usb0-vbus {
		compatible = "regulator-fixed";
		regulator-name = "USB0_VBUS";
		regulator-min-microvolt = <0x4c4b40>;
		regulator-max-microvolt = <0x4c4b40>;
		vin-supply = <0x3f>;
		gpio = <0x3d 0x05 0x00>;
		enable-active-high;
		phandle = <0x1e>;
	};

	regulator-vcc-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "VCC1V8";
		regulator-min-microvolt = <0x1b7740>;
		regulator-max-microvolt = <0x1b7740>;
		vin-supply = <0x3f>;
		phandle = <0x0c>;
	};

	regulator-vcc-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VCC3V3";
		regulator-min-microvolt = <0x325aa0>;
		regulator-max-microvolt = <0x325aa0>;
		vin-supply = <0x3f>;
		phandle = <0x13>;
	};

	regulator-vcck {
		compatible = "pwm-regulator";
		regulator-name = "VCCK";
		regulator-min-microvolt = <0xd1f60>;
		regulator-max-microvolt = <0x116520>;
		vin-supply = <0x3f>;
		pwms = <0x40 0x00 0x2fba 0x00>;
		pwm-dutycycle-range = <0x5b 0x00>;
		regulator-boot-on;
		regulator-always-on;
		phandle = <0x27>;
	};

	regulator-vddc-ddr {
		compatible = "regulator-fixed";
		regulator-name = "DDR_VDDC";
		regulator-min-microvolt = <0x16e360>;
		regulator-max-microvolt = <0x16e360>;
		vin-supply = <0x3f>;
	};

	regulator-vddee {
		compatible = "pwm-regulator";
		regulator-name = "VDDEE";
		regulator-min-microvolt = <0xd1f60>;
		regulator-max-microvolt = <0x116520>;
		vin-supply = <0x3f>;
		pwms = <0x40 0x01 0x2fba 0x00>;
		pwm-dutycycle-range = <0x5b 0x00>;
		regulator-boot-on;
		regulator-always-on;
		phandle = <0x33>;
	};

	regulator-vdd-rtc {
		compatible = "regulator-fixed";
		regulator-name = "VDD_RTC";
		regulator-min-microvolt = <0xdbba0>;
		regulator-max-microvolt = <0xdbba0>;
		vin-supply = <0x13>;
		phandle = <0x1a>;
	};
};

 


 

Structure of this thing has changed. don't know where to look for clocks. besides, do we need to run dtc on the system or is it can be run on any machine?

Link to comment
Share on other sites

Hi all,

Fortunately, found this thread since I've got not used TV box and need Armbian server for running Klipper and Octoprint for my 3D printer.

So apprecitae for your advice and possible guidance.

I have this Android 4.4 TV box: MXIII Amlogic Android 4.4.2 M82 S802 2GB 8GB Quad Core

Here is more pictures of the board

Would you please point to some guide and which image I should use in my case?

Link to comment
Share on other sites

vor 1 Stunde schrieb Kwazimoda:

Hi all,

Fortunately, found this thread since I've got not used TV box and need Armbian server for running Klipper and Octoprint for my 3D printer.

So apprecitae for your advice and possible guidance.

I have this Android 4.4 TV box: MXIII Amlogic Android 4.4.2 M82 S802 2GB 8GB Quad Core

Here is more pictures of the board

Would you please point to some guide and which image I should use in my case?

 

hi

first there is no a to z guide , please feel free to write one

 

i can only advice the 4 steps how get this box work     // it is  sometimes complicate because there are many diffirent boxes

1. activate multiboot (  install aml_autoscript.zip through android or recovery or maybe root TWRP and than install)

2. get image to sd-card ( old kernel 3.x copy and rename dtb , or kernel 5.x edit uEnv.txt on the fat32 boot partion of sd-card)

3. boot linux ( best is to get a serial TTL adapter to the board for debug but not mandatory )

4. have fun

 

 

to image

there are Kernel 3.10.109 images (Armbian 5.xx) this are most compatible to android 4.4 but not all Programms run on them ( docker only on 5.x Kernel)

Kernel 5.x (Armbian 2x.xx) are newer but maybe not full compatible or some driver do not work because change of kernel

Link to comment
Share on other sites

I have MXQ on S805 (Originally Android 4.4)
I use Armbian (5.37 debian stretch 3.10.99 server) as Pi-Hole DNS server.
It runs from SD card stably for 3 years.

I wonder if there is any sense to upgrade armbian to higher version. Are newer versions more efficient or stable?

Which version is the latest for S805.

 

I think that android 4.4 is not useful anymore so I'm thinking about installing on internal memory.
Do I understand correctly that it is enough to run install.sh script in root homedir?

Link to comment
Share on other sites

vor 32 Minuten schrieb karkow:

I have MXQ on S805 (Originally Android 4.4)
I use Armbian (5.37 debian stretch 3.10.99 server) as Pi-Hole DNS server.
It runs from SD card stably for 3 years.

I wonder if there is any sense to upgrade armbian to higher version. Are newer versions more efficient or stable?

Which version is the latest for S805.

 

I think that android 4.4 is not useful anymore so I'm thinking about installing on internal memory.
Do I understand correctly that it is enough to run install.sh script in root homedir?

sometime depend on programs like docker only work on 5.x Kernel

sometimes driver more stable because complete new code

sometime newer Debian and newer kernel are more unstable but thats can also happen with old kernel

 

i use 20.09 (update from 20.04) and Kernel 5.9 rc7

i think 20.15 with Kernel 5.11 was last build from balbes150

Link to comment
Share on other sites

I tested Armbian 5.67 with kernel 3.10.108 - it worked just as well as 5.37

Since there is no difference in performance (I did tests) I decided to go back to the older version because it had an install script on NAND. Installation was successful.

Link to comment
Share on other sites

vor 10 Stunden schrieb karkow:

I tested Armbian 5.67 with kernel 3.10.108 - it worked just as well as 5.37

Since there is no difference in performance (I did tests) I decided to go back to the older version because it had an install script on NAND. Installation was successful.

but 5.67 and 5.37 are both kernel 3.10.xx so its normal to have same performance , only armbian >20.xx make diffirence because kernel 5.xx ( it is possible that armbian 20.xx may have less performance but its more unlikely )

 

Link to comment
Share on other sites

On 12/10/2021 at 11:31 PM, karkow said:

I have MXQ on S805 (Originally Android 4.4)
I use Armbian (5.37 debian stretch 3.10.99 server) as Pi-Hole DNS server.
It runs from SD card stably for 3 years.

I wonder if there is any sense to upgrade armbian to higher version. Are newer versions more efficient or stable?

Which version is the latest for S805.

 

I think that android 4.4 is not useful anymore so I'm thinking about installing on internal memory.
Do I understand correctly that it is enough to run install.sh script in root homedir?

 

I was not successful in running the latest kernel without problems, but as it is latest more software are available like docker. In addition, graphics is better integrated. With the old kernel, modesetting driver doesn't work. only framebuffer works with limited support. Unfortunately, wifi drivers causes kernel to go into panic mode. So in my case, older kernel has better driver support. If we get some expert to solve the issues maybe newer kernel will be supported as well.

Link to comment
Share on other sites

On 1/29/2020 at 3:35 AM, K200_Noob said:

 

this one has been reconverted 

AMLOGIC_8726_M8.dtb 17.78 kB · 102 downloads

 

@K200_Noob

 

Hi,

if you can help i will be extremely grateful to you,
I have the same issue then Red2 user, i can't extract my dtb from my windows if you can help,

You can find from this dropbox link my extracted boot save from TWRP:

https://www.dropbox.com/s/i6m9cfxmynti5sb/2021-12-31--00-47-35_M8S.BCM4335.201605261149.zip?dl=0

 

Thank you in advance,

Nab

 

 

 

 

Link to comment
Share on other sites

On 11/23/2021 at 6:40 AM, RaptorSDS said:

 

hi

first there is no a to z guide , please feel free to write one

 

i can only advice the 4 steps how get this box work     // it is  sometimes complicate because there are many diffirent boxes

1. activate multiboot (  install aml_autoscript.zip through android or recovery or maybe root TWRP and than install)

2. get image to sd-card ( old kernel 3.x copy and rename dtb , or kernel 5.x edit uEnv.txt on the fat32 boot partion of sd-card)

3. boot linux ( best is to get a serial TTL adapter to the board for debug but not mandatory )

4. have fun

 

 

to image

there are Kernel 3.10.109 images (Armbian 5.xx) this are most compatible to android 4.4 but not all Programms run on them ( docker only on 5.x Kernel)

Kernel 5.x (Armbian 2x.xx) are newer but maybe not full compatible or some driver do not work because change of kernel

Actually i am willing to write one :)
i would some more details 
like where to get those files needed like :

  • aml_autoscript.zip
  • image

I have this box sitting somewhere i willing to try.

Link to comment
Share on other sites

vor 10 Stunden schrieb Zippy:
  • I have this box sitting somewhere i willing to try.
  • aml_autoscript.zip --> inside image , boot partition
  • image --> there are 3 storage spaces from blabes , yandisk (in this thread, some other forum ) ; mega ( in this thread somewhere) ; armbian space ( at s905 there was also a s8xx folder)
Link to comment
Share on other sites

My device is Tronsmart MXIII Plus, S812, under 108L1 Tronsmart firmware. Trying to run https://users.armbian.com/balbes150/s8xx/Armbian_21.02.0-trunk_Aml-s812_focal_current_5.10.0_xfce_desktop.img.xz using SD Kingston 32G Class 10, and all works fine at the first run - filesystem expands, desktop starts, all OK. But after any restart or shutdown boot hungs at the graphical desktop start - I see all boot messages, then blinking cursor at the black screen, then just black. I checked it three times, fresh image works, second run fails.

 

Buster image restarts successfully, but I prefer Focal just because use it on all other PCs. 

 

Need some advice. How to get diagnostics ?

Link to comment
Share on other sites

03.02.2022 в 03:45, RD00 сказал:

My device is Tronsmart MXIII Plus, S812, under 108L1 Tronsmart firmware. Trying to run https://users.armbian.com/balbes150/s8xx/Armbian_21.02.0-trunk_Aml-s812_focal_current_5.10.0_xfce_desktop.img.xz using SD Kingston 32G Class 10, and all works fine at the first run - filesystem expands, desktop starts, all OK. But after any restart or shutdown boot hungs at the graphical desktop start - I see all boot messages, then blinking cursor at the black screen, then just black. I checked it three times, fresh image works, second run fails.

 

Buster image restarts successfully, but I prefer Focal just because use it on all other PCs. 

 

Need some advice. How to get diagnostics ?

Hey!
Me too MIII+
Please tell me the procedure!
I downloaded the image, wrote it on sd
What file do I need to take from the folder dtb, what would then be copied to the root?
What else needs to be done?
I'm dumb with Linux))

Link to comment
Share on other sites

Hi.

I'm looking to run Armbian on an ATV 585, which has an S805 CPU. 

I was told I'd be able to find the most recent kernel/version of the disk image for S805 CPUs in this thread, but the link for the Yandesk S8xx directory only lists the S812, so I think it may have been removed. Would someone mind sending or pointing out to me where that disk image is?

If it matters, I intend to use this mostly as a server for some self-hosted projects.

 

Additionally, I'm a little confused as to what files I need to edit on SD card. This great guide explains quite clearly how to setup a newer disk image, but the disk image I have found seems to use the older method. I've found conflicting instructions on whether I need to edit the euEnv.txt file, or copy and paste a file from /dtb and rename it. Every time I try to boot from SD card on my device, I just end up in the recovery menu. If anyone can clear that up that would be much appreciated.

Thanks

Link to comment
Share on other sites

vor 5 Stunden schrieb Rohaaq:

Hi.

I'm looking to run Armbian on an ATV 585, which has an S805 CPU.

 

You can use S812 image it should also run S805 it depend on dtb you use

 

dtb excange depend on Kernel

 

Armbian 2x.xx ( Kernel 5.xx) you have to edit uEnv.txt

Armbian 5.xx (Kernel 3.xx and Kernel 4.xx) than exchange file on boot partition

 

 

when you always get to recovery then you have missed install aml_autoscript.zip , this activate the multiboot feature ( normally amlogic only boot from internall emmc/nand)

the toothbrick methode normally only once when install zip file or from Android setting point firmware update

 

Link to comment
Share on other sites

20 hours ago, RaptorSDS said:

 

You can use S812 image it should also run S805 it depend on dtb you use

 

dtb excange depend on Kernel

 

Armbian 2x.xx ( Kernel 5.xx) you have to edit uEnv.txt

Armbian 5.xx (Kernel 3.xx and Kernel 4.xx) than exchange file on boot partition

 

 

when you always get to recovery then you have missed install aml_autoscript.zip , this activate the multiboot feature ( normally amlogic only boot from internall emmc/nand)

the toothbrick methode normally only once when install zip file or from Android setting point firmware update

 

So I'm assuming then that to install the aml_autoscript.zip file I need to use the update app on the box, or use the update option in recovery? Unfortunately, the update app on my box doesn't seem to actually work (it's a Jadoo 4, which is a rebranded ATV585) and I don't currently have the remote to update via the recovery menu. Would I be able to use a different companies update app instead? Would someone be able to provide an APK of such an app (perhaps using an APK extracor)? 

 

Thanks

Link to comment
Share on other sites

On 4/26/2022 at 9:07 AM, RaptorSDS said:

i do not if it works its from android 4.4 s812 box ( root )OTAUpgrade.apk

The APK worked really well and I was able to enable multi-boot, and without root. I suppose in the future if using the stock app isn't an option for some user, using this APK would be useful suggestion. Much appreciated.

 

However, I now get the following error in recovery mode:

(stvm8b is the name of the board)

E: Bad bootloader arguments "(null)"
Finding update package...

Start to check secure update...
stvm8b board is encrypted
not find bootloader.img in upgrade pachage. skipping...
not find boot.img in upgrade package. skipping...
not find recovery.img in upgrade package. skipping...
Check secure upgrade package pass!

Opening update package...
Verifying update package...
E: footer is wrong
E: signature verification failed
Installation aborted.

Some Googling suggests that I might have to chose a different .xz file (in my case, a different one from this Yandesk directory), or something about my setup of the SD card is wrong. Is that correct? If the latter, what exactly am I missing other than changing the first line of the uEnv.txt to point to a specific DTB file?

 

Thanks

Link to comment
Share on other sites

vor 1 Stunde schrieb Rohaaq:

The APK worked really well and I was able to enable multi-boot, and without root. I suppose in the future if using the stock app isn't an option for some user, using this APK would be useful suggestion. Much appreciated.

 

However, I now get the following error in recovery mode:

(stvm8b is the name of the board)

E: Bad bootloader arguments "(null)"
Finding update package...

Start to check secure update...
stvm8b board is encrypted
not find bootloader.img in upgrade pachage. skipping...
not find boot.img in upgrade package. skipping...
not find recovery.img in upgrade package. skipping...
Check secure upgrade package pass!

Opening update package...
Verifying update package...
E: footer is wrong
E: signature verification failed
Installation aborted.

Some Googling suggests that I might have to chose a different .xz file (in my case, a different one from this Yandesk directory), or something about my setup of the SD card is wrong. Is that correct? If the latter, what exactly am I missing other than changing the first line of the uEnv.txt to point to a specific DTB file?

 

Thanks

you are still in Recovery Menu not multiboot

 

 

 

it should be more like this

 

 

Boot from SD:
--------------

exit_reason:0x06
set vddee to 0x03e8mv
Enter ddr resume
pub training time: 2630
ddr resume done
store restore gp0 pll
cfg15 3b0d000 
cfg15 63b0d000 
GXBB:BL1:08dafd:0a8993;FEAT:EDFC318C;POC:3;RCY:0;EMMC:0;READ:0;CHK:0;
no sdio debug board detected 
TE: 71706

BL2 Built : 12:06:06, Jun 13 2016. 
gxb g176ecdb - laiyin.mo@droid12-sz

 

 

 

Link to comment
Share on other sites

38 minutes ago, RaptorSDS said:

you are still in Recovery Menu not multiboot

 

 

 

it should be more like this

 

 

Boot from SD:
--------------

exit_reason:0x06
set vddee to 0x03e8mv
Enter ddr resume
pub training time: 2630
ddr resume done
store restore gp0 pll
cfg15 3b0d000 
cfg15 63b0d000 
GXBB:BL1:08dafd:0a8993;FEAT:EDFC318C;POC:3;RCY:0;EMMC:0;READ:0;CHK:0;
no sdio debug board detected 
TE: 71706

BL2 Built : 12:06:06, Jun 13 2016. 
gxb g176ecdb - laiyin.mo@droid12-sz

 

 

 

Sorry what do I need to do then? I thought multiboot was just some sort of update for the recovery menu?

Link to comment
Share on other sites

vor 1 Minute schrieb Rohaaq:

update for the recovery menu

normaly install aml_autosript.zip from android and than boot from SD-CARD, sometimes install from recovery and very very barly from TWRP

it is more a update for bootloader 

how do flash your sd-card ? (  balenaEtcher, win32_image, linux dd  ...)

Link to comment
Share on other sites

30 minutes ago, RaptorSDS said:

normaly install aml_autosript.zip from android and than boot from SD-CARD, sometimes install from recovery and very very barly from TWRP

it is more a update for bootloader 

how do flash your sd-card ? (  balenaEtcher, win32_image, linux dd  ...)

I use BalenaEtcher. So after installing the update, I should just be able to use the toothpick method and the device will just boot from the SD card automatically, correct? To be clear, after installing the update and using the toothpick method, I do first see a progress bar and the image of the Android with a spinning shape in from of it (idk how to describe it), but then a couple seconds in it just goes to the recovery menu and gave me the error I mentioned above.

Link to comment
Share on other sites

vor 8 Minuten schrieb Rohaaq:

I should just be able to use the toothpick method and the device will just boot from the SD card automatically, correct?

wrong no toothpick needed

 

only insert sd-card or usb and start the box

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