配置Adc bus时候的问题

在非天池场景下如何使用adc驱动接口在sr文件中配置Scanner - 交流互助区 - openUBMC 论坛

按照上面进行了配置,发现把Adc_1 加到sr文件中,里面和链路相关的配置好像全部失效,请问配置上有什么问题吗?

  1. root.sr
"Objects": {
...
...
       "Adc_1": {
            "ScanRate": 32768,
            "VoltRefSrc": 1,
            "VoltRefVal": 2400
       },
       "Connector_EXU_1": {
            "Bom": "14100513",
            "Slot": 1,
            "Position": 1,
            "Presence": 1,
            "Id": "EXU",
            "AuxId": "xxx",
            "Buses": [
                "I2c_1",
                "I2c_2",
                "I2c_3",
                "I2c_4",
                "I2c_5",
                "I2c_6",
                "I2c_7",
                "I2c_8",
                "I2c_11",
                "Adc_1",
                "Jtag_1",
                "JtagOverLocalBus_1",
  1. 14100513_EXU_xxx.sr
"ManagementTopology": {
        "Anchor": {
            "Buses": [
                "I2c_1",
                "I2c_2",
                "I2c_3",
                "I2c_4",
                "I2c_5",
                "I2c_6",
                "I2c_7",
                "I2c_8",
                "I2c_11",
                "Adc_1",
                "Jtag_1",
...
...
"Adc_1": {
            "Chips": [
                "Chip_Adc_1"
            ]
        },
...
...
"Objects": {
       "Chip_Adc_1": {
            "Address": 0,
            "AddrWidth": 4,
            "OffsetWidth": 4
        },
        "Scanner_Adc_0": {
            "Chip": "#/Chip_Adc_1",
            "Offset": 0,
            "Size": 4,
            "Period": 3000
        },
        "Scanner_Adc_1": {
            "Chip": "#/Chip_Adc_1",
            "Offset": 1,
            "Size": 4,
            "Period": 3000
        },
        "Scanner_Adc_2": {
            "Chip": "#/Chip_Adc_1_1",
            "Offset": 2,
            "Size": 4,
            "Period": 3000
        },
        "Scanner_Adc_3": {
            "Chip": "#/Chip_Adc_1_1",
            "Offset": 3,
            "Size": 4,
            "Period": 3000
        }

按照上面的样子,加入了Adc相关的配置,Adc_1可以找到,但找不到Chip_Adc_1和文件中所有的Scanner对象,甚至连Smc_ExpBoardSMC都没有了。

        "Scanner_Adc_2": {
            "Chip": "#/Chip_Adc_1_1",  // Chip_Adc_1_1 是哪来的??
            "Offset": 2,
            "Size": 4,
            "Period": 3000
        },

感觉像是csr配置问题,有用bmcstudio检查吗?

请问使用了BMC Studio进行csr配置后,CSR出包时,显示需要配置UID,这个uid在哪里配置?

UID是天池组件的编号,根据你们的单板来定的
如果只是测试的话,可以先用VPD里面已经有的uid跳过这个步骤

可能是查找替换时候不小心的操作。像这样出现未定义的对象,会导致这一类的class(比如Scanner)都失效,无法创建出对象吗?

这个是未定义行为

好像和之前那个错误的对象名字没有关系,修改后还是之前的情况,丢失一堆对象,包括Smc这些。

BMC studio暂时还使用不起来,好像不支持我们ip地址形式的git仓。

看一下framework.log日志

cat /var/log/framework.log |grep "hwdiscovery"

framework.zip (665.9 KB)
grep出好多hwdiscovery相关的信息,截不完整。这是收集的一键日志

问题解决了吗

没有,后续也没再尝试了,没头绪。

csr的配置上来看应该没什么问题吧?但是为什么连文件中的其他配置也受到了影响,导致原有的很多对象没有被创建出来

ioctl(ADC_CMD_CONFIG) failed: Bad address, scan_rate:32768
你的日志里有这样一条,看起来是配置的有问题

这个address是指的"Chip_Adc_1"下的吗?按照下面这个链接里张工说的应该是任意配置的。

请问这个具体要怎么配置呢?还是说"Adc_1"配置的有问题,不过我在资源树上倒是有看到Adc的对象存在。

具体的配置问题看不太出来,从代码里看是使用Adc_1对象下的这几个属性配置调用ADC_CMD_CONFIG时出现了错误

我按照帖子配置,并未出现问题。
1.在root.sr的Buses添加Adc_0以及在Connector_EXU_1的Buses添加Adc_0

{
    "FormatVersion": "1.00",
    "DataVersion": "1.00",
    "Unit": {
        "Type": "Root",
        "Name": "RootBoard"
    },
    "ManagementTopology": {
        "Anchor": {
            "Buses": [
                "I2c_1",
                "I2c_2",
                "I2c_3",
                "I2c_4",
                "I2c_5",
                "I2c_6",
                "I2c_7",
                "I2c_8",
                "I2c_9",
                "I2c_11",
                "Jtag_1",
                "JtagOverLocalBus_1",
                "Hisport_0",
                "Hisport_1",
                "Hisport_2",
                "Hisport_3",
                "Hisport_4",
                "Hisport_5",
                "Hisport_6",
                "Hisport_7",
                "Hisport_8",
                "Hisport_9",
                "Hisport_10",
                "Hisport_11",
                "Hisport_12",
                "Hisport_13",
                "Hisport_14",
                "Hisport_15",
                "Hisport_16",
                "Hisport_17",
                "Hisport_18",
                "Hisport_19",
                "Hisport_20",
                "Hisport_21",
                "Gpio_31",
                "Gpio_56",
                "Gpio_74",
                "Adc_0"
            ]
        },
...
...
       "Connector_EXU_1": {
            "Bom": "14100513",
            "Slot": 1,
            "Position": 1,
            "Id": "",
            "AuxId": "",
            "Buses": [
                "I2c_1",
                "I2c_2",
                "I2c_3",
                "I2c_4",
                "I2c_5",
                 ...
                "Adc_0"
            ],
            "SystemId": 1,
            "ManagerId": "1",
            "ChassisId": "1",
            "SilkText": "J6023",
            "IdentifyMode": 3,
            "Type": "ExpandBoard"
        },

2.在扩展板的sr中配置Adc_0、Chip_Adc_0以及相关的Scanner对象

    "ManagementTopology": {
        "Anchor": {
            "Buses": [
                "I2c_1",
                "I2c_2",
                "I2c_3",
                "I2c_4",
                "I2c_5",
                "I2c_6",
                "I2c_7",
                "I2c_8",
                "I2c_9",
                "I2c_11",
                "Jtag_1",
                "JtagOverLocalBus_1",
                "Hisport_0",
                "Hisport_1",
                "Hisport_2",
                "Hisport_3",
                "Hisport_4",
                "Hisport_5",
                "Hisport_6",
                "Hisport_7",
                "Hisport_8",
                "Hisport_9",
                "Hisport_10",
                "Hisport_11",
                "Hisport_12",
                "Hisport_13",
                "Hisport_14",
                "Hisport_15",
                "Hisport_16",
                "Hisport_17",
                "Hisport_18",
                "Hisport_19",
                "Hisport_20",
                "Hisport_21",
                "Adc_0"
            ]
        },
        "Adc_0":{
            "Chips": [
              "Chip_Adc_0"
            ]
        },
      ...
      ...
        "Objects": {
       ...
       ...
      "Adc_0": {
            "ScanRate": 32768,
              "VoltRefSrc": 0,
              "VoltRefVal": 1800
        },
        "Chip_Adc_0": {
            "Address": 0,
              "AddrWidth": 4,
              "OffsetWidth": 4
        },
      ...
      ...
    "Scanner_VCC12V0_CPU1": {
          "Chip": "#/Chip_Adc_0",
          "Offset": 0,
          "Size": 2,
          "Mask": 65535,
          "Type": 0,
          "Period": 1000,
          "Debounce": "#/Median_VCC12V0_CPU1",
          "ScanEnabled": "<=/Scanner_PowerGd.Value",
            "@Default": {
              "ScanEnabled": 0
          },
          "Status": 0,
          "Value": 0 
        },
     "Scanner_VCC5V0": {
            "Chip": "#/Chip_Adc_0",
            "Offset": 3,
            "Size": 2,
            "Mask": 65535,
            "Type": 0,
            "Period": 1000,
            "Debounce": "#/Median_VCC5V0",
            "ScanEnabled": "<=/Scanner_PowerGd.Value",
            "@Default": {
              "ScanEnabled": 0
            },
            "Status": 0,
            "Value": 0
        },
    

3.存在Adc,chip,Scanner对象;资源树也可看到Scanner对象和SMC对象
企业微信截图_17545302402039


企业微信截图_17545303511670
企业微信截图_17545303883693

我这边Adc配置也出现了这个问题 日志里面也有这条ioctl(ADC_CMD_CONFIG) failed: Bad address, scan_rate:32768 请问您是怎么解决的

后面没再试,你看看上面那个伙伴的配置呢,他那边可以。

我和他的差异好像是Adc_0这个对象所在的文件不一样,我放在了root.sr下,他这个是EXU的。

我这边发现与Adc这个对象放置的位置无关,而与其下属性VoltRefSrc有关。当VoltRefSrc配置为1时,会出现错误;当配置为0时,则不会出现错误。

@adellonzzy @zybwh
请教下,这个扩展板怎么理解,1711 adc 外接的电压侦测板卡么?扩展板卡的sr怎么确认,是需要自行添加的么。vpd/vendor/openUBMC 下存在很多 sr 文件,命名应该是 BOM+UID 的形式。BOM 在root.sr 中有指定,这个 UID 由谁指定的,是由扩展板卡提供的不

扩展板是天池协议的概念,UID就是天池里面对每个板卡的独立ID,具体要联系一下PAE。

非天池协议的板卡,就自己取id,在上级连接器配置好id即可。如果通过board id,上级连接器要配置board id加载方式,具体可以在文档中心搜索一下