vserver 1.9.5.x5
[linux-2.6.git] / arch / m68k / kernel / setup.c
index 1d2563e..d6ca992 100644 (file)
@@ -109,6 +109,7 @@ extern int q40_parse_bootinfo(const struct bi_record *);
 extern int bvme6000_parse_bootinfo(const struct bi_record *);
 extern int mvme16x_parse_bootinfo(const struct bi_record *);
 extern int mvme147_parse_bootinfo(const struct bi_record *);
+extern int hp300_parse_bootinfo(const struct bi_record *);
 
 extern void config_amiga(void);
 extern void config_atari(void);
@@ -175,6 +176,8 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
                    unknown = mvme16x_parse_bootinfo(record);
                else if (MACH_IS_MVME147)
                    unknown = mvme147_parse_bootinfo(record);
+               else if (MACH_IS_HP300)
+                   unknown = hp300_parse_bootinfo(record);
                else
                    unknown = 1;
        }
@@ -204,20 +207,8 @@ void __init setup_arch(char **cmdline_p)
        int i;
        char *p, *q;
 
-       if (!MACH_IS_HP300) {
-               /* The bootinfo is located right after the kernel bss */
-               m68k_parse_bootinfo((const struct bi_record *)&_end);
-       } else {
-               /* FIXME HP300 doesn't use bootinfo yet */
-               extern unsigned long hp300_phys_ram_base;
-               unsigned long hp300_mem_size = 0xffffffff-hp300_phys_ram_base;
-               m68k_cputype = CPU_68030;
-               m68k_fputype = FPU_68882;
-               m68k_memory[0].addr = hp300_phys_ram_base;
-               /* 0.5M fudge factor */
-               m68k_memory[0].size = hp300_mem_size-512*1024;
-               m68k_num_memory++;
-       }
+       /* The bootinfo is located right after the kernel bss */
+       m68k_parse_bootinfo((const struct bi_record *)&_end);
 
        if (CPU_IS_040)
                m68k_is040or060 = 4;
@@ -352,7 +343,7 @@ void __init setup_arch(char **cmdline_p)
 #ifndef CONFIG_SUN3
        startmem= m68k_memory[0].addr;
        endmem = startmem + m68k_memory[0].size;
-       high_memory = PAGE_OFFSET;
+       high_memory = (void *)PAGE_OFFSET;
        for (i = 0; i < m68k_num_memory; i++) {
                m68k_memory[i].size &= MASK_256K;
                if (m68k_memory[i].addr < startmem)
@@ -550,7 +541,5 @@ void check_bugs(void)
                                "emulation project\n" );
                panic( "no FPU" );
        }
-
-#endif /* CONFIG_SUN3 */
-
+#endif /* !CONFIG_M68KFPU_EMU */
 }