diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2013-12-28 17:30:22 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2013-12-28 17:30:22 +0100 |
commit | 320e16528ea6a9eba54bac0161e2331093075647 (patch) | |
tree | c6f8090dd0ce8452f70252b5841fecabc28cb66d | |
parent | b1b2509e980eb1b0973b1754511353e8415a1a0c (diff) |
convert microblaze to miniconfig kernel config generation, add support for squashfs and jffs2 rootfs for qemu-microblaze, add support for both machine emulations
37 files changed, 891 insertions, 1674 deletions
@@ -91,6 +91,9 @@ source "package/Config.in.auto.global" source "package/Config.in.auto" endmenu +config ADK_USE_KERNEL_MINICONFIG + boolean + choice prompt "Kernel Version" depends on ADK_TOOLCHAIN_ONLY @@ -1,3 +1,4 @@ +- microblaze: add cfgfs partition to dts, add partition to spartan dts - use host-tools infrastructure for openjdk7 - remove openjdk6 - evaluate libguestfs for image creation diff --git a/mk/build.mk b/mk/build.mk index ad2d42b40..f20b4e59e 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -100,7 +100,7 @@ POSTCONFIG= -@\ touch .rebuild.busybox;\ rebuild=1;\ fi; \ - for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_CONSOLE;do \ + for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_CONSOLE ADK_TARGET_QEMU_MICROBLAZE_MODEL;do \ if [ "$$(grep ^$$i .config|md5sum)" != "$$(grep ^$$i .config.old|md5sum)" ];then \ touch .rebuild.base-files;\ rebuild=1;\ diff --git a/mk/image.mk b/mk/image.mk index 7c519d7f5..79d6102c6 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -119,6 +119,7 @@ ifeq ($(ADK_HARDWARE_QEMU),y) TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_FS}-kernel INITRAMFS= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS} ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img +ROOTFSJFFS2= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-jffs2.img ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz ROOTFSISO= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.iso @@ -126,6 +127,7 @@ else TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel INITRAMFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS} ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img +ROOTFSJFFS2= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-jffs2.img ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz ROOTFSISO= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.iso @@ -161,41 +163,76 @@ ${BIN_DIR}/${INITRAMFS}: ${BIN_DIR}/${INITRAMFS}_list ${BUILD_DIR}/root.squashfs: ${TARGET_DIR} ${STAGING_HOST_DIR}/bin/mksquashfs ${TARGET_DIR} \ - ${BUILD_DIR}/root.squashfs \ + ${BUILD_DIR}/root.squashfs -comp xz \ -nopad -noappend -root-owned $(MAKE_TRACE) +${BIN_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR} + ${STAGING_HOST_DIR}/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \ + --pad=$(ADK_TARGET_MTD_SIZE) -o ${BIN_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE) + createinitramfs: ${BIN_DIR}/${INITRAMFS}_list ${SED} 's/.*CONFIG_(BLK_DEV_INITRD|INITRAMFS_SOURCE|INITRAMFS_COMPRESSION).*//' \ ${LINUX_DIR}/.config ( \ echo "CONFIG_BLK_DEV_INITRD=y"; \ echo 'CONFIG_INITRAMFS_SOURCE="${BIN_DIR}/${INITRAMFS}_list"'; \ - echo 'CONFIG_INITRAMFS_COMPRESSION_NONE is not set' >> ${LINUX_DIR}/.config; \ + echo '# CONFIG_INITRAMFS_COMPRESSION_NONE is not set' >> ${LINUX_DIR}/.config; \ + echo 'CONFIG_INITRAMFS_ROOT_UID=0' >> ${LINUX_DIR}/.config; \ + echo 'CONFIG_INITRAMFS_ROOT_GID=0' >> ${LINUX_DIR}/.config; \ ) >> ${LINUX_DIR}/.config ifeq ($(ADK_KERNEL_COMP_XZ),y) + echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_XZ=y" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_XZ=y" >> ${LINUX_DIR}/.config + echo "CONFIG_XZ_DEC_X86=n" >> ${LINUX_DIR}/.config + echo "CONFIG_XZ_DEC_POWERPC=n" >> ${LINUX_DIR}/.config + echo "CONFIG_XZ_DEC_IA64=n" >> ${LINUX_DIR}/.config + echo "CONFIG_XZ_DEC_ARM=n" >> ${LINUX_DIR}/.config + echo "CONFIG_XZ_DEC_ARMTHUMB=n" >> ${LINUX_DIR}/.config + echo "CONFIG_XZ_DEC_SPARC=n" >> ${LINUX_DIR}/.config + echo "CONFIG_XZ_DEC_TEST=n" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_KERNEL_COMP_LZMA),y) + echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZMA=y" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_LZMA=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_KERNEL_COMP_LZO),y) + echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZO=y" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_LZO=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_KERNEL_COMP_GZIP),y) + echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_GZIP=y" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_GZIP=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_KERNEL_COMP_BZIP2),y) + echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_BZIP2=y" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_BZIP2=y" >> ${LINUX_DIR}/.config endif @-rm $(LINUX_DIR)/usr/initramfs_data.cpio* 2>/dev/null - echo N | \ - $(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \ - ARCH=$(ARCH) CC="$(TARGET_CC)" -j${ADK_MAKE_JOBS} oldconfig $(MAKE_TRACE) $(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \ ARCH=$(ARCH) CC="$(TARGET_CC)" -j${ADK_MAKE_JOBS} $(ADK_TARGET_KERNEL) $(MAKE_TRACE) diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk index 59a68eb88..8fe0799a0 100644 --- a/mk/kernel-build.mk +++ b/mk/kernel-build.mk @@ -35,8 +35,13 @@ $(LINUX_DIR)/.prepared: $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PK $(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(BUILD_DIR)/.kernelconfig $(TOPDIR)/mk/modules.mk $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-configure -for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done +ifeq ($(ADK_USE_KERNEL_MINICONFIG),y) + $(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/mini.config + ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE) +else $(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/.config echo N | ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} oldconfig $(MAKE_TRACE) +endif ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} prepare scripts $(MAKE_TRACE) touch -c $(LINUX_DIR)/.config diff --git a/mk/rootfs.mk b/mk/rootfs.mk index 18d4f83dc..3bbe31f25 100644 --- a/mk/rootfs.mk +++ b/mk/rootfs.mk @@ -9,6 +9,7 @@ endif endef ifeq ($(ADK_HARDWARE_QEMU),y) +MTDDEV:= root=/dev/mtdblock0 ifeq ($(ADK_TARGET_ROOTFS_ARCHIVE),y) ROOTFS:= root=/dev/sda1 endif @@ -50,6 +51,7 @@ $(eval $(call rootfs_template,initramfs,INITRAMFS)) $(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK)) $(eval $(call rootfs_template,squashfs,SQUASHFS,$(ROOTFS))) $(eval $(call rootfs_template,yaffs,YAFFS,$(MTDDEV) panic=3)) +$(eval $(call rootfs_template,jffs2,JFFS2,$(MTDDEV) rootfstype=jffs2)) $(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp init=/init)) $(eval $(call rootfs_template,encrypted,ENCRYPTED)) $(eval $(call rootfs_template,iso,ISO)) diff --git a/package/base-files/Makefile b/package/base-files/Makefile index d9b7878b3..7f68bad96 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -72,10 +72,7 @@ endif ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC64),y) $(SED) 's#ttyS#hvc#g' $(IDIR_BASE_FILES)/etc/inittab endif -ifeq ($(ADK_TARGET_SYSTEM_QEMU_MICROBLAZE),y) - $(SED) 's#ttyS#ttyUL#g' $(IDIR_BASE_FILES)/etc/inittab -endif -ifeq ($(ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL),y) +ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800),y) $(SED) 's#ttyS#ttyUL#g' $(IDIR_BASE_FILES)/etc/inittab endif $(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab diff --git a/package/cfgfs/Makefile b/package/cfgfs/Makefile index bea53dc64..a79bd73ca 100644 --- a/package/cfgfs/Makefile +++ b/package/cfgfs/Makefile @@ -15,7 +15,7 @@ PKG_CFLINE_CFGFS:= select BUSYBOX_DIFF@ PKG_CFLINE_CFGFS+= select BUSYBOX_MD5SUM@ PKG_CFLINE_CFGFS+= select BUSYBOX_XARGS@ PKG_CFLINE_CFGFS+= select BUSYBOX_FEATURE_SORT_BIG@ -PKG_CFLINE_CFGFS+= depends on !ADK_TARGET_ROOTFS_NFSROOT && !ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK && !ADK_TARGET_ROOTFS_INITRAMFS +PKG_CFLINE_CFGFS+= depends on !ADK_TARGET_ROOTFS_NFSROOT && !ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK && !ADK_TARGET_ROOTFS_INITRAMFS && !ADK_TARGET_ROOTFS_JFFS2 && !ADK_TARGET_ROOTFS_SQUASHFS PKG_DFLT_CFGFS:= y if !(ADK_TOOLCHAIN_ONLY || ADK_TOOLCHAIN_ARCHIVE) WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION} diff --git a/package/libstdcxx/Makefile b/package/libstdcxx/Makefile index b4e5c3b86..45c1edfc4 100644 --- a/package/libstdcxx/Makefile +++ b/package/libstdcxx/Makefile @@ -16,16 +16,20 @@ endif endif endif -PKG_NAME:= libstdcxx -PKG_DESCR:= C++ support library -PKG_SECTION:= libs -PKG_NEED_CXX:= 1 ifeq ($(ADK_LINUX_AVR32),y) -PKG_SUBVER:= 13 +LIBSTDCXX_VER:= 13 +else +ifeq ($(ADK_LINUX_MICROBLAZE),y) +LIBSTDCXX_VER:= 18 else -PKG_SUBVER:= 17 +LIBSTDCXX_VER:= 17 +endif endif +PKG_NAME:= libstdcxx +PKG_DESCR:= C++ support library +PKG_SECTION:= libs +PKG_NEED_CXX:= 1 NO_DISTFILES:= 1 include ${TOPDIR}/mk/package.mk @@ -41,10 +45,10 @@ do-install: ifeq ($(ADK_NATIVE),y) $(CP) /usr/lib/libstdc++.so* ${IDIR_LIBSTDCXX}/usr/lib else - (cd ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}; ln -sf libstdc++.so.6.0.${PKG_SUBVER} libstdc++.so.6) - (cd ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}; ln -sf libstdc++.so.6.0.${PKG_SUBVER} libstdc++.so) - (cd ${STAGING_TARGET_DIR}/${ADK_TARGET_LIBC_PATH}/; ln -sf libstdc++.so.6.0.${PKG_SUBVER} libstdc++.so) - $(CP) ${STAGING_TARGET_DIR}/${ADK_TARGET_LIBC_PATH}/libstdc++.so.6.0.${PKG_SUBVER} ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH} + (cd ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}; ln -sf libstdc++.so.6.0.${LIBSTDCXX_VER} libstdc++.so.6) + (cd ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}; ln -sf libstdc++.so.6.0.${LIBSTDCXX_VER} libstdc++.so) + (cd ${STAGING_TARGET_DIR}/${ADK_TARGET_LIBC_PATH}/; ln -sf libstdc++.so.6.0.${LIBSTDCXX_VER} libstdc++.so) + $(CP) ${STAGING_TARGET_DIR}/${ADK_TARGET_LIBC_PATH}/libstdc++.so.6.0.${LIBSTDCXX_VER} ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH} -@rm ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}/libstdc++.so.*-gdb.py endif @@ -49,6 +49,7 @@ ADK_TOOLS_ADDPATTERN_ARGS:= $(strip $(subst ",, $(ADK_TOOLS_ADDPATTERN_ARGS))) ADK_KERNEL_VERSION:= $(strip $(subst ",, $(ADK_KERNEL_VERSION))) ADK_PARAMETER_NETCONSOLE_SRC_IP:= $(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_SRC_IP))) ADK_PARAMETER_NETCONSOLE_DST_IP:= $(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_DST_IP))) +ADK_JFFS2_OPTS:= $(strip $(subst ",, $(ADK_JFFS2_OPTS))) ifeq ($(strip ${ADK_HAVE_DOT_CONFIG}),y) ifneq ($(strip $(wildcard $(TOPDIR)/target/$(ADK_TARGET_ARCH)/target.mk)),) diff --git a/target/Makefile b/target/Makefile index b8b92c960..562d2b86b 100644 --- a/target/Makefile +++ b/target/Makefile @@ -59,12 +59,22 @@ ifeq ($(ADK_NATIVE),y) if [ -f /proc/config.gz ];then zcat /proc/config.gz > ${BUILD_DIR}/.kernelconfig.board; else cp ${ADK_TARGET}/kernel.config.$(ARCH) ${BUILD_DIR}/.kernelconfig.board; fi; \ fi else +ifeq ($(ADK_USE_KERNEL_MINICONFIG),y) + @if [ -f ${ADK_TARGET_ARCH}/kernel/${ADK_TARGET_KERNEL_MINICONFIG} ];then \ + cat ${TOPDIR}/target/linux/kernel.config \ + ${ADK_TARGET_ARCH}/kernel/${ADK_TARGET_KERNEL_MINICONFIG} > ${BUILD_DIR}/.kernelconfig.board; \ + else \ + echo "no miniconfig found for target system"; \ + exit 1; \ + fi +else @if [ -f ${ADK_TARGET_ARCH}/${KERNEL_CFG}.$(ADK_TARGET_SYSTEM) ];then \ cp ${ADK_TARGET_ARCH}/${KERNEL_CFG}.$(ADK_TARGET_SYSTEM) ${BUILD_DIR}/.kernelconfig.board; \ else \ cp ${ADK_TARGET_ARCH}/${KERNEL_CFG} ${BUILD_DIR}/.kernelconfig.board; \ fi endif +endif @(cat ${BUILD_DIR}/.kernelconfig.{modules,kernel} | \ while IFS='=' read symbol value; do \ sed -i -e "/^# $$symbol/d" ${BUILD_DIR}/.kernelconfig.board; \ diff --git a/target/config/Config.in b/target/config/Config.in index 99b056546..1e7afc323 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -36,6 +36,11 @@ config ADK_TARGET_ENDIAN default "little" if ADK_little default "big" if ADK_big +config ADK_JFFS2_OPTS + string + default "-l" if ADK_little + default "-b" if ADK_big + config ADK_TOOLCHAIN boolean @@ -143,7 +148,25 @@ config ADK_TARGET_LIBC_PATH # submodel support -# + +config ADK_TARGET_KERNEL_MINICONFIG + string + default "qemu-microblaze-s3adsp1800" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800 + default "qemu-microblaze-ml605" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605 + +choice +prompt "Qemu MICROBLAZE Emulation" +depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE || ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL + +config ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605 + boolean "Xilinx ml605" + select ADK_TARGET_WITH_MTD + +config ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800 + boolean "Xilinx Spartan S3ADSP1800" + +endchoice + choice prompt "Qemu ARM Emulation" depends on ADK_TARGET_SYSTEM_QEMU_ARM @@ -501,8 +524,8 @@ config ADK_TARGET_CMDLINE default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_IBM_X40 default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_INTEL_ATOM default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_QEMU_I686 - default "console=ttyUL0" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE - default "console=ttyUL0" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL + default "console=ttyUL0" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800 + default "console=ttyS0,115200" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605 default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_VBOX_I686 default "console=ttyS0,115200 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_SPITZ default "console=ttyAMA0 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE @@ -680,6 +703,14 @@ config ADK_TARGET_ROOTFS_SQUASHFS help highly compressed read-only filesystem for MTD flash systems. +config ADK_TARGET_ROOTFS_JFFS2 + bool "Compressed read-write root filesystem (jffs2)" + select ADK_KERNEL_MISC_FILESYSTEMS + select ADK_KERNEL_JFFS2 + depends on ADK_TARGET_WITH_MTD + help + compressed read-write filesystem for MTD flash systems. + config ADK_TARGET_ROOTFS_YAFFS bool "YAFFS2 root filesystem (NAND)" select ADK_KERNEL_MISC_FILESYSTEMS @@ -762,6 +793,7 @@ config ADK_TARGET_ROOTFS_ISO config ADK_TARGET_ROOTFS_ARCHIVE bool "Archive usable for different filesystems" select ADK_KERNEL_EXT2_FS if ADK_HARDWARE_QEMU + depends on !ADK_LINUX_MICROBLAZE help Use this option if your root filesystem is ext2/ext3/ext4/xfs. diff --git a/target/linux/Config.in b/target/linux/Config.in index 79511489c..e4b81dd2f 100644 --- a/target/linux/Config.in +++ b/target/linux/Config.in @@ -18,7 +18,6 @@ source target/linux/config/Config.in.bluetooth source target/linux/config/Config.in.watchdog source target/linux/config/Config.in.leds source target/linux/config/Config.in.misc -source target/linux/config/Config.in.microblaze source target/linux/config/Config.in.mips source target/linux/config/Config.in.lib source target/linux/config/Config.in.pm diff --git a/target/linux/config/Config.in.flash b/target/linux/config/Config.in.flash index 091cb98a4..26f00845a 100644 --- a/target/linux/config/Config.in.flash +++ b/target/linux/config/Config.in.flash @@ -1,6 +1,10 @@ config ADK_KERNEL_MTD + select ADK_KERNEL_GENERIC_IO boolean +config ADK_KERNEL_GENERIC_IO + boolean + config ADK_KERNEL_MTD_MTDRAM boolean @@ -41,6 +45,9 @@ config ADK_KERNEL_MTD_GEN_PROBE config ADK_KERNEL_MTD_PHYSMAP boolean +config ADK_KERNEL_MTD_PHYSMAP_OF + boolean + config ADK_KERNEL_MTD_CFI_ADV_OPTIONS boolean @@ -57,16 +64,31 @@ config ADK_KERNEL_MTD_AR7_PARTS config ADK_KERNEL_MTD_CFI_INTELEXT boolean default y if ADK_TARGET_SYSTEM_BROADCOM_BCM47XX + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE default n config ADK_KERNEL_MTD_CFI_AMDSTD boolean default y if ADK_TARGET_SYSTEM_BROADCOM_BCM47XX + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE default n config ADK_KERNEL_MTD_CFI_STAA boolean default y if ADK_TARGET_SYSTEM_BROADCOM_BCM47XX + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE + default n + +config ADK_KERNEL_MTD_OF_PARTS + boolean + default n + +config ADK_KERNEL_MTD_M25P80 + boolean + default y if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605 default n config ADK_KERNEL_MTD_AR2315 @@ -78,6 +100,7 @@ config ADK_KERNEL_MTD_AR2315 config ADK_TARGET_NAND boolean + select ADK_KERNEL_BLOCK select ADK_KERNEL_MISC_FILESYSTEMS select ADK_KERNEL_YAFFS_FS select ADK_KERNEL_YAFFS_YAFFS2 @@ -88,22 +111,31 @@ config ADK_TARGET_NAND select ADK_KERNEL_MTD_NAND_PLATFORM select ADK_KERNEL_MTD_CHAR select ADK_KERNEL_MTD_BLKDEVS - select ADK_KERNEL_BLOCK select ADK_KERNEL_MTD_BLOCK default y if ADK_TARGET_WITH_NAND default n config ADK_TARGET_MTD boolean + select ADK_KERNEL_BLOCK + select ADK_KERNEL_MISC_FILESYSTEMS + select ADK_KERNEL_JFFS2_FS select ADK_KERNEL_MTD select ADK_KERNEL_MTD_PARTITIONS select ADK_KERNEL_MTD_CHAR select ADK_KERNEL_MTD_BLKDEVS - select ADK_KERNEL_BLOCK select ADK_KERNEL_MTD_BLOCK select ADK_KERNEL_MTD_ROOTFS_ROOT_DEV select ADK_KERNEL_MTD_CFI select ADK_KERNEL_MTD_GEN_PROBE select ADK_KERNEL_MTD_PHYSMAP + select ADK_KERNEL_MTD_PHYSMAP_OF if ADK_LINUX_MICROBLAZE + select ADK_KERNEL_MTD_OF_PARTS if ADK_LINUX_MICROBLAZE default y if ADK_TARGET_WITH_MTD default n + +config ADK_TARGET_MTD_SIZE + int + default "33554432" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE + default "33554432" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL + default "" diff --git a/target/linux/config/Config.in.fs b/target/linux/config/Config.in.fs index 10b2d7e1b..a764e7491 100644 --- a/target/linux/config/Config.in.fs +++ b/target/linux/config/Config.in.fs @@ -1,5 +1,8 @@ menu "Filesystems support" +config ADK_KERNEL_MISC_FILESYSTEMS + boolean + config ADK_KERNEL_FSNOTIFY boolean default y @@ -8,6 +11,9 @@ config ADK_KERNEL_EXPORTFS boolean default y +config ADK_KERNEL_JFFS2_FS + boolean + config ADK_KERNEL_YAFFS_FS tristate @@ -27,9 +33,6 @@ config ADK_KERNEL_YAFFS_CHECKPOINT_RESERVED_BLOCKS config ADK_KERNEL_YAFFS_SHORT_NAMES_IN_RAM boolean -config ADK_KERNEL_MISC_FILESYSTEMS - boolean - config ADK_KERNEL_DNOTIFY boolean @@ -44,10 +47,15 @@ config ADK_KERNEL_FAT_DEFAULT_IOCHARSET string default "iso8859-1" +config ADK_KERNEL_SQUASHFS_XZ + boolean + default n + config ADK_KERNEL_SQUASHFS prompt "squashfs.......................... SquashFS filesystem" boolean select ADK_KERNEL_MISC_FILESYSTEMS + select ADK_KERNEL_SQUASHFS_XZ default n config ADK_KERNEL_EXT2_FS diff --git a/target/linux/config/Config.in.graphics b/target/linux/config/Config.in.graphics index 75c05449f..af28b91d7 100644 --- a/target/linux/config/Config.in.graphics +++ b/target/linux/config/Config.in.graphics @@ -1,6 +1,5 @@ config ADK_KERNEL_VT boolean - default y if ADK_HARDWARE_QEMU default y if ADK_HARDWARE_VBOX default y if ADK_TARGET_WITH_VGA default y if ADK_NATIVE_SYSTEM_IBM_X40 @@ -9,7 +8,6 @@ config ADK_KERNEL_VT config ADK_KERNEL_VT_CONSOLE boolean - default y if ADK_HARDWARE_QEMU default y if ADK_HARDWARE_VBOX default y if ADK_TARGET_WITH_VGA default y if ADK_NATIVE_SYSTEM_IBM_X40 diff --git a/target/linux/config/Config.in.microblaze b/target/linux/config/Config.in.microblaze deleted file mode 100644 index 5a6764250..000000000 --- a/target/linux/config/Config.in.microblaze +++ /dev/null @@ -1,4 +0,0 @@ -config ADK_KERNEL_OPT_LIB_ASM - default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE - default n - boolean diff --git a/target/linux/kernel.config b/target/linux/kernel.config new file mode 100644 index 000000000..8bf3aafe6 --- /dev/null +++ b/target/linux/kernel.config @@ -0,0 +1,41 @@ +CONFIG_DEFAULT_HOSTNAME="openadk" +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="" +CONFIG_MMU=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_INET=y +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_EMBEDDED=y +CONFIG_MODULES=y +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_NO_HZ=y +CONFIG_PRINTK=y +CONFIG_BUG=n +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_PCI_QUIRKS=y +CONFIG_TTY=y +CONFIG_UNIX98_PTYS=y +CONFIG_PRINTK_TIME=y +CONFIG_EARLY_PRINTK=y diff --git a/target/linux/patches/3.11.10/defaults.patch b/target/linux/patches/3.11.10/defaults.patch index 58aae610b..6cdca084e 100644 --- a/target/linux/patches/3.11.10/defaults.patch +++ b/target/linux/patches/3.11.10/defaults.patch @@ -20,3 +20,27 @@ diff -Nur linux-3.0.4.orig/fs/notify/Kconfig linux-3.0.4/fs/notify/Kconfig source "fs/notify/dnotify/Kconfig" source "fs/notify/inotify/Kconfig" +diff -Nur linux-3.11.10.orig/drivers/scsi/Kconfig linux-3.11.10/drivers/scsi/Kconfig +--- linux-3.11.10.orig/drivers/scsi/Kconfig 2013-11-29 19:42:37.000000000 +0100 ++++ linux-3.11.10/drivers/scsi/Kconfig 2013-12-27 19:13:21.000000000 +0100 +@@ -2,7 +2,7 @@ + + config SCSI_MOD + tristate +- default y if SCSI=n || SCSI=y ++ default y if SCSI=y + default m if SCSI=m + + config RAID_ATTRS +diff -Nur linux-3.11.10.orig/usr/Kconfig linux-3.11.10/usr/Kconfig +--- linux-3.11.10.orig/usr/Kconfig 2013-11-29 19:42:37.000000000 +0100 ++++ linux-3.11.10/usr/Kconfig 2013-12-27 19:15:16.000000000 +0100 +@@ -47,7 +47,7 @@ + + config RD_GZIP + bool "Support initial ramdisks compressed using gzip" if EXPERT +- default y ++ default n + depends on BLK_DEV_INITRD + select DECOMPRESS_GZIP + help diff --git a/target/linux/patches/3.11.10/microblaze-ethernet.patch b/target/linux/patches/3.11.10/microblaze-ethernet.patch new file mode 100644 index 000000000..742ab477e --- /dev/null +++ b/target/linux/patches/3.11.10/microblaze-ethernet.patch @@ -0,0 +1,11 @@ +diff -Nur linux-3.11.10.orig/drivers/net/ethernet/xilinx/xilinx_emaclite.c linux-3.11.10/drivers/net/ethernet/xilinx/xilinx_emaclite.c +--- linux-3.11.10.orig/drivers/net/ethernet/xilinx/xilinx_emaclite.c 2013-11-29 19:42:37.000000000 +0100 ++++ linux-3.11.10/drivers/net/ethernet/xilinx/xilinx_emaclite.c 2013-12-23 20:01:14.000000000 +0100 +@@ -1282,6 +1282,7 @@ + { .compatible = "xlnx,opb-ethernetlite-1.01.b", }, + { .compatible = "xlnx,xps-ethernetlite-1.00.a", }, + { .compatible = "xlnx,xps-ethernetlite-2.00.a", }, ++ { .compatible = "xlnx,xps-ethernetlite-2.00.b", }, + { .compatible = "xlnx,xps-ethernetlite-2.01.a", }, + { .compatible = "xlnx,xps-ethernetlite-3.00.a", }, + { /* end of list */ }, diff --git a/target/microblaze/Makefile b/target/microblaze/Makefile index 3ff728627..e4c98ed6d 100644 --- a/target/microblaze/Makefile +++ b/target/microblaze/Makefile @@ -9,16 +9,36 @@ include $(TOPDIR)/mk/image.mk KERNEL:=$(LINUX_DIR)/arch/microblaze/boot/$(ADK_TARGET_KERNEL) -ifeq ($(ADK_TARGET_FS),archive) -imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL) - @echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)" +tools-compile: + $(MAKE) -C ../tools/mtd-utils all + $(MAKE) -C ../tools/xz all + $(MAKE) -C ../tools/squashfs all + +ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605),y) +MODEL:=petalogix-ml605 +DTB:=-dtb target/microblaze/ml605.dtb +endif +ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800),y) +MODEL:=petalogix-s3adsp1800 +DTB:= +endif + +ifeq ($(ADK_TARGET_FS),squashfs) +imageinstall: tools-compile $(BUILD_DIR)/root.squashfs + qemu-img create -f raw $(BIN_DIR)/$(ROOTFSSQUASHFS) $(ADK_TARGET_MTD_SIZE) + dd conv=notrunc if=$(BUILD_DIR)/root.squashfs of=$(BIN_DIR)/$(ROOTFSSQUASHFS) + @cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL) ifneq ($(ADK_HARDWARE_QEMU),) + @echo "Start qemu with following options:" + @echo 'qemu-system-${CPU_ARCH} $(DTB) -M $(MODEL) -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -pflash $(BIN_DIR)/$(ROOTFSSQUASHFS)' +endif +endif +ifeq ($(ADK_TARGET_FS),jffs2) +imageinstall: tools-compile $(BIN_DIR)/$(ROOTFSJFFS2) @cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL) - @echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERN |