mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-10-06 22:32:14 +00:00
6d8abe6a8a
set_pl310_ctrl_reg does use the Secure Monitor Call (SMC) to setup PL310 control register, however, that is something that is generic enough to be used for OMAP5 generation of processors as well. The only difference being the service being invoked for the function. So, convert the service to a macro and use a generic name (same as that used in Linux for some consistency). While at that, also add a data barrier which is necessary as per recommendation. While at this, smc #0 is maintained as handcoded assembly thanks to various gcc version eccentricities, discussion thread: http://marc.info/?t=142542166800001&r=1&w=2 Signed-off-by: Nishanth Menon <nm@ti.com> Tested-by: Matt Porter <mporter@konsulko.com> Reviewed-by: Tom Rini <trini@konsulko.com>
36 lines
742 B
ArmAsm
36 lines
742 B
ArmAsm
/*
|
|
* Board specific setup info
|
|
*
|
|
* (C) Copyright 2010
|
|
* Texas Instruments, <www.ti.com>
|
|
*
|
|
* Author :
|
|
* Aneesh V <aneesh@ti.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <config.h>
|
|
#include <asm/arch/omap.h>
|
|
#include <asm/omap_common.h>
|
|
#include <asm/arch/spl.h>
|
|
#include <linux/linkage.h>
|
|
|
|
ENTRY(save_boot_params)
|
|
ldr r1, =OMAP_SRAM_SCRATCH_BOOT_PARAMS
|
|
str r0, [r1]
|
|
b save_boot_params_ret
|
|
ENDPROC(save_boot_params)
|
|
|
|
ENTRY(omap_smc1)
|
|
PUSH {r4-r12, lr} @ save registers - ROM code may pollute
|
|
@ our registers
|
|
MOV r12, r0 @ Service
|
|
MOV r0, r1 @ Argument
|
|
DSB
|
|
DMB
|
|
.word 0xe1600070 @ SMC #0 - hand assembled for GCC versions
|
|
@ call ROM Code API for the service requested
|
|
|
|
POP {r4-r12, pc}
|
|
ENDPROC(omap_smc1)
|