Lines Matching +full:srom +full:- +full:page +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0+
8 (C)Copyright 1997-1998 DAVICOM Semiconductor,Inc. All Rights Reserved.
15 E5: R25 = ((R24 + NF - 3) & 0x00ff) | 0xc200
21 v1.1 11/09/2001 fix force mode bug
25 Added tx/rx 32 bit mode.
28 --------------------------------------
30 12/15/2003 Initial port to u-boot by
34 - Fixed the driver to work with DM9000A.
38 - Added autodetect of databus width.
39 - Made debug code compile again.
40 - Adapt eth_send such that it matches the DM9000*
43 - Adapted reset procedure to match DM9000 application
45 - some minor code cleanups
60 /* Board/System/Debug information/definition ---------------- */
81 /* Structure/enum declaration ------------------------------- */
93 unsigned char srom[128]; member
102 /* function declaration ------------------------------------- */
109 /* DM9000 network board routine ---------------------------- */
240 return -1; in dm9000_probe()
251 see DM9000 Application Notes V1.22 Jun 11, 2004 page 29 */ in dm9000_reset()
276 printf("ERROR: resetting DM9000 -> not responding\n"); in dm9000_reset()
293 return -1; in dm9000_init()
295 /* Auto-detect 8/16/32 bit mode, ISR Bit 6+7 indicate bus width */ in dm9000_init()
299 case 0x0: /* 16-bit mode */ in dm9000_init()
300 printf("DM9000: running in 16 bit mode\n"); in dm9000_init()
301 db->outblk = dm9000_outblk_16bit; in dm9000_init()
302 db->inblk = dm9000_inblk_16bit; in dm9000_init()
303 db->rx_status = dm9000_rx_status_16bit; in dm9000_init()
305 case 0x01: /* 32-bit mode */ in dm9000_init()
306 printf("DM9000: running in 32 bit mode\n"); in dm9000_init()
307 db->outblk = dm9000_outblk_32bit; in dm9000_init()
308 db->inblk = dm9000_inblk_32bit; in dm9000_init()
309 db->rx_status = dm9000_rx_status_32bit; in dm9000_init()
311 case 0x02: /* 8 bit mode */ in dm9000_init()
312 printf("DM9000: running in 8 bit mode\n"); in dm9000_init()
313 db->outblk = dm9000_outblk_8bit; in dm9000_init()
314 db->inblk = dm9000_inblk_8bit; in dm9000_init()
315 db->rx_status = dm9000_rx_status_8bit; in dm9000_init()
318 /* Assume 8 bit mode, will probably not work anyway */ in dm9000_init()
319 printf("DM9000: Undefined IO-mode:0x%x\n", io_mode); in dm9000_init()
320 db->outblk = dm9000_outblk_8bit; in dm9000_init()
321 db->inblk = dm9000_inblk_8bit; in dm9000_init()
322 db->rx_status = dm9000_rx_status_8bit; in dm9000_init()
336 /* Special Mode */ in dm9000_init()
343 printf("MAC: %pM\n", dev->enetaddr); in dm9000_init()
344 if (!is_valid_ethaddr(dev->enetaddr)) { in dm9000_init()
350 DM9000_iow(oft, dev->enetaddr[i]); in dm9000_init()
395 printf("mode\n"); in dm9000_init()
413 DM9000_outb(DM9000_MWCMD, DM9000_IO); /* Prepare for TX-data */ in dm9000_send()
415 /* push the data to the TX-fifo */ in dm9000_send()
416 (db->outblk)(packet, length); in dm9000_send()
450 DM9000_iow(DM9000_GPR, 0x01); /* Power-Down PHY */ in dm9000_halt()
467 if (!(DM9000_ior(DM9000_ISR) & 0x01)) /* Rx-ISR bit must be set. */ in dm9000_rx()
495 (db->rx_status)(&RxStatus, &RxLen); in dm9000_rx()
501 (db->inblk)(rdptr, RxLen); in dm9000_rx()
529 Read a word data from SROM
558 dm9000_read_srom_word(i, dev->enetaddr + (2 * i)); in dm9000_get_enetaddr()
628 dev->init = dm9000_init; in dm9000_initialize()
629 dev->halt = dm9000_halt; in dm9000_initialize()
630 dev->send = dm9000_send; in dm9000_initialize()
631 dev->recv = dm9000_rx; in dm9000_initialize()
632 strcpy(dev->name, "dm9000"); in dm9000_initialize()