mirror of https://github.com/hak5/openwrt-owl.git
imx6: Initial support for SolidRun CuBox-i devices based on i.MX6 processors (i1, i2, i2eX, and i4Pro).
- Specifications - CuBox i1: - SoC: i.MX6 Solo - Cores: 1 - Memory Size: 512MB - GPU: GC880 - Wifi/Bluetooth: Optional - USB 2.0 ports: 2 - Ethernet: 10/100/1000 Mbps CuBox i2 | i2eX: - SoC: i.MX6 Dual Lite - Cores: 2 - Memory Size: 1GB - GPU: GC2000 - Wifi/Bluetooth: Optional - USB 2.0 ports: 2 - Ethernet: 10/100/1000 Mbps CuBox i4Pro | i4x4: - SoC: i.MX6 Quad - Cores: 4 - Memory Size: 2/4 GB - GPU: GC2000 - Wifi/Bluetooth: Build In - USB 2.0 ports: 2 - Ethernet: 10/100/1000 Mbps Built-in u-boot requires SPL (secondary program loader) to be present on the SD-card regardless of the image type which will be loaded. SPL is generated by the u-boot-mx6cuboxi package which is preselected by the target device and can be found in bin/u-boot-mx6cuboxi directory. Flashing the SPL: dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=4 dd if=bin/targets/imx6/generic/u-boot-mx6cuboxi/SPL of=/dev/mmcblk0 bs=1K seek=1 Preparing the firmware on the SD-card: (echo o; echo n; echo p; echo 1; echo ''; echo ''; echo w) | fdisk /dev/mmcblk0 mkfs.ext4 /dev/mmcblk0p1 mount /dev/mmcblk0p1 /mnt tar -xzf bin/targets/imx6/generic/openwrt-imx6-device-cubox-i-rootfs.tar.gz -C /mnt/ mkdir -p /mnt/boot cp bin/targets/imx6/generic/{*-uImage,*.dtb,*.scr} /mnt/boot/ Generated u-boot.img needs to be placed on the first partition: cp bin/targets/imx6/generic/u-boot-mx6cuboxi/u-boot.img /mnt/ To boot from the SD card: Boot script which sets mmc/dtb parameters and boots the board is automatically sourced. If this does not work for any reason: mmc dev 0; load mmc 0:1 $scriptaddr boot/boot.scr; source $scriptaddr Currently imx6dl-cubox-i.dtb (Dual Lite) and imx6q-cubox-i.dtb (Quad) device trees are available. Tested on i4Pro, MMC, USB (+ HiD), HDMI and ethernet ports are working. Wireless and bluetooth are broken ATM. According to SolidRun forums, BCM4329/BCM4330 firmware is used which works fine on older kernels. Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>master
parent
672c430d6e
commit
6cda4f6861
|
@ -20,6 +20,12 @@ define U-Boot/Default
|
|||
UBOOT_IMAGE:=u-boot.imx
|
||||
endef
|
||||
|
||||
define U-Boot/mx6cuboxi
|
||||
NAME:=SolidRun Cubox-i boards
|
||||
UBOOT_IMAGE:=SPL u-boot.img
|
||||
UBOOT_MAKE_FLAGS:=SPL u-boot.img
|
||||
endef
|
||||
|
||||
define U-Boot/mx6sabresd
|
||||
NAME:=SABRE i.MX6Quad board
|
||||
endef
|
||||
|
@ -54,6 +60,7 @@ define U-Boot/wandboard
|
|||
endef
|
||||
|
||||
UBOOT_TARGETS := \
|
||||
mx6cuboxi \
|
||||
mx6sabresd \
|
||||
nitrogen6dl \
|
||||
nitrogen6dl2g \
|
||||
|
|
|
@ -10,6 +10,7 @@ board=$(board_name)
|
|||
board_config_update
|
||||
|
||||
case "$board" in
|
||||
cubox-i |\
|
||||
*gw51xx |\
|
||||
*gw52xx |\
|
||||
*gw5904)
|
||||
|
|
|
@ -54,6 +54,11 @@ imx6_board_detect() {
|
|||
name="gw5904"
|
||||
;;
|
||||
|
||||
"SolidRun Cubox-i Solo/DualLite" |\
|
||||
"SolidRun Cubox-i Dual/Quad")
|
||||
name="cubox-i"
|
||||
;;
|
||||
|
||||
"Wandboard i.MX6 Dual Lite Board")
|
||||
name="wandboard"
|
||||
;;
|
||||
|
|
|
@ -51,6 +51,13 @@ define Build/bootfs.tar.gz
|
|||
-czvf $@ .
|
||||
endef
|
||||
|
||||
define Build/boot-scr
|
||||
mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
|
||||
-n '$(DEVICE_ID) OpenWrt bootscript' \
|
||||
-d ./bootscript-$(DEVICE_NAME) \
|
||||
$(BIN_DIR)/boot.scr
|
||||
endef
|
||||
|
||||
#################################################
|
||||
# Devices
|
||||
#################################################
|
||||
|
@ -123,4 +130,13 @@ define Device/wandboard
|
|||
endef
|
||||
TARGET_DEVICES += wandboard
|
||||
|
||||
define Device/cubox-i
|
||||
KERNEL := kernel-bin | install-dtb | boot-scr
|
||||
DEVICE_NAME := cubox
|
||||
DEVICE_TITLE := SolidRun CuBox-i
|
||||
DEVICE_PACKAGES := u-boot-mx6cuboxi kmod-drm-imx kmod-drm-imx-hdmi kmod-usb-hid
|
||||
DEVICE_DTS := imx6q-cubox-i imx6dl-cubox-i
|
||||
endef
|
||||
TARGET_DEVICES += cubox-i
|
||||
|
||||
$(eval $(call BuildImage))
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
echo "CuBox OpenWrt Boot script"
|
||||
|
||||
# Set console variable for both UART and HDMI
|
||||
setenv console console=ttymxc0,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32
|
||||
|
||||
# Find correct dtb
|
||||
if test ${board_name} = CUBOXI && test ${board_rev} = MX6DL; then
|
||||
setenv fdt_name imx6dl.dtb;
|
||||
elif test ${board_name} = CUBOXI && test ${board_rev} = MX6Q; then
|
||||
setenv fdt_name imx6q-cubox-i.dtb;
|
||||
fi
|
||||
|
||||
# Set correct devtype and partition
|
||||
if test ${devtype} != mmc; then setenv devtype mmc; fi
|
||||
if mmc dev 0; then
|
||||
setenv mmcdev 0
|
||||
elif mmc dev 1; then
|
||||
setenv mmcdev 1
|
||||
fi
|
||||
|
||||
# Boot from the SD card is supported at the moment
|
||||
setenv bootargs "${console} root=/dev/mmcblk1p1 rw rootwait"
|
||||
mmc dev ${mmcdev}
|
||||
load ${devtype} ${mmcdev}:${devplist} ${kernel_addr_r} /boot/openwrt-imx6-cubox-i-uImage
|
||||
load ${devtype} ${mmcdev}:${devplist} ${fdt_addr_r} /boot/openwrt-imx6-${fdt_name}
|
||||
bootz ${kernel_addr_r} - ${fdt_addr_r}
|
Loading…
Reference in New Issue