qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] QEMU powerpc embedded architecture base address problem


From: Alexander Graf
Subject: Re: [Qemu-ppc] QEMU powerpc embedded architecture base address problem
Date: Wed, 12 Jun 2013 16:38:39 +0200

On 14.05.2013, at 13:35, Sijia Li wrote:

> On 13/05/13 13:51, Alexander Graf wrote:
>> On 13.05.2013, at 13:34, Sijia Li wrote:
>> 
>>> On 13/05/13 11:24, Alexander Graf wrote:
>>>> On 13.05.2013, at 11:18, 李思嘉 wrote:
>>>> 
>>>>> Thanks a lot. 
>>>> Please don't top post. Please always keep qemu-ppc CC'ed.
>>>> 
>>>>> I am using the newest version of QEMU, which is QEMU 1.5.0. I want to 
>>>>> test my network card driver for NE2000. But it seems like it doesn't 
>>>>> support NE2000 when I add attribute -M ref405ep -cpu 401100c4 or -M taihu 
>>>>> -cpu 401100c4. Because after running the virtual machine, there warning 
>>>>> shows up:
>>>>> 
>>>>> Warning: hub port hub0port1 has no peer
>>>>> Warning: vlan 0 with no nics
>>>>> Warning: netdev hub0port1 has no peer
>>>>> Warning: requested NIC (anonymous, model ne2k_pci) was not created (not 
>>>>> supported by this machine?)
>>>>> 
>>>>> I read the QEMU Emulator User Documentation, it said the user can add 
>>>>> attribute "-net nic, model=?" to get the list of available devices for 
>>>>> the specific target.
>>>>> But it doesn't work. 
>>>>> 
>>>>> So what can I do for creating a NIC in ref405ep or taihu platform? Or if 
>>>>> both of  these platforms can't add NIC, what else platforms which runs 
>>>>> with CPU powerpc 405 can add a NE2000 NIC or other network card?
>>>> It looks as if the 40x machine models don't spawn NICs according to the 
>>>> -net configuration then. As mentioned in my earlier email, they aren't 
>>>> actively developed anymore. Currently actively developed targets are: 
>>>> e500plat, mpc8544ds, bamboo, prep, g3beige, mac99, pseries.
>>>> 
>>>> You can try to spawn the ne2k device manually using -netdev and -device. 
>>>> If the PCI adapter on the respective SoCs has been qdev'ified, that should 
>>>> work despite the -net hickups.
>>>> 
>>>>  http://wiki.qemu.org/Documentation/Networking
>>>> 
>>>> 
>>>> Alex
>>> Sorry for the top post. From now, I will reply email from the end of the 
>>> mail.
>>> 
>>> I added attributes " -device ppc4xx-pcihost -device
>> This means that the machine doesn't spawn a PCI host controller. Does the 
>> board even have PCI?
>> 
>>> ne2k_pci -net tap". 
>>> 
>>> Two problems happened:
>>> 1. After running the emulator, I use telnet to monitor the VM. When I input 
>>> the command "info qtree", the result is as following.
>>> QEMU 1.4.91 monitor - type 'help' for more information
>>> (qemu) info qtree
>>> bus: main-system-bus
>>>  type System
>>>  dev: ppc4xx-pcihost, id ""
>>>    irq 4
>>>    mmio ffffffffffffffff/0000000000800040
>>>    bus: pci.0
>>>      type PCI
>>>      dev: ne2k_pci, id ""
>>>        mac = 52:54:00:12:34:56
>>>        vlan = <null>
>>>        netdev = <null>
>>>        bootindex = -1
>>>        addr = 01.0
>>>        romfile = "efi-ne2k_pci.rom"
>>>        rombar = 1
>>>        multifunction = off
>>>        command_serr_enable = on
>>>        class Ethernet controller, addr 00:01.0, pci id 10ec:8029 (sub 
>>> 1af4:1100)
>>>        bar 0: i/o at 0xffffffffffffffff [0xfe]
>>>        bar 6: mem at 0xffffffffffffffff [0x3fffe]
>>>      dev: ppc4xx-host-bridge, id ""
>>>        addr = 00.0
>>>        romfile = <null>
>>>        rombar = 1
>>>        multifunction = off
>>>        command_serr_enable = on
>>>        class Bridge, addr 00:00.0, pci id 1014:027f (sub 1af4:1100)
>>>  dev: m48t59, id ""
>>>    size = 8192
>>>    model = 8
>>>    io_base = 0x0
>>>    irq 1
>>>    mmio 00000000f0000000/0000000000002000
>>> 
>>> And the result of "info mtree" is as following:
>>> (qemu) info mtree
>>> memory
>>> 0000000000000000-7ffffffffffffffe (prio 0, RW): system
>>>  0000000000000000-0000000007ffffff (prio 0, RW): sdram-containers
>>>    0000000000000000-0000000007ffffff (prio 0, RW): ef405ep.ram
>>>  00000000ef600000-00000000ef6000d3 (prio 0, RW): gpt
>>>  00000000ef600300-00000000ef600307 (prio 0, RW): serial
>>>  00000000ef600500-00000000ef600510 (prio 0, RW): i2c
>>>  00000000ef600600-00000000ef600601 (prio 0, RW): opba
>>>  00000000ef600700-00000000ef600737 (prio 0, RW): pgio
>>>  00000000f0000000-00000000f0001fff (prio 0, RW): m48t59.nvram
>>>  00000000f0300000-00000000f03000ff (prio 0, RW): fpga
>>>  00000000fff00000-00000000fff7ffff (prio 0, RW): ef405ep.sram
>>>  00000000fff80000-000000010017ffff (prio 0, R-): ef405ep.bios
>>> I/O
>>> 0000000000000000-000000000000ffff (prio 0, RW): io
>>> aliases
>>> 
>>> Could you help me to find the base address of my NIC "ne2k_pci"?
>> The base address is defined through the BAR registers that your OS needs to 
>> set up inside of the PCI host controller.
>> 
>>> 2.  Warning: vlan 0 with no nics
>>>    Warning: nic ne2k_pci.0 has no peer
>>>    Two warnings show when I ran the emulator. 
>>> How can I fix these two warning?
>> Just pass -net none to qemu.
>> 
>> 
>> Alex
>> 
> Since our embedded operating system is developed for Virtex 4 platform,
> so there is no PCI host controller right now. If the network card will
> not work in this architecture, I will try to implement a PCI host
> controller for the operating system.
> 
> Then what's meaning of [0xfe] and {0x3fffe] in the PCI result?
> 
>  bar 0: i/o at 0xffffffffffffffff [0xfe]
>  bar 6: mem at 0xffffffffffffffff [0x3fffe]

IIRC that's the length of the region. These should be the equivalent of the len 
field being all ONEs.


Alex




reply via email to

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