xref: /OK3568_Linux_fs/kernel/arch/sh/include/mach-ecovec24/mach/romimage.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifdef __ASSEMBLY__
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun /* EcoVec board specific boot code:
5*4882a593Smuzhiyun  * converts the "partner-jet-script.txt" script into assembly
6*4882a593Smuzhiyun  * the assembly code is the first code to be executed in the romImage
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #include <asm/romimage-macros.h>
10*4882a593Smuzhiyun #include <mach/partner-jet-setup.txt>
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun 	/* execute icbi after enabling cache */
13*4882a593Smuzhiyun 	mov.l	1f, r0
14*4882a593Smuzhiyun 	icbi	@r0
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun 	/* jump to cached area */
17*4882a593Smuzhiyun 	mova	2f, r0
18*4882a593Smuzhiyun 	jmp	@r0
19*4882a593Smuzhiyun 	nop
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun 	.align 2
22*4882a593Smuzhiyun 1 :	.long 0xa8000000
23*4882a593Smuzhiyun 2 :
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun #else /* __ASSEMBLY__ */
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun /* Ecovec board specific information:
28*4882a593Smuzhiyun  *
29*4882a593Smuzhiyun  * Set the following to enable MMCIF boot from the MMC card in CN12:
30*4882a593Smuzhiyun  *
31*4882a593Smuzhiyun  * DS1.5 = OFF (SH BOOT pin set to L)
32*4882a593Smuzhiyun  * DS2.6 = OFF (Select MMCIF on CN12 instead of SDHI1)
33*4882a593Smuzhiyun  * DS2.7 = ON  (Select MMCIF on CN12 instead of SDHI1)
34*4882a593Smuzhiyun  *
35*4882a593Smuzhiyun  */
36*4882a593Smuzhiyun #define HIZCRA		0xa4050158
37*4882a593Smuzhiyun #define PGDR		0xa405012c
38*4882a593Smuzhiyun 
mmcif_update_progress(int nr)39*4882a593Smuzhiyun static inline void mmcif_update_progress(int nr)
40*4882a593Smuzhiyun {
41*4882a593Smuzhiyun 	/* disable Hi-Z for LED pins */
42*4882a593Smuzhiyun 	__raw_writew(__raw_readw(HIZCRA) & ~(1 << 1), HIZCRA);
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun 	/* update progress on LED4, LED5, LED6 and LED7 */
45*4882a593Smuzhiyun 	__raw_writeb(1 << (nr - 1), PGDR);
46*4882a593Smuzhiyun }
47*4882a593Smuzhiyun 
48*4882a593Smuzhiyun #endif /* __ASSEMBLY__ */
49