cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

setup.h (10410B)


      1/*
      2** asm/setup.h -- Definition of the Linux/m68k setup information
      3**
      4** Copyright 1992 by Greg Harp
      5**
      6** This file is subject to the terms and conditions of the GNU General Public
      7** License.  See the file COPYING in the main directory of this archive
      8** for more details.
      9**
     10** Created 09/29/92 by Greg Harp
     11**
     12** 5/2/94 Roman Hodek:
     13**   Added bi_atari part of the machine dependent union bi_un; for now it
     14**   contains just a model field to distinguish between TT and Falcon.
     15** 26/7/96 Roman Zippel:
     16**   Renamed to setup.h; added some useful macros to allow gcc some
     17**   optimizations if possible.
     18** 5/10/96 Geert Uytterhoeven:
     19**   Redesign of the boot information structure; moved boot information
     20**   structure to bootinfo.h
     21*/
     22#ifndef _M68K_SETUP_H
     23#define _M68K_SETUP_H
     24
     25#include <uapi/asm/bootinfo.h>
     26#include <uapi/asm/setup.h>
     27
     28
     29#define CL_SIZE COMMAND_LINE_SIZE
     30
     31#ifndef __ASSEMBLY__
     32extern unsigned long m68k_machtype;
     33#endif /* !__ASSEMBLY__ */
     34
     35#if !defined(CONFIG_AMIGA)
     36#  define MACH_IS_AMIGA (0)
     37#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
     38	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)               \
     39	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                      \
     40	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                  \
     41	|| defined(CONFIG_VIRT)
     42#  define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA)
     43#else
     44#  define MACH_AMIGA_ONLY
     45#  define MACH_IS_AMIGA (1)
     46#  define MACH_TYPE (MACH_AMIGA)
     47#endif
     48
     49#if !defined(CONFIG_ATARI)
     50#  define MACH_IS_ATARI (0)
     51#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
     52	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)               \
     53	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                      \
     54	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                  \
     55	|| defined(CONFIG_VIRT)
     56#  define MACH_IS_ATARI (m68k_machtype == MACH_ATARI)
     57#else
     58#  define MACH_ATARI_ONLY
     59#  define MACH_IS_ATARI (1)
     60#  define MACH_TYPE (MACH_ATARI)
     61#endif
     62
     63#if !defined(CONFIG_MAC)
     64#  define MACH_IS_MAC (0)
     65#elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \
     66	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)                 \
     67	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                        \
     68	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                    \
     69	|| defined(CONFIG_VIRT)
     70#  define MACH_IS_MAC (m68k_machtype == MACH_MAC)
     71#else
     72#  define MACH_MAC_ONLY
     73#  define MACH_IS_MAC (1)
     74#  define MACH_TYPE (MACH_MAC)
     75#endif
     76
     77#if defined(CONFIG_SUN3)
     78#define MACH_IS_SUN3 (1)
     79#define MACH_SUN3_ONLY (1)
     80#define MACH_TYPE (MACH_SUN3)
     81#else
     82#define MACH_IS_SUN3 (0)
     83#endif
     84
     85#if !defined (CONFIG_APOLLO)
     86#  define MACH_IS_APOLLO (0)
     87#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
     88	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)              \
     89	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
     90	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
     91	|| defined(CONFIG_VIRT)
     92#  define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO)
     93#else
     94#  define MACH_APOLLO_ONLY
     95#  define MACH_IS_APOLLO (1)
     96#  define MACH_TYPE (MACH_APOLLO)
     97#endif
     98
     99#if !defined (CONFIG_MVME147)
    100#  define MACH_IS_MVME147 (0)
    101#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
    102	|| defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000)               \
    103	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
    104	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x)                 \
    105	|| defined(CONFIG_VIRT)
    106#  define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147)
    107#else
    108#  define MACH_MVME147_ONLY
    109#  define MACH_IS_MVME147 (1)
    110#  define MACH_TYPE (MACH_MVME147)
    111#endif
    112
    113#if !defined (CONFIG_MVME16x)
    114#  define MACH_IS_MVME16x (0)
    115#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
    116	|| defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000)               \
    117	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
    118	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
    119	|| defined(CONFIG_VIRT)
    120#  define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x)
    121#else
    122#  define MACH_MVME16x_ONLY
    123#  define MACH_IS_MVME16x (1)
    124#  define MACH_TYPE (MACH_MVME16x)
    125#endif
    126
    127#if !defined (CONFIG_BVME6000)
    128#  define MACH_IS_BVME6000 (0)
    129#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
    130	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
    131	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
    132	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
    133	|| defined(CONFIG_VIRT)
    134#  define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000)
    135#else
    136#  define MACH_BVME6000_ONLY
    137#  define MACH_IS_BVME6000 (1)
    138#  define MACH_TYPE (MACH_BVME6000)
    139#endif
    140
    141#if !defined (CONFIG_HP300)
    142#  define MACH_IS_HP300 (0)
    143#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
    144	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
    145	|| defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \
    146	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) \
    147	|| defined(CONFIG_VIRT)
    148#  define MACH_IS_HP300 (m68k_machtype == MACH_HP300)
    149#else
    150#  define MACH_HP300_ONLY
    151#  define MACH_IS_HP300 (1)
    152#  define MACH_TYPE (MACH_HP300)
    153#endif
    154
    155#if !defined (CONFIG_Q40)
    156#  define MACH_IS_Q40 (0)
    157#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
    158	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
    159	|| defined(CONFIG_BVME6000) || defined(CONFIG_HP300)                \
    160	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
    161	|| defined(CONFIG_VIRT)
    162#  define MACH_IS_Q40 (m68k_machtype == MACH_Q40)
    163#else
    164#  define MACH_Q40_ONLY
    165#  define MACH_IS_Q40 (1)
    166#  define MACH_TYPE (MACH_Q40)
    167#endif
    168
    169#if !defined (CONFIG_SUN3X)
    170#  define MACH_IS_SUN3X (0)
    171#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
    172	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
    173	|| defined(CONFIG_BVME6000) || defined(CONFIG_HP300)                \
    174	|| defined(CONFIG_Q40) || defined(CONFIG_MVME147)                   \
    175	|| defined(CONFIG_VIRT)
    176#  define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X)
    177#else
    178#  define CONFIG_SUN3X_ONLY
    179#  define MACH_IS_SUN3X (1)
    180#  define MACH_TYPE (MACH_SUN3X)
    181#endif
    182
    183#if !defined(CONFIG_VIRT)
    184#  define MACH_IS_VIRT (0)
    185#elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
    186	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
    187	|| defined(CONFIG_BVME6000) || defined(CONFIG_HP300)                \
    188	|| defined(CONFIG_Q40) || defined(CONFIG_SUN3X)                     \
    189	|| defined(CONFIG_MVME147)
    190#  define MACH_IS_VIRT (m68k_machtype == MACH_VIRT)
    191#else
    192#  define MACH_VIRT_ONLY
    193#  define MACH_IS_VIRT (1)
    194#  define MACH_TYPE (MACH_VIRT)
    195#endif
    196
    197#ifndef MACH_TYPE
    198#  define MACH_TYPE (m68k_machtype)
    199#endif
    200
    201
    202#ifndef __ASSEMBLY__
    203extern unsigned long m68k_cputype;
    204extern unsigned long m68k_fputype;
    205extern unsigned long m68k_mmutype;
    206#ifdef CONFIG_VME
    207extern unsigned long vme_brdtype;
    208#endif
    209
    210    /*
    211     *  m68k_is040or060 is != 0 for a '040 or higher;
    212     *  used numbers are 4 for 68040 and 6 for 68060.
    213     */
    214
    215extern int m68k_is040or060;
    216#endif /* !__ASSEMBLY__ */
    217
    218#if !defined(CONFIG_M68020)
    219#  define CPU_IS_020 (0)
    220#  define MMU_IS_851 (0)
    221#  define MMU_IS_SUN3 (0)
    222#elif defined(CONFIG_M68030) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
    223#  define CPU_IS_020 (m68k_cputype & CPU_68020)
    224#  define MMU_IS_851 (m68k_mmutype & MMU_68851)
    225#  define MMU_IS_SUN3 (0)	/* Sun3 not supported with other CPU enabled */
    226#else
    227#  define CPU_M68020_ONLY
    228#  define CPU_IS_020 (1)
    229#ifdef MACH_SUN3_ONLY
    230#  define MMU_IS_SUN3 (1)
    231#  define MMU_IS_851 (0)
    232#else
    233#  define MMU_IS_SUN3 (0)
    234#  define MMU_IS_851 (1)
    235#endif
    236#endif
    237
    238#if !defined(CONFIG_M68030)
    239#  define CPU_IS_030 (0)
    240#  define MMU_IS_030 (0)
    241#elif defined(CONFIG_M68020) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
    242#  define CPU_IS_030 (m68k_cputype & CPU_68030)
    243#  define MMU_IS_030 (m68k_mmutype & MMU_68030)
    244#else
    245#  define CPU_M68030_ONLY
    246#  define CPU_IS_030 (1)
    247#  define MMU_IS_030 (1)
    248#endif
    249
    250#if !defined(CONFIG_M68040)
    251#  define CPU_IS_040 (0)
    252#  define MMU_IS_040 (0)
    253#elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68060)
    254#  define CPU_IS_040 (m68k_cputype & CPU_68040)
    255#  define MMU_IS_040 (m68k_mmutype & MMU_68040)
    256#else
    257#  define CPU_M68040_ONLY
    258#  define CPU_IS_040 (1)
    259#  define MMU_IS_040 (1)
    260#endif
    261
    262#if !defined(CONFIG_M68060)
    263#  define CPU_IS_060 (0)
    264#  define MMU_IS_060 (0)
    265#elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68040)
    266#  define CPU_IS_060 (m68k_cputype & CPU_68060)
    267#  define MMU_IS_060 (m68k_mmutype & MMU_68060)
    268#else
    269#  define CPU_M68060_ONLY
    270#  define CPU_IS_060 (1)
    271#  define MMU_IS_060 (1)
    272#endif
    273
    274#if !defined(CONFIG_M68020) && !defined(CONFIG_M68030)
    275#  define CPU_IS_020_OR_030 (0)
    276#else
    277#  define CPU_M68020_OR_M68030
    278#  if defined(CONFIG_M68040) || defined(CONFIG_M68060)
    279#    define CPU_IS_020_OR_030 (!m68k_is040or060)
    280#  else
    281#    define CPU_M68020_OR_M68030_ONLY
    282#    define CPU_IS_020_OR_030 (1)
    283#  endif
    284#endif
    285
    286#if !defined(CONFIG_M68040) && !defined(CONFIG_M68060)
    287#  define CPU_IS_040_OR_060 (0)
    288#else
    289#  define CPU_M68040_OR_M68060
    290#  if defined(CONFIG_M68020) || defined(CONFIG_M68030)
    291#    define CPU_IS_040_OR_060 (m68k_is040or060)
    292#  else
    293#    define CPU_M68040_OR_M68060_ONLY
    294#    define CPU_IS_040_OR_060 (1)
    295#  endif
    296#endif
    297
    298#if !defined(CONFIG_COLDFIRE)
    299#  define CPU_IS_COLDFIRE (0)
    300#else
    301#  define CPU_IS_COLDFIRE (1)
    302#  define MMU_IS_COLDFIRE (1)
    303#endif
    304
    305#define CPU_TYPE (m68k_cputype)
    306
    307#ifdef CONFIG_M68KFPU_EMU
    308#  ifdef CONFIG_M68KFPU_EMU_ONLY
    309#    define FPU_IS_EMU (1)
    310#  else
    311#    define FPU_IS_EMU (!m68k_fputype)
    312#  endif
    313#else
    314#  define FPU_IS_EMU (0)
    315#endif
    316
    317
    318    /*
    319     *  Miscellaneous
    320     */
    321
    322#define NUM_MEMINFO	4
    323
    324#ifndef __ASSEMBLY__
    325struct m68k_mem_info {
    326	unsigned long addr;		/* physical address of memory chunk */
    327	unsigned long size;		/* length of memory chunk (in bytes) */
    328};
    329
    330extern int m68k_num_memory;		/* # of memory blocks found (and used) */
    331extern int m68k_realnum_memory;		/* real # of memory blocks found */
    332extern struct m68k_mem_info m68k_memory[NUM_MEMINFO];/* memory description */
    333#endif
    334
    335#endif /* _M68K_SETUP_H */