Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Aug 2001 01:55:30 -0600
From:      Warner Losh <imp@harmony.village.org>
To:        non@ever.sanda.gr.jp, stable@FreeBSD.ORG
Subject:   Re: PC Card memory window 
Message-ID:  <200108230755.f7N7tUW82259@harmony.village.org>
In-Reply-To: Your message of "Wed, 22 Aug 2001 20:13:10 MDT." <200108230213.f7N2DAW80334@harmony.village.org> 
References:  <200108230213.f7N2DAW80334@harmony.village.org>  <20010822231852Q.non@ever.sanda.gr.jp> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <200108230213.f7N2DAW80334@harmony.village.org> Warner Losh writes:
: In message <20010822231852Q.non@ever.sanda.gr.jp> non@ever.sanda.gr.jp writes:
: : I did not read all the cvs logs, but something have been changed
: : around assignment of PC Card memory window ?
: : 
: : I tested 4.4-RC with ISA PCIC machine and got message,
: : 
: : nsp0 at port 0x240-0x24f iomem 0xc8800-0xc97ff irq 5 slot 0 on pccard0
: :                                ^^^^^^^^^^^^^^^
: : above iomem window address is pretty different from 4.3-RELASE. I
: : donot know what will happen with latest -current or PCI PCIC machine.
: 
: Nothing should have changed in the memory allocation scheme.  The
: above address looks wrong to me.  Maybe it was with the addition of
: the orm device and that 0xc8000 was taken.  Maybe we're not aligning
: things properly (since the memory needs to be 4k aligned, iirc, at the
: bridge level).
: 
: Do you have a orm device?  If so, what does it say?

Maybe this patch will help?

Index: pcic.c
===================================================================
RCS file: /cache/ncvs/src/sys/pccard/pcic.c,v
retrieving revision 1.89.2.19
diff -u -r1.89.2.19 pcic.c
--- pcic.c	2001/08/14 23:48:29	1.89.2.19
+++ pcic.c	2001/08/23 07:52:09
@@ -423,10 +423,12 @@
 	/*
 	 * Make sure we grok this type.
 	 */
+	flags = rman_make_alignment_flags(pr->size);
 	switch(pr->type) {
 	default:
 		return (EINVAL);
 	case SYS_RES_MEMORY:
+		flags = rman_make_alignment_flags(4096);
 	case SYS_RES_IRQ:
 	case SYS_RES_IOPORT:
 		break;
@@ -437,7 +439,6 @@
 	 * size.  If we get it, then tell userland what we actually got
 	 * in the range they requested.
 	 */
-	flags = rman_make_alignment_flags(pr->size);
 	r = bus_alloc_resource(bridgedev, pr->type, &rid, pr->min, pr->max,
 	   pr->size, flags);
 	if (r != NULL) {

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




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