Erik Mouw writes:
> The Crystal CS89x0 ethernet chip is also used in quite some embedded
> systems that don't have an ISA bus at all, so the CONFIG_ISA option in
> drivers/net/Config.in is inapropriate. Here is a patch against
> 2.4.0-test12 to fix that. Please consider applying.
I don't think this is the right way to fix the problem. Take for instance
an EBSA285 platform which has only PCI sockets. It is possible to plug in
a card with an ISA bridge on, with a ESS SB clone on board (I have one here).
Maybe the right thing to do is to define CONFIG_ISA on these architectures/
machine types where the device itself is actually an ISA device, instead of
going through special-casing the driver configuration entries?
_____
|_____| ------------------------------------------------- ---+---+-
| | Russell King [email protected] --- ---
| | | | http://www.arm.linux.org.uk/personal/aboutme.html / / |
| +-+-+ --- -+-
/ | THE developer of ARM Linux |+| /|\
/ | | | --- |
+-+-+ ------------------------------------------------- /\\\ |
Russell King wrote:
>
> Erik Mouw writes:
> > The Crystal CS89x0 ethernet chip is also used in quite some embedded
> > systems that don't have an ISA bus at all, so the CONFIG_ISA option in
> > drivers/net/Config.in is inapropriate. Here is a patch against
> > 2.4.0-test12 to fix that. Please consider applying.
>
> I don't think this is the right way to fix the problem. Take for instance
> an EBSA285 platform which has only PCI sockets. It is possible to plug in
> a card with an ISA bridge on, with a ESS SB clone on board (I have one here).
>
> Maybe the right thing to do is to define CONFIG_ISA on these architectures/
> machine types where the device itself is actually an ISA device, instead of
> going through special-casing the driver configuration entries?
Agreed. We -don't- want to remove CONFIG_ISA or other dependencies.
The idea for drivers/net/Config.in at least is that all architectures
can source the file, and be presented with a proper list of devices for
that platform.
For an embedded board that supports cs89x0, as you suggest, defining
CONFIG_ISA is a much better option. Or, making cs89x0 dependent on
CONFIG_EMBEDDED_PLATFORM -and- CONFIG_ISA.
Jeff
--
Jeff Garzik |
Building 1024 | These are not the J's you're lookin' for.
MandrakeSoft | It's an old Jedi mind trick.
> For an embedded board that supports cs89x0, as you suggest, defining
> CONFIG_ISA is a much better option. Or, making cs89x0 dependent on
No its completely wrong. You can have a CS89xx series device without the
slightest hint of ISA bus.
What would be a lot cleaner though would be to build a custom config.in for
such embedded devices not referencing the mainstream one
On Thu, Dec 14, 2000 at 12:00:13PM -0500, Jeff Garzik wrote:
> Russell King wrote:
> > Maybe the right thing to do is to define CONFIG_ISA on these architectures/
> > machine types where the device itself is actually an ISA device, instead of
> > going through special-casing the driver configuration entries?
>
> Agreed. We -don't- want to remove CONFIG_ISA or other dependencies.
> The idea for drivers/net/Config.in at least is that all architectures
> can source the file, and be presented with a proper list of devices for
> that platform.
>
> For an embedded board that supports cs89x0, as you suggest, defining
> CONFIG_ISA is a much better option. Or, making cs89x0 dependent on
> CONFIG_EMBEDDED_PLATFORM -and- CONFIG_ISA.
No, the cs89x0 can be used on systems that don't have an ISA bus at
all. It just needs 16 data lines, a couple of address lines and some
selection lines, but that's all. It's very nice for embedded designs
because it's a single chip solution. Add a 20MHz crystal, a
transformer, and a connector and you're set.
OK, what about this patch. As far as I know, the cs89x0 is only used on
Intel SA11x0 and Cirrus PS7500FE platforms in the ARM world (Russell,
please correct me if I'm wrong). This patch make it dependent on
CONFIG_ISA, CONFIG_ARCH_SA1100, or CONFIG_ARCH_CLPS7500.
Erik
PS: Your CVS hints work, Jeff :-)
Index: drivers/net/Config.in
===================================================================
RCS file: /home/erik/cvsroot/elinux/drivers/net/Config.in,v
retrieving revision 1.1.1.39
diff -u -r1.1.1.39 Config.in
--- drivers/net/Config.in 2000/12/07 14:16:21 1.1.1.39
+++ drivers/net/Config.in 2000/12/14 18:34:01
@@ -134,7 +138,9 @@
fi
tristate ' Apricot Xen-II on board Ethernet' CONFIG_APRICOT
- dep_tristate ' CS89x0 support' CONFIG_CS89x0 $CONFIG_ISA
+ if [ "$CONFIG_ISA" = "y" -o "$CONFIG_ARCH_SA1100" = "y" -o "$CONFIG_ARCH_CLPS7500" = "y" ] ; then
+ tristate ' CS89x0 support' CONFIG_CS89x0
+ fi
dep_tristate ' DECchip Tulip (dc21x4x) PCI support' CONFIG_TULIP $CONFIG_PCI
if [ "$CONFIG_PCI" = "y" -o "$CONFIG_EISA" = "y" ]; then
tristate ' Generic DECchip & DIGITAL EtherWORKS PCI/EISA' CONFIG_DE4X5
--
J.A.K. (Erik) Mouw, Information and Communication Theory Group, Department
of Electrical Engineering, Faculty of Information Technology and Systems,
Delft University of Technology, PO BOX 5031, 2600 GA Delft, The Netherlands
Phone: +31-15-2783635 Fax: +31-15-2781843 Email: [email protected]
WWW: http://www-ict.its.tudelft.nl/~erik/
Erik Mouw writes:
> No, the cs89x0 can be used on systems that don't have an ISA bus at
> all. It just needs 16 data lines, a couple of address lines and some
> selection lines, but that's all. It's very nice for embedded designs
> because it's a single chip solution. Add a 20MHz crystal, a
> transformer, and a connector and you're set.
Umm, you're right; the manufacturer describes the chip as "10Mbps Embedded
Ethernet Controller" which just happens to be able to be used on an ISA
bus.
Therefore, it is NOT an ISA peripheral, but a general purpose peripheral.
As such, it should NOT be classified as an ISA bus device, and therefore
should NOT depend on CONFIG_ISA.
(I hope there are enough NOTs there).
_____
|_____| ------------------------------------------------- ---+---+-
| | Russell King [email protected] --- ---
| | | | http://www.arm.linux.org.uk/personal/aboutme.html / / |
| +-+-+ --- -+-
/ | THE developer of ARM Linux |+| /|\
/ | | | --- |
+-+-+ ------------------------------------------------- /\\\ |