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

1. 介绍UEFI boot 大致流程
  -  解释每个阶段的细节
  - CAR(cache as ram), 如何配置
  - Peicore会调用几次
2. UEFI Event 实现细节
3. OpenProtocol/HandleProtocol/LocateProtocol 区别 
4. 描述下 Handle和Protocol的联系
5. PcdSetxx 和 gRT->SetVariable的区别
6.  UEFI C state 、 P state 实现
7.   ACPI S3/S5 实现
  - Sleep时候调用哪些ACPI method, 比如 PTS
8.  如何配置  Nem(Non evict mode)
9.  操作 SATA/NVME 需要用到哪些Protocol
   - 如何发送数据给SATA Controller
10.  描述下 Intel MCA
11.  如何处理Memory  CE、UCE
12. SMM的理解
13. HOB的理解
    - SMM mode 下可以操作HOB嗎
    - HOB有多大
    - HOB空間是連續的嗎
14. 操作系統下如何Dump ACPI/SMBIOS ?
15. PCIe相关
  - PCIe枚举过程
  - PCIe config space有哪些字段
  - 如何獲取PCIe bar 大小
  - Oprom加载过程
  -  一个PCIe 驱动应该做哪些工作将一个PCIe设备工作起来 
  - PCIe hotplug rebalance
16.  工作中碰到最棘手的问题是什么?如何解决的?
17. Bios boot 常見的debug fix
    - PEI/DXE階段FreePool Assert 如何debug?
    - OS 階段 MCA error , 如何debug?
    - OS 階段,如何打印RT driver的uart log? 
18.  BMC 相關
     - BMC 如何detect BIOS Ras error ? 
19. C 语言题目:
 -  static, external, register的用法
 - 结构体和联合体的区别
 -  描述下C可执行文件在内存中的布局 
       -  全局變量存放在 那個 section
 - C 语言压栈过程
20. 算法题:
   -  计算一个64bit无符号整型中的bit0、bit1的个数
21. 智力題:
   -  一共24個瓶飲料,每個2瓶子可以換一瓶飲料,請問一共可以喝多少飲料?
22. 综合
   -  讲述下你看过哪些Spec