Multi Partition support for I2C module

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Partition support for I2C module

1,182 次查看
Arkadeep
Contributor II

Hello,

 

I am working on functional safety partitions for ASIL and QM components. In here, we have received the I2C module from NXP, and I am wondering whether the module can be split into two partitions having separate init functions? Is this feature supported? 
 Use case: I only need 1 channel to be QM compliant and not the whole I2C module. 

 

Regards,

Arkadeep 

标记 (4)
0 项奖励
回复
15 回复数

1,139 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Which version of RTD are you using?  Are you using RDB2 or RDB3?

BR

Joey

0 项奖励
回复

1,128 次查看
Arkadeep
Contributor II
Hi Joey,

We are using SW32G_RTD_4.4_4.0.2.

BR,
Arkadeep
0 项奖励
回复

1,123 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Thank you for your reply.

You can refer to the RTD_I2C_UM.pdf in the (SW32G_RTD_4.4_4.0.2/eclipse/plugins/I2c_TS_T40D11M40I2R0/doc/RTD_I2C_UM.pdf). The manual has the Reference I2cEcucPartitionRef and the Reference I2cChannelEcucPartitionRef to set the partitions.

Joey_z_0-1753079490761.png

Hope it can help you.

BR

Joey

0 项奖励
回复

1,117 次查看
Arkadeep
Contributor II
Hi Joey,

Thanks for the reference. With this info, it is clear that the channels can be referenced in different partitions, but can we also have multiple instances of I2C_Init(), or does that need to be called only in 1 partition?
0 项奖励
回复

1,112 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Thank you for your information.

Refer to the manual of RTD_I2C_UM.pdf, it can set I2C partition in multi-core. It should initial instances for each host.

Joey_z_0-1753094666053.png

Joey_z_1-1753094904073.png

Hope it can help you.

BR

Joey

 

0 项奖励
回复

1,063 次查看
Arkadeep
Contributor II
Hello Joey,

Then from what I understand, I2C can be partitioned in case of multicore and cannot be partitioned in a single core for different safety levels. Correct?

BR,
Arkadeep
0 项奖励
回复

1,047 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Thank you for your reply.

Refer to the manual, the I2C can be partitioned in case of multicore. 

Regarding the safety levels you mentioned, if you have used RTD, it should be in line with the safety standards of RTD at the RTD level. RTD product is developed according to NXP Software Development Processes that are Automotive-SPICE, ISO26262 IATF16949 and ISO9001 compliant.

BR

Joey

0 项奖励
回复

1,040 次查看
Arkadeep
Contributor II
Hi Joey,

I probably did not make my usecase clear. So currently we are using only 1 core and in that core, we have partitioned our BSW for ASIL and QM safety levels. For I2C, we have 1 channel that corresponds to QM and other 2 channels are ASIL compliant.
Can I have 1 channel as QM and others as ASIL in one single core or is that not possible?

BR,
Arkadeep
0 项奖励
回复

1,037 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Thank you for your more information. 

If you use RTD, at the level of RTD program usage, then your safety level complies with the RTD standard. If you use RTD in the upper-layer application, and you are implementing I2C two partitions in the upper-layer software that calls RTD, I think the overall safety level of the software should be defined from the perspective of the entire software as a whole.

In addition, according to the RTD description, I2C can indeed be used for partitioning in multi-core.

Hope it can help you.

BR

Joey

0 项奖励
回复

857 次查看
Arkadeep
Contributor II
Hi Joey,

I hope you're doing well.

My query is regarding partitioning within a single core. If I have multiple partitions on the same core, is it possible to separate communication channels across different partitions within that core? Or is this approach not permitted?
Looking forward to your guidance.

BR,
Arkadeep Sur
0 项奖励
回复

812 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Thank you for your reply.

Refer to the RTD_I2C_UM.pdf, you need set the multi-core to use the Partition configuration.

In addition, you can find the configuration information about the I2C in EB or S32DS IDE.

Joey_z_0-1753842996876.png

Joey_z_1-1753843006196.png

Hope it can help you.

BR

Joey

 

0 项奖励
回复

779 次查看
Arkadeep
Contributor II
Hi Joey,

Thanks for the reply. So if I understand correctly, I cannot have two I2C channels separated in the same core in different partitions. I have to have multicore to separate the I2C channels then. Hopefully, my understanding is correct.

BR,
Arkadeep
0 项奖励
回复

705 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Thank you for your reply.

Yes,If I2cMulticoreSupport is disabled, then for all the variants no partition shall be defined.
If I2cMulticoreSupport is enabled, at least one EcucPartition needs to be defined (in all variants). 

Hope it can help you.

BR

Joey

0 项奖励
回复

681 次查看
Arkadeep
Contributor II
Hi Joey,

What if we tick multicore support and give ecuc reference of two partitions in same core ?

will it throw error ?

BR,
Arkadeep
0 项奖励
回复

648 次查看
Joey_z
NXP Employee
NXP Employee

hi,Arkadeep

Thank you for your reply.

Refer to the RTD_I2C_UM.pdf, If I2cMulticoreSupport is disabled, then for all the variants no partition shall be defined. If I2cMulticoreSupport is enabled, at least one EcucPartition needs to be defined (in all variants).

The MulticoreSupport parameter is used to globally enables the possibility to support multicore. The I2cChannelEcucPartitionRef Maps one single I2C channel to zero or one ECUC partitions. And you also chose the EcucPartition and Coredefinition for OsApplication. The OsApplicationCoreRef is used to specify the core.

In other words, MulticoreSupport is for implement multicore partitions. If you want multiple partitions on the same core, although you can configure multiple partitions on the same core through OsApplicationCoreRef, but it does not have relevant documentation to describe this situation and cannot guarantee the corresponding effect.

BR

Joey

 

 

 

 

 

0 项奖励
回复