armv7/snow: get to romstage
This patch does a few things to get us into romstage: - Add romstage as a stage (a later patch adds it as a binary, which is probably wrong). The Makefile magic is complex enough that we let it build the XIP file for now, but we no longer use it. - Replace findstage with loadstage. Loadstage will find a stage, load the code to memory, and zero the remaining part of memory. Now we can link the romstage to go anywhere! - Eliminate magic offsets from code/ldscripts and centralize Kconfig variables in src/cpu/samsung/exynos5250/Kconfig. - Tidy up code and serial output Change-Id: Iae4d2f9e7f429cb1df15d49daf9a08b88d75d79d Signed-off-by: David Hendricks <dhendrix@chromium.org> Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: http://review.coreboot.org/2174 Tested-by: build bot (Jenkins)
This commit is contained in:
		
				
					committed by
					
						 Ronald G. Minnich
						Ronald G. Minnich
					
				
			
			
				
	
			
			
			
						parent
						
							f572e1e5fc
						
					
				
				
					commit
					211a5d56db
				
			| @@ -14,27 +14,16 @@ config SATA_AHCI | ||||
| 	bool | ||||
| 	default n | ||||
|  | ||||
| config SPL_BUILD | ||||
| 	bool | ||||
| 	default n | ||||
|  | ||||
| config SYS_TEXT_BASE | ||||
| 	hex "Executable code section" | ||||
| 	default 0x43e00000 | ||||
|  | ||||
| config SYS_SDRAM_BASE | ||||
| 	hex "SDRAM base address" | ||||
| 	default 0x40000000 | ||||
|  | ||||
| #FIXME(dhendrix, reinauer): re-visit this RAMBASE/RAMTOP stuff... | ||||
| config RAMBASE | ||||
| 	hex | ||||
| 	default SYS_SDRAM_BASE | ||||
| # according to stefan, this is RAMBASE + 1M. | ||||
| config RAMTOP | ||||
| 	hex | ||||
| 	default 0x40100000 | ||||
| # Example SRAM/iRAM map for Exynos5250 platform: | ||||
| # | ||||
| # 0x0202_0000: vendor-provided BL1 | ||||
| # 0x0202_3400: bootblock, assume up to 32KB in size | ||||
| # 0x0202_2600: ID section, assume 2KB in size. This will be | ||||
| #              within the bootblock section. | ||||
| # 0x0203_0000: romstage, assume up to 128KB in size. | ||||
| # 0x0207_7f00: stack pointer | ||||
|  | ||||
| # this may be used to calculate offsets | ||||
| config IRAM_BOTTOM | ||||
| 	hex | ||||
| 	default 0x02020000 | ||||
| @@ -43,14 +32,54 @@ config IRAM_TOP | ||||
| 	hex | ||||
| 	default 0x02077fff | ||||
|  | ||||
| config SYS_INIT_SP_ADDR | ||||
| config BOOTBLOCK_BASE | ||||
| 	hex | ||||
| 	default 0x02058000 | ||||
| 	default 0x02023400 | ||||
|  | ||||
| config ID_SECTION_BASE | ||||
| 	hex | ||||
| 	default 0x02026000 | ||||
|  | ||||
| config ROMSTAGE_BASE | ||||
| 	hex | ||||
| 	default 0x02030000 | ||||
|  | ||||
| config ROMSTAGE_SIZE | ||||
| 	hex | ||||
| 	default 0x10000 | ||||
|  | ||||
| # FIXME: This is for copying SPI content into SRAM temporarily and | ||||
| # will be removed when we have the SPI streaming driver implemented. | ||||
| config SPI_IMAGE_HACK | ||||
| 	hex | ||||
| 	default 0x02060000 | ||||
|  | ||||
| config IRAM_STACK | ||||
| 	hex | ||||
| 	default SYS_INIT_SP_ADDR | ||||
| 	default 0x02077f00 | ||||
|  | ||||
| # FIXME: other magic numbers that should probably go away | ||||
| config XIP_ROM_SIZE | ||||
| 	hex "ROM stage (BL2) size" | ||||
| 	default 0x20000 | ||||
| 	hex | ||||
| 	default ROMSTAGE_SIZE | ||||
|  | ||||
| config SYS_SDRAM_BASE | ||||
| 	hex "SDRAM base address" | ||||
| 	default 0x40000000 | ||||
|  | ||||
| config SPL_BUILD | ||||
| 	bool | ||||
| 	default n | ||||
|  | ||||
| config SYS_TEXT_BASE | ||||
| 	hex "Executable code section" | ||||
| 	default 0x43e00000 | ||||
|  | ||||
| config RAMBASE | ||||
| 	hex | ||||
| 	default SYS_SDRAM_BASE | ||||
| # according to stefan, this is RAMBASE + 1M. | ||||
| config RAMTOP | ||||
| 	hex | ||||
| 	default 0x40100000 | ||||
|  | ||||
|   | ||||
| @@ -36,5 +36,6 @@ static int config_branch_prediction(int set_cr_z) | ||||
| void bootblock_cpu_init(void); | ||||
| void bootblock_cpu_init(void) | ||||
| { | ||||
| 	/* FIXME: this is a stub for now */ | ||||
| 	volatile unsigned long *pshold = (unsigned long *)0x1004330c; | ||||
| 	*pshold |= 0x100; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user