mirror of
https://github.com/rvtr/ntr_bootrom.git
synced 2025-10-31 07:11:11 -04:00
191 lines
7.8 KiB
ArmAsm
191 lines
7.8 KiB
ArmAsm
;=======================================================================
|
||
; 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
|
||
|