twl_wrapsdk/include/nitro/hw/common/mmap_shared.h
nakasima 07af35779d marge from NitroSDK4.0.
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@22 4ee2a332-4b2b-5046-8439-1ba90f034370
2007-04-12 10:47:01 +00:00

328 lines
14 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*---------------------------------------------------------------------------*
Project: NitroSDK - HW - include
File: mmap_shared.h
Copyright 2003-2006 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Log: mmap_shared.h,v $
Revision 1.43 2006/08/10 00:05:10 okubata_ryoma
カートリッジの活線挿抜に関する不具合修正
Revision 1.42 2006/07/05 09:14:54 yosizaki
delete definitions of OSSystemWork. (moved to os/systemWork.h)
Revision 1.41 2006/01/18 02:11:30 kitase_hirotake
do-indent
Revision 1.40 2005/09/08 12:28:09 yasu
SDK_FROM_TOOL の判定部分に SDK_WIN32 での判定も追加
Revision 1.39 2005/07/27 07:45:30 seiki_masashi
OSSystemWork の wm_keyshare_control を wm_rssi_pool に変更
Revision 1.38 2005/06/02 10:28:11 terui
OSSystemWork構造体内のfile_control及びis_reservedメンバを統合してrom_headerメンバに変名
Revision 1.37 2005/05/20 03:10:53 yosizaki
add HW_CARD_ROM_HEADER, HW_DOWNLOAD_PARAMETER.
Revision 1.36 2005/02/28 05:26:01 yosizaki
do-indent.
Revision 1.35 2004/12/02 00:26:02 yada
add autoload sync
Revision 1.34 2004/11/22 01:14:51 yada
add HW_ROM_BASE_OFFSET_BUF
Revision 1.33 2004/09/01 04:19:11 yada
add HW_RESET_PARAMETER_BUF
Revision 1.32 2004/08/17 04:09:56 yada
add some definition to detect debugger correctly
Revision 1.31 2004/08/16 08:16:16 yada
HW_CHECK_DEBUGGER_BUF definition is moved to mmap_shared.h header
Revision 1.30 2004/08/16 08:08:06 yada
add HW_BOOT_CHECK_INFO_BUF and HW_CTRDG_MODULE_INFO_BUF
Revision 1.29 2004/08/10 12:12:01 yada
place VBlank count buffer in shared area
Revision 1.28 2004/08/07 00:58:46 terui
wm_controlを削除、wm_callback_control wm_keyshare_controlを追加
Revision 1.27 2004/08/03 01:36:27 terui
Add wm_control
Revision 1.26 2004/07/27 05:59:11 yada
fix OSSystemWork structure.
lowest 0x80 (increased in recent release) byte was forgotten.
Revision 1.25 2004/07/22 11:29:23 yada
shared area is expanded 0x80 byte
make HW_WM_BOOT_BUF
Revision 1.24 2004/06/15 02:10:00 yada
only add HW_DMA_CLEAR_DATA_BUF_END
Revision 1.23 2004/06/08 10:41:55 yada
only fix comment
Revision 1.22 2004/06/01 04:24:24 terui
Add mic_sampling_data.
Revision 1.21 2004/05/28 09:40:30 terui
Add mic_last_address
Revision 1.20 2004/05/24 09:54:31 yasu
move RED_RESERVED_END to (HW_MAIN_MEM + 0x007ffa00)
Revision 1.19 2004/05/21 12:11:58 yasu
Reduce the SHARED ARENA because of allocating HW_RED_RESERVED
Revision 1.18 2004/05/21 11:07:26 yada
add HW_RED_RESERVED area
Revision 1.17 2004/05/19 05:19:17 yada
add NVRAM user info area
Revision 1.16 2004/05/14 11:58:24 takano_makoto
Add #ifndef SDK_FROM_TOOL for VC or BCB.
Revision 1.15 2004/05/11 12:08:13 yada
some define names was changed,
HW_BIOS_EXCP_STACK_MAIN, HW_EXCP_VECTOR_MAIN,
HW_IS_RESERVED was deleted.
Revision 1.14 2004/05/11 01:14:33 yasu
Allocate PXI related flags on shared area
Revision 1.13 2004/05/10 08:20:19 yada
ram checker deleted, because put checker for main and sub.
Revision 1.12 2004/05/10 08:15:46 yada
HW_COMPONENT_PARAM の位置変え
Revision 1.11 2004/05/06 00:38:14 yada
add HW_IS_RESERVED
Revision 1.10 2004/05/06 00:17:13 yada
add HW_REAL_TIME_CLOCK_BUF
Revision 1.9 2004/05/04 04:11:11 terui
Change position of real time clock infromation area.
Revision 1.8 2004/05/04 02:08:50 terui
Add real time clock information area.
Revision 1.7 2004/04/30 07:37:44 yada
HW_LOCKIDFLAG_MAIN/SUB -> HW_LOCK_ID_FLAG_MAIN/SUB
Revision 1.6 2004/04/29 09:34:02 yada
put HW_LOCKID_FLAG_MAIN/SUB
Revision 1.5 2004/04/14 05:05:21 takano_makoto
Add Touch Panel Area.
Revision 1.4 2004/04/07 02:03:17 yada
fix header comment
Revision 1.3 2004/03/15 11:02:15 yada
インクルードガード名修正
Revision 1.2 2004/03/12 12:11:10 yada
only arrange tab
Revision 1.1 2004/02/18 07:51:36 yada
mmap_shared.h を A7/9共通に
Revision 1.5 2004/02/18 01:24:57 yada
XYボタン情報領域を追加
Revision 1.4 2004/02/17 06:51:02 yada
より直感的な表記へ変更
Revision 1.3 2004/02/14 06:57:48 yasu
add HW_COMPONENT_PARAM
Revision 1.2 2004/02/13 10:39:58 yada
ARENAを個から個にしてインフォエリア拡大
Revision 1.1 2004/02/13 01:52:31 yada
ARM7用に追加 (temporary?)
Revision 1.11 2004/02/12 10:56:04 yasu
new location of include files ARM9/ARM7
Revision 1.10 2004/02/05 07:09:03 yasu
change SDK prefix iris -> nitro
Revision 1.9 2004/01/19 02:29:10 yada
systemWork を 0x200→0x280と増やした。
それに伴いメンバのオフセットが悉く変更に。
Revision 1.8 2004/01/17 11:43:29 yada
アリーナ情報位置変更につき
Revision 1.7 2004/01/16 11:49:18 yada
リザーブ領域を追加
Revision 1.6 2004/01/16 04:13:19 yada
アリーナ定義修正
Revision 1.5 2004/01/15 12:14:13 yada
SystemWork にアリーナ構造体を取るようにした
Revision 1.4 2004/01/07 01:41:34 yada
arena用のデフォルトLo/Hi値定義
Revision 1.3 2003/12/25 07:30:42 yada
型ルール統一による変更
Revision 1.2 2003/12/22 13:38:04 yasu
OS_GetSystemWrokをマクロに OS_LockWord を struct タグでアクセスするよう変更
Revision 1.1 2003/12/17 06:05:39 yasu
mmap_reserved.h を mmap_tcm.h と mmap_shared.h に分割
$NoKeywords: $
*---------------------------------------------------------------------------*/
#ifndef NITRO_HW_COMMON_MMAP_SHARED_H_
#define NITRO_HW_COMMON_MMAP_SHARED_H_
#ifdef __cplusplus
extern "C" {
#endif
//----------------------------------------------------------------------
// MEMORY MAP of SYSTEM SHARED AREA
//----------------------------------------------------------------------
//
#define HW_RED_RESERVED (HW_MAIN_MEM_EX_END - 0x800) // maybe change later
#define HW_RED_RESERVED_END (HW_RED_RESERVED + HW_RED_RESERVED_SIZE)
#define HW_RED_RESERVED_SIZE 0x200
/* original ROM-header of NITRO-CARD for downloaded program */
#define HW_CARD_ROM_HEADER_SIZE 0x160
/* maximun size of parameters for downloaded program */
#define HW_DOWNLOAD_PARAMETER_SIZE 0x20
//---- default address for shared memory arena
#define HW_SHARED_ARENA_LO_DEFAULT HW_MAIN_MEM_SHARED
#ifdef HW_RED_RESERVED
# define HW_SHARED_ARENA_HI_DEFAULT (HW_RED_RESERVED - HW_CARD_ROM_HEADER_SIZE - HW_DOWNLOAD_PARAMETER_SIZE)
#else
# define HW_SHARED_ARENA_HI_DEFAULT (HW_MAIN_MEM_SYSTEM - HW_CARD_ROM_HEADER_SIZE - HW_DOWNLOAD_PARAMETER_SIZE)
#endif
// 0x027ffa00-0x027ffa7f:(128byte):UNUSED
/* 0x027ffa80-0x027ffbdf:(352byte): original ROM-header */
#define HW_CARD_ROM_HEADER (HW_MAIN_MEM + 0x00fffa80)
/* 0x027ffbe0-0x027ffbff:( 32byte): parameters for downloaded program */
#define HW_DOWNLOAD_PARAMETER (HW_MAIN_MEM + 0x00fffbe0)
//-------------------------------- MainMemory shared area
#define HW_MAIN_MEM_SYSTEM_SIZE 0x400
#define HW_MAIN_MEM_SYSTEM (HW_MAIN_MEM_EX_END - 0x400)
#define HW_BOOT_CHECK_INFO_BUF (HW_MAIN_MEM_SYSTEM + 0x000) // Boot check info (END-0x400)
#define HW_BOOT_CHECK_INFO_BUF_END (HW_MAIN_MEM_SYSTEM + 0x020) // (END-0x3e0)
#define HW_RESET_PARAMETER_BUF (HW_MAIN_MEM_SYSTEM + 0x020) // reset parameter (END-0x3e0)
// 0x027ffc24-0x027ffc2b:(8byte):UNUSED
#define HW_ROM_BASE_OFFSET_BUF (HW_MAIN_MEM_SYSTEM + 0x02c) // ROM offset of own program (END-0x3d4)
#define HW_ROM_BASE_OFFSET_BUF_END (HW_MAIN_MEM_SYSTEM + 0x030) // (END-0x3d0)
#define HW_CTRDG_MODULE_INFO_BUF (HW_MAIN_MEM_SYSTEM + 0x030) // Cartridge module info (END-0x3d0)
#define HW_CTRDG_MODULE_INFO_BUF_END (HW_MAIN_MEM_SYSTEM + 0x03c) // (END-0x3c4)
#define HW_VBLANK_COUNT_BUF (HW_MAIN_MEM_SYSTEM + 0x03c) // VBlank counter (END-0x3c4)
#define HW_WM_BOOT_BUF (HW_MAIN_MEM_SYSTEM + 0x040) // WM buffer for Multi-Boot (END-0x3c0)
#define HW_WM_BOOT_BUF_END (HW_MAIN_MEM_SYSTEM + 0x080) // (END-0x380)
#define HW_NVRAM_USER_INFO (HW_MAIN_MEM_SYSTEM + 0x080) // NVRAM user info (END-0x380)
#define HW_NVRAM_USER_INFO_END (HW_MAIN_MEM_SYSTEM + 0x180) // (END-0x280)
#define HW_BIOS_EXCP_STACK_MAIN (HW_MAIN_MEM_SYSTEM + 0x180) // MAINPデバッガモニタ例外ハンドラ (END-0x280)
#define HW_BIOS_EXCP_STACK_MAIN_END (HW_MAIN_MEM_SYSTEM + 0x19c) // (END-0x264)
#define HW_EXCP_VECTOR_MAIN (HW_MAIN_MEM_SYSTEM + 0x19c) // MAINP用HW_EXCP_VECTOR_BUF (END-0x264)
#define HW_ARENA_INFO_BUF (HW_MAIN_MEM_SYSTEM + 0x1a0) // アリーナ情報構造体(27F_FDA027F_FDE7) (END-0x260)
#define HW_REAL_TIME_CLOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x1e8) // RTC
#define HW_DMA_CLEAR_DATA_BUF (HW_MAIN_MEM_SYSTEM + 0x1f0) // DMAクリアデータ・バッファ (END-0x210)
#define HW_DMA_CLEAR_DATA_BUF_END (HW_MAIN_MEM_SYSTEM + 0x200) // (この領域は ARM9-TEG にのみ使用する)
#define HW_ROM_HEADER_BUF (HW_MAIN_MEM_SYSTEM + 0x200) // ROM内登録エリアデータ・バッファ (END-0x200)
#define HW_ROM_HEADER_BUF_END (HW_MAIN_MEM_SYSTEM + 0x360) // (END-0x0a0)
#define HW_ISD_RESERVED (HW_MAIN_MEM_SYSTEM + 0x360) // IS DEBUGGER Reserved (END-0xa0)
#define HW_ISD_RESERVED_END (HW_MAIN_MEM_SYSTEM + 0x380) // (END-0x80)
#define HW_PXI_SIGNAL_PARAM_ARM9 (HW_MAIN_MEM_SYSTEM + 0x380) // PXI Signal Param for ARM9
#define HW_PXI_SIGNAL_PARAM_ARM7 (HW_MAIN_MEM_SYSTEM + 0x384) // PXI Signal Param for ARM7
#define HW_PXI_HANDLE_CHECKER_ARM9 (HW_MAIN_MEM_SYSTEM + 0x388) // PXI Handle Checker for ARM9
#define HW_PXI_HANDLE_CHECKER_ARM7 (HW_MAIN_MEM_SYSTEM + 0x38c) // PXI Handle Checker for ARM7
#define HW_MIC_LAST_ADDRESS (HW_MAIN_MEM_SYSTEM + 0x390) // MIC 最新サンプリングデータ格納アドレス
#define HW_MIC_SAMPLING_DATA (HW_MAIN_MEM_SYSTEM + 0x394) // MIC 単体サンプリング結果
#define HW_WM_CALLBACK_CONTROL (HW_MAIN_MEM_SYSTEM + 0x396) // WM コールバック同期用パラメータ
#define HW_WM_RSSI_POOL (HW_MAIN_MEM_SYSTEM + 0x398) // WM 受信強度による乱数源
#define HW_SET_CTRDG_MODULE_INFO_ONCE (HW_MAIN_MEM_SYSTEM + 0x39a) // set ctrdg module info flag
#define HW_IS_CTRDG_EXIST (HW_MAIN_MEM_SYSTEM + 0x39b) // ctrdg exist flag
#define HW_COMPONENT_PARAM (HW_MAIN_MEM_SYSTEM + 0x39c) // Component 同期用パラメータ
#define HW_THREADINFO_MAIN (HW_MAIN_MEM_SYSTEM + 0x3a0) // ThreadInfo for Main processor
#define HW_THREADINFO_SUB (HW_MAIN_MEM_SYSTEM + 0x3a4) // ThreadInfo for Sub processor
#define HW_BUTTON_XY_BUF (HW_MAIN_MEM_SYSTEM + 0x3a8) // buffer for X and Y button
#define HW_TOUCHPANEL_BUF (HW_MAIN_MEM_SYSTEM + 0x3aa) // buffer for touch panel
#define HW_AUTOLOAD_SYNC_BUF (HW_MAIN_MEM_SYSTEM + 0x3ae) // buffer for autoload sync
#define HW_LOCK_ID_FLAG_MAIN (HW_MAIN_MEM_SYSTEM + 0x3b0) // lockID flag for Main processor
#define HW_LOCK_ID_FLAG_SUB (HW_MAIN_MEM_SYSTEM + 0x3b8) // lockID flag for Sub processor
// SpinLock Mutex
#define HW_VRAM_C_LOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x3c0) // VRAM-C・ロックバッファ (END-0x40)
#define HW_VRAM_D_LOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x3c8) // VRAM-D・ロックバッファ (END-0x38)
#define HW_WRAM_BLOCK0_LOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x3d0) // CPU内部ワークRAM・ブロック0・ロックバッファ (END-0x30)
#define HW_WRAM_BLOCK1_LOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x3d8) // CPU内部ワークRAM・ブロック1・ロックバッファ (END-0x28)
#define HW_CARD_LOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x3e0) // カード・ロックバッファ (END-0x20)
#define HW_CTRDG_LOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x3e8) // カートリッジ・ロックバッファ (END-0x18)
#define HW_INIT_LOCK_BUF (HW_MAIN_MEM_SYSTEM + 0x3f0) // 初期化ロックバッファ (END-0x10)
#define HW_MMEMCHECKER_MAIN (HW_MAIN_MEM_SYSTEM + 0x3f8) // MainMomory Size Checker for Main processor (END-8)
#define HW_MMEMCHECKER_SUB (HW_MAIN_MEM_SYSTEM + 0x3fa) // MainMomory Size Checker for Sub processor (END-6)
#define HW_CMD_AREA (HW_MAIN_MEM_SYSTEM + 0x3fe) // メインメモリコマンド発行エリア(使用禁止エリア)(END-2)
//--------------------------------------------------------------------
//---- Lock area
#define HW_SHARED_LOCK_BUF (HW_VRAM_C_LOCK_BUF)
#define HW_SHARED_LOCK_BUF_END (HW_INIT_LOCK_BUF + 8)
#define HW_CHECK_DEBUGGER_SW (HW_MAIN_MEM_SYSTEM + 0x010) // (u16)debugger check switch. if 0 check buf1, else buf2.
#define HW_CHECK_DEBUGGER_BUF1 (HW_RED_RESERVED + 0x014) // (u16)debugger checker. 1 if run on debugger.
#define HW_CHECK_DEBUGGER_BUF2 (HW_MAIN_MEM_SYSTEM + 0x014) // (u16)debugger checker. 1 if run on debugger.
#ifdef __cplusplus
} /* extern "C" */
#endif
/* NITRO_HW_COMMON_MMAP_SHARED_H_ */
#endif