[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [FYI] Soft feature freeze for 1.0 is 10/15 (
From: |
Alexander Graf |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [FYI] Soft feature freeze for 1.0 is 10/15 (three weeks away) |
Date: |
Thu, 29 Sep 2011 23:19:32 +0200 |
Am 29.09.2011 um 21:28 schrieb Blue Swirl <address@hidden>:
> On Wed, Sep 28, 2011 at 9:21 PM, Alexander Graf <address@hidden> wrote:
>>
>> On 27.09.2011, at 21:19, Blue Swirl wrote:
>>
>> On Tue, Sep 27, 2011 at 4:44 PM, Avi Kivity <address@hidden> wrote:
>>
>> On 09/27/2011 07:39 PM, Blue Swirl wrote:
>>
>>
>> Well, it's not that easy. As the other mapping is part of an ordinary
>>
>> BAR,
>>
>> you need to setup the device (at least PCI_COMMAND and
>>
>> PCI_BASE_ADDRESS_0)
>>
>> so it responds to memory requests, and also enable the bridge.
>>
>> We could hack it by having a low-priority mapping at 0x80013000, but it
>>
>> seems wrong. Maybe the firmware should configure that BAR first? What
>>
>> happens on real hardware?
>>
>> In this message I seem to confess that the address is arbitrary and in
>>
>> the subsequent messages the overlap with PCI region is also discussed.
>>
>> http://lists.nongnu.org/archive/html/qemu-devel/2009-01/msg00542.html
>>
>> Maybe the address of macio should be fixed as Laurent suggested.
>>
>> I'll leave it up to you - I'm out of my depth here.
>>
>> Meanwhile I suggest applying the pci alias patch - the bug is independent of
>>
>> the vga issue.
>>
>> OK, pushed.
>>
>>
>> Ah, after digging into the issue for a while myself I stumbled over this
>> thread, explaining what I figured would be the culprit. Please CC qemu-ppc
>> for these discussions :).
>> Either way, I'm seeing 2 issues here. I enhanced the "info mtree" command to
>> also display the region we're currently looking at, so the first tuple shows
>> the region we're in, the second tuple the region we're trying to map into
>> the first region (addresses aligned on each other). I also print out alias
>> information directly:
>
> That way you miss for example vga.chain4.
>
>> [ 00000000-7ffffffffffffffe ] 00000000-7ffffffffffffffe : system
>> [ 80013000-8001303f ] 80013000-8001303f : escc
>> [ fee00000-fee00fff ] fee00000-fee00fff : pci-data-idx
>> [ fec00000-fec00fff ] fec00000-fec00fff : pci-conf-idx
>> [ 80000000-fdffffff ] 80000000-fdffffff : pci-hole
>> -> alias (0000000080000000, 0000000000000000)
>> [ 80000000-fdffffff ] 00000000-ffffffff : pci-mmio
>> [ 80880000-808fffff ] 80880000-808fffff : macio
>> [ 808e0000-808fffff ] 808e0000-808fffff : macio-nvram
>> [ 808a0000-808a0fff ] 808a0000-808a0fff : pmac-ide
>> [ 80896000-80897fff ] 80896000-80897fff : cuda
>> [ 80893000-8089303f ] 80893000-8089303f : escc-bar
>> -> alias (0000000000000000, 0000000080013000)
>> [ 80893000-8089303f ] 80893000-8089303f : escc
>> [ 80888000-80888fff ] 80888000-80888fff : dbdma
>> [ 80880000-80880fff ] 80880000-80880fff : heathrow-pic
>> [ 80800000-8080ffff ] 80800000-8080ffff : vga.rom
>> [ 80000000-807fffff ] 80000000-807fffff : vga.vram
>> [ fe000000-fe1fffff ] fe000000-fe1fffff : isa-mmio
>> I/O
>> [ 00000000-0000ffff ] 00000000-0000ffff : io
>> [ 00000700-0000070f ] 00000700-0000070f : cmd646-bmdma
>> [ 0000070c-0000070f ] 0000070c-0000070f : cmd646-bmdma-ioport
>> [ 00000708-0000070b ] 00000708-0000070b : cmd646-bmdma-bus
>> [ 00000704-00000707 ] 00000704-00000707 : cmd646-bmdma-ioport
>> [ 00000700-00000703 ] 00000700-00000703 : cmd646-bmdma-bus
>> [ 00000680-00000683 ] 00000680-00000683 : cmd646-cmd
>> [ 00000600-00000607 ] 00000600-00000607 : cmd646-data
>> [ 00000580-00000583 ] 00000580-00000583 : cmd646-cmd
>> [ 00000500-00000507 ] 00000500-00000507 : cmd646-data
>> [ 00000400-000004ff ] 00000400-000004ff : ne2000
>> I did another small hack to display the flat memory view:
>> ranges[0] = { 80000000, 13000 } vga.vram
>> ranges[1] = { 80013000, 40 } escc
>> ranges[2] = { 80013040, 7ecfc0 } vga.vram
>> ranges[3] = { 80800000, 10000 } vga.rom
>> ranges[4] = { 80880000, 1000 } heathrow-pic
>> ranges[5] = { 80888000, 1000 } dbdma
>> ranges[6] = { 80893000, 40 } escc
>> ranges[7] = { 80896000, 2000 } cuda
>> ranges[8] = { 808a0000, 1000 } pmac-ide
>> ranges[9] = { 808e0000, 20000 } macio-nvram
>> ranges[10] = { fe000000, 200000 } isa-mmio
>> ranges[11] = { fec00000, 1000 } pci-conf-idx
>> ranges[12] = { fee00000, 1000 } pci-data-idx
>> Now to the issues:
>> 1)
>> ESCC is mapped inside the VGA region. That's what you discussed in this
>> thread. It's wrong. Please check this bug for a dump of a real G3 Beige's
>> memory layout:
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=555651
>> I don't think we really need to have serial available before PCI enum, so
>> let's just ditch the first map.
>
> OK, though it would be useful for -nographic mode. OpenBIOS can queue
> the output until a serial device has been probed and then print the
> buffer, but if it crashes before that, we're out of luck.
Then we need to gdb into openBIOS and read out the buffer. I do that with
Linux's log_buf all the time :)
>
> BTW, -nographic does not work anymore for PPC, there is no output.
Hrm. That's new. Last time I checked there was output. I'll look at what's
going on...
Alex
>