I2C resume trouble on IMX8QXP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2C resume trouble on IMX8QXP

1,315 Views
baoson_le
Contributor I

Hi Community,

I'm using an IMX8QXP-MEK board and build with mek_8q_car2-userdebug.


I'm trying to implement hibernate/resume mechanism, based on P9.0.0_2.1.0_AUTO_GA_SOURCE. So now, my team have some problems related to I2C when resume (some error log output forever).

Content of error logs following:

[2019-07-22 15:48:48.679] [ 31.731193] virtio_rpmsg_bus virtio0: creating channel rpmsg-i2c-channel addr 0x2
[2019-07-22 15:48:48.679] [ 31.731207] virtio_rpmsg_bus virtio0: channel rpmsg-i2c-channel:ffffffff:2 already exist
[2019-07-22 15:48:48.679] [ 31.731211] virtio_rpmsg_bus virtio0: rpmsg_create_channel failed
[2019-07-22 15:48:48.679] [ 31.731223] i2c-rpmsg virtio0.rpmsg-i2c-channel.-1.2: expected bus_id:15, addr:1a, received bus_id:5, addr:20
[2019-07-22 15:48:48.721] [ 31.731235] i2c-rpmsg virtio0.rpmsg-i2c-channel.-1.2: expected bus_id:15, addr:1a, received bus_id:5, addr:20
[2019-07-22 15:48:48.722] [ 31.731324] i2c-rpmsg virtio0.rpmsg-i2c-channel.-1.2: expected bus_id:15, addr:1a, received bus_id:15, addr:1d
[2019-07-22 15:48:48.722] [ 31.731336] i2c-rpmsg virtio0.rpmsg-i2c-channel.-1.2: expected bus_id:15, addr:1a, received bus_id:15, addr:1d

I have some questions:


1. Have you any experience about above issue?


2. In my understanding, "i2c-rpmsg" driver not support hibernate/resume functionality. I find document about hibernate/resume of the driver for implement but i not found any document. Have you any document about it?.

3. A35 control I2C1 directly or control via M4 using "rpmsg" ?

  a. A35 <---ssi---> I2C1

  b. A35 <---rpmsg----> M4 <---ssi--->I2C1 

Many thanks,
Son.

0 Kudos
Reply
3 Replies

1,134 Views
igorpadykov
NXP Employee
NXP Employee

Hi Bao

one can try to save and restore (after resume) rpmsg i2c contexts using

sect.2.8 Remote Processor Messaging attached Linux Manual.

>A35 control I2C1 directly ..?

i.MX35 uses SCU responsible for resource partitioning / access control

described in SCFW Porting Kit

Communication mechanisms are abstracted using SCU FW running in the SCU
−other SW components communicate with SCU via an API library
− this library makes Remote Procedure Calls (RPC) via an underlying Inter-Processor
Communication (IPC) mechanism

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

1,134 Views
baoson_le
Contributor I

Hello Igor,

Thanks for your reply. About your response, I have some following questions:


1. I wonder what's rpmsg i2c contexts?
You mean that's hardware contexts before start hibernate process of MU and/or I2C, don't you?
Or you're talking about software contexts in I2C and/or RPMsg drivers?

2. Then, in case rpmsg i2c hibernation/resume functionality need to more modification in this drivers (I mean that I2C, RPMsg drivers and more...), does it have any requirements about hibernation/resume order of the drivers?

Thank you,
Son.

0 Kudos
Reply

1,134 Views
igorpadykov
NXP Employee
NXP Employee

Hi Son

for context one can look in general linux literature

https://elinux.org/images/b/b7/Dill-slides_1.pdf 

Best regards
igor

0 Kudos
Reply