Openembedded Devel Discussions
 help / color / mirror / Atom feed
* [oe-core 1/5] qemu: Add cpio to the list of image filesystem types.
@ 2013-08-29 18:35 Elvis Dowson
  2013-08-29 18:35 ` [oe-core 2/5] qemu: Add support for qemuarma9 Elvis Dowson
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Elvis Dowson @ 2013-08-29 18:35 UTC (permalink / raw)
  To: openembedded-devel; +Cc: bruce.ashfield, Elvis Dowson

Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
---
 meta/conf/machine/include/qemu.inc |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc
index 545f8d1..d5c95ff 100644
--- a/meta/conf/machine/include/qemu.inc
+++ b/meta/conf/machine/include/qemu.inc
@@ -15,7 +15,7 @@ MACHINE_FEATURES = "apm alsa pcmcia bluetooth irda usbgadget screen"
 
 MACHINEOVERRIDES =. "qemuall:"
 
-IMAGE_FSTYPES += "tar.bz2 ext3"
+IMAGE_FSTYPES += "cpio tar.bz2 ext3"
 
 # Don't include kernels in standard images
 RDEPENDS_kernel-base = ""
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [oe-core 2/5] qemu: Add support for qemuarma9.
  2013-08-29 18:35 [oe-core 1/5] qemu: Add cpio to the list of image filesystem types Elvis Dowson
@ 2013-08-29 18:35 ` Elvis Dowson
  2013-08-29 18:35 ` [oe-core 3/5] qemu: Add support for qemuarmv7 Elvis Dowson
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Elvis Dowson @ 2013-08-29 18:35 UTC (permalink / raw)
  To: openembedded-devel; +Cc: bruce.ashfield, Elvis Dowson

This commit
- adds support for qemuarma9 machine support based on the vexpress-a9
  platform.

Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
---
 meta/conf/machine/qemuarma9.conf |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 meta/conf/machine/qemuarma9.conf

diff --git a/meta/conf/machine/qemuarma9.conf b/meta/conf/machine/qemuarma9.conf
new file mode 100644
index 0000000..a46e28c
--- /dev/null
+++ b/meta/conf/machine/qemuarma9.conf
@@ -0,0 +1,24 @@
+#@TYPE: Machine
+#@NAME: qemuarma9
+#@DESCRIPTION: Machine configuration for QEMU ARM Cortex-A9.
+
+# Specify the default tune.
+DEFAULTTUNE = "armv7a-neon"
+
+require conf/machine/include/qemu.inc
+require conf/machine/include/tune-cortexa9.inc
+
+# Specify the preferred kernel version.
+PREFERRED_VERSION_linux-yocto ?= "3.8%"
+
+# Specify the kernel devicetree.
+KERNEL_DEVICETREE = "vexpress-v2p-ca9.dtb"
+
+# Specify the machine name used by the kernel.
+KMACHINE_qemuarma9 = "vexpress"
+
+# Specify the kernel image type.
+KERNEL_IMAGETYPE = "uImage"
+
+# Specify the serial console parameters.
+SERIAL_CONSOLE = "115200 ttyAMA0"
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [oe-core 3/5] qemu: Add support for qemuarmv7.
  2013-08-29 18:35 [oe-core 1/5] qemu: Add cpio to the list of image filesystem types Elvis Dowson
  2013-08-29 18:35 ` [oe-core 2/5] qemu: Add support for qemuarma9 Elvis Dowson
@ 2013-08-29 18:35 ` Elvis Dowson
  2013-08-29 18:35 ` [oe-core 4/5] linux-yocto: Add support for qemuarmv7 and qemuarma9 Elvis Dowson
  2013-08-29 18:35 ` [oe-core 5/5] qemu: runqemu: Add support for launching qemuarmv7 and qemuarma9 machine configurations Elvis Dowson
  3 siblings, 0 replies; 6+ messages in thread
From: Elvis Dowson @ 2013-08-29 18:35 UTC (permalink / raw)
  To: openembedded-devel; +Cc: bruce.ashfield, Elvis Dowson

This commit
- adds support for qemuarmv7 machine support based on the beagleboard
  platform.

Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
---
 meta/conf/machine/qemuarmv7.conf |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100644 meta/conf/machine/qemuarmv7.conf

diff --git a/meta/conf/machine/qemuarmv7.conf b/meta/conf/machine/qemuarmv7.conf
new file mode 100644
index 0000000..7f70ddb
--- /dev/null
+++ b/meta/conf/machine/qemuarmv7.conf
@@ -0,0 +1,18 @@
+#@TYPE: Machine
+#@NAME: qemuarmv7
+#@DESCRIPTION: Machine configuration for QEMU ARM Cortex-A8.
+
+# Specify the default tune.
+DEFAULTTUNE = "armv7a-neon"
+
+require conf/machine/include/qemu.inc
+require conf/machine/include/tune-cortexa8.inc
+
+# Specify the preferred kernel version.
+PREFERRED_VERSION_linux-yocto ?= "3.8%"
+
+# Specify the machine name used by the kernel.
+KMACHINE_qemuarmv7 = "beagleboard"
+
+# Specify the serial console parameters.
+SERIAL_CONSOLE = "115200 ttyO2"
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [oe-core 4/5] linux-yocto: Add support for qemuarmv7 and qemuarma9.
  2013-08-29 18:35 [oe-core 1/5] qemu: Add cpio to the list of image filesystem types Elvis Dowson
  2013-08-29 18:35 ` [oe-core 2/5] qemu: Add support for qemuarma9 Elvis Dowson
  2013-08-29 18:35 ` [oe-core 3/5] qemu: Add support for qemuarmv7 Elvis Dowson
@ 2013-08-29 18:35 ` Elvis Dowson
       [not found]   ` <521F963F.3070801@windriver.com>
  2013-08-29 18:35 ` [oe-core 5/5] qemu: runqemu: Add support for launching qemuarmv7 and qemuarma9 machine configurations Elvis Dowson
  3 siblings, 1 reply; 6+ messages in thread
From: Elvis Dowson @ 2013-08-29 18:35 UTC (permalink / raw)
  To: openembedded-devel; +Cc: bruce.ashfield, Elvis Dowson

This commit
- adds qemuarmv7 and qemuarma9 to the list of compatible machines.

Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
---
 meta/recipes-kernel/linux/linux-yocto_3.8.bb |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-kernel/linux/linux-yocto_3.8.bb b/meta/recipes-kernel/linux/linux-yocto_3.8.bb
index 790e3e3..0bd9913 100644
--- a/meta/recipes-kernel/linux/linux-yocto_3.8.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_3.8.bb
@@ -21,7 +21,7 @@ PV = "${LINUX_VERSION}+git${SRCPV}"
 
 KMETA = "meta"
 
-COMPATIBLE_MACHINE = "qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
+COMPATIBLE_MACHINE = "qemuarm|qemuarmv7|qemuarma9|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
 
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [oe-core 5/5] qemu: runqemu: Add support for launching qemuarmv7 and qemuarma9 machine configurations.
  2013-08-29 18:35 [oe-core 1/5] qemu: Add cpio to the list of image filesystem types Elvis Dowson
                   ` (2 preceding siblings ...)
  2013-08-29 18:35 ` [oe-core 4/5] linux-yocto: Add support for qemuarmv7 and qemuarma9 Elvis Dowson
@ 2013-08-29 18:35 ` Elvis Dowson
  3 siblings, 0 replies; 6+ messages in thread
From: Elvis Dowson @ 2013-08-29 18:35 UTC (permalink / raw)
  To: openembedded-devel; +Cc: bruce.ashfield, Elvis Dowson

This commit
- adds support for launching qemuarmv7 and qemuarmv9 machine configurations.

Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
---
 scripts/runqemu          |   14 ++++++++---
 scripts/runqemu-internal |   58 ++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 65 insertions(+), 7 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 04dc3b0..3282893 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -39,6 +39,8 @@ usage() {
     echo ""
     echo "Examples:"
     echo "  $MYNAME qemuarm"
+    echo "  $MYNAME qemuarmv7"
+    echo "  $MYNAME qemuarma9"
     echo "  $MYNAME qemux86-64 core-image-sato ext3"
     echo "  $MYNAME path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
     echo "  $MYNAME qemux86 ramfs"
@@ -107,7 +109,7 @@ KVM_ENABLED="no"
 while true; do
     arg=${1}
     case "$arg" in
-        "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemumipsel" | \
+        "qemux86" | "qemux86-64" | "qemuarm" |  "qemuarmv7" | "qemuarma9" |"qemumips" | "qemumipsel" | \
         "qemumips64" | "qemush4"  | "qemuppc" | "qemumicroblaze" | "qemuzynq")
             [ -z "$MACHINE" ] && MACHINE=$arg || \
                 error "conflicting MACHINE types [$MACHINE] and [$arg]"
@@ -224,13 +226,13 @@ fi
 
 if [ -z "$MACHINE" ]; then
     if [ "x$FSTYPE" = "xvmdk" ]; then
-        MACHINE=`basename $VM | sed 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/'`
+        MACHINE=`basename $VM | sed 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemuarmv7\|qemuarma9\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/'`
         if [ -z "$MACHINE" ]; then
             error "Unable to set MACHINE from vmdk filename [$VM]"
         fi
         echo "Set MACHINE to [$MACHINE] based on vmdk [$VM]"
     else
-        MACHINE=`basename $KERNEL | sed 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/'`
+        MACHINE=`basename $KERNEL | sed 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemuarmv7\|qemuarma9\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/'`
         if [ -z "$MACHINE" ]; then
             error "Unable to set MACHINE from kernel filename [$KERNEL]"
         fi
@@ -294,6 +296,12 @@ QEMUX86_64_DEFAULT_FSTYPE=ext3
 QEMUARM_DEFAULT_KERNEL=zImage-qemuarm.bin
 QEMUARM_DEFAULT_FSTYPE=ext3
 
+QEMUARMV7_DEFAULT_KERNEL=zImage-qemuarmv7.bin
+QEMUARMV7_DEFAULT_FSTYPE=ext3
+
+QEMUARMA9_DEFAULT_KERNEL=uImage
+QEMUARMA9_DEFAULT_FSTYPE=cpio
+
 QEMUMIPS_DEFAULT_KERNEL=vmlinux-qemumips.bin
 QEMUMIPS_DEFAULT_FSTYPE=ext3
 
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 8a6e551..3f35054 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -50,6 +50,12 @@ else
         "qemuarm")
             mem_size=128
             ;;
+        "qemuarmv7")
+            mem_size=1024
+            ;;
+        "qemuarma9")
+            mem_size=1024
+            ;;
         "qemumicroblaze")
             mem_size=64
             ;;
@@ -267,6 +273,8 @@ fi
 
 case "$MACHINE" in
     "qemuarm") ;;
+    "qemuarmv7") ;;
+    "qemuarma9") ;;
     "qemumicroblaze") ;;
     "qemumips") ;;
     "qemumipsel") ;;
@@ -325,7 +333,7 @@ if [ "$NFS_SERVER" = "" ]; then
     NFS_DIR=$ROOTFS
 fi
 
-if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "qemuarmv6" -o "$MACHINE" = "qemuarmv7" ]; then
+if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "qemuarmv6" ]; then
     QEMU=qemu-system-arm
     MACHINE_SUBTYPE=versatilepb
     export QEMU_AUDIO_DRV="none"
@@ -347,8 +355,50 @@ if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "qemuarmv6" -o "$MACHINE" = "qemuarm
     if [ "$MACHINE" = "qemuarmv6" ]; then
         QEMUOPTIONS="$QEMUOPTIONS -cpu arm1136"
     fi
-    if [ "$MACHINE" = "qemuarmv7" ]; then
-        QEMUOPTIONS="$QEMUOPTIONS -cpu cortex-a8"
+fi
+
+if [ "$MACHINE" = "qemuarmv7" ]; then
+    QEMU=qemu-system-arm
+    MACHINE_SUBTYPE=beagle
+    export QEMU_AUDIO_DRV="none"
+    QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
+    # QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -force-pointer"
+    if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" ]; then
+        KERNCMDLINE="root=/dev/sda rw console=ttyO2,115200 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY highres=off"
+        QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} -cpu cortex-a8 -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS"
+    fi
+
+    if [ "$FSTYPE" = "nfs" ]; then
+        if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
+            echo "Error: NFS mount point $ROOTFS doesn't exist"
+            cleanup
+            return 1
+        fi
+        KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
+        QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} --no-reboot $QEMU_UI_OPTIONS"
+    fi
+fi
+
+if [ "$MACHINE" = "qemuarma9" ]; then
+    QEMU=qemu-system-arm
+    MACHINE_SUBTYPE=vexpress-a9
+    export QEMU_AUDIO_DRV="none"
+    QEMU_UI_OPTIONS="-show-cursor -usb"
+    # QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -force-pointer"
+    if [ "${FSTYPE:0:3}" = "ext" -o "${FSTYPE:0:4}" = "cpio" ]; then
+        KERNCMDLINE="earlyprintk root=/dev/ram0 rw console=ttyAMA0,38400n8 rootwait vmalloc=256MB devtmpfs.mount=0 console=tty mem=$QEMU_MEMORY highres=off"
+        QEMUOPTIONS="-M ${MACHINE_SUBTYPE} -cpu cortex-a9 -m 1024 -initrd $ROOTFS"
+        #QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS"
+    fi
+
+    if [ "$FSTYPE" = "nfs" ]; then
+        if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
+            echo "Error: NFS mount point $ROOTFS doesn't exist"
+            cleanup
+            return 1
+        fi
+        KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
+        QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} --no-reboot $QEMU_UI_OPTIONS"
     fi
 fi
 
@@ -522,7 +572,7 @@ fi
 
 if [ "x$RAMFS" = "xtrue" ]; then
     QEMUOPTIONS="-initrd $ROOTFS -nographic"
-    KERNCMDLINE="root=/dev/ram0 debugshell"
+    KERNCMDLINE="earlyprintk root=/dev/ram debugshell"
 fi
 
 if [ "x$ISOFS" = "xtrue" ]; then
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [oe-core 4/5] linux-yocto: Add support for qemuarmv7 and qemuarma9.
       [not found]   ` <521F963F.3070801@windriver.com>
@ 2013-08-29 18:48     ` Elvis Dowson
  0 siblings, 0 replies; 6+ messages in thread
From: Elvis Dowson @ 2013-08-29 18:48 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: openembedded-devel

Hi Bruce,

On Aug 29, 2013, at 10:43 PM, Bruce Ashfield <bruce.ashfield@windriver.com> wrote:

> On 13-08-29 02:35 PM, Elvis Dowson wrote:
>> This commit
>> - adds qemuarmv7 and qemuarma9 to the list of compatible machines.
>> 
>> Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
>> ---
>>  meta/recipes-kernel/linux/linux-yocto_3.8.bb |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/meta/recipes-kernel/linux/linux-yocto_3.8.bb b/meta/recipes-kernel/linux/linux-yocto_3.8.bb
>> index 790e3e3..0bd9913 100644
>> --- a/meta/recipes-kernel/linux/linux-yocto_3.8.bb
>> +++ b/meta/recipes-kernel/linux/linux-yocto_3.8.bb
>> @@ -21,7 +21,7 @@ PV = "${LINUX_VERSION}+git${SRCPV}"
>> 
>>  KMETA = "meta"
>> 
>> -COMPATIBLE_MACHINE = "qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
>> +COMPATIBLE_MACHINE = "qemuarm|qemuarmv7|qemuarma9|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
> 
> We can add compatibility, but the same question needs to be asked
> to Richard when we added qemumips64: does the project have the capacity
> to build and QA the machines by default.
> 
> We can always get everything working in layers for the time being and
> then move them into the core, once everything is working well, and
> everyone agrees to add the extra support load.

I recommend that we create a new meta-qemu layer, to support development of
qemu machine configurations for
qemuarmv7 (useful for emulating TI OMAP 3 based platforms)
qemuarma9 (useful for emulating TI OMAP 4 and Freescale i.MX6 platforms)
qemuarmv8 (for AArch64 platforms)
qemumips64 
etc

That should just about cover current ARM A8, A9, A15 and MIPS64.

Best regards,

Elvis Dowson



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-08-29 18:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-29 18:35 [oe-core 1/5] qemu: Add cpio to the list of image filesystem types Elvis Dowson
2013-08-29 18:35 ` [oe-core 2/5] qemu: Add support for qemuarma9 Elvis Dowson
2013-08-29 18:35 ` [oe-core 3/5] qemu: Add support for qemuarmv7 Elvis Dowson
2013-08-29 18:35 ` [oe-core 4/5] linux-yocto: Add support for qemuarmv7 and qemuarma9 Elvis Dowson
     [not found]   ` <521F963F.3070801@windriver.com>
2013-08-29 18:48     ` Elvis Dowson
2013-08-29 18:35 ` [oe-core 5/5] qemu: runqemu: Add support for launching qemuarmv7 and qemuarma9 machine configurations Elvis Dowson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox