Date: Sun, 13 Sep 2015 18:46:08 +0100 From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: Marius Strobl <marius@alchemy.franken.de> Cc: Alexey Dokuchaev <danfe@FreeBSD.org>, "freebsd-sparc64@freebsd.org" <freebsd-sparc64@freebsd.org> Subject: Re: PCI range checking under qemu-system-sparc64 Message-ID: <55F5B660.5050904@ilande.co.uk> In-Reply-To: <20150913023916.GB7862@alchemy.franken.de> References: <557DA6D5.4070800@FreeBSD.org> <557DCF54.7020606@ilande.co.uk> <A88F6A52-FA8A-4669-A2D6-23374F8E26BB@FreeBSD.org> <557DF887.20508@ilande.co.uk> <20150906110308.GA68829@FreeBSD.org> <55EC2E8D.4020803@ilande.co.uk> <20150906124859.GA14919@FreeBSD.org> <55EC3949.1020508@ilande.co.uk> <20150906134245.GA21410@FreeBSD.org> <55EC4C43.9050700@ilande.co.uk> <20150913023916.GB7862@alchemy.franken.de>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55F5B660.5050904>