m68k: Allow no CPU/platform type for allnoconfig

Allow no CPU/platform type for allnoconfig
  - Provide a dummy value for FPSTATESIZE if no CPU type was selected
  - Provide a dummy value for NR_IRQS if no platform type was selected
  - Warn the user if no CPU or platform type was selected

Note: you still cannot build an allnoconfig kernel, as CONFIG_SWAP=n doesn't
build and we cannot easily fix that
(http://groups.google.com/group/linux.kernel/browse_thread/thread/d430c78b07e1827b)

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Geert Uytterhoeven 2008-07-17 21:16:12 +02:00 committed by Linus Torvalds
parent 97d26e73d7
commit edfd92f67e
4 changed files with 16 additions and 10 deletions

View file

@ -26,6 +26,7 @@
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/fpu.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/machdep.h> #include <asm/machdep.h>
@ -40,6 +41,11 @@
#include <asm/dvma.h> #include <asm/dvma.h>
#endif #endif
#if !FPSTATESIZE || !NR_IRQS
#warning No CPU/platform type selected, your kernel will not work!
#warning Are you building an allnoconfig kernel?
#endif
unsigned long m68k_machtype; unsigned long m68k_machtype;
EXPORT_SYMBOL(m68k_machtype); EXPORT_SYMBOL(m68k_machtype);
unsigned long m68k_cputype; unsigned long m68k_cputype;

View file

@ -7,15 +7,15 @@
*/ */
#if defined(CONFIG_M68020) || defined(CONFIG_M68030) #if defined(CONFIG_M68020) || defined(CONFIG_M68030)
#define FPSTATESIZE (216/sizeof(unsigned char)) #define FPSTATESIZE (216)
#elif defined(CONFIG_M68040) #elif defined(CONFIG_M68040)
#define FPSTATESIZE (96/sizeof(unsigned char)) #define FPSTATESIZE (96)
#elif defined(CONFIG_M68KFPU_EMU) #elif defined(CONFIG_M68KFPU_EMU)
#define FPSTATESIZE (28/sizeof(unsigned char)) #define FPSTATESIZE (28)
#elif defined(CONFIG_M68060) #elif defined(CONFIG_M68060)
#define FPSTATESIZE (12/sizeof(unsigned char)) #define FPSTATESIZE (12)
#else #else
#define FPSTATESIZE error no_cpu_type_configured #define FPSTATESIZE (0)
#endif #endif
#endif /* __M68K_FPU_H */ #endif /* __M68K_FPU_H */

View file

@ -24,7 +24,7 @@
#elif defined(CONFIG_HP300) #elif defined(CONFIG_HP300)
#define NR_IRQS 8 #define NR_IRQS 8
#else #else
#error unknown nr of irqs #define NR_IRQS 0
#endif #endif
/* /*

View file

@ -16,7 +16,7 @@ static inline void flush_tlb_kernel_page(void *addr)
".chip 68k" ".chip 68k"
: : "a" (addr)); : : "a" (addr));
set_fs(old_fs); set_fs(old_fs);
} else } else if (CPU_IS_020_OR_030)
__asm__ __volatile__("pflush #4,#4,(%0)" : : "a" (addr)); __asm__ __volatile__("pflush #4,#4,(%0)" : : "a" (addr));
} }
@ -29,7 +29,7 @@ static inline void __flush_tlb(void)
__asm__ __volatile__(".chip 68040\n\t" __asm__ __volatile__(".chip 68040\n\t"
"pflushan\n\t" "pflushan\n\t"
".chip 68k"); ".chip 68k");
else else if (CPU_IS_020_OR_030)
__asm__ __volatile__("pflush #0,#4"); __asm__ __volatile__("pflush #0,#4");
} }
@ -45,7 +45,7 @@ static inline void __flush_tlb_one(unsigned long addr)
{ {
if (CPU_IS_040_OR_060) if (CPU_IS_040_OR_060)
__flush_tlb040_one(addr); __flush_tlb040_one(addr);
else else if (CPU_IS_020_OR_030)
__asm__ __volatile__("pflush #0,#4,(%0)" : : "a" (addr)); __asm__ __volatile__("pflush #0,#4,(%0)" : : "a" (addr));
} }
@ -60,7 +60,7 @@ static inline void flush_tlb_all(void)
__asm__ __volatile__(".chip 68040\n\t" __asm__ __volatile__(".chip 68040\n\t"
"pflusha\n\t" "pflusha\n\t"
".chip 68k"); ".chip 68k");
else else if (CPU_IS_020_OR_030)
__asm__ __volatile__("pflusha"); __asm__ __volatile__("pflusha");
} }