Initial commit
This commit is contained in:
5
target/linux/arc770/image/Config.in
Normal file
5
target/linux/arc770/image/Config.in
Normal file
@@ -0,0 +1,5 @@
|
||||
config AXS10X_SD_BOOT_PARTSIZE
|
||||
int "Boot (SD Card) filesystem partition size (in MB)"
|
||||
depends on TARGET_arc770
|
||||
default 20
|
||||
|
||||
84
target/linux/arc770/image/Makefile
Normal file
84
target/linux/arc770/image/Makefile
Normal file
@@ -0,0 +1,84 @@
|
||||
#
|
||||
# Copyright (C) 2016 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/image.mk
|
||||
|
||||
# On ARC initramfs is put before entry point and so entry point moves
|
||||
# in memory from build to built. Thus we need to extract EP from vmlinux
|
||||
# every time before generation of uImage.
|
||||
kernel_ep = `$(KERNEL_CROSS)readelf -h $(1) | grep "Entry point address" | grep -o 0x.*`
|
||||
|
||||
define Build/patch-dtb
|
||||
$(STAGING_DIR_HOST)/bin/patch-dtb $@ $(DTS_DIR)/$(DEVICE_DTS).dtb
|
||||
endef
|
||||
|
||||
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
|
||||
# Root FS built-in
|
||||
define Device/vmlinux
|
||||
KERNEL_SUFFIX := .elf
|
||||
KERNEL := kernel-bin | patch-dtb
|
||||
KERNEL_INITRAMFS_NAME = vmlinux-initramfs.elf
|
||||
endef
|
||||
|
||||
define Device/nsim
|
||||
$(call Device/vmlinux)
|
||||
DEVICE_PROFILE := nsim
|
||||
DEVICE_DTS := nsim_700
|
||||
endef
|
||||
TARGET_DEVICES += nsim
|
||||
endif
|
||||
|
||||
# Root FS on SD-card
|
||||
KERNEL_LOADADDR := 0x80000000
|
||||
DEVICE_DTS_LIST:= axs101 nsim_700
|
||||
FAT32_BLOCK_SIZE=1024
|
||||
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_AXS10X_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
|
||||
|
||||
define Image/Prepare
|
||||
# Build .dtb for all boards we may run on
|
||||
$(foreach dts,$(DEVICE_DTS_LIST),
|
||||
$(call Image/BuildDTB,$(DTS_DIR)/$(dts).dts,$(DTS_DIR)/$(dts).dtb)
|
||||
)
|
||||
endef
|
||||
|
||||
define Image/Build/SDCard
|
||||
rm -f $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img
|
||||
mkfs.fat $(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 Image/BuildKernel/MkuImage, \
|
||||
none, $(KERNEL_LOADADDR),$(call kernel_ep,$(KDIR)/vmlinux.elf) , \
|
||||
$(KDIR)/vmlinux, \
|
||||
$(BIN_DIR)/$(IMG_PREFIX)-uImage \
|
||||
)
|
||||
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
|
||||
$(call Image/Gzip,$(BIN_DIR)/$(IMG_PREFIX)-root.$(1))
|
||||
endef
|
||||
|
||||
$(eval $(call BuildImage))
|
||||
33
target/linux/arc770/image/gen_axs10x_sdcard_img.sh
Executable file
33
target/linux/arc770/image/gen_axs10x_sdcard_img.sh
Executable file
@@ -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
|
||||
7
target/linux/arc770/image/uEnv.txt
Normal file
7
target/linux/arc770/image/uEnv.txt
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user