mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-20 11:43:22 +00:00
59 lines
1.3 KiB
ArmAsm
59 lines
1.3 KiB
ArmAsm
|
/**************************************
|
||
|
*
|
||
|
* copyright @ Motorola, 1999
|
||
|
*
|
||
|
*
|
||
|
* This file contains two commonly used
|
||
|
* lower level utility routines.
|
||
|
*
|
||
|
* The utility routines are also in other
|
||
|
* Kahlua device driver libraries. The
|
||
|
* need to be linked in only once.
|
||
|
**************************************/
|
||
|
|
||
|
#include <ppc_asm.tmpl>
|
||
|
#include <ppc_defs.h>
|
||
|
|
||
|
/**********************************************************
|
||
|
* function: load_runtime_reg
|
||
|
*
|
||
|
* input: r3 - value of eumbbar
|
||
|
* r4 - register offset in embedded utility space
|
||
|
*
|
||
|
* output: r3 - register content
|
||
|
**********************************************************/
|
||
|
.text
|
||
|
.align 2
|
||
|
.global load_runtime_reg
|
||
|
|
||
|
load_runtime_reg:
|
||
|
|
||
|
xor r5,r5,r5
|
||
|
or r5,r5,r3 /* save eumbbar */
|
||
|
|
||
|
lwbrx r3,r4,r5
|
||
|
sync
|
||
|
|
||
|
bclr 20, 0
|
||
|
|
||
|
/****************************************************************
|
||
|
* function: store_runtime_reg
|
||
|
*
|
||
|
* input: r3 - value of eumbbar
|
||
|
* r4 - register offset in embedded utility space
|
||
|
* r5 - new value to be stored
|
||
|
*
|
||
|
****************************************************************/
|
||
|
.text
|
||
|
.align 2
|
||
|
.global store_runtime_reg
|
||
|
store_runtime_reg:
|
||
|
|
||
|
xor r0,r0,r0
|
||
|
|
||
|
stwbrx r5, r4, r3
|
||
|
sync
|
||
|
|
||
|
bclr 20,0
|
||
|
|