板子一把点亮,甲方组织庆功宴,芯片厂商,ibv, oem 的十余位研发人员聚在一起,半斤“口子窖”下肚,感觉任督二脉突然就被打开了,瞬间文思泉涌,好多问题一下就清楚了,入行十余年,spec阅读数以万页,现将心得分享给各位,电脑搞开机,其实就是让主板上的每个设备正常工作,那么如何才能工作,这时候就要讲到driver protocol handle device path, install protocol, locate protocol,这些概念可以说是极度抽象,新人见到往往是一脸懵逼,工作数年的工程师,天天挂在嘴边,能把他们之间的关系真正扯清楚的是极少数,其实打个比方,一下子就能懂
Bios的责任就是为每一个设备找到最合适的驱动,如何找?根据device path,我们把这个设备类比成一个人,把驱动比作工作环境,假设有两个人,一个美国纽约人,一个中国荆州人,工作环境由(汉堡包,鱼糕,英语,汉语)四元组排列组合而成,很显然只有将(英语,汉堡包)跟纽约人匹配上,纽约人才能正常工作,(汉语,鱼糕)跟荆州人匹配上,荆州人才能正常工作,这里的匹配过程即为bios里面BDS阶段执行的connect函数,一般有binding driver的support函数完成,support函数主要依赖于device path,这里的device path 就是上文提到的两个地址,美国纽约,中国荆州。当我们看到device path是美国的时候,我们启动讲英语这个protocol,当remain device path为纽约的时候,我们启动吃汉堡包这个protocol.以此类推,直到为每个人(handle)都找到最佳的工作环境,也就是为每个驱动建立其合适的协议栈。
数以万页的spec,罗哩叭嗦,其精髓大概就是上面这几句话了。
随笔
最新推荐文章于 2022-12-03 20:34:04 发布