cvmx-app-init.h revision 244984
1154133Sharti/***********************license start*************** 2154133Sharti * Copyright (c) 2003-2012 Cavium Inc. (support@cavium.com). All rights 3154133Sharti * reserved. 4154133Sharti * 5154133Sharti * 6154133Sharti * Redistribution and use in source and binary forms, with or without 7154133Sharti * modification, are permitted provided that the following conditions are 8154133Sharti * met: 9154133Sharti * 10154133Sharti * * Redistributions of source code must retain the above copyright 11154133Sharti * notice, this list of conditions and the following disclaimer. 12154133Sharti * 13154133Sharti * * Redistributions in binary form must reproduce the above 14154133Sharti * copyright notice, this list of conditions and the following 15154133Sharti * disclaimer in the documentation and/or other materials provided 16154133Sharti * with the distribution. 17154133Sharti 18154133Sharti * * Neither the name of Cavium Inc. nor the names of 19154133Sharti * its contributors may be used to endorse or promote products 20154133Sharti * derived from this software without specific prior written 21154133Sharti * permission. 22154133Sharti 23154133Sharti * This Software, including technical data, may be subject to U.S. export control 24154133Sharti * laws, including the U.S. Export Administration Act and its associated 25154133Sharti * regulations, and may be subject to export or import regulations in other 26154133Sharti * countries. 27154133Sharti 28154133Sharti * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" 29154133Sharti * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR 30154133Sharti * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO 31154133Sharti * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR 32154133Sharti * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM 33154133Sharti * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE, 34154133Sharti * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF 35154133Sharti * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR 36154133Sharti * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR 37154133Sharti * PERFORMANCE OF THE SOFTWARE LIES WITH YOU. 38154133Sharti ***********************license end**************************************/ 39154133Sharti 40154133Sharti 41154133Sharti 42154133Sharti 43154133Sharti 44154133Sharti 45154133Sharti/** 46154133Sharti * @file 47154133Sharti * Header file for simple executive application initialization. This defines 48154133Sharti * part of the ABI between the bootloader and the application. 49154133Sharti * <hr>$Revision: 70327 $<hr> 50154133Sharti * 51154133Sharti */ 52154133Sharti 53154133Sharti#ifndef __CVMX_APP_INIT_H__ 54154133Sharti#define __CVMX_APP_INIT_H__ 55154133Sharti 56154133Sharti#ifdef __cplusplus 57154133Shartiextern "C" { 58154133Sharti#endif 59154133Sharti 60154133Sharti 61154133Sharti/* Current major and minor versions of the CVMX bootinfo block that is passed 62154133Sharti** from the bootloader to the application. This is versioned so that applications 63154133Sharti** can properly handle multiple bootloader versions. */ 64154133Sharti#define CVMX_BOOTINFO_MAJ_VER 1 65154133Sharti#define CVMX_BOOTINFO_MIN_VER 3 66154133Sharti 67154133Sharti 68154133Sharti#if (CVMX_BOOTINFO_MAJ_VER == 1) 69154133Sharti#define CVMX_BOOTINFO_OCTEON_SERIAL_LEN 20 70154133Sharti/* This structure is populated by the bootloader. For binary 71154133Sharti** compatibility the only changes that should be made are 72154133Sharti** adding members to the end of the structure, and the minor 73154133Sharti** version should be incremented at that time. 74154133Sharti** If an incompatible change is made, the major version 75154133Sharti** must be incremented, and the minor version should be reset 76154133Sharti** to 0. 77154133Sharti*/ 78154133Shartistruct cvmx_bootinfo { 79154133Sharti#ifdef __BIG_ENDIAN_BITFIELD 80154133Sharti uint32_t major_version; 81154133Sharti uint32_t minor_version; 82154133Sharti 83154133Sharti uint64_t stack_top; 84154133Sharti uint64_t heap_base; 85154133Sharti uint64_t heap_end; 86154133Sharti uint64_t desc_vaddr; 87154133Sharti 88154133Sharti uint32_t exception_base_addr; 89154133Sharti uint32_t stack_size; 90154133Sharti uint32_t flags; 91154133Sharti uint32_t core_mask; 92154133Sharti uint32_t dram_size; /**< DRAM size in megabytes */ 93154133Sharti uint32_t phy_mem_desc_addr; /**< physical address of free memory descriptor block*/ 94154133Sharti uint32_t debugger_flags_base_addr; /**< used to pass flags from app to debugger */ 95154133Sharti uint32_t eclock_hz; /**< CPU clock speed, in hz */ 96154133Sharti uint32_t dclock_hz; /**< DRAM clock speed, in hz */ 97154133Sharti uint32_t reserved0; 98154133Sharti uint16_t board_type; 99154133Sharti uint8_t board_rev_major; 100154133Sharti uint8_t board_rev_minor; 101154133Sharti uint16_t reserved1; 102154133Sharti uint8_t reserved2; 103154133Sharti uint8_t reserved3; 104154133Sharti char board_serial_number[CVMX_BOOTINFO_OCTEON_SERIAL_LEN]; 105154133Sharti uint8_t mac_addr_base[6]; 106154133Sharti uint8_t mac_addr_count; 107154133Sharti#if (CVMX_BOOTINFO_MIN_VER >= 1) 108154133Sharti /* Several boards support compact flash on the Octeon boot bus. The CF 109154133Sharti ** memory spaces may be mapped to different addresses on different boards. 110154133Sharti ** These are the physical addresses, so care must be taken to use the correct 111154133Sharti ** XKPHYS/KSEG0 addressing depending on the application's ABI. 112154133Sharti ** These values will be 0 if CF is not present */ 113154133Sharti uint64_t compact_flash_common_base_addr; 114154133Sharti uint64_t compact_flash_attribute_base_addr; 115154133Sharti /* Base address of the LED display (as on EBT3000 board) 116154133Sharti ** This will be 0 if LED display not present. */ 117154133Sharti uint64_t led_display_base_addr; 118154133Sharti#endif 119154133Sharti#if (CVMX_BOOTINFO_MIN_VER >= 2) 120154133Sharti uint32_t dfa_ref_clock_hz; /**< DFA reference clock in hz (if applicable)*/ 121154133Sharti uint32_t config_flags; /**< flags indicating various configuration options. These flags supercede 122154133Sharti ** the 'flags' variable and should be used instead if available */ 123154133Sharti#endif 124154133Sharti#if (CVMX_BOOTINFO_MIN_VER >= 3) 125154133Sharti uint64_t fdt_addr; /**< Address of the OF Flattened Device Tree structure describing the board. */ 126154133Sharti#endif 127154133Sharti#else /* __BIG_ENDIAN */ 128154133Sharti /* 129154133Sharti * Little-Endian: When the CPU mode is switched to 130154133Sharti * little-endian, the view of the structure has some of the 131154133Sharti * fields swapped. 132154133Sharti */ 133154133Sharti uint32_t minor_version; 134154133Sharti uint32_t major_version; 135154133Sharti 136154133Sharti uint64_t stack_top; 137154133Sharti uint64_t heap_base; 138154133Sharti uint64_t heap_end; 139154133Sharti uint64_t desc_vaddr; 140154133Sharti 141154133Sharti uint32_t stack_size; 142154133Sharti uint32_t exception_base_addr; 143154133Sharti 144154133Sharti uint32_t core_mask; 145154133Sharti uint32_t flags; 146154133Sharti 147154133Sharti uint32_t phy_mem_desc_addr; 148154133Sharti uint32_t dram_size; 149154133Sharti 150154133Sharti uint32_t eclock_hz; 151154133Sharti uint32_t debugger_flags_base_addr; 152154133Sharti 153154133Sharti uint32_t reserved0; 154154133Sharti uint32_t dclock_hz; 155154133Sharti 156154133Sharti uint8_t reserved3; 157154133Sharti uint8_t reserved2; 158154133Sharti uint16_t reserved1; 159154133Sharti uint8_t board_rev_minor; 160154133Sharti uint8_t board_rev_major; 161154133Sharti uint16_t board_type; 162154133Sharti 163154133Sharti union cvmx_bootinfo_scramble { 164154133Sharti /* Must byteswap these four words so that...*/ 165154133Sharti uint64_t s[4]; 166154133Sharti /* ... this strucure has the proper data arrangement. */ 167154133Sharti struct { 168154133Sharti char board_serial_number[CVMX_BOOTINFO_OCTEON_SERIAL_LEN]; 169154133Sharti uint8_t mac_addr_base[6]; 170154133Sharti uint8_t mac_addr_count; 171154133Sharti uint8_t pad[5]; 172154133Sharti } le; 173154133Sharti } scramble1; 174154133Sharti 175154133Sharti#if (CVMX_BOOTINFO_MIN_VER >= 1) 176154133Sharti uint64_t compact_flash_common_base_addr; 177154133Sharti uint64_t compact_flash_attribute_base_addr; 178154133Sharti uint64_t led_display_base_addr; 179154133Sharti#endif 180154133Sharti#if (CVMX_BOOTINFO_MIN_VER >= 2) 181154133Sharti uint32_t config_flags; 182154133Sharti uint32_t dfa_ref_clock_hz; 183154133Sharti#endif 184154133Sharti#if (CVMX_BOOTINFO_MIN_VER >= 3) 185154133Sharti uint64_t fdt_addr; 186154133Sharti#endif 187154133Sharti#endif 188154133Sharti}; 189154133Sharti 190154133Shartitypedef struct cvmx_bootinfo cvmx_bootinfo_t; 191154133Sharti 192154133Sharti#define CVMX_BOOTINFO_CFG_FLAG_PCI_HOST (1ull << 0) 193154133Sharti#define CVMX_BOOTINFO_CFG_FLAG_PCI_TARGET (1ull << 1) 194154133Sharti#define CVMX_BOOTINFO_CFG_FLAG_DEBUG (1ull << 2) 195154133Sharti#define CVMX_BOOTINFO_CFG_FLAG_NO_MAGIC (1ull << 3) 196154133Sharti/* This flag is set if the TLB mappings are not contained in the 197154133Sharti** 0x10000000 - 0x20000000 boot bus region. */ 198154133Sharti#define CVMX_BOOTINFO_CFG_FLAG_OVERSIZE_TLB_MAPPING (1ull << 4) 199154133Sharti#define CVMX_BOOTINFO_CFG_FLAG_BREAK (1ull << 5) 200154133Sharti 201154133Sharti#endif /* (CVMX_BOOTINFO_MAJ_VER == 1) */ 202154133Sharti 203154133Sharti 204154133Sharti/* Type defines for board and chip types */ 205154133Shartienum cvmx_board_types_enum { 206154133Sharti CVMX_BOARD_TYPE_NULL = 0, 207154133Sharti CVMX_BOARD_TYPE_SIM = 1, 208154133Sharti CVMX_BOARD_TYPE_EBT3000 = 2, 209154133Sharti CVMX_BOARD_TYPE_KODAMA = 3, 210154133Sharti CVMX_BOARD_TYPE_NIAGARA = 4, /* Obsolete, no longer supported */ 211154133Sharti CVMX_BOARD_TYPE_NAC38 = 5, /* Obsolete, no longer supported */ 212154133Sharti CVMX_BOARD_TYPE_THUNDER = 6, 213154133Sharti CVMX_BOARD_TYPE_TRANTOR = 7, /* Obsolete, no longer supported */ 214154133Sharti CVMX_BOARD_TYPE_EBH3000 = 8, 215154133Sharti CVMX_BOARD_TYPE_EBH3100 = 9, 216154133Sharti CVMX_BOARD_TYPE_HIKARI = 10, 217154133Sharti CVMX_BOARD_TYPE_CN3010_EVB_HS5 = 11, 218154133Sharti CVMX_BOARD_TYPE_CN3005_EVB_HS5 = 12, 219154133Sharti CVMX_BOARD_TYPE_KBP = 13, 220154133Sharti CVMX_BOARD_TYPE_CN3020_EVB_HS5 = 14, /* Deprecated, CVMX_BOARD_TYPE_CN3010_EVB_HS5 supports the CN3020 */ 221154133Sharti CVMX_BOARD_TYPE_EBT5800 = 15, 222154133Sharti CVMX_BOARD_TYPE_NICPRO2 = 16, 223154133Sharti CVMX_BOARD_TYPE_EBH5600 = 17, 224154133Sharti CVMX_BOARD_TYPE_EBH5601 = 18, 225154133Sharti CVMX_BOARD_TYPE_EBH5200 = 19, 226154133Sharti CVMX_BOARD_TYPE_BBGW_REF = 20, 227154133Sharti CVMX_BOARD_TYPE_NIC_XLE_4G = 21, 228154133Sharti CVMX_BOARD_TYPE_EBT5600 = 22, 229154133Sharti CVMX_BOARD_TYPE_EBH5201 = 23, 230154133Sharti CVMX_BOARD_TYPE_EBT5200 = 24, 231154133Sharti CVMX_BOARD_TYPE_CB5600 = 25, 232154133Sharti CVMX_BOARD_TYPE_CB5601 = 26, 233154133Sharti CVMX_BOARD_TYPE_CB5200 = 27, 234154133Sharti CVMX_BOARD_TYPE_GENERIC = 28, /* Special 'generic' board type, supports many boards */ 235154133Sharti CVMX_BOARD_TYPE_EBH5610 = 29, 236154133Sharti CVMX_BOARD_TYPE_LANAI2_A = 30, 237154133Sharti CVMX_BOARD_TYPE_LANAI2_U = 31, 238154133Sharti CVMX_BOARD_TYPE_EBB5600 = 32, 239154133Sharti CVMX_BOARD_TYPE_EBB6300 = 33, 240154133Sharti CVMX_BOARD_TYPE_NIC_XLE_10G = 34, 241154133Sharti CVMX_BOARD_TYPE_LANAI2_G = 35, 242154133Sharti CVMX_BOARD_TYPE_EBT5810 = 36, 243154133Sharti CVMX_BOARD_TYPE_NIC10E = 37, 244154133Sharti CVMX_BOARD_TYPE_EP6300C = 38, 245154133Sharti CVMX_BOARD_TYPE_EBB6800 = 39, 246154133Sharti CVMX_BOARD_TYPE_NIC4E = 40, 247154133Sharti CVMX_BOARD_TYPE_NIC2E = 41, 248154133Sharti CVMX_BOARD_TYPE_EBB6600 = 42, 249154133Sharti CVMX_BOARD_TYPE_REDWING = 43, 250154133Sharti CVMX_BOARD_TYPE_NIC68_4 = 44, 251154133Sharti CVMX_BOARD_TYPE_NIC10E_66 = 45, 252154133Sharti CVMX_BOARD_TYPE_EBB6100 = 46, 253154133Sharti CVMX_BOARD_TYPE_EVB7100 = 47, 254154133Sharti CVMX_BOARD_TYPE_MAX, 255154133Sharti /* NOTE: 256-257 are being used by a customer. */ 256154133Sharti 257154133Sharti /* The range from CVMX_BOARD_TYPE_MAX to CVMX_BOARD_TYPE_CUST_DEFINED_MIN is reserved 258154133Sharti ** for future SDK use. */ 259154133Sharti 260154133Sharti /* Set aside a range for customer boards. These numbers are managed 261154133Sharti ** by Cavium. 262154133Sharti */ 263154133Sharti CVMX_BOARD_TYPE_CUST_DEFINED_MIN = 10000, 264154133Sharti CVMX_BOARD_TYPE_CUST_WSX16 = 10001, 265154133Sharti CVMX_BOARD_TYPE_CUST_NS0216 = 10002, 266154133Sharti CVMX_BOARD_TYPE_CUST_NB5 = 10003, 267154133Sharti CVMX_BOARD_TYPE_CUST_WMR500 = 10004, 268154133Sharti CVMX_BOARD_TYPE_CUST_ITB101 = 10005, 269154133Sharti CVMX_BOARD_TYPE_CUST_NTE102 = 10006, 270154133Sharti CVMX_BOARD_TYPE_CUST_AGS103 = 10007, 271154133Sharti#if !defined(OCTEON_VENDOR_LANNER) 272154133Sharti CVMX_BOARD_TYPE_CUST_GST104 = 10008, 273154133Sharti#else 274154133Sharti CVMX_BOARD_TYPE_CUST_LANNER_MR955= 10008, 275154133Sharti#endif 276154133Sharti CVMX_BOARD_TYPE_CUST_GCT105 = 10009, 277154133Sharti CVMX_BOARD_TYPE_CUST_AGS106 = 10010, 278154133Sharti CVMX_BOARD_TYPE_CUST_SGM107 = 10011, 279154133Sharti CVMX_BOARD_TYPE_CUST_GCT108 = 10012, 280154133Sharti CVMX_BOARD_TYPE_CUST_AGS109 = 10013, 281154133Sharti CVMX_BOARD_TYPE_CUST_GCT110 = 10014, 282154133Sharti CVMX_BOARD_TYPE_CUST_L2_AIR_SENDER = 10015, 283154133Sharti CVMX_BOARD_TYPE_CUST_L2_AIR_RECEIVER= 10016, 284154133Sharti CVMX_BOARD_TYPE_CUST_L2_ACCTON2_TX = 10017, 285154133Sharti CVMX_BOARD_TYPE_CUST_L2_ACCTON2_RX = 10018, 286154133Sharti CVMX_BOARD_TYPE_CUST_L2_WSTRNSNIC_TX= 10019, 287154133Sharti CVMX_BOARD_TYPE_CUST_L2_WSTRNSNIC_RX= 10020, 288154133Sharti#if defined(OCTEON_VENDOR_LANNER) 289154133Sharti CVMX_BOARD_TYPE_CUST_LANNER_MR730 = 10021, 290154133Sharti#else 291154133Sharti CVMX_BOARD_TYPE_CUST_L2_ZINWELL = 10021, 292154133Sharti#endif 293154133Sharti CVMX_BOARD_TYPE_CUST_DEFINED_MAX = 20000, 294154133Sharti 295154133Sharti /* Set aside a range for customer private use. The SDK won't 296154133Sharti ** use any numbers in this range. */ 297154133Sharti CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001, 298154133Sharti#if defined(OCTEON_VENDOR_LANNER) 299154133Sharti CVMX_BOARD_TYPE_CUST_LANNER_MR320= 20002, 300154133Sharti CVMX_BOARD_TYPE_CUST_LANNER_MR321X=20007, 301154133Sharti#endif 302154133Sharti#if defined(OCTEON_VENDOR_UBIQUITI) 303154133Sharti CVMX_BOARD_TYPE_CUST_UBIQUITI_E100=20002, 304154133Sharti#endif 305154133Sharti#if defined(OCTEON_VENDOR_RADISYS) 306154133Sharti CVMX_BOARD_TYPE_CUST_RADISYS_RSYS4GBE=20002, 307154133Sharti#endif 308154133Sharti CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000, 309154133Sharti 310154133Sharti 311154133Sharti /* Range for IO modules */ 312154133Sharti CVMX_BOARD_TYPE_MODULE_MIN = 30001, 313154133Sharti CVMX_BOARD_TYPE_MODULE_PCIE_RC_4X = 30002, 314154133Sharti CVMX_BOARD_TYPE_MODULE_PCIE_EP_4X = 30003, 315154133Sharti CVMX_BOARD_TYPE_MODULE_SGMII_MARVEL = 30004, 316154133Sharti CVMX_BOARD_TYPE_MODULE_SFPPLUS_BCM = 30005, 317154133Sharti CVMX_BOARD_TYPE_MODULE_SRIO = 30006, 318154133Sharti CVMX_BOARD_TYPE_MODULE_EBB5600_QLM0 = 30007, 319154133Sharti CVMX_BOARD_TYPE_MODULE_EBB5600_QLM1 = 30008, 320154133Sharti CVMX_BOARD_TYPE_MODULE_EBB5600_QLM2 = 30009, 321154133Sharti CVMX_BOARD_TYPE_MODULE_EBB5600_QLM3 = 30010, 322154133Sharti CVMX_BOARD_TYPE_MODULE_MAX = 31000 323154133Sharti 324154133Sharti /* The remaining range is reserved for future use. */ 325154133Sharti}; 326154133Shartienum cvmx_chip_types_enum { 327154133Sharti CVMX_CHIP_TYPE_NULL = 0, 328154133Sharti CVMX_CHIP_SIM_TYPE_DEPRECATED = 1, 329154133Sharti CVMX_CHIP_TYPE_OCTEON_SAMPLE = 2, 330154133Sharti CVMX_CHIP_TYPE_MAX 331154133Sharti}; 332154133Sharti 333154133Sharti/* Compatability alias for NAC38 name change, planned to be removed from SDK 1.7 */ 334154133Sharti#define CVMX_BOARD_TYPE_NAO38 CVMX_BOARD_TYPE_NAC38 335154133Sharti 336154133Sharti/* Functions to return string based on type */ 337154133Sharti#define ENUM_BRD_TYPE_CASE(x) case x: return(#x + 16); /* Skip CVMX_BOARD_TYPE_ */ 338154133Shartistatic inline const char *cvmx_board_type_to_string(enum cvmx_board_types_enum type) 339154133Sharti{ 340154133Sharti switch (type) 341154133Sharti { 342154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NULL) 343154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_SIM) 344154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT3000) 345154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KODAMA) 346154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIAGARA) 347154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NAC38) 348154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_THUNDER) 349154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_TRANTOR) 350154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH3000) 351154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH3100) 352154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_HIKARI) 353154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CN3010_EVB_HS5) 354154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CN3005_EVB_HS5) 355154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KBP) 356154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CN3020_EVB_HS5) 357154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5800) 358154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NICPRO2) 359154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5600) 360154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5601) 361154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5200) 362154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_BBGW_REF) 363154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC_XLE_4G) 364154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5600) 365154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5201) 366154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5200) 367154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CB5600) 368154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CB5601) 369154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CB5200) 370154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_GENERIC) 371154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5610) 372154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_LANAI2_A) 373154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_LANAI2_U) 374154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBB5600) 375154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBB6300) 376154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC_XLE_10G) 377154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_LANAI2_G) 378154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5810) 379154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC10E) 380154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EP6300C) 381154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBB6800) 382154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC4E) 383154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC2E) 384154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBB6600) 385154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_REDWING) 386154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC68_4) 387154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC10E_66) 388154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBB6100) 389154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EVB7100) 390154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MAX) 391154133Sharti 392154133Sharti /* Customer boards listed here */ 393154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DEFINED_MIN) 394154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_WSX16) 395154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_NS0216) 396154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_NB5) 397154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_WMR500) 398154133Sharti ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_ITB101) 399 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_NTE102) 400 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_AGS103) 401#if !defined(OCTEON_VENDOR_LANNER) 402 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_GST104) 403#else 404 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR955) 405#endif 406 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_GCT105) 407 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_AGS106) 408 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_SGM107) 409 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_GCT108) 410 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_AGS109) 411 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_GCT110) 412 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_L2_AIR_SENDER) 413 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_L2_AIR_RECEIVER) 414 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_L2_ACCTON2_TX) 415 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_L2_ACCTON2_RX) 416 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_L2_WSTRNSNIC_TX) 417 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_L2_WSTRNSNIC_RX) 418#if defined(OCTEON_VENDOR_LANNER) 419 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR730) 420#else 421 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_L2_ZINWELL) 422#endif 423 424 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DEFINED_MAX) 425 426 /* Customer private range */ 427 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN) 428#if defined(OCTEON_VENDOR_LANNER) 429 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR320) 430 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR321X) 431#endif 432#if defined(OCTEON_VENDOR_UBIQUITI) 433 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_UBIQUITI_E100) 434#endif 435#if defined(OCTEON_VENDOR_RADISYS) 436 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_RADISYS_RSYS4GBE) 437#endif 438 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX) 439 440 /* Module range */ 441 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_MIN) 442 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_PCIE_RC_4X) 443 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_PCIE_EP_4X) 444 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_SGMII_MARVEL) 445 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_SFPPLUS_BCM) 446 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_SRIO) 447 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_EBB5600_QLM0) 448 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_EBB5600_QLM1) 449 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_EBB5600_QLM2) 450 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_EBB5600_QLM3) 451 ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MODULE_MAX) 452 } 453 return "Unsupported Board"; 454} 455 456#define ENUM_CHIP_TYPE_CASE(x) case x: return(#x + 15); /* Skip CVMX_CHIP_TYPE */ 457static inline const char *cvmx_chip_type_to_string(enum cvmx_chip_types_enum type) 458{ 459 switch (type) 460 { 461 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_NULL) 462 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_SIM_TYPE_DEPRECATED) 463 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_OCTEON_SAMPLE) 464 ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_MAX) 465 } 466 return "Unsupported Chip"; 467} 468 469 470extern int cvmx_debug_uart; 471 472 473 474#ifdef __cplusplus 475} 476#endif 477 478#endif /* __CVMX_APP_INIT_H__ */ 479