Merge "ipq5018: Enable PSCI for reset"

This commit is contained in:
Linux Build Service Account 2019-12-25 18:31:11 -08:00 committed by Gerrit - the friendly Code Review server
commit c126ce2855
3 changed files with 46 additions and 4 deletions

View file

@ -26,6 +26,7 @@
#include <mmc.h> #include <mmc.h>
#include <sdhci.h> #include <sdhci.h>
#define DLOAD_MAGIC_COOKIE 0x10
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
struct sdhci_host mmc_host; struct sdhci_host mmc_host;
extern int ipq_spi_init(u16); extern int ipq_spi_init(u16);
@ -287,9 +288,40 @@ int board_mmc_init(bd_t *bis)
void reset_crashdump(void) void reset_crashdump(void)
{ {
unsigned int ret = 0;
qca_scm_sdi();
ret = qca_scm_dload(CLEAR_MAGIC);
if (ret)
printf ("Error in reseting the Magic cookie\n");
return; return;
} }
void psci_sys_reset(void)
{
__invoke_psci_fn_smc(0x84000009, 0, 0, 0);
}
void qti_scm_pshold(void)
{
int ret;
ret = scm_call(SCM_SVC_BOOT, SCM_CMD_TZ_PSHOLD, NULL, 0, NULL, 0);
if (ret != 0)
writel(0, GCNT_PSHOLD);
}
void reset_cpu(unsigned long a)
{
reset_crashdump();
if (is_scm_armv8()) {
psci_sys_reset();
} else {
qti_scm_pshold();
}
while(1);
}
void qpic_clk_enbale(void) void qpic_clk_enbale(void)
{ {
writel(QPIC_CBCR_VAL, GCC_QPIC_CBCR_ADDR); writel(QPIC_CBCR_VAL, GCC_QPIC_CBCR_ADDR);
@ -336,7 +368,3 @@ unsigned long timer_read_counter(void)
return 0; return 0;
} }
void reset_cpu(unsigned long a)
{
while(1);
}

View file

@ -86,6 +86,15 @@
#define KERNEL_AUTH_CMD 0x13 #define KERNEL_AUTH_CMD 0x13
#define SCM_CMD_SEC_AUTH 0x1F #define SCM_CMD_SEC_AUTH 0x1F
#define ARM_PSCI_TZ_FN_BASE 0x84000000
#define ARM_PSCI_TZ_FN(n) (ARM_PSCI_TZ_FN_BASE + (n))
#define ARM_PSCI_TZ_FN_CPU_OFF ARM_PSCI_TZ_FN(2)
#define ARM_PSCI_TZ_FN_CPU_ON ARM_PSCI_TZ_FN(3)
#define ARM_PSCI_TZ_FN_AFFINITY_INFO ARM_PSCI_TZ_FN(4)
unsigned int __invoke_psci_fn_smc(unsigned int, unsigned int,
unsigned int, unsigned int);
struct smem_ram_ptn { struct smem_ram_ptn {
char name[16]; char name[16];
unsigned long long start; unsigned long long start;

View file

@ -33,6 +33,11 @@
#define CONFIG_ENV_SIZE_MAX (256 << 10) /* 256 KB */ #define CONFIG_ENV_SIZE_MAX (256 << 10) /* 256 KB */
/*
* PSCI Calls enable
*/
#define CONFIG_ARMV7_PSCI
/* /*
*Size of malloc() pool *Size of malloc() pool
*/ */