diff options
Diffstat (limited to 'arch/m68k/kernel/setup_mm.c')
| -rw-r--r-- | arch/m68k/kernel/setup_mm.c | 22 | 
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c index c3b45061dd0..d872ce4807c 100644 --- a/arch/m68k/kernel/setup_mm.c +++ b/arch/m68k/kernel/setup_mm.c @@ -221,7 +221,8 @@ void __init setup_arch(char **cmdline_p)  #endif  	/* The bootinfo is located right after the kernel bss */ -	m68k_parse_bootinfo((const struct bi_record *)_end); +	if (!CPU_IS_COLDFIRE) +		m68k_parse_bootinfo((const struct bi_record *)_end);  	if (CPU_IS_040)  		m68k_is040or060 = 4; @@ -235,7 +236,7 @@ void __init setup_arch(char **cmdline_p)  	 *  with them, we should add a test to check_bugs() below] */  #ifndef CONFIG_M68KFPU_EMU_ONLY  	/* clear the fpu if we have one */ -	if (m68k_fputype & (FPU_68881|FPU_68882|FPU_68040|FPU_68060)) { +	if (m68k_fputype & (FPU_68881|FPU_68882|FPU_68040|FPU_68060|FPU_COLDFIRE)) {  		volatile int zero = 0;  		asm volatile ("frestore %0" : : "m" (zero));  	} @@ -258,6 +259,10 @@ void __init setup_arch(char **cmdline_p)  	init_mm.end_data = (unsigned long)_edata;  	init_mm.brk = (unsigned long)_end; +#if defined(CONFIG_BOOTPARAM) +	strncpy(m68k_command_line, CONFIG_BOOTPARAM_STRING, CL_SIZE); +	m68k_command_line[CL_SIZE - 1] = 0; +#endif /* CONFIG_BOOTPARAM */  	*cmdline_p = m68k_command_line;  	memcpy(boot_command_line, *cmdline_p, CL_SIZE); @@ -323,6 +328,11 @@ void __init setup_arch(char **cmdline_p)  		config_sun3x();  		break;  #endif +#ifdef CONFIG_COLDFIRE +	case MACH_M54XX: +		config_BSP(NULL, 0); +		break; +#endif  	default:  		panic("No configuration setup");  	} @@ -384,6 +394,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)  #define LOOP_CYCLES_68030	(8)  #define LOOP_CYCLES_68040	(3)  #define LOOP_CYCLES_68060	(1) +#define LOOP_CYCLES_COLDFIRE	(2)  	if (CPU_IS_020) {  		cpu = "68020"; @@ -397,6 +408,9 @@ static int show_cpuinfo(struct seq_file *m, void *v)  	} else if (CPU_IS_060) {  		cpu = "68060";  		clockfactor = LOOP_CYCLES_68060; +	} else if (CPU_IS_COLDFIRE) { +		cpu = "ColdFire"; +		clockfactor = LOOP_CYCLES_COLDFIRE;  	} else {  		cpu = "680x0";  		clockfactor = 0; @@ -415,6 +429,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)  		fpu = "68060";  	else if (m68k_fputype & FPU_SUNFPA)  		fpu = "Sun FPA"; +	else if (m68k_fputype & FPU_COLDFIRE) +		fpu = "ColdFire";  	else  		fpu = "none";  #endif @@ -431,6 +447,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)  		mmu = "Sun-3";  	else if (m68k_mmutype & MMU_APOLLO)  		mmu = "Apollo"; +	else if (m68k_mmutype & MMU_COLDFIRE) +		mmu = "ColdFire";  	else  		mmu = "unknown";  |