iPXE
drivers
net
pnic_api.h
Go to the documentation of this file.
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 */
FILE_LICENCE
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition
compiler.h:896
Generated by
1.14.0