[edk2-devel] [PATCH v4 0/6] Platform/RasberryPi: Thermal zone

Jeremy Linton posted 6 patches 3 years, 7 months ago
Failed in applying to current master (apply log)
Platform/RaspberryPi/AcpiTables/AcpiTables.inf     |   1 +
Platform/RaspberryPi/AcpiTables/Dsdt.asl           |  31 +++
Platform/RaspberryPi/AcpiTables/SsdtThermal.asl    |  77 ++++++++
Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 214 +++++++++++++++++++--
.../RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf    |   3 +
.../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni |   9 +
.../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr |  34 ++++
Platform/RaspberryPi/Include/ConfigVars.h          |   8 +
Platform/RaspberryPi/RPi3/RPi3.dsc                 |   6 +
Platform/RaspberryPi/RPi4/RPi4.dsc                 |   9 +
Platform/RaspberryPi/RaspberryPi.dec               |   2 +
.../Bcm27xx/Include/IndustryStandard/Bcm2711.h     |   2 +
12 files changed, 382 insertions(+), 14 deletions(-)
create mode 100644 Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
[edk2-devel] [PATCH v4 0/6] Platform/RasberryPi: Thermal zone
Posted by Jeremy Linton 3 years, 7 months ago
This set creates a basic thermal zone, which reads the
SOC temp via a direct register read in AML. It also
adds an active cooling policy using a GPIO pin for fan
control that can optionally be enabled/disabled on either
GPIO18 (commercial fan shim board) or GPIO19 by the
user from the BDS.

it should now be possible when booted in ACPI mode to:

# sensors
acpitz-acpi-0
Adapter: ACPI interface
temp1:        +57.6C  (crit = +90.0C)

and the fan state, if enabled may be read with:

/sys/bus/acpi/devices/PNP0C06:00/PNP0C0B:00/physical_node/thermal_cooling/cur_state

while the kernel will automatically cycle the fan if the SoC
temp exceeds 60C.

Included as a byproduct of this set is a generic method
for updating values in ACPI DSDT/SSDT tables as they
are installed.

v3->v4:
  Allow the user to set the fan trip point
  Extend ACPI device names to 4 characters

v2->v3:
  Make DSDT/SSDT PCD->Nameop update code generic
  Move the fan SSDT code back into the AcpiTable directory

v1->v2:
  Add choice of GPIO pins to the BDS menu
  Correct whitespace/etc issues from v1 review
  Add an additional cleanup patch for contextual whitespace issues

Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Pete Batard <pete@akeo.ie>
Cc: Andrei Warkentin <awarkentin@vmware.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>

Jeremy Linton (6):
  Platform/RaspberryPi4: Add a basic thermal zone
  Platform/RaspberryPi: Monitor ACPI Table installs
  Platform/RaspberryPi: Add entry for user fan control
  Platform/RaspberryPi4: Create ACPI fan object
  Platform/RaspberryPi4: Allow the user to set Temp
  Platform/RaspberryPi: Trivial whitespace cleanup

 Platform/RaspberryPi/AcpiTables/AcpiTables.inf     |   1 +
 Platform/RaspberryPi/AcpiTables/Dsdt.asl           |  31 +++
 Platform/RaspberryPi/AcpiTables/SsdtThermal.asl    |  77 ++++++++
 Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 214 +++++++++++++++++++--
 .../RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf    |   3 +
 .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni |   9 +
 .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr |  34 ++++
 Platform/RaspberryPi/Include/ConfigVars.h          |   8 +
 Platform/RaspberryPi/RPi3/RPi3.dsc                 |   6 +
 Platform/RaspberryPi/RPi4/RPi4.dsc                 |   9 +
 Platform/RaspberryPi/RaspberryPi.dec               |   2 +
 .../Bcm27xx/Include/IndustryStandard/Bcm2711.h     |   2 +
 12 files changed, 382 insertions(+), 14 deletions(-)
 create mode 100644 Platform/RaspberryPi/AcpiTables/SsdtThermal.asl

-- 
2.13.7


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#64851): https://edk2.groups.io/g/devel/message/64851
Mute This Topic: https://groups.io/mt/76538742/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v4 0/6] Platform/RasberryPi: Thermal zone
Posted by Ard Biesheuvel 3 years, 7 months ago
On 8/31/20 7:25 PM, Jeremy Linton wrote:
> This set creates a basic thermal zone, which reads the
> SOC temp via a direct register read in AML. It also
> adds an active cooling policy using a GPIO pin for fan
> control that can optionally be enabled/disabled on either
> GPIO18 (commercial fan shim board) or GPIO19 by the
> user from the BDS.
> 
> it should now be possible when booted in ACPI mode to:
> 
> # sensors
> acpitz-acpi-0
> Adapter: ACPI interface
> temp1:        +57.6C  (crit = +90.0C)
> 
> and the fan state, if enabled may be read with:
> 
> /sys/bus/acpi/devices/PNP0C06:00/PNP0C0B:00/physical_node/thermal_cooling/cur_state
> 
> while the kernel will automatically cycle the fan if the SoC
> temp exceeds 60C.
> 
> Included as a byproduct of this set is a generic method
> for updating values in ACPI DSDT/SSDT tables as they
> are installed.
> 
> v3->v4:
>    Allow the user to set the fan trip point
>    Extend ACPI device names to 4 characters
> 
> v2->v3:
>    Make DSDT/SSDT PCD->Nameop update code generic
>    Move the fan SSDT code back into the AcpiTable directory
> 
> v1->v2:
>    Add choice of GPIO pins to the BDS menu
>    Correct whitespace/etc issues from v1 review
>    Add an additional cleanup patch for contextual whitespace issues
> 
> Cc: Leif Lindholm <leif@nuviainc.com>
> Cc: Pete Batard <pete@akeo.ie>
> Cc: Andrei Warkentin <awarkentin@vmware.com>
> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
> Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
> 
> Jeremy Linton (6):
>    Platform/RaspberryPi4: Add a basic thermal zone
>    Platform/RaspberryPi: Monitor ACPI Table installs
>    Platform/RaspberryPi: Add entry for user fan control
>    Platform/RaspberryPi4: Create ACPI fan object
>    Platform/RaspberryPi4: Allow the user to set Temp
>    Platform/RaspberryPi: Trivial whitespace cleanup
> 

Series pushed as 50639477fc0f..e08fccd8bed5

Note that I incorporated the changes suggested by Pete, as well as the 
Mmio Or/And tweak I mentioned in response to patch #6. I also applied 
some touch ups to patch #2, to make the coding style more idiomatic for 
EDK2, and to use CONST structures where possible.

Thanks all. This is a really nice feature to have, especially as it can 
serve as an example for other platforms as well.



>   Platform/RaspberryPi/AcpiTables/AcpiTables.inf     |   1 +
>   Platform/RaspberryPi/AcpiTables/Dsdt.asl           |  31 +++
>   Platform/RaspberryPi/AcpiTables/SsdtThermal.asl    |  77 ++++++++
>   Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 214 +++++++++++++++++++--
>   .../RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf    |   3 +
>   .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni |   9 +
>   .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr |  34 ++++
>   Platform/RaspberryPi/Include/ConfigVars.h          |   8 +
>   Platform/RaspberryPi/RPi3/RPi3.dsc                 |   6 +
>   Platform/RaspberryPi/RPi4/RPi4.dsc                 |   9 +
>   Platform/RaspberryPi/RaspberryPi.dec               |   2 +
>   .../Bcm27xx/Include/IndustryStandard/Bcm2711.h     |   2 +
>   12 files changed, 382 insertions(+), 14 deletions(-)
>   create mode 100644 Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#64893): https://edk2.groups.io/g/devel/message/64893
Mute This Topic: https://groups.io/mt/76538742/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-