board.h revision 233542
1/*- 2 * Copyright 2003-2011 Netlogic Microsystems (Netlogic). All rights 3 * reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in 13 * the documentation and/or other materials provided with the 14 * distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY Netlogic Microsystems ``AS IS'' AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NETLOGIC OR CONTRIBUTORS BE 20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 26 * THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 * NETLOGIC_BSD 29 * $FreeBSD: head/sys/mips/nlm/board.h 233542 2012-03-27 12:25:47Z jchandra $ 30 */ 31 32#ifndef __NLM_BOARD_H__ 33#define __NLM_BOARD_H__ 34 35#define XLP_NAE_NBLOCKS 5 36#define XLP_NAE_NPORTS 4 37#define XLP_I2C_MAXDEVICES 8 38 39/* 40 * EVP board EEPROM info 41 */ 42#define EEPROM_I2CBUS 1 43#define EEPROM_I2CADDR 0xAE 44#define EEPROM_SIZE 48 45#define EEPROM_MACADDR_OFFSET 2 46 47#if !defined(LOCORE) && !defined(__ASSEMBLY__) 48 49struct xlp_port_ivars { 50 int port; 51 int block; 52 int type; 53 int phy_addr; 54}; 55 56struct xlp_block_ivars { 57 int block; 58 int type; 59 u_int portmask; 60 struct xlp_port_ivars port_ivars[XLP_NAE_NPORTS]; 61}; 62 63struct xlp_nae_ivars { 64 int node; 65 u_int blockmask; 66 struct xlp_block_ivars block_ivars[XLP_NAE_NBLOCKS]; 67}; 68 69struct xlp_board_info { 70 u_int nodemask; 71 struct xlp_node_info { 72 struct xlp_nae_ivars nae_ivars; 73 } nodes[XLP_MAX_NODES]; 74}; 75 76int nlm_board_info_setup(void); 77 78int nlm_board_eeprom_read(int node, int i2cbus, int addr, int offs, 79 uint8_t *buf,int sz); 80uint64_t nlm_board_cpld_base(int node, int chipselect); 81int nlm_board_cpld_majorversion(uint64_t cpldbase); 82int nlm_board_cpld_minorversion(uint64_t cpldbase); 83void nlm_board_cpld_reset(uint64_t cpldbase); 84int nlm_board_cpld_dboard_type(uint64_t cpldbase, int slot); 85#endif 86 87#endif 88