soc: boards: Add Mediatek MT8186 and MT8188 audio DSPs

These are very similar devices to mt8195, minimal changes needed
beyond boilerplate configuration.

In the process, this reworks the board/soc layout to be HWMv2
compliant, with "adsp" becoming a CPU cluster beneath the SOC.  So the
name of the boards to west become e.g. "mt8195/mt8195/adsp" (which can
be shortened to "mt8195//adsp" if desired).

Note that the cpuclk driver is not yet ported, it works only with 8195
(the clocking/power architecture seems similar between the parts, but
the graph of wells and clocks is different and historically these have
been three separate drivers in SOF).  The biggest changes are in the
image/loader scripts, which needed some rework for cross-device
portability.

Signed-off-by: Andy Ross <andyross@google.com>
This commit is contained in:
Andy Ross 2024-05-22 16:12:40 -07:00 committed by Benjamin Cabé
commit 5364783ba1
39 changed files with 709 additions and 322 deletions

View file

@ -35,6 +35,7 @@ static uint32_t cpu_hz(void)
ZTEST(mtk_adsp, cpu_freq)
{
#ifdef CONFIG_SOC_SERIES_MT8195
int freqs[] = { 26, 370, 540, 720 };
for (int i = 0; i < ARRAY_SIZE(freqs); i++) {
@ -49,6 +50,9 @@ ZTEST(mtk_adsp, cpu_freq)
zassert_true(err > 200);
}
#else
(void)cpu_hz();
#endif
}
#define MBOX0 DEVICE_DT_GET(DT_INST(0, mediatek_mbox))
@ -71,9 +75,9 @@ static void mbox_fn(const struct device *mbox, void *arg)
* on mbox1 after receiving a "command" on mbox0 (you can also see it
* whine about the invalid IPC message in the kernel logs).
*
* Note that there's a catch: SOF's "reply" comes after a timeout
* (it's an invalid command, afterall) which is 165 seconds! But the
* test does pass.
* Note that there's a catch: on older kernels, SOF's "reply" comes
* after a timeout (it's an invalid command, afterall) which is 165
* seconds! But the test does pass.
*/
ZTEST(mtk_adsp, mbox)
{