UCMCx Client Driver for USB-C

Hi all,

I’m writing a UCMCx Client Driver for USB-C as specs:
https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx

In my case: The devices use I2C pins, I2C_1 PIN connect to Thunder bolt I2c
Interface; I2C_2 PIN connect to PCH SMBUS interface.

I tried to enumerate SMBUS information in my driver follow the specs:
http://smbus.org/specs/smbus_driver_ext_arch10.pdf but got NOT FOUND
result. My device is using Windows 10 with Intel Sky-lake.

Any suggestion for move next? Did I do any wrong? Please help to correct.

Thanks,
KHANH

Tran Phuc Khanh wrote:

I’m writing a UCMCx Client Driver for USB-C as
specs: https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx
https:
>
> In my case: The devices use I2C pins, I2C_1 PIN connect to Thunder
> bolt I2c Interface; I2C_2 PIN connect to PCH SMBUS interface.

I’m rather confused by your post. There are no I2C pins in a USB-C
connector, nor in a Thunderbolt connector. Further, each I2C bus
requires two pins, not just one. Can you try to describe your
configuration in more detail?

> I tried to enumerate SMBUS information in my driver follow the
> specs: http://smbus.org/specs/smbus_driver_ext_arch10.pdf but got NOT
> FOUND result. My device is using Windows 10 with Intel Sky-lake.

This is not an easy area to deal with. The SMBus has traditionally been
reserved for the BIOS, so drivers don’t play there. What information
were you trying to get? Are you quite sure that your SMBus peripherals
are enumerated in your ACPI DSDT?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.</https:>

Hi Tim,

Thanks for your reply.

We have two rear USB type C ports with thunderbolt support. The ports also
support charging (dual role) by using Power Delivery(PD) device. The PD
device connect to PCH SMBUS interface.

As I understand for UCMCx Client Driver implement, we will need install the
driver on PD device. That why our driver need to access to PCH SMBUS to
enumerate device info, am I wrong here?

Thanks,
KHANH

On Thu, Jun 2, 2016 at 7:10 AM, Tim Roberts wrote:

> Tran Phuc Khanh wrote:
> >
> > I’m writing a UCMCx Client Driver for USB-C as
> > specs:
> https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx
> > <
> https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx
> >
> >
> > In my case: The devices use I2C pins, I2C_1 PIN connect to Thunder
> > bolt I2c Interface; I2C_2 PIN connect to PCH SMBUS interface.
>
> I’m rather confused by your post. There are no I2C pins in a USB-C
> connector, nor in a Thunderbolt connector. Further, each I2C bus
> requires two pins, not just one. Can you try to describe your
> configuration in more detail?
>
>
> > I tried to enumerate SMBUS information in my driver follow the
> > specs: http://smbus.org/specs/smbus_driver_ext_arch10.pdf but got NOT
> > FOUND result. My device is using Windows 10 with Intel Sky-lake.
>
> This is not an easy area to deal with. The SMBus has traditionally been
> reserved for the BIOS, so drivers don’t play there. What information
> were you trying to get? Are you quite sure that your SMBus peripherals
> are enumerated in your ACPI DSDT?
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at: <
> http://www.osronline.com/showlists.cfm?list=ntdev&gt;
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at <
> http://www.osronline.com/page.cfm?name=ListServer&gt;
></http:>

Tran Phuc Khanh wrote:

We have two rear USB type C ports with thunderbolt support. The ports
also support charging (dual role) by using Power Delivery(PD)
device. The PD device connect to PCH SMBUS interface.

As I understand for UCMCx Client Driver implement, we will need
install the driver on PD device. That why our driver need to access to
PCH SMBUS to enumerate device info, am I wrong here?

I see. I have not been involved in USB Power Delivery, so I don’t know
how it interacts with Microsoft’s USB stack. I can make guesses, but
someone who has done USB PD will have to respond.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Khanh,
You seem to be on the right path as far as Type C/PD is concerned. I am assuming that the target system doesn’t have an EC; I ask because there is an easier solution for EC based type c systems.
However, your issue is not related to type c; it is related to the discovery of the device on SMBUS. I think you will need to consult the owner of the SMBUS controller driver for that.
Thanks,Vivek
From: xxxxx@gmail.com
Date: Thu, 2 Jun 2016 09:33:40 +0700
Subject: Re: [ntdev] UCMCx Client Driver for USB-C
To: xxxxx@lists.osr.com

Hi Tim,
Thanks for your reply.
We have two rear USB type C ports with thunderbolt support. The ports also support charging (dual role) by using Power Delivery(PD) device. The PD device connect to PCH SMBUS interface.
As I understand for UCMCx Client Driver implement, we will need install the driver on PD device. That why our driver need to access to PCH SMBUS to enumerate device info, am I wrong here?
Thanks,KHANH

On Thu, Jun 2, 2016 at 7:10 AM, Tim Roberts wrote:
Tran Phuc Khanh wrote:

>

> I’m writing a UCMCx Client Driver for USB-C as

> specs: https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx

> https:

>

> In my case: The devices use I2C pins, I2C_1 PIN connect to Thunder

> bolt I2c Interface; I2C_2 PIN connect to PCH SMBUS interface.

I’m rather confused by your post. There are no I2C pins in a USB-C

connector, nor in a Thunderbolt connector. Further, each I2C bus

requires two pins, not just one. Can you try to describe your

configuration in more detail?

> I tried to enumerate SMBUS information in my driver follow the

> specs: http://smbus.org/specs/smbus_driver_ext_arch10.pdf but got NOT

> FOUND result. My device is using Windows 10 with Intel Sky-lake.

This is not an easy area to deal with. The SMBus has traditionally been

reserved for the BIOS, so drivers don’t play there. What information

were you trying to get? Are you quite sure that your SMBus peripherals

are enumerated in your ACPI DSDT?



Tim Roberts, xxxxx@probo.com

Providenza & Boekelheide, Inc.



NTDEV is sponsored by OSR

Visit the list online at: http:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!

Details at http:

To unsubscribe, visit the List Server section of OSR Online at http:


NTDEV is sponsored by OSR

Visit the list online at:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at

To unsubscribe, visit the List Server section of OSR Online at</http:></http:></http:></https:>

Thanks Vivek,

My system have no EC.

I’m contacting with Intel for SMBUS controller about the access.

Thanks,
KHANH
On Jun 4, 2016 08:26, “Vivek Gupta” wrote:

> Hi Khanh,
>
> You seem to be on the right path as far as Type C/PD is concerned. I am
> assuming that the target system doesn’t have an EC; I ask because there is
> an easier solution for EC based type c systems.
>
> However, your issue is not related to type c; it is related to the
> discovery of the device on SMBUS. I think you will need to consult the
> owner of the SMBUS controller driver for that.
>
> Thanks,
> Vivek
> ------------------------------
> From: xxxxx@gmail.com
> Date: Thu, 2 Jun 2016 09:33:40 +0700
> Subject: Re: [ntdev] UCMCx Client Driver for USB-C
> To: xxxxx@lists.osr.com
>
> Hi Tim,
>
> Thanks for your reply.
>
> We have two rear USB type C ports with thunderbolt support. The ports also
> support charging (dual role) by using Power Delivery(PD) device. The PD
> device connect to PCH SMBUS interface.
>
> As I understand for UCMCx Client Driver implement, we will need install
> the driver on PD device. That why our driver need to access to PCH SMBUS
> to enumerate device info, am I wrong here?
>
> Thanks,
> KHANH
>
>
>
> On Thu, Jun 2, 2016 at 7:10 AM, Tim Roberts wrote:
>
> Tran Phuc Khanh wrote:
> >
> > I’m writing a UCMCx Client Driver for USB-C as
> > specs:
> https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx
> > <
> https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx
> >
> >
> > In my case: The devices use I2C pins, I2C_1 PIN connect to Thunder
> > bolt I2c Interface; I2C_2 PIN connect to PCH SMBUS interface.
>
> I’m rather confused by your post. There are no I2C pins in a USB-C
> connector, nor in a Thunderbolt connector. Further, each I2C bus
> requires two pins, not just one. Can you try to describe your
> configuration in more detail?
>
>
> > I tried to enumerate SMBUS information in my driver follow the
> > specs: http://smbus.org/specs/smbus_driver_ext_arch10.pdf but got NOT
> > FOUND result. My device is using Windows 10 with Intel Sky-lake.
>
> This is not an easy area to deal with. The SMBus has traditionally been
> reserved for the BIOS, so drivers don’t play there. What information
> were you trying to get? Are you quite sure that your SMBus peripherals
> are enumerated in your ACPI DSDT?
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at: <
> http://www.osronline.com/showlists.cfm?list=ntdev&gt;
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at <
> http://www.osronline.com/page.cfm?name=ListServer&gt;
>
>
> — NTDEV is sponsored by OSR Visit the list online at: MONTHLY seminars
> on crash dump analysis, WDF, Windows internals and software drivers!
> Details at To unsubscribe, visit the List Server section of OSR Online at
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at: <
> http://www.osronline.com/showlists.cfm?list=ntdev&gt;
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at <
> http://www.osronline.com/page.cfm?name=ListServer&gt;
></http:></http:>