ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / asm-i386 / mach-pc9800 / setup_arch_pre.h
1 /* Hook to call BIOS initialisation function */
2
3 /* no action for generic */
4
5 #define ARCH_SETUP arch_setup_pc9800();
6
7 #include <linux/timex.h>
8 #include <asm/io.h>
9 #include <asm/pc9800.h>
10 #include <asm/pc9800_sca.h>
11
12 int CLOCK_TICK_RATE;
13 extern unsigned long tick_usec; /* ACTHZ          period (usec) */
14 extern unsigned long tick_nsec; /* USER_HZ period (nsec) */
15 unsigned char pc9800_misc_flags;
16 /* (bit 0) 1:High Address Video ram exists 0:otherwise */
17
18 #ifdef CONFIG_SMP
19 #define MPC_TABLE_SIZE 512
20 #define MPC_TABLE ((char *) (PARAM+0x400))
21 char mpc_table[MPC_TABLE_SIZE];
22 #endif
23
24 static  inline void arch_setup_pc9800(void)
25 {
26         CLOCK_TICK_RATE = PC9800_8MHz_P() ? 1996800 : 2457600;
27         printk(KERN_DEBUG "CLOCK_TICK_RATE = %d\n", CLOCK_TICK_RATE);
28         tick_usec = TICK_USEC;          /* USER_HZ period (usec) */
29         tick_nsec = TICK_NSEC;          /* ACTHZ period (nsec) */
30
31         pc9800_misc_flags = PC9800_MISC_FLAGS;
32 #ifdef CONFIG_SMP
33         if ((*(u32 *)(MPC_TABLE)) == 0x504d4350)
34                 memcpy(mpc_table, MPC_TABLE, *(u16 *)(MPC_TABLE + 4));
35 #endif /* CONFIG_SMP */
36 }