diff --git a/config/boards/orangepizeroplus2.conf b/config/boards/orangepizeroplus2.conf
new file mode 100644
index 0000000000..c01f90cb0f
--- /dev/null
+++ b/config/boards/orangepizeroplus2.conf
@@ -0,0 +1,21 @@
+# H3 quad core 512MB SoC Wi-Fi/BT
+BOARD_NAME="Orange Pi Zero Plus 2"
+LINUXFAMILY="sun8i"
+BOOTCONFIG="nanopi_air_defconfig"
+MODULES="#w1-sunxi #w1-gpio #w1-therm #sunxi-cir hci_uart rfcomm hidp dhd g_serial"
+MODULES_NEXT="brcmfmac g_serial"
+MODULES_BLACKLIST=""
+CPUMIN=240000
+CPUMAX=1200000
+CLI_TARGET="jessie,xenial:default"
+DESKTOP_TARGET="xenial:default"
+KERNEL_TARGET="default"
+#
+CLI_BETA_TARGET=""
+DESKTOP_BETA_TARGET=""
+#
+BOARDRATING=""
+CHIP="http://docs.armbian.com/Hardware_Allwinner-H3/"
+HARDWARE="http://linux-sunxi.org/Xunlong_Orange_Pi_Zero"
+FORUMS="http://forum.armbian.com/index.php/forum/13-allwinner-h3/"
+MISC3="Minimize consumption"
diff --git a/config/fex/orangepizeroplus2.fex b/config/fex/orangepizeroplus2.fex
new file mode 100644
index 0000000000..31aa100f9a
--- /dev/null
+++ b/config/fex/orangepizeroplus2.fex
@@ -0,0 +1,886 @@
+; Based on Armbian's fex for Orange Pi Zero and Xunlong's for H5 Zero Plus 2:
+; https://github.com/OrangePiLibra/OrangePi_H5SDK/blob/71323b535b39a136ca206b22d4acc331310f0646/external/sys_config.fex
+;
+; TODO:
+; - try to boot
+; - verify DRAM parameters
+; - check whether AP6212 is connected to uart1 or uart2
+; - check whether red led is still connected to PA17
+; - check which USB port is missing: usbc1, usbc2 or usbc3
+;
+[product]
+version = "100"
+machine = "Xunlong Orange Pi Zero Plus 2"
+
+[platform]
+debug_mode = 1
+eraseflag = 1
+next_work = 3
+secure_without_OS = 1
+
+[target]
+boot_clock = 1008
+storage_type = -1
+burn_key = 1
+
+[key_detect_en]
+keyen_flag = 0
+
+[fel_key]
+fel_key_max = 7
+fel_key_min = 2
+
+[card_boot]
+logical_start = 40960
+sprite_work_delay = 500
+sprite_err_delay = 200
+sprite_gpio0 = port:PA17<1>
+next_work = 3
+
+[box_start_os]
+used = 1
+start_type = 1
+irkey_used = 1
+pmukey_used = 0
+pmukey_num = 0
+led_power = 0
+led_state = 0
+
+[boot_init_gpio]
+used = 1
+gpio0 = port:PL10<1><1>
+gpio1 = port:PA17<1><0>
+
+[recovery_para]
+used = 1
+mode = 2
+recovery_key = port:PL04<0>
+
+[pm_para]
+standby_mode = 1
+
+[card0_boot_para]
+card_ctrl = 0
+card_high_speed = 1
+card_line = 4
+sdc_d1 = port:PF00<2><1><2>
+sdc_d0 = port:PF01<2><1><2>
+sdc_clk = port:PF02<2><1><2>
+sdc_cmd = port:PF03<2><1><2>
+sdc_d3 = port:PF04<2><1><2>
+sdc_d2 = port:PF05<2><1><2>
+
+[card2_boot_para]
+card_ctrl = 2
+card_high_speed = 1
+card_line = 8
+sdc_cmd = port:PC06<3><1><2>
+sdc_clk = port:PC05<3><1><2>
+sdc_d0 = port:PC08<3><1><2>
+sdc_d1 = port:PC09<3><1><2>
+sdc_d2 = port:PC10<3><1><2>
+sdc_d3 = port:PC11<3><1><2>
+sdc_d4 = port:PC12<3><1><2>
+sdc_d5 = port:PC13<3><1><2>
+sdc_d6 = port:PC14<3><1><2>
+sdc_d7 = port:PC15<3><1><2>
+sdc_2xmode = 1
+sdc_ddrmode = 1
+
+[twi_para]
+twi_port = 0
+twi_scl = port:PA11<2>
+twi_sda = port:PA12<2>
+
+[uart_para]
+uart_debug_port = 0
+uart_debug_tx = port:PA04<2><1>
+uart_debug_rx = port:PA05<2><1>
+
+[force_uart_para]
+force_uart_port = 0
+force_uart_tx =
+force_uart_rx =
+
+[jtag_para]
+jtag_enable = 0
+jtag_ms = port:PA00<3>
+jtag_ck = port:PA01<3>
+jtag_do = port:PA02<3>
+jtag_di = port:PA03<3>
+
+[clock]
+pll_video = 297
+pll_ve = 402
+pll_periph0 = 600
+pll_gpu = 576
+pll_periph1 = 600
+pll_de = 864
+
+[dram_para]
+dram_clk = 408
+dram_type = 3
+;dram_zq = 0x3b3bfb
+;dram_odt_en = 1
+;dram_para1 = 283377664
+;dram_para2 = 0
+;dram_mr0 = 6208
+;dram_mr1 = 64
+;dram_mr2 = 24
+;dram_mr3 = 2
+;dram_tpr0 = 0x48a192
+;dram_tpr1 = 0x1c2418d
+;dram_tpr2 = 0x76051
+;dram_tpr3 = 0x0
+;dram_tpr4 = 0x0
+;dram_tpr5 = 0x0
+;dram_tpr6 = 0x64
+;dram_tpr7 = 0x13890240
+;dram_tpr8 = 0x0
+;dram_tpr9 = 0x0
+;dram_tpr10 = 0x0
+;dram_tpr11 = 0x6aaa0000
+;dram_tpr12 = 0x7979
+;dram_tpr13 = 0x1802800
+dram_zq = 0x3b3bf9
+dram_odt_en = 0x1
+dram_para1 = 0x10f410f4
+dram_para2 = 0x0000
+dram_mr0 = 0x1840
+dram_mr1 = 0x40
+dram_mr2 = 0x18
+dram_mr3 = 0x2
+dram_tpr0 = 0x0048A192
+dram_tpr1 = 0x01b1a94b
+dram_tpr2 = 0x00061043
+dram_tpr3 = 0xB4787896
+dram_tpr4 = 0x0000
+dram_tpr5 = 0x0
+dram_tpr6 = 0x64
+dram_tpr7 = 0x1e08a1e0
+dram_tpr8 = 0x0
+dram_tpr9 = 0
+dram_tpr10 = 0x2535
+dram_tpr11 = 0x23330000
+dram_tpr12 = 0x00008897
+dram_tpr13 = 0x4002910
+
+[wakeup_src_para]
+cpu_en = 0
+cpu_freq = 48
+pll_ratio = 273
+dram_selfresh_en = 1
+dram_freq = 36
+wakeup_src0 =
+wakeup_src_wl = port:PG10<4><0>
+wakeup_src_bt = port:PL03<6><0>
+
+[twi0]
+twi_used = 1
+twi_scl = port:PA11<2>
+twi_sda = port:PA12<2>
+
+[twi1]
+twi_used = 1
+twi_scl = port:PA18<3>
+twi_sda = port:PA19<3>
+
+[twi2]
+twi_used = 0
+twi_scl = port:PE12<3>
+twi_sda = port:PE13<3>
+
+[uart0]
+uart_used = 1
+uart_port = 0
+uart_type = 2
+uart_tx = port:PA04<2><1>
+uart_rx = port:PA05<2><1>
+
+[uart1]
+uart_used = 1
+uart_port = 1
+uart_type = 4
+uart_tx = port:PG06<2><1>
+uart_rx = port:PG07<2><1>
+uart1_rts = port:PG08<2><1>
+uart1_cts = port:PG09<2><1>
+
+[uart2]
+uart_used = 1
+uart_port = 2
+uart_type = 4
+uart_tx = port:PA00<2><1>
+uart_rx = port:PA01<2><1>
+uart2_rts = port:PA02<2><1>
+uart2_cts = port:PA03<2><1>
+
+
+[uart3]
+uart_used = 0
+uart_port = 3
+uart_type = 2
+uart_tx = port:PA13<3><1>
+uart_rx = port:PA14<3><1>
+
+[spi0]
+spi_used = 1
+spi_cs_bitmap = 1
+spi_mosi = port:PC00<3>
+spi_miso = port:PC01<3>
+spi_sclk = port:PC02<3>
+spi_cs0 = port:PC03<3><1>
+
+[spi1]
+spi_used = 1
+spi_cs_bitmap = 1
+spi_cs0 = port:PA13<2><1>
+spi_sclk = port:PA14<2>
+spi_mosi = port:PA15<2>
+spi_miso = port:PA16<2>
+
+[spi_devices]
+spi_dev_num = 2
+
+[spi_board0]
+modalias = "spidev"
+max_speed_hz = 33000000
+bus_num = 0
+chip_select = 0
+mode = 0
+full_duplex = 1
+manual_cs = 0
+
+[spi_board1]
+modalias = "spidev"
+max_speed_hz = 33000000
+bus_num = 1
+chip_select = 0
+mode = 0
+full_duplex = 1
+manual_cs = 0
+
+; NOTE: This section is necessary only for "gpio_sunxi" driver
+; which is obsolete for H3 boards
+[gpio_para]
+gpio_used = 0
+gpio_num = 0
+
+[leds_para]
+leds_used = 1
+green_led = port:PL10<1><1>
+green_led_active_low = 0
+red_led = port:PA17<1><0>
+red_led_active_low = 0
+
+[ths_para]
+ths_used = 1
+ths_trip1_count = 8
+ths_trip1_0 = 65
+ths_trip1_1 = 70
+ths_trip1_2 = 75
+ths_trip1_3 = 80
+ths_trip1_4 = 85
+ths_trip1_5 = 90
+ths_trip1_6 = 95
+ths_trip1_7 = 100
+ths_trip1_0_min = 0
+ths_trip1_0_max = 1
+ths_trip1_1_min = 1
+ths_trip1_1_max = 2
+ths_trip1_2_min = 2
+ths_trip1_2_max = 3
+ths_trip1_3_min = 3
+ths_trip1_3_max = 4
+ths_trip1_4_min = 4
+ths_trip1_4_max = 5
+ths_trip1_5_min = 5
+ths_trip1_5_max = 6
+ths_trip1_6_min = 6
+ths_trip1_6_max = 7
+ths_trip2_count = 1
+ths_trip2_0 = 105
+
+;----------------------------------------------------------------------------------
+;cooler_table cooler_count <=32
+;----------------------------------------------------------------------------------
+
+[cooler_table]
+cooler_count = 8
+cooler0 = "1200000 4 4294967295 0"
+cooler1 = "912000 4 4294967295 0"
+cooler2 = "768000 4 4294967295 0"
+cooler3 = "648000 4 4294967295 0"
+cooler4 = "480000 4 4294967295 0"
+cooler5 = "480000 3 4294967295 0"
+cooler6 = "240000 2 4294967295 0"
+cooler7 = "240000 1 4294967295 0"
+
+[nand0_para]
+nand_support_2ch = 0
+nand0_used = 0
+nand0_we = port:PC00<2>
+nand0_ale = port:PC01<2>
+nand0_cle = port:PC02<2>
+nand0_ce1 = port:PC03<2>
+nand0_ce0 = port:PC04<2>
+nand0_nre = port:PC05<2>
+nand0_rb0 = port:PC06<2>
+nand0_rb1 = port:PC07<2>
+nand0_d0 = port:PC08<2>
+nand0_d1 = port:PC09<2>
+nand0_d2 = port:PC10<2>
+nand0_d3 = port:PC11<2>
+nand0_d4 = port:PC12<2>
+nand0_d5 = port:PC13<2>
+nand0_d6 = port:PC14<2>
+nand0_d7 = port:PC15<2>
+nand0_ndqs = port:PC16<2>
+
+[boot_disp]
+advert_disp = 0
+auto_hpd = 1
+output_type = 4
+hdmi_channel = 0
+hdmi_mode = 4
+cvbs_channel = 1
+cvbs_mode = 11
+output_full = 1
+hdmi_mode_check = 1
+
+[disp_init]
+disp_init_enable = 1
+disp_mode = 0
+screen0_output_type = 3
+screen0_output_mode = 5
+screen1_output_type = 3
+screen1_output_mode = 5
+fb0_format = 0
+fb0_width = 0
+fb0_height = 0
+fb1_format = 0
+fb1_width = 0
+fb1_height = 0
+
+[hdmi_para]
+hdmi_used = 1
+hdmi_power = "vcc-hdmi-18"
+
+[tv_para]
+tv_used = 0
+tv_dac_used = 1
+tv_dac_src0 = 0
+
+[pwm0_para]
+pwm_used = 0
+pwm_positive = port:PA05<3><0>
+
+[pwm1_para]
+pwm_used = 0
+pwm_positive = port:PA06<3><0>
+
+[gmac0]
+gmac_used = 0
+gmac_power1 =
+
+[csi0]
+vip_used = 1
+vip_mode = 0
+vip_dev_qty = 1
+vip_define_sensor_list = 0
+vip_csi_pck = port:PE00<2>
+vip_csi_mck = port:PE01<2>
+vip_csi_hsync = port:PE02<2>
+vip_csi_vsync = port:PE03<2>
+vip_csi_d0 = port:PE04<2>
+vip_csi_d1 = port:PE05<2>
+vip_csi_d2 = port:PE06<2>
+vip_csi_d3 = port:PE07<2>
+vip_csi_d4 = port:PE08<2>
+vip_csi_d5 = port:PE09<2>
+vip_csi_d6 = port:PE10<2>
+vip_csi_d7 = port:PE11<2>
+vip_csi_sck = port:PE12<2>
+vip_csi_sda = port:PE13<2>
+vip_dev0_mname = "gc2035"
+vip_dev0_pos = "front"
+vip_dev0_lane = 1
+vip_dev0_twi_id = 2
+vip_dev0_twi_addr = 0x78
+vip_dev0_isp_used = 0
+vip_dev0_fmt = 0
+vip_dev0_stby_mode = 0
+vip_dev0_vflip = 1
+vip_dev0_hflip = 1
+vip_dev0_iovdd = ""
+vip_dev0_iovdd_vol = 2800000
+vip_dev0_avdd = ""
+vip_dev0_avdd_vol = 2800000
+vip_dev0_dvdd = ""
+vip_dev0_dvdd_vol = 1800000
+vip_dev0_afvdd = ""
+vip_dev0_afvdd_vol = 2800000
+vip_dev0_power_en = port:PD14<1>
+vip_dev0_reset = port:PE14<1>
+vip_dev0_pwdn = port:PE15<1>
+vip_dev0_flash_en =
+vip_dev0_flash_mode =
+vip_dev0_af_pwdn =
+vip_dev0_act_used = 0
+vip_dev0_act_name = "ad5820_act"
+vip_dev0_act_slave = 0x18
+vip_dev1_mname = ""
+vip_dev1_pos = "front"
+vip_dev1_lane = 1
+vip_dev1_twi_id = 0
+vip_dev1_twi_addr =
+vip_dev1_isp_used = 0
+vip_dev1_fmt = 1
+vip_dev1_stby_mode = 0
+vip_dev1_vflip = 0
+vip_dev1_hflip = 0
+vip_dev1_iovdd = ""
+vip_dev1_iovdd_vol = 2800000
+vip_dev1_avdd = ""
+vip_dev1_avdd_vol = 2800000
+vip_dev1_dvdd = ""
+vip_dev1_dvdd_vol = 1500000
+vip_dev1_afvdd = ""
+vip_dev1_afvdd_vol = 2800000
+vip_dev1_power_en =
+vip_dev1_reset =
+vip_dev1_pwdn =
+vip_dev1_flash_en =
+vip_dev1_flash_mode =
+vip_dev1_af_pwdn =
+
+[tvout_para]
+tvout_used = 0
+tvout_channel_num = 1
+tv_en =
+
+[tvin_para]
+tvin_used = 0
+tvin_channel_num =
+
+[di_para]
+di_used = 1
+
+[mmc0_para]
+sdc_used = 1
+sdc_detmode = 3
+sdc_buswidth = 4
+sdc_clk = port:PF02<2><1><2>
+sdc_cmd = port:PF03<2><1><2>
+sdc_d0 = port:PF01<2><1><2>
+sdc_d1 = port:PF00<2><1><2>
+sdc_d2 = port:PF05<2><1><2>
+sdc_d3 = port:PF04<2><1><2>
+sdc_det = port:PF06<0><1><2>
+sdc_use_wp = 0
+sdc_wp =
+sdc_isio = 0
+sdc_regulator = "none"
+sdc_power_supply = "none"
+
+[mmc1_para]
+sdc_used = 1
+sdc_detmode = 4
+sdc_buswidth = 4
+sdc_clk = port:PG00<2><1><2>
+sdc_cmd = port:PG01<2><1><2>
+sdc_d0 = port:PG02<2><1><2>
+sdc_d1 = port:PG03<2><1><2>
+sdc_d2 = port:PG04<2><1><2>
+sdc_d3 = port:PG05<2><1><2>
+sdc_det =
+sdc_use_wp = 0
+sdc_wp =
+sdc_isio = 1
+sdc_regulator = "none"
+sdc_power_supply = "none"
+sdc_2xmode = 1
+sdc_ddrmode = 1
+
+[mmc2_para]
+sdc_used = 1
+sdc_detmode = 3
+sdc_buswidth = 8
+sdc_clk = port:PC05<3><1><2>
+sdc_cmd = port:PC06<3><1><2>
+sdc_d0 = port:PC08<3><1><2>
+sdc_d1 = port:PC09<3><1><2>
+sdc_d2 = port:PC10<3><1><2>
+sdc_d3 = port:PC11<3><1><2>
+sdc_d4 = port:PC12<3><1><2>
+sdc_d5 = port:PC13<3><1><2>
+sdc_d6 = port:PC14<3><1><2>
+sdc_d7 = port:PC15<3><1><2>
+emmc_rst = port:PC16<3><1><2>
+sdc_det =
+sdc_use_wp = 0
+sdc_wp =
+sdc_isio = 0
+sdc_regulator = "none"
+sdc_power_supply = "none"
+sdc_2xmode = 1
+sdc_ddrmode = 1
+
+[smc_para]
+smc_used =
+smc_rst = port:PA09<2>
+smc_vppen = port:PA20<3>