Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Dec 1997 10:42:42 +0900 (JST)
From:      hosokawa@ntc.keio.ac.jp (HOSOKAWA Tatsumi)
To:        faber@ISI.EDU
Cc:        nate@mt.sri.com, ambrisko@whistle.com, freebsd-mobile@FreeBSD.ORG, hosokawa@ntc.keio.ac.jp
Subject:   Re: 
Message-ID:  <199712190142.KAA15429@afs.ntc.mita.keio.ac.jp>
In-Reply-To: Your message of "Thu, 18 Dec 1997 15:55:49 -0800". <199712182355.PAA24716@tnt.isi.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <199712182355.PAA24716@tnt.isi.edu>
faber@ISI.EDU writes:

>> Well, it doesn't *break* anything, but it's icky. :-)  I just have a
>> preference for configurable systems.  I agree however that making a
>> parameter configurable that no one con configure isn't worth much
>> (other than as incentive to change the unconfigurable stuff).  

I think it'll cause problems on machines that have more than two
CardBus bridges, or machines that have both ISA PC-card controller and
CardBus bridges.

On these machines, BIOS initializes appropriate I/O port number to
legacy 16-bit ioaddr register.  For example, I have a machine that has
both TI PCI-1130 and i82365 compatible ISA PCIC.  The BIOS initializes
1130 as 0x3e0 or 0x3e4 (configurable from BIOS setup) and i82365
compatible to 0x3e2.

In this case, fortunately this patch will not cause any problem
because CardBus bridge is set to 0x3e0 when I configured BIOS setup,
and even if FreeBSD kernel re-initializes it from 0x3e4 to 0x3e0,
it'll safe if there's no other devices on 0x3e0 and 0x3e1.  But if
there's a machine which have ISA PC-card controller at 0x3e0 and
CardBus bridge at 0x3e2, or a machine which have two CardBus bridges,
it'll be the problem.  I don't know such machine, but I can't say that
such it does not (and will not) exist in the world.

I think it'll be te better way:

if (the legacy 16bit ioadder is left uninitialized, or initialized
	to odd value) {
	set it to 0x3e0 + (unit number * 2);
}

or

if (the legacy 16bit ioadder is left uninitialized) {
	set it to 0x3e0 + (unit number * 2);
}

sp->index = legacy 16bit ioaddr;

--
HOSOKAWA, Tatsumi
Network Technology Center
Keio University
hosokawa@ntc.keio.ac.jp



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