From da5001475c093f296248fe6842d9188d4f64fd4e Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 19 Nov 2014 14:09:10 +0000 Subject: [PATCH] gemini: add basic nas4220 board support Few notes: - redboot partitions are unusable - redboot declares only 16M of RAM, hence the mem arg in cmdline and separate kernel config - boots fine but only ethernet works for now - split wiliboard and raidsonic boards into different subtargets Signed-off-by: Roman Yeryomin SVN-Revision: 43319 --- target/linux/gemini/Makefile | 1 + target/linux/gemini/image/ImageInfo-ib4220 | 19 +++++++++++++ target/linux/gemini/image/Makefile | 32 ++++++++++++++++++++-- target/linux/gemini/raidsonic/config-3.10 | 5 ++++ target/linux/gemini/raidsonic/target.mk | 11 ++++++++ target/linux/gemini/wiligear/target.mk | 10 +++++++ 6 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 target/linux/gemini/image/ImageInfo-ib4220 create mode 100644 target/linux/gemini/raidsonic/config-3.10 create mode 100644 target/linux/gemini/raidsonic/target.mk create mode 100644 target/linux/gemini/wiligear/target.mk diff --git a/target/linux/gemini/Makefile b/target/linux/gemini/Makefile index 7eb751ec703..2c10af22064 100644 --- a/target/linux/gemini/Makefile +++ b/target/linux/gemini/Makefile @@ -9,6 +9,7 @@ include $(TOPDIR)/rules.mk ARCH:=arm BOARD:=gemini BOARDNAME:=Cortina Systems CS351x +SUBTARGETS:=raidsonic wiligear FEATURES:=squashfs pci CPU_TYPE:=fa526 MAINTAINER:=Imre Kaloz diff --git a/target/linux/gemini/image/ImageInfo-ib4220 b/target/linux/gemini/image/ImageInfo-ib4220 new file mode 100644 index 00000000000..68fca5bb933 --- /dev/null +++ b/target/linux/gemini/image/ImageInfo-ib4220 @@ -0,0 +1,19 @@ +Distribution="OpenWrt" +Layout="Compact" +UpgradeImages="zImage rd.gz hddapp.tgz" +productName="IB-NAS4220-B" +hardwareName="MP-LNU23SL" +productVendor=" " +VendorID="macpower" +ProductID="pddlan" +UpgradeVersion="300" +ExtraVersion="" +manufacturerURL=" " +Description="IB-NAS4220-B" +hostname="IB-NAS4220-B" +softwareVersion="3.0" +TSS="enabled" +DIRECT_MODE="disabled" +Raid_Support="raid0_raid1_raid5_linear" +RaidTestDiskSize="0" +Raid_Show_Disk="2" diff --git a/target/linux/gemini/image/Makefile b/target/linux/gemini/image/Makefile index 85da8886c8d..d4d0aac0a6e 100644 --- a/target/linux/gemini/image/Makefile +++ b/target/linux/gemini/image/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2009-2010 OpenWrt.org +# Copyright (C) 2009-2014 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -7,6 +7,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk +ifeq ($(SUBTARGET),wiligear) define Image/Prepare # WBD111: mach id 1690 (0x69a) echo -en "\x06\x1c\xa0\xe3\x9a\x10\x81\xe3" > $(KDIR)/$(IMG_PREFIX)-wbd111-zImage @@ -15,7 +16,17 @@ define Image/Prepare echo -en "\x0a\x1c\xa0\xe3\xc1\x10\x81\xe3" > $(KDIR)/$(IMG_PREFIX)-wbd222-zImage cat $(KDIR)/zImage >> $(KDIR)/$(IMG_PREFIX)-wbd222-zImage endef +endif +ifeq ($(SUBTARGET),raidsonic) +define Image/Prepare +# NAS4220: mach id 2038 (0x7F6) + echo -en "\x07\x1c\xa0\xe3\xf6\x10\x81\xe3" > $(BIN_DIR)/$(IMG_PREFIX)-nas4220-zImage + cat $(KDIR)/zImage >> $(BIN_DIR)/$(IMG_PREFIX)-nas4220-zImage +endef +endif + +ifeq ($(SUBTARGET),wiligear) define Image/BuildKernel # workaround the bootloader's bug with extra nops echo -en "\x00\x00\xa0\xe1\x00\x00\xa0\xe1\x00\x00\xa0\xe1\x00\x00\xa0\xe1" > $(BIN_DIR)/$(IMG_PREFIX)-wbd111-zImage @@ -23,6 +34,7 @@ define Image/BuildKernel echo -en "\x00\x00\xa0\xe1\x00\x00\xa0\xe1\x00\x00\xa0\xe1\x00\x00\xa0\xe1" > $(BIN_DIR)/$(IMG_PREFIX)-wbd222-zImage cat $(KDIR)/$(IMG_PREFIX)-wbd222-zImage >> $(BIN_DIR)/$(IMG_PREFIX)-wbd222-zImage endef +endif define Image/Build/jffs2-64k dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(1).img bs=64k conv=sync @@ -37,9 +49,9 @@ define Image/Build/squashfs dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(1).img bs=128k conv=sync endef +ifeq ($(SUBTARGET),wiligear) define Image/Build $(call Image/Build/$(1),$(1)) - -$(STAGING_DIR_HOST)/bin/mkfwimage2 \ -m GEOS -f 0x30000000 -z \ -v WILI-S.WILIBOARD.v5.00.SL3512.OpenWrt.00000.000000.000000 \ @@ -54,5 +66,21 @@ define Image/Build -p Kernel:0x020000:0x100000:0:0:$(BIN_DIR)/$(IMG_PREFIX)-wbd222-zImage \ -p Ramdisk:0x120000:0x500000:0:0:$(BIN_DIR)/$(IMG_PREFIX)-$(1).img endef +endif + +ifeq ($(SUBTARGET),raidsonic) +define Image/Build + $(call Image/Build/$(1),$(1)) + dd if=$(BIN_DIR)/$(IMG_PREFIX)-$(1).img of=$(BIN_DIR)/rd.gz bs=6M count=1 +# dd if=/dev/zero of=$(BIN_DIR)/hddapp.tgz bs=6M count=1 + dd if=$(BIN_DIR)/$(IMG_PREFIX)-$(1).img of=$(BIN_DIR)/hddapp.tgz bs=6M count=1 seek=1 + cp $(BIN_DIR)/$(IMG_PREFIX)-nas4220-zImage $(BIN_DIR)/zImage + cp ./ImageInfo-ib4220 $(BIN_DIR)/ImageInfo + (cd $(BIN_DIR); tar -czf sysupgrade-ib4220.tar.gz ImageInfo zImage rd.gz hddapp.tgz) + mv $(BIN_DIR)/rd.gz $(BIN_DIR)/$(IMG_PREFIX)-nas4220-rd.gz + mv $(BIN_DIR)/hddapp.tgz $(BIN_DIR)/$(IMG_PREFIX)-nas4220-hddapp.tgz + rm -f $(BIN_DIR)/zImage $(BIN_DIR)/ImageInfo +endef +endif $(eval $(call BuildImage)) diff --git a/target/linux/gemini/raidsonic/config-3.10 b/target/linux/gemini/raidsonic/config-3.10 new file mode 100644 index 00000000000..91605238b43 --- /dev/null +++ b/target/linux/gemini/raidsonic/config-3.10 @@ -0,0 +1,5 @@ +CONFIG_CMDLINE="rootfstype=squashfs,jffs2 noinitrd console=ttyS0,19200 mem=128M mtdparts=physmap-flash.0:128k(BOOT),3072k(Kern),6144k(Ramdisk),6144k(Application),128k(VCTL),640k(CurConf),128k(FIS-directory),12288k@0x320000(rootfs),15360k@0x20000(firmware) root=/dev/mtdblock7" +CONFIG_MACH_NAS4220B=y +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_SPLIT_FIRMWARE=y diff --git a/target/linux/gemini/raidsonic/target.mk b/target/linux/gemini/raidsonic/target.mk new file mode 100644 index 00000000000..1e4320e8631 --- /dev/null +++ b/target/linux/gemini/raidsonic/target.mk @@ -0,0 +1,11 @@ +# +# Copyright (C) 2014 OpenWrt.org +# + +SUBTARGET:=raidsonic +BOARDNAME:=Raidsonic NAS42x0 +FEATURES+=jffs2 + +define Target/Description + Build firmware images for Raidsonic NAS4220. +endef diff --git a/target/linux/gemini/wiligear/target.mk b/target/linux/gemini/wiligear/target.mk new file mode 100644 index 00000000000..97cab18590c --- /dev/null +++ b/target/linux/gemini/wiligear/target.mk @@ -0,0 +1,10 @@ +# +# Copyright (C) 2014 OpenWrt.org +# + +SUBTARGET:=wiligear +BOARDNAME:=Wiligear WBD-222/111 + +define Target/Description + Build firmware images for Wiligear WBD-222 and WBD-111 boards. +endef -- 2.30.2