/* ** asm/setup.h -- Definition of the Linux/m68k boot information structure ** ** Copyright 1992 by Greg Harp ** ** 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. ** ** Created 09/29/92 by Greg Harp ** ** 5/2/94 Roman Hodek: ** Added bi_atari part of the machine dependent union bi_un; for now it ** contains just a model field to distinguish between TT and Falcon. ** 26/7/96 Roman Zippel: ** Renamed to setup.h; added some useful macros to allow gcc some ** optimizations if possible. ** 09/02/04 Laurent Vivier ** Remove some parts and add it in EMILE */ #ifndef __ASSEMBLY__ struct mem_info { unsigned long addr; /* physical address of memory chunk */ unsigned long size; /* length of memory chunk (in bytes) */ }; struct bi_Macintosh { unsigned long videoaddr; unsigned long videorow; unsigned long videodepth; unsigned long dimensions; unsigned long args; unsigned long boottime; unsigned long gmtbias; unsigned long bootver; unsigned long videological; unsigned long scc; unsigned long id; unsigned long memsize; unsigned long serialmf; unsigned long serialhsk; unsigned long serialgpi; unsigned long printf; unsigned long printhsk; unsigned long printgpi; unsigned long cpuid; unsigned long rombase; unsigned long adbdelay; unsigned long timedbra; #if defined(EXTENDED_HW_MAP) #define HW_MAP_VIA1 0x00000001 #define HW_MAP_VIA2_VIA 0x00000002 #define HW_MAP_VIA2_RBV 0x00000004 #define HW_MAP_VIA2_OSS 0x00000008 #define HW_MAP_ADB_IOP 0x00000010 #define HW_MAP_ADB_IISI 0x00000020 #define HW_MAP_ADB_CUDA 0x00000040 #define HW_MAP_ADB_PB1 0x00000080 #define HW_MAP_ASC 0x00000100 #define HW_MAP_SCSI5380 0x00000200 #define HW_MAP_SCSI5380DMA 0x00000400 #define HW_MAP_SCSI5396 0x00000800 #define HW_MAP_IDE_PB 0x00001000 #define HW_MAP_IDE_QUADRA 0x00002000 #define HW_MAP_NUBUS 0x00004000 #define HW_MAP_SCC_IOP 0x00008000 unsigned long HwMap; unsigned long VIA1Base; unsigned long VIA2Base; unsigned long ASCBase; unsigned long SCSIBase; unsigned long NubusMap; #endif }; #else #define BI_videoaddr BI_un #define BI_videorow BI_videoaddr+4 #define BI_videodepth BI_videorow+4 #define BI_dimensions BI_videodepth+4 #define BI_args BI_dimensions+4 #endif #define NUM_MEMINFO 4 #define MACH_AMIGA 1 #define MACH_ATARI 2 #define MACH_MAC 3 /* * CPU and FPU types */ #define CPUB_68020 0 #define CPUB_68030 1 #define CPUB_68040 2 #define CPUB_68060 3 #define FPUB_68881 5 #define FPUB_68882 6 #define FPUB_68040 7 /* Internal FPU */ #define FPUB_68060 8 /* Internal FPU */ #define CPU_68020 (1<> 16) & 0xffff) #define BI_VERSION_MINOR(v) ((v) & 0xffff) #ifndef __ASSEMBLY__ struct bootversion { unsigned short branch; unsigned long magic; struct { unsigned long machtype; unsigned long version; } machversions[1]; }; #endif /* __ASSEMBLY__ */ #define AMIGA_BOOTI_VERSION MK_BI_VERSION( 1, 0 ) #define ATARI_BOOTI_VERSION MK_BI_VERSION( 1, 0 ) #define MAC_BOOTI_VERSION MK_BI_VERSION( 2, 0 ) /************************************************************************ * Version 2 bootinfo structure and new defs */ /* * CPU, FPU and MMU types * * Note: we may rely on the following equalities: * * CPU_68020 == MMU_68851 * CPU_68030 == MMU_68030 * CPU_68040 == FPU_68040 == MMU_68040 (not strictly, think of 68LC040!) * CPU_68060 == FPU_68060 == MMU_68060 */ #define V2_CPUB_68020 0 #define V2_CPUB_68030 1 #define V2_CPUB_68040 2 #define V2_CPUB_68060 3 #define V2_CPU_68020 (1<