- 博客(8)
- 收藏
- 关注
原创 Ahci controller(intel z790)2,Sata设备Identify
代码的话直接调用UEFI接口就好了,然后参照Spec解析。
2024-11-01 17:18:36
1136
原创 edk2最新版本2024.11.01编译问题
FilterLibNull.lib(RegisterFilterLibNull.obj) : error LNK2001: 无法解析的外部符号 __security_check_cookie。BaseLib.lib(SafeString.obj) : error LNK2001: 无法解析的外部符号 __security_check_cookie。BaseLib.lib(SafeString.obj) : error LNK2001: 无法解析的外部符号 __security_cookie。
2024-11-01 13:57:57
463
原创 Ahci controller(intel z790)1,Sata设备存在检测
Number Of Ports是该Ahci controller支持的最大Sata port数量,Ports Implemented表示该主板实现的Sata口(bit置1)。除此之外,Global HBA Control(04h)可以控制Ahci enable和reset,其他详见Ahci spec或者Pch datasheet。Ahci最多支持32个Port,Port Registers的基址从offset 0x100开始,一个port占80 bytes,是连续的。Ahci bar5 内存空间。
2024-10-28 22:50:43
391
原创 PCIE BAR以AHCI为例
这边全用数字不用宏比较直观,0xc0000000是本机的Pcie空间在内存的基址,可通过Host bridge(b0d0f0) offset 60h查看,Ahci(b0d23f0),只做了32bit mem的计算。这里就懒得控制command decode了,bar写全f后会影响设备正常功能的,比如写了XHCI的某个bar,你的usb会抽风的。
2024-10-28 22:48:54
379
原创 Uefi下的异步和自旋锁
Procedure是AP需要执行的函数;Intel core 12开始了大小核架构,开启超线程后,一个大核可以分为两个逻辑核,小核不受影响(小核不支持部分指令)。吐槽一下函数名,怎么要用Processor呢,其实在各种文档里不同语境下也是有多种意思,还请自行判断。uefi是支持真正意义上的异步的,在PI spec中有这样一个protocol,EFI_MP_SERVICES_PROTOCOL。Thread可以认为是逻辑核,开启超线程,一个大核可以分成两个Thread。,可以简单的认为BSP就是最先启动的核。
2024-09-19 11:58:26
550
原创 PCIE配置空间IO和MMIO访问的细节
这时候你就明白为什么,最后两位一定是0了,说白了就是访问offset 9等于访问offset 8,所以上面判断Class Code是需要做位移操作的。思考一下,IoWrite32(0xCF8, 0x80000000 | (0x00
2024-09-18 12:24:22
832
原创 UEFI移植GUI库-Lvgl
详细步骤参考UEFI开发学习8 – LVGL GUI库的移植代码参考Github开源介绍一开始我是把整个Pkg传上去的,但是我项目也要用,为了防止不小心泄露Bios代码就单独拿出来了。相对于参考的文章加了Timer,文件的支持,以及自己基于Lvgl写了一个简单的udp4调试工具。如果说Udp4 protocol不会用的话,参考罗斌大佬的代码。
2024-09-14 17:30:19
454
原创 QMessageBox调整大小
今天遇到一个问题,领导说弹窗太小不明显,不就是调个大小嘛,一口答应下来,后来试了试MessageBox怎么一动不动,搜索了一下,这个是自适应的。我也感觉有点无语……
2024-07-26 16:27:36
893
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人