固件嵌入式操作系统驱动开发【免费下载链接】corebootRead-only mirror of https://review.coreboot.org/coreboot.git. Synced every hour. We dont handle Pull Requests.项目地址https://gitcode.com/gh_mirrors/co/coreboot点击查看免费下载本文围绕 coreboot 仓库中 Star Labs Lite Mk IIIStarLite Mk III主板的官方文档展开完整覆盖该板型的硬件规格、coreboot 构建前置条件与命令、SPI Flash 芯片信息及 fwupd 内部刷写流程并结合仓库中的 Kconfig、设备树devicetree、IFWI 固件映射与 SPI 驱动源码说明该板在 coreboot 中的实际实现细节帮助读者独立完成这块 Gemini Lake 笔记本的 coreboot 构建与刷写。一、StarLite Mk III 硬件规格文档 lite_glk.md 给出的完整硬件清单如下类别配置CPUIntel N5000Gemini Lake完整规格参考 Intel ARKECITE IT8987E背光键盘标准 PS/2 键码 SCI 热键电池充电器AC 适配器或 USB-C PD挂起/恢复Suspend/ResumeGPUIntel UHD Graphics 605建议使用 GOP 驱动提供 VBTeDP 11.6 英寸 1920x1080 液晶屏HDMI 视频USB-C DisplayPort 视频内存8GB 板载网络9462 CNVi WiFi / 蓝牙焊接在 PCBA 上音频Realtek ALC269内置扬声器与麦克风3.5mm 耳麦二合一接口HDMI 音频USB-C DisplayPort 音频存储M.2 SATA SSDRTS5129 MicroSD 读卡器USB640x480 CCD 摄像头USB 3.1 Gen 1 Type-C左USB 3.1 Gen 1 Type-A左USB 3.1 Gen 1 Type-A右从源码结构看这些规格与仓库中的配置一一对应Kconfig 中BOARD_STARLABS_LITE_GLK选择SOC_INTEL_GEMINILAKE对应 N5000 所在的 Gemini Lake SoC、EC_STARLABS_ITE对应 ITE IT8987E 嵌入式控制器以及SPI_FLASH_GIGADEVICE对应下文刷写章节的 Gigadevice 闪存而MAINBOARD_PART_NUMBER的默认值正是Lite Mk III见 KconfigMAINBOARD_FAMILY为I3。二、coreboot 源码中的板级支持结构Lite 系列主板的源码位于 src/mainboard/starlabs/lite 目录按变体组织variants/glkLite Mk III与variants/glkrLite Mk IVN5030。关键实现包括入口与 GPIOmainboard.c 中init_mainboard()通过variant_gpio_table()取得变体 GPIO 表并调用gpio_configure_pads()配置引脚enable_mainboard()将dev-ops-acpi_fill_ssdt指向merlin_fill_ssdt即 SSdT 表由 Star Labs Merlin EC 驱动填充。设备树variants/glk/devicetree.cb 指定 SoC 芯片为soc/intel/apollolakeGemini Lake 与 Apollo Lake 共用该 SoC 描述。板级变量variants/glk/Makefile.mk 将gpio.c编入 bootblock 与 ramstage、hda_verb.c编入 ramstage用于 HDA 动词表即文档所述音频电路初始化、romstage.c编入 romstage。2.1 设备树中的关键配置devicetree.cb 中的配置印证了硬件规格表中的多个条目chip soc/intel/apollolake register common_soc_config.chipset_lockdown CHIPSET_LOCKDOWN_COREBOOT ... device domain 0 on device ref igd on register gfx GMA_DEFAULT_PANEL(0) end device ref cnvi on chip drivers/wifi/generic register add_acpi_dma_property true register enable_cnvi_ddr_rfim true ...device ref igdGMA_DEFAULT_PANEL(0)对应文档中eDP 11.6 英寸 1920x1080 LCD结合 Kconfig 中select INTEL_GMA_HAVE_VBT说明文档VBT is provided提供 VBT由板级 variants/glk/data.vbt 落实GPU 走 GOP 驱动路径。device ref cnvi对应9462 CNVi WiFi/蓝牙通过 drivers/wifi/generic 芯片接入并配置了 DDR RFIM 使能与 ACPI DMA 属性。device ref hda上设置subsystemid 0x2145 0x0004注释明确为# Lite ALC269 VC与规格表中的 Realtek ALC269 声卡一致。device ref lpc_espi挂接chip ec/starlabs/merlin对应 ITE IT8987E EC其中 PS/2 键盘 PnP 设备4e.06分配了io 0x60/0x64与irq 1正是文档所述标准 PS/2 键码键盘的 ACPI 描述device ref sata启用端口 0 对应 M.2 SATA SSD。USB 端口逐个在xhci下开启并生成 ACPI PLD 热插拔属性Type-C母板、Type-A母板/子板、内置摄像头usb2_port[4]、SD 卡读卡器usb2_port[6]与 CNVi 蓝牙usb2_port[9]使用 GPIO_33 使能/复位。Kconfig 中WEBCAM_USB_PORTglk 默认为 4与CARD_READER_USB_PORTglk 默认为 6与设备树中的端口号一致。device mmio 0xfed40000挂接chip drivers/crb对应 Kconfig 中的CRB_TPM/MAINBOARD_HAS_TPM2即该板 TPM 通过 CRB 接口暴露。2.2 Kconfig 中该板型的选择项BOARD_STARLABS_LITE_GLK 本身很简洁大部分能力来自它所选中的系列配置BOARD_STARLABS_LITE_SERIESKconfigconfig BOARD_STARLABS_LITE_SERIES def_bool n select BOARD_ROMSIZE_KB_8192 # 8 MiB 闪存与 Flash 芯片规格一致 select DRIVERS_EFI_VARIABLE_STORE select DRIVERS_OPTION_CFR_ENABLED select DRIVERS_I2C_HID # 触摸板/键盘 HID over I2C select FSP_COMPRESS_FSP_M_LZMA # FSP-M/FSP-S 使用 LZMA 压缩 select FSP_COMPRESS_FSP_S_LZMA select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES select HAVE_INTEL_PTT select VALIDATE_INTEL_DESCRIPTOR select INTEL_GMA_HAVE_VBT select INTEL_LPSS_UART_FOR_CONSOLE # 串口控制台 select CRB_TPM select MAINBOARD_HAS_TPM2 select ONBOARD_VGA_IS_PRIMARY select SOC_INTEL_COMMON_BLOCK_HDA select SOC_INTEL_COMMON_BLOCK_HDA_VERB select SPD_READ_BY_WORD select SPI_FLASH_GIGADEVICE # Gigadevice SPI Flash 驱动 select SYSTEM_TYPE_LAPTOP select TPM2其他与 glk 变体相关的默认值包括UART_FOR_CONSOLE为 2串口控制台走 uart2、EC_GPE_SCI为0x26EC 唤醒/热键 SCI 事件、电池 ACPI 默认型号3172120X2-I116CG、Apower Electronics厂商、类型LiP以及POWER_STATE_DEFAULT_ON_AFTER_FAILURE n断电恢复后不自动上电符合笔记本习惯。2.3 IFWI 固件映射board.fmdGemini Lake 平台需要 Intel IFWI集成固件包含 Flash Descriptor、TXE 等。variants/glk/board.fmd 给出了完整的 8 MiB0x00000000–0x007FFFFFFlash 布局Flash Descriptor、IFWI、TXE 区域、Platform Data、EC 固件区等均有对应FLREG寄存器条目与 FLMSTR 主控权限定义FLMSTR1 为 Host CPU/BIOS、FLMSTR2 为 TXE、FLMSTR5 为 EC。这与刷写章节中Internal flashing: yes固件本身具备内部刷写权限相匹配。选择 VBOOT 时则改用 vboot.fmdKconfig 中FMDFILE的默认值逻辑。三、构建 coreboot3.1 前置文件Preliminaries根据 Star Labs 系列通用的构建说明 common/building.mdStarLite 系列构建前必须准备两个二进制文件Intel Flash Descriptor 文件descriptor.binIFWI 镜像ifwi.rom可选文件Windows 3.1 BMP 格式的开机画面Logo.bmp这些文件位于 Star Labs 自己的 blobs 仓库StarLabsLtd/blobs中该仓库会替代标准的3rdparty/blobs仓库使用——即构建 Lite Mk III 时需要用 Star Labs 的 blobs 源来提供上述 IFWI/描述符文件。3.2 构建命令文档要求按照 Star Labs 构建说明执行构建并指定config.starlabs_lite_glk作为配置文件make distclean make defconfig KBUILD_DEFCONFIGconfigs/config.starlabs_lite_glk make需要注意的适用前提当前 coreboot 主仓的 configs/ 目录中并没有config.starlabs_lite_glk文件configs/下没有任何 starlabs 开头的配置该配置文件随 Star Labs 的构建环境提供。若不使用其提供的配置也可以在 coreboot 仓库中通过 menuconfig 手动选择该板板型选项在 Kconfig.name 中定义为Star Labs Lite Mk III (N5000)即勾选CONFIG_BOARD_STARLABS_LITE_GLKy再配合 Star Labs blobs 提供的descriptor.bin与ifwi.rom即可完成构建。四、刷写 coreboot4.1 SPI Flash 芯片信息文档给出的 Flash 芯片参数如下原文为 reST 表格此处转为 Markdown属性值Socketed flash带座可插拔noVendorGigadeviceModelGD25LQ64(B)Size8 MiBPackageSOIC-8Internal flashing内部刷写yesExternal flashing外部刷写yes源码佐证系列 Kconfig 中的select SPI_FLASH_GIGADEVICE启用了 src/drivers/spi/gigadevice.c 驱动其中包含对 GD25LQ64 系列器件的支持BOARD_ROMSIZE_KB_8192与 8 MiB 容量一致由于 Flash 为 SOIC-8 焊接且不可插拔文档同时标注支持内部刷写fwupd 经 IFWI/EC 路径与外部刷写两种途径。4.2 使用 fwupd 刷写的要求与步骤刷写方法参见 common/flashing.md要求如下fwupd 版本 1.5.6 或更高电池电量至少 30%必须连接充电器USB-C 或 DC 接口必须关闭 BIOS Lock受支持的发行版Ubuntu 20.04、Linux Mint 20.1 / elementaryOS 6、Manjaro 211. 检查 fwupd 版本fwupdmgr --version在 Ubuntu 20.04/20.10、Linux Mint 20.1、elementaryOS 6 上可通过 Star Labs 的 PPA 安装 fwupd 1.5.6sudo add-apt-repository ppa:starlabs/ppa sudo apt update sudo apt install fwupd在 Manjaro 上sudo pacman -Sy fwupd-git flashrom-starlabs其他发行版若暂不可用也可通过 Live USB 方式安装 coreboot。2. 关闭 BIOS Lock从 AMI 固件切换到 coreboot 前必须执行关机状态下按住F2键开机进入 BIOS 设置方向键导航到Advanced页找到BIOS Lock按Enter将Enabled改为Disabled按F10Save Exit再按Enter确认。3. 切换分支Switching Branch。切换分支指在 AMI 固件与 coreboot 之间切换。先刷新固件列表并执行切换fwupdmgr refresh --force fwupdmgr switch-branch然后根据提示输入对应数字选择目标分支输入y确认n取消。切换完成后系统提示重启下次重启最长可能持续 5 分钟期间不要中断流程或断开充电器。重启完成后即完成切换此后将接收所选分支的更新。任意时刻都可以再次切换分支。五、小结StarLite Mk III 在 coreboot 中的支持集中在 src/mainboard/starlabs/lite 目录variants/glk提供 Gemini Lake 设备树、GPIO 表、HDA 动词与 VBT系列 Kconfig 统一启用了 8 MiB ROM、TPM2CRB、IFWI 校验、Gigadevice SPI 驱动等能力。构建时准备 Star Labs blobs 中的descriptor.bin与ifwi.rom可选Logo.bmp以config.starlabs_lite_glkStar Labs 环境提供或 menuconfig 中 Star Labs Lite Mk III (N5000) 板项构建刷写采用 fwupd 1.5.6 的分支切换机制前提是电量 ≥30%、连接充电器并关闭 AMI BIOS 的 BIOS Lock。该板同时保留内部与外部两种刷写通道便于在刷写失败时通过 SOIC-8 焊接的 GD25LQ64(B) 外部救砖。赞分享固件嵌入式操作系统驱动开发【免费下载链接】corebootRead-only mirror of https://review.coreboot.org/coreboot.git. Synced every hour. We dont handle Pull Requests.项目地址https://gitcode.com/gh_mirrors/co/coreboot点击查看免费下载相关推荐SFTPGo外接身份认证实战LDAP、OAuth2/OIDC单点登录配置完整教程SFTPGo外接身份认证实战LDAP、OAuth2/OIDC单点登录配置完整教程 SFTPGo 是一款功能完整的开源文件传输服务器同时支持 SFTP、FTP固件嵌入式操作系统驱动开发coreboot 中 Star Labs StarLite Mk Vlite_adl主板支持规格、构建与固件烧写指南coreboot 中 Star Labs StarLite Mk Vlite_adl主板支持规格、构建与固件烧写指南 本文基于 coreboot 仓库中固件嵌入式操作系统驱动开发coreboot 实战指南Star Labs LabTop Mk IVLabTop CML主板适配、编译与固件刷写解析coreboot 实战指南Star Labs LabTop Mk IVLabTop CML主板适配、编译与固件刷写解析 本文以 coreboot 仓库中固件嵌入式操作系统驱动开发上一篇OneUptime 仪表盘配置与访问控制所有者、标签、权限与公开共享的落地实践下一篇7天精通Lucide从零开始掌握SVG图标库的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考