summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2013-12-28 17:30:22 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2013-12-28 17:30:22 +0100
commit320e16528ea6a9eba54bac0161e2331093075647 (patch)
treec6f8090dd0ce8452f70252b5841fecabc28cb66d
parentb1b2509e980eb1b0973b1754511353e8415a1a0c (diff)
convert microblaze to miniconfig kernel config generation, add support for squashfs and jffs2 rootfs for qemu-microblaze, add support for both machine emulations
-rw-r--r--Config.in3
-rw-r--r--TODO1
-rw-r--r--mk/build.mk2
-rw-r--r--mk/image.mk47
-rw-r--r--mk/kernel-build.mk5
-rw-r--r--mk/rootfs.mk2
-rw-r--r--package/base-files/Makefile5
-rw-r--r--package/cfgfs/Makefile2
-rw-r--r--package/libstdcxx/Makefile24
-rw-r--r--rules.mk1
-rw-r--r--target/Makefile10
-rw-r--r--target/config/Config.in38
-rw-r--r--target/linux/Config.in1
-rw-r--r--target/linux/config/Config.in.flash36
-rw-r--r--target/linux/config/Config.in.fs14
-rw-r--r--target/linux/config/Config.in.graphics2
-rw-r--r--target/linux/config/Config.in.microblaze4
-rw-r--r--target/linux/kernel.config41
-rw-r--r--target/linux/patches/3.11.10/defaults.patch24
-rw-r--r--target/linux/patches/3.11.10/microblaze-ethernet.patch11
-rw-r--r--target/microblaze/Makefile38
-rw-r--r--target/microblaze/kernel.config1337
-rw-r--r--target/microblaze/kernel/qemu-microblaze-ml60537
-rw-r--r--target/microblaze/kernel/qemu-microblaze-s3adsp180034
-rw-r--r--target/microblaze/ml605.dtbbin0 -> 12839 bytes
-rw-r--r--target/microblaze/ml605.dts399
-rw-r--r--target/microblaze/sys-available/qemu-microblaze5
-rw-r--r--target/microblaze/sys-available/qemu-microblazeel5
-rw-r--r--target/tools/mtd-utils/Makefile24
-rw-r--r--target/tools/mtd-utils/patches/lzo.patch80
-rw-r--r--target/tools/squashfs/Makefile10
-rw-r--r--target/tools/squashfs/patches/cppflags.patch12
-rw-r--r--target/tools/squashfs/patches/honour-cflags.patch11
-rw-r--r--target/tools/squashfs/patches/squashfs-bsd.patch245
-rw-r--r--target/tools/squashfs/patches/uClibc-compat.patch24
-rw-r--r--target/tools/xz/Makefile28
-rw-r--r--toolchain/eglibc/Makefile3
37 files changed, 891 insertions, 1674 deletions
diff --git a/Config.in b/Config.in
index e7a496e9c..268ea3558 100644
--- a/Config.in
+++ b/Config.in
@@ -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
diff --git a/TODO b/TODO
index f5b7ac867..0770a0771 100644
--- a/TODO
+++ b/TODO
@@ -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
diff --git a/rules.mk b/rules.mk
index f848d83ac..2d49a4b09 100644
--- a/rules.mk
+++ b/rules.mk
@@ -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