board/orangepi: add basic support for orangepi-zero board
This patch adds basic support for orangepi-zero board. Board support package includes the following components: - mainline kernel v4.11 - mainline u-boot v2017.03 - extra kernel config options: spidev, spi nor flash, wifi - dts patches to enable SPI NOR and spidev More details about this board are available here: - http://linux-sunxi.org/Orange_Pi_Zero Note that at the moment networking is not supported right out of the box. Ethernet submission to mainline kernel is a work in progress, see the latest dwmac-sun8i branches at https://github.com/montjoie/linux On-board SDIO WiFi chip XR819 is supported by off-the-tree wireless driver available at https://github.com/fifteenhex/xradio Changes from v1: * Send patch using proper subject * Update xr819 kernel dts patch: add compatible property [Peter: fix s/PC/Zero/ typo] Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
b0fc65a11b
commit
e3c1c6e41e
8
board/orangepi/orangepi-zero/boot.cmd
Normal file
8
board/orangepi/orangepi-zero/boot.cmd
Normal file
@ -0,0 +1,8 @@
|
||||
setenv fdt_high ffffffff
|
||||
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
|
||||
fatload mmc 0 $kernel_addr_r zImage
|
||||
fatload mmc 0 $fdt_addr_r sun8i-h2-plus-orangepi-zero.dtb
|
||||
|
||||
bootz $kernel_addr_r - $fdt_addr_r
|
36
board/orangepi/orangepi-zero/genimage.cfg
Normal file
36
board/orangepi/orangepi-zero/genimage.cfg
Normal file
@ -0,0 +1,36 @@
|
||||
# Minimal SD card image for the OrangePi Zero
|
||||
#
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"sun8i-h2-plus-orangepi-zero.dtb",
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
size = 10M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot-sunxi-with-spl.bin"
|
||||
offset = 8192
|
||||
size = 1040384 # 1MB - 8192
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xC
|
||||
bootable = "true"
|
||||
image = "boot.vfat"
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 512M
|
||||
}
|
||||
}
|
17
board/orangepi/orangepi-zero/linux-extras.config
Normal file
17
board/orangepi/orangepi-zero/linux-extras.config
Normal file
@ -0,0 +1,17 @@
|
||||
# spidev
|
||||
CONFIG_SPI_SPIDEV=y
|
||||
|
||||
# spi nor
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_M25P80=y
|
||||
|
||||
# wireless core
|
||||
CONFIG_WIRELESS=y
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
|
||||
# wireless drivers
|
||||
CONFIG_WLAN=y
|
@ -0,0 +1,35 @@
|
||||
From 321faaf4b78d46a0c77782c1798856746f0619e9 Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Matyukevich <geomatsi@gmail.com>
|
||||
Date: Fri, 19 May 2017 23:39:48 +0300
|
||||
Subject: [PATCH 1/3] ARM: dts: orange-pi-zero: specify XR819 WiFi chip
|
||||
interrupts
|
||||
|
||||
The orange-pi-zero board has Allwinner XR819 SDIO wifi chip. The board
|
||||
dts file provides a node enabling mmc1 controller. Together with an
|
||||
out-of-tree driver https://github.com/fifteenhex/xradio this node
|
||||
enables using the wifi chip.
|
||||
|
||||
This commit specifies XR819 interrupt configuration for the driver.
|
||||
|
||||
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
index b7ca916d871d..4e1a9050c6b4 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
@@ -125,6 +125,9 @@
|
||||
*/
|
||||
xr819: sdio_wifi@1 {
|
||||
reg = <1>;
|
||||
+ compatible = "xradio,xr819";
|
||||
+ interrupt-parent = <&pio>;
|
||||
+ interrupts = <6 10 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
@ -0,0 +1,42 @@
|
||||
From 068c3baff3048a3db4ef2518ff917ce749cd8169 Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Matyukevich <geomatsi@gmail.com>
|
||||
Date: Sat, 20 May 2017 11:24:26 +0300
|
||||
Subject: [PATCH 2/3] ARM: dts: orange-pi-zero: enable SPI NOR
|
||||
|
||||
Enable SPI NOR on orange-pi-zero board.
|
||||
|
||||
For more information see:
|
||||
- http://linux-sunxi.org/Orange_Pi_Zero#SPI_NOR_flash
|
||||
|
||||
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
index 4e1a9050c6b4..cdf19821b1f3 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
@@ -161,3 +161,19 @@
|
||||
/* USB VBUS is always on */
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&spi0 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ flash@0 {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ compatible = "mxicy,mx25l1606e", "winbond,w25q128";
|
||||
+ reg = <0>;
|
||||
+ spi-max-frequency = <40000000>;
|
||||
+
|
||||
+ partition@00000000 {
|
||||
+ reg = <0x00000000 0x200000>; /* 2Mb */
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.11.0
|
||||
|
@ -0,0 +1,42 @@
|
||||
From 8dd1b2a696bb7e9914abd11cc6f5c0f54c33d626 Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Matyukevich <geomatsi@gmail.com>
|
||||
Date: Sat, 20 May 2017 15:36:51 +0300
|
||||
Subject: [PATCH 3/3] ARM: dts: orange-pi-zero: enable spidev
|
||||
|
||||
On orange-pi-zero board SPI1 pins are accessible via GPIO expansion port.
|
||||
This patch enables spidev driver for SPI1.
|
||||
|
||||
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
index cdf19821b1f3..7242aaecb14f 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
@@ -59,6 +59,7 @@
|
||||
serial0 = &uart0;
|
||||
/* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
|
||||
ethernet1 = &xr819;
|
||||
+ spi1 = &spi1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -177,3 +178,13 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
+
|
||||
+&spi1 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ spidev@0 {
|
||||
+ compatible = "rohm,dh2228fv";
|
||||
+ reg = <0>;
|
||||
+ spi-max-frequency = <10000000>;
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.11.0
|
||||
|
1
board/orangepi/orangepi-zero/post-build.sh
Symbolic link
1
board/orangepi/orangepi-zero/post-build.sh
Symbolic link
@ -0,0 +1 @@
|
||||
../post-build.sh
|
1
board/orangepi/orangepi-zero/post-image.sh
Symbolic link
1
board/orangepi/orangepi-zero/post-image.sh
Symbolic link
@ -0,0 +1 @@
|
||||
../post-image.sh
|
29
board/orangepi/orangepi-zero/readme.txt
Normal file
29
board/orangepi/orangepi-zero/readme.txt
Normal file
@ -0,0 +1,29 @@
|
||||
OrangePi Zero
|
||||
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
buildroot environment for the OrangePi Zero. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
Configure Buildroot:
|
||||
|
||||
$ make orangepi_zero_defconfig
|
||||
|
||||
Compile everything and build the SD card image:
|
||||
|
||||
$ make
|
||||
|
||||
How to write the SD card
|
||||
========================
|
||||
|
||||
Once the build process is finished you will have an image called "sdcard.img"
|
||||
in the output/images/ directory.
|
||||
|
||||
Copy the bootable "sdcard.img" onto an SD card with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
42
configs/orangepi_zero_defconfig
Normal file
42
configs/orangepi_zero_defconfig
Normal file
@ -0,0 +1,42 @@
|
||||
BR2_arm=y
|
||||
BR2_cortex_a7=y
|
||||
BR2_ARM_FPU_VFPV4=y
|
||||
BR2_GLOBAL_PATCH_DIR="board/orangepi/orangepi-zero/patches"
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_11=y
|
||||
BR2_TARGET_GENERIC_HOSTNAME="OrangePi_Zero"
|
||||
BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi Zero"
|
||||
BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepi-zero/post-build.sh"
|
||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/orangepi/orangepi-zero/post-image.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-orangepi-zero"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero/linux-extras.config"
|
||||
BR2_TARGET_ROOTFS_EXT2=y
|
||||
BR2_TARGET_ROOTFS_EXT2_4=y
|
||||
# BR2_TARGET_ROOTFS_TAR is not set
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.03"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_zero"
|
||||
BR2_TARGET_UBOOT_NEEDS_DTC=y
|
||||
BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
|
||||
BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin"
|
||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||
BR2_PACKAGE_HOST_GENIMAGE=y
|
||||
BR2_PACKAGE_HOST_MTOOLS=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
||||
# wireless support
|
||||
BR2_PACKAGE_IW=y
|
||||
BR2_PACKAGE_WIRELESS_TOOLS=y
|
||||
BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
|
||||
BR2_PACKAGE_WPA_SUPPLICANT=y
|
||||
BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
|
||||
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
|
||||
|
||||
# spi flash support
|
||||
BR2_PACKAGE_MTD=y
|
Loading…
Reference in New Issue
Block a user