1 /*---------------------------------------------------------------------------* 2 Project: TwlSDK - OS - include 3 File: emulator.h 4 5 Copyright 2003-2008 Nintendo. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Date:: 2008-09-17#$ 14 $Rev: 8556 $ 15 $Author: okubata_ryoma $ 16 *---------------------------------------------------------------------------*/ 17 18 #ifndef NITRO_OS_EMULATOR_H_ 19 #define NITRO_OS_EMULATOR_H_ 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 //---- value of 'console not yet detect' 26 #define OSi_CONSOLE_NOT_DETECT 0xffffffff 27 28 //---- running program environment 29 #define OS_CONSOLE_MASK 0xff000000 30 #define OS_CONSOLE_TWL 0x01000000 // classified by OS_CONSOLE_TWLTYPE_xxx 31 #define OS_CONSOLE_TWLDEBUGGER 0x02000000 // classified by OS_CONSOLE_BOARD_xxx 32 #define OS_CONSOLE_RESERVE1 0x04000000 33 #define OS_CONSOLE_RESERVE2 0x08000000 34 #define OS_CONSOLE_ENSATA 0x10000000 35 #define OS_CONSOLE_ISEMULATOR 0x20000000 36 #define OS_CONSOLE_ISDEBUGGER 0x40000000 37 #define OS_CONSOLE_NITRO 0x80000000 38 39 //---- classified by the running environment 40 #define OS_CONSOLE_BOARD_MASK 0x00300000 41 #define OS_CONSOLE_BOARD_A9_A7 0x00100000 42 #define OS_CONSOLE_BOARD_A9 0x00200000 43 44 #define OS_CONSOLE_TWLTYPE_MASK 0x00c00000 45 #define OS_CONSOLE_TWLTYPE_RETAIL 0x00800000 46 #define OS_CONSOLE_TWLTYPE_DEV 0x00400000 47 48 #define OS_CONSOLE_EVALUATE 0x00080000 49 50 //---- device 51 #define OS_CONSOLE_DEV_MASK 0x000fc000 52 #define OS_CONSOLE_DEV_CARTRIDGE 0x00010000 53 #define OS_CONSOLE_DEV_CARD 0x00020000 54 #define OS_CONSOLE_DEV_NAND 0x00040000 55 #define OS_CONSOLE_DEV_SDCARD 0x00080000 56 #define OS_CONSOLE_DEV_MEMORY 0x00008000 57 #define OS_CONSOLE_DEV_DOWNLOAD 0x00004000 58 59 //---- main memory size 60 #define OS_CONSOLE_SIZE_MASK 0x0000000f 61 #define OS_CONSOLE_SIZE_4MB 0x00000001 62 #define OS_CONSOLE_SIZE_8MB 0x00000002 63 #define OS_CONSOLE_SIZE_16MB 0x00000004 64 #define OS_CONSOLE_SIZE_32MB 0x00000008 65 66 67 //---- for ARM7 memory checker in crt0 68 #define OS_CHIPTYPE_DEBUGGER_ADDR (HW_SYS_CONF_BUF+4) 69 #define OS_CHIPTYPE_DEBUGGER_SIZE 1 70 #define OS_CHIPTYPE_DEBUGGER_MASK 0x3 71 72 #define OS_CHIPTYPE_JTAG_ADDR (HW_SYS_CONF_BUF+5) 73 #define OS_CHIPTYPE_JTAG_SIZE 1 74 #define OS_CHIPTYPE_JTAG_MASK 0x2 75 76 #define OS_CHIPTYPE_SMX_ADDR (HW_MMEMCHECKER_SUB) 77 #define OS_CHIPTYPE_SMX_SIZE 2 78 #define OS_CHIPTYPE_SMX_MASK 0x8000 79 80 typedef enum 81 { 82 OS_CHIPTYPE_TWL = 0, 83 OS_CHIPTYPE_DEBUGGER_1 = 1, 84 OS_CHIPTYPE_DEBUGGER_2 = 2, 85 OS_CHIPTYPE_EVALUATE = 3 86 } 87 OSChipType; 88 89 90 /*---------------------------------------------------------------------------* 91 Name: OS_GetConsoleType 92 93 Description: Get console type value 94 This function returns a fixed value on FINALROM 95 96 Arguments: None 97 98 Returns: console type value 99 *---------------------------------------------------------------------------*/ 100 u32 OS_GetConsoleType(void); 101 102 /*---------------------------------------------------------------------------* 103 Name: OS_GetRunningConsoleType 104 105 Description: Get console type value 106 This function returns a true value in spite of on FINALROM 107 108 Arguments: None 109 110 Returns: console type value. 111 *---------------------------------------------------------------------------*/ 112 u32 OS_GetRunningConsoleType(void); 113 114 /*---------------------------------------------------------------------------* 115 Name: OS_IsRunOnEmulator 116 117 Description: Detect software emulator Ensata 118 119 Arguments: None 120 121 Returns: TRUE : running on Ensata 122 FALSE : not running on Ensata 123 *---------------------------------------------------------------------------*/ 124 BOOL OS_IsRunOnEmulator(void); 125 126 /*---------------------------------------------------------------------------* 127 Name: OS_IsRunOnDebugger 128 129 Description: Detect running on debugger. 130 131 Arguments: None 132 133 Returns: TRUE : running on debugger 134 FALSE : not running on debugger 135 *---------------------------------------------------------------------------*/ 136 BOOL OS_IsRunOnDebugger(void); 137 138 /*---------------------------------------------------------------------------* 139 Name: OS_IsRunOnTWL 140 141 Description: check running platform 142 143 This function is used in only Nitro-TWL hybrid mode. 144 (In Nitro mode and TWL limited mode, treated as constant) 145 146 Arguments: None 147 148 Returns: TRUE : running on TWL 149 FALSE : running on NITRO 150 *---------------------------------------------------------------------------*/ 151 #ifdef SDK_NITRO 152 #define OS_IsRunOnTwl() (FALSE) 153 #else 154 #ifdef SDK_TWLLTD 155 #define OS_IsRunOnTwl() (TRUE) 156 #else 157 BOOL OS_IsRunOnTwl(void); 158 #endif 159 #endif 160 161 //---------------------------------------------------------------- 162 //---- for debug 163 #ifndef SDK_FINALROM 164 void OS_SetConsoleType(u32 type); 165 #else 166 #define OS_SetConsoleType(x) ((void)0) 167 #endif 168 169 //---- for internal use 170 u32 OSi_DetectDebugger(void); 171 u32 OSi_DetectEmulator(void); 172 173 #ifndef SDK_TWLLTD 174 BOOL OSi_IsNitroModeOnTwl(void); 175 #else 176 #define OSi_IsNitroModeOnTwl() (FALSE) 177 #endif 178 179 180 #ifdef __cplusplus 181 } /* extern "C" */ 182 #endif 183 184 /* NITRO_OS_EMULATOR_H_ */ 185 #endif 186