Subject: Re: siop1: can't map on-board RAM
To: None <hubert.feyrer@informatik.fh-regensburg.de>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: tech-kern
Date: 07/24/2000 18:00:00
--KsGdsel6WgEHnImy
Content-Type: text/plain; charset=us-ascii

On Thu, Jul 06, 2000 at 01:40:07PM +0200, Hubert Feyrer wrote:
> 
> I've just tried to boot the 1.5 snapshot from ftp.netbsd.org on the
> Toshiba 4G machine (i know it's a Magnia 7010 now, with only 3G RAM
> installed this week). It seems the siop driver is still having problems,
> though, see the dmesg output below.

The "can't map on-board RAM" looks suspect to me, and points to a problem
either in the PCI code or in the BIOS. I just tested, siop *does* work
without the on-board RAM (it just puts the script in main memory).
But the reason which prevents the RAM mapping may also alter other
functions (access to I/O registers or DMA). Finding why it can't map the
on-board RAM may point to the problem which prevents the whole thing from
working. What's the way of debugging this ?

SIOP preffers memory-mapped registers over I/O mapped registers; but maybe
I/O mapped works better in this case ? could you try the attached patch ?

--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
--

--KsGdsel6WgEHnImy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=diff

--- siop_pci_common.c.orig	Mon Jul 24 17:57:59 2000
+++ siop_pci_common.c	Mon Jul 24 17:59:32 2000
@@ -226,14 +226,14 @@
 	ioh_valid = (pci_mapreg_map(pa, 0x10, PCI_MAPREG_TYPE_IO, 0,
 	    &iot, &ioh, &ioaddr, NULL) == 0);
 
-	if (memh_valid) {
-		sc->siop.sc_rt = memt;
-		sc->siop.sc_rh = memh;
-		sc->siop.sc_raddr = memaddr;
-	} else if (ioh_valid) {
+	if (ioh_valid) {
 		sc->siop.sc_rt = iot;
 		sc->siop.sc_rh = ioh;
 		sc->siop.sc_raddr = ioaddr;
+	} else if (memh_valid) {
+		sc->siop.sc_rt = memt;
+		sc->siop.sc_rh = memh;
+		sc->siop.sc_raddr = memaddr;
 	} else {
 		printf("%s: unable to map device registers\n",
 		    sc->siop.sc_dev.dv_xname);

--KsGdsel6WgEHnImy--