UEFI 基础教程 (二十一) — BIOS常见面试题

本文详细介绍了UEFI启动过程,包括CAR配置、PEICore调用和Event实现,探讨了OpenProtocol、HandleProtocol和LocateProtocol的区别以及Handle和Protocol的关联。此外,还涵盖了PCIe设备的枚举、配置空间和驱动开发,以及C语言的基础概念和算法问题。同时,文章涉及了ACPIS3/S5状态、错误处理机制如MemoryCE、UCE,以及SMM、HOB的理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、UEFI 与处理器相关

1. 介绍UEFI boot 大致流程
  -  解释每个阶段的细节
  - CAR(cache as ram), 如何配置
     - 根认证,MTTR,NEM(non eviction mode)
  - Peicore会调用几次
  - Peicore的地址在哪里
2. UEFI Event 实现细节
    - 连续两次create 同一个guid event, 请问哪个event先执行
3. OpenProtocol/HandleProtocol/LocateProtocol 区别 
4. 描述下 Handle和Protocol的联系
5. PcdSetxx 和 gRT->SetVariable的区别
6. UEFI中 EFI driver的Lib constructor如何调用的
7.  UEFI C state 、 P state 实现
8.   ACPI S3/S5 实现
  - Sleep时候调用哪些ACPI method, 比如 PTS
  - ACPI 内容OS可以修改吗?
  - BIOS/OS  S3 流程
9.  如何配置  Nem(Non evict mode)
10.  操作 SATA/NVME 需要用到哪些Protocol
   - 如何发送数据给SATA Controller
11. SMM的理解
   - 退出SMM模式指令是什么
12. HOB的理解
    - SMM mode 下可以操作HOB嗎
    - HOB有多大
    - HOB空間是連續的嗎
13. 操作系統下如何Dump ACPI/SMBIOS ?
14. PCIe相关
  - PCIe枚举过程
  - PCIe config space有哪些字段
  - 如何獲取PCIe bar 大小
  - 如何计算PCIe bar 地址和bar alignment
  - Oprom加载过程
  -  一个PCIe 驱动应该做哪些工作将一个PCIe设备工作起来 
  - PCIe hotplug rebalance
  - PCIe enumerate 两次Bus scan区别是什么 
  - PCIe Prefetch Mem64 Bar 和 Non-Prefetch Mem64 Bar区别
  - PCIe Bar alignment如何获取
15. gRT下 有哪些service
16. ACPI 如何call RT服务?如何call SMI?
17.  描述下 Intel MCA
18.  如何处理Memory  CE、UCE
19. 说下BIOS中的 X86 中断
20. 说下PeiService 指针存放哪里
21. 说下SMM分发soft smi 流程
22. 说下UEFI driver depency 存放哪里
23. 说下UINTN
24. PEI 阶段可以修改全局变量吗?为什么?
25. 进入gRT后如何访问物理地址
26. Dxe driver和UEFI driver的区别
27. resetvector 之前的三个 NOP 指令用途是什么?
28. UEFI中有中断吗?事件调度如何实现?
29. CPU reset 流程

二、BMC 相关

   - BMC 如何detect BIOS Ras error ? 
   - BMC 如何向BIOS发cmd?BIOS 如何向BMC发command?
   - BMC 如何 和OS 通信
   - 说下IPMI
   - 说下IPMI底层通道
   - Redfish 的数据包格式
   - Redfish 提供有哪些method
   - OpenBMC DHUB
   - BMC SOL
   - 说下redfish协议,如何实现升级固件

三、语言、算法相关

1. C 语言题目:
 -  static, external, register的用法
 - 结构体和联合体的区别
 -  描述下C可执行文件在内存中的布局 
       -  全局變量存放在 那個 section
 - C 语言压栈过程
     - 说下32位和64位 压栈区别‘
 - macro 和 enum区别
 - C 语言可变参数实现
 
2. 算法题:
   -  计算一个64bit无符号整型中的bit0、bit1的个数
   - 将一个32bit RGB数压缩成16bit
   -  有A 个a和B个b,	请随机生成一个字符串包含(并且'aaa'和‘bbb’不能存在于字符串中)
3. 智力題:
   -  一共24個瓶飲料,每個2瓶子可以換一瓶飲料,請問一共可以喝多少飲料?

四、OS

1. 线程同步机制
2. OS下如何交互BMC 和 BIOS
3. GDB 如何调试Linux kernel
4. windows 调试工具
5. Linux是实时操作系统吗?
6. 如何规避死锁
7. Linux下内存管理、进程调度

五、综合

1.  工作中碰到最棘手的问题是什么?如何解决的?
2. 如果让你基于Intel 的 CRB board 和 code来开发一款OEM 项目,BIOS需要做什么?
3.  讲述下你看过哪些Spec
4. Bios boot 常見的debug fix
    - PEI/DXE階段FreePool Assert 如何debug?
    - OS 階段 MCA error , 如何debug?
    - OS 階段,如何打印RT driver的uart log? 
5. 说下MRC training step
6. RAS 如何侦测RAS?如何修复错误?
7. 说下PCIe eDPC 和 AER
8. 4socket系统(2块主板),需要烧录几块BIOS,为什么?
9. 4块显卡插在主板上,会加载几个oprom
10. 多个socket 系统,boot阶段有多少core 会跑;BSP 和AP如何区分,core如何知道自己是BSP还是AP
11. BIOS boot如何检测DIMM 分布 
12. 有没有修改IORT table
13. 你们Emulation boot一次多久,什么频率?
14. 如何提调试蓝屏(windows driver),红屏
15. 如何调试segment fault
16. ACPI 存放在flash哪里?
17. DTS 和ACPI区别
18. ACPI 如何调用gRT,SMM
19. 说下memory write leveling
20. 正常模式可以dump SMM 区间内容吗?
21. 说下Super IO 如何访问
22. BIOS chips用什么总线
23. 写一段asl code,定义一个acpi device,确保 windows设备管理器能够识别到,并且没有黄标(yellowbar)
24. UBS debug的原理是什么?
25. SPD文件可以修改吗?为什么?
26. 常用的MRC算法哪些?follow哪些业界标准
27. MRC中pattern谁发的
28. 说下CADB,CPGC
29. MRC training data放在哪里
30. MRC training step介绍下
31. DDR4与DDR5 标准区别
32. MRC training 5600可以降低4800吗?
33. MRC 菊花链底层信号
34. 1000w的服务器如何降低功耗
35. 做过什么RAS/Security feauture
36. RAS有哪些功能?架构是什么?流程是什么?
37. MEM上的ECC,如果发生ecc错误,bios ras如何处理
38. 说下kenrel启动流程
39. PCIe hotlug流程
   - 说下eDPC 和 AER
40. Intel为什么不推出multi-segments
41. Mem Ras中firmware first和 OS first如何实现的?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值