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

darp10: Add custom fan points #489

Merged
merged 1 commit into from
Jul 26, 2024
Merged

darp10: Add custom fan points #489

merged 1 commit into from
Jul 26, 2024

Conversation

crawfxrd
Copy link
Member

No description provided.

Signed-off-by: Tim Crawford <[email protected]>
@crawfxrd crawfxrd marked this pull request as ready for review July 20, 2024 03:58
@crawfxrd crawfxrd requested review from a team July 20, 2024 03:58
@XV-02
Copy link

XV-02 commented Jul 25, 2024

If I'm reading this correctly, we're moving the fans between 27% and 77% duty cycles across the thermal range?

If that is correct, why are we capping at 77%?

@crawfxrd
Copy link
Member Author

It's harder to make our fan tables now by only looking at the Clevo tables since:

  • They use a ladder (10 levels) instead of a linear scale
  • They use target RPM instead of PWM duty
  • They no longer document noise generated

Since we don't support target RPM, I used the average between 2 of the 6 profiles that Clevo provides as the duty.

  • Fan1 max: 7700 RPM
  • Performance, level 9: 7700 RPM
  • Quiet, level 9: 5400 RPM

I don't know the actual duty required for the 7700 RPM target, so I considered it 100%.

@XV-02
Copy link

XV-02 commented Jul 26, 2024

For the fan curves, where are we actually sampling the temps? are we using the "Package" temps or the "CPU" temp as would be reported with sensors?

@crawfxrd
Copy link
Member Author

We use PECI to read the package temperature every 250+ ms.

  • src/board/system76/common/peci.c
  • src/board/system76/common/main.c

From the PECI user guide:

  • The GetTemp() command is used to retrieve the maximum die temperature from a target PECI address.
  • The processor temperature is averaged over 256 ms.

@XV-02
Copy link

XV-02 commented Jul 26, 2024

Okay, looks like the Max fan speeds are ~9000rpm +/- ~10% on the lab units. The duty cycle is working, and package/for temps are successfully driving fan speeds at the desired duty.

Do you want to adjust the curves in light of different values for 100% duty than you expected? For reference, in a 25⁰C environment, building kernels and running stress loads aren't pulling temps much above 80⁰C, or fan speeds much above ~6200 rpm. If not, I'm comfortable to approve this.

@crawfxrd
Copy link
Member Author

No, I'll leave it as-is. The primary concern with moving away from the default points on all boards is having the fans cool below 70⁰C.

I want to look into #453 more which will change how all this is defined anyways.

@crawfxrd crawfxrd merged commit 984428b into master Jul 26, 2024
47 checks passed
@crawfxrd crawfxrd deleted the darp10-fans branch July 26, 2024 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants