imx6: extend cubox support to hummingboard, add support for building full images

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2018-08-26 20:04:08 +02:00
parent 8c41f1f81c
commit ded905ce43
3 changed files with 54 additions and 12 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
ARCH:=arm ARCH:=arm
BOARD:=imx6 BOARD:=imx6
BOARDNAME:=Freescale i.MX 6 BOARDNAME:=Freescale i.MX 6
FEATURES:=audio display fpu gpio pcie rtc usb usbgadget squashfs targz nand ubifs FEATURES:=audio display fpu gpio pcie rtc usb usbgadget squashfs targz nand ubifs boot-part rootfs-part
CPU_TYPE:=cortex-a9 CPU_TYPE:=cortex-a9
CPU_SUBTYPE:=neon CPU_SUBTYPE:=neon
MAINTAINER:=Luka Perkov <luka@openwrt.org> MAINTAINER:=Luka Perkov <luka@openwrt.org>

View File

@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/image.mk
# Images # Images
################################################# #################################################
DEVICE_VARS += MKUBIFS_OPTS DEVICE_VARS += MKUBIFS_OPTS UBOOT BOOT_SCRIPT
define Build/boot-overlay define Build/boot-overlay
rm -rf $@.boot rm -rf $@.boot
@ -58,6 +58,38 @@ define Build/boot-scr
$(BIN_DIR)/boot.scr $(BIN_DIR)/boot.scr
endef endef
define Build/imx6-sdcard
rm -rf $@.boot
mkdir -p $@.boot
$(CP) $(STAGING_DIR_IMAGE)/$(UBOOT)-u-boot.img $@.boot/u-boot.img
$(CP) $(IMAGE_KERNEL) $@.boot/uImage
$(foreach dts,$(DEVICE_DTS), \
$(CP) \
$(DTS_DIR)/$(dts).dtb \
$@.boot/;
)
mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n '$(DEVICE_ID) OpenWrt bootscript' \
-d $(BOOT_SCRIPT) \
$@.boot/boot.scr
cp $@ $@.fs
$(SCRIPT_DIR)/gen_image_generic.sh $@ \
$(CONFIG_TARGET_KERNEL_PARTSIZE) \
$@.boot \
$(CONFIG_TARGET_ROOTFS_PARTSIZE) \
$@.fs \
1024
dd if=$(STAGING_DIR_IMAGE)/$(UBOOT)-SPL of=$@ bs=1024 seek=1 conv=notrunc
rm -rf $@.boot $@.fs
endef
################################################# #################################################
# Devices # Devices
################################################# #################################################
@ -72,7 +104,6 @@ define Device/Default
KERNEL_NAME := zImage KERNEL_NAME := zImage
KERNEL_PREFIX := $$(IMAGE_PREFIX) KERNEL_PREFIX := $$(IMAGE_PREFIX)
KERNEL := kernel-bin | uImage none KERNEL := kernel-bin | uImage none
IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
IMAGES := IMAGES :=
endef endef
@ -103,6 +134,7 @@ define Device/ventana
kobs-ng kobs-ng
KERNEL += | boot-overlay KERNEL += | boot-overlay
IMAGES := nand.ubi bootfs.tar.gz IMAGES := nand.ubi bootfs.tar.gz
IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
UBINIZE_PARTS = boot=$$(KDIR_KERNEL_IMAGE).boot.ubifs=15 UBINIZE_PARTS = boot=$$(KDIR_KERNEL_IMAGE).boot.ubifs=15
IMAGE/nand.ubi := append-ubi IMAGE/nand.ubi := append-ubi
IMAGE/bootfs.tar.gz := bootfs.tar.gz | install-dtb IMAGE/bootfs.tar.gz := bootfs.tar.gz | install-dtb
@ -131,11 +163,16 @@ endef
TARGET_DEVICES += wandboard TARGET_DEVICES += wandboard
define Device/cubox-i define Device/cubox-i
KERNEL := kernel-bin | install-dtb | boot-scr KERNEL := kernel-bin | install-dtb
UBOOT := mx6cuboxi
BOOT_SCRIPT = bootscript-cubox
DEVICE_NAME := cubox DEVICE_NAME := cubox
DEVICE_TITLE := SolidRun CuBox-i DEVICE_TITLE := SolidRun CuBox-i
DEVICE_PACKAGES := u-boot-mx6cuboxi kmod-drm-imx kmod-drm-imx-hdmi kmod-usb-hid DEVICE_PACKAGES := u-boot-mx6cuboxi kmod-drm-imx kmod-drm-imx-hdmi kmod-usb-hid
DEVICE_DTS := imx6q-cubox-i imx6dl-cubox-i DEVICE_DTS := imx6q-cubox-i imx6dl-cubox-i imx6q-hummingboard imx6dl-hummingboard
IMAGES := combined.bin
FILESYSTEMS := squashfs
IMAGE/combined.bin := append-rootfs | pad-extra 128k | imx6-sdcard
endef endef
TARGET_DEVICES += cubox-i TARGET_DEVICES += cubox-i

View File

@ -4,10 +4,15 @@ echo "CuBox OpenWrt Boot script"
setenv console console=ttymxc0,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 setenv console console=ttymxc0,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32
# Find correct dtb # Find correct dtb
if test ${board_name} = CUBOXI && test ${board_rev} = MX6DL; then if test ${board_rev} = MX6DL; then
setenv fdt_name imx6dl.dtb; setenv fdt_soc_type imx6dl;
elif test ${board_name} = CUBOXI && test ${board_rev} = MX6Q; then elif test ${board_rev} = MX6Q; then
setenv fdt_name imx6q-cubox-i.dtb; setenv fdt_soc_type imx6q;
fi
if test ${board_name} = CUBOXI; then
setenv fdt_name ${fdt_soc_type}-cubox-i.dtb;
elif test ${board_name} = HUMMINGBOARD; then
setenv fdt_name ${fdt_soc_type}-hummingboard.dtb;
fi fi
# Set correct devtype and partition # Set correct devtype and partition
@ -19,8 +24,8 @@ elif mmc dev 1; then
fi fi
# Boot from the SD card is supported at the moment # Boot from the SD card is supported at the moment
setenv bootargs "${console} root=/dev/mmcblk1p1 rw rootwait" setenv bootargs "${console} root=/dev/mmcblk1p2 rw rootwait"
mmc dev ${mmcdev} mmc dev ${mmcdev}
load ${devtype} ${mmcdev}:${devplist} ${kernel_addr_r} /boot/openwrt-imx6-cubox-i-uImage load ${devtype} ${mmcdev}:${devplist} ${kernel_addr_r} /uImage
load ${devtype} ${mmcdev}:${devplist} ${fdt_addr_r} /boot/openwrt-imx6-${fdt_name} load ${devtype} ${mmcdev}:${devplist} ${fdt_addr_r} /${fdt_name}
bootz ${kernel_addr_r} - ${fdt_addr_r} bootz ${kernel_addr_r} - ${fdt_addr_r}