if_ed_novell.c (141681) | if_ed_novell.c (141932) |
---|---|
1/*- 2 * Copyright (c) 2005, M. Warner Losh 3 * All rights reserved. 4 * Copyright (c) 1995, David Greenman 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 15 unchanged lines hidden (view full) --- 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 */ 29 30 31#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2005, M. Warner Losh 3 * All rights reserved. 4 * Copyright (c) 1995, David Greenman 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 15 unchanged lines hidden (view full) --- 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 */ 29 30 31#include <sys/cdefs.h> |
32__FBSDID("$FreeBSD: head/sys/dev/ed/if_ed_novell.c 141681 2005-02-11 06:02:27Z imp $"); | 32__FBSDID("$FreeBSD: head/sys/dev/ed/if_ed_novell.c 141932 2005-02-14 23:00:41Z imp $"); |
33 34#include "opt_ed.h" 35 36#include <sys/param.h> 37#include <sys/systm.h> 38#include <sys/sockio.h> 39#include <sys/mbuf.h> 40#include <sys/kernel.h> --- 18 unchanged lines hidden (view full) --- 59#include <dev/ed/if_edreg.h> 60#include <dev/ed/if_edvar.h> 61 62static int ed_probe_gwether(device_t); 63 64/* 65 * Probe and vendor-specific initialization routine for NE1000/2000 boards 66 */ | 33 34#include "opt_ed.h" 35 36#include <sys/param.h> 37#include <sys/systm.h> 38#include <sys/sockio.h> 39#include <sys/mbuf.h> 40#include <sys/kernel.h> --- 18 unchanged lines hidden (view full) --- 59#include <dev/ed/if_edreg.h> 60#include <dev/ed/if_edvar.h> 61 62static int ed_probe_gwether(device_t); 63 64/* 65 * Probe and vendor-specific initialization routine for NE1000/2000 boards 66 */ |
67int | 67static int |
68ed_probe_Novell_generic(device_t dev, int flags) 69{ 70 struct ed_softc *sc = device_get_softc(dev); | 68ed_probe_Novell_generic(device_t dev, int flags) 69{ 70 struct ed_softc *sc = device_get_softc(dev); |
71 u_int memsize, n; | 71 u_int memsize; |
72 int error; | 72 int error; |
73 u_char romdata[16], tmp; | 73 u_char tmp; |
74 static char test_pattern[32] = "THIS is A memory TEST pattern"; 75 char test_buffer[32]; 76 77 /* Reset the board */ 78 if (ED_FLAGS_GETTYPE(flags) == ED_FLAGS_GWETHER) { 79 ed_asic_outb(sc, ED_NOVELL_RESET, 0); 80 DELAY(200); 81 } --- 105 unchanged lines hidden (view full) --- 187 sc->txb_cnt = 1; 188 else 189 sc->txb_cnt = 2; 190 191 sc->rec_page_start = sc->tx_page_start + sc->txb_cnt * ED_TXBUF_SIZE; 192 sc->rec_page_stop = sc->tx_page_start + memsize / ED_PAGE_SIZE; 193 194 sc->mem_ring = sc->mem_start + sc->txb_cnt * ED_PAGE_SIZE * ED_TXBUF_SIZE; | 74 static char test_pattern[32] = "THIS is A memory TEST pattern"; 75 char test_buffer[32]; 76 77 /* Reset the board */ 78 if (ED_FLAGS_GETTYPE(flags) == ED_FLAGS_GWETHER) { 79 ed_asic_outb(sc, ED_NOVELL_RESET, 0); 80 DELAY(200); 81 } --- 105 unchanged lines hidden (view full) --- 187 sc->txb_cnt = 1; 188 else 189 sc->txb_cnt = 2; 190 191 sc->rec_page_start = sc->tx_page_start + sc->txb_cnt * ED_TXBUF_SIZE; 192 sc->rec_page_stop = sc->tx_page_start + memsize / ED_PAGE_SIZE; 193 194 sc->mem_ring = sc->mem_start + sc->txb_cnt * ED_PAGE_SIZE * ED_TXBUF_SIZE; |
195 196 ed_pio_readmem(sc, 0, romdata, 16); 197 for (n = 0; n < ETHER_ADDR_LEN; n++) 198 sc->arpcom.ac_enaddr[n] = romdata[n * (sc->isa16bit + 1)]; 199 200 if ((ED_FLAGS_GETTYPE(flags) == ED_FLAGS_GWETHER) && 201 (sc->arpcom.ac_enaddr[2] == 0x86)) { 202 sc->type_str = "Gateway AT"; 203 } 204 | |
205 /* clear any pending interrupts that might have occurred above */ 206 ed_nic_outb(sc, ED_P0_ISR, 0xff); 207 208 return (0); 209} 210 211int 212ed_probe_Novell(device_t dev, int port_rid, int flags) --- 72 unchanged lines hidden (view full) --- 285 device_printf(dev, "RAM start at %ld, size : %d.\n", mstart, msize); 286 287 sc->mem_size = msize; 288 sc->mem_start = (caddr_t)(uintptr_t) mstart; 289 sc->mem_end = (caddr_t)(uintptr_t) (msize + mstart); 290 sc->tx_page_start = mstart / ED_PAGE_SIZE; 291 return 0; 292} | 195 /* clear any pending interrupts that might have occurred above */ 196 ed_nic_outb(sc, ED_P0_ISR, 0xff); 197 198 return (0); 199} 200 201int 202ed_probe_Novell(device_t dev, int port_rid, int flags) --- 72 unchanged lines hidden (view full) --- 275 device_printf(dev, "RAM start at %ld, size : %d.\n", mstart, msize); 276 277 sc->mem_size = msize; 278 sc->mem_start = (caddr_t)(uintptr_t) mstart; 279 sc->mem_end = (caddr_t)(uintptr_t) (msize + mstart); 280 sc->tx_page_start = mstart / ED_PAGE_SIZE; 281 return 0; 282} |
283 284void 285ed_Novell_read_mac(struct ed_softc *sc) 286{ 287 int n; 288 uint8_t romdata[16]; 289 290 /* 291 * Pull the MAC address out of the roms that are on the isa 292 * version of these cards. 293 */ 294 ed_pio_readmem(sc, 0, romdata, 16); 295 for (n = 0; n < ETHER_ADDR_LEN; n++) 296 sc->arpcom.ac_enaddr[n] = romdata[n * (sc->isa16bit + 1)]; 297} |
|