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