* 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
* Asus Maximus Z790 DARK HERO - added model, added names for NCT6798D and sensors for Asus EC
* Fixed VRM temps and added voltages.
* Add names for VCCSA and VCCIN_AUX
* Update SuperIOHardware.cs
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
* Test: GA-H97-D3H detection
Temporarily allow workflow dispatches to test builds before submitting a pull request
* Define IT8620E fan amount and sensor names
* Change CPU VRIN to CPU Input Auxiliary
* Remove workflow dispatch (finished testing)
* feat(SMBios): Handle null reference exception when accessing Board information
Changed the ReadSysFs method in the class SMBios to return an empty string instead of null when unable to find the needed paths on Linux, preventing NullReference Exception when getting the manufacturer and model in the Motherboard class.
* fix(LMSensors): Prevent exception in LMSensors constructor
Introduced string array subDirectories which is initialized empty. Added checking if the hwmon directory exists otherwise the array subDirectories will stay empty so it does not throw an exception if it can't find the path.
* Simplify.
---------
Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>