/* Set up a temporary Event Vector Table, so if something bad happens before the kernel is fully started, it doesn't vector off into somewhere we don't know  */
asmlinkage void __init init_early_exception_vectors(void)
/* Set up a temporary Event Vector Table, so if something bad happens before the kernel is fully started, it doesn't vector off into somewhere we don't know  */
asmlinkage void __init init_early_exception_vectors(void)
{
	u32 evt;
	SSYNC();
	mark_shadow_error();
	early_shadow_puts(linux_banner);
	early_shadow_stamp();
	if (CPUID != bfin_cpuid()) {
		early_shadow_puts("Running on wrong machine type, expected");
		early_shadow_reg(CPUID, 16);
		early_shadow_puts(", but running on");
		early_shadow_reg(bfin_cpuid(), 16);
		early_shadow_puts("\n");
	}
	for (evt = EVT2; evt <= EVT15; evt += 4)
		bfin_write32(evt, early_trap);
	CSYNC();
	asm("\tRETI = %0; RETX = %0; RETN = %0;\n"
		: : "p"(early_trap));
}