patch-2.1.48 linux/arch/m68k/boot/atari/bootstrap.h
Next file: linux/arch/m68k/boot/atari/ethlance.c
Previous file: linux/arch/m68k/boot/atari/bootstrap.c
Back to the patch index
Back to the overall index
- Lines: 172
- Date:
Wed Dec 31 16:00:00 1969
- Orig file:
v2.1.47/linux/arch/m68k/boot/atari/bootstrap.h
- Orig date:
Fri Dec 20 01:19:58 1996
diff -u --recursive --new-file v2.1.47/linux/arch/m68k/boot/atari/bootstrap.h linux/arch/m68k/boot/atari/bootstrap.h
@@ -1,171 +0,0 @@
-/*
-** bootstrap.h -- This file is a part of the Atari bootloader.
-**
-** Copyright 1993 by Arjan Knor
-**
-** Modified by Andreas Schwab
-** - clear transparent translation registers
-** Modified 18-Aug-96 by Geert Uytterhoeven
-** - Updated for the new boot information structure (untested!)
-** Modified 1996-11-12 by Andreas Schwab
-** - Fixed and tested previous change
-**
-** This file is subject to the terms and conditions of the GNU General Public
-** License. See the file COPYING in the main directory of this archive
-** for more details.
-**
-*/
-
-#ifndef BOOTSTRAP_H
-#define BOOTSTRAP_H
-
- /*
- * Atari Bootinfo Definitions
- *
- * All limits herein are `soft' limits, i.e. they don't put constraints
- * on the actual parameters in the kernel.
- */
-
-struct atari_bootinfo {
- unsigned long machtype; /* machine type */
- unsigned long cputype; /* system CPU */
- unsigned long fputype; /* system FPU */
- unsigned long mmutype; /* system MMU */
- int num_memory; /* # of memory blocks found */
- struct mem_info memory[NUM_MEMINFO]; /* memory description */
- struct mem_info ramdisk; /* ramdisk description */
- char command_line[CL_SIZE]; /* kernel command line parameters */
- unsigned long mch_cookie; /* _MCH cookie from TOS */
-};
-
-
-/* _MCH cookie values */
-#define MACH_ST 0
-#define MACH_STE 1
-#define MACH_TT 2
-#define MACH_FALCON 3
-
-/* some constants for memory handling */
-#define ST_RAM 0
-#define TT_RAM 1
-#define TT_RAM_BASE (u_long)(0x01000000)
-#define MB (1024 * 1024)
-#define START_MEM (bi.memory[0].addr)
-#define MEM_SIZE (bi.memory[0].size)
-
-/* the various CPU- and FPU-types */
-#define AFF_68000 (1)
-#define AFF_68020 (2)
-#define AFF_68030 (4)
-#define AFF_68040 (8)
-#define AFF_68881 (16)
-#define AFF_68882 (32)
-
-/* the possible OS-languages */
-#define USA 0
-#define FRG 1
-#define FRA 2
-#define UK 3
-#define SPA 4
-#define ITA 5
-#define SWE 6
-#define SWF 7
-#define SWG 8
-#define TUR 9
-#define FIN 10
-#define NOR 11
-#define DEN 12
-#define SAU 13
-#define HOL 14
-
-/* some inline functions */
-
-static __inline int fpu_idle_frame_size (void)
-{
- char fpu_frame[216];
- __asm__ __volatile__ ("fnop"::);
- __asm__ __volatile__ ("fsave %0@" : : "a" (fpu_frame));
- return fpu_frame[1];
-}
-
-static __inline void change_stack (u_long *stackp)
-{
- __asm__ volatile ("movel %0,sp\n\t" :: "g" (stackp) : "sp");
-}
-
-static __inline void disable_interrupts (void)
-{
- __asm__ volatile ("orw #0x700,sr":);
-}
-
-extern struct atari_bootinfo bi;
-static __inline void disable_cache (void)
-{
- __asm__ volatile ("movec %0,cacr" :: "d" (0));
- if (bi.cputype & CPU_68060) {
- /* '060: clear branch cache after disabling it;
- * disable superscalar operation (and enable FPU) */
- __asm__ volatile ("movec %0,cacr" :: "d" (0x00400000));
- __asm__ volatile ("moveq #0,d0;"
- ".long 0x4e7b0808" /* movec d0,pcr */
- : /* no outputs */
- : /* no inputs */
- : "d0");
- }
-}
-
-static __inline void disable_mmu (void)
-{
- if (bi.cputype & (CPU_68040|CPU_68060)) {
- __asm__ volatile ("moveq #0,d0;"
- ".long 0x4e7b0003;" /* movec d0,tc */
- ".long 0x4e7b0004;" /* movec d0,itt0 */
- ".long 0x4e7b0005;" /* movec d0,itt1 */
- ".long 0x4e7b0006;" /* movec d0,dtt0 */
- ".long 0x4e7b0007" /* movec d0,dtt1 */
- : /* no outputs */
- : /* no inputs */
- : "d0");
- }
- else {
- __asm__ volatile ("subl #4,sp\n\t"
- "pmove tc,sp@\n\t"
- "bclr #7,sp@\n\t"
- "pmove sp@,tc\n\t"
- "addl #4,sp");
- if (bi.cputype & CPU_68030) {
- __asm__ volatile ("clrl sp@-\n\t"
- ".long 0xf0170800\n\t" /* pmove sp@,tt0 */
- ".long 0xf0170c00\n\t" /* pmove sp@,tt1 */
- "addl #4,sp\n");
- }
- }
-}
-
-static __inline void jump_to_mover (void *, void *, void *, void *, int, int,
- void *) __attribute__ ((noreturn));
-static __inline void jump_to_mover (void *kernel_start, void *mem_start,
- void *ramdisk_end, void *mem_end,
- int kernel_size, int ramdisk_size,
- void *mover_addr)
-{
- asm volatile ("movel %0,a0\n\t"
- "movel %1,a1\n\t"
- "movel %2,a2\n\t"
- "movel %3,a3\n\t"
- "movel %4,d0\n\t"
- "movel %5,d1\n\t"
- "jmp %6@\n"
- : /* no outputs */
- : "g" (kernel_start), "g" (mem_start),
- "g" (ramdisk_end), "g" (mem_end),
- "g" (kernel_size), "g" (ramdisk_size),
- "a" (mover_addr)
- : "a0", "a1", "a2", "a3", "d0", "d1");
-
- /* Avoid warning that function may return */
- for (;;) ;
-}
-
-#endif /* BOOTSTRAP_H */
-
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov