qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 4/5] hw/display: Add basic ATI VGA emulation


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PULL 4/5] hw/display: Add basic ATI VGA emulation
Date: Mon, 11 Mar 2019 22:14:32 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Mark Cave-Ayland <address@hidden> writes:

> On 11/03/2019 19:51, BALATON Zoltan wrote:
>
>> On Mon, 11 Mar 2019, Markus Armbruster wrote:
>>> Gerd Hoffmann <address@hidden> writes:
>>>> From: BALATON Zoltan <address@hidden>
>>>>
>>>> At least two machines, the PPC mac99 and MIPS fulong2e, have an ATI
>>>> gfx chip by default (Rage 128 Pro and M6/RV100 respectively) and
>>>> guests running on these and the PMON2000 firmware of the fulong2e
>>>> expect this to be available. Fortunately these are very similar chips
>>>> so they can be mostly emulated in the same device model. This patch
>>>> adds basic emulation of these ATI VGA chips.
>>>>
>>>> While this is incomplete and currently only enough to run the MIPS
>>>> firmware and get framebuffer output with Linux, it allows the fulong2e
>>>> board to work more like the real hardware and having it in QEMU in
>>>> this state provides a way to experiment with it and allows others to
>>>> contribute to improve it. It is compiled for all archs but only the
>>>> fulong2e (which currently has no display output at all) is set to use
>>>> it by default (in a separate patch).
>>>>
>>>> Signed-off-by: BALATON Zoltan <address@hidden>
>>>> Acked-by: Aleksandar Markovic <address@hidden>
>>>> Tested-by: Andrew Randrianasulu <address@hidden>
>>>> Tested-by: Howard Spoelstra <address@hidden>
>>>> Message-id:
>>>> address@hidden
>>>> Signed-off-by: Gerd Hoffmann <address@hidden>
>>> [...]
>>>> diff --git a/hw/display/trace-events b/hw/display/trace-events
>>>> index 37d3264bb2e6..80993cc4d913 100644
>>>> --- a/hw/display/trace-events
>>>> +++ b/hw/display/trace-events
>>>> @@ -138,3 +138,7 @@ vga_cirrus_write_blt(uint32_t offset, uint32_t val) 
>>>> "offset
>>>> 0x%x, val 0x%x"
>>>>  sii9022_read_reg(uint8_t addr, uint8_t val) "addr 0x%02x, val 0x%02x"
>>>>  sii9022_write_reg(uint8_t addr, uint8_t val) "addr 0x%02x, val 0x%02x"
>>>>  sii9022_switch_mode(const char *mode) "mode: %s"
>>>> +
>>>> +# hw/display/ati*.c
>>>> +ati_mm_read(unsigned int size, uint64_t addr, const char *name, uint64_t 
>>>> val) "%u
>>>> 0x%"HWADDR_PRIx " %s -> 0x%"PRIx64
>>>> +ati_mm_write(unsigned int size, uint64_t addr, const char *name, uint64_t 
>>>> val)
>>>> "%u 0x%"HWADDR_PRIx " %s <- 0x%"PRIx64
>>>
>>> Blows up for me:
>>>
>>> Traceback (most recent call last):
>>>  File "/work/armbru/qemu/scripts/tracetool.py", line 152, in <module>
>>>    main(sys.argv)
>>>  File "/work/armbru/qemu/scripts/tracetool.py", line 147, in main
>>>    binary=binary, probe_prefix=probe_prefix)
>>>  File "/work/armbru/qemu/scripts/tracetool/__init__.py", line 472, in 
>>> generate
>>>    tracetool.format.generate(events, format, backend, group)
>>>  File "/work/armbru/qemu/scripts/tracetool/format/__init__.py", line 85, in 
>>> generate
>>>    func(events, backend, group)
>>>  File "/work/armbru/qemu/scripts/tracetool/format/log_stap.py", line 121, 
>>> in generate
>>>    fmt_str = "address@hidden " + e.name + " " + c_fmt_to_stap(e.fmt) + "\\n"
>>>  File "/work/armbru/qemu/scripts/tracetool/format/log_stap.py", line 64, in
>>> c_fmt_to_stap
>>>    bits.append(c_macro_to_format(macro))
>>>  File "/work/armbru/qemu/scripts/tracetool/format/log_stap.py", line 36, in
>>> c_macro_to_format
>>>    raise Exception("Unhandled macro '%s'" % macro)
>>> Exception: Unhandled macro 'HWADDR_PRIx'
>> 
>> No idea. Nobody else reported a problem with this yet and the above error 
>> makes no
>> sense to me. Cc'd some tracetool related people who hopefully can hint what 
>> might be
>> wrong. Do you get error during build? What trace backend do you use?

I enable all trace backends for my integration testing.  The error is
thrown for the dtrace backend.

> You can't use HWADDR_PRIx in trace-events because other non-qemu-based trace 
> backends
> have no awareness of it (as I also found out). For HWADDR_PRIx you need to 
> use PRIx64
> instead. I have a vague recollection of someone posting a patch for 
> checkpatch to
> detect this - does it pass a local checkpatch run?

Only unrelated warnings:

$ scripts/checkpatch.pl 0001-hw-display-Add-basic-ATI-VGA-emulation.patch 
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#69: 
new file mode 100644

WARNING: line over 80 characters
#176: FILE: hw/display/ati.c:103:
+                    vbe_ioport_write_index(&s->vga, 0, 
VBE_DISPI_INDEX_Y_OFFSET);

total: 0 errors, 2 warnings, 1876 lines checked



reply via email to

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