summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/image.mk2
-rw-r--r--target/arm/Makefile26
-rw-r--r--target/arm/sys-available/qemu-arm15
-rw-r--r--target/config/Config.in2
-rw-r--r--target/linux/Config.in1
-rw-r--r--target/linux/config/Config.in.serial8
-rw-r--r--target/linux/config/Config.in.spi4
-rw-r--r--target/linux/config/Config.in.systems9
8 files changed, 63 insertions, 4 deletions
diff --git a/mk/image.mk b/mk/image.mk
index 185164c22..78b18e716 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -95,7 +95,7 @@ ${BIN_DIR}/${INITRAMFS}: ${TARGET_DIR}
cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
sed "s#\(.*\)#:0:0::::::\1#" | sort | \
${TOOLS_DIR}/cpio -o -C512 -Hnewc -P | \
- lzma -9 >$@ 2>/dev/null
+ xz -C crc32 >$@ 2>/dev/null
${BUILD_DIR}/${INITRAMFS_PIGGYBACK}: ${TARGET_DIR}
${SED} 's/.*CONFIG_(BLK_DEV_INITRD|INITRAMFS_SOURCE).*//' \
diff --git a/target/arm/Makefile b/target/arm/Makefile
index dbf955a81..8e6ab0df7 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -7,6 +7,7 @@ include $(TOPDIR)/mk/modules.mk
include $(TOPDIR)/mk/kernel-build.mk
include $(TOPDIR)/mk/image.mk
+ZKERNEL:=$(LINUX_DIR)/arch/arm/boot/zImage
KERNEL:=$(LINUX_DIR)/vmlinux
LOADADDR:=0x20008000
@@ -38,25 +39,44 @@ imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSTARBALL)
endif
ifeq ($(ADK_TARGET_FS),archive)
imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ @cp $(ZKERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+else
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+endif
@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
@echo "Use following command to create a QEMU Image:"
@echo "sudo ./scripts/create-image.sh -f $(ADK_TARGET_ROOTFS) qemu-${CPU_ARCH}.img $(BIN_DIR)/$(ROOTFSTARBALL)"
@echo "Start qemu with following options:"
- @echo 'qemu-system-arm -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -hda qemu-${CPU_ARCH}.img -append "root=/dev/hda1"'
+ @echo 'qemu-system-arm -M spitz -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -hda qemu-${CPU_ARCH}.img -append "root=/dev/hda1"'
+endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
imageinstall: $(BIN_DIR)/$(INITRAMFS)
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ @cp $(ZKERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+else
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+endif
@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
- @echo 'qemu-system-arm -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-arm -M spitz -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
+endif
endif
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ @cp $(ZKERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+else
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+endif
@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-arm -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+ @echo 'qemu-system-arm -M spitz -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+endif
endif
diff --git a/target/arm/sys-available/qemu-arm b/target/arm/sys-available/qemu-arm
new file mode 100644
index 000000000..beb1e2ee4
--- /dev/null
+++ b/target/arm/sys-available/qemu-arm
@@ -0,0 +1,15 @@
+config ADK_TARGET_SYSTEM_QEMU_ARM
+ bool "Qemu Emulator"
+ select ADK_arm
+ select ADK_qemu_arm
+ select ADK_little
+ select ADK_EABI
+ select ADK_KERNEL_ARCH_PXA
+ select ADK_KERNEL_PXA_SHARPSL
+ select ADK_KERNEL_MACH_SPITZ
+ select ADK_KERNEL_SPI_PXA2XX
+ select ADK_TARGET_NO_FPU
+ select ADK_HARDWARE_QEMU
+ help
+ Support for Qemu Emulator (arm).
+ Optimized for PXA270 Spitz.
diff --git a/target/config/Config.in b/target/config/Config.in
index adc499752..58a27cbbd 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -348,6 +348,7 @@ 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_X86
+ default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_QEMU_ARM
default "console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH
default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
@@ -462,6 +463,7 @@ config ADK_TARGET_ROOTFS_INITRAMFS
ADK_LINUX_X86_64 || \
ADK_LINUX_NATIVE
select ADK_KERNEL_BLK_DEV_INITRD
+ select ADK_KERNEL_RD_XZ
help
create an read-only initramfs system.
diff --git a/target/linux/Config.in b/target/linux/Config.in
index 7b52a3003..1b78cecb5 100644
--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -20,6 +20,7 @@ source target/linux/config/Config.in.misc
source target/linux/config/Config.in.mips
source target/linux/config/Config.in.lib
source target/linux/config/Config.in.pm
+source target/linux/config/Config.in.serial
source target/linux/config/Config.in.spi
source target/linux/config/Config.in.kvm
source target/linux/config/Config.in.debug
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
new file mode 100644
index 000000000..3451046de
--- /dev/null
+++ b/target/linux/config/Config.in.serial
@@ -0,0 +1,8 @@
+config ADK_KERNEL_SERIAL_PXA
+ boolean
+ default y if ADK_TARGET_SYSTEM_QEMU_ARM
+
+config ADK_KERNEL_SERIAL_PXA_CONSOLE
+ boolean
+ default y if ADK_TARGET_SYSTEM_QEMU_ARM
+
diff --git a/target/linux/config/Config.in.spi b/target/linux/config/Config.in.spi
index a141f8231..73db5e86d 100644
--- a/target/linux/config/Config.in.spi
+++ b/target/linux/config/Config.in.spi
@@ -12,3 +12,7 @@ config ADK_KERNEL_SPI_RB4XX
config ADK_KERNEL_SPI_RB4XX_CPLD
select ADK_KERNEL_SPI
boolean
+
+config ADK_KERNEL_SPI_PXA2XX
+ select ADK_KERNEL_SPI
+ boolean
diff --git a/target/linux/config/Config.in.systems b/target/linux/config/Config.in.systems
index 5c420eb2b..24baa864e 100644
--- a/target/linux/config/Config.in.systems
+++ b/target/linux/config/Config.in.systems
@@ -35,6 +35,15 @@ config ADK_KERNEL_LEMOTE_MACH2F
boolean
# arm systems
+config ADK_KERNEL_ARCH_PXA
+ boolean
+
+config ADK_KERNEL_PXA_SHARPSL
+ boolean
+
+config ADK_KERNEL_MACH_SPITZ
+ boolean
+
config ADK_KERNEL_ARCH_AT91
boolean