728x90
반응형
2.9 Thermal
2.9.1 Introduction
서멀 드라이버는 SoC를 모니터링하고 보호하는 데 필요한 드라이버이다. 서멀 드라이버는 내부 서멀 센서에서 특정 주파수의 SoC 온도를 모니터링한다.
크리티컬(critical)과 패시브(passive), 두 가지 트립 포인트를 정의한다. 냉각 디바이스는 SoC가 도달하는 다양한 트립 포인트에 따라 SoC를 보호하기 위한 조치를 취하게 된다:
- 크리티컬 포인트에 도달하면, 냉각 디바이스는 시스템을 종료한다.
- 패시브 포인트에 도달하면, 냉각 디바이스는 CPU 주파수를 낮추고 GPU/VPU에 더 낮은 주파수에서 실행하도록 통지한다.
- 온도가 패시브 포인트 10°C 아래로 떨어지면, 냉각 디바이스가 모든 냉각 조취를 해제한다.
서멀 드라이버는 두 부분으로 구성된다:
- 서멀 영역(thermal zone)은 트립 지점을 정의하고 SoC의 온도를 모니터링한다.
- 냉각 디바이스(cooling device)는 서로 다른 트립 포인트에 따라 조취를 취한다.
크리티컬과 패시브 포인트 임계값은 다음 파일에서 구성된다.
- i.MX 6와 i.MX 7 SoC는 drivers/thermal/imx_thermal.c에서 구성한다.
- i.MX 8M SoC는 dtsi 파일에서 구성하고 defconfig에서 CONFIG_IMX8M_THERMAL을 지정한다.
- i.MX 8과 i.MX 8X SoC는 dtsi 파일에서 구성하고 defconfig에서 CONFIG_IMX_SC_THERMAL을 지정한다.
2.9.2 Software Operation
서멀 드라이버는 서멀 영역과 냉각 디바이스를 등록한다. thermal_zone_device_ops 구조체는 서멀 프레임워크에 필요한 필수 인터페이스를 기술한다. 프레임워크는 관련된 서멀 영역 인터페이스를 호출하여 SoC를 모니터링하고 냉각 보호를 수행한다.
서멀 드라이버는 다음 인터페이스로 액세스할 수 있다:
- i.MX 6과 i.MX 7에서 /sys/bus/platform/drivers/imx_thermal
- i.MX 8과 i.MX 8X에서 /sys/class/thermal/thermal_zoneX
- i.MX 8M Quad에서 /sys/bus/platform/drivers/qoriq_thermal
- i.MX 8M Mini에서 /sys/class/thermal/thermal_zone0/temp
2.9.3 Source Code Structure
아래 테이블은 drivers/thermal에서 사용할 수 있는 드라이버 소스 파일을 보여준다:
Table 21. Thermal Driver Files
File | Description |
---|---|
imx_thermal.c, device_cooling.c | i.MX 6이나 i.MX 7에 대한 서멀 영역 드라이버 소스 파일. |
qoriq_thermal.c, device_cooling.c | i.MX 8M에 대한 서멀 영역 드라이버 소스 파일. |
imx_sc_thermal.c, device_cooling.c | i.MX 8과 i.MX 8X에 대한 서멀 영역 드라이버 소스 파일. |
2.9.4 Menu Configuration Options
메뉴 구성에서 다음 모듈을 활성화한다:
- i.MX6과 i.MX7의 경우:
Device Drivers > Generic Thermal sysfs driver > Temperature sensor driver for i.MX SoCs - i.MX 8QuadMax과 i.MX 8QuadXPlus의 경우:
Device Drivers > Generic Thermal sysfs driver > thermal sensor driver for NXP i.MX8 SoCs
728x90
반응형