Subject: bge query 3
To: None <tech-kern@netbsd.org>
From: Patrick Welche <prlw1@newn.cam.ac.uk>
List: tech-kern
Date: 05/25/2007 12:31:51
Do any of you understand the purpose of if_bge.c:bge_reset()

    /*
     * Prevent PXE restart: write a magic number to the
     * general communications memory at 0xB50.
     */
    bge_writemem_ind(sc, BGE_SOFTWARE_GENCOMM, BGE_MAGIC_NUMBER); 

?

It seems the alogorithm is

- issue reset
- write gencomm = magic_no
- wait until gencomm = ~magic_no

What I am seeing is

- issue reset
- write gencomm = magic_no
- wait forever as gencomm == magic_no

If I remove the write, I do read ~magic_no from gencomm => the firmware
has finished initializing.

It seems that the linux driver doesn't do the write, but FreeBSD does...

Cheers,

Patrick