mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
Merge "ipq5018: Enable PSCI for reset"
This commit is contained in:
commit
c126ce2855
3 changed files with 46 additions and 4 deletions
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue