一、UEFI 与处理器相关
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
- ACPI 内容OS可以修改吗?
8. 如何配置 Nem(Non evict mode)
9. 操作 SATA/NVME 需要用到哪些Protocol
- 如何发送数据给SATA Controller
10. SMM的理解
11. HOB的理解
- SMM mode 下可以操作HOB嗎
- HOB有多大
- HOB空間是連續的嗎
12. 操作系統下如何Dump ACPI/SMBIOS ?
13. PCIe相关
- PCIe枚举过程
- PCIe config space有哪些字段
- 如何獲取PCIe bar 大小
- Oprom加载过程
- 一个PCIe 驱动应该做哪些工作将一个PCIe设备工作起来
- PCIe hotplug rebalance
14. gRT下 有哪些service
15. ACPI 如何call RT服务?如何call SMI?
16. 描述下 Intel MCA
17. 如何处理Memory CE、UCE
18. 说下BIOS中的 X86 中断
三、BMC 相关
- BMC 如何detect BIOS Ras error ?
- BMC 如何向BIOS发cmd?BIOS 如何向BMC发command?
- BMC 如何 和OS 通信
- 说下IPMI
四、语言、算法相关
1. C 语言题目:
- static, external, register的用法
- 结构体和联合体的区别
- 描述下C可执行文件在内存中的布局
- 全局變量存放在 那個 section
- C 语言压栈过程
2. 算法题:
- 计算一个64bit无符号整型中的bit0、bit1的个数
3. 智力題:
- 一共24個瓶飲料,每個2瓶子可以換一瓶飲料,請問一共可以喝多少飲料?
六、综合
1. 工作中碰到最棘手的问题是什么?如何解决的?
2. 讲述下你看过哪些Spec
3. Bios boot 常見的debug fix
- PEI/DXE階段FreePool Assert 如何debug?
- OS 階段 MCA error , 如何debug?
- OS 階段,如何打印RT driver的uart log?
4. 说下MRC training flow
5. RAS 如何侦测RAS?如何修复错误?