Annotation of qemu/roms/SLOF/drivers/e1k/e1k.h, revision 1.1

1.1     ! root        1: /******************************************************************************
        !             2:  * Copyright (c) 2007, 2011 IBM Corporation
        !             3:  * All rights reserved.
        !             4:  * This program and the accompanying materials
        !             5:  * are made available under the terms of the BSD License
        !             6:  * which accompanies this distribution, and is available at
        !             7:  * http://www.opensource.org/licenses/bsd-license.php
        !             8:  *
        !             9:  * Contributors:
        !            10:  *     IBM Corporation - initial implementation
        !            11:  *****************************************************************************/
        !            12: /*
        !            13:  * Definitions for the e1000 Gigabit Ethernet Driver for SLOF
        !            14:  */
        !            15: 
        !            16: #include "netdriver_int.h"
        !            17: 
        !            18: // compiler switches
        !            19: 
        !            20: // Debug switches
        !            21: //#define E1K_DEBUG            // main debug switch, w/o it the other ones don't work
        !            22: //#define E1K_SHOW_RCV
        !            23: //#define E1K_SHOW_RCV_DATA
        !            24: //#define E1K_SHOW_XMIT
        !            25: //#define E1K_SHOW_XMIT_DATA
        !            26: 
        !            27: /*
        !            28:  * pci register offsets
        !            29:  */
        !            30: // PCI command register
        !            31: #define PCI_COM_R               ((uint16_t) 0x0004)
        !            32: // PCI Cache Line Size register
        !            33: #define PCI_CACHELS_R           ((uint16_t) 0x000c)
        !            34: // PCI bar1 register
        !            35: #define PCI_BAR1_R              ((uint16_t) 0x0010)
        !            36: // PCI bar2 register
        !            37: #define PCI_BAR2_R              ((uint16_t) 0x0014)
        !            38: // PCI bar1 register
        !            39: #define PCI_SUBID_R             ((uint16_t) 0x002e)
        !            40: 
        !            41: /*
        !            42:  * e1000 register offsets
        !            43:  */
        !            44: // Device Control register
        !            45: #define CTRL                   ((uint16_t) 0x0000)
        !            46: // Device Status register
        !            47: #define STATUS                 ((uint16_t) 0x0008)
        !            48: // Eeprom Read register
        !            49: #define EERD                   ((uint16_t) 0x0014)
        !            50: // Interrupt Mask Clear register
        !            51: #define IMC                    ((uint16_t) 0x00d8)
        !            52: // Receive Control register
        !            53: #define RCTL                   ((uint16_t) 0x0100)
        !            54: // Receive Descriptor Base Address Low register
        !            55: #define RDBAL                  ((uint16_t) 0x2800)
        !            56: // Receive Descriptor Base Address High register
        !            57: #define RDBAH                  ((uint16_t) 0x2804)
        !            58: // Receive Descriptor Length register
        !            59: #define RDLEN                  ((uint16_t) 0x2808)
        !            60: // Receive Descriptor Head register
        !            61: #define RDH                    ((uint16_t) 0x2810)
        !            62: // Receive Descriptor Tail register
        !            63: #define RDT                    ((uint16_t) 0x2818)
        !            64: // Receive Delay Timer register
        !            65: #define RDTR                   ((uint16_t) 0x2820)
        !            66: // Transmit Control register
        !            67: #define TCTL                   ((uint16_t) 0x0400)
        !            68: // Transmit Descriptor Base Address Low register
        !            69: #define TDBAL                  ((uint16_t) 0x3800)
        !            70: // Transmit Descriptor Base Address High register
        !            71: #define TDBAH                  ((uint16_t) 0x3804)
        !            72: // Transmit Descriptor Length register
        !            73: #define TDLEN                  ((uint16_t) 0x3808)
        !            74: // Transmit Descriptor Head register
        !            75: #define TDH                    ((uint16_t) 0x3810)
        !            76: // Transmit Descriptor Tail register
        !            77: #define TDT                    ((uint16_t) 0x3818)
        !            78: // Receive Address Low register
        !            79: #define RAL0                   ((uint16_t) 0x5400)
        !            80: // Receive Address High register
        !            81: #define RAH0                   ((uint16_t) 0x5404)
        !            82: 
        !            83: 
        !            84: /*
        !            85:  * useful def's
        !            86:  */
        !            87: #define rd08(a)        (uint8_t) snk_kernel_interface->io_read((void*)(a),1)
        !            88: #define rd16(a)        (uint16_t) snk_kernel_interface->io_read((void*)(a),2)
        !            89: #define rd32(a)        (uint32_t) snk_kernel_interface->io_read((void*)(a),4)
        !            90: #define wr08(a,v)      snk_kernel_interface->io_write((void*)(a),(uint32_t)(v),1)
        !            91: #define wr16(a,v)      snk_kernel_interface->io_write((void*)(a),(uint32_t)(v),2)
        !            92: #define wr32(a,v)      snk_kernel_interface->io_write((void*)(a),(uint32_t)(v),4)
        !            93: #define printk         snk_kernel_interface->print
        !            94: #define us_delay       snk_kernel_interface->us_delay
        !            95: #define ms_delay       snk_kernel_interface->ms_delay
        !            96: 
        !            97: #define BIT08(bit)     ((uint8_t) 0x1 << (bit))
        !            98: #define BIT16(bit)     ((uint16_t) 0x1 << (bit))
        !            99: #define BIT32(bit)     ((uint32_t) 0x1 << (bit))
        !           100: 
        !           101: 
        !           102: /*
        !           103:  * type definition
        !           104:  */
        !           105: 
        !           106: extern snk_kernel_t    *snk_kernel_interface;
        !           107: 
        !           108: 
        !           109: /*
        !           110:  * inline functions
        !           111:  */
        !           112: 
        !           113: /**
        !           114:  * memory barrier function implementation
        !           115:  */
        !           116: static inline void
        !           117: mb(void)
        !           118: {
        !           119:        asm volatile("sync" ::: "memory");
        !           120: }

unix.superglobalmegacorp.com

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