From e881985a46982200b5b97aae48466120a2b33f12 Mon Sep 17 00:00:00 2001 From: SaiSurya Ch Date: Wed, 4 Dec 2024 12:25:30 +0530 Subject: [PATCH] AMD: platform: Include window info in data section when building binaries. Include window info in data section when building binaries for AMD platforms ACP_6_3 and ACP_7_0. Signed-off-by: SaiSurya Ch --- src/arch/xtensa/configs/acp_6_3_defconfig | 1 + src/arch/xtensa/configs/acp_7_0_defconfig | 1 + src/drivers/Kconfig | 2 ++ src/drivers/amd/Kconfig | 7 +++++++ src/platform/amd/acp_6_3/platform.c | 7 +++++++ src/platform/amd/acp_7_0/platform.c | 7 +++++++ 6 files changed, 25 insertions(+) create mode 100644 src/drivers/amd/Kconfig diff --git a/src/arch/xtensa/configs/acp_6_3_defconfig b/src/arch/xtensa/configs/acp_6_3_defconfig index 4a4646306ba4..6b391bacc861 100644 --- a/src/arch/xtensa/configs/acp_6_3_defconfig +++ b/src/arch/xtensa/configs/acp_6_3_defconfig @@ -34,3 +34,4 @@ CONFIG_COMP_TDFB=n #CONFIG_COMP_MUX=n CONFIG_COMP_SEL=n CONFIG_COMP_MIXER=n +CONFIG_AMD_BINARY_BUILD=y diff --git a/src/arch/xtensa/configs/acp_7_0_defconfig b/src/arch/xtensa/configs/acp_7_0_defconfig index a4c268aeac8f..9b7427f6e3aa 100644 --- a/src/arch/xtensa/configs/acp_7_0_defconfig +++ b/src/arch/xtensa/configs/acp_7_0_defconfig @@ -33,3 +33,4 @@ CONFIG_COMP_TDFB=n #CONFIG_COMP_MUX=n CONFIG_COMP_SEL=n CONFIG_COMP_MIXER=n +CONFIG_AMD_BINARY_BUILD=n diff --git a/src/drivers/Kconfig b/src/drivers/Kconfig index ad3be8d1a564..315022e2fe9b 100644 --- a/src/drivers/Kconfig +++ b/src/drivers/Kconfig @@ -10,6 +10,8 @@ rsource "imx/Kconfig" rsource "mediatek/Kconfig" +rsource "amd/Kconfig" + config DUMMY_DMA bool "Dummy DMA (software DMA driver)" default n diff --git a/src/drivers/amd/Kconfig b/src/drivers/amd/Kconfig new file mode 100644 index 000000000000..15c7e0eb911d --- /dev/null +++ b/src/drivers/amd/Kconfig @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: BSD-3-Clause + +config AMD_BINARY_BUILD + bool + default n + help + Select this if the platform need firmware binaries. diff --git a/src/platform/amd/acp_6_3/platform.c b/src/platform/amd/acp_6_3/platform.c index 66aac4c054e1..753073a4dcb0 100644 --- a/src/platform/amd/acp_6_3/platform.c +++ b/src/platform/amd/acp_6_3/platform.c @@ -64,7 +64,11 @@ static const struct sof_ipc_fw_ready ready #define NUM_ACP_WINDOWS 6 const struct ext_man_windows xsram_window +#ifdef CONFIG_AMD_BINARY_BUILD + __aligned(EXT_MAN_ALIGN) __unused = { +#else __aligned(EXT_MAN_ALIGN) __section(".fw_metadata") __unused = { +#endif .hdr = { .type = EXT_MAN_ELEM_WINDOW, .elem_size = ALIGN_UP_COMPILE(sizeof(struct ext_man_windows), EXT_MAN_ALIGN), @@ -189,6 +193,9 @@ int platform_boot_complete(uint32_t boot_message) volatile acp_scratch_mem_config_t *pscratch_mem_cfg = (volatile acp_scratch_mem_config_t *)(PU_SCRATCH_REG_BASE + SCRATCH_REG_OFFSET); mailbox_dspbox_write(0, &ready, sizeof(ready)); +#ifdef CONFIG_AMD_BINARY_BUILD + mailbox_dspbox_write(sizeof(ready), &xsram_window.window, sizeof(xsram_window.window)); +#endif pscratch_mem_cfg->acp_dsp_msg_write = 1; acp_dsp_to_host_intr_trig(); /* Configures the trigger bit in ACP_DSP_SW_INTR_TRIG register */ diff --git a/src/platform/amd/acp_7_0/platform.c b/src/platform/amd/acp_7_0/platform.c index 14fee899ace0..2ea94c659d92 100644 --- a/src/platform/amd/acp_7_0/platform.c +++ b/src/platform/amd/acp_7_0/platform.c @@ -63,7 +63,11 @@ static const struct sof_ipc_fw_ready ready #define NUM_ACP_WINDOWS 6 const struct ext_man_windows xsram_window +#ifdef CONFIG_AMD_BINARY_BUILD + __aligned(EXT_MAN_ALIGN) __unused = { +#else __aligned(EXT_MAN_ALIGN) __section(".fw_metadata") __unused = { +#endif .hdr = { .type = EXT_MAN_ELEM_WINDOW, .elem_size = ALIGN_UP_COMPILE(sizeof(struct ext_man_windows), EXT_MAN_ALIGN), @@ -188,6 +192,9 @@ int platform_boot_complete(uint32_t boot_message) volatile acp_scratch_mem_config_t *pscratch_mem_cfg = (volatile acp_scratch_mem_config_t *)(PU_SCRATCH_REG_BASE + SCRATCH_REG_OFFSET); mailbox_dspbox_write(0, &ready, sizeof(ready)); +#ifdef CONFIG_AMD_BINARY_BUILD + mailbox_dspbox_write(sizeof(ready), &xsram_window.window, sizeof(xsram_window.window)); +#endif pscratch_mem_cfg->acp_dsp_msg_write = 1; acp_dsp_to_host_intr_trig(); /* Configures the trigger bit in ACP_DSP_SW_INTR_TRIG register */