sunxi: a53: add support for Olimex A64-Olinuxino eMMC
authorPetr Štetiar <ynezz@true.cz>
Mon, 16 Mar 2020 09:57:50 +0000 (10:57 +0100)
committerPetr Štetiar <ynezz@true.cz>
Sat, 28 Mar 2020 12:03:02 +0000 (13:03 +0100)
Specifications:

 SoC: Allwinner A64 (1.2 GHz Quad-Core ARM Cortex-A53 64-bit)
 RAM: 1GB or 2GB RAM DDR3L @ 672Mhz
 Flash: 0/4/16GB eMMC flash memory for storage and boot
 MicroSD card connector for cards up to 32GB
 Debug: serial UART debug header with 0.1" pins
 Wired connectivity: 10/100/1000Mbps GbE Ethernet
 Wireless connectivity: on-board RTL8723BS 1T1R 802.11bgn WiFi and
                        Bluetooth 4.0 module with built-in antenna
                        (only available in the A64-OLinuXino-1G4GW)

Flashing instructions:

 Standard sunxi SD card installation procedure - copy eMMC image to SD
 card, insert in into SD card slot on the device and boot. You should see
 something like following if the eMMC is detected correctly:

  mmcblk2: mmc2:0001 P1XXXX 3.60 GiB
  mmcblk2boot0: mmc2:0001 P1XXXX partition 1 16.0 MiB
  mmcblk2boot1: mmc2:0001 P1XXXX partition 2 16.0 MiB

 Then flash SD card eMMC image straight into the mmcblk2 device:

  dd if=/mnt/openwrt...a64-olinuxino-emmc-squashfs-sdcard.img of=/dev/mmcblk2

 It also possible to boot from boot0 partition[1]:

  1. Compile U-Boot with CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x40
     otherwise the U-Boot will get stuck in bootloop
  2. Configure eMMC to boot from boot0 partition inside U-Boot:

     mmc bootbus 1 1 0 0; mmc partconf 1 1 1 0

  3. echo 0 > /sys/block/mmcblk2boot0/force_ro
  4. Write U-Boot from offset 0 (not offset 8k as with SD card) into
     boot0 partition

     dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk2boot0

Known issues:

 Wireless doesn't work properly via netifd.

1. https://linux-sunxi.org/index.php?title=Bootable_eMMC

Signed-off-by: Petr Štetiar <ynezz@true.cz>
target/linux/sunxi/image/cortex-a53.mk

index 96885cf926128dc91d5e46c1cd0331f5a4cb42f1..7a70de4dfff3d0b0fac61c1d85e3387aa89da199 100644 (file)
@@ -47,6 +47,16 @@ define Device/olimex_a64-olinuxino
 endef
 TARGET_DEVICES += olimex_a64-olinuxino
 
+define Device/olimex_a64-olinuxino-emmc
+  DEVICE_VENDOR := Olimex
+  DEVICE_MODEL := A64-Olinuxino
+  DEVICE_VARIANT := eMMC
+  DEVICE_PACKAGES := kmod-rtl8723bs rtl8723bs-firmware
+  $(Device/sun50i-a64)
+  SUNXI_DTS := $$(SUNXI_DTS_DIR)$$(SOC)-olinuxino-emmc
+endef
+TARGET_DEVICES += olimex_a64-olinuxino-emmc
+
 define Device/pine64_pine64-plus
   DEVICE_VENDOR := Pine64
   DEVICE_MODEL := Pine64+