xref: /OK3568_Linux_fs/kernel/arch/mips/include/asm/netlogic/psb-bootinfo.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2003-2011 NetLogic Microsystems, Inc. (NetLogic). All rights
3*4882a593Smuzhiyun  * reserved.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * This software is available to you under a choice of one of two
6*4882a593Smuzhiyun  * licenses.  You may choose to be licensed under the terms of the GNU
7*4882a593Smuzhiyun  * General Public License (GPL) Version 2, available from the file
8*4882a593Smuzhiyun  * COPYING in the main directory of this source tree, or the NetLogic
9*4882a593Smuzhiyun  * license below:
10*4882a593Smuzhiyun  *
11*4882a593Smuzhiyun  * Redistribution and use in source and binary forms, with or without
12*4882a593Smuzhiyun  * modification, are permitted provided that the following conditions
13*4882a593Smuzhiyun  * are met:
14*4882a593Smuzhiyun  *
15*4882a593Smuzhiyun  * 1. Redistributions of source code must retain the above copyright
16*4882a593Smuzhiyun  *    notice, this list of conditions and the following disclaimer.
17*4882a593Smuzhiyun  * 2. Redistributions in binary form must reproduce the above copyright
18*4882a593Smuzhiyun  *    notice, this list of conditions and the following disclaimer in
19*4882a593Smuzhiyun  *    the documentation and/or other materials provided with the
20*4882a593Smuzhiyun  *    distribution.
21*4882a593Smuzhiyun  *
22*4882a593Smuzhiyun  * THIS SOFTWARE IS PROVIDED BY NETLOGIC ``AS IS'' AND ANY EXPRESS OR
23*4882a593Smuzhiyun  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24*4882a593Smuzhiyun  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25*4882a593Smuzhiyun  * ARE DISCLAIMED. IN NO EVENT SHALL NETLOGIC OR CONTRIBUTORS BE LIABLE
26*4882a593Smuzhiyun  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27*4882a593Smuzhiyun  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28*4882a593Smuzhiyun  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
29*4882a593Smuzhiyun  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30*4882a593Smuzhiyun  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
31*4882a593Smuzhiyun  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
32*4882a593Smuzhiyun  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33*4882a593Smuzhiyun  */
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun #ifndef _ASM_NETLOGIC_BOOTINFO_H
36*4882a593Smuzhiyun #define _ASM_NETLOGIC_BOOTINFO_H
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun struct psb_info {
39*4882a593Smuzhiyun 	uint64_t boot_level;
40*4882a593Smuzhiyun 	uint64_t io_base;
41*4882a593Smuzhiyun 	uint64_t output_device;
42*4882a593Smuzhiyun 	uint64_t uart_print;
43*4882a593Smuzhiyun 	uint64_t led_output;
44*4882a593Smuzhiyun 	uint64_t init;
45*4882a593Smuzhiyun 	uint64_t exit;
46*4882a593Smuzhiyun 	uint64_t warm_reset;
47*4882a593Smuzhiyun 	uint64_t wakeup;
48*4882a593Smuzhiyun 	uint64_t online_cpu_map;
49*4882a593Smuzhiyun 	uint64_t master_reentry_sp;
50*4882a593Smuzhiyun 	uint64_t master_reentry_gp;
51*4882a593Smuzhiyun 	uint64_t master_reentry_fn;
52*4882a593Smuzhiyun 	uint64_t slave_reentry_fn;
53*4882a593Smuzhiyun 	uint64_t magic_dword;
54*4882a593Smuzhiyun 	uint64_t uart_putchar;
55*4882a593Smuzhiyun 	uint64_t size;
56*4882a593Smuzhiyun 	uint64_t uart_getchar;
57*4882a593Smuzhiyun 	uint64_t nmi_handler;
58*4882a593Smuzhiyun 	uint64_t psb_version;
59*4882a593Smuzhiyun 	uint64_t mac_addr;
60*4882a593Smuzhiyun 	uint64_t cpu_frequency;
61*4882a593Smuzhiyun 	uint64_t board_version;
62*4882a593Smuzhiyun 	uint64_t malloc;
63*4882a593Smuzhiyun 	uint64_t free;
64*4882a593Smuzhiyun 	uint64_t global_shmem_addr;
65*4882a593Smuzhiyun 	uint64_t global_shmem_size;
66*4882a593Smuzhiyun 	uint64_t psb_os_cpu_map;
67*4882a593Smuzhiyun 	uint64_t userapp_cpu_map;
68*4882a593Smuzhiyun 	uint64_t wakeup_os;
69*4882a593Smuzhiyun 	uint64_t psb_mem_map;
70*4882a593Smuzhiyun 	uint64_t board_major_version;
71*4882a593Smuzhiyun 	uint64_t board_minor_version;
72*4882a593Smuzhiyun 	uint64_t board_manf_revision;
73*4882a593Smuzhiyun 	uint64_t board_serial_number;
74*4882a593Smuzhiyun 	uint64_t psb_physaddr_map;
75*4882a593Smuzhiyun 	uint64_t xlr_loaderip_config;
76*4882a593Smuzhiyun 	uint64_t bldr_envp;
77*4882a593Smuzhiyun 	uint64_t avail_mem_map;
78*4882a593Smuzhiyun };
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun /* This is what netlboot passes and linux boot_mem_map is subtly different */
81*4882a593Smuzhiyun #define NLM_BOOT_MEM_MAP_MAX	32
82*4882a593Smuzhiyun struct nlm_boot_mem_map {
83*4882a593Smuzhiyun 	int nr_map;
84*4882a593Smuzhiyun 	struct nlm_boot_mem_map_entry {
85*4882a593Smuzhiyun 		uint64_t addr;		/* start of memory segment */
86*4882a593Smuzhiyun 		uint64_t size;		/* size of memory segment */
87*4882a593Smuzhiyun 		uint32_t type;		/* type of memory segment */
88*4882a593Smuzhiyun 	} map[NLM_BOOT_MEM_MAP_MAX];
89*4882a593Smuzhiyun };
90*4882a593Smuzhiyun #define NLM_BOOT_MEM_RAM	1
91*4882a593Smuzhiyun 
92*4882a593Smuzhiyun /* Pointer to saved boot loader info */
93*4882a593Smuzhiyun extern struct psb_info nlm_prom_info;
94*4882a593Smuzhiyun 
95*4882a593Smuzhiyun #endif
96