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
cavium-octeon
executive
cvmx-sysinfo.c
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/application information obtained
30
* by the bootloader.
31
*/
32
#include <linux/module.h>
33
34
#include <
asm/octeon/cvmx.h
>
35
#include <
asm/octeon/cvmx-spinlock.h
>
36
#include <
asm/octeon/cvmx-sysinfo.h
>
37
42
static
struct
{
43
struct
cvmx_sysinfo
sysinfo
;
/* system information */
44
cvmx_spinlock_t
lock
;
/* mutex spinlock */
45
46
}
state
= {
47
.lock =
CVMX_SPINLOCK_UNLOCKED_INITIALIZER
48
};
49
50
51
/*
52
* Global variables that define the min/max of the memory region set
53
* up for 32 bit userspace access.
54
*/
55
uint64_t
linux_mem32_min
;
56
uint64_t
linux_mem32_max
;
57
uint64_t
linux_mem32_wired
;
58
uint64_t
linux_mem32_offset
;
59
69
struct
cvmx_sysinfo
*
cvmx_sysinfo_get
(
void
)
70
{
71
return
&(
state
.sysinfo);
72
}
73
EXPORT_SYMBOL
(
cvmx_sysinfo_get
);
74
98
int
cvmx_sysinfo_minimal_initialize
(
void
*
phy_mem_desc_ptr
,
99
uint16_t
board_type
,
100
uint8_t
board_rev_major
,
101
uint8_t
board_rev_minor
,
102
uint32_t
cpu_clock_hz
)
103
{
104
105
/* The sysinfo structure was already initialized */
106
if
(
state
.sysinfo.board_type)
107
return
0;
108
109
memset
(&(
state
.sysinfo), 0x0,
sizeof
(
state
.sysinfo));
110
state
.sysinfo.phy_mem_desc_ptr =
phy_mem_desc_ptr
;
111
state
.sysinfo.board_type =
board_type
;
112
state
.sysinfo.board_rev_major =
board_rev_major
;
113
state
.sysinfo.board_rev_minor =
board_rev_minor
;
114
state
.sysinfo.cpu_clock_hz =
cpu_clock_hz
;
115
116
return
1;
117
}
Generated on Thu Jan 10 2013 13:09:07 for Linux Kernel by
1.8.2