安泰电子世界网 首页 Ardunio Raspberry Pi 硬件(六)

Raspberry Pi 硬件(六)

2024-11-5 16:52 | 发布者: txc | 查看: 91 | 评论: 0

简介:Raspberry Pi 硬件

PARTITION

如果 reboot 命令(例如 sudo reboot N)或 autoboot.txt 中的 boot_partition=N 未明确设置引导分区号,则 PARTITION 选项可用于指定引导分区号。这可用于在用户按下按钮时从救援分区启动。

# Boot from partition 2 if GPIO 7 is pulled low
[gpio7=0]
PARTITION=2

默认值:0

PSU_MAX_CURRENT

仅限 Raspberry Pi 5。
如果设置,此属性将指示固件跳过 USB 供电协商,并假定它连接到具有给定额定电流的电源。通常,这将设置为 3000 或 5000,即支持低电流或高电流的电源。
默认值:""

USB_MSD_EXCLUDE_VID_PID

最多包含四个 VID/PID 对的列表,用于指定引导加载程序应忽略的设备。如果这与 HUB 匹配,则不会枚举 HUB,从而导致排除所有下游设备。 这旨在允许在启动枚举期间忽略有问题(例如枚举速度非常慢)的设备。这是特定于引导加载程序的,不会传递给操作系统。
该格式是以逗号分隔的十六进制值列表,其中 VID 是最重要的半字节。不允许使用空格。例如:034700a0,a4231234
默认值:""

USB_MSD_DISCOVER_TIMEOUT

如果在此超时内未找到 USB 大容量存储设备,则停止 USB-MSD 并选择下一个启动模式。
最小值:5000(5 秒)
默认值:20000(20 秒)

USB_MSD_LUN_TIMEOUT

在前进到下一个 LUN 之前等待多长时间(以毫秒为单位),例如多插槽 SD-CARD 读卡器。这仍在调整中,但如果连接了旧的/慢速设备以及包含操作系统的快速 USB-MSD 设备,则可能有助于加快启动速度。
最小值:100
默认值:2000(2 秒)

USB_MSD_PWR_OFF_TIME

仅限 Raspberry Pi 4。
重新启动 Pi 时,硬件会关闭电源 USB 电源。短断电时间可以 导致某些 USB 设备出现问题,因此此参数可用于强制延长断电时间 就好像电缆被物理移除一样。
在 Pi4 v1.3 及更早版本上,可配置/长时间断电需要启用 XHCI 控制器 因此,实际上有一个短暂的断电,然后是更长的可配置断电。时间越长 通过将此参数设置为零,可以跳过可配置的断电。
在较新的版本中,硬件确保 USB 电源在重新启动和引导加载程序时关闭 仅在此超时过后启用电源。这是在内存初始化后发生的 确保 USB 电源关闭至少两秒钟。因此,这个参数一般 对较新的硬件修订版没有影响。
最小值:0
最大值:5000
默认值:1000(1 秒)

USB_MSD_STARTUP_DELAY

如果已定义,则在 USB 主控制器初始化后延迟给定超时的 USB 枚举。如果 USB 硬盘驱动器需要很长时间才能初始化并触发 USB 超时,则此延迟可用于为驱动程序提供额外的初始化时间。可能还需要增加整体 USB 超时 (USB_MSD_DISCOVER_TIMEOUT)。
最小值:0
最大值:3000(30 秒)
默认值:0

VL805

仅限计算模块 4。
如果 VL805 属性设置为 1,则引导加载程序将搜索 VL805 PCIe XHCI 控制器,并尝试使用嵌入在引导加载程序 EEPROM 中的 VL805 固件对其进行初始化。这使得工业设计能够使用 VL805 XHCI 控制器,而无需为 VL805 固件提供专用的 SPI EEPROM。

  • 在计算模块 4 上,引导加载程序从不写入专用的 VL805 SPI EEPROM。此选项仅将控制器配置为从 SDRAM 加载固件。

  • 如果 VL805 XHCI 控制器具有专用 EEPROM,请勿使用此选项。它将无法初始化,因为 VL805 ROM 将尝试使用专用的 SPI EEPROM(如果安装)。

  • 嵌入式 VL805 固件采用与 Raspberry Pi 4B 相同的 USB 配置(两个 USB 3.0 端口和四个 USB 2.0 端口)。不支持加载备用 VL805 固件映像,此类配置应使用专用的 VL805 SPI EEPROM。

默认值:0

XHCI_DEBUG

此属性是一个位字段,用于控制大容量存储启动模式的 USB 调试消息的详细程度。启用所有这些消息会生成大量日志数据,这会减慢启动速度,甚至可能导致启动失败。对于详细日志,最好使用 NETCONSOLE。

日志
0x1USB 描述符
0x2大容量存储模式状态机
0x4大容量存储模式状态机 - 详细
0x8所有 USB 请求
0x10设备和中心状态机
0x20所有 xHCI TRB(非常详细)
0x40所有 xHCI 事件(非常详细)

若要组合值,请将它们相加。例如:

# Enable mass storage and USB descriptor logging
XHCI_DEBUG=0x3

默认值:0x0(未启用 USB 调试消息)

[config.txt]部分

读取config.txt GPU 固件后,start4.elf 读取引导加载程序 EEPROM 配置并检查名为 [config.txt] 的部分。如果 [config.txt] 部分存在,则从本节开头到文件末尾的内容将追加到内存中,以从引导分区读取config.txt文件的内容。这可用于自动将设置应用于每个操作系统,例如 dtoverlays。

警告如果指定了导致引导失败的无效配置,则必须重新刷新引导加载程序EEPROM。

config.txt中的配置属性

Raspberry Pi 5 需要存在一个 config.txt 文件,以指示该分区是可引导的。

boot_ramdisk

如果此属性设置为 1,则引导加载程序将尝试加载包含引导文件系统的名为 boot.img 的 ramdisk 文件。后续文件(例如 start4.elf)是从 ramdisk 而不是原始引导文件系统中读取的。
boot_ramdisk的主要目的是支持安全启动,但是,unsigned boot.img 文件也可用于网络启动或 RPIBOOT 配置。

  • 虚拟硬盘文件的最大大小为 96MB。

  • boot.img 文件是原始磁盘 .img 文件。推荐的格式是没有 MBR 的普通 FAT32 分区。

  • 在操作系统启动之前,将释放 ramdisk 文件系统的内存。

  • 如果选择了 TRYBOOT,则引导加载程序将搜索 tryboot.img 而不是 boot.img。

  • 另见autoboot.txt

有关安全启动和创建 boot.img 文件的更多信息,请参阅 USBBOOT。
默认值:0

boot_load_flags

自定义固件(裸机)的实验属性。
位 0 (0x1) 表示 .elf 文件是自定义固件。这将禁用任何兼容性检查(例如是否支持 USB MSD 启动)并在启动可执行文件之前重置 PCIe。
与 Raspberry Pi 5 无关,因为没有 start.elf 文件。
默认值:0x0

uart_2ndstage

如果 uart_2ndstage 为 1,则启用对 UART 的调试日志记录。此选项还会自动在 start.elf 中启用 UART 日志记录。启动选项页上也对此进行了说明。
BOOT_UART 属性还启用引导加载程序 UART 日志记录,但不会在 start.elf 中启用 UART 日志记录,除非还设置了 uart_2ndstage=1。
默认值:0

erase_eeprom

如果erase_eeprom设置为 1,则recovery.bin将擦除整个 SPI EEPROM,而不是刷新引导加载程序映像。此属性在正常启动期间不起作用。
默认值:0

eeprom_write_protect

配置EEPROM写入状态寄存器。这可以设置为将整个EEPROM标记为写保护,或清除写保护。
此选项必须与控制 EEPROM 写入状态寄存器更新的 EEPROM /WP 引脚结合使用。将 /WP 拉低(CM4 EEPROM_nWP 或在 Raspberry Pi 4 TP5 上)不会对 EEPROM 进行写保护,除非还配置了写入状态寄存器。
有关详细信息,请参阅华邦 W25x40cl 或华邦 W25Q16JV 数据表。
config.txt for recovery.bin 中的eeprom_write_protect设置。

描述
1配置写保护区域以覆盖整个EEPROM。
0清除写保护区域。
-1什么都不做。
注意flashrom不支持清除写保护区域,如果定义了写保护区域,则无法更新EEPROM。

在 Raspberry Pi 5 上,/WP 默认为低电平,因此一旦配置了写入状态寄存器,就会启用写保护。要通过连接 TP14 和 TP1 清除写保护拉高 /WP。
默认值:-1

os_check

在 Raspberry Pi 5 上,固件会在尝试从当前分区启动之前自动检查兼容的设备树文件。否则,旧的不兼容内核将被加载,然后挂起。要禁用此检查(例如,对于裸机开发),请在 config.txt 中设置 os_check=0
默认值:1

bootloader_update

此选项可设置为 0 以阻止自更新,而无需更新 EEPROM 配置。当通过网络启动更新多个 Raspberry Pi 时,这有时很有用,因为此选项可以按 Raspberry Pi 进行控制(例如,通过config.txt中的序列号过滤器)。
默认值:1

config.txt中的安全启动配置属性

如何使用 Raspberry Pi 安全启动

本白皮书介绍如何在基于 Raspberry Pi 4 的设备上实现安全启动。有关我们实现安全启动实现的方法的概述,请参阅 Raspberry Pi 4 启动安全性白皮书。安全启动系统旨在与基于 buildroot 的操作系统映像一起使用;不建议或不支持将其与 Raspberry Pi OS 一起使用。
以下config.txt属性用于对安全启动 OTP 设置进行编程。这些更改是不可逆的,只有在刷新引导加载程序EEPROM映像时才能通过RPIBOOT进行编程。这可确保无法远程设置安全启动,也无法通过意外插入过时的 SD 卡映像来设置安全启动。
有关启用secure-boot的详细信息,请参阅 USBBOOT 存储库中的安全启动自述文件和安全启动教程

program_pubkey

如果此属性设置为 1,则recovery.bin会将 EEPROM 镜像中公钥的哈希值写入 OTP。设置完成后,引导加载程序将拒绝使用不同RSA密钥或未签名映像签名的EEPROM镜像。
默认值:0

revoke_devkey

如果此属性设置为 1,则recovery.bin将向 OTP 写入一个值,以防止 ROM 加载不支持安全启动的第二阶段引导加载程序的旧版本。这样可以防止通过恢复到较旧版本的引导加载程序来关闭安全启动。
默认值:0

program_rpiboot_gpio

由于 Raspberry Pi 4B 或 Raspberry Pi 400 上没有专用的 nRPIBOOT 跳线,因此必须使用替代 GPIO 通过将 GPIO 拉低来选择 RPIBOOT 模式。只能选择一个 GPIO,可用选项为 2、4、5、7、8。此属性不依赖于安全启动,但请验证此 GPIO 配置是否与任何可能在启动期间将 GPIO 拉低的 HAT 冲突。
由于为了安全起见,此属性只能通过 RPIBOOT 进行编程,因此必须首先使用 erase_eeprom 清除引导加载程序 EEPROM。这会导致BCM2711 ROM 故障转移到 RPIBOOT 模式,然后允许设置此选项。
默认值:''

program_jtag_lock

如果此属性设置为 1,则recovery.bin将编写一个 OTP 值,以防止使用 VideoCore JTAG。此选项要求还设置program_pubkey和revoke_devkey。此选项可以防止故障分析,并且只能在设备经过全面测试后进行设置。
默认值:0

最新评论

友情链接:

返回顶部