UPSTREAM: soc/mediatek/mt8192: add SPM firmware
Support SPM suspend at the end of system suspend.
BUG=b:159079649,b:173653085
TEST=Asurada boots up to shell
Original-Change-Id: I7dfa4a8a7ac585dcc8eb158d2db5a2a89436389d
Signed-off-by: Roger Lu <roger.lu@mediatek.com>
Change-Id: I8767a269dd42b65aeb5ffaa57e1ab7d57a685036
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/blobs/+/2742336
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
Commit-Queue: Yu-Ping Wu <yupingso@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
Auto-Submit: Hung-Te Lin <hungte@chromium.org>
diff --git a/soc/mediatek/mt8192/README.md b/soc/mediatek/mt8192/README.md
index b53814d..ff4b066 100644
--- a/soc/mediatek/mt8192/README.md
+++ b/soc/mediatek/mt8192/README.md
@@ -2,6 +2,7 @@
- drame.elf
- dpm.dm
- dpm.pm
+- spm_firmware.bin
--------------------------------------------------------------------------------
# `dram.elf` Introduction
@@ -98,3 +99,24 @@
## Version
- No version yet.
+
+--------------------------------------------------------------------------------
+# SPM Introduction
+
+SPM is able to turn off more power such as DRAM self-refresh mode and 26M clock off
+when system is in suspend. Also, SPM helps support Vcore DVFS feature.
+
+## Who uses it
+ - Linux kernel system suspend and Vcore DVFS.
+
+## How to load `spm_fimware.bin`
+ - Use CBFS to load "spm_fimware.bin" to DRAM and SPM DMA loads it from dram to SPM SRAM.
+
+## Return Values
+ SPM driver in coreboot checks if pmem_words/dmem_words are 16-byte aligned in `spm_fimware.bin`
+ - yes : SPM DMA can load `spm_fimware.bin` to SPM SRAM correctly.
+ - no : assert(0)
+
+## Version
+ Search "spmfw (version" will show log like below
+ - spmfw (version pcm_suspend_v1.43_no_GPU_WAYEN)
diff --git a/soc/mediatek/mt8192/spm_firmware.bin b/soc/mediatek/mt8192/spm_firmware.bin
new file mode 100644
index 0000000..8943f0c
--- /dev/null
+++ b/soc/mediatek/mt8192/spm_firmware.bin
Binary files differ
diff --git a/soc/mediatek/mt8192/spm_firmware.bin.md5 b/soc/mediatek/mt8192/spm_firmware.bin.md5
new file mode 100644
index 0000000..5b10145
--- /dev/null
+++ b/soc/mediatek/mt8192/spm_firmware.bin.md5
@@ -0,0 +1 @@
+474883cf1437b8ead0dd4363a8d234f4 *spm_firmware.bin
diff --git a/soc/mediatek/mt8192/spm_release_notes.txt b/soc/mediatek/mt8192/spm_release_notes.txt
new file mode 100644
index 0000000..273c83c
--- /dev/null
+++ b/soc/mediatek/mt8192/spm_release_notes.txt
@@ -0,0 +1,4 @@
+** Build from MediaTek Internal **
+
+# 2020.07
+1. Support SPM suspend at the end of system suspend.