123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- #ifndef __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
- #define __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
- #include <asm/regdef.h>
- #include <asm/mipsregs.h>
-
- .macro platform_eva_init
- .set push
- .set
-
- mfc0
- andi /* CCA */
- move
- ins
-
- li |
- (0 << MIPS_SEGCFG_PA_SHIFT) | \
- (1 << MIPS_SEGCFG_EU_SHIFT)) | \
- (((MIPS_SEGCFG_MK |
- (0 << MIPS_SEGCFG_PA_SHIFT) | \
- (1 << MIPS_SEGCFG_EU_SHIFT)) << 16)
- or
- mtc0
-
- li |
- (0 << MIPS_SEGCFG_PA_SHIFT) | \
- (2 << MIPS_SEGCFG_C_SHIFT) | \
- (1 << MIPS_SEGCFG_EU_SHIFT)) | \
- (((MIPS_SEGCFG_MUSUK |
- (0 << MIPS_SEGCFG_PA_SHIFT) | \
- (1 << MIPS_SEGCFG_EU_SHIFT)) << 16)
- ins
- mtc0
-
- li |
- (6 << MIPS_SEGCFG_PA_SHIFT) | \
- (1 << MIPS_SEGCFG_EU_SHIFT)) | \
- (((MIPS_SEGCFG_MUSUK |
- (4 << MIPS_SEGCFG_PA_SHIFT) | \
- (1 << MIPS_SEGCFG_EU_SHIFT)) << 16)
- or
- mtc0
- jal
- mfc0
- li /* K bit */
- or
- mtc0
- sync
- jal
- .set
- .endm
- .macro
- #ifdef
- sync
- ehb
- mfc0
- bgez
- mfc0
- bgez
- mfc0
- bgez
- mfc0
- sll /* SC bit */
- bgez
- platform_eva_init
- b
- 9:
-
- PTR_LA /* YAMON print */
- lw
- move
- PTR_LA
- jal
- PTR_LA /* YAMON exit */
- lw
- li
- jal
- 1: b
- nop
- __INITDATA
- nonsc_processor:
- .asciz
- __FINIT
- #endif /* CONFIG_EVA */
- 0:
- .endm
- .macro
- #ifdef
- sync
- ehb
- platform_eva_init
- #endif
- .endm
- #endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */
|