Annotation of qemu/roms/ipxe/src/drivers/net/pnic_api.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Constants etc. for the Bochs/Etherboot pseudo-NIC
        !             3:  * 
        !             4:  * This header file must be valid C and C++.
        !             5:  *
        !             6:  * Operation of the pseudo-NIC (PNIC) is pretty simple.  To write a
        !             7:  * command plus data, first write the length of the data to
        !             8:  * PNIC_REG_LEN, then write the data a byte at a type to
        !             9:  * PNIC_REG_DATA, then write the command code to PNIC_REG_CMD.  The
        !            10:  * status will be available from PNIC_REG_STAT.  The length of any
        !            11:  * data returned will be in PNIC_REG_LEN and can be read a byte at a
        !            12:  * time from PNIC_REG_DATA.
        !            13:  */
        !            14: 
        !            15: FILE_LICENCE ( GPL2_OR_LATER );
        !            16: 
        !            17: /*
        !            18:  * PCI parameters
        !            19:  */
        !            20: #define PNIC_PCI_VENDOR        0xfefe  /* Hopefully these won't clash with */
        !            21: #define PNIC_PCI_DEVICE 0xefef /* any real PCI device IDs.         */
        !            22: 
        !            23: /*
        !            24:  * 'Hardware' register addresses, offset from io_base
        !            25:  */
        !            26: #define PNIC_REG_CMD   0x00    /* Command register, 2 bytes, write only */
        !            27: #define PNIC_REG_STAT  0x00    /* Status register, 2 bytes, read only */
        !            28: #define PNIC_REG_LEN   0x02    /* Length register, 2 bytes, read-write */
        !            29: #define PNIC_REG_DATA  0x04    /* Data port, 1 byte, read-write */
        !            30: /*
        !            31:  * PNIC_MAX_REG used in Bochs to claim i/o space
        !            32:  */
        !            33: #define PNIC_MAX_REG   0x04
        !            34: 
        !            35: /*
        !            36:  * Command code definitions: write these into PNIC_REG_CMD
        !            37:  */
        !            38: #define PNIC_CMD_NOOP          0x0000
        !            39: #define PNIC_CMD_API_VER       0x0001
        !            40: #define PNIC_CMD_READ_MAC      0x0002
        !            41: #define PNIC_CMD_RESET         0x0003
        !            42: #define PNIC_CMD_XMIT          0x0004
        !            43: #define PNIC_CMD_RECV          0x0005
        !            44: #define PNIC_CMD_RECV_QLEN     0x0006
        !            45: #define PNIC_CMD_MASK_IRQ      0x0007
        !            46: #define PNIC_CMD_FORCE_IRQ     0x0008
        !            47: 
        !            48: /*
        !            49:  * Status code definitions: read these from PNIC_REG_STAT
        !            50:  *
        !            51:  * We avoid using status codes that might be confused with
        !            52:  * randomly-read data (e.g. 0x0000, 0xffff etc.)
        !            53:  */
        !            54: #define PNIC_STATUS_OK         0x4f4b          /* 'OK' */
        !            55: #define PNIC_STATUS_UNKNOWN_CMD        0x3f3f          /* '??' */
        !            56: 
        !            57: /*
        !            58:  * Other miscellaneous information
        !            59:  */
        !            60: 
        !            61: #define PNIC_API_VERSION       0x0101          /* 1.1 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.