diff options
author | Dilan Lee <dilee@nvidia.com> | 2017-10-27 09:51:09 +0800 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2019-01-23 10:33:08 -0800 |
commit | 3e1923d9cf6416a0f69aa325a8cb1b2ef41a4408 (patch) | |
tree | 8ac42f5a764c228a208e2276d0020d1e1ca5cd41 /plat/nvidia | |
parent | dd20f5b3d927a5af48bb4d8904c81a265da5678f (diff) |
Tegra: add 'late' platform setup handler
This patch adds a platform setup handler that gets called after
the MMU is enabled. Platforms wanting to make use of this handler
should declare 'plat_late_platform_setup' handler in their platform
files, to override the default weakly defined handler.
Change-Id: Ibc97a2e5a24608ddea856d0bd543a9d5876f604c
Signed-off-by: Dilan Lee <dilee@nvidia.com>
Diffstat (limited to 'plat/nvidia')
-rw-r--r-- | plat/nvidia/tegra/common/tegra_bl31_setup.c | 13 | ||||
-rw-r--r-- | plat/nvidia/tegra/include/tegra_private.h | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/plat/nvidia/tegra/common/tegra_bl31_setup.c b/plat/nvidia/tegra/common/tegra_bl31_setup.c index 4712b8ab..908e4f2d 100644 --- a/plat/nvidia/tegra/common/tegra_bl31_setup.c +++ b/plat/nvidia/tegra/common/tegra_bl31_setup.c @@ -70,6 +70,7 @@ extern uint64_t ns_image_entrypoint; #pragma weak plat_early_platform_setup #pragma weak plat_get_bl31_params #pragma weak plat_get_bl31_plat_params +#pragma weak plat_late_platform_setup void plat_early_platform_setup(void) { @@ -86,6 +87,11 @@ plat_params_from_bl2_t *plat_get_bl31_plat_params(void) return NULL; } +void plat_late_platform_setup(void) +{ + ; /* do nothing */ +} + /******************************************************************************* * Return a pointer to the 'entry_point_info' structure of the next image for * security state specified. BL33 corresponds to the non-secure image type @@ -329,6 +335,13 @@ void bl31_platform_setup(void) tegra_memctrl_tzram_setup(TEGRA_TZRAM_BASE, TEGRA_TZRAM_SIZE); /* + * Late setup handler to allow platforms to performs additional + * functionality. + * This handler gets called with MMU enabled. + */ + plat_late_platform_setup(); + + /* * Add timestamp for platform setup exit. */ boot_profiler_add_record("[TF] plat setup exit"); diff --git a/plat/nvidia/tegra/include/tegra_private.h b/plat/nvidia/tegra/include/tegra_private.h index f55f5df6..68b46242 100644 --- a/plat/nvidia/tegra/include/tegra_private.h +++ b/plat/nvidia/tegra/include/tegra_private.h @@ -75,6 +75,8 @@ uint32_t plat_get_console_from_id(int32_t id); void plat_gic_setup(void); struct tegra_bl31_params *plat_get_bl31_params(void); plat_params_from_bl2_t *plat_get_bl31_plat_params(void); +void plat_early_platform_setup(void); +void plat_late_platform_setup(void); /* Declarations for plat_secondary.c */ void plat_secondary_setup(void); @@ -126,7 +128,6 @@ int tegra_prepare_cpu_on_finish(unsigned long mpidr); /* Declarations for tegra_bl31_setup.c */ plat_params_from_bl2_t *bl31_get_plat_params(void); int32_t bl31_check_ns_address(uint64_t base, uint64_t size_in_bytes); -void plat_early_platform_setup(void); /* Declarations for tegra_delay_timer.c */ void tegra_delay_timer_init(void); |