Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ASROCK EP2C602-4L/D16 motherboard uses Nuvoton chip #4

Open
UlasSAYGINIM opened this issue Oct 18, 2017 · 1 comment
Open

ASROCK EP2C602-4L/D16 motherboard uses Nuvoton chip #4

UlasSAYGINIM opened this issue Oct 18, 2017 · 1 comment
Labels
new-motherboard Request addition of a new motherboard or IC

Comments

@UlasSAYGINIM
Copy link

This motherboard uses Nuvoton chip but i dont know which one.
I found https://github.com/groeck/nct6775
but i dont know how to add this chip to bsdhwmon.
can you add this chip support?

I am not sure which chip exactly. I mean chip name and number.

but i can say , http://openhardwaremonitor.org/documentation/
this windows application work without problem for this motherboard on windows 10.
and it says on url about motherboard sensors like that,

Nuvoton NCT6102D, NCT6106D, NCT6771F, NCT6772F, NCT6775F, NCT6776F, NCT6779D, NCT6791D

If you can add this support would be great.

Thanks in advance.

@koitsu
Copy link
Owner

koitsu commented Nov 3, 2017

I do not add support for a "mass variety of chips". Hardware monitoring doesn't work that way, and that isn't the approach bsdhwmon takes either. bsdhwmon takes a production-grade approach, ensuring each motherboard model is supported properly, relying entirely on documentation from both motherboard manufacturers (vendors) and official IC documentation (read: reverse-engineering Linux drivers is not what bsdhwmon is based on), and accesses those chips exclusively via SMBus.

Motherboard/systems manufacturers DO NOT always follow IC chip documentation -- see https://github.com/koitsu/bsdhwmon/blob/master/doc/BUGS for a couple examples where Supermicro deviated from official Winbond/Nuvoton specification, likely through added resistors on their mainboard.

Support for the ASRock Rack EP2C602-4L/D16 may be possible, but it depends on several factors. You may need to ask ASRock these questions (I only trust answers from MB vendors/manufacturers or chip manufacturers):

  1. What is the exact Nuvoton hardware monitoring IC used on the ASRock EP2C602-4L/D16?
  2. Does the H/W monitoring IC support SMBus?
  3. If yes to the above: is the H/W monitoring IC tied (wired up) to SMBus?
  4. If yes to the above: does the ASRock EP2C602-4L/D16 implement identification of said motherboard via SMBIOS data?
  5. If yes to the above: are there multiple revisions of the EP2C602-4L/D16 which vary in H/W monitoring IC behaviour or calculation formulas, which can be identified via SMBIOS data?

For item 1, websites sometimes list the wrong chip (Supermicro has done this several times), and in one day, silkscreening on the chip (for IC model) does not match the operating implementation. Really! The vendor/manufacturer must provide this!

For item 2 and 3 -- if the H/W monitoring IC is not wired to SMBus, then bsdhwmon cannot support this motherboard. Sorry. There are many "server-grade" motherboards that support H/W monitoring but whose manufacturers omitted SMBus tie-ins out of laziness or cost savings: see Unsupported Hardware: https://github.com/koitsu/bsdhwmon/blob/master/doc/SUPPORTED

Many vendors have hardware monitoring ICs which are only accessible via LPC I/O ("ISA bus I/O ports") -- the Linux driver project you reference appears to use LPC I/O, which is dangerous. bsdhwmon does not support LPC I/O, nor will it ever. It is exclusively an SMBus-based program.

For item 4, you can find this out in advance by booting FreeBSD 9/10/11 on the motherboard in question and running kenv | grep smbios and providing me the output. If the SMBIOS data is populated with generic identifier data (i.e. no way to identify a specific motherboard model/type), then the motherboard cannot be supported until the vendor (ASRock) implements proper SMBIOS data (SMBIOS data is stored in the BIOS, so a BIOS update could offer this). smbios.planar.maker and smbios.planar.product are the two bsdhwmon cares about.

For item 5, if the answer is no, then there is a great risk involved: motherboard version 1.0 may differ in its behaviour from version 1.1, 2.0, etc.. Detecting that difference is important (and normally that's done through SMBIOS data, ideally smbios.planar.version), else older or newer versions may return invalid data -- or worse, risk system stability!

If the motherboard has support for SMBus and the H/W monitoring IC is tied to it, then great! The next thing to ask ASRock would be the following:

  • What is the SMBus slave address for the IC?
  • What are the SMBus register offsets (CRxx) for fan, voltage, and thermistor data?
  • What are the appropriate names/labels for each relevant fan, voltage, and thermistor (so that they correlate with what's in the BIOS and/or silkscreened on the motherboard/in monitoring software ASRock provides)?
  • Are there any deviations from official Nuvoton documentation for {whatever the H/W monitoring IC chip is} fan RPM, voltage value, and temperature calculation?

You can see exactly why this information is important by referring to the Winbond W83793G driver in bsdhwmon: https://github.com/koitsu/bsdhwmon/blob/master/chip_w83793g.c#L137 . This information came directly from both Supermicro (one had to ask Technical Support, who provided full details) and Winbond/Nuvoton.

Yes, I know, it's all complicated. Welcome to what it takes to get good/reliable hardware monitoring support and not "probing" (which can crash the system!) or "making assumptions". For a recent example where support for a Tyan board was requested but could not be implemented, see #2 -- it should give you an idea how complex it can be.

Communication with ASRock will be your responsibility. You can point their support/engineers to this GitHub Issue and folks who are familiar with H/W monitoring ICs and SMBus should understand exactly what I'm wanting.

Thank you!

Footnote: I should really write a document explaining all of this so that I can point people to it. :-)

koitsu added a commit that referenced this issue Mar 14, 2018
- Unsupported: Tyan S2932 (see GH-2)
- Under investigation: ASRock EP2C602-4L/D16 (see GH-4)
@koitsu koitsu added the new-motherboard Request addition of a new motherboard or IC label Feb 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-motherboard Request addition of a new motherboard or IC
Projects
None yet
Development

No branches or pull requests

2 participants