diff options
Diffstat (limited to 'plat/brcm/board/common/platform_common.c')
-rw-r--r-- | plat/brcm/board/common/platform_common.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/plat/brcm/board/common/platform_common.c b/plat/brcm/board/common/platform_common.c new file mode 100644 index 000000000..9bae83aa9 --- /dev/null +++ b/plat/brcm/board/common/platform_common.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2015-2020, Broadcom + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <arch_helpers.h> +#include <common/debug.h> + +#include <cmn_plat_util.h> +#include <platform_def.h> + +uint32_t boot_source_get(void) +{ + /* For now return BOOT_SOURCE_QSPI */ + return BOOT_SOURCE_QSPI; +} + +void __dead2 plat_soft_reset(uint32_t reset) +{ + if (reset == SOFT_RESET_L3) { + mmio_setbits_32(CRMU_IHOST_SW_PERSISTENT_REG1, reset); + mmio_write_32(CRMU_MAIL_BOX0, 0x0); + mmio_write_32(CRMU_MAIL_BOX1, 0xFFFFFFFF); + } + + if (reset != SOFT_SYS_RESET_L1) + reset = SOFT_PWR_UP_RESET_L0; + + if (reset == SOFT_PWR_UP_RESET_L0) + INFO("L0 RESET...\n"); + + if (reset == SOFT_SYS_RESET_L1) + INFO("L1 RESET...\n"); + + console_flush(); + + mmio_clrbits_32(CRMU_SOFT_RESET_CTRL, 1 << reset); + + while (1) { + ; + } +} |