[Madwifi-users] Re: [Prism54-users] PCI memory reservation failures
Luis R. Rodriguez
mcgrof@ruslug.rutgers.edu
Mon, 10 May 2004 01:50:41 -0400
--y0ulUmNC+osPPQO6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Hello Alec,
Post/fwd this to the netdev@oss.sgi.com. You'll get more=20
replies there with people with more experience.=20
Luis
On Thu, May 06, 2004 at 07:45:41PM -0600, Alec H. Peterson wrote:
> Sorry for the crosspost, but this issue seems to have surfaced for users =
of=20
> both of these drivers. And yes I know this is not describing a problem=
=20
> with either of the drivers represented on these lists, but hopefully peop=
le=20
> will find it relevant.
>=20
> I believe I have found a fix to these problems. The root cause of the=20
> problem is the fact that the BIOS in question is not aligning the memory =
it=20
> is assigning to the CardBus slots. So the kernel is attempting to align =
it=20
> on its own, but then another problem comes up because in this case there =
is=20
> only 8K of memory available, and that is how much some of the cards need=
=20
> (in some cases they need even more). According to the yenta driver the=
=20
> minimum amount of memory that should be allocated to each slot is 16K.=20
> Anyway, I have put a patch into drivers/pcmcia/yenta.c that looks like th=
is=20
> (in yenta_allocate_res(), kernel 2.4.25):
>=20
> start =3D config_readl(socket, offset) & mask;
> end =3D config_readl(socket, offset+4) | ~mask;
> #if 1
> if (!(type & IORESOURCE_IO) && (((end - start) < BRIDGE_SIZE_MIN) =
||
> (start & (end - start))))
> {
> printk(KERN_INFO "yenta %s: Preassigned resource start %lx=
=20
> end %lx too small or not aligned.\n", socket->dev->slot_name, start, end);
> res->start =3D res->end =3D 0;
> }
> else
> #endif
> if (start && end > start) {
> res->start =3D start;
>=20
> Basically it is doing sanity checking on the memory that the PCI BIOS has=
=20
> pre-allocated, and if the sanity check fails it goes ahead and allocates =
a=20
> new block of memory (that happens automatically further along in=20
> yenta_allocate_res()). With this patch in place I can now initialize and=
=20
> use both PrismGT and Atheros cards with no problems.
>=20
> I welcome any feedback or input about this. If this is good, bad, or an=
=20
> abomination against the kernel I would really like to hear about it. I'v=
e=20
> sent it to the linux-kernel list as well (I received some helpful=20
> suggestions there) but I have not yet had any feedback about whether or n=
ot=20
> this is a good thing. I don't have a huge variety of systems to test thi=
s=20
> against so I would really love to hear how this works on other systems.
>=20
> Thanks!
>=20
> Alec
>=20
> _______________________________________________
> Prism54-users mailing list
> Prism54-users@prism54.org
> http://prism54.org/mailman/listinfo/prism54-users
--=20
GnuPG Key fingerprint =3D 113F B290 C6D2 0251 4D84 A34A 6ADD 4937 E20A 525E
--y0ulUmNC+osPPQO6
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAnxgwat1JN+IKUl4RAoejAKCBakQ6An0mpM8Iapex1B5Zh0Nz7QCdEhDE
PYY460TdEYpG1NV5D0COoqg=
=znjK
-----END PGP SIGNATURE-----
--y0ulUmNC+osPPQO6--
-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to
deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
Madwifi-users mailing list
Madwifi-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/madwifi-users