From owner-freebsd-sparc64@freebsd.org Sun Sep 13 17:46:23 2015 Return-Path: Delivered-To: freebsd-sparc64@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16CD0A03C03 for ; Sun, 13 Sep 2015 17:46:23 +0000 (UTC) (envelope-from mark.cave-ayland@ilande.co.uk) Received: from s16892447.onlinehome-server.info (s16892447.onlinehome-server.info [82.165.15.123]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BFD4F1D22; Sun, 13 Sep 2015 17:46:22 +0000 (UTC) (envelope-from mark.cave-ayland@ilande.co.uk) Received: from [2.219.74.29] (helo=[192.168.1.86]) by s16892447.onlinehome-server.info with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1ZbBM1-0001Ni-Af; Sun, 13 Sep 2015 18:46:20 +0100 Message-ID: <55F5B660.5050904@ilande.co.uk> Date: Sun, 13 Sep 2015 18:46:08 +0100 From: Mark Cave-Ayland User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0 MIME-Version: 1.0 To: Marius Strobl CC: Alexey Dokuchaev , "freebsd-sparc64@freebsd.org" References: <557DA6D5.4070800@FreeBSD.org> <557DCF54.7020606@ilande.co.uk> <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> In-Reply-To: <20150913023916.GB7862@alchemy.franken.de> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 2.219.74.29 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: Re: PCI range checking under qemu-system-sparc64 X-SA-Exim-Version: 4.2.1 (built Sun, 08 Jan 2012 02:45:44 +0000) X-SA-Exim-Scanned: No (on s16892447.onlinehome-server.info); Unknown failure X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Sep 2015 17:46:23 -0000 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: addr 0x14000003f8-0x14000003ff irq 43 (no driver attached) >>>>> ebus0: 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.