Deleted Added
full compact
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}