ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / arch / ia64 / sn / fakeprom / README
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (c) 2002-2003 Silicon Graphics, Inc.  All Rights Reserved.
7  */
8
9 This directory contains the files required to build
10 the fake PROM image that is currently being used to
11 boot IA64 kernels running under the SGI Medusa kernel.
12
13 The FPROM currently provides the following functions:
14
15         - PAL emulation for all PAL calls we've made so far.
16         - SAL emulation for all SAL calls we've made so far.
17         - EFI emulation for all EFI calls we've made so far.
18         - builds the "ia64_bootparam" structure that is
19           passed to the kernel from SAL. This structure 
20           shows the cpu & memory configurations.
21         - supports medusa boottime options for changing
22           the number of cpus present
23         - supports medusa boottime options for changing
24           the memory configuration.
25
26
27
28 At some point, this fake PROM will be replaced by the
29 real PROM.
30
31
32
33
34 To build a fake PROM, cd to this directory & type:
35
36         make
37
38 This will (or should) build a fake PROM named "fprom".
39
40
41
42
43 Use this fprom image when booting the Medusa simulator. The
44 control file used to boot Medusa should include the 
45 following lines:
46
47         load fprom
48         load vmlinux
49         sr pc 0x100000
50         sr g 9 <address of kernel _start function> #(currently 0xe000000000520000)
51
52 NOTE: There is a script "runsim" in this directory that can be used to
53 simplify setting up an environment for running under Medusa.
54
55
56
57
58 The following parameters may be passed to the fake PROM to
59 control the PAL/SAL/EFI parameters passed to the kernel:
60
61         GR[8] = # of cpus
62         GR[9] = address of primary entry point into the kernel
63         GR[20] = memory configuration for node 0
64         GR[21] = memory configuration for node 1
65         GR[22] = memory configuration for node 2
66         GR[23] = memory configuration for node 3
67
68
69 Registers GR[20] - GR[23] contain information to specify the
70 amount of memory present on nodes 0-3.
71
72   - if nothing is specified (all registers are 0), the configuration
73     defaults to 8 MB on node 0.
74
75   - a mem config entry for node N is passed in GR[20+N]
76
77   - a mem config entry consists of 8 hex digits. Each digit gives the
78     amount of physical memory available on the node starting at
79     1GB*<dn>, where dn is the digit number. The amount of memory
80     is 8MB*2**<d>. (If <d> = 0, the memory size is 0).
81
82     SN1 doesn't support dimms this small but small memory systems 
83     boot faster on Medusa.
84
85
86
87 An example helps a lot. The following specifies that node 0 has
88 physical memory 0 to 8MB and 1GB to 1GB+32MB, and that node 1 has
89 64MB starting at address 0 of the node which is 8GB.
90
91       gr[20] = 0x21           # 0 to 8MB, 1GB to 1GB+32MB
92       gr[21] = 0x4            # 8GB to 8GB+64MB
93