diff mbox

[OpenWrt-Devel,v3,1/2] include/image.mk: Introduce generic option to wrap kernel into JFFS2

Message ID 1446827141-31327-2-git-send-email-benjamin@sipsolutions.net
State Accepted
Headers show

Commit Message

Benjamin Berg Nov. 6, 2015, 4:25 p.m. UTC
Some devices require the kernel to be in a JFFS2 file system. Make the
support for this more generic so that it can be used by other devices.

Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
---
 include/image.mk                   | 15 +++++++++++++++
 target/linux/ar71xx/image/Makefile | 19 +++----------------
 2 files changed, 18 insertions(+), 16 deletions(-)

Comments

Felix Fietkau Nov. 6, 2015, 4:46 p.m. UTC | #1
On 2015-11-06 17:25, Benjamin Berg wrote:
> Some devices require the kernel to be in a JFFS2 file system. Make the
> support for this more generic so that it can be used by other devices.
> 
> Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
> ---
>  include/image.mk                   | 15 +++++++++++++++
>  target/linux/ar71xx/image/Makefile | 19 +++----------------
>  2 files changed, 18 insertions(+), 16 deletions(-)
> 
> diff --git a/include/image.mk b/include/image.mk
> index 43980bc..753bd48 100644
> --- a/include/image.mk
> +++ b/include/image.mk
> @@ -1135,15 +1121,16 @@ endef
>  TARGET_DEVICES += ubnt-rs ubnt-rspro ubnt-ls-sr71
>  
>  define Device/ubnt-uap-pro
> +  KERNEL_SIZE := 1536k
>    IMAGE_SIZE := 15744k
>    MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1536k(kernel),14208k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware)
>    UBNT_TYPE := BZ
>    UBNT_CHIP := ar934x
>    BOARDNAME := UAP-PRO
>    DEVICE_PROFILE := UBNT UAPPRO
> -  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | mkubntkernelimage
> +  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 kernel0
>    IMAGES := sysupgrade.bin factory.bin
> -  IMAGE/sysupgrade.bin = append-kernel 1536k | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
> +  IMAGE/sysupgrade.bin = append-kernel $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
>    IMAGE/factory.bin = $$(IMAGE/sysupgrade.bin) | mkubntimage2
>  endef
Why did you add the KERNEL_SIZE variable here if you only use it in one
place?

- Felix
Benjamin Berg Nov. 6, 2015, 4:54 p.m. UTC | #2
On Fr, 2015-11-06 at 17:46 +0100, Felix Fietkau wrote:
> On 2015-11-06 17:25, Benjamin Berg wrote:
> > Some devices require the kernel to be in a JFFS2 file system. Make the
> > support for this more generic so that it can be used by other devices.
> > 
> > Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
> > ---
> >  include/image.mk                   | 15 +++++++++++++++
> >  target/linux/ar71xx/image/Makefile | 19 +++----------------
> >  2 files changed, 18 insertions(+), 16 deletions(-)
> > 
> > diff --git a/include/image.mk b/include/image.mk
> > index 43980bc..753bd48 100644
> > --- a/include/image.mk
> > +++ b/include/image.mk
> > @@ -1135,15 +1121,16 @@ endef
> >  TARGET_DEVICES += ubnt-rs ubnt-rspro ubnt-ls-sr71
> >  
> >  define Device/ubnt-uap-pro
> > +  KERNEL_SIZE := 1536k
> >    IMAGE_SIZE := 15744k
> >    MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1536k(kernel),14208k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware)
> >    UBNT_TYPE := BZ
> >    UBNT_CHIP := ar934x
> >    BOARDNAME := UAP-PRO
> >    DEVICE_PROFILE := UBNT UAPPRO
> > -  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | mkubntkernelimage
> > +  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 kernel0
> >    IMAGES := sysupgrade.bin factory.bin
> > -  IMAGE/sysupgrade.bin = append-kernel 1536k | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
> > +  IMAGE/sysupgrade.bin = append-kernel $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
> >    IMAGE/factory.bin = $$(IMAGE/sysupgrade.bin) | mkubntimage2
> >  endef
> Why did you add the KERNEL_SIZE variable here if you only use it in one
> place?

As I understand it the "Device/Build/kernel" define will check that the
kernel fits into KERNEL_SIZE if the variable is set. So while this is a
relatively unrelated change it should help to catch issues.

Benjamin
diff mbox

Patch

diff --git a/include/image.mk b/include/image.mk
index 43980bc..753bd48 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -347,6 +347,21 @@  define Build/gzip
 	@mv $@.new $@
 endef
 
+define Build/jffs2
+	rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 && \
+		mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(1)) && \
+		cp $@ $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$(1) && \
+		$(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad \
+			$(if $(CONFIG_BIG_ENDIAN),--big-endian,--little-endian) \
+			--squash-uids -v -e $(patsubst %k,%KiB,$(BLOCKSIZE)) \
+			-o $@.new \
+			-d $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 \
+			2>&1 1>/dev/null | awk '/^.+$$$$/' && \
+		$(STAGING_DIR_HOST)/bin/padjffs2 $@.new -J $(patsubst %k,,$(BLOCKSIZE))
+	-rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/
+	@mv $@.new $@
+endef
+
 define Build/kernel-bin
 	rm -f $@
 	cp $^ $@
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index 7bf2f27..15cf2c6 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -140,20 +140,6 @@  endef
 
 DEVICE_VARS += UBNT_BOARD UBNT_CHIP UBNT_TYPE
 
-define Build/mkubntkernelimage
-	rm -rf $(KDIR_TMP)/ubnt-$(KERNEL_IMAGE)/image && \
-		mkdir -p $(KDIR_TMP)/ubnt-$(KERNEL_IMAGE)/image && \
-		cp $@ $(KDIR_TMP)/ubnt-$(KERNEL_IMAGE)/image/kernel0 && \
-		$(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
-			--pad --big-endian --squash-uids -v -e 64KiB \
-			-o $@.new \
-			-d $(KDIR_TMP)/ubnt-$(KERNEL_IMAGE)/image \
-			2>&1 && \
-		$(STAGING_DIR_HOST)/bin/padjffs2 $@.new -J 64
-	-rm -rf $(KDIR_TMP)/ubnt-$(KERNEL_IMAGE)/image
-	@mv $@.new $@
-endef
-
 define Device/Default
   BOARDNAME :=
   DEVICE_PROFILE = $$(BOARDNAME)
@@ -1135,15 +1121,16 @@  endef
 TARGET_DEVICES += ubnt-rs ubnt-rspro ubnt-ls-sr71
 
 define Device/ubnt-uap-pro
+  KERNEL_SIZE := 1536k
   IMAGE_SIZE := 15744k
   MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1536k(kernel),14208k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware)
   UBNT_TYPE := BZ
   UBNT_CHIP := ar934x
   BOARDNAME := UAP-PRO
   DEVICE_PROFILE := UBNT UAPPRO
-  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | mkubntkernelimage
+  KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 kernel0
   IMAGES := sysupgrade.bin factory.bin
-  IMAGE/sysupgrade.bin = append-kernel 1536k | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
+  IMAGE/sysupgrade.bin = append-kernel $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
   IMAGE/factory.bin = $$(IMAGE/sysupgrade.bin) | mkubntimage2
 endef