Hello,
We wanna use the function “PCI VDM(Vendor Defined Message)” on Orin Series.
How to use it by ourselves?
Is the following link correct solution of our requirement?
And could I it use on Orin Series?
Hello,
We wanna use the function “PCI VDM(Vendor Defined Message)” on Orin Series.
How to use it by ourselves?
Is the following link correct solution of our requirement?
And could I it use on Orin Series?
I’ve found more proper documentation.
DSP2038 and MCTP over SMBus/I2C
Reference : MCTP on Linux introduction - Code Construct
MCTP Core Protocol is applied as minimum Linux Kernel 5.15.
Maybe , it is included in JetPack 6.
But, we should use I2C function for MCTP over PCIe, and it is included as minimum Linux Kernel 5.18.
Does it means, Could we not use “PCI VDM” on Jetson series ??
Sorry for the late response.
Below is the comment from our internal team as your reference:
We didn’t verify this feature because we didn’t find any VDM supported EPs during our device bring up.
However, you can ask customer to try out, refer to self-explanatory register PCIE_RP_APPL_VDM_MSG_* below.
Using these registers and comparing with PCIe spec, customer should be able to verify it.
PCIE_RP_APPL_VDM_MSG_0_0
Register space mapped for different vendor message header fields. The mapping is as follows
ven_msg_len → ven_msg_hdr0[9:0];
ven_msg_fmt → ven_msg_hdr0[11:10];
ven_msg_attr → ven_msg_hdr0[13:12];
ven_msg_ep → ven_msg_hdr0[14];
ven_msg_td → ven_msg_hdr0[15];
ven_msg_func_num → ven_msg_hdr0[18:16];
ven_msg_tc → ven_msg_hdr0[22:20];
ven_msg_type → ven_msg_hdr0[28:24];
ven_msg_code → ven_msg_hdr1[7:0];
ven_msg_tag → ven_msg_hdr1[15:8];
ven_msg_data → {ven_msg_hdr3,ven_msg_hdr2}
Offset: 0x9c
Read/Write: R/W
Parity Protection: N
Shadow: N
SCR Protection: 0
Reset: 0x00000000 (0b0000,0000,0000,0000,0000,0000,0000,0000)
Bit | Reset | Description |
---|---|---|
31 | 0x0 | VEN_MSG_REQ_STATE: |
HW-CLEAR : When set to 1, VDM message will be transmitted using the fields VEN_MSG_HDR0/1/2/3. | ||
30:0 | 0x0 | VEN_MSG_HDR0: |
{ven_msg_type[4:0],1’b0,ven_msg_tc[2:0],1’b0,'ven_msg_func_num[2:0],ven_msg_td,ven_msg_ep,ven_msg_attr[1:0],ven_msg_fmt[1:0],ven_msg_len[9:0]} |
PCIE_RP_APPL_VDM_MSG_1_0
Offset: 0xa0
Read/Write: R/W
Parity Protection: N
Shadow: N
SCR Protection: 0
Reset: 0x00000000 (0b0000,0000,0000,0000,0000,0000,0000,0000)
Bit | Reset | Description |
---|---|---|
31:0 | 0x0 | VEN_MSG_HDR1: |
{ven_msg_tag[7:0],ven_msg_code[7:0]} |
PCIE_RP_APPL_VDM_MSG_2_0
Offset: 0xa4
Read/Write: R/W
Parity Protection: N
Shadow: N
SCR Protection: 0
Reset: 0x00000000 (0b0000,0000,0000,0000,0000,0000,0000,0000)
Bit | Reset | Description |
---|---|---|
31:0 | 0x0 | VEN_MSG_HDR2: |
VDM Payload Lower DWORD |
PCIE_RP_APPL_VDM_MSG_3_0
Offset: 0xa8
Read/Write: R/W
Parity Protection: N
Shadow: N
SCR Protection: 0
Reset: 0x00000000 (0b0000,0000,0000,0000,0000,0000,0000,0000)
Bit | Reset | Description |
---|---|---|
31:0 | 0x0 | VEN_MSG_HDR3: |
VDM Payload Upper DWORD |
Thank you for response.
We will check it with ep device vendor.
It looks “MCTP over PCI” isn’t applied in the Linux kernel 5.15.
There is some possibility that the following code could work if migrated to the L4T source code.
I think the following device tree will function after the code migration.
We will check it in the near future
I will let you know if there is any progress.
Thank you for the support.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.