summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/modules.mk11
-rw-r--r--mk/rootfs.mk3
-rw-r--r--target/config/Config.in17
-rw-r--r--target/linux/Config.in1
-rw-r--r--target/linux/config/Config.in.virtio37
-rw-r--r--target/sparc64/Makefile7
-rw-r--r--target/sparc64/kernel/qemu-sparc644
7 files changed, 75 insertions, 5 deletions
diff --git a/mk/modules.mk b/mk/modules.mk
index f5660ba97..00667de3e 100644
--- a/mk/modules.mk
+++ b/mk/modules.mk
@@ -1736,3 +1736,14 @@ $(eval $(call KMOD_template,SCx200_ACB,scx200-acb,\
$(MODULES_DIR)/kernel/drivers/i2c/busses/scx200_acb \
,25))
+#
+# VirtIO
+#
+$(eval $(call KMOD_template,VIRTIO_BLK,virtio-block,\
+ $(MODULES_DIR)/kernel/drivers/net/virtio_blk \
+,20))
+
+$(eval $(call KMOD_template,VIRTIO_NET,virtio-net,\
+ $(MODULES_DIR)/kernel/drivers/net/virtio_net \
+,40))
+
diff --git a/mk/rootfs.mk b/mk/rootfs.mk
index f1d0bdf3a..5ec5f3107 100644
--- a/mk/rootfs.mk
+++ b/mk/rootfs.mk
@@ -13,6 +13,9 @@ MTDDEV:= root=/dev/mtdblock0
ifeq ($(ADK_TARGET_ROOTFS_ARCHIVE),y)
ROOTFS:= root=/dev/sda1
endif
+ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
+ROOTFS:= root=/dev/vda1
+endif
endif
ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y)
diff --git a/target/config/Config.in b/target/config/Config.in
index b047742b7..99e810528 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -172,6 +172,23 @@ config ADK_TARGET_KERNEL_MINICONFIG
default "raspberry-pi" if ADK_TARGET_SYSTEM_RASPBERRY_PI
choice
+prompt "Qemu Emulation using VirtIO drivers"
+depends on ADK_TARGET_SYSTEM_QEMU_SPARC64
+
+config ADK_TARGET_QEMU_WITH_VIRTIO
+ boolean "enabled"
+ select ADK_KERNEL_BLK_DEV
+ select ADK_KERNEL_VIRTIO
+ select ADK_KERNEL_VIRTIO_PCI
+ select ADK_KERNEL_VIRTIO_NET
+ select ADK_KERNEL_VIRTIO_BLK
+
+config ADK_TARGET_QEMU_WITHOUT_VIRTIO
+ boolean "disabled"
+
+endchoice
+
+choice
prompt "Qemu MICROBLAZE Emulation"
depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE || ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL
diff --git a/target/linux/Config.in b/target/linux/Config.in
index e4b81dd2f..f4ead4caf 100644
--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -25,3 +25,4 @@ 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
+source target/linux/config/Config.in.virtio
diff --git a/target/linux/config/Config.in.virtio b/target/linux/config/Config.in.virtio
new file mode 100644
index 000000000..51cf67d54
--- /dev/null
+++ b/target/linux/config/Config.in.virtio
@@ -0,0 +1,37 @@
+config ADK_KERNEL_VIRTIO
+ boolean
+
+config ADK_KERNEL_VIRTIO_PCI
+ boolean
+
+config ADK_KERNEL_VIRTIO_NET
+ boolean
+
+config ADK_KERNEL_VIRTIO_BLK
+ boolean
+
+menu "Virtio driver support"
+depends on !ADK_TARGET_QEMU_WITH_VIRTIO
+
+config ADK_KPACKAGE_KMOD_VIRTIO_NET
+ prompt "kmod-virtio-net.................... Virtio net driver"
+ tristate
+ select ADK_KERNEL_VIRTIO
+ select ADK_KERNEL_VIRTIO_PCI
+ depends on !ADK_KERNEL_VIRTIO_NET
+ default n
+ help
+ Enables support for Virtio Net driver.
+
+config ADK_KPACKAGE_KMOD_VIRTIO_BLK
+ prompt "kmod-virtio-block.................. Virtio block driver"
+ tristate
+ select ADK_KERNEL_VIRTIO
+ select ADK_KERNEL_VIRTIO_PCI
+ select ADK_KERNEL_BLK_DEV
+ depends on !ADK_KERNEL_VIRTIO_BLK
+ default n
+ help
+ Enables support for Virtio Block driver.
+
+endmenu
diff --git a/target/sparc64/Makefile b/target/sparc64/Makefile
index 73f765f96..7a31c1499 100644
--- a/target/sparc64/Makefile
+++ b/target/sparc64/Makefile
@@ -18,7 +18,12 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_SPARC64),y)
@echo "Use following command to create a QEMU Image:"
@echo "./scripts/create.sh +g qemu-${CPU_ARCH}.img $(BIN_DIR)/$(ROOTFSTARBALL)"
@echo "Start qemu with following command line:"
- @echo 'qemu-system-sparc64 -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img -append "root=/dev/sda1"'
+ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
+ @echo 'qemu-system-sparc64 -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -drive file=qemu-${CPU_ARCH}.img,if=virtio,index=0 \
+ -net nic,model=virtio -net user'
+else
+ @echo 'qemu-system-sparc64 -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+endif
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
diff --git a/target/sparc64/kernel/qemu-sparc64 b/target/sparc64/kernel/qemu-sparc64
index 73e26ec4d..5119f1225 100644
--- a/target/sparc64/kernel/qemu-sparc64
+++ b/target/sparc64/kernel/qemu-sparc64
@@ -16,10 +16,6 @@ CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ATA=y
-CONFIG_ATA_SFF=y
-CONFIG_ATA_BMDMA=y
-CONFIG_PATA_CMD64X=y
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
CONFIG_ETHERNET=y