summaryrefslogtreecommitdiffstats
path: root/arch/m68k/boot/amiga/linuxboot.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-06-01 03:16:17 +0000
committerRalf Baechle <ralf@linux-mips.org>1997-06-01 03:16:17 +0000
commitd8d9b8f76f22b7a16a83e261e64f89ee611f49df (patch)
tree3067bc130b80d52808e6390c9fc7fc087ec1e33c /arch/m68k/boot/amiga/linuxboot.c
parent19c9bba94152148523ba0f7ef7cffe3d45656b11 (diff)
Initial revision
Diffstat (limited to 'arch/m68k/boot/amiga/linuxboot.c')
-rw-r--r--arch/m68k/boot/amiga/linuxboot.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/m68k/boot/amiga/linuxboot.c b/arch/m68k/boot/amiga/linuxboot.c
index d35966686..23b7fa9d0 100644
--- a/arch/m68k/boot/amiga/linuxboot.c
+++ b/arch/m68k/boot/amiga/linuxboot.c
@@ -22,6 +22,8 @@
* for more details.
*
* History:
+ * 27 Mar 1997 FPU-less machines couldn't boot kernels that use bootinfo
+ * interface version 1.0 (Geert)
* 03 Feb 1997 Implemented kernel decompression (Geert, based on Roman's
* code for ataboot)
* 30 Dec 1996 Reverted the CPU detection to the old scheme
@@ -791,6 +793,7 @@ static u_long get_chipset(void)
static void get_processor(u_long *cpu, u_long *fpu, u_long *mmu)
{
*cpu = *fpu = 0;
+
if (SysBase->AttnFlags & AFF_68060)
*cpu = CPU_68060;
else if (SysBase->AttnFlags & AFF_68040)
@@ -799,15 +802,15 @@ static void get_processor(u_long *cpu, u_long *fpu, u_long *mmu)
*cpu = CPU_68030;
else if (SysBase->AttnFlags & AFF_68020)
*cpu = CPU_68020;
+
if (*cpu == CPU_68040 || *cpu == CPU_68060) {
if (SysBase->AttnFlags & AFF_FPU40)
*fpu = *cpu;
- } else {
- if (SysBase->AttnFlags & AFF_68882)
- *fpu = FPU_68882;
- else if (SysBase->AttnFlags & AFF_68881)
- *fpu = FPU_68881;
- }
+ } else if (SysBase->AttnFlags & AFF_68882)
+ *fpu = FPU_68882;
+ else if (SysBase->AttnFlags & AFF_68881)
+ *fpu = FPU_68881;
+
*mmu = *cpu;
}
@@ -1047,7 +1050,7 @@ static int create_compat_bootinfo(void)
compat_bootinfo.cputype |= COMPAT_FPU_68040;
else if (bi.fputype & FPU_68060)
compat_bootinfo.cputype |= COMPAT_FPU_68060;
- else {
+ else if (bi.fputype) {
Printf("FPU type 0x%08lx not supported by kernel\n", bi.fputype);
return(0);
}