* Add support for MSI MAG B850 Tomahawk Wifi (non-max) using NCT6687DR Controller
* Handle MSI NCT6687DR SIO Controller declaration more elegantly
This is a more powerful yet elegant way of handling MSI motherboards with the MSI flavored Nuvoton NCT6687D (aka NCT6687D-R). While it still requires that support be manually added for each motherboard so it be properly identified, this reduces the amount of work to add support and also reduces the amount of clutter in LpcIO.cs.
* Add support for MSI MEG X870E ACE MAX
* Foundational support for ALL MSI B840/B850, X870(E), and Z890 Motherboards!
Assigns all MSI B840, B850, X870, X870E and Z890 motherboards the NCT6687D-R SIO Controller
* Remove MSI B850 GAMING PLUS WIFI6E NCT6687D handling
* Used more stringent comparison criteria for MSI 800 series NCT6687DR identification
* Support for 10 new MSI motherboards with NCT6687D-R SIO controller
* Support for newly established fan and control register structure
WILL ABSOLUTELY BREAK FAN CONTROL CONFIGS FOR NCT6687DR USERS. This introduces Support for 16 System Fans and Controls, including EZ-Connect, Pump Fan 2, and System Fan 7. Also improved the logic for nct6687dr control.
* Add support for X870E Tomahawk WIFI, fix B850 Gaming Plus WIFI PZ identification
Additionally sync with upstream
* Add support for B850M Gaming Plus WIFI and Z890 Unify-X
Also removes duplicate model identification case for B850M GAMING PLUS WIFI6E
* Rename temperature sensor to proper name for X870E Carbon Wifi and GODLIKE motherboards
* Add support for MSI PRO B850M-A Project Zero (MS-7E78)
* Rename 'T_Sensor' to 'Temperature Sensor' for clarity
* T Sensor > Temperature Sensor
* Rename Temperature Sensors to Thermistor Sensors
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Fix ASUS Z170 EC temperature read returning zero values
Adjust EC read logic so temperature registers (PCH, T_SENSOR, VRM)
return valid values on ASUS Z170 boards in user-mode.
Verified with RWEverything and HWiNFO.
* merge back to inter100,
Use IBF clearing fallback when OBF unsupported
* Fix formatting of CrOS enum entry
* Update WindowsEmbeddedControllerIO.cs
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Support for 10 new MSI motherboards with NCT6687D-R SIO controller
* Support for newly established fan and control register structure
WILL ABSOLUTELY BREAK FAN CONTROL CONFIGS FOR NCT6687DR USERS. This introduces Support for 16 System Fans and Controls, including EZ-Connect, Pump Fan 2, and System Fan 7. Also improved the logic for nct6687dr control.
* Add support for X870E Tomahawk WIFI, fix B850 Gaming Plus WIFI PZ identification
Additionally sync with upstream
* Add support for B850M Gaming Plus WIFI and Z890 Unify-X
Also removes duplicate model identification case for B850M GAMING PLUS WIFI6E
* Support for 10 new MSI motherboards with NCT6687D-R SIO controller
* Support for newly established fan and control register structure
WILL ABSOLUTELY BREAK FAN CONTROL CONFIGS FOR NCT6687DR USERS. This introduces Support for 16 System Fans and Controls, including EZ-Connect, Pump Fan 2, and System Fan 7. Also improved the logic for nct6687dr control.
* Try and migrate the old GigabyteController stuff with PawnIO
* Bring back WinRing0 era GigabyteController stuff
* ISABridge use the PawnIO module with its built-in logic
* Ecio uses LpcIO directly (not sure about the initialization logic in TryCreate() to make this work)
* Code-review
* Fix inverted logic
* Remove IsaBridgeEc field init
* Format document
* Combine logic
* Gigabyte Implementation best attempt
* Update IsaBridgeGigabyteController.cs
* Cleanup and fix enablind logic for Isa version
* Add debug logs
* Update IsaBridgeGigabyteController.cs
* Code review
* Unmap + restore the mmio state is done through the closing of the module.
* Fix boolean logic
* Restore the fan control byte instead
* Fallback to ECIO if FanControl enable byte is 0xFF
+ add logs to ECIO
* Port back to validation logic
* Allow for one or the other MMIO to be 0
* Wrap enter/exit mmio logic + enter/exit each time
* Keep state of EcioPort enable
* Missing dispose + close order fix
* Update IsaBridgeGigabyteController.cs
* Remove empty line before TryCreate method
* Code review
* Remove try/finally for SW
* Cleanup debug log methods
* Add DEBUG_LOG define conditional
* Misc
* Misc
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Begin CrOS implementation for Framework Laptops
* CrOS: Talk directly to the EC, instead of through ACPI
* Add a few Framework models
* Remove early Framework models
These have a different EC, and don't currently work
* Migrate CrOS ECs to PawnIO
* Implement EcCommand and read sensor names
* Add more Framework models
* Add some error handling
* Misc
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Make the Debug,WriteLine opt in with a symbol define
Having all these Debug,WriteLine made the update method painfully slow and the running process laggy during a debug session.
* Update Nct677X.cs
* Update Nct677X.cs
* Update Nct677X.cs
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Add support for MSI MEG Z790 GODLIKE MAX.
* Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs
* Rename M2_1 to M2 #1 in temperature readings
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Replace Storage implementation with CrystalDiskInfo based implementation.
* Formatting.
* Code review.
* Code review.
* Increase space for attribute name in report.
* Implement dynamic disk handling for usage sensor.
Disable unused warnings.
* Further cleanup in NativeMethods.txt and referenced.
* Add ASRock X870E Nova WiFi Support
- Added support for Nuvoton NCT5585D chip
- Added support for Nuvoton NCT6796D-S chip
- Added motherboard-specific switch to select the correct chip due to duplicate chip ID/Revision (see #2005)
- Added chips to disable monitor i/o space lock block
- Added business logic to include chips in _superIOs.Add for the Nct677X() logic.
- Added chips to business logic to properly assign indices for fans, controls, temperatures and voltages.
- Added TSENSOR to the enum for SourceNct67Xxd to display the 3rd thermistor sensor.
- Added Naming and Identification for the X870E Nova WiFi
- Supressed warnings and added documentation
* Corrections
These changes reflect scraping the datasheet for the correct registers, half-registers, halfBits, sourceRegisters and alternateRegisters
- Replaced TSENSOR with AUXTIN5 as it is named in the datasheet
- Corrected Register values
- Reworked indexes and temperature naming
* Requested Changes
- Linked to PR instead of Datasheet which may change.
- Changed descriptions to be more understandable rather than using Datasheet labels
* Removed duplicate TSENSOR in enum
* Add Info for Gigabyte GA-MA790X-DS4 and some Typo corrections
* Fix casing of 'VBAT' to 'VBat' in SuperIOHardware
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
added identifier string to Identification.cs
added new model enum entry B850S_PRO_WIFI6E
added B850S_PRO_WIFI6E to the list of models that get the NCT6687DR instead of NCT6687D
Co-authored-by: Stephan Koster <skoster@enclustra.com>