;======================================================================= ; IrisCardDefineArm.s ; IRIS カード定数(ARMASM用) ; ; Copyright (C) 2003,2004 NINTENDO Co.,Ltd. ;======================================================================= IF :DEF: _IRIS_CARD_DEFINE_H ELSE _IRIS_CARD_DEFINE_H * 1 ;----------------------------------------------------------------------- ; メモリ・マップ ;----------------------------------------------------------------------- REG_CARDMST_SPI_CNT * (REG_BASE + 0x1a0) ; カードマスター&SPIコントロール REG_CARD_MASTER_CNT * (REG_BASE + 0x1a1) ; カードマスターコントロール REG_CARD_SPI_CNT * (REG_BASE + 0x1a0) ; カードSPIコントロール REG_CARD_SPI_DATA * (REG_BASE + 0x1a2) ; データ REG_CARDCNT * (REG_BASE + 0x1a4) ; カードコントロール REG_CARD_CMD * (REG_BASE + 0x1a8) ; コマンド設定 REG_CARD_DATA * (REG_BASE + 0x100010) ; データ REG_CARD_PN_INIT * (REG_BASE + 0x1b0) ; カードPNデータ初期値 REG_CARD_PNA_INIT_L * (REG_BASE + 0x1b0) REG_CARD_PNB_INIT_L * (REG_BASE + 0x1b4) REG_CARD_PNA_INIT_H * (REG_BASE + 0x1b8) REG_CARD_PNB_INIT_H * (REG_BASE + 0x1ba) ;----------------------------------------------------------------------- ; カード マスターコントロール ;----------------------------------------------------------------------- CARDMST_SEL_DEVICE * 0x20 ; デバイス選択 CARDMST_SEL_ROM * 0x00 ; マスクROM/3Dメモリ選択 CARDMST_SEL_SPI * 0x20 ; SPI選択 CARDMST_IF_ENABLE * 0x40 ; 割り込み要求 許可 CARDMST_ENABLE * 0x80 ; カードイネーブル ;----------------------------------------------------------------------- ; カードSPI コントロール ;----------------------------------------------------------------------- CARD_SPI_SCK_MASK * 0x03 ; シフトクロック数 CARD_SPI_SCK_SHIFT * 0 CARD_SPI_SCK_4M * 0x00 ; シフトクロック 4MHz選択 CARD_SPI_SCK_2M * 0x01 ; 2MHz選択 CARD_SPI_SCK_1M * 0x02 ; 1MHz選択 CARD_SPI_SCK_524K * 0x03 ; 524KHz選択 CARD_SPI_INV_CS * 0x40 ; 通信終了時に/CSダウン維持 CARD_SPI_BUSY * 0x80 ; ビジー ;----------------------------------------------------------------------- ; カード コントロール ;----------------------------------------------------------------------- CARD_LATENCY1_CYCLES_MASK * 0x00001fff ; レイテンシ1のサイクル数 CARD_LATENCY2_CYCLES_MASK * 0x003f0000 ; レイテンシ2のサイクル数 CARD_PAGE_COUNT_MASK * 0x07000000 ; ページ数 CARD_LATENCY1_CYCLES_SHIFT * 0 CARD_LATENCY2_CYCLES_SHIFT * 16 CARD_PAGE_COUNT_SHIFT * 24 CARD_DATA_SCRAMBLE_ON * 0x00002000 ; データスクランブル ON CARD_SCRAMBLE_UNIT_ON * 0x00004000 ; スクランブル回路 ON CARD_INIT_SCRAMBLE_PN * 0x00008000 ; スクランブルPNデータ初期化 CARD_CMD_SCRAMBLE_ON * 0x00400000 ; コマンドスクランブル ON CARD_DATA_READY * 0x00800000 ; データ レディ CARD_0_PAGE * 0x00000000 ; 0ページ CARD_1_PAGE * 0x01000000 ; 1ページ CARD_2_PAGES * 0x02000000 ; 2ページ CARD_4_PAGES * 0x03000000 ; 4ページ CARD_8_PAGES * 0x04000000 ; 8ページ CARD_16_PAGES * 0x05000000 ; 16ページ CARD_32_PAGES * 0x06000000 ; 32ページ CARD_STATUS * 0x07000000 ; ステータスリード CARD_CLOCK_TYPE * 0x08000000 ; クロック タイプ CARD_CLOCK_150NS * 0x00000000 ; クロックサイクル 150ns CARD_CLOCK_240NS * 0x08000000 ; 240ns CARD_CLOCK_IN_LATENCY * 0x10000000 ; レイテンシ期間にクロック供給 CARD_RESET_LO * 0x00000000 ; リセット信号レベル Lo CARD_RESET_HI * 0x20000000 ; Hi CARD_ACCESS_MODE * 0x40000000 ; アクセス モード CARD_READ_MODE * 0x00000000 ; リードモード CARD_WRITE_MODE * 0x40000000 ; ライトモード CARD_START * 0x80000000 ; スタート ; 構造体メンバ用定数 ST_CARD_0_PAGE * 0 ; 0ページ ST_CARD_1_PAGE * 1 ; 1ページ ST_CARD_2_PAGES * 2 ; 2ページ ST_CARD_4_PAGES * 3 ; 4ページ ST_CARD_8_PAGES * 4 ; 8ページ ST_CARD_16_PAGES * 5 ; 16ページ ST_CARD_32_PAGES * 6 ; 32ページ ST_CARD_STATUS * 7 ; ステータスリード ST_CARD_CLOCK_150NS * 0 ; クロックサイクル 150ns ST_CARD_CLOCK_240NS * 1 ; 240ns ST_CARD_READ_MODE * 0 ; リードモード ST_CARD_WRITE_MODE * 1 ; ライトモード ;----------------------------------------------------------------------- ; マスクROMコマンド ;----------------------------------------------------------------------- ; NORMALモード MROMOP_N_READ_ID * 0x90000000 ; ID読み込み MROMOP_N_READ_HEADER * 0x00000000 ; ヘッダセグメント読み込み MROMOP_N_CHANGE_SECURE * 0x3c000000 ; SECUREモードへ遷移 MROMOP_N_READ_ID_PAD_L * 0xffffffff MROMOP_N_READ_ID_PAD_H * 0x00ffffff MROMOP_N_READ_HEADER_PAD_L * 0xffffffff MROMOP_N_READ_HEADER_PAD_H * 0x00ffffff MROMOP_N_CHANGE_SECURE_PAD_L * 0xf00000ff MROMOP_N_CHANGE_SECURE_PAD_H * 0x00000000 ; SECUREモード MROMOP_S_READ_ID * 0x10000000 ; ID読み込み MROMOP_S_READ_SEGMENT * 0x20000000 ; 暗号セグメント読み込み MROMOP_S_PNG_ON * 0x40000000 ; PNジェネレータ ON MROMOP_S_CHANGE_GAME * 0xa0000000 ; GAMEモードへ遷移 MROMOP_S_READ_ID_PAD_L * 0x00000000 MROMOP_S_READ_ID_PAD_H * 0x0ffff000 MROMOP_S_PNG_ON_PAD_L * 0x00000000 MROMOP_S_PNG_ON_PAD_H * 0x0ffff000 MROMOP_S_CHANGE_GAME_PAD_L * 0xffffffff MROMOP_S_CHANGE_GAME_PAD_H * 0x0fffffff ; GAMEモード MROMOP_G_READ_PAGE * 0xb7000000 ; ページ読み込み MROMOP_G_READ_PAGE_PAD_L * 0x00ffffff MROMOP_G_READ_PAGE_PAD_H * 0x00f00000 MROMOP_G_READ_PAGE_MASK_L * 0x00ffffff MROMOP_G_READ_PAGE_MASK_H * 0xfffffffe MROMOP_G_READ_PAGE_ADDR_MASK * 0x000ffffe ;----------------------------------------------------------------------- ; マスクROMコマンド ;----------------------------------------------------------------------- ; NORMALモード MEM3DOP_N_READ_ID * 0x90000000 ; ID読み込み MEM3DOP_N_READ_PAGE * 0x00000000 ; ページ読み込み MEM3DOP_N_WRITE_PAGE * 0x10000000 ; ページ書き込み MEM3DOP_N_INPUT_SERIAL * 0x80000000 ; シリアルデータ入力 MEM3DOP_N_READ_STAT * 0x70000000 ; ステータス読み込み MEM3DOP_N_READ_ID_PAD_L * 0xffffffff MEM3DOP_N_READ_ID_PAD_H * 0x00ffffff MEM3DOP_N_READ_PAGE_PAD_L * 0x00000000 MEM3DOP_N_READ_PAGE_PAD_H * 0x00ffffff MEM3DOP_N_WRITE_PAGE_PAD_L * 0xffffffff MEM3DOP_N_WRITE_PAGE_PAD_H * 0x00ffffff MEM3DOP_N_INPUT_SERIAL_PAD_L * 0x00000000 MEM3DOP_N_INPUT_SERIAL_PAD_H * 0x00ffffff MEM3DOP_N_READ_STAT_PAD_L * 0xffffffff MEM3DOP_N_READ_STAT_PAD_H * 0x00ffffff ENDIF ; _IRIS_CARD_DEFINE_H END