sunxi: Orange Pi R1 SPI: add spi flash board
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 14 Jan 2018 11:44:11 +0000 (12:44 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 22 Sep 2018 19:30:01 +0000 (21:30 +0200)
This adds support for booting the Orange Pi R1 from SPI flash instead of
SD card.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/boot/uboot-sunxi/Makefile
package/boot/uboot-sunxi/patches/320-sunxi-Add-support-for-Orange-Pi-R1.patch
target/linux/sunxi/image/cortex-a7.mk

index b3d9c1eb69a700a3a63fdb7f9b96eae002c367bc..ae43c043272c761a66804fd1d86fb1517aebddd0 100644 (file)
@@ -156,6 +156,12 @@ define U-Boot/orangepi_pc
   BUILD_DEVICES:=sun8i-h3-orangepi-pc
 endef
 
+define U-Boot/orangepi_r1_spi
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Orange Pi R1 (H2+) (boot from SPI)
+  BUILD_DEVICES:=sun8i-h2-plus-orangepi-r1-spi
+endef
+
 define U-Boot/orangepi_plus
   BUILD_SUBTARGET:=cortexa7
   NAME:=Orange Pi Plus (H3)
@@ -248,6 +254,7 @@ UBOOT_TARGETS := \
        nanopi_neo2 \
        orangepi_r1 \
        orangepi_pc \
+       orangepi_r1_spi \
        orangepi_plus \
        orangepi_2 \
        orangepi_pc2 \
index 97c47694685176117452d09ee4e227145cf42d16..0a157a7b1ed28348e27b491d1065ddcfddcdf748 100644 (file)
@@ -177,3 +177,43 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 +CONFIG_SUN8I_EMAC=y
 +CONFIG_USB_EHCI_HCD=y
 +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
+--- /dev/null
++++ b/configs/orangepi_r1_spi_defconfig
+@@ -0,0 +1,37 @@
++CONFIG_ARM=y
++CONFIG_ARCH_SUNXI=y
++CONFIG_SYS_TEXT_BASE=0x4a000000
++CONFIG_ENV_SIZE=0x10000
++CONFIG_ENV_OFFSET=0x80000
++CONFIG_MACH_SUN8I_H3=y
++CONFIG_DRAM_CLK=624
++CONFIG_DRAM_ZQ=3881979
++CONFIG_DRAM_ODT_EN=y
++# CONFIG_VIDEO_DE2 is not set
++CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-orangepi-r1"
++# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
++CONFIG_SPI_BOOT=y
++CONFIG_USE_BOOTARGS=y
++CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/mtdblock5 rootfstype=squashfs mtdparts=spi0.0:512k(uboot),64k(uboot-env)ro,64k(dtb),-(firmware)"
++CONFIG_BOOTCOMMAND="sf probe 0; sf read ${fdt_addr_r} 0x90000 0x10000; sf read ${kernel_addr_r} 0xa0000 0x400000; bootm ${kernel_addr_r} - ${fdt_addr_r}"
++CONFIG_CONSOLE_MUX=y
++CONFIG_SPL=y
++CONFIG_CMD_SF=y
++CONFIG_CMD_SPI=y
++CONFIG_CMD_MTDPARTS=y
++CONFIG_MTDIDS_DEFAULT="spi0.0"
++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:512k(uboot),64k(uboot-env)ro,64k(dtb),-(firmware)"
++# CONFIG_ENV_IS_IN_MMC is not set
++CONFIG_ENV_IS_IN_SPI_FLASH=y
++CONFIG_MTD=y
++CONFIG_DM_SPI_FLASH=y
++CONFIG_SPI_FLASH=y
++CONFIG_SPI_FLASH_MACRONIX=y
++CONFIG_SPI_FLASH_MTD=y
++CONFIG_SPL_SPI_SUNXI=y
++CONFIG_SUN8I_EMAC=y
++CONFIG_DM_SPI=y
++CONFIG_SUNXI_SPI=y
++CONFIG_USB_EHCI_HCD=y
++CONFIG_LZMA=y
++CONFIG_FDT_FIXUP_PARTITIONS=y
index 986b6395c4bd21c7c2519e09867b374a2803c2a1..6cc87d49c1c26eb2db0bccedf09948dc27e7f1be 100644 (file)
@@ -8,6 +8,15 @@
 
 ifeq ($(SUBTARGET),cortexa7)
 
+define Build/append-uboot
+       dd if=$(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-u-boot-with-spl.bin >> $@
+endef
+
+define Build/add-dtb
+       dd if=$(DTS_DIR)/$(SUNXI_DTS).dtb >> $@
+endef
+
+
 define Device/sun7i-a20-olinuxino-lime
   DEVICE_TITLE:=Olimex A20-OLinuXino-LIME
   DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-rtc-sunxi
@@ -118,6 +127,19 @@ endef
 TARGET_DEVICES += sun8i-h2-plus-orangepi-r1
 
 
+define Device/sun8i-h2-plus-orangepi-r1-spi
+  FILESYSTEMS := squashfs
+  IMAGES := spi-factory.img
+  IMAGE/spi-factory.img := append-uboot | check-size 512k | pad-to 576k | add-dtb | pad-to 640k | append-kernel | append-rootfs | pad-rootfs | append-metadata
+  DEVICE_TITLE:=Xunlong Orange Pi R1 boot from SPI
+  DEVICE_PACKAGES:=kmod-rtc-sunxi kmod-usb-net kmod-usb-net-rtl8152
+  SUPPORTED_DEVICES:=xunlong,orangepi-r1-spi
+  SUNXI_DTS:=sun8i-h2-plus-orangepi-r1
+endef
+
+TARGET_DEVICES += sun8i-h2-plus-orangepi-r1-spi
+
+
 define Device/sun8i-h3-nanopi-m1-plus
   DEVICE_TITLE:=FriendlyArm NanoPi M1 Plus
   DEVICE_PACKAGES:=kmod-rtc-sunxi \