18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __ROMIMAGE_MACRO_H 38c2ecf20Sopenharmony_ci#define __ROMIMAGE_MACRO_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci/* The LIST command is used to include comments in the script */ 68c2ecf20Sopenharmony_ci.macro LIST comment 78c2ecf20Sopenharmony_ci.endm 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci/* The ED command is used to write a 32-bit word */ 108c2ecf20Sopenharmony_ci.macro ED, addr, data 118c2ecf20Sopenharmony_ci mov.l 1f, r1 128c2ecf20Sopenharmony_ci mov.l 2f, r0 138c2ecf20Sopenharmony_ci mov.l r0, @r1 148c2ecf20Sopenharmony_ci bra 3f 158c2ecf20Sopenharmony_ci nop 168c2ecf20Sopenharmony_ci .align 2 178c2ecf20Sopenharmony_ci1 : .long \addr 188c2ecf20Sopenharmony_ci2 : .long \data 198c2ecf20Sopenharmony_ci3 : 208c2ecf20Sopenharmony_ci.endm 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci/* The EW command is used to write a 16-bit word */ 238c2ecf20Sopenharmony_ci.macro EW, addr, data 248c2ecf20Sopenharmony_ci mov.l 1f, r1 258c2ecf20Sopenharmony_ci mov.l 2f, r0 268c2ecf20Sopenharmony_ci mov.w r0, @r1 278c2ecf20Sopenharmony_ci bra 3f 288c2ecf20Sopenharmony_ci nop 298c2ecf20Sopenharmony_ci .align 2 308c2ecf20Sopenharmony_ci1 : .long \addr 318c2ecf20Sopenharmony_ci2 : .long \data 328c2ecf20Sopenharmony_ci3 : 338c2ecf20Sopenharmony_ci.endm 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci/* The EB command is used to write an 8-bit word */ 368c2ecf20Sopenharmony_ci.macro EB, addr, data 378c2ecf20Sopenharmony_ci mov.l 1f, r1 388c2ecf20Sopenharmony_ci mov.l 2f, r0 398c2ecf20Sopenharmony_ci mov.b r0, @r1 408c2ecf20Sopenharmony_ci bra 3f 418c2ecf20Sopenharmony_ci nop 428c2ecf20Sopenharmony_ci .align 2 438c2ecf20Sopenharmony_ci1 : .long \addr 448c2ecf20Sopenharmony_ci2 : .long \data 458c2ecf20Sopenharmony_ci3 : 468c2ecf20Sopenharmony_ci.endm 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci/* The WAIT command is used to delay the execution */ 498c2ecf20Sopenharmony_ci.macro WAIT, time 508c2ecf20Sopenharmony_ci mov.l 2f, r3 518c2ecf20Sopenharmony_ci1 : 528c2ecf20Sopenharmony_ci nop 538c2ecf20Sopenharmony_ci tst r3, r3 548c2ecf20Sopenharmony_ci bf/s 1b 558c2ecf20Sopenharmony_ci dt r3 568c2ecf20Sopenharmony_ci bra 3f 578c2ecf20Sopenharmony_ci nop 588c2ecf20Sopenharmony_ci .align 2 598c2ecf20Sopenharmony_ci2 : .long \time * 100 608c2ecf20Sopenharmony_ci3 : 618c2ecf20Sopenharmony_ci.endm 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci/* The DD command is used to read a 32-bit word */ 648c2ecf20Sopenharmony_ci.macro DD, addr, addr2, nr 658c2ecf20Sopenharmony_ci mov.l 1f, r1 668c2ecf20Sopenharmony_ci mov.l @r1, r0 678c2ecf20Sopenharmony_ci bra 2f 688c2ecf20Sopenharmony_ci nop 698c2ecf20Sopenharmony_ci .align 2 708c2ecf20Sopenharmony_ci1 : .long \addr 718c2ecf20Sopenharmony_ci2 : 728c2ecf20Sopenharmony_ci.endm 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci#endif /* __ROMIMAGE_MACRO_H */ 75