[OE-core] [oe-core] QEMU with ARM Cortex A9 with hard float configuration - Kernel panic

Bruce Ashfield bruce.ashfield at windriver.com
Mon Aug 26 04:24:54 UTC 2013


On 13-08-25 11:58 PM, Elvis Dowson wrote:
> Hi Bruce,
>
> On Aug 26, 2013, at 5:03 AM, Bruce Ashfield <bruce.ashfield at windriver.com> wrote:
>
>> On 13-08-25 3:09 PM, Elvis Dowson wrote:
>>> I noticed that you've committed the changes for qemuarma9 KMACHINE configuration to the linux-yocto kernel.
>>>
>>> http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-3.8/tree/meta/cfg/kernel-cache/bsp?h=meta
>>>
>>> I adapted the qemuarm.conf configuration and booted it up, but nothing shows up in the QEMU window, I just get a black screen.
>>>
>>> Has qemu with the qemuarma9 configuration been successfully built and tested before?
>>
>> It has been, but not with a machine definition that is part of oe-core
>> or Yocto.
>>
>> It was contributed as the output from some cortexA9 testing, and I've
>> been carrying the kernel parts ever since.
>
> Can you share the qemucortexa9.conf machine definition please?

It's nearly identical to the one you posted:


require conf/machine/include/qemu.inc
require conf/machine/include/tune-cortexa9.inc


KERNEL_IMAGETYPE = "uImage"

SERIAL_CONSOLE = "115200 ttyAMA0"


>
>>
>>>
>>> This is how my qemuarm.conf looks like, locally at the moment:
>>>
>>> #@TYPE: Machine
>>> #@NAME: qemuarmhf
>>> #@DESCRIPTION: Machine configuration for QEMU ARM Cortex A9 hard float.
>>>
>>> # Specify the default tune.
>>> DEFAULTTUNE = "armv7a-neon"
>>>
>>> require conf/machine/include/qemu.inc
>>> require conf/machine/include/tune-cortexa9.inc
>>>
>>> # Specify the machine name used by the kernel.
>>> KMACHINE_qemuarm = "qemuarma9"
>>
>> This is a default, so you don't need to set it.
>
>
> The default for qemuarm, as documented in
>
> http://www.yoctoproject.org/docs/1.5/ref-manual/ref-manual.html#var-KFEATURE_DESCRIPTION
>
> is arm_versatile926ejs.
>
> So I had to modify it to force it to use qemuarma9.

Hah, when I read this I was thinking that you were talking about your new
machine name, and not clobbering qemuarm. So in this case, yes, that
would have been required.

>
>>
>>>
>>> # Specify the kernel image type.
>>> KERNEL_IMAGETYPE = "zImage"
>>
>> I recall booting it with a uImage, but maybe my memory is failing.
>>
>>>
>>> # Specify the serial console parameters.
>>> SERIAL_CONSOLE = "115200 ttyAMA0"
>>
>> All of the above looks reasonably sane, but it's more about how you
>> launch qemu than the kernel build that is probably resulting in your
>> issues. What machine subtype did you use ?
>
> I used -M versatilepb. I also passed the -cpu cortex-a9 parameter to qemu.

I launch with these:

  machine: -M vexpress-a9
  memory: 128
  console: ttyAMA0,115200"
  kernel options: oprofile.timer=1"

>
> I just got a blank screen.
>
> FYI, I was able to get the qemuzynq machine working with the meta-xilinx
> layer, and in that, there was also a blank screen, but the QEMU output
> and login prompt came on the console from where the rumqemu qemuzynq
> command was run. A different type of behaviour from that of qemuarm running
> arm_versatile926ejs.
>
> The qemuzynq machine uses the linux-xlnx kernel.

I've booted the same machine/qemu on kernels ranging from 3.4 to
3.10 with a few patches. :)

>
> I'd like to get a generic qemuarma9 machine configuration working with
> linux-yocto, if possible, and add it to the standard list of qemu targets.

The kernel support has been in place for some time, the problem is really
with the qemu system emulation. The vexpress-a9 doesn't support all of the
boot methods that other qemu models do, in particular I only NFS boot it
versus net boot, etc.

When I worked on this before (2 years ago now), I didn't want to just
switch the cpu, but was looking for a platform like the vexpress.

Perhaps the zynq machine definition is the right way to go, since nearly
enough support is mainline (in both qemu and the kernel), and we can
motivate the rest into their respective upstreams.

If someone can come up the right conf files, and machine definition, I
can pretty easily support it in linux-yocto.

Cheers,

Bruce

>
> Best regards,
>
> Elvis Dowson
>




More information about the Openembedded-core mailing list