/****************************************************************************
NAME
ip_wake2 - Perform controller wake up sequence 2.
DESCRIPTION
This function writes the special AMD 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_wake2(void)
{
int
i;
for ( i = 0; i < 2; i++ ) {
outportb(0x279, 0x00);
/* Initialize LFSR. */
outportb(0x279, 0x00);
/* Initialize LFSR. */
outportb(0x279, 0x6B);
/* 0x6B is the AMD sequence! */
outportb(0x279, 0x35);
outportb(0x279, 0x9A);
outportb(0x279, 0xCD);
outportb(0x279, 0xE6);
outportb(0x279, 0xF3);
outportb(0x279, 0x79);
outportb(0x279, 0xBC);
outportb(0x279, 0x5E);
outportb(0x279, 0xAF);
outportb(0x279, 0x57);
outportb(0x279, 0x2B);
outportb(0x279, 0x15);
outportb(0x279, 0x8A);
outportb(0x279, 0xC5);
outportb(0x279, 0xE2);
outportb(0x279, 0xF1);
outportb(0x279, 0xF8);
outportb(0x279, 0x7C);
outportb(0x279, 0x3E);
outportb(0x279, 0x9F);
outportb(0x279, 0x4F);
outportb(0x279, 0x27);
outportb(0x279, 0x13);
outportb(0x279, 0x09);
outportb(0x279, 0x84);
outportb(0x279, 0x42);
outportb(0x279, 0xA1);
outportb(0x279, 0xD0);
outportb(0x279, 0x68);
outportb(0x279, 0x34);
outportb(0x279, 0x1A);
}
}
How to Perform Plug and Play Initiation Key with PCnet-ISA II
7