ARM Linux 上的内核初始化参数¶
本文档描述了内核初始化参数结构,也称为 ‘struct param_struct’,它被大多数 ARM Linux 架构所使用。
此结构用于将初始化参数从内核加载程序传递给 Linux 内核主体,并且在内核初始化过程中可能只会短暂存在。通常情况下,不应在 arch/arm/kernel/setup.c:setup_arch() 之外引用它。
其中列出了许多参数,下面将逐一介绍
- page_size
此参数必须设置为机器的页面大小,并由内核进行检查。
- nr_pages
这是系统中内存的总页数。如果内存是分块(banked)的,则此项应包含系统中总的页数。
如果系统包含独立的 VRAM,则该值不应包含此信息。
- ramdisk_size
此参数现已废弃,不应使用。
- flags
各种内核标志,包括
第 0 位
1 = 以只读方式挂载根文件系统
第 1 位
unused
第 2 位
0 = 加载 ramdisk
第 3 位
0 = 提示加载 ramdisk
- rootdev
要作为根文件系统挂载的设备的主/次设备号对。
- video_num_cols / video_num_rows
这两者共同描述了虚拟控制台(dummy console)的字符大小,或者 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
内核命令行参数。详细信息可在别处找到。