mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 07:04:28 +00:00
board: sl28: add basic PSCI implementation
For now, this only provides reset and poweroff functions. Signed-off-by: Michael Walle <michael@walle.cc> [Rebased] Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
parent
49bb245f1d
commit
20759b2973
3 changed files with 46 additions and 0 deletions
|
@ -6,6 +6,8 @@ endif
|
|||
|
||||
obj-y += common.o ddr.o
|
||||
|
||||
obj-$(CONFIG_ARMV8_PSCI) += psci.o
|
||||
|
||||
ifdef CONFIG_SPL_BUILD
|
||||
obj-y += spl.o
|
||||
obj-$(CONFIG_SPL_ATF) += spl_atf.o
|
||||
|
|
42
board/kontron/sl28/psci.c
Normal file
42
board/kontron/sl28/psci.c
Normal file
|
@ -0,0 +1,42 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
#include <asm/secure.h>
|
||||
#include <asm/psci.h>
|
||||
#include <asm/types.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
#define GPIO2_GPDIR 0x2310000
|
||||
#define GPIO2_GPDAT 0x2310008
|
||||
#define RSTCR 0x1e60000
|
||||
#define RESET_REQ BIT(1)
|
||||
|
||||
u32 __secure psci_version(void)
|
||||
{
|
||||
return ARM_PSCI_VER_0_2;
|
||||
}
|
||||
|
||||
void __secure psci_system_reset(void)
|
||||
{
|
||||
writel(RESET_REQ, RSTCR);
|
||||
|
||||
while (1)
|
||||
wfi();
|
||||
}
|
||||
|
||||
void __secure psci_system_off(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
writel(0x02000000, GPIO2_GPDIR);
|
||||
writel(0, GPIO2_GPDAT);
|
||||
|
||||
/* make sure the management controller has sampled the input */
|
||||
for (i = 0; i < (1 << 11); i++)
|
||||
asm("nop");
|
||||
|
||||
writel(RESET_REQ, RSTCR);
|
||||
|
||||
while (1)
|
||||
wfi();
|
||||
}
|
|
@ -20,6 +20,8 @@ CONFIG_ENV_OFFSET_REDUND=0x3f0000
|
|||
CONFIG_SPL_SPI_FLASH_SUPPORT=y
|
||||
CONFIG_SPL_SPI=y
|
||||
# CONFIG_PSCI_RESET is not set
|
||||
CONFIG_ARMV8_PSCI=y
|
||||
CONFIG_ARMV8_PSCI_RELOCATE=y
|
||||
CONFIG_SYS_LOAD_ADDR=0x82000000
|
||||
CONFIG_AHCI=y
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
|
|
Loading…
Reference in a new issue