ntr_bootrom/trunk/IrisMainp/include/private/IrisCardDefineArm.s

191 lines
7.8 KiB
ArmAsm
Raw Permalink 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.

;=======================================================================
; 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 ; データスクランブル
CARD_SCRAMBLE_UNIT_ON * 0x00004000 ; スクランブル回路
CARD_INIT_SCRAMBLE_PN * 0x00008000 ; スクランブルPNデータ初期化
CARD_CMD_SCRAMBLE_ON * 0x00400000 ; コマンドスクランブル
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 ; クロックサイクル
CARD_CLOCK_240NS * 0x08000000 ;
CARD_CLOCK_IN_LATENCY * 0x10000000 ; レイテンシ期間にクロック供給
CARD_RESET_LO * 0x00000000 ; リセット信号レベル
CARD_RESET_HI * 0x20000000 ;
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 ; クロックサイクル
ST_CARD_CLOCK_240NS * 1 ;
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ジェネレータ
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