Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Jan 2000 15:35:03 +0900 (JST)
From:      Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
To:        imp@village.org
Cc:        kato@ganko.eps.nagoya-u.ac.jp, luoqi@watermarkgroup.com, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, luoqi@FreeBSD.org
Subject:   Re: cvs commit: src/sys/i386/isa aic6360.c aic_98.h 
Message-ID:  <20000116153503B.nyan@dd.catv.ne.jp>
In-Reply-To: <200001151807.LAA42155@harmony.village.org>
References:  <20000115222237I.kato@gneiss.eps.nagoya-u.ac.jp> <200001141424.JAA13791@lor.watermarkgroup.com> <200001151807.LAA42155@harmony.village.org>

next in thread | previous in thread | raw e-mail | index | archive | help
----Next_Part(Sun_Jan_16_15:28:24_2000_809)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

In article <200001151807.LAA42155@harmony.village.org>
Warner Losh <imp@village.org> writes:

> I think that most of the drivers that make this assumption would
> easily be found with a special version of the normal bus space stuff
> and LINT.  When I did this the biggest offenders were the Bill Paul
> drivers of the time, which he's since corrected.
> 
> It might be worth another try to see what is still broken.

I make a kernel from LINT with PC-98 bus space stuff (the type of
bus_space_handle_t is struct). There are compile errors in the
following files.

dev/advansys/adv_isa.c
dev/advansys/adv_eisa.c
dev/advansys/adv_pci.c
dev/ahb/ahb.c
dev/an/if_an.c
dev/buslogic/bt_pci.c
dev/dpt/dpt_eisa.c
dev/dpt/dpt_pci.c
pci/adw_pci.c
pci/alpm.c
pci/amd.c
pci/isp_pci.c

As it is easy to fix some files, I attach patch to this mail. This
patch fixes dev/ahb/ahb.c, dev/an/if_an.c and dev/buslogic/bt_pci.c.
The remaining files are needed to fix using Kato's way.

BTW, are there any big problems to commit this PC-98 bus space stuff?
I think that problem is only the above files and that it is no problem
to be commented out temporarily in GENERIC98 (this problem is only on
PC-98).

---
Takahashi Yoshihiro / nyan@FreeBSD.org

----Next_Part(Sun_Jan_16_15:28:24_2000_809)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="bs_fix.diff"

Index: dev/ahb/ahb.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ahb/ahb.c,v
retrieving revision 1.16
diff -u -r1.16 ahb.c
--- dev/ahb/ahb.c	2000/01/14 07:13:54	1.16
+++ dev/ahb/ahb.c	2000/01/16 04:50:17
@@ -75,7 +75,7 @@
 	bus_space_write_4((ahb)->tag, (ahb)->bsh, port, value)
 
 static const char		*ahbmatch(eisa_id_t type);
-static struct ahb_softc		*ahballoc(u_long unit, u_int iobase);
+static struct ahb_softc		*ahballoc(u_long unit, struct resource *res);
 static void			 ahbfree(struct ahb_softc *ahb);
 static int			 ahbreset(struct ahb_softc *ahb);
 static void			 ahbmapecbs(void *arg, bus_dma_segment_t *segs,
@@ -277,7 +277,7 @@
 		return ENOMEM;
 	}
 
-	if ((ahb = ahballoc(device_get_unit(dev), rman_get_start(io))) == NULL) {
+	if ((ahb = ahballoc(device_get_unit(dev), io)) == NULL) {
 		goto error_exit2;
 	}
 
@@ -391,7 +391,7 @@
 }
 
 static struct ahb_softc *
-ahballoc(u_long unit,  u_int iobase)
+ahballoc(u_long unit, struct resource *res)
 {
 	struct	ahb_softc *ahb;
 
@@ -407,8 +407,8 @@
 	SLIST_INIT(&ahb->free_ecbs);
 	LIST_INIT(&ahb->pending_ccbs);
 	ahb->unit = unit;
-	ahb->tag = I386_BUS_SPACE_IO;
-	ahb->bsh = iobase;
+	ahb->tag = rman_get_bustag(res);
+	ahb->bsh = rman_get_bushandle(res);
 	ahb->disc_permitted = ~0;
 	ahb->tags_permitted = ~0;
 
Index: dev/an/if_an.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/an/if_an.c,v
retrieving revision 1.1
diff -u -r1.1 if_an.c
--- dev/an/if_an.c	2000/01/14 20:40:56	1.1
+++ dev/an/if_an.c	2000/01/16 04:44:33
@@ -189,7 +189,7 @@
 	 * to be able to issue commands and call some of the
 	 * other routines.
 	 */
-	sc->an_bhandle = rman_get_start(sc->port_res);
+	sc->an_bhandle = rman_get_bushandle(sc->port_res);
 	sc->an_btag = rman_get_bustag(sc->port_res);
 	sc->an_unit = device_get_unit(dev);
 
Index: dev/buslogic/bt_pci.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/buslogic/bt_pci.c,v
retrieving revision 1.10
diff -u -r1.10 bt_pci.c
--- dev/buslogic/bt_pci.c	1999/08/28 00:50:44	1.10
+++ dev/buslogic/bt_pci.c	2000/01/16 04:53:45
@@ -134,7 +134,8 @@
 			if (error == 0
 			 && pci_info.io_port < BIO_DISABLED) {
 				bt_mark_probed_bio(pci_info.io_port);
-				if (bt->bsh != bt_iop_from_bio(pci_info.io_port)) {
+				if (rman_get_start(bt->port) !=
+				    bt_iop_from_bio(pci_info.io_port)) {
 					u_int8_t new_addr;
 
 					new_addr = BIO_DISABLED;

----Next_Part(Sun_Jan_16_15:28:24_2000_809)----


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000116153503B.nyan>