VirtualBox

source: vbox/trunk/src/VBox/Devices/PC/Etherboot-src/drivers/net/pnic_api.h@ 895

Last change on this file since 895 was 1, checked in by vboxsync, 55 years ago

import

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.8 KB
Line 
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/*
16 * PCI parameters
17 */
18#define PNIC_PCI_VENDOR 0xfefe /* Hopefully these won't clash with */
19#define PNIC_PCI_DEVICE 0xefef /* any real PCI device IDs. */
20
21/*
22 * 'Hardware' register addresses, offset from io_base
23 */
24#define PNIC_REG_CMD 0x00 /* Command register, 2 bytes, write only */
25#define PNIC_REG_STAT 0x00 /* Status register, 2 bytes, read only */
26#define PNIC_REG_LEN 0x02 /* Length register, 2 bytes, read-write */
27#define PNIC_REG_DATA 0x04 /* Data port, 1 byte, read-write */
28/*
29 * PNIC_MAX_REG used in Bochs to claim i/o space
30 */
31#define PNIC_MAX_REG 0x04
32
33/*
34 * Command code definitions: write these into PNIC_REG_CMD
35 */
36#define PNIC_CMD_NOOP 0x0000
37#define PNIC_CMD_API_VER 0x0001
38#define PNIC_CMD_READ_MAC 0x0002
39#define PNIC_CMD_RESET 0x0003
40#define PNIC_CMD_XMIT 0x0004
41#define PNIC_CMD_RECV 0x0005
42#define PNIC_CMD_RECV_QLEN 0x0006
43#define PNIC_CMD_MASK_IRQ 0x0007
44#define PNIC_CMD_FORCE_IRQ 0x0008
45
46/*
47 * Status code definitions: read these from PNIC_REG_STAT
48 *
49 * We avoid using status codes that might be confused with
50 * randomly-read data (e.g. 0x0000, 0xffff etc.)
51 */
52#define PNIC_STATUS_OK 0x4f4b /* 'OK' */
53#define PNIC_STATUS_UNKNOWN_CMD 0x3f3f /* '??' */
54
55/*
56 * Other miscellaneous information
57 */
58
59#define PNIC_API_VERSION 0x0101 /* 1.1 */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette