diff options
Diffstat (limited to 'target')
-rw-r--r-- | target/alpha/Makefile | 13 | ||||
-rw-r--r-- | target/alpha/systems/dec-multia | 5 | ||||
-rw-r--r-- | target/config/Config.in.kernelfmt | 8 | ||||
-rw-r--r-- | target/config/Config.in.rootfs | 4 | ||||
-rw-r--r-- | target/linux/config/Config.in.serial | 2 | ||||
-rw-r--r-- | target/linux/patches/4.9.71/alpha-remove-coff.patch | 43 |
6 files changed, 72 insertions, 3 deletions
diff --git a/target/alpha/Makefile b/target/alpha/Makefile index 2d58e8014..5ce6bbea2 100644 --- a/target/alpha/Makefile +++ b/target/alpha/Makefile @@ -6,6 +6,9 @@ include $(ADK_TOPDIR)/mk/kernel-build.mk include $(ADK_TOPDIR)/mk/image.mk KERNEL:=$(LINUX_DIR)/vmlinux +ifeq ($(ADK_TARGET_SYSTEM_DEC_MULTIA),y) +KERNEL:=$(LINUX_DIR)/arch/alpha/boot/bootpfile +endif QEMU_ARGS:=-monitor null QEMU_ARGS+=${ADK_QEMU_ARGS} @@ -52,14 +55,22 @@ ifeq ($(ADK_TARGET_FS),nfsroot) targethelp: @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' @echo 'The nfs root tarball is: ${FW_DIR}/${ROOTFSUSERTARBALL}' +ifeq ($(ADK_TARGET_SYSTEM_DEC_MULTIA),y) + @echo 'To netboot the Dec multia type following in SRM console:' + @echo '>>>boot ewa0 -protocols bootp -fl "root=/dev/nfs ip=dhcp"' +endif endif # image creation and kernel install kernel-strip: +ifeq ($(ADK_TARGET_SYSTEM_DEC_MULTIA),y) + cp $(KERNEL) $(BUILD_DIR)/${TARGET_KERNEL} +else $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL) +endif kernel-install: kernel-strip - @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL} + cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL} # filesystem specific targets ifeq ($(ADK_TARGET_FS),archive) diff --git a/target/alpha/systems/dec-multia b/target/alpha/systems/dec-multia index f92a55448..badef7e87 100644 --- a/target/alpha/systems/dec-multia +++ b/target/alpha/systems/dec-multia @@ -1,7 +1,10 @@ config ADK_TARGET_SYSTEM_DEC_MULTIA bool "Digital Multia" select ADK_TARGET_CPU_ALPHA_EV4 - select ADK_TARGET_KERNEL_WITH_COMPRESSION + select ADK_TARGET_WITH_SERIAL + select ADK_TARGET_WITH_NET + select ADK_TARGET_WITH_NETDEVICE + select ADK_TARGET_KERNEL_VMLINUX_BOOTP help Support for DEC Multia. See: https://en.wikipedia.org/wiki/DEC_Multia diff --git a/target/config/Config.in.kernelfmt b/target/config/Config.in.kernelfmt index 4176ab53a..e2fc675c3 100644 --- a/target/config/Config.in.kernelfmt +++ b/target/config/Config.in.kernelfmt @@ -28,6 +28,12 @@ config ADK_TARGET_KERNEL_VMLINUX_AOUT config ADK_TARGET_KERNEL_VMLINUX_BIN bool +config ADK_TARGET_KERNEL_VMLINUX_BOOTP + bool + +config ADK_TARGET_KERNEL_VMLINUX_GZ + bool + config ADK_TARGET_KERNEL_VMLINUX_SREC bool @@ -45,6 +51,8 @@ config ADK_TARGET_KERNEL default "image" if ADK_TARGET_KERNEL_VMLINUX_AOUT default "vmlinux.srec" if ADK_TARGET_KERNEL_VMLINUX_SREC default "vmlinux.bin" if ADK_TARGET_KERNEL_VMLINUX_BIN + default "bootpfile" if ADK_TARGET_KERNEL_VMLINUX_BOOTP + default "vmlinux.gz" if ADK_TARGET_KERNEL_VMLINUX_GZ default "xipImage" if ADK_TARGET_KERNEL_XIPIMAGE default "bzImage" if ADK_TARGET_KERNEL_BZIMAGE default "bzImage" if ADK_TARGET_SYSTEM_GENERIC_X86_64 || ADK_TARGET_SYSTEM_GENERIC_X86 diff --git a/target/config/Config.in.rootfs b/target/config/Config.in.rootfs index 95704e5ba..36d252570 100644 --- a/target/config/Config.in.rootfs +++ b/target/config/Config.in.rootfs @@ -14,6 +14,7 @@ config ADK_TARGET_ROOTFS_INITRAMFSPIGGYBACK ADK_TARGET_QEMU || \ ADK_TARGET_SIM || \ ADK_TARGET_ARCH_AARCH64 || \ + ADK_TARGET_ARCH_ALPHA || \ ADK_TARGET_ARCH_ARC || \ ADK_TARGET_ARCH_ARM || \ ADK_TARGET_ARCH_H8300 || \ @@ -35,8 +36,9 @@ config ADK_TARGET_ROOTFS_INITRAMFS bool "initramfs filesystem" depends on \ ADK_TARGET_QEMU || \ - ADK_TARGET_ARCH_M68K || \ + ADK_TARGET_ARCH_ALPHA || \ ADK_TARGET_ARCH_ARM || \ + ADK_TARGET_ARCH_M68K || \ ADK_TARGET_ARCH_MICROBLAZE || \ ADK_TARGET_ARCH_MIPS || \ ADK_TARGET_ARCH_MIPS64 || \ diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial index 987ad5188..6511bc5a2 100644 --- a/target/linux/config/Config.in.serial +++ b/target/linux/config/Config.in.serial @@ -127,6 +127,7 @@ config ADK_KERNEL_SERIAL_8250 || ADK_TARGET_SYSTEM_MIKROTIK_RB4XX \ || ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG \ || ADK_TARGET_SYSTEM_ORANGE_PI0 \ + || ADK_TARGET_SYSTEM_DEC_MULTIA \ || ADK_TARGET_SYSTEM_SOM_C6745 default y if ADK_TARGET_SYSTEM_XILINX_KINTEX7 default y if ADK_TARGET_SYSTEM_IMGTEC_CI20 @@ -155,6 +156,7 @@ config ADK_KERNEL_SERIAL_8250 default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG default y if ADK_TARGET_SYSTEM_ORANGE_PI0 default y if ADK_TARGET_SYSTEM_SOM_C6745 + default y if ADK_TARGET_SYSTEM_DEC_MULTIA default n help Serial driver for 8250 UART chip. diff --git a/target/linux/patches/4.9.71/alpha-remove-coff.patch b/target/linux/patches/4.9.71/alpha-remove-coff.patch new file mode 100644 index 000000000..176db3c88 --- /dev/null +++ b/target/linux/patches/4.9.71/alpha-remove-coff.patch @@ -0,0 +1,43 @@ +diff -Nur linux-4.9.71.orig/arch/alpha/boot/tools/objstrip.c linux-4.9.71/arch/alpha/boot/tools/objstrip.c +--- linux-4.9.71.orig/arch/alpha/boot/tools/objstrip.c 2017-12-20 10:07:34.000000000 +0100 ++++ linux-4.9.71/arch/alpha/boot/tools/objstrip.c 2017-12-30 21:23:09.114510547 +0100 +@@ -191,38 +191,8 @@ + prog_name, (long) elf_phdr->p_vaddr, + elf_phdr->p_vaddr + fil_size, offset); + } +- } else +-#endif +- { +- aout = (struct exec *) buf; +- +- if (!(aout->fh.f_flags & COFF_F_EXEC)) { +- fprintf(stderr, "%s: %s is not in executable format\n", +- prog_name, inname); +- exit(1); +- } +- +- if (aout->fh.f_opthdr != sizeof(aout->ah)) { +- fprintf(stderr, "%s: %s has unexpected optional header size\n", +- prog_name, inname); +- exit(1); +- } +- +- if (N_MAGIC(*aout) != OMAGIC) { +- fprintf(stderr, "%s: %s is not an OMAGIC file\n", +- prog_name, inname); +- exit(1); +- } +- offset = N_TXTOFF(*aout); +- fil_size = aout->ah.tsize + aout->ah.dsize; +- mem_size = fil_size + aout->ah.bsize; +- +- if (verbose) { +- fprintf(stderr, "%s: extracting %#016lx-%#016lx (at %lx)\n", +- prog_name, aout->ah.text_start, +- aout->ah.text_start + fil_size, offset); +- } + } ++#endif + + if (lseek(fd, offset, SEEK_SET) != offset) { + perror("lseek"); |