特色

招聘信息(更新Intel BIOS测试职位 3月31日)

●2022年3月更新一个 Intel BIOS 测试职位,具体要求可以在下面看到

●2022年1月更新 Ampere Computing职位,具体要求可以在下面看到

●2021年11月更新 Intel Shenzhen职位,具体要求可以在下面看到

LCFC 的一些职位,具体可以在以下页面看到

● AMD BIOS 的一个职位,具体要求在以下页面:

https://www.lab-z.com/amd-bios/

● Ampere Computing 的一个职位 ,要求在以下页面可以看到:

[......]

阅读全文

Step to UEFI (258)DxeIpl

 前文提到了在 PEI 阶段的末尾,通过下面的代码调用 DxeIpl 进入 DXE 中。

定义在  PeiMain.c 中

PEI_CORE_TEMP_POINTERS 定义如下:

EFI_DXE_IPL_PPI 定义如下:

对着应\MdeModulePkg\Core\DxeIplPeim\DxeLoad.c

可以用加 DEBUG Message 的方法确定,前面的TempPtr.DxeIpl->Entry() 调用,执行的是\mdemodulepkg\core\dxeiplpeim\DxeLoad.c中的

[......]

阅读全文

CH343 ESP32 串口模块

本文首发 https://mc.dfrobot.com.cn/thread-312276-1-1.html

前面介绍了ESP32 S2 的半针测试板,这里介绍一下配合这个半针测试板的烧写板。

这个烧写板有如下特点:

1.ESP32 自动下载无需按键;

2.板子上提供了下载按钮;

3.串口最高支持 6M 波特率;

设计电路图如下:

选择SOP16封装的 CH343,这样焊接非常简单。此外,上面中间的电路用于实现自动下载功能,会拉ESP32的EN_AUTO和IO0 Pin。右侧从上到下分别是:数据接口,供电接口和5V 转3.3V电路。

设计上[......]

阅读全文

ESP32 S3 实现蓝牙键盘功能

之前使用 ESP32 S2 实现过蓝牙键盘的功能,使用的是 https://github.com/T-vK/ESP32-BLE-Keyboard 提供的 ESP32 BLE Keyboard库。前几天在 Arduino 中实验针对 S3 的编译,这个库能够通过编译,但是运行之后会有不断重启的问题。经过搜索在 https://github.com/T-vK/ESP32-BLE-Keyboard/issues/152 找到了解决方法;

修改之后确实能够解决问题。估计一段时间之后这个修改会 Check in 到代码中吧。

[......]

阅读全文

Step to UEFI (257)DxeIpl S3Resume2Pei PEI 的终结

代码在\MdeModulePkg\Core\DxeIplPeim 中,模块入口是如下函数:

1A36E4E7-FAB6-476A-8E75-695A0576FDD7 是 EFI_PEI_DECOMPRESS_PPI_GUID

0AE8CE5D-E448-4437-A8D7-EBF5F194F731 是EFI_DXE_IPL_PPI_GUID

代码在 \ueficpupkg\universal\acpi\s3resume2pei\中

动作是安装 EFI_PEI_S3_RESUME2_PPI_GUID  6D582DBC-DB85-4514-8FCC-[......]

阅读全文

做一个 ESP32 S2 模块测试板子

本文首发在 DFRobot 论坛:https://mc.dfrobot.com.cn/thread-312276-1-1.html

在这个世界上有很多潜规则,比如:一般情况下焊接后的芯片是不给退换的,这样就出现了下面这种无解的循环:

值得庆幸的是:ESP32 通常以模组形式出货,模组是带有邮票孔的。这样我们可以设计一个测试板。就是说能够在焊接之前,荣国这个测试板上验证你手上的 ESP32 S2 能否正常工作。

设计的关键在于使用了“邮票孔测试针半孔烧录探针C款”,在淘宝【参考1】这个店铺:

卖家直接提供了这款测试针的立创EDA库文件,有兴趣的朋友可以直接搜索 B[......]

阅读全文

Step to UEFI (256)运行两次的 PEIM

在查看 Log 的时候,发现一个有趣的地方:

就是说在 PEI 阶段,PcdPeim.efi 运行了两次。本着探究的精神着手研究原因。

首先研究了一下 PeiCore 的部分,唯一可以确定的是:第二次运行是在内存Ready 后的PeiDispatcher() 函数中:

于是目光转到 PcdPei 本身,在\MdeModulePkg\Universal\PCD\Pei\Pcd.c 文件中PcdPeimInit() 函数里面可以看到,运行之后调用了 PeiServicesRegisterForShadow() 函数:

猜测第二次运行就是因为这个函数的缘故,修改之[......]

阅读全文

Windows 11 无网络安装方法

Windows 11 的一些版本默认安装时需要联网登录微软账户,但是大多数测试机不会直接接入互联网,要求联网的要求对于我们的测试造成了极大的不便。这里介绍一下跳过要求联网的方法,有需要的朋友可以尝试本文方法。

1.安装到要求联网的位置,此时会提示当前没有网络

2.使用 shift+F10打开CMD窗口,输入 OOBE\BYPASSNRO, 输入之后会自动重启

3.再次进入之前要求联网的界面会出现 “I don’t have internet”选项,选中这个选项之后就可以继续安装了

4.最后安装成功的界面

[......]

阅读全文

Windows 11 22H2下无法运行 RW的解决方法

感谢Tim网友在评论中指出解决 RW_Everyhing 在 Windows 11 22H2 无法运行的方法,正好最近有空于是在虚拟机上研究了一下(顺便说一下,Windows 11 最低系统要求是 4G RAM, 64GB 硬盘, 2 Core CPU,只有按照上述设置才能在虚拟机中跑起来)。

首先安装 22H2 (25131)的 Windows 11,然后确定能够看到现象:

接下来关闭 Core Isolation (直接在搜索中输入 “Core” 字样就会自动跳出来)中的 Microsoft Vulnerable Driver Blocklist:

然后需要重启一[......]

阅读全文

Step to UEFI (255)PlatformPei之后

当BIOS执行完 PlatformPei.efi 之后,不会和其他PeiM 一样继续执行而是要进行一些特别的处理。

在\MdeModulePkg\Core\Pei\Dispatcher\Dispatcher.c 文件 PeiDispatcher函数中会 invoke 每一个PEIM。

这里会调用每个 PEIM 的 EntryPoint, 有兴趣的朋友可以在此加入 Debug Message.

特别提一句,在\mdemodulepkg\core\pei\dispatcher\Dispatcher.c这个文件中,大多数 DEBUG message是通过下面的方式输出的:

[......]

阅读全文

Step to UEFI (254)PlatformPei 分析

继续跟着Log 分析,加载了PlatformPei.efi,它代码位于 \OvmfPkg\PlatformPei 目录中。

从Log 中可以看到,刚进入这个 Module 之后,调用到位于\OvmfPkg\Library\QemuFwCfgLib\QemuFwCfgPei.c 的QemuFwCfgInitialize() 函数中。QemuFwCfgPeiLib.inf 中指定了这个函数作为这个 PEIM 的构造函数。

接下来的 Log 是:

对应 \OvmfPkg\PlatformPei\Platform.c 中的如下函数:

这里会调用到\OvmfP[......]

阅读全文