Swow今天支持多线程了吗?

没有。

RH2288v3 PCIE拆分配置

试图使用RH2288v3的PCI直接接nvme盘,改了下BIOS配置(大约是爆出来高级菜单了)

如果你只是想改差分,直接看3(很危险,变砖后果自负)

1. 获取IFR

先得提取bios,用Intel FPT就行,Haswell EP,Broadwell EP对应的版本是9.1

FS1:> fpt.efi -bios -d dump.bin

使用UEFITool打开dump

以Unicode $ifr 搜索,发现IFR在SetupUtility里,使用IFR Extractor提取

搜索x8x8,在Section_PE32_image_SetupUtility_SetupUtility_body.efi.1.0.en-US.ifr.txt里发现相关配置,其对应的GrayOutIf条件为

0x56049:         GrayOutIf  { 19 82 }
0x5604B:             EqIdVal QuestionId: 0x42, Value: 0x0 { 12 86 42 00 00 00 }
0x56051:                 EqIdVal QuestionId: 0xA5B, Value: 0x2 { 12 06 5B 0A 02 00 }
0x56057:                 EqIdVal QuestionId: 0xA5A, Value: 0x1 { 12 06 5A 0A 01 00 }
0x5605D:                 And  { 15 02 }
0x5605F:                 Or  { 16 02 }
0x56061:             End  { 29 02 }

问题0x42 == 0或者(问题0xA5B == 2 且 问题0xA5A == 1)时GrayOut

那么将0x42改为非零是最简单的方法

搜索发现0x42是"Dynamic Form",0x42本身的隐藏条件是0x42为0或1,也就是说怎么都隐藏了,意味不明

它的存储在store 0x1234 "SystemConfig" A04A27F4-DF00-4D42-B552-39511302113D,偏移0xe4,8bit(1byte)大小
,默认0

2. PCI拓扑

根据哇为/超聚变官方文档,PCI拓扑如下(未核验,请自行查证)

slotcpuport
Slot4CPU1Port3A
Slot5CPU1Port3C
Slot6CPU2Port1A
Slot7CPU2Port2A
Slot8CPU2Port2C
raidCPU1Port1A
ethCPU1Port2A

IIO是CPU的PCI控制器,IIO 1对应CPU1,IIO 2对应CPU2

Port1对应IOU2,Port2对应IOU0,Port3对应IOU1

3. 修改

使用setup_var.efi修改存储名为SystemConfig的存储的0xe4

发现了问题,这个BIOS并没有名为SystemConfig的存储,其他几个存储名称也找不到,原理不明。

但存在相同GUID的Setup存储,通过setup_var查验几个已知默认值的选项,发现Setup存储内的数据与SystemConfig匹配。

于是修改Setup存储的0xe4(此步为高风险操作,请确认你理解了这篇文章写的什么,要么炸了也没救):

FS1:> setup_var.efi Setup:0xe4=1

修改后重启进入bios界面,发现IIO配置里出现了IOU拆分选项,根据步骤2中的信息进行修改

4. 问题

我们修改完成后发现,拆分配置生效,但是PCI根口降速了,下面的所有设备也降速了,原理不明,待观察研究。

发表评论

电子邮件地址不会被公开。 必填项已用*标注