Changes in uspace/drv/nic/rtl8139/defs.h [5cd3d67:bf84871] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/nic/rtl8139/defs.h
r5cd3d67 rbf84871 29 29 /** @file rtl8139_defs.h 30 30 * 31 * Registers, bit positions and masks definition 32 * of the RTL8139 network family cards 33 */ 34 35 #ifndef RTL8139_DEFS_H_ 36 #define RTL8139_DEFS_H_ 37 31 * Registers, bit positions and masks definition of the RTL8139 network family 32 * cards 33 */ 34 35 #ifndef RTL8139_DEFS_H_INCLUDED_ 36 #define RTL8139_DEFS_H_INCLUDED_ 38 37 #include <sys/types.h> 39 38 #include <libarch/ddi.h> 40 39 41 /** Size of RTL8139 registers address space */ 42 #define RTL8139_IO_SIZE 256 43 44 /** Maximal transmitted frame length 45 * 46 * Maximal transmitted frame length in bytes 47 * allowed according to the RTL8139 documentation 48 * (see SIZE part of TSD documentation). 49 * 50 */ 51 #define RTL8139_FRAME_MAX_LENGTH 1792 40 41 /** The size of RTL8139 registers address space */ 42 #define RTL8139_IO_SIZE 256 43 44 /** The maximal transmitted packet length in bytes allowed according to RTL8139 45 * documentation (see SIZE part of TSD documentation) 46 */ 47 #define RTL8139_PACKET_MAX_LENGTH 1792 48 52 49 53 50 /** HW version 54 51 * 55 * As can be detected from HWVERID part of TCR 56 * (Transmit Configuration Register). 57 * 58 */ 59 typedef enum { 52 * as can be detected from HWVERID part of TCR 53 * (Transmit Configuration Register) 54 */ 55 enum rtl8139_version_id { 60 56 RTL8139 = 0, /**< RTL8139 */ 61 57 RTL8139A, /**< RTL8139A */ … … 70 66 RTL8101, /**< RTL8101 */ 71 67 RTL8139_VER_COUNT /**< Count of known RTL versions, the last value */ 72 } rtl8139_version_id_t; 68 }; 69 70 extern const char* model_names[RTL8139_VER_COUNT]; 73 71 74 72 /** Registers of RTL8139 family card offsets from the memory address base */ … … 77 75 MAC0 = IDR0, /**< Alias for IDR0 */ 78 76 79 // 0x 06 - 0x07 reserved77 // 0x6 - 0x7 reserved 80 78 81 79 MAR0 = 0x08, /**< Multicast mask registers 8 1b registers sequence */ … … 96 94 97 95 CR = 0x37, /**< Command register, 1b */ 98 CAPR = 0x38, /**< Current address of frameread, 2b */96 CAPR = 0x38, /**< Current address of packet read, 2b */ 99 97 CBA = 0x3a, /**< Current buffer address, 2b */ 100 98 … … 215 213 pio_write_8(io_base + CR9346, RTL8139_REGS_LOCKED); 216 214 } 217 218 215 /** Allow to change Config0-4 and BMCR register */ 219 216 static inline void rtl8139_regs_unlock(void *io_base) … … 285 282 RCR_MulERINT = 1 << 17, /**< Multiple early interrupt select */ 286 283 287 /** Minimal error framelength (1 = 8B, 0 = 64B). If AER/AR is set, RER8284 /** Minimal error packet length (1 = 8B, 0 = 64B). If AER/AR is set, RER8 288 285 * is "Don't care" 289 286 */ … … 305 302 306 303 RCR_WRAP = 1 << 7, /**< Rx buffer wrapped */ 307 RCR_ACCEPT_ERROR = 1 << 5, /**< Accept error frame*/308 RCR_ACCEPT_RUNT = 1 << 4, /**< Accept Runt (8-64 bytes) frames */304 RCR_ACCEPT_ERROR = 1 << 5, /**< Accept error packet */ 305 RCR_ACCEPT_RUNT = 1 << 4, /**< Accept Runt (8-64 bytes) packets */ 309 306 RCR_ACCEPT_BROADCAST = 1 << 3, /**< Accept broadcast */ 310 307 RCR_ACCEPT_MULTICAST = 1 << 2, /**< Accept multicast */ 311 308 RCR_ACCEPT_PHYS_MATCH = 1 << 1, /**< Accept device MAC address match */ 312 RCR_ACCEPT_ALL_PHYS = 1 << 0, /**< Accept all frames with309 RCR_ACCEPT_ALL_PHYS = 1 << 0, /**< Accept all packets with 313 310 * phys. desticnation 314 311 */ … … 365 362 ANAR_ACK = (1 << 14), /**< Capability reception acknowledge */ 366 363 ANAR_REMOTE_FAULT = (1 << 13), /**< Remote fault detection capability */ 367 ANAR_PAUSE = (1 << 10), /**< Symetric pause framecapability */364 ANAR_PAUSE = (1 << 10), /**< Symetric pause packet capability */ 368 365 ANAR_100T4 = (1 << 9), /**< T4, not supported by the device */ 369 366 ANAR_100TX_FD = (1 << 8), /**< 100BASE_TX full duplex */ … … 402 399 CONFIG3_GNT_SELECT = (1 << 7), /**< Gnt select */ 403 400 CONFIG3_PARM_EN = (1 << 6), /**< Parameter enabled (100MBit mode) */ 404 CONFIG3_MAGIC = (1 << 5), /**< WoL Magic frameenable */401 CONFIG3_MAGIC = (1 << 5), /**< WoL Magic packet enable */ 405 402 CONFIG3_LINK_UP = (1 << 4), /**< Wakeup if link is reestablished */ 406 403 CONFIG3_CLKRUN_EN = (1 << 2), /**< CLKRUN enabled */ /* TODO: check what does it mean */ … … 419 416 }; 420 417 421 /** Maximal runt framesize + 1 */422 #define RTL8139_RUNT_MAX_SIZE 423 424 /** Bits in frameheader */425 enum rtl8139_ frame_header {418 /** Maximal runt packet size + 1 */ 419 #define RTL8139_RUNT_MAX_SIZE 64 420 421 /** Bits in packet header */ 422 enum rtl8139_packet_header { 426 423 RSR_MAR = (1 << 15), /**< Multicast received */ 427 424 RSR_PAM = (1 << 14), /**< Physical address match */ … … 429 426 430 427 RSR_ISE = (1 << 5), /**< Invalid symbol error, 100BASE-TX only */ 431 RSR_RUNT = (1 << 4), /**< Runt frame(< RTL8139_RUNT_MAX_SIZE bytes) */432 433 RSR_LONG = (1 << 3), /**< Long frame(size > 4k bytes) */428 RSR_RUNT = (1 << 4), /**< Runt packet (< RTL8139_RUNT_MAX_SIZE bytes) */ 429 430 RSR_LONG = (1 << 3), /**< Long packet (size > 4k bytes) */ 434 431 RSR_CRC = (1 << 2), /**< CRC error */ 435 432 RSR_FAE = (1 << 1), /**< Frame alignment error */ 436 RSR_ROK = (1 << 0) /**< Good framereceived */433 RSR_ROK = (1 << 0) /**< Good packet received */ 437 434 }; 438 435 … … 454 451 */ 455 452 456 APPEND_CRC = 1 << 16, /**< Append CRC at the end of a frame*/453 APPEND_CRC = 1 << 16, /**< Append CRC at the end of a packet */ 457 454 458 455 MXTxDMA_SHIFT = 8, /**< Max. DMA Burst per TxDMA shift, burst = 16^value */ … … 462 459 TX_RETRY_COUNT_SIZE = 4, /**< Retries before aborting size */ 463 460 464 CLEAR_ABORT = 1 << 0 /**< Retransmit aborted frameat the last461 CLEAR_ABORT = 1 << 0 /**< Retransmit aborted packet at the last 465 462 * transmitted descriptor 466 463 */ … … 473 470 474 471 /** Mapping of HW version -> version ID */ 475 struct rtl8139_hwver_map { 476 uint32_t hwverid; /**< HW version value in the register */477 rtl8139_version_id_tver_id; /**< appropriate version id */472 struct rtl8139_hwver_map { 473 uint32_t hwverid; /**< HW version value in the register */ 474 enum rtl8139_version_id ver_id; /**< appropriate version id */ 478 475 }; 479 476 480 477 /** Mapping of HW version -> version ID */ 481 478 extern const struct rtl8139_hwver_map rtl8139_versions[RTL8139_VER_COUNT + 1]; 482 extern const char* model_names[RTL8139_VER_COUNT]; 483 484 /** Size in the frame header while copying from RxFIFO to Rx buffer */ 485 #define RTL8139_EARLY_SIZE UINT16_C(0xfff0) 486 487 /** The only supported pause frame time value */ 488 #define RTL8139_PAUSE_VAL UINT16_C(0xFFFF) 489 490 /** Size of the frame header in front of the received frame */ 491 #define RTL_FRAME_HEADER_SIZE 4 479 480 /** Size in the packet header while copying from RxFIFO to Rx buffer */ 481 #define RTL8139_EARLY_SIZE UINT16_C(0xfff0) 482 /** The only supported pause packet time value */ 483 #define RTL8139_PAUSE_VAL UINT16_C(0xFFFF) 484 485 /** Size of the packet header in front of the received frame */ 486 #define RTL_PACKET_HEADER_SIZE 4 492 487 493 488 /** 8k buffer */
Note:
See TracChangeset
for help on using the changeset viewer.