75 строки
1.1 KiB
C
75 строки
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __ROMIMAGE_MACRO_H
|
|
#define __ROMIMAGE_MACRO_H
|
|
|
|
/* The LIST command is used to include comments in the script */
|
|
.macro LIST comment
|
|
.endm
|
|
|
|
/* The ED command is used to write a 32-bit word */
|
|
.macro ED, addr, data
|
|
mov.l 1f, r1
|
|
mov.l 2f, r0
|
|
mov.l r0, @r1
|
|
bra 3f
|
|
nop
|
|
.align 2
|
|
1 : .long \addr
|
|
2 : .long \data
|
|
3 :
|
|
.endm
|
|
|
|
/* The EW command is used to write a 16-bit word */
|
|
.macro EW, addr, data
|
|
mov.l 1f, r1
|
|
mov.l 2f, r0
|
|
mov.w r0, @r1
|
|
bra 3f
|
|
nop
|
|
.align 2
|
|
1 : .long \addr
|
|
2 : .long \data
|
|
3 :
|
|
.endm
|
|
|
|
/* The EB command is used to write an 8-bit word */
|
|
.macro EB, addr, data
|
|
mov.l 1f, r1
|
|
mov.l 2f, r0
|
|
mov.b r0, @r1
|
|
bra 3f
|
|
nop
|
|
.align 2
|
|
1 : .long \addr
|
|
2 : .long \data
|
|
3 :
|
|
.endm
|
|
|
|
/* The WAIT command is used to delay the execution */
|
|
.macro WAIT, time
|
|
mov.l 2f, r3
|
|
1 :
|
|
nop
|
|
tst r3, r3
|
|
bf/s 1b
|
|
dt r3
|
|
bra 3f
|
|
nop
|
|
.align 2
|
|
2 : .long \time * 100
|
|
3 :
|
|
.endm
|
|
|
|
/* The DD command is used to read a 32-bit word */
|
|
.macro DD, addr, addr2, nr
|
|
mov.l 1f, r1
|
|
mov.l @r1, r0
|
|
bra 2f
|
|
nop
|
|
.align 2
|
|
1 : .long \addr
|
|
2 :
|
|
.endm
|
|
|
|
#endif /* __ROMIMAGE_MACRO_H */
|