Merge git://git.denx.de/u-boot-marvell
This commit is contained in:
@@ -5,3 +5,5 @@
|
||||
#
|
||||
|
||||
obj-y = cpu.o
|
||||
obj-$(CONFIG_SPL_BUILD) += spl.o
|
||||
obj-$(CONFIG_SPL_BUILD) += lowlevel_spl.o
|
||||
|
||||
62
arch/arm/cpu/armv7/armada-xp/lowlevel_spl.S
Normal file
62
arch/arm/cpu/armv7/armada-xp/lowlevel_spl.S
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <version.h>
|
||||
#include <linux/linkage.h>
|
||||
|
||||
ENTRY(save_boot_params)
|
||||
bx lr
|
||||
ENDPROC(save_boot_params)
|
||||
|
||||
/*
|
||||
* cache_inv - invalidate Cache line
|
||||
* r0 - dest
|
||||
*/
|
||||
.global cache_inv
|
||||
.type cache_inv, %function
|
||||
cache_inv:
|
||||
|
||||
stmfd sp!, {r1-r12}
|
||||
|
||||
mcr p15, 0, r0, c7, c6, 1
|
||||
|
||||
ldmfd sp!, {r1-r12}
|
||||
bx lr
|
||||
|
||||
|
||||
/*
|
||||
* flush_l1_v6 - l1 cache clean invalidate
|
||||
* r0 - dest
|
||||
*/
|
||||
.global flush_l1_v6
|
||||
.type flush_l1_v6, %function
|
||||
flush_l1_v6:
|
||||
|
||||
stmfd sp!, {r1-r12}
|
||||
|
||||
mcr p15, 0, r0, c7, c10, 5 /* @ data memory barrier */
|
||||
mcr p15, 0, r0, c7, c14, 1 /* @ clean & invalidate D line */
|
||||
mcr p15, 0, r0, c7, c10, 4 /* @ data sync barrier */
|
||||
|
||||
ldmfd sp!, {r1-r12}
|
||||
bx lr
|
||||
|
||||
|
||||
/*
|
||||
* flush_l1_v7 - l1 cache clean invalidate
|
||||
* r0 - dest
|
||||
*/
|
||||
.global flush_l1_v7
|
||||
.type flush_l1_v7, %function
|
||||
flush_l1_v7:
|
||||
|
||||
stmfd sp!, {r1-r12}
|
||||
|
||||
dmb /* @data memory barrier */
|
||||
mcr p15, 0, r0, c7, c14, 1 /* @ clean & invalidate D line */
|
||||
dsb /* @data sync barrier */
|
||||
|
||||
ldmfd sp!, {r1-r12}
|
||||
bx lr
|
||||
38
arch/arm/cpu/armv7/armada-xp/spl.c
Normal file
38
arch/arm/cpu/armv7/armada-xp/spl.c
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (C) 2014 Stefan Roese <sr@denx.de>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <spl.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/cpu.h>
|
||||
#include <asm/arch/soc.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
u32 spl_boot_device(void)
|
||||
{
|
||||
/* Right now only booting via SPI NOR flash is supported */
|
||||
return BOOT_DEVICE_SPI;
|
||||
}
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
/* Set global data pointer */
|
||||
gd = &gdata;
|
||||
|
||||
/* Linux expects the internal registers to be at 0xf1000000 */
|
||||
arch_cpu_init();
|
||||
|
||||
preloader_console_init();
|
||||
|
||||
/* First init the serdes PHY's */
|
||||
serdes_phy_config();
|
||||
|
||||
/* Setup DDR */
|
||||
ddr3_init();
|
||||
|
||||
board_init_r(NULL, 0);
|
||||
}
|
||||
Reference in New Issue
Block a user