mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 14:00:19 +00:00 
			
		
		
		
	The rest of the unmigrated CONFIG symbols in the CONFIG_SYS namespace do not easily transition to Kconfig. In many cases they likely should come from the device tree instead. Move these out of CONFIG namespace and in to CFG namespace. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			132 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
/*
 | 
						|
 *  armboot - Startup Code for ARM926EJS CPU-core
 | 
						|
 *
 | 
						|
 *  Copyright (c) 2003  Texas Instruments
 | 
						|
 *
 | 
						|
 *  ----- Adapted for OMAP1610 OMAP730 from ARM925t code ------
 | 
						|
 *
 | 
						|
 *  Copyright (c) 2001	Marius Gröger <mag@sysgo.de>
 | 
						|
 *  Copyright (c) 2002	Alex Züpke <azu@sysgo.de>
 | 
						|
 *  Copyright (c) 2002	Gary Jennejohn <garyj@denx.de>
 | 
						|
 *  Copyright (c) 2003	Richard Woodruff <r-woodruff2@ti.com>
 | 
						|
 *  Copyright (c) 2003	Kshitij <kshitij@ti.com>
 | 
						|
 *  Copyright (c) 2010	Albert Aribaud <albert.u.boot@aribaud.net>
 | 
						|
 */
 | 
						|
 | 
						|
#include <asm-offsets.h>
 | 
						|
#include <config.h>
 | 
						|
#include <common.h>
 | 
						|
#include <linux/linkage.h>
 | 
						|
 | 
						|
/*
 | 
						|
 *************************************************************************
 | 
						|
 *
 | 
						|
 * Startup Code (reset vector)
 | 
						|
 *
 | 
						|
 * do important init only if we don't start from memory!
 | 
						|
 * setup Memory and board specific bits prior to relocation.
 | 
						|
 * relocate armboot to ram
 | 
						|
 * setup stack
 | 
						|
 *
 | 
						|
 *************************************************************************
 | 
						|
 */
 | 
						|
 | 
						|
	.globl	reset
 | 
						|
	.globl	save_boot_params_ret
 | 
						|
	.type   save_boot_params_ret,%function
 | 
						|
 | 
						|
reset:
 | 
						|
	/* Allow the board to save important registers */
 | 
						|
	b	save_boot_params
 | 
						|
save_boot_params_ret:
 | 
						|
	/*
 | 
						|
	 * set the cpu to SVC32 mode
 | 
						|
	 */
 | 
						|
	mrs	r0,cpsr
 | 
						|
	bic	r0,r0,#0x1f
 | 
						|
	orr	r0,r0,#0xd3
 | 
						|
	msr	cpsr,r0
 | 
						|
 | 
						|
	/*
 | 
						|
	 * we do sys-critical inits only at reboot,
 | 
						|
	 * not when booting from ram!
 | 
						|
	 */
 | 
						|
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT)
 | 
						|
	bl	cpu_init_crit
 | 
						|
#endif
 | 
						|
 | 
						|
	bl	_main
 | 
						|
 | 
						|
/*------------------------------------------------------------------------------*/
 | 
						|
 | 
						|
	.globl	c_runtime_cpu_setup
 | 
						|
c_runtime_cpu_setup:
 | 
						|
 | 
						|
	bx	lr
 | 
						|
 | 
						|
/*
 | 
						|
 *************************************************************************
 | 
						|
 *
 | 
						|
 * CPU_init_critical registers
 | 
						|
 *
 | 
						|
 * setup important registers
 | 
						|
 * setup memory timing
 | 
						|
 *
 | 
						|
 *************************************************************************
 | 
						|
 */
 | 
						|
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT)
 | 
						|
cpu_init_crit:
 | 
						|
	/*
 | 
						|
	 * flush D cache before disabling it
 | 
						|
	 */
 | 
						|
	mov	r0, #0
 | 
						|
flush_dcache:
 | 
						|
	mrc	p15, 0, r15, c7, c10, 3
 | 
						|
	bne	flush_dcache
 | 
						|
 | 
						|
	mcr	p15, 0, r0, c8, c7, 0	/* invalidate TLB */
 | 
						|
	mcr	p15, 0, r0, c7, c5, 0	/* invalidate I Cache */
 | 
						|
 | 
						|
	/*
 | 
						|
	 * disable MMU and D cache
 | 
						|
	 * enable I cache if SYS_ICACHE_OFF is not defined
 | 
						|
	 */
 | 
						|
	mrc	p15, 0, r0, c1, c0, 0
 | 
						|
	bic	r0, r0, #0x00000300	/* clear bits 9:8 (---- --RS) */
 | 
						|
	bic	r0, r0, #0x00000087	/* clear bits 7, 2:0 (B--- -CAM) */
 | 
						|
#ifdef CFG_SYS_EXCEPTION_VECTORS_HIGH
 | 
						|
	orr	r0, r0, #0x00002000	/* set bit 13 (--V- ----) */
 | 
						|
#else
 | 
						|
	bic	r0, r0, #0x00002000	/* clear bit 13 (--V- ----) */
 | 
						|
#endif
 | 
						|
	orr	r0, r0, #0x00000002	/* set bit 1 (A) Align */
 | 
						|
#if !CONFIG_IS_ENABLED(SYS_ICACHE_OFF)
 | 
						|
	orr	r0, r0, #0x00001000	/* set bit 12 (I) I-Cache */
 | 
						|
#endif
 | 
						|
	mcr	p15, 0, r0, c1, c0, 0
 | 
						|
 | 
						|
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT_ONLY)
 | 
						|
	/*
 | 
						|
	 * Go setup Memory and board specific bits prior to relocation.
 | 
						|
	 */
 | 
						|
	mov	r4, lr		/* perserve link reg across call */
 | 
						|
	bl	lowlevel_init	/* go setup pll,mux,memory */
 | 
						|
	mov	lr, r4		/* restore link */
 | 
						|
#endif
 | 
						|
	mov	pc, lr		/* back to my caller */
 | 
						|
#endif /* CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT) */
 | 
						|
 | 
						|
/*************************************************************************
 | 
						|
 *
 | 
						|
 * void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3)
 | 
						|
 *	__attribute__((weak));
 | 
						|
 *
 | 
						|
 * Stack pointer is not yet initialized at this moment
 | 
						|
 * Don't save anything to stack even if compiled with -O0
 | 
						|
 *
 | 
						|
 *************************************************************************/
 | 
						|
WEAK(save_boot_params)
 | 
						|
	b	save_boot_params_ret	/* back to my caller */
 | 
						|
ENDPROC(save_boot_params)
 |