linux-headers/arch/e2k/include/uapi/asm/bootinfo.h

212 lines
5.4 KiB
C

#ifndef _UAPI_E2K_BOOTINFO_H_
#define _UAPI_E2K_BOOTINFO_H_
/*
* The mother board types
*/
#define MB_TYPE_MIN 0
#define MB_TYPE_E2K_BASE 0x00
#define MB_TYPE_ES2_BASE (MB_TYPE_E2K_BASE + 20)
#define MB_TYPE_E1CP_BASE (MB_TYPE_E2K_BASE + 50)
#define MB_TYPE_ES4_BASE (MB_TYPE_E2K_BASE + 70)
#define MB_TYPE_E8C_BASE (MB_TYPE_E2K_BASE + 80)
#define MB_TYPE_MAX a0
#define MB_TYPE_ES2_PLATO1 (MB_TYPE_ES2_BASE + 0)
#define MB_TYPE_ES2_BUTTERFLY (MB_TYPE_ES2_BASE + 1)
#define MB_TYPE_ES2_RTC_FM33256 (MB_TYPE_ES2_BASE + 2) /* FM332aa56 rtc */
#define MB_TYPE_ES2_RTC_CY14B101P (MB_TYPE_ES2_BASE + 3) /* CY14B101P rtc */
#define MB_TYPE_ES2_APORIA (MB_TYPE_ES2_BASE + 5) /* APORIA */
#define MB_TYPE_ES2_NT (MB_TYPE_ES2_BASE + 6) /* Nosimyi terminal */
/* Use this when CLKRs are not synchronized across the system */
#define MB_TYPE_ES2_RTC_CY14B101P_MULTICLOCK (MB_TYPE_ES2_BASE + 7)
#define MB_TYPE_ES2_CUB_COM (MB_TYPE_ES2_BASE + 8)
#define MB_TYPE_ES2_MBCUB_C (MB_TYPE_ES2_BASE + 11)
#define MB_TYPE_ES2_MB3S1_C (MB_TYPE_ES2_BUTTERFLY)
#define MB_TYPE_ES2_MB3S_C_K (MB_TYPE_ES2_BASE + 14)
#define MB_TYPE_ES2_MGA3D (MB_TYPE_ES2_BASE + 15)
#define MB_TYPE_ES2_BC_M4211 (MB_TYPE_ES2_BASE + 16)
#define MB_TYPE_ES2_EL2S4 (MB_TYPE_ES2_BASE + 17)
/* By default all mb_versions > MB_TYPE_ES2_EL2S4
* have cy14b101p rt clock. If no - fix is_cy14b101p_exist()
* in arch/l/kernel/i2c-spi/core.c
*/
#define MB_TYPE_E1CP_PMC (MB_TYPE_E1CP_BASE + 0) /* E1CP with PMC */
#define MB_TYPE_E1CP_IOHUB2_RAZBRAKOVSCHIK /* IOHUB2 razbrakovschik */ \
(MB_TYPE_E1CP_BASE + 1)
#define MB_TYPE_MBE1C_PC (MB_TYPE_E1CP_BASE + 2) /* E1CP with PMC */
#define MB_TYPE_ES4_MBE2S_PC (MB_TYPE_ES4_BASE + 0)
#define MB_TYPE_ES4_PC401 (MB_TYPE_ES4_BASE + 1)
#define MB_TYPE_E8C (MB_TYPE_E8C_BASE + 0)
/*
* The cpu types
*/
#define CPU_TYPE_E2S 0x03 /* E2S */
#define CPU_TYPE_ES2_DSP 0x04 /* E2C+ */
#define CPU_TYPE_ES2_RU 0x06 /* E2C Micron */
#define CPU_TYPE_E8C 0x07 /* E8C */
#define CPU_TYPE_E1CP 0x08 /* E1C+ */
#define CPU_TYPE_E8C2 0x09 /* E8C */
#define CPU_TYPE_E12C 0xa /* E12C */
#define CPU_TYPE_E16C 0xb /* E16C */
#define CPU_TYPE_E2C3 0xc /* E2C3 */
#define CPU_TYPE_SIMUL 0x3e /* simulator */
#define CPU_TYPE_MASK 0x3f /* mask of CPU type */
#define PROC_TYPE_MASK 0xc0 /* mask of MicroProcessor type */
#define GET_CPU_TYPE(type) (((type) & CPU_TYPE_MASK) >> 0)
/*
* The cpu types names
*/
#define GET_CPU_TYPE_NAME(type_field) \
({ \
unsigned char type = GET_CPU_TYPE(type_field); \
char *name; \
\
switch (type) { \
case CPU_TYPE_E2S: \
name = "E2S"; \
break; \
case CPU_TYPE_ES2_DSP: \
name = "E2C+DSP"; \
break; \
case CPU_TYPE_ES2_RU: \
name = "E1C"; \
break; \
case CPU_TYPE_E8C: \
name = "E8C"; \
break; \
case CPU_TYPE_E1CP: \
name = "E1C+"; \
break; \
case CPU_TYPE_E8C2: \
name = "E8C2"; \
break; \
case CPU_TYPE_E12C: \
name = "E12C"; \
break; \
case CPU_TYPE_E16C: \
name = "E16C"; \
break; \
case CPU_TYPE_E2C3: \
name = "E2C3"; \
break; \
case CPU_TYPE_SIMUL: \
name = "SIMUL"; \
break; \
default: \
name = "unknown"; \
} \
\
name; \
})
/*
* The mother board types names
*/
#define GET_MB_TYPE_NAME(type) \
({ \
char *name; \
\
switch (type) { \
case MB_TYPE_ES2_MB3S1_C: \
name = "MB3S1/C"; \
break; \
case MB_TYPE_ES2_MBCUB_C: \
case MB_TYPE_ES2_PLATO1: \
name = "MBKUB/C"; \
break; \
case MB_TYPE_ES2_MB3S_C_K: \
name = "MB3S/C-K"; \
break; \
case MB_TYPE_ES2_NT: \
name = "NT-ELBRUS-S"; \
break; \
case MB_TYPE_ES2_CUB_COM: \
name = "CUB-COM"; \
break; \
case MB_TYPE_ES2_RTC_FM33256: \
name = "MONOCUB+FM33256"; \
break; \
case MB_TYPE_ES2_RTC_CY14B101P: \
name = "MONOCUB"; \
break; \
case MB_TYPE_ES2_RTC_CY14B101P_MULTICLOCK: \
name = "MP1C1/V"; \
break; \
case MB_TYPE_ES2_EL2S4: \
name = "EL2S4"; \
break; \
case MB_TYPE_ES2_MGA3D: \
name = "MGA3D"; \
break; \
case MB_TYPE_ES2_BC_M4211: \
name = "BC-M4211"; \
break; \
case MB_TYPE_E1CP_PMC: \
name = "E1C+ PMC"; \
break; \
case MB_TYPE_E1CP_IOHUB2_RAZBRAKOVSCHIK: \
name = "IOHUB2 razbrakovschik"; \
break; \
case MB_TYPE_MBE1C_PC: \
name = "MBE1C-PC"; \
break; \
case MB_TYPE_ES4_MBE2S_PC: \
name = "MBE2S-PC"; \
break; \
case MB_TYPE_ES4_PC401: \
name = "PC-401"; \
break; \
case MB_TYPE_E8C: \
name = "E8C"; \
break; \
default: \
name = "unknown"; \
} \
\
name; \
})
#define GET_MB_USED_IN(type) \
({ \
char *name; \
\
switch (type) { \
case MB_TYPE_ES2_PLATO1: \
name = "Plato with softreset error"; \
break; \
case MB_TYPE_ES2_MBCUB_C: \
name = "APM VK-2, APM VK-120, BV632, BV631"; \
break; \
case MB_TYPE_ES2_MB3S1_C: \
name = "ELBRUS-3C-CVS, ELBRUS-3C"; \
break; \
case MB_TYPE_ES2_RTC_FM33256: \
name = "MONOCUB+FM33256"; \
break; \
case MB_TYPE_ES2_RTC_CY14B101P: \
name = "MONOCUB-M, MONOCUB-PC"; \
break; \
default: \
name = NULL; \
} \
\
name; \
})
#endif /* _UAPI_E2K_BOOTINFO_H_ */