ARM Linux 上的内核初始化参数

以下文档描述了内核初始化参数结构,也称为 “struct param_struct”,它用于大多数 ARM Linux 架构。

此结构用于将初始化参数从内核加载器传递到 Linux 内核本身,并且可能在内核初始化过程中短暂存在。作为一般规则,它不应在 arch/arm/kernel/setup.c:setup_arch() 之外引用。

其中列出了许多参数,下面将对其进行描述

page_size

此参数必须设置为机器的页面大小,并且将由内核检查。

nr_pages

这是系统中内存的总页数。如果内存是分区的,则应包含系统中总的页数。

如果系统包含单独的 VRAM,则此值不应包含此信息。

ramdisk_size

现在已过时,不应使用。

flags

各种内核标志,包括

第 0 位

1 = 以只读方式挂载根

第 1 位

未使用

第 2 位

0 = 加载 ramdisk

第 3 位

0 = 提示 ramdisk

rootdev

要挂载为根文件系统的设备的主/次设备号对。

video_num_cols / video_num_rows

这两个参数一起描述了虚拟控制台或 VGA 控制台字符大小的字符大小。它们不应用于任何其他目的。

通常,最好将这些设置为标准 VGA 或 fbcon 显示的等效字符大小。这样就可以正确显示所有启动消息。

video_x / video_y

这描述了 VGA 控制台上光标的字符位置,否则未使用。(不应与其他控制台类型一起使用,也不应用于其他目的)。

memc_control_reg

基于 Acorn Archimedes 和 Acorn A5000 机器的 MEMC 芯片控制寄存器。不同的架构可能使用不同的方式。

sounddefault

Acorn 机器上的默认声音设置。不同的架构可能使用不同的方式。

adfsdrives

ADFS/MFM 磁盘的数量。不同的架构可能使用不同的方式。

bytes_per_char_h / bytes_per_char_v

现在已过时,不应使用。

pages_in_bank[4]

系统内存每个 bank 中的页数(用于 RiscPC)。这旨在用于物理内存从处理器角度来看不连续的系统。

pages_in_vram

VRAM 中的页数(用于 Acorn RiscPC)。如果无法从硬件获取视频 RAM 的大小,加载器也可以使用此值。

initrd_start / initrd_size

这描述了初始 ramdisk 的内核虚拟起始地址和大小。

rd_start

软盘上 ramdisk 镜像的起始扇区地址。

system_rev

系统修订号。

system_serial_low / system_serial_high

系统 64 位序列号

mem_fclk_21285

外部振荡器到 21285 (footbridge) 的速度,它控制内存总线、定时器和串行端口的速度。根据 CPU 的速度,其值可以在 0-66 MHz 之间。如果未传递任何参数或传递的值为零,则在 21285 架构上默认值为 50 Mhz。

paths[8][128]

现在已过时,不应使用。

commandline

内核命令行参数。详细信息可以在其他地方找到。