mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 01:54:22 +00:00
mediatek: mt8183: pass platform parameters
Add plat parameter structs to support BL2 to pass variable-length, variable-type parameters to BL31. The parameters are structured as a link list. During BL31 setup time, we traverse the list to process each parameter. Signed-off-by: kenny liang <kenny.liang@mediatek.com> Change-Id: Ie84cfc9606656fb1d2780a68cadf27e09afa6628
This commit is contained in:
parent
50cd952249
commit
a561205724
5 changed files with 76 additions and 0 deletions
19
include/export/plat/mediatek/common/plat_params_exp.h
Normal file
19
include/export/plat/mediatek/common/plat_params_exp.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef ARM_TRUSTED_FIRMWARE_EXPORT_PLAT_MEDIATEK_COMMON_PLAT_PARAMS_EXP_H
|
||||
#define ARM_TRUSTED_FIRMWARE_EXPORT_PLAT_MEDIATEK_COMMON_PLAT_PARAMS_EXP_H
|
||||
|
||||
/* EXPORT HEADER -- See include/export/README for details! -- EXPORT HEADER */
|
||||
|
||||
#include "../../../lib/bl_aux_params/bl_aux_params_exp.h"
|
||||
|
||||
/* param type */
|
||||
enum bl_aux_mtk_param_type {
|
||||
BL_AUX_PARAM_MTK_RESET_GPIO = BL_AUX_PARAM_VENDOR_SPECIFIC_FIRST,
|
||||
};
|
||||
|
||||
#endif /* ARM_TRUSTED_FIRMWARE_EXPORT_PLAT_MEDIATEK_COMMON_PLAT_PARAMS_EXP_H */
|
35
plat/mediatek/common/params_setup.c
Normal file
35
plat/mediatek/common/params_setup.c
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright (c) 2019, MediaTek Inc. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <lib/bl_aux_params/bl_aux_params.h>
|
||||
#include <common/debug.h>
|
||||
#include <plat_params.h>
|
||||
#include <string.h>
|
||||
|
||||
static struct bl_aux_gpio_info rst_gpio;
|
||||
|
||||
struct bl_aux_gpio_info *plat_get_mtk_gpio_reset(void)
|
||||
{
|
||||
return &rst_gpio;
|
||||
}
|
||||
|
||||
static bool mtk_aux_param_handler(struct bl_aux_param_header *param)
|
||||
{
|
||||
/* Store platform parameters for later processing if needed. */
|
||||
switch (param->type) {
|
||||
case BL_AUX_PARAM_MTK_RESET_GPIO:
|
||||
rst_gpio = ((struct bl_aux_param_gpio *)param)->gpio;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void params_early_setup(u_register_t plat_param_from_bl2)
|
||||
{
|
||||
bl_aux_params_parse(plat_param_from_bl2, mtk_aux_param_handler);
|
||||
}
|
||||
|
17
plat/mediatek/common/plat_params.h
Normal file
17
plat/mediatek/common/plat_params.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Copyright (c) 2019, MediaTek Inc. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef PLAT_PARAMS_H
|
||||
#define PLAT_PARAMS_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <export/plat/mediatek/common/plat_params_exp.h>
|
||||
|
||||
struct bl_aux_gpio_info *plat_get_mtk_gpio_reset(void);
|
||||
void params_early_setup(u_register_t plat_param_from_bl2);
|
||||
|
||||
#endif
|
|
@ -18,6 +18,7 @@
|
|||
#include <mtk_plat_common.h>
|
||||
#include <mtspmc.h>
|
||||
#include <plat_debug.h>
|
||||
#include <plat_params.h>
|
||||
#include <plat_private.h>
|
||||
#include <platform_def.h>
|
||||
#include <scu.h>
|
||||
|
@ -74,6 +75,8 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
|
|||
{
|
||||
static console_16550_t console;
|
||||
|
||||
params_early_setup(arg1);
|
||||
|
||||
console_16550_register(UART0_BASE, UART_CLOCK, UART_BAUDRATE, &console);
|
||||
|
||||
NOTICE("MT8183 bl31_setup\n");
|
||||
|
|
|
@ -31,6 +31,7 @@ BL31_SOURCES += common/desc_image_load.c \
|
|||
drivers/delay_timer/generic_delay_timer.c \
|
||||
drivers/gpio/gpio.c \
|
||||
drivers/ti/uart/aarch64/16550_console.S \
|
||||
lib/bl_aux_params/bl_aux_params.c \
|
||||
lib/cpus/aarch64/aem_generic.S \
|
||||
lib/cpus/aarch64/cortex_a53.S \
|
||||
lib/cpus/aarch64/cortex_a73.S \
|
||||
|
@ -38,6 +39,7 @@ BL31_SOURCES += common/desc_image_load.c \
|
|||
${MTK_PLAT}/common/mtk_plat_common.c \
|
||||
${MTK_PLAT}/common/drivers/pmic_wrap/pmic_wrap_init.c \
|
||||
${MTK_PLAT}/common/drivers/rtc/rtc_common.c \
|
||||
${MTK_PLAT}/common/params_setup.c \
|
||||
${MTK_PLAT_SOC}/aarch64/plat_helpers.S \
|
||||
${MTK_PLAT_SOC}/aarch64/platform_common.c \
|
||||
${MTK_PLAT_SOC}/drivers/mcsi/mcsi.c \
|
||||
|
|
Loading…
Add table
Reference in a new issue