* 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>
* 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
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>
* Add Support for MSI B840P PRO WIFI
* Rectify loop mathematical operator syntax
* Add support for two additional motherboards
Z890 Gaming Plus Wifi and Pro Z890-S Wifi Project Zero
* Update LpcIO.cs
Add support for MSI MPG B850 EDGE TI WIFI (MS-7E62)
* Update Identification.cs
Add support for MSI MPG B850 EDGE TI WIFI (MS-7E62)
* Update Model.cs
Add support for MSI MPG B850 EDGE TI WIFI (MS-7E62)
* Add Identification Support for 15 new MSI AM5/LGA1851 Motherboards with the NCT6687D SIO Controller
* Create dummy chip entry NCT6687DR
* Assign NCT6687DR SIO to 15 newly added MSI AM5/LGA1851 Motherboards
This also requires passing Motherboard into DetectWinbondFintek() as we want to maintain prior compatibility while also assigning NCT6687DR to the new motherboards
* Add proper voltage, fan, and temperature sensor layouts for motherboards assigned the NCT6687DR controller
* Add support for NCT6687DR including dedicated fan control function for system fan manipulation
NCT6687DRFanCtrl() is only called when chip == NCT6687DR, otherwise legacy control is maintained. This function works by setting the 7-point fan curve of the system fans to the same requested value where the system fan has no choice but to comply
* Rectify code style in new functions to follow standards
* Update Nct677X.cs
---------
Co-authored-by: Alcolawl <tdean@live.esu.edu>
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Add support for a number of X870 and Z890 MSI Motherboards using NCT6687D chips
* Fixing labels and comments
* Update master.yml
Change name to allow nuget publish
* Update master.yml
Still fixing nuget api shit
* Update Identification.cs
Remove B650 Edge board, as it's fine with existing implementation.
* Add Support For Asus ROG Strix X870E-E Fan Sensors And Control
* Add voltages and temperatures
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Update SuperIOHardware.cs
The embedded switch on the model has no default and would break out of the manufacturer switch if the model wasn't Z790_Taichi.
* Fix the voltage registers for IT87
* Based on linux Hwmon
* Also go from 10 to 9 voltage readings, as no motherboard in LHM using IT87 has more than 9 voltage readings.
* Update SuperIOHardware.cs
* Update IT87XX.cs
* Add support for ASUS ROG Crosshair X870E Hero motherboard
* Fix a typo
* Add CPU Package temperature sensor.
* Cleanup code
* Aligning W_PUMP+ naming to others
* Add Gigabyte X870E AORUS PRO (ICE)
* Separate case and rename some voltages
* Increase array size for Fans and Controls from 5 to 6
* Add external temperature sensor