From 63c5d14d1bda92784fcd325bb497d0857ba5386e Mon Sep 17 00:00:00 2001 From: "Jordan K. Hubbard" Date: Sat, 31 Dec 1994 17:09:58 +0000 Subject: Miscellaneous changes from Bill Paul: - /sys/i386/isa/if_ed.c doesn't quite know how to deal with SMC EtherEZ ethernet cards. The EtherEZ looks just like the Elite Ultra, except it has only 8K of shared memory. The only way to have it properly detected is to zero and test a few bytes of memory just about the first 8K region. If it clears properly, it's an Elite Ultra, otherwise it's an EtherEZ. I've also got an EtherEZ patch for netboot (Makefile, ether.c and ether.h). - /sys/i386/isa/syscons.c wraps at the next to the last column rather than the last column, like it should. You don't really notice this unless you use certain programs that write all the way out to, say, the 80th column, like VMSmail. Along with a one-line fix for this are some changes to implement a non-blinking cursor. Put 'options "NOBLINK_CURSOR"' in your config file and give it a try. :) Submitted by: wpaul --- sys/dev/ed/if_ed.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'sys/dev/ed') diff --git a/sys/dev/ed/if_ed.c b/sys/dev/ed/if_ed.c index 39622f109728..629d8de77c85 100644 --- a/sys/dev/ed/if_ed.c +++ b/sys/dev/ed/if_ed.c @@ -13,7 +13,7 @@ * the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000, * and a variety of similar clones. * - * $Id: if_ed.c,v 1.58 1994/11/26 10:51:49 davidg Exp $ + * $Id: if_ed.c,v 1.59 1994/12/22 21:56:03 wollman Exp $ */ #include "ed.h" @@ -367,15 +367,27 @@ ed_probe_WD80x3(isa_dev) memsize = 16384; isa16bit = 1; break; - case ED_TYPE_SMC8216C: - sc->type_str = "SMC8216/SMC8216C"; - memsize = 16384; + case ED_TYPE_SMC8216C: /* 8216 has 16K shared mem -- 8416 has 8K */ + (unsigned int) *(isa_dev->id_maddr+8192) = (unsigned int)0; + if ((unsigned int) *(isa_dev->id_maddr+8192)) { + sc->type_str = "SMC8416C/SMC8416BT"; + memsize = 8192; + } else { + sc->type_str = "SMC8216/SMC8216C"; + memsize = 16384; + } isa16bit = 1; sc->is790 = 1; break; case ED_TYPE_SMC8216T: - sc->type_str = "SMC8216T"; - memsize = 16384; + (unsigned int) *(isa_dev->id_maddr+8192) = (unsigned int)0; + if ((unsigned int) *(isa_dev->id_maddr+8192)) { + sc->type_str = "SMC8416T"; + memsize = 8192; + } else { + sc->type_str = "SMC8216T"; + memsize = 16384; + } isa16bit = 1; sc->is790 = 1; break; -- cgit v1.3