ar71xx: mikrotik: cleanup nand image build code
authorMathias Kresin <dev@kresin.me>
Wed, 4 Jul 2018 04:39:05 +0000 (06:39 +0200)
committerMathias Kresin <dev@kresin.me>
Sat, 7 Jul 2018 19:07:40 +0000 (21:07 +0200)
Use the LOADER_TYPE variable to specify that we need the elf preloader
and append the loader via the corresponding build recipe. It allows to
enable initramfs images again for mikrotik NAND images, which caused a
build error before.

Add the minor header only to the kernel of the sysupgrade images, as it
is only required for the bootloader to find the kernel on flash.

Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/ar71xx/image/mikrotik.mk

index a0a7b7a2dd8ff035c78478c06c17565c954866c7..3238a885a829a3baa555b6e7e05bb5cde65f87a0 100644 (file)
@@ -2,44 +2,50 @@ define Device/mikrotik
   PROFILES := Default
   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
   BOARD_NAME := routerboard
-  KERNEL_INITRAMFS :=
-  KERNEL_NAME := loader-generic.elf
-  KERNEL := kernel-bin | kernel2minor -s 2048 -e -c
-  FILESYSTEMS := squashfs
-  IMAGES := sysupgrade.bin
-  IMAGE/sysupgrade.bin := sysupgrade-tar
+  LOADER_TYPE := elf
+  KERNEL_NAME := vmlinux.bin.lzma
+  KERNEL := kernel-bin | loader-kernel
+  KERNEL_INITRAMFS_NAME := vmlinux-initramfs.bin.lzma
+  MIKROTIK_CHUNKSIZE :=
+  IMAGE/sysupgrade.bin/squashfs :=
 endef
+DEVICE_VARS += MIKROTIK_CHUNKSIZE
 
-define Device/nand-64m
+define Device/mikrotik-nand
   $(Device/mikrotik)
+  IMAGE/sysupgrade.bin/squashfs = append-kernel | \
+       kernel2minor -s $$(MIKROTIK_CHUNKSIZE) -e -c | sysupgrade-tar kernel=$$$$@
+endef
+
+define Device/nand-64m
+  $(Device/mikrotik-nand)
+  MIKROTIK_CHUNKSIZE := 512
   DEVICE_TITLE := MikroTik RouterBoard (64 MB NAND)
-  KERNEL := kernel-bin | kernel2minor -s 512 -e -c
 endef
 TARGET_DEVICES += nand-64m
 
 define Device/nand-large
-  $(Device/mikrotik)
+  $(Device/mikrotik-nand)
+  MIKROTIK_CHUNKSIZE := 2048
   DEVICE_TITLE := MikroTik RouterBoard (>= 128 MB NAND)
-  KERNEL := kernel-bin | kernel2minor -s 2048 -e -c
 endef
 TARGET_DEVICES += nand-large
 
 define Device/nand-large-ac
-  $(Device/mikrotik)
+  $(Device/mikrotik-nand)
+  MIKROTIK_CHUNKSIZE := 2048
   DEVICE_TITLE := MikroTik RouterBoard (>= 128 MB NAND, 802.11ac)
   DEVICE_PACKAGES += kmod-ath10k ath10k-firmware-qca988x
-  KERNEL := kernel-bin | kernel2minor -s 2048 -e -c
   SUPPORTED_DEVICES := rb-921gs-5hpacd-r2
 endef
 TARGET_DEVICES += nand-large-ac
 
 define Device/rb-nor-flash-16M
+  $(Device/mikrotik)
   DEVICE_TITLE := MikroTik RouterBoard (16 MB SPI NOR)
   DEVICE_PACKAGES := rbcfg rssileds -nand-utils kmod-ledtrig-gpio
   IMAGE_SIZE := 16000k
-  LOADER_TYPE := elf
   KERNEL_INSTALL := 1
-  KERNEL := kernel-bin | lzma | loader-kernel
   SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-750p-pbr2 rb-911-2hn rb-911-5hn rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-map-2nd rb-mapl-2nd rb-wap-2nd rb-wapr-2nd
   IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | pad-to $$$$(BLOCKSIZE) | \
        append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)