qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 08/28] mips_malta: do not use isa_mmio


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH 08/28] mips_malta: do not use isa_mmio
Date: Wed, 28 Aug 2013 13:03:01 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Jul 22, 2013 at 03:54:18PM +0200, Paolo Bonzini wrote:
> This fixes endianness bugs in I/O port access.

It looks like it actually did the reverse, ie introducing endianness
bugs. With this patch, the pcnet-pci NIC (default NIC card) doesn't work
any more on big endian Malta, while it still works on little endian
Malta.

Reverting this commit fixes the issue for the pcnet card, but it makes
the IDE controller to fail, likely due to endianness issues.

This is reproducible using the following kernel and the following line:

http://ftp.debian.org/debian/dists/wheezy/main/installer-mips/current/images/malta/netboot/vmlinux-3.2.0-4-4kc-malta
qemu-system-mips -kernel vmlinux-3.2.0-4-4kc-malta -nographic 

In that case the boot log is:

| [    0.464000] pcnet32: pcnet32.c:v1.35 21.Apr.2008 address@hidden
| [    0.464000] PCI: Enabling device 0000:00:0b.0 (0000 -> 0003)
| [    0.468000] pcnet32: No access methods

Without this patch, the boot log is:

| [    0.524000] pcnet32: pcnet32.c:v1.35 21.Apr.2008 address@hidden
| [    0.524000] PCI: Enabling device 0000:00:0b.0 (0000 -> 0003)
| [    0.524000] pcnet32: PCnet/PCI II 79C970A at 0x1020, 52:54:00:12:34:56 
assigned IRQ 10
| [    0.528000] pcnet32: eth0: registered as PCnet/PCI II 79C970A
| [    0.532000] pcnet32: 1 cards_found

> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  hw/mips/gt64xxx_pci.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c
> index 5843417..3da2e67 100644
> --- a/hw/mips/gt64xxx_pci.c
> +++ b/hw/mips/gt64xxx_pci.c
> @@ -304,7 +304,8 @@ static void gt64120_pci_mapping(GT64120State *s)
>        s->PCI0IO_length = ((s->regs[GT_PCI0IOHD] + 1) - (s->regs[GT_PCI0IOLD] 
> & 0x7f)) << 21;
>        isa_mem_base = s->PCI0IO_start;
>        if (s->PCI0IO_length) {
> -          isa_mmio_setup(&s->PCI0IO_mem, s->PCI0IO_length);
> +          memory_region_init_alias(&s->PCI0IO_mem, OBJECT(s), "isa_mmio",
> +                                   get_system_io(), 0, s->PCI0IO_length);
>            memory_region_add_subregion(get_system_memory(), s->PCI0IO_start,
>                                        &s->PCI0IO_mem);
>        }
> -- 
> 1.8.1.4
> 
> 
> 
> 

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
address@hidden                 http://www.aurel32.net



reply via email to

[Prev in Thread] Current Thread [Next in Thread]