LANCE_RDP
while ((*LANCE_RDP & (LE_C0_RINT | LE_C0_INTR)) == 0)
*LANCE_RDP = LE_C0_RINT;
*LANCE_RDP = LE_C0_INEA;
r = *LANCE_RDP;
*LANCE_RDP = LE_C0_TINT;
*LANCE_RDP = LE_C0_STOP; /* disable all external activity */
if (*LANCE_RDP != LE_C0_STOP)
*LANCE_RDP = t;
if (*LANCE_RDP != t)
*LANCE_RDP = addr & 0xfffe;
printf("initblock low addr=%x\n", *LANCE_RDP);
*LANCE_RDP = t;
if (*LANCE_RDP != t)
*LANCE_RDP = (addr >> 16) & 0x00ff;
printf("initblock high addr=%x\n", *LANCE_RDP);
*LANCE_RDP = 7;
if (*LANCE_RDP != 7)
*LANCE_RDP = 0;
if (*LANCE_RDP != 0)
*LANCE_RDP = LE_C3_BSWP | LE_C3_BCON;
*LANCE_RDP = LE_C0_INEA | LE_C0_INIT;
*LANCE_RDP = *LANCE_RDP;
*LANCE_RDP = LE_C0_INEA | LE_C0_STRT;
if (*LANCE_RDP == r)
printf("lance CSR0 %x != %x\n", *LANCE_RDP, r);
*LANCE_RDP = (LE_C0_RINT | LE_C0_TINT| LE_C0_INEA) & r;
*LANCE_RDP = LE_C0_STRT;