• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __ZBOOT_MACRO_H
2 #define __ZBOOT_MACRO_H
3 
4 /* The LIST command is used to include comments in the script */
5 .macro	LIST comment
6 .endm
7 
8 /* The ED command is used to write a 32-bit word */
9 .macro ED, addr, data
10 	LDR	r0, 1f
11 	LDR	r1, 2f
12 	STR	r1, [r0]
13 	B	3f
14 1 :	.long	\addr
15 2 :	.long	\data
16 3 :
17 .endm
18 
19 /* The EW command is used to write a 16-bit word */
20 .macro EW, addr, data
21 	LDR	r0, 1f
22 	LDR	r1, 2f
23 	STRH	r1, [r0]
24 	B	3f
25 1 :	.long	\addr
26 2 :	.long	\data
27 3 :
28 .endm
29 
30 /* The EB command is used to write an 8-bit word */
31 .macro EB, addr, data
32 	LDR	r0, 1f
33 	LDR	r1, 2f
34 	STRB	r1, [r0]
35 	B	3f
36 1 :	.long	\addr
37 2 :	.long	\data
38 3 :
39 .endm
40 
41 /* The WAIT command is used to delay the execution */
42 .macro  WAIT, time, reg
43 	LDR	r1, 1f
44 	LDR	r0, 2f
45 	STR	r0, [r1]
46 10 :
47 	LDR	r0, [r1]
48 	CMP	r0, #0x00000000
49 	BNE	10b
50 	NOP
51 	B	3f
52 1 :	.long	\reg
53 2 :	.long	\time * 100
54 3 :
55 .endm
56 
57 /* The DD command is used to read a 32-bit word */
58 .macro  DD, start, end
59 	LDR	r1, 1f
60 	B	2f
61 1 :	.long	\start
62 2 :
63 .endm
64 
65 /* loop until a given value has been read (with mask) */
66 .macro WAIT_MASK, addr, data, cmp
67 	LDR	r0, 2f
68 	LDR	r1, 3f
69 	LDR	r2, 4f
70 1:
71 	LDR	r3, [r0, #0]
72 	AND	r3, r1, r3
73 	CMP	r2, r3
74 	BNE	1b
75 	B	5f
76 2:	.long	\addr
77 3:	.long	\data
78 4:	.long	\cmp
79 5:
80 .endm
81 
82 /* read 32-bit value from addr, "or" an immediate and write back */
83 .macro ED_OR, addr, data
84 	LDR r4, 1f
85 	LDR r5, 2f
86 	LDR r6, [r4]
87 	ORR r5, r6, r5
88 	STR r5, [r4]
89 	B	3f
90 1:	.long	\addr
91 2:	.long	\data
92 3:
93 .endm
94 
95 /* read 32-bit value from addr, "and" an immediate and write back */
96 .macro ED_AND, addr, data
97 	LDR r4, 1f
98 	LDR r5, 2f
99 	LDR r6, [r4]
100 	AND r5, r6, r5
101 	STR r5, [r4]
102 	B	3f
103 1:	.long \addr
104 2:	.long \data
105 3:
106 .endm
107 
108 #endif /* __ZBOOT_MACRO_H */
109