/****************************************************************************
NAME
ip_wake1 - Perform controller wake up sequence 1.
DESCRIPTION
This function writes the standard Plug and Play Initiation Key to
the Plug and Play Address Port at I/O address 0x0279.
This operation is required to bring a Plug and Play device out of
inactive mode so it can be configured.
Note: The standard 6A sequence works on a PCnet-ISA II controller with a
configuration EEPROM that contains a good Checksum 2.
If the configuration EEPROM is missing or the EEPROM Checksum 2 is
incorrect, then you must use the special AMD 6B sequence.
CALLS
outportb() - Outputs a byte to a hardware port. Function in the
(Borland) run-time library.
****************************************************************************/
void ip_wake1(void)
{
int
i;
for ( i = 0; i < 2; i++ ) {
outportb(0x279, 0x00);
/* Initialize LFSR. */
outportb(0x279, 0x00);
/* Initialize LFSR. */
outportb(0x279, 0x6A);
/* 0x6A is the PnP sequence. */
outportb(0x279, 0xB5);
outportb(0x279, 0xDA);
outportb(0x279, 0xED);
outportb(0x279, 0xF6);
outportb(0x279, 0xFB);
outportb(0x279, 0x7D);
outportb(0x279, 0xBE);
outportb(0x279, 0xDF);
outportb(0x279, 0x6F);
outportb(0x279, 0x37);
outportb(0x279, 0x1B);
outportb(0x279, 0x0D);
outportb(0x279, 0x86);
outportb(0x279, 0xC3);
outportb(0x279, 0x61);
outportb(0x279, 0xB0);
outportb(0x279, 0x58);
outportb(0x279, 0x2C);
outportb(0x279, 0x16);
outportb(0x279, 0x8B);
outportb(0x279, 0x45);
outportb(0x279, 0xA2);
outportb(0x279, 0xD1);
outportb(0x279, 0xE8);
outportb(0x279, 0x74);
outportb(0x279, 0x3A);
outportb(0x279, 0x9D);
outportb(0x279, 0xCE);
outportb(0x279, 0xE7);
outportb(0x279, 0x73);
outportb(0x279, 0x39);
}
}
6
How to Perform Plug and Play Initiation Key with PCnet-ISA II