diff mbox

QEMU+Linux ARMv7A current state

Message ID 5611F80F.3040006@roeck-us.net
State New
Headers show

Commit Message

Guenter Roeck Oct. 5, 2015, 4:09 a.m. UTC
On 10/04/2015 07:21 PM, Peter Crosthwaite wrote:
> On Sun, Oct 4, 2015 at 6:08 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>> On 10/04/2015 02:38 PM, Beniamino Galvani wrote:
>>>
>>> On Sun, Oct 04, 2015 at 02:11:35PM -0700, Guenter Roeck wrote:
>>>>
>>>> What is your qemu command line ?
>>>
>>>
>>> qemu-system-arm \
>>>               -M cubieboard \
>>>               -kernel ../linux/zImage-dtb \
>>>               -serial stdio \
>>>               -append "console=ttyS0 rw root=/dev/nfs
>>> nfsroot=10.0.0.1:/nfs,v3 ip=10.0.0.22" \
>>>               -m 1024 \
>>>               -net nic,vlan=0,model=allwinner-emac \
>>>               -net tap,vlan=0,ifname=tap0,script=net-up.sh \
>>>               -s \
>>>               -d guest_errors
>>>
>>> Beniamino
>>>
>>
>> With the mainline kernel and sun4i-a10-cubieboard.dtb, this gives me lots of
>>
>> [    2.480983] Division by zero in kernel.
>> [    2.481074] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
>> 4.3.0-rc3-00055-gdd36d7393d63 #1
>> [    2.481250] Hardware name: Allwinner A1X (Device Tree)
>> [    2.481376] [<c02186a8>] (unwind_backtrace) from [<c0213d84>]
>> (show_stack+0x10/0x14)
>> [    2.481544] [<c0213d84>] (show_stack) from [<c047cff0>]
>> (dump_stack+0x78/0x94)
>> [    2.481700] [<c047cff0>] (dump_stack) from [<c047bb38>] (Ldiv0+0x8/0x10)
>> [    2.481848] [<c047bb38>] (Ldiv0) from [<c0886ab0>]
>> (sun4i_a10_get_mod0_factors+0x74/0xb8)
>> [    2.482024] [<c0886ab0>] (sun4i_a10_get_mod0_factors) from [<c08867e4>]
>> (clk_factors_determine_rate+0x68/0xfc)
>> [    2.482231] [<c08867e4>] (clk_factors_determine_rate) from [<c0871070>]
>> (clk_composite_determine_rate+0x94/0x1d0)
>> [    2.482443] [<c0871070>] (clk_composite_determine_rate) from [<c086c960>]
>> (clk_core_round_rate_nolock+0x84/0xa8)
>> [    2.482654] [<c086c960>] (clk_core_round_rate_nolock) from [<c086dcbc>]
>> (clk_round_rate+0x38/0x54)
>> [    2.482845] [<c086dcbc>] (clk_round_rate) from [<c084246c>]
>> (sunxi_mmc_set_ios+0x9c/0x314)
>> [    2.483023] [<c084246c>] (sunxi_mmc_set_ios) from [<c0814564>]
>> (mmc_power_up+0xf8/0x104)
>> [    2.483197] [<c0814564>] (mmc_power_up) from [<c08151d8>]
>> (mmc_start_host+0x44/0x6c)
>> [    2.483363] [<c08151d8>] (mmc_start_host) from [<c0816244>]
>> (mmc_add_host+0x58/0x7c)
>> [    2.483528] [<c0816244>] (mmc_add_host) from [<c0842b6c>]
>> (sunxi_mmc_probe+0x488/0x590)
>> [    2.483701] [<c0842b6c>] (sunxi_mmc_probe) from [<c06287d0>]
>> (platform_drv_probe+0x48/0xa4)
>>
>
> I think that's the expected warnings we have been ignoring. I have a
> hack to make them go away.
>

Division by zero isn't something that should be ignored.
Any idea where it is coming from ?

Also, is your hack in the kernel or in qemu ?

>> Do you have a special devicetree file ?
>>
>> It also doesn't seem to accept the qemu "initrd" argument, which is
>> unexpected.
>>
>
> Yes I noticed the same and went to the SATA solution.
>

Here is a one-line qemu fix for the initrd problem.

Guess that is less complex than getting sata to work ?

Thanks,
Guenter

Comments

Peter Crosthwaite Oct. 11, 2015, 4:33 p.m. UTC | #1
On Sun, Oct 4, 2015 at 9:09 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> On 10/04/2015 07:21 PM, Peter Crosthwaite wrote:
>>
>> On Sun, Oct 4, 2015 at 6:08 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>>>
>>> On 10/04/2015 02:38 PM, Beniamino Galvani wrote:
>>>>
>>>>
>>>> On Sun, Oct 04, 2015 at 02:11:35PM -0700, Guenter Roeck wrote:
>>>>>
>>>>>
>>>>> What is your qemu command line ?
>>>>
>>>>
>>>>
>>>> qemu-system-arm \
>>>>               -M cubieboard \
>>>>               -kernel ../linux/zImage-dtb \
>>>>               -serial stdio \
>>>>               -append "console=ttyS0 rw root=/dev/nfs
>>>> nfsroot=10.0.0.1:/nfs,v3 ip=10.0.0.22" \
>>>>               -m 1024 \
>>>>               -net nic,vlan=0,model=allwinner-emac \
>>>>               -net tap,vlan=0,ifname=tap0,script=net-up.sh \
>>>>               -s \
>>>>               -d guest_errors
>>>>
>>>> Beniamino
>>>>
>>>
>>> With the mainline kernel and sun4i-a10-cubieboard.dtb, this gives me lots
>>> of
>>>
>>> [    2.480983] Division by zero in kernel.
>>> [    2.481074] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
>>> 4.3.0-rc3-00055-gdd36d7393d63 #1
>>> [    2.481250] Hardware name: Allwinner A1X (Device Tree)
>>> [    2.481376] [<c02186a8>] (unwind_backtrace) from [<c0213d84>]
>>> (show_stack+0x10/0x14)
>>> [    2.481544] [<c0213d84>] (show_stack) from [<c047cff0>]
>>> (dump_stack+0x78/0x94)
>>> [    2.481700] [<c047cff0>] (dump_stack) from [<c047bb38>]
>>> (Ldiv0+0x8/0x10)
>>> [    2.481848] [<c047bb38>] (Ldiv0) from [<c0886ab0>]
>>> (sun4i_a10_get_mod0_factors+0x74/0xb8)
>>> [    2.482024] [<c0886ab0>] (sun4i_a10_get_mod0_factors) from
>>> [<c08867e4>]
>>> (clk_factors_determine_rate+0x68/0xfc)
>>> [    2.482231] [<c08867e4>] (clk_factors_determine_rate) from
>>> [<c0871070>]
>>> (clk_composite_determine_rate+0x94/0x1d0)
>>> [    2.482443] [<c0871070>] (clk_composite_determine_rate) from
>>> [<c086c960>]
>>> (clk_core_round_rate_nolock+0x84/0xa8)
>>> [    2.482654] [<c086c960>] (clk_core_round_rate_nolock) from
>>> [<c086dcbc>]
>>> (clk_round_rate+0x38/0x54)
>>> [    2.482845] [<c086dcbc>] (clk_round_rate) from [<c084246c>]
>>> (sunxi_mmc_set_ios+0x9c/0x314)
>>> [    2.483023] [<c084246c>] (sunxi_mmc_set_ios) from [<c0814564>]
>>> (mmc_power_up+0xf8/0x104)
>>> [    2.483197] [<c0814564>] (mmc_power_up) from [<c08151d8>]
>>> (mmc_start_host+0x44/0x6c)
>>> [    2.483363] [<c08151d8>] (mmc_start_host) from [<c0816244>]
>>> (mmc_add_host+0x58/0x7c)
>>> [    2.483528] [<c0816244>] (mmc_add_host) from [<c0842b6c>]
>>> (sunxi_mmc_probe+0x488/0x590)
>>> [    2.483701] [<c0842b6c>] (sunxi_mmc_probe) from [<c06287d0>]
>>> (platform_drv_probe+0x48/0xa4)
>>>
>>
>> I think that's the expected warnings we have been ignoring. I have a
>> hack to make them go away.
>>
>
> Division by zero isn't something that should be ignored.
> Any idea where it is coming from ?
>
> Also, is your hack in the kernel or in qemu ?
>
>>> Do you have a special devicetree file ?
>>>
>>> It also doesn't seem to accept the qemu "initrd" argument, which is
>>> unexpected.
>>>
>>
>> Yes I noticed the same and went to the SATA solution.
>>
>
> Here is a one-line qemu fix for the initrd problem.
>
> diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c
> index 1582250..db3ec40 100644
> --- a/hw/arm/cubieboard.c
> +++ b/hw/arm/cubieboard.c
> @@ -71,6 +71,7 @@ static void cubieboard_init(MachineState *machine)
>      cubieboard_binfo.ram_size = machine->ram_size;
>      cubieboard_binfo.kernel_filename = machine->kernel_filename;
>      cubieboard_binfo.kernel_cmdline = machine->kernel_cmdline;
> +    cubieboard_binfo.initrd_filename = machine->initrd_filename;
>      arm_load_kernel(&s->a10->cpu, &cubieboard_binfo);
>  }
>
> Guess that is less complex than getting sata to work ?
>

Makes sense. Do you (or Beniamino) want to spin the patch? Ideally we
should support both SATA and initrd.

Regards,
Peter

> Thanks,
> Guenter
>
diff mbox

Patch

diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c
index 1582250..db3ec40 100644
--- a/hw/arm/cubieboard.c
+++ b/hw/arm/cubieboard.c
@@ -71,6 +71,7 @@  static void cubieboard_init(MachineState *machine)
      cubieboard_binfo.ram_size = machine->ram_size;
      cubieboard_binfo.kernel_filename = machine->kernel_filename;
      cubieboard_binfo.kernel_cmdline = machine->kernel_cmdline;
+    cubieboard_binfo.initrd_filename = machine->initrd_filename;
      arm_load_kernel(&s->a10->cpu, &cubieboard_binfo);
  }