Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Tegraの省エネ


Tegraの省エネってどうやっているかを気になっていたんだけど、
Tegra 186を調べていたら、見つけた。

arm64: tegra: add BPMP support
This series introduce the first announced Boot and Power Management Processor
(BPMP) for the new generation Tegra SoCs, which is designed for boot
process handling and offloading the power management tasks from the CPU.

We also add some very initial and basic support for Tegra186 SoC, which
supports debug console and initrd for initial bring up currently. More drivers
and functions can be supported based on this later.

ここには、もうちょっと詳しく書いてあった。
The Boot and Power Management Processor (BPMP) is a co-processor found
on Tegra SoCs. It is designed to handle the early stages of the boot
process and offload power management tasks (such as clocks, resets,
powergates, ...) as well as system control services.

Compared to the ARM SCPI, the services provided by BPMP are message-
based rather than method-based. The BPMP firmware driver provides the
services to transmit data to and receive data from the BPMP. Users can
also register an MRQ, for which a service routine will be run when a
corresponding event is received from the firmware.

A set of messages, called the BPMP ABI, are specified for a number of
different services provided by the BPMP (such as clocks or resets).

BPMPは、ブートの初期段階とパワーマネージメント(クロック、リセット、パワーゲート)をやる

ARM SCPIと比べて、メソッドベースではなく、メッセージベース。
(メソッドベースだと、処理が終わるまで待つけど、メッセージベースだと待たない。。)
ファームウエアからはイベント処理すればいいと。。。。

BPMPからのメッセージは、BPMP APIと呼ぶ。

ソースコード解析しないと。。。

追記)、2016.11.05
Slideshareに、Tegra 186のu-boot & Linuxをアップしました。
ご利用ください。