Processors
Intel® Processors, Tools, and Utilities
14537 Discussions

I2C on ISH [windows SPB framework extension]

rrama29
Beginner
3,330 Views

Hi,

  I have a i2c slave device connected to PCH [platform controller Hub]/[Integrated Sensor Hub].

requirement: -

I need to access [i2c slave device] from Windows application [windows 10 OS].

Windows application<--windows 10 os-->main intel chip <--OPI--> PCH <--I2C--> i2c client device.

 

things i need to do:-

in this regard, i have the following questions

[1]. Add node [related to I2C slave details] in the ACPI statically.

[2]. I2C controller is connected to this slave device and each of the 3 I2C controllers already has device driver in windows 10. so there is no new driver needed.

[3] enable I2C through BIOS.

 

questions: -

[1] i have a i2c slave device connected to PCH and ACPI is correctly populated with correct node details [windows 10 2019H1]

is this example relevant [SPBcx] for my work

https://docs.microsoft.com/en-us/samples/microsoft/windows-driver-samples/skeleton-i2c-sample-driver/

 

[2] are SPBCx based example only way of accessing I2C slave connected to ISH/PCH, are there any other ready made tools which can access i2c slave [on top of windows 10 OS].

 

Thanks

particlereddy

0 Kudos
4 Replies
CarlosAM_INTEL
Moderator
3,206 Views

Hello, @rrama29​:

 

Thank you for contacting Intel Embedded Community.

 

Could you please clarify if this situation happens on your design or a third- party design? 

 

In case that it is a third-party device, could you please inform the name of the manufacturer, its model, the part number, and where its documentation can be found?

 

On the other hand, could you please let us know how many units of the project related to this circumstance have been manufactured? How many are affected? Could you please give the failure rate? Also, could you please list the sources that you have used to design it and if it has been verified by Intel?

 

Could you please give part numbers or pictures of the top side markings of the Intel devices associated to this thread?

 

We are waiting for your reply to these questions.

 

Best regards,

@Mæcenas_INTEL​.

 

0 Kudos
rrama29
Beginner
3,206 Views

Hi

I am NOT sure what "situation" you are talking about.

 

All, i am asking is what is the way to access I2C device from userpace space in windows 10 OS. what are the things which i need to take care in this regard.

 

[1] the board is designed by us

Processor: Intel Core i5-8365U (WhiskeyLake)

Target device name: Intel Serial IO I2C Host Contoroller - 9DE8

I2C slave device is connected to PCH.

 

Also, the questions which i am asking are design related. not any field issue/failure related.

 

Thanks

 

 

 

0 Kudos
CarlosAM_INTEL
Moderator
3,206 Views

Hello, @rrama29​:

 

Thanks for your update.

 

The Intel(R) Core(TM) i5-8365U Processor is a non-embedded device, which is out of our scope of support. You can confirm this information on the following website:

 

https://ark.intel.com/content/www/us/en/ark/products/193555/intel-core-i5-8365u-processor-6m-cache-up-to-4-10-ghz.html

 

However, you can review as a reference the information stated at:

 

https://www.osr.com/nt-insider/2016-issue1/intro-to-spb-devices-and-drivers/

 

I²C and SPI drivers use the Microsoft* framework called simple peripheral bus (SpbCx) to use the I²C/SPI controller, there must be a sub-device mounted under the specific I²C/SPI controller. A user mode application can open this sub-device by using its symbolic name or GUID, and send IOCTLs or requests to it. Only then, this sub-device can open parent target (I²C/SPI controller) and forward IOCTLs or requests to SpbCx framework, thus to the I²C/SPI controller driver. Refer to the following for the Microsoft framework:

 

https://docs.microsoft.com/en-us/windows-hardware/drivers/spb/spb-framework-extension

 

Here is a sample pack from Microsoft, within it you may find the sample code on how to write the sub-device driver mounted under the I²C/SPI controller, to open its parent and forward requests:

 

https://code.msdn.microsoft.com/windowshardware/

 

The description of supported IOCTLs is here:

 

https://docs.microsoft.com/en-us/previous-versions//hh450915(v=vs.85)

 

Best regards,

@Mæcenas_INTEL​.

0 Kudos
rrama29
Beginner
3,206 Views

Hi Maecenas ,

Thanks for reply.

i understand you don't support the device, but chip is INTEL, all i am asking is some directions/pointers, thats all. plz help.

 

i have few questions, please clarify.

 

[1] If i understand there are already drivers for I2C controllers right?

 

[2] All i need to write is User mode application which talks to SPBCx API's

 

[3] The I2C on the PCH is already having inbox driver with windows 10?

 

[4] "sub-device mounted under the specific I²C/SPI controller" . when you say sub-device, you are talking about "i2c slave device" hardware right, not some "sub-device" software driver component. please clarify?

 

[5] My understanding is that i don't need to write any Device driver for I2C Controller, its only the user mode application [which sits on top of windows 10], i need to write??

 

Thanks

 

0 Kudos
Reply