mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-30 18:05:48 +01: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:
		
				
					committed by
					
						 Priyanka Jain
						Priyanka Jain
					
				
			
			
				
	
			
			
			
						parent
						
							49bb245f1d
						
					
				
				
					commit
					20759b2973
				
			| @@ -6,6 +6,8 @@ endif | |||||||
|  |  | ||||||
| obj-y += common.o ddr.o | obj-y += common.o ddr.o | ||||||
|  |  | ||||||
|  | obj-$(CONFIG_ARMV8_PSCI) += psci.o | ||||||
|  |  | ||||||
| ifdef CONFIG_SPL_BUILD | ifdef CONFIG_SPL_BUILD | ||||||
| obj-y += spl.o | obj-y += spl.o | ||||||
| obj-$(CONFIG_SPL_ATF) += spl_atf.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_FLASH_SUPPORT=y | ||||||
| CONFIG_SPL_SPI=y | CONFIG_SPL_SPI=y | ||||||
| # CONFIG_PSCI_RESET is not set | # CONFIG_PSCI_RESET is not set | ||||||
|  | CONFIG_ARMV8_PSCI=y | ||||||
|  | CONFIG_ARMV8_PSCI_RELOCATE=y | ||||||
| CONFIG_SYS_LOAD_ADDR=0x82000000 | CONFIG_SYS_LOAD_ADDR=0x82000000 | ||||||
| CONFIG_AHCI=y | CONFIG_AHCI=y | ||||||
| CONFIG_DISTRO_DEFAULTS=y | CONFIG_DISTRO_DEFAULTS=y | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user