Re: PCI range checking under qemu-system-sparc64

Mark Cave-Ayland <[email protected]>
Newsgroups gmane.os.freebsd.devel.sparc
Message-ID <[email protected]>
On 13/09/15 03:39, Marius Strobl wrote:

> On Sun, Sep 06, 2015 at 03:22:59PM +0100, Mark Cave-Ayland wrote:
>> On 06/09/15 14:42, Alexey Dokuchaev wrote:
>>
>>> On Sun, Sep 06, 2015 at 02:02:01PM +0100, Mark Cave-Ayland wrote:
>>>> I wonder if the problem is just that suitable console drivers can't
>>>> be found?
>>>>
>>>>>   ebus0: <su> addr 0x14000003f8-0x14000003ff irq 43 (no driver attached)
>>>>>   ebus0: <kb_ps2> addr 0x1400000060-0x1400000067 (no driver attached)
>>>>
>>>> The QEMU hardware model is still a WIP and the serial port currently
>>>> uses a 16550A UART (su) device rather than ESCC found in real hardware,
>>>> while the keyboard is a simple PS2 keyboard.
>>>>
>>>> If you alter your kernel configuration to include building of the su and
>>>> ps2 driver modules, does this help with detection of the serial and
>>>> keyboard devices and if so, does boot progress any further at all?
>>>
>>> Hmm, I'm running GENERIC, so it looks like everything should be already
>>> there, no?  At least by looking at ./conf/files.sparc64 I don't see what
>>> else ("device ???") should I add to it to get su/kb_ps2 support...
>>
>> I'm afraid I'm not really a BSD person, but a quick browse at the source
>> on github suggests you need these drivers:
>>
>> https://github.com/freebsd/freebsd/blob/master/sys/dev/uart/uart_bus_ebus.c
>>
>> https://github.com/freebsd/freebsd/blob/master/sys/dev/atkbdc/atkbdc_ebus.c
>>
>> It also looks like you'd need to hack atkbdc_ebus.c to allow "kb_ps2" as
>> a device name rather than just trying to match on "8042", although this
>> could potentially be fixed by renaming the device in OpenBIOS moving
>> forwards as long as it doesn't cause any regressions.
>>
> 
> Simple renaming in OpenBIOS wouldn't be the right fix either and neither
> change would make things work.
> On real machines for PS/2 there's a "8042" node on the EBus and _beneath_
> that "8042" node there's a "kb_ps2" as well as a "kdmouse" one. "8042"
> has _two_ _identical_ addresses assigned, which its children index via
> their "reg" properties. The interrupt also goes onto the "8042" node.
> See the example of a Sun AXe board below.
> 
> *Please* emulate real machines with QEMU. This specifically also applies
> to ARM hardware.

Well if there was enough time and people working on this... :)  Interest
in SPARC appears to have dropped significantly since the switch to
Oracle so the work I do is limited to the available spare time.
Currently the PS/2 keyboard/mouse code is I believe based on old PReP
code, but I agree looking at this that the existing model is wrong -
I'll go away and get this fixed ASAP.

Longer term it may be that switching to an ESCC serial port would be a
better option here. The sad part is that complete emulation is unlikely
to be obtainable, for example the code required for just a complete
implementation of an ATI Rage card with its hardware acceleration would
be fairly substantial.


ATB,

Mark.

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-sparc64
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.