调试沐曦GPUX201遇到的问题

根据gpu适配带外管理获取温度失败问题分析 | 文档中心 | openUBMC给出的方案。

使用writeread接口,发现返回数据全为0.

使用代码是在25.09社区版本基线代码

image

抓取波形发现,是对gpu芯片地址写操作写入了 0xfffffff 后再写入的0x03 0x02 0x94 0x04,然后读操作是写入 0xfffffff 再读取了五个数据为0.

期望的结果是不写入 0xfffffff ,就是写入0x03 0x02 0x94 0x04然后读数据。

示波器截图如下:

之前是通过ComboWriteRead接口完成的适配,但是终究是不太符合gpu文档的时序。

busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Complex/Chip_MuXiGPU_01010104010A bmc.kepler.Chip.BlockIO ComboWriteRead a{ss}uayuu 0 0x03 2 2 0x94 0x04 5

例如如上获取温度的命令,按gpu适配文档,应该是往芯片地址写入0x03 0x02 0x94 0x04 后,再往芯片地址读5个字节。

但是按ComboWriteRead接口,相当于是往芯片地址写入0x03 0x02 0x94,再往往芯片地址写入0x04 后读5个字节。虽然也能获取到正确数据,但是不符合gpu适配文档的规范。

两者区别如下

1.写 0xaa(chip地址) 0x03 0x02 0x94 0x04 读 0xab

2.写 0xaa(chip地址) 0x03 0x02 0x94 写 0xaa 0x04 读0xab

offsetwidth配成0,这样就没有offset写入了

1 个赞

您好,按照修改确实可以正确获取到数据了,不过还是有个疑问。

我监控芯片的读写,发现offset的值还是全f。

不用管offset,虽然还是0xFFFFFFFF,但不会写入,你可以把offset也配成0

1 个赞