Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
mips
include
asm
octeon
cvmx-sysinfo.h
Go to the documentation of this file.
1
/***********************license start***************
2
* Author: Cavium Networks
3
*
4
* Contact:
[email protected]
5
* This file is part of the OCTEON SDK
6
*
7
* Copyright (c) 2003-2008 Cavium Networks
8
*
9
* This file is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License, Version 2, as
11
* published by the Free Software Foundation.
12
*
13
* This file is distributed in the hope that it will be useful, but
14
* AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16
* NONINFRINGEMENT. See the GNU General Public License for more
17
* details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this file; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22
* or visit http://www.gnu.org/licenses/.
23
*
24
* This file may also be available under a different license from Cavium.
25
* Contact Cavium Networks for more information
26
***********************license end**************************************/
27
28
/*
29
* This module provides system/board information obtained by the bootloader.
30
*/
31
32
#ifndef __CVMX_SYSINFO_H__
33
#define __CVMX_SYSINFO_H__
34
35
#define OCTEON_SERIAL_LEN 20
36
47
struct
cvmx_sysinfo
{
48
/* System wide variables */
49
/* installed DRAM in system, in bytes */
50
uint64_t
system_dram_size
;
51
52
/* ptr to memory descriptor block */
53
void
*
phy_mem_desc_ptr
;
54
55
56
/* Application image specific variables */
57
/* stack top address (virtual) */
58
uint64_t
stack_top
;
59
/* heap base address (virtual) */
60
uint64_t
heap_base
;
61
/* stack size in bytes */
62
uint32_t
stack_size
;
63
/* heap size in bytes */
64
uint32_t
heap_size
;
65
/* coremask defining cores running application */
66
uint32_t
core_mask
;
67
/* Deprecated, use cvmx_coremask_first_core() to select init core */
68
uint32_t
init_core
;
69
70
/* exception base address, as set by bootloader */
71
uint64_t
exception_base_addr
;
72
73
/* cpu clock speed in hz */
74
uint32_t
cpu_clock_hz
;
75
76
/* dram data rate in hz (data rate = 2 * clock rate */
77
uint32_t
dram_data_rate_hz
;
78
79
80
uint16_t
board_type
;
81
uint8_t
board_rev_major
;
82
uint8_t
board_rev_minor
;
83
uint8_t
mac_addr_base
[6];
84
uint8_t
mac_addr_count
;
85
char
board_serial_number
[
OCTEON_SERIAL_LEN
];
86
/*
87
* Several boards support compact flash on the Octeon boot
88
* bus. The CF memory spaces may be mapped to different
89
* addresses on different boards. These values will be 0 if
90
* CF is not present. Note that these addresses are physical
91
* addresses, and it is up to the application to use the
92
* proper addressing mode (XKPHYS, KSEG0, etc.)
93
*/
94
uint64_t
compact_flash_common_base_addr
;
95
uint64_t
compact_flash_attribute_base_addr
;
96
/*
97
* Base address of the LED display (as on EBT3000 board) This
98
* will be 0 if LED display not present. Note that this
99
* address is a physical address, and it is up to the
100
* application to use the proper addressing mode (XKPHYS,
101
* KSEG0, etc.)
102
*/
103
uint64_t
led_display_base_addr
;
104
/* DFA reference clock in hz (if applicable)*/
105
uint32_t
dfa_ref_clock_hz
;
106
/* configuration flags from bootloader */
107
uint32_t
bootloader_config_flags
;
108
109
/* Uart number used for console */
110
uint8_t
console_uart_num
;
111
};
112
122
extern
struct
cvmx_sysinfo
*
cvmx_sysinfo_get
(
void
);
123
146
extern
int
cvmx_sysinfo_minimal_initialize
(
void
*
phy_mem_desc_ptr
,
147
uint16_t
board_type
,
148
uint8_t
board_rev_major
,
149
uint8_t
board_rev_minor
,
150
uint32_t
cpu_clock_hz
);
151
152
#endif
/* __CVMX_SYSINFO_H__ */
Generated on Thu Jan 10 2013 13:10:48 for Linux Kernel by
1.8.2