xref: /linux/Documentation/arch/arm/setup.rst (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1*e790a4ceSJonathan Corbet=============================================
2*e790a4ceSJonathan CorbetKernel initialisation parameters on ARM Linux
3*e790a4ceSJonathan Corbet=============================================
4*e790a4ceSJonathan Corbet
5*e790a4ceSJonathan CorbetThe following document describes the kernel initialisation parameter
6*e790a4ceSJonathan Corbetstructure, otherwise known as 'struct param_struct' which is used
7*e790a4ceSJonathan Corbetfor most ARM Linux architectures.
8*e790a4ceSJonathan Corbet
9*e790a4ceSJonathan CorbetThis structure is used to pass initialisation parameters from the
10*e790a4ceSJonathan Corbetkernel loader to the Linux kernel proper, and may be short lived
11*e790a4ceSJonathan Corbetthrough the kernel initialisation process.  As a general rule, it
12*e790a4ceSJonathan Corbetshould not be referenced outside of arch/arm/kernel/setup.c:setup_arch().
13*e790a4ceSJonathan Corbet
14*e790a4ceSJonathan CorbetThere are a lot of parameters listed in there, and they are described
15*e790a4ceSJonathan Corbetbelow:
16*e790a4ceSJonathan Corbet
17*e790a4ceSJonathan Corbet page_size
18*e790a4ceSJonathan Corbet   This parameter must be set to the page size of the machine, and
19*e790a4ceSJonathan Corbet   will be checked by the kernel.
20*e790a4ceSJonathan Corbet
21*e790a4ceSJonathan Corbet nr_pages
22*e790a4ceSJonathan Corbet   This is the total number of pages of memory in the system.  If
23*e790a4ceSJonathan Corbet   the memory is banked, then this should contain the total number
24*e790a4ceSJonathan Corbet   of pages in the system.
25*e790a4ceSJonathan Corbet
26*e790a4ceSJonathan Corbet   If the system contains separate VRAM, this value should not
27*e790a4ceSJonathan Corbet   include this information.
28*e790a4ceSJonathan Corbet
29*e790a4ceSJonathan Corbet ramdisk_size
30*e790a4ceSJonathan Corbet   This is now obsolete, and should not be used.
31*e790a4ceSJonathan Corbet
32*e790a4ceSJonathan Corbet flags
33*e790a4ceSJonathan Corbet   Various kernel flags, including:
34*e790a4ceSJonathan Corbet
35*e790a4ceSJonathan Corbet    =====   ========================
36*e790a4ceSJonathan Corbet    bit 0   1 = mount root read only
37*e790a4ceSJonathan Corbet    bit 1   unused
38*e790a4ceSJonathan Corbet    bit 2   0 = load ramdisk
39*e790a4ceSJonathan Corbet    bit 3   0 = prompt for ramdisk
40*e790a4ceSJonathan Corbet    =====   ========================
41*e790a4ceSJonathan Corbet
42*e790a4ceSJonathan Corbet rootdev
43*e790a4ceSJonathan Corbet   major/minor number pair of device to mount as the root filesystem.
44*e790a4ceSJonathan Corbet
45*e790a4ceSJonathan Corbet video_num_cols / video_num_rows
46*e790a4ceSJonathan Corbet   These two together describe the character size of the dummy console,
47*e790a4ceSJonathan Corbet   or VGA console character size.  They should not be used for any other
48*e790a4ceSJonathan Corbet   purpose.
49*e790a4ceSJonathan Corbet
50*e790a4ceSJonathan Corbet   It's generally a good idea to set these to be either standard VGA, or
51*e790a4ceSJonathan Corbet   the equivalent character size of your fbcon display.  This then allows
52*e790a4ceSJonathan Corbet   all the bootup messages to be displayed correctly.
53*e790a4ceSJonathan Corbet
54*e790a4ceSJonathan Corbet video_x / video_y
55*e790a4ceSJonathan Corbet   This describes the character position of cursor on VGA console, and
56*e790a4ceSJonathan Corbet   is otherwise unused. (should not be used for other console types, and
57*e790a4ceSJonathan Corbet   should not be used for other purposes).
58*e790a4ceSJonathan Corbet
59*e790a4ceSJonathan Corbet memc_control_reg
60*e790a4ceSJonathan Corbet   MEMC chip control register for Acorn Archimedes and Acorn A5000
61*e790a4ceSJonathan Corbet   based machines.  May be used differently by different architectures.
62*e790a4ceSJonathan Corbet
63*e790a4ceSJonathan Corbet sounddefault
64*e790a4ceSJonathan Corbet   Default sound setting on Acorn machines.  May be used differently by
65*e790a4ceSJonathan Corbet   different architectures.
66*e790a4ceSJonathan Corbet
67*e790a4ceSJonathan Corbet adfsdrives
68*e790a4ceSJonathan Corbet   Number of ADFS/MFM disks.  May be used differently by different
69*e790a4ceSJonathan Corbet   architectures.
70*e790a4ceSJonathan Corbet
71*e790a4ceSJonathan Corbet bytes_per_char_h / bytes_per_char_v
72*e790a4ceSJonathan Corbet   These are now obsolete, and should not be used.
73*e790a4ceSJonathan Corbet
74*e790a4ceSJonathan Corbet pages_in_bank[4]
75*e790a4ceSJonathan Corbet   Number of pages in each bank of the systems memory (used for RiscPC).
76*e790a4ceSJonathan Corbet   This is intended to be used on systems where the physical memory
77*e790a4ceSJonathan Corbet   is non-contiguous from the processors point of view.
78*e790a4ceSJonathan Corbet
79*e790a4ceSJonathan Corbet pages_in_vram
80*e790a4ceSJonathan Corbet   Number of pages in VRAM (used on Acorn RiscPC).  This value may also
81*e790a4ceSJonathan Corbet   be used by loaders if the size of the video RAM can't be obtained
82*e790a4ceSJonathan Corbet   from the hardware.
83*e790a4ceSJonathan Corbet
84*e790a4ceSJonathan Corbet initrd_start / initrd_size
85*e790a4ceSJonathan Corbet   This describes the kernel virtual start address and size of the
86*e790a4ceSJonathan Corbet   initial ramdisk.
87*e790a4ceSJonathan Corbet
88*e790a4ceSJonathan Corbet rd_start
89*e790a4ceSJonathan Corbet   Start address in sectors of the ramdisk image on a floppy disk.
90*e790a4ceSJonathan Corbet
91*e790a4ceSJonathan Corbet system_rev
92*e790a4ceSJonathan Corbet   system revision number.
93*e790a4ceSJonathan Corbet
94*e790a4ceSJonathan Corbet system_serial_low / system_serial_high
95*e790a4ceSJonathan Corbet   system 64-bit serial number
96*e790a4ceSJonathan Corbet
97*e790a4ceSJonathan Corbet mem_fclk_21285
98*e790a4ceSJonathan Corbet   The speed of the external oscillator to the 21285 (footbridge),
99*e790a4ceSJonathan Corbet   which control's the speed of the memory bus, timer & serial port.
100*e790a4ceSJonathan Corbet   Depending upon the speed of the cpu its value can be between
101*e790a4ceSJonathan Corbet   0-66 MHz. If no params are passed or a value of zero is passed,
102*e790a4ceSJonathan Corbet   then a value of 50 Mhz is the default on 21285 architectures.
103*e790a4ceSJonathan Corbet
104*e790a4ceSJonathan Corbet paths[8][128]
105*e790a4ceSJonathan Corbet   These are now obsolete, and should not be used.
106*e790a4ceSJonathan Corbet
107*e790a4ceSJonathan Corbet commandline
108*e790a4ceSJonathan Corbet   Kernel command line parameters.  Details can be found elsewhere.
109