aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/archs38/Makefile2
-rw-r--r--target/linux/archs38/generic/profiles/01-minimal.mk15
-rw-r--r--target/linux/archs38/generic/profiles/02-axs103.mk16
-rw-r--r--target/linux/archs38/generic/profiles/03-nsim_hs.mk15
-rw-r--r--target/linux/archs38/generic/target.mk8
-rw-r--r--target/linux/archs38/image/Config.in5
-rw-r--r--target/linux/archs38/image/Makefile80
-rwxr-xr-xtarget/linux/archs38/image/gen_axs10x_sdcard_img.sh33
-rw-r--r--target/linux/archs38/image/uEnv.txt7
-rw-r--r--target/linux/archs38/ramdisk/profiles/00-default.mk15
-rw-r--r--target/linux/archs38/ramdisk/target.mk8
-rw-r--r--target/linux/archs38/sd/profiles/00-default.mk (renamed from target/linux/archs38/generic/profiles/00-default.mk)0
-rw-r--r--target/linux/archs38/sd/target.mk8
13 files changed, 132 insertions, 80 deletions
diff --git a/target/linux/archs38/Makefile b/target/linux/archs38/Makefile
index 166d3d5540..cbdbfba34a 100644
--- a/target/linux/archs38/Makefile
+++ b/target/linux/archs38/Makefile
@@ -11,7 +11,7 @@ CPU_TYPE:=archs
BOARD:=archs38
BOARDNAME:=Synopsys DesignWare ARC HS38
MAINTAINER:=Alexey Brodkin <abrodkin@synopsys.com>
-SUBTARGETS:=generic
+SUBTARGETS:=sd ramdisk
KERNEL_PATCHVER:=4.4
diff --git a/target/linux/archs38/generic/profiles/01-minimal.mk b/target/linux/archs38/generic/profiles/01-minimal.mk
deleted file mode 100644
index fe8d8c3a59..0000000000
--- a/target/linux/archs38/generic/profiles/01-minimal.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Copyright (C) 2016 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Profile/Minimal
- NAME:=Minimal Profile (no drivers)
-endef
-
-define Profile/Minimal/Description
- Minimal package set compatible with most boards.
-endef
-$(eval $(call Profile,Minimal))
diff --git a/target/linux/archs38/generic/profiles/02-axs103.mk b/target/linux/archs38/generic/profiles/02-axs103.mk
deleted file mode 100644
index 7a89b21232..0000000000
--- a/target/linux/archs38/generic/profiles/02-axs103.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2016 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Profile/axs103
- NAME:=Synopsys DesignWare AXS103
- PACKAGES:= kmod-usb-core kmod-usb-ohci kmod-ath9k-htc wpad-mini
-endef
-
-define Profile/axs103/Description
- Package set compatible with hardware using Synopsys DesignWare AXS103 boards.
-endef
-$(eval $(call Profile,axs103))
diff --git a/target/linux/archs38/generic/profiles/03-nsim_hs.mk b/target/linux/archs38/generic/profiles/03-nsim_hs.mk
deleted file mode 100644
index cebb0a66f4..0000000000
--- a/target/linux/archs38/generic/profiles/03-nsim_hs.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Copyright (C) 2016 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Profile/nsim_hs
- NAME:=Synopsys nSIM
-endef
-
-define Profile/nsim_hs/Description
- Package set compatible with hardware using Synopsys nSIM HS boards.
-endef
-$(eval $(call Profile,nsim_hs))
diff --git a/target/linux/archs38/generic/target.mk b/target/linux/archs38/generic/target.mk
deleted file mode 100644
index 19b310e2c0..0000000000
--- a/target/linux/archs38/generic/target.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-BOARDNAME:=Generic
-FEATURES += ramdisk usb
-
-define Target/Description
- Build firmware images for generic ARC HS38 based boards.
-endef
-
-
diff --git a/target/linux/archs38/image/Config.in b/target/linux/archs38/image/Config.in
new file mode 100644
index 0000000000..e51db8338b
--- /dev/null
+++ b/target/linux/archs38/image/Config.in
@@ -0,0 +1,5 @@
+config AXS10X_SD_BOOT_PARTSIZE
+ int "Boot (SD Card) filesystem partition size (in MB)"
+ depends on TARGET_archs38
+ default 20
+
diff --git a/target/linux/archs38/image/Makefile b/target/linux/archs38/image/Makefile
index f5dce288bd..505ed02625 100644
--- a/target/linux/archs38/image/Makefile
+++ b/target/linux/archs38/image/Makefile
@@ -14,43 +14,73 @@ define Build/calculate-ep
$(eval KERNEL_ENTRY=$(shell $(KERNEL_CROSS)readelf -h $(LINUX_DIR)/vmlinux | grep "Entry point address" | grep -o 0x.*))
endef
-define Build/patch-dtb
- $(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,$@.dtb)
- $(STAGING_DIR_HOST)/bin/patch-dtb $@ $@.dtb
+define Build/build-dtb
+ $(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,$(DTS_DIR)/$(DEVICE_DTS).dtb)
endef
-# Shared device definition: applies to every defined device
-define Device/Default
- PROFILES = Default $$(DEVICE_PROFILE)
- KERNEL_DEPENDS = $$(wildcard ../dts/$$(DEVICE_DTS).dts)
- DEVICE_PROFILE :=
+define Build/patch-dtb
+ $(STAGING_DIR_HOST)/bin/patch-dtb $@ $(DTS_DIR)/$(DEVICE_DTS).dtb
endef
-DEVICE_VARS += DEVICE_PROFILE
+ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
+# Root FS built-in
define Device/vmlinux
- KERNEL_SUFFIX := .elf
- KERNEL_INITRAMFS := kernel-bin | patch-dtb
- KERNEL_INITRAMFS_NAME = vmlinux-initramfs.elf
-endef
-
-define Device/uImage
- KERNEL_SUFFIX := -uImage
- KERNEL_INITRAMFS := kernel-bin | patch-dtb | calculate-ep | uImage none
- KERNEL_LOADADDR := 0x80000000
+ KERNEL_SUFFIX := .elf
+ KERNEL := kernel-bin | build-dtb | patch-dtb
+ KERNEL_INITRAMFS_NAME = vmlinux-initramfs.elf
endef
-define Device/axs103
- $(call Device/uImage)
- DEVICE_PROFILE := axs103
- DEVICE_DTS := axs103_idu
-endef
-TARGET_DEVICES += axs103
-
define Device/nsim_hs
$(call Device/vmlinux)
DEVICE_PROFILE := nsim_hs
DEVICE_DTS := nsim_hs_idu
endef
TARGET_DEVICES += nsim_hs
+else
+# Root FS on SD-card
+KERNEL_LOADADDR := 0x80000000
+DEVICE_DTS_LIST:= axs103_idu
+FAT32_BLOCK_SIZE=1024
+FAT32_BLOCKS=$(shell echo $$(($(CONFIG_AXS10X_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
+
+define Image/Build/SDCard
+ rm -f $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img
+ mkdosfs $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img -C $(FAT32_BLOCKS)
+ mkimage -C none -A arc -T script -d uEnv.txt $(BIN_DIR)/uEnv.scr
+ mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img $(BIN_DIR)/uEnv.scr ::boot.scr
+ mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img $(DTS_DIR)/*.dtb ::
+ mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img $(BIN_DIR)/$(IMG_PREFIX)-uImage ::uImage
+
+ ./gen_axs10x_sdcard_img.sh \
+ $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE)-sdcard-vfat-$(1).img \
+ $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img \
+ $(KDIR)/root.$(1) \
+ $(CONFIG_AXS10X_SD_BOOT_PARTSIZE) \
+ $(CONFIG_TARGET_ROOTFS_PARTSIZE)
+
+ifneq ($(CONFIG_TARGET_IMAGES_GZIP),)
+ gzip -f9n $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE)-sdcard-vfat-$(1).img
+endif
+endef
+
+define Image/BuildKernel
+ # Build unified uImage
+ $(call Build/calculate-ep)
+ $(call Image/BuildKernel/MkuImage, \
+ none, $(KERNEL_LOADADDR), $(KERNEL_ENTRY), \
+ $(KDIR)/vmlinux, \
+ $(BIN_DIR)/$(IMG_PREFIX)-uImage \
+ )
+
+ # Build .dtb for all boards we may run on
+ $(foreach DEVICE_DTS,$(shell echo $(DEVICE_DTS_LIST)), $(call Build/build-dtb))
+endef
+
+define Image/Build
+ $(call Image/Build/$(1),$(1))
+ $(call Image/Build/SDCard,$(1))
+ dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
+endef
+endif
$(eval $(call BuildImage))
diff --git a/target/linux/archs38/image/gen_axs10x_sdcard_img.sh b/target/linux/archs38/image/gen_axs10x_sdcard_img.sh
new file mode 100755
index 0000000000..9a6f93d0d9
--- /dev/null
+++ b/target/linux/archs38/image/gen_axs10x_sdcard_img.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+#
+# Copyright (C) 2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+set -x
+[ $# -eq 5 ] || {
+ echo "SYNTAX: $0 <file> <bootfs image> <rootfs image> <bootfs size> <rootfs size>"
+ exit 1
+}
+
+OUTPUT="$1"
+BOOTFS="$2"
+ROOTFS="$3"
+BOOTFSSIZE="$4"
+ROOTFSSIZE="$5"
+
+head=4
+sect=63
+
+set `ptgen -o $OUTPUT -h $head -s $sect -l 1024 -t c -p ${BOOTFSSIZE}M -t 83 -p ${ROOTFSSIZE}M`
+
+BOOTOFFSET="$(($1 / 512))"
+BOOTSIZE="$(($2 / 512))"
+ROOTFSOFFSET="$(($3 / 512))"
+ROOTFSSIZE="$(($4 / 512))"
+
+dd bs=512 if="$BOOTFS" of="$OUTPUT" seek="$BOOTOFFSET" conv=notrunc
+dd bs=512 if="$ROOTFS" of="$OUTPUT" seek="$ROOTFSOFFSET" conv=notrunc
diff --git a/target/linux/archs38/image/uEnv.txt b/target/linux/archs38/image/uEnv.txt
new file mode 100644
index 0000000000..35549cb1c4
--- /dev/null
+++ b/target/linux/archs38/image/uEnv.txt
@@ -0,0 +1,7 @@
+setenv kernel_addr_r 0x82000000
+setenv fdt_addr_r 0x83000000
+setenv loadkernel fatload mmc 0 \$(kernel_addr_r) uImage
+setenv loaddtb fatload mmc 0 \$(fdt_addr_r) \$(dts)
+setenv bootargs earlycon=uart8250,mmio32,0xe0022000,115200n8 console=ttyS3,115200n8 root=/dev/mmcblk0p2 rootwait print-fatal-signals=1
+setenv uenvcmd run loadkernel\; run loaddtb\; bootm \$(kernel_addr_r) - \$(fdt_addr_r)
+run uenvcmd
diff --git a/target/linux/archs38/ramdisk/profiles/00-default.mk b/target/linux/archs38/ramdisk/profiles/00-default.mk
new file mode 100644
index 0000000000..4d86da3382
--- /dev/null
+++ b/target/linux/archs38/ramdisk/profiles/00-default.mk
@@ -0,0 +1,15 @@
+#
+# Copyright (C) 2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/Default
+ NAME:=Default Profile (all drivers)
+endef
+
+define Profile/Default/Description
+ Default package set compatible with most boards.
+endef
+$(eval $(call Profile,Default))
diff --git a/target/linux/archs38/ramdisk/target.mk b/target/linux/archs38/ramdisk/target.mk
new file mode 100644
index 0000000000..8612d3273d
--- /dev/null
+++ b/target/linux/archs38/ramdisk/target.mk
@@ -0,0 +1,8 @@
+BOARDNAME:=Ramdisk
+FEATURES += ramdisk
+
+define Target/Description
+ Build firmware images for generic ARC HS38 based boards that use built-in initramfs
+endef
+
+
diff --git a/target/linux/archs38/generic/profiles/00-default.mk b/target/linux/archs38/sd/profiles/00-default.mk
index fd8143a166..fd8143a166 100644
--- a/target/linux/archs38/generic/profiles/00-default.mk
+++ b/target/linux/archs38/sd/profiles/00-default.mk
diff --git a/target/linux/archs38/sd/target.mk b/target/linux/archs38/sd/target.mk
new file mode 100644
index 0000000000..ca4f19137e
--- /dev/null
+++ b/target/linux/archs38/sd/target.mk
@@ -0,0 +1,8 @@
+BOARDNAME:=SD
+FEATURES += ext4 usb
+
+define Target/Description
+ Build firmware images for ARC HS38 based boards that use SD-card for booting.
+endef
+
+