Update ia64 patch to 2.5.72-030619
[linux-flexiantxendom0-3.2.10.git] / arch / ia64 / sn / fakeprom / README
1 /*
2  * Copyright (c) 2002-2003 Silicon Graphics, Inc.  All Rights Reserved.
3  * 
4  * This program is free software; you can redistribute it and/or modify it 
5  * under the terms of version 2 of the GNU General Public License 
6  * as published by the Free Software Foundation.
7  * 
8  * This program is distributed in the hope that it would be useful, but 
9  * WITHOUT ANY WARRANTY; without even the implied warranty of 
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
11  * 
12  * Further, this software is distributed without any warranty that it is 
13  * free of the rightful claim of any third person regarding infringement 
14  * or the like.  Any license provided herein, whether implied or 
15  * otherwise, applies only to this software file.  Patent licenses, if 
16  * any, provided herein do not apply to combinations of this program with 
17  * other software, or any other product whatsoever.
18  * 
19  * You should have received a copy of the GNU General Public 
20  * License along with this program; if not, write the Free Software 
21  * Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
22  * 
23  * Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, 
24  * Mountain View, CA  94043, or:
25  * 
26  * http://www.sgi.com 
27  * 
28  * For further information regarding this notice, see: 
29  * 
30  * http://oss.sgi.com/projects/GenInfo/NoticeExplan
31  */
32
33 This directory contains the files required to build
34 the fake PROM image that is currently being used to
35 boot IA64 kernels running under the SGI Medusa kernel.
36
37 The FPROM currently provides the following functions:
38
39         - PAL emulation for all PAL calls we've made so far.
40         - SAL emulation for all SAL calls we've made so far.
41         - EFI emulation for all EFI calls we've made so far.
42         - builds the "ia64_bootparam" structure that is
43           passed to the kernel from SAL. This structure 
44           shows the cpu & memory configurations.
45         - supports medusa boottime options for changing
46           the number of cpus present
47         - supports medusa boottime options for changing
48           the memory configuration.
49
50
51
52 At some point, this fake PROM will be replaced by the
53 real PROM.
54
55
56
57
58 To build a fake PROM, cd to this directory & type:
59
60         make
61
62 This will (or should) build a fake PROM named "fprom".
63
64
65
66
67 Use this fprom image when booting the Medusa simulator. The
68 control file used to boot Medusa should include the 
69 following lines:
70
71         load fprom
72         load vmlinux
73         sr pc 0x100000
74         sr g 9 <address of kernel _start function> #(currently 0xe000000000520000)
75
76 NOTE: There is a script "runsim" in this directory that can be used to
77 simplify setting up an environment for running under Medusa.
78
79
80
81
82 The following parameters may be passed to the fake PROM to
83 control the PAL/SAL/EFI parameters passed to the kernel:
84
85         GR[8] = # of cpus
86         GR[9] = address of primary entry point into the kernel
87         GR[20] = memory configuration for node 0
88         GR[21] = memory configuration for node 1
89         GR[22] = memory configuration for node 2
90         GR[23] = memory configuration for node 3
91
92
93 Registers GR[20] - GR[23] contain information to specify the
94 amount of memory present on nodes 0-3.
95
96   - if nothing is specified (all registers are 0), the configuration
97     defaults to 8 MB on node 0.
98
99   - a mem config entry for node N is passed in GR[20+N]
100
101   - a mem config entry consists of 8 hex digits. Each digit gives the
102     amount of physical memory available on the node starting at
103     1GB*<dn>, where dn is the digit number. The amount of memory
104     is 8MB*2**<d>. (If <d> = 0, the memory size is 0).
105
106     SN1 doesn't support dimms this small but small memory systems 
107     boot faster on Medusa.
108
109
110
111 An example helps a lot. The following specifies that node 0 has
112 physical memory 0 to 8MB and 1GB to 1GB+32MB, and that node 1 has
113 64MB starting at address 0 of the node which is 8GB.
114
115       gr[20] = 0x21           # 0 to 8MB, 1GB to 1GB+32MB
116       gr[21] = 0x4            # 8GB to 8GB+64MB
117