mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
最新のTwlSDKに合わせた
重複していた定義の削除とfrom_brom.hでのsdmc.hの参照停止 FinalROM版でのmakerom.TWLのエラー防止 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@35 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
6b971d2023
commit
f210f9d31a
@ -17,12 +17,12 @@
|
|||||||
|
|
||||||
#include <symbols.h>
|
#include <symbols.h>
|
||||||
|
|
||||||
#include <firm/fatfs.h>
|
#include <firm.h>
|
||||||
#include <firm/sdmc.h>
|
|
||||||
#include <firm/format/format_rom.h>
|
|
||||||
#include <twl/aes.h>
|
|
||||||
#include <twl/aes/ARM7/lo.h>
|
|
||||||
#include <rtfs.h>
|
#include <rtfs.h>
|
||||||
|
#include <devices/sdif_reg.h>
|
||||||
|
#include <devices/sdif_ip.h>
|
||||||
|
#include <devices/sdmc_config.h>
|
||||||
|
#include <twl/devices/sdmc/ARM7/sdmc.h>
|
||||||
|
|
||||||
extern u32 NAND_FAT_PARTITION_COUNT;
|
extern u32 NAND_FAT_PARTITION_COUNT;
|
||||||
|
|
||||||
@ -442,7 +442,7 @@ BOOL FATFS_InitFIRM( void* nandContext )
|
|||||||
SDNandContext = (SDPortContext*)nandContext;
|
SDNandContext = (SDPortContext*)nandContext;
|
||||||
|
|
||||||
/* SDドライバ初期化 */
|
/* SDドライバ初期化 */
|
||||||
if ( FATFSi_sdmcInit( SDMC_NOUSE_DMA, NULL, NULL ) != SDMC_NORMAL )
|
if ( FATFSi_sdmcInit( SDMC_NOUSE_DMA ) != SDMC_NORMAL )
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,12 +17,10 @@
|
|||||||
|
|
||||||
#include <symbols.h>
|
#include <symbols.h>
|
||||||
|
|
||||||
#include <firm/fatfs.h>
|
#include <firm.h>
|
||||||
#include <firm/sdmc.h>
|
|
||||||
#include <firm/format/format_rom.h>
|
#include <firm/format/format_rom.h>
|
||||||
#include <twl/aes.h>
|
|
||||||
#include <twl/aes/ARM7/lo.h>
|
|
||||||
#include <rtfs.h>
|
#include <rtfs.h>
|
||||||
|
#include <devices/sdif_reg.h>
|
||||||
|
|
||||||
#define PXI_FIFO_TAG_DATA PXI_FIFO_TAG_USER_0
|
#define PXI_FIFO_TAG_DATA PXI_FIFO_TAG_USER_0
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include <firm/pm.h>
|
#include <firm/pm.h>
|
||||||
|
#include <twl/spi/common/pm_common.h>
|
||||||
|
|
||||||
#define OS_MSEC_TO_CPUCYC( msec ) ((u32)( ((HW_CPU_CLOCK/1000) * (u32)(msec)) ))
|
#define OS_MSEC_TO_CPUCYC( msec ) ((u32)( ((HW_CPU_CLOCK/1000) * (u32)(msec)) ))
|
||||||
|
|
||||||
@ -31,30 +32,30 @@
|
|||||||
void PM_InitFIRM( void )
|
void PM_InitFIRM( void )
|
||||||
{
|
{
|
||||||
// LED
|
// LED
|
||||||
PMi_ResetFlags( REG_PMIC_LED_CTL_ADDR, PMIC_LED_CTL_L12_AT_BLK | PMIC_LED_CTL_L12_BLK_BY_SLP );
|
PMi_ResetFlags( REG_PMIC_LED_CTL_ADDR, PMIC_LED_CTL_AUTO_BLINK | PMIC_LED_CTL_BLINK_BY_SLEEP );
|
||||||
PMi_SetParams( REG_PMIC_LED12_B4_ADDR,
|
PMi_SetParams( REG_PMIC_LVL4_BRT_ADDR,
|
||||||
PMIC_LED12_B4_L1_100 | PMIC_LED12_B4_L2_100,
|
PMIC_LED_1_BRT_LEVEL_4_100 | PMIC_LED_2_BRT_LEVEL_4_100,
|
||||||
PMIC_LED12_B4_L1_MASK | PMIC_LED12_B4_L2_MASK
|
PMIC_LVL4_BRT_LED_1_MASK | PMIC_LVL4_BRT_LED_2_MASK
|
||||||
);
|
);
|
||||||
PMi_SetParams( REG_PMIC_LED12_B3_ADDR,
|
PMi_SetParams( REG_PMIC_LVL3_BRT_ADDR,
|
||||||
PMIC_LED12_B3_L1_OFF | PMIC_LED12_B3_L2_100,
|
PMIC_LED_1_BRT_LEVEL_3_OFF | PMIC_LED_2_BRT_LEVEL_3_100,
|
||||||
PMIC_LED12_B3_L1_MASK | PMIC_LED12_B3_L2_MASK
|
PMIC_LVL3_BRT_LED_1_MASK | PMIC_LVL3_BRT_LED_2_MASK
|
||||||
);
|
);
|
||||||
PMi_SetParams( REG_PMIC_LED12_B2_ADDR,
|
PMi_SetParams( REG_PMIC_LVL2_BRT_ADDR,
|
||||||
PMIC_LED12_B2_L1_100 | PMIC_LED12_B2_L2_OFF,
|
PMIC_LED_1_BRT_LEVEL_2_100 | PMIC_LED_1_BRT_LEVEL_2_OFF,
|
||||||
PMIC_LED12_B2_L1_MASK | PMIC_LED12_B2_L2_MASK
|
PMIC_LVL2_BRT_LED_1_MASK | PMIC_LVL2_BRT_LED_2_MASK
|
||||||
);
|
);
|
||||||
PMi_SetParams( REG_PMIC_LED12_B1_ADDR,
|
PMi_SetParams( REG_PMIC_LVL1_BRT_ADDR,
|
||||||
PMIC_LED12_B1_L1_OFF | PMIC_LED12_B1_L2_OFF,
|
PMIC_LED_1_BRT_LEVEL_1_OFF | PMIC_LED_2_BRT_LEVEL_1_OFF,
|
||||||
PMIC_LED12_B1_L1_MASK | PMIC_LED12_B1_L2_MASK
|
PMIC_LVL1_BRT_LED_1_MASK | PMIC_LVL1_BRT_LED_2_MASK
|
||||||
);
|
);
|
||||||
|
|
||||||
// LCD ON
|
// LCD ON
|
||||||
PMi_SetFlags( REG_PMIC_CTL2_ADDR, PMIC_CTL2_LCD_PWR );
|
PMi_SetFlags( REG_PMIC_CTL2_ADDR, PMIC_CTL2_VDD50 );
|
||||||
|
|
||||||
// back light ON
|
// back light ON
|
||||||
PMi_SetParams( REG_PMIC_BL1_BRT_ADDR, PMIC_BL_BRT_MAX, PMIC_BL1_BRT_MASK );
|
PMi_SetParams( REG_PMIC_BL_BRT_A_ADDR, PMIC_BACKLIGHT_BRIGHT_MAX, PMIC_BL_BRT_A_MASK ); // TODO: less brightness
|
||||||
PMi_SetParams( REG_PMIC_BL2_BRT_ADDR, PMIC_BL_BRT_MAX, PMIC_BL2_BRT_MASK );
|
PMi_SetParams( REG_PMIC_BL_BRT_B_ADDR, PMIC_BACKLIGHT_BRIGHT_MAX, PMIC_BL_BRT_B_MASK ); // TODO: less brightness
|
||||||
OS_SpinWait( OS_MSEC_TO_CPUCYC( 17*2 ) );
|
OS_SpinWaitCpuCycles( OS_MSEC_TO_CPUCYC( 17*4 ) );
|
||||||
PMi_SetFlags( REG_PMIC_CTL2_ADDR, PMIC_CTL2_BKLT1 | PMIC_CTL2_BKLT2 );
|
PMi_SetFlags( REG_PMIC_CTL2_ADDR, PMIC_CTL2_BACK_LIGHT_1 | PMIC_CTL2_BACK_LIGHT_2 );
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,8 +15,6 @@
|
|||||||
$Author$
|
$Author$
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
#include <firm.h>
|
#include <firm.h>
|
||||||
#include <firm/fatfs.h>
|
|
||||||
#include <twl/fatfs.h>
|
|
||||||
#include <twl/os/ARM7/debugLED.h>
|
#include <twl/os/ARM7/debugLED.h>
|
||||||
|
|
||||||
//#define BOOT_SECURE_SRL // 本番SRLをブートするときにだけ定義する
|
//#define BOOT_SECURE_SRL // 本番SRLをブートするときにだけ定義する
|
||||||
@ -41,7 +39,7 @@
|
|||||||
|
|
||||||
static u8 fatfsHeap[FATFS_HEAP_SIZE] __attribute__ ((aligned (32)));
|
static u8 fatfsHeap[FATFS_HEAP_SIZE] __attribute__ ((aligned (32)));
|
||||||
|
|
||||||
static SDPortContext nandContext; // 一時待避用 (次に渡すならSHAREDのどこかのアドレスにする)
|
static SDPortContextData nandContext; // 一時待避用 (次に渡すならSHAREDのどこかのアドレスにする)
|
||||||
|
|
||||||
#ifndef SDK_FINALROM
|
#ifndef SDK_FINALROM
|
||||||
static u8 step = 0x80;
|
static u8 step = 0x80;
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
$Author$
|
$Author$
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
#include <firm.h>
|
#include <firm.h>
|
||||||
#include <firm/mi.h>
|
|
||||||
|
|
||||||
//#define BOOT_SECURE_SRL // 本番SRLをブートするときにだけ定義する
|
//#define BOOT_SECURE_SRL // 本番SRLをブートするときにだけ定義する
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,8 @@
|
|||||||
|
|
||||||
FIRM_TARGET = FIRM
|
FIRM_TARGET = FIRM
|
||||||
|
|
||||||
TWL_KEYSDIR = $(FIRM_ROOT)/../twl_firmware/bootrom/build/keys
|
# if you have no valid key, comment out next line
|
||||||
|
#TWL_KEYSDIR = $(FIRM_ROOT)/../twl_firmware/bootrom/build/keys
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
@ -37,6 +38,7 @@ MAKEFIRM_RSA_PRVKEY = $(TWL_KEYSDIR)/rsa/private_nand.der
|
|||||||
LDEPENDS_BIN += wram_regs/wram_regs.rbin
|
LDEPENDS_BIN += wram_regs/wram_regs.rbin
|
||||||
|
|
||||||
MAKEROM_ARM7_BASE = $(basename $(MAKEFIRM_ARM7))
|
MAKEROM_ARM7_BASE = $(basename $(MAKEFIRM_ARM7))
|
||||||
|
MAKEROM_FLAGS += -F
|
||||||
|
|
||||||
NITRO_MAKEROM = TRUE
|
NITRO_MAKEROM = TRUE
|
||||||
MAKEFIRM_FLAGS += -p
|
MAKEFIRM_FLAGS += -p
|
||||||
|
|||||||
@ -19,6 +19,9 @@
|
|||||||
|
|
||||||
FIRM_TARGET = FIRM
|
FIRM_TARGET = FIRM
|
||||||
|
|
||||||
|
# if you have no valid key, comment out next line
|
||||||
|
#TWL_KEYSDIR = $(FIRM_ROOT)/../twl_firmware/bootrom/build/keys
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -35,6 +38,7 @@ MAKEFIRM_RSA_PRVKEY = $(TWL_KEYSDIR)/rsa/private_nor.der
|
|||||||
LDEPENDS_BIN += wram_regs/wram_regs.rbin
|
LDEPENDS_BIN += wram_regs/wram_regs.rbin
|
||||||
|
|
||||||
MAKEROM_ARM7_BASE = $(basename $(MAKEFIRM_ARM7))
|
MAKEROM_ARM7_BASE = $(basename $(MAKEFIRM_ARM7))
|
||||||
|
MAKEROM_FLAGS += -F
|
||||||
|
|
||||||
NITRO_MAKEROM = TRUE
|
NITRO_MAKEROM = TRUE
|
||||||
MAKEFIRM_FLAGS += -p
|
MAKEFIRM_FLAGS += -p
|
||||||
|
|||||||
@ -19,13 +19,14 @@
|
|||||||
|
|
||||||
#include <twl.h>
|
#include <twl.h>
|
||||||
|
|
||||||
|
#include <firm/memorymap.h>
|
||||||
#include <firm/os.h>
|
#include <firm/os.h>
|
||||||
#include <firm/pxi.h>
|
#include <firm/pxi.h>
|
||||||
#include <firm/mi.h>
|
#include <firm/mi.h>
|
||||||
#include <firm/pm.h>
|
#include <firm/pm.h>
|
||||||
#include <firm/aes.h>
|
#include <firm/aes.h>
|
||||||
|
#include <firm/fatfs.h>
|
||||||
/*
|
/*
|
||||||
#include <firm/memorymap.h>
|
|
||||||
#include <firm/nvram.h>
|
#include <firm/nvram.h>
|
||||||
#include <firm/gcd.h>
|
#include <firm/gcd.h>
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,349 +0,0 @@
|
|||||||
/*
|
|
||||||
** Copyright (c) 2000-2001 Matsushita Electric Industrial Co., Ltd.
|
|
||||||
** All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** $Module SDカードアクセスモジュール・インクルード
|
|
||||||
** $Filename SD_CARD_IP.H
|
|
||||||
** $Version 1.0 版
|
|
||||||
** $Date 01/02/16
|
|
||||||
** $Log 01/02/16 rev1.0作成
|
|
||||||
** 松下電器産業(株)半導体開発本部
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __SD_CARD_IP_H__
|
|
||||||
#define __SD_CARD_IP_H__
|
|
||||||
|
|
||||||
//#define IO3 0 /* Insert Remove SW = FALSE IO3 = TRUE */
|
|
||||||
|
|
||||||
//#define MAX_SD_CLOCK_4M 0 /* MAX SD Clock 4.608MHz */
|
|
||||||
//#define MAX_SD_CLOCK_9M 1 /* MAX SD Clock 9.216MHz */
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------
|
|
||||||
ラッパーレジスタのビット制御(フラグ定義)
|
|
||||||
---------------------------------------------*/
|
|
||||||
/* SD_CNTレジスタ */
|
|
||||||
#define SDIF_CNT_USEDTC (0x0001) /* DTC使用フラグ (R/W) */
|
|
||||||
#define SDIF_CNT_USEFIFO (0x0002) /* FIFO使用フラグ (R/W) */
|
|
||||||
#define SDIF_CNT_FULL (0x0100) /* FIFO FULLフラグ (RO) */
|
|
||||||
#define SDIF_CNT_NEMP (0x0200) /* FIFO NOT EMPTYフラグ (RO) */
|
|
||||||
#define SDIF_CNT_FCLR (0x0400) /* FIFO クリアフラグ (WO) */
|
|
||||||
#define SDIF_CNT_FFIE (0x0800) /* FIFO FULLで割り込み (R/W) */
|
|
||||||
#define SDIF_CNT_FEIE (0x1000) /* FIFO EMPTYで割り込み (R/W) */
|
|
||||||
|
|
||||||
#define SDCARD_UseFifoFlag ((*SDIF_CNT) & SDIF_CNT_USEFIFO)
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
レジスタのビット制御(フラグ定義)
|
|
||||||
-------------------------------------*/
|
|
||||||
/* SD_CMDレジスタ*/
|
|
||||||
#define SD_CMD_CMD 0x0000 /* SDカードへの通常アクセス(CMD) */
|
|
||||||
#define SD_CMD_ACMD 0x0040 /* SDカードへのセキュリティアクセス(ACMD) */
|
|
||||||
|
|
||||||
/* SD_STOPレジスタ */
|
|
||||||
#define SD_STOP_STP 0x0001 /* データ転送終了を知らせる */
|
|
||||||
#define SD_STOP_SEC_ENABLE 0x0100 /* SD_SECCNTレジスタ有効(セクタカウントレジスタ) */
|
|
||||||
|
|
||||||
/* SD_SECCNTレジスタ */
|
|
||||||
#define SD_SECCNT_END 0x0000 /* SD_SECCNTレジスタ カウントチェック */
|
|
||||||
|
|
||||||
/* SD_SIZEレジスタ */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_1B 0x0001 /* SDカード転送データサイズ 1Bytes */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_2B 0x0002 /* SDカード転送データサイズ 2Bytes */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_4B 0x0004 /* SDカード転送データサイズ 4Bytes */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_8B 0x0008 /* SDカード転送データサイズ 8Bytes (SCR) */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_16B 0x0010 /* SDカード転送データサイズ 16Bytes */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_32B 0x0020 /* SDカード転送データサイズ 32Bytes */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_64B 0x0040 /* SDカード転送データサイズ 64Bytes (SD_Status) */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_128B 0x0080 /* SDカード転送データサイズ 128Bytes */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_256B 0x0100 /* SDカード転送データサイズ 256Bytes */
|
|
||||||
#define SD_SIZE_DATA_LENGTH_512B 0x0200 /* SDカード転送データサイズ 512Bytes (データ) */
|
|
||||||
|
|
||||||
/* SD_OPTIONレジスタ */
|
|
||||||
#define SD_OPTION_WIDTH_1BIT 0x8000 /* ビット幅の選択 1bit幅 */
|
|
||||||
#define SD_OPTION_MSEL_C2NOUSE 0x4000 /* C2モジュール未使用 */
|
|
||||||
#define SD_CD_DETECT_TIME 0xFFF0 /* CD 検出タイムだけをクリアするためのマスク */
|
|
||||||
|
|
||||||
/* SD_INFO2レジスタ */
|
|
||||||
#define SD_INFO2_ERR_ILA 0x8000 /* イリーガルアクセスエラー */
|
|
||||||
#define SD_INFO2_BWE 0x0200 /* SDカードから512byteのデータ書込み要求 */
|
|
||||||
#define SD_INFO2_BRE 0x0100 /* SDカードから512byteのデータ読込み要求 */
|
|
||||||
#define SD_INFO2_ERR_ALLCLR 0x807F /* SD Card エラーレジスタクリア */
|
|
||||||
#define SD_INFO2_ERR_SDDAT0 0x0080 /* SD Card Busy bit */
|
|
||||||
#define SD_INFO2_ERR_RESTIMEOUT 0x0040 /* レスポンスタイムアウトエラー */
|
|
||||||
#define SD_INFO2_ERR_UNDERFLOW 0x0020 /* FIFO アンダーフローエラー */
|
|
||||||
#define SD_INFO2_ERR_OVERFLOW 0x0010 /* FIFO オーバーフローエラー */
|
|
||||||
#define SD_INFO2_ERR_TIMEOUT 0x0008 /* レスポンス以外のタイムアウトエラー */
|
|
||||||
#define SD_INFO2_ERR_END 0x0004 /* フレーム終了認識できないときの(END)エラー */
|
|
||||||
#define SD_INFO2_ERR_CRC 0x0002 /* CRC エラー */
|
|
||||||
#define SD_INFO2_ERR_CMD 0x0001 /* CMDエラー */
|
|
||||||
|
|
||||||
#define SD_INFO2_RW_SET 0x0300 /* SDカード Read/Write 要求割込み要因チェック */
|
|
||||||
#define SD_INFO2_ERROR_SET 0x807F /* SDカード エラー割込み要因チェック */
|
|
||||||
|
|
||||||
/* SD_INFO2_MASKレジスタ */
|
|
||||||
#define SD_INFO2_MASK_ILA 0x8000 /* イリーガルアクセスエラー割込みマスク */
|
|
||||||
#define SD_INFO2_MASK_BWE 0x0200 /* SDカードからのデータ書込み要求割込み禁止 */
|
|
||||||
#define SD_INFO2_MASK_BRE 0x0100 /* SDカードからのデータ読込み要求割込み禁止 */
|
|
||||||
#define SD_INFO2_MASK_ALLERRMASK 0x807F /* 全エラー割り込み禁止 */
|
|
||||||
#define SD_INFO2_MASK_EXCEPT_OVERFLOW 0x802F /* 全エラー割り込み禁止 FIFO Overflow Errorを除く */
|
|
||||||
#define SD_INFO2_MASK_RESTIMEOUT 0x0040 /* Time out 割込みEnable */
|
|
||||||
#define SD_INFO2_MASK_UNDERFLOW 0x0020 /* FIFO アンダーフロー 割込みEnable */
|
|
||||||
#define SD_INFO2_MASK_OVERFLOW 0x0010 /* FIFO オーバーフロー 割込みEnable */
|
|
||||||
#define SD_INFO2_MASK_TIMEOUT 0x0008 /* Time out 割込みEnable */
|
|
||||||
#define SD_INFO2_MASK_END 0x0004 /* END エラー 割込みEnable */
|
|
||||||
#define SD_INFO2_MASK_CRC 0x0002 /* CRC エラー 割込みEnable */
|
|
||||||
#define SD_INFO2_MASK_CMD 0x0001 /* CMD エラー 割込みEnable */
|
|
||||||
#define SD_INFO2_MASK_ERRSET 0x807F /* SDカード エラー割込み要因チェック */
|
|
||||||
|
|
||||||
/* SD_INFO1レジスタ */
|
|
||||||
#define SD_INFO1_DAT3DETECT 0x0400 /* (IO3検出) card detect(検出=1) : CTRでは使用できない*/
|
|
||||||
#define SD_INFO1_DAT3INSERT 0x0200 /* (IO3検出) card inserted(挿入=1) : CTRでは使用できない */
|
|
||||||
#define SD_INFO1_DAT3REMOVE 0x0100 /* (IO3検出) card removed(抜け=1) : CTRでは使用できない */
|
|
||||||
#define SD_INFO1_DAT3INIT 0x0300 /* (IO3検出) の初期化 */
|
|
||||||
#define SD_INFO1_WRITEPROTECT 0x0080 /* write protect(書き込み禁止=1) */
|
|
||||||
#define SD_INFO1_DETECT 0x0020 /* card detect(検出=1) */
|
|
||||||
|
|
||||||
#define SD_INFO1_INSERT 0x0010 /* card inserted(挿入=1) */
|
|
||||||
#define SD_INFO1_REMOVE 0x0008 /* card removed(抜け=1) */
|
|
||||||
|
|
||||||
#define SD_INFO1_ALL_END 0x0004 /* R/W access all end */
|
|
||||||
#define SD_INFO1_RES_END 0x0001 /* Response end */
|
|
||||||
#define SD_INFO1_INIT 0x0005 /* SD Cardの状態を初期化 */
|
|
||||||
|
|
||||||
#define SD_INFO1_SET 0x031D /* SDカード 挿抜 and RWアクセス終了 and レスポンス終了 要求割込み要因チェック */
|
|
||||||
|
|
||||||
/* SD_INFO1_MASKレジスタ (0:割り込み許可、1:割り込み禁止)*/
|
|
||||||
#define SD_INFO1_MASK_DAT3INSERT 0x0200 /* (IO3検出) card inserted(挿入) 割込み禁止 */
|
|
||||||
#define SD_INFO1_MASK_DAT3REMOVE 0x0100 /* (IO3検出) card removed(抜け) 割込み禁止 */
|
|
||||||
#define SD_INFO1_MASK_INSERT 0x0010 /* card inserted(挿入) 割込み禁止 */
|
|
||||||
#define SD_INFO1_MASK_REMOVE 0x0008 /* card removed(抜け) 割込み禁止 */
|
|
||||||
#define SD_INFO1_MASK_ALL_END 0x0004 /* R/W access all end 割込み禁止 */
|
|
||||||
#define SD_INFO1_MASK_RES_END 0x0001 /* Response end 割込み禁止 */
|
|
||||||
|
|
||||||
/* CC_EXT_MODEレジスタ */
|
|
||||||
#define CC_EXT_MODE_PIO 0x0000 /* PIOモード */
|
|
||||||
#define CC_EXT_MODE_DMA 0x0002 /* DMAモード */
|
|
||||||
|
|
||||||
/* SOFT_RSTレジスタ */
|
|
||||||
#define SOFT_RST_SDIF_RST 0x0001 /* SD I/Fモジュールをリセット */
|
|
||||||
|
|
||||||
/* SD_CLK_CTRLレジスタ */
|
|
||||||
#define SD_CLK_CTRL_SDCLKEN 0x0100 /* SDカードクロック出力イネーブル */
|
|
||||||
#define SD_CLK_CTRL_512 0x0180 /* SDクロックの周波数(分周比512)*/
|
|
||||||
#define SD_CLK_CTRL_256 0x0140 /* SDクロックの周波数(分周比256)*/
|
|
||||||
#define SD_CLK_CTRL_128 0x0120 /* SDクロックの周波数(分周比128)*/
|
|
||||||
#define SD_CLK_CTRL_64 0x0110 /* SDクロックの周波数(分周比 64)*/
|
|
||||||
#define SD_CLK_CTRL_32 0x0108 /* SDクロックの周波数(分周比 32)*/
|
|
||||||
#define SD_CLK_CTRL_16 0x0104 /* SDクロックの周波数(分周比 16)*/
|
|
||||||
#define SD_CLK_CTRL_8 0x0102 /* SDクロックの周波数(分周比 8)*/
|
|
||||||
#define SD_CLK_CTRL_4 0x0101 /* SDクロックの周波数(分周比 4)*/
|
|
||||||
#define SD_CLK_CTRL_2 0x0100 /* SDクロックの周波数(分周比 2)*/
|
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
マルチポート対応ビット制御(フラグ定義)
|
|
||||||
-------------------------------------*/
|
|
||||||
#define SDCARD_PORT_NO 0x0300 /* カードポート選択数 */
|
|
||||||
#define SDCARD_PORT_NO_MAX 0x04//0x02 /* カードポート最大選択数 */
|
|
||||||
#define SDCARD_PORT_NO_MIN 0x01 /* カードポート最小選択数 */
|
|
||||||
#define SDCARD_PORT_SELECT_NO 0x0001 /* カードポート番号ビット */
|
|
||||||
#define SDCARD_PORT0 0x0000 /* カードポート番号ビット */
|
|
||||||
#define SDCARD_PORT1 0x0001 /* カードポート番号ビット */
|
|
||||||
|
|
||||||
/* EXT_WPレジスタ(ポート1以降のライトプロテクト) */
|
|
||||||
#define EXT_WP_PORT1 0x0001 /* ポート1write protect(書き込み禁止=1)*/
|
|
||||||
|
|
||||||
/* EXT_CDレジスタ */
|
|
||||||
#define EXT_CD_PORT1_REMOVE 0x0001 /* ポート1 card detect(検出=1) */
|
|
||||||
#define EXT_CD_PORT1_INSERT 0x0002 /* ポート1 card inserted(挿入=1) */
|
|
||||||
#define EXT_CD_PORT1_DETECT 0x0004 /* ポート1 card removed(抜け=1) */
|
|
||||||
|
|
||||||
/* EXT_CD_DAT3レジスタ */
|
|
||||||
//#define EXT_CD_PORT1_DAT3INIT 0x0003 /* ポート1 card の状態 (IO3検出) の初期化 */
|
|
||||||
#define EXT_CD_PORT1_DAT3REMOVE 0x0001 /* ポート1 dat3 card detect(検出=1) */
|
|
||||||
#define EXT_CD_PORT1_DAT3INSERT 0x0002 /* ポート1 dat3 card inserted(挿入=1) */
|
|
||||||
#define EXT_CD_PORT1_DAT3DETECT 0x0004 /* ポート1 dat3 card removed(抜け=1) */
|
|
||||||
|
|
||||||
/* EXT_CD_DAT3_MASKレジスタ */
|
|
||||||
#define EXT_CD_MASK_PORT1INSERT 0x0002 /* port1 card inserted(挿入) 割込み禁止 */
|
|
||||||
#define EXT_CD_MASK_PORT1REMOVE 0x0001 /* port1 card removed(抜け) 割込み禁止 */
|
|
||||||
#define EXT_CD_MASK_PORT1DAT3INSERT 0x0002 /* port1 (IO3検出) card inserted(挿入) 割込み禁止 */
|
|
||||||
#define EXT_CD_MASK_PORT1DAT3REMOVE 0x0001 /* port1 (IO3検出) card removed(抜け) 割込み禁止 */
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
カードの選択
|
|
||||||
--------------------------------------*/
|
|
||||||
#define SDCARD_DETECT_VISUAL_BIT 0x0400 /*** upper layer card detected visual bit ***/
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
ライトプロテクト
|
|
||||||
-------------------------------------*/
|
|
||||||
#define SDCARD_WP_PERMANENT_BIT 0x0020 /*** permanent write protection ***/
|
|
||||||
#define SDCARD_WP_TEMPORARY_BIT 0x0010 /*** temporary write protection ***/
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
SD or MMCカードコマンド
|
|
||||||
-------------------------------------*/
|
|
||||||
#define GO_IDLE_STATE (0) /* resets all cards to idle state */
|
|
||||||
#define SEND_OP_COND (1) /* Asks all cards in idle state to send their operation conditions */
|
|
||||||
#define ALL_SEND_CID (2) /* send CID numbers */
|
|
||||||
#define SEND_RELATIVE_ADDR (3) /* ask the card to publish a new relative address(RCA) */
|
|
||||||
#define SET_BUS_WIDTH (6) /* ビット幅の選択 */
|
|
||||||
#define SELECT_CARD (7) /* Command toggles acard between thr Stand-by and Transfer states */
|
|
||||||
#define SEND_CSD (9) /* addressed card sends its card-specific data(CSD) */
|
|
||||||
#define STOP_TRANSMISSION (12) /* forces the card to stop transmission */
|
|
||||||
#define SD_SEND_STATUS (13) /* addressed card sends its status register */
|
|
||||||
#define SET_BLOCKLEN (16) /* sets the block length */
|
|
||||||
#define READ_MULTIPLE_BLOCK (18) /* マルチブロックリード */
|
|
||||||
#define WRITE_MULTIPLE_BLOCK (25) /* マルチブロックライト */
|
|
||||||
#define APP_CMD (55) /* CMD55 */
|
|
||||||
#define SD_STATUS (13) /* ACMD13 Send the SD_CARD status */
|
|
||||||
#define SEND_NUM_WR_SECTORS (22) /* ACMD22 書きこみ完了セクタ数取得 */
|
|
||||||
#define SD_APP_OP_COND (41) /* ACMD41 */
|
|
||||||
#define SEND_SCR (51) /* SD configuration register (SCR) */
|
|
||||||
|
|
||||||
/* MMCplus, eMMCの定義 */
|
|
||||||
#define EXT_CSD_ACCESS (6)
|
|
||||||
|
|
||||||
/* Extended Commandの定義 */
|
|
||||||
#define EXT_NORMAL (0)
|
|
||||||
#define EXT_SDIO (0x4000)
|
|
||||||
|
|
||||||
#define EXT_COM_R3 (0x0700)
|
|
||||||
|
|
||||||
#define EXT_CMD (0x00C0)
|
|
||||||
|
|
||||||
#define SEND_IF_COND (8) /* Physical Layer 2.0 で追加されたコマンド */
|
|
||||||
#define SEND_IF_COND_EXT (EXT_SDIO | EXT_COM_R3 | EXT_CMD | SEND_IF_COND)
|
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
IP レジスタアクセス マクロ関数
|
|
||||||
-------------------------------------*/
|
|
||||||
#define SD_OrFPGA(reg,value) ((reg) |= (value));
|
|
||||||
#define SD_AndFPGA(reg,value) ((reg) &= (value));
|
|
||||||
#define SD_SetFPGA(reg,value) ((reg) = (value));
|
|
||||||
#define SD_GetFPGA(dest,reg) ((dest) = (reg));
|
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
構造体定数
|
|
||||||
***********************************************************************/
|
|
||||||
typedef union{
|
|
||||||
u32 dat;
|
|
||||||
struct {
|
|
||||||
u16 low;
|
|
||||||
u16 high;
|
|
||||||
} dt2word;
|
|
||||||
} LELONG;
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
その他(ビット制御)
|
|
||||||
-------------------------------------*/
|
|
||||||
#define RSP_R3_OCR31 0x8000 /* Use OCR Busy bit Check */
|
|
||||||
#define RSP_R3_OCR_VDD 0x0030 /* Use OCR VDD bit Check (3.2-3.3v,3.3-3.4v is OK)*/
|
|
||||||
|
|
||||||
/*--- SCR[0]に対する4bitバス幅対応フラグのマスク ---*/
|
|
||||||
//SCRのbit50に相当するが、SCRとSD_STATUSはMSBから送られてくることを考慮してある
|
|
||||||
#define SCR_DAT_BUS_WIDTH_4BIT 0x0400 /* SCR DAT Bus width supported 4bit */
|
|
||||||
|
|
||||||
/*--- 127bitCSD (CSD[0]~CSD[7])関連 ---*/
|
|
||||||
#define CSD_VDD_R_CURR_MIN 0x0038 /* "VDD_R_CURR_MIN" (for CSD[3]) */
|
|
||||||
#define CSD_VDD_R_CURR_MAX 0x0007 /* "VDD_R_CURR_MAX" (for CSD[3]) */
|
|
||||||
#define CSD_VDD_W_CURR_MIN 0xE000 /* "VDD_W_CURR_MIN" (for CSD[2]) */
|
|
||||||
#define CSD_VDD_W_CURR_MAX 0x1C00 /* "VDD_W_CURR_MAX" (for CSD[2]) */
|
|
||||||
|
|
||||||
#define CSD_READ_BL_LEN 0x0F00 /* "READ_BL_LEN" (for CSD[4])*/
|
|
||||||
#define CSD_WRITE_BL_LEN_BIT_25_24 0x0003 /* "WRITE_BL_LEN" (for CSD[1])*/
|
|
||||||
#define CSD_WRITE_BL_LEN_BIT_23_22 0xC000 /* "WRITE_BL_LEN" (for CSD[0]*/
|
|
||||||
#define CSD_READ_BL_PARTIAL 0x0080 /* "READ_BL_PARTIAL" (for CSD[4]) */
|
|
||||||
#define CSD_TRANSFER_RATE 0x0700 /* "Transfer rate unit" of "TRAN_SPEED" (for CSD[5]) */
|
|
||||||
#define CSD_TRAN_SPEED_100K 0x0000 /* 100Kbit/s (for CSD Transfer rate) */
|
|
||||||
#define CSD_TRAN_SPEED_1M 0x0001 /* 1Mbit/s (for CSD Transfer rate) */
|
|
||||||
#define CSD_TRAN_SPEED_10M 0x0002 /* 10Mbit/s (for CSD Transfer rate) */
|
|
||||||
#define CSD_TRAN_SPEED_100M 0x0003 /* 100Mbit/s (for CSD Transfer rate) */
|
|
||||||
#define CSD_TRAN_SPEED_OTHER 0x0004 /* Reserve (for CSD Transfer rate) */
|
|
||||||
|
|
||||||
#define CSD_C_SIZE_MULT 0x0380 /* RSP2 の bit[49:47] */
|
|
||||||
#define CSD_C_SIZE_BIT_73_72 0x0003 /* RSP3 の bit[73:72](C_SIZE) */
|
|
||||||
#define CSD_C_SIZE_BIT_71_62 0xFFC0 /* RSP3 の bit[71:62](C_SIZE) */
|
|
||||||
//SDHC(CSD format version2)の場合
|
|
||||||
#define CSD_C_SIZE_BIT_69_56 0x3FFF /* SD_CSD[3] */
|
|
||||||
#define CSD_C_SIZE_BIT_55_48 0xFF00 /* SD_CSD[2] */
|
|
||||||
|
|
||||||
#define CSD_STRUCT_BIT_127_126 0x00C0 /* SD_CSD[7] */
|
|
||||||
|
|
||||||
//#define VDD_R_CURR_MIN 0x0000 /* CSD max read current@VDD min */
|
|
||||||
//#define VDD_R_CURR_MAX 0x0007 /* CSD max read current@VDD max */
|
|
||||||
//#define VDD_W_CURR_MIN 0x0000 /* CSD max write current@VDD min */
|
|
||||||
//#define VDD_W_CURR_MAX 0x0007 /* CSD max write current@VDD max */
|
|
||||||
|
|
||||||
/*--- R1レスポンスの card status(32bit)に対するマスク ---*/
|
|
||||||
#define RSP_R1_STATUS_ERR 0xF9FF0008 /* R1(レスポンス)のカードステータスのチェック */
|
|
||||||
#define SDCARD_STATUS_OUT_OF_RANGE 0x80000000 /* Card Status OUT_OF_RANGE のチェック */
|
|
||||||
#define RSP_R1_CURRENT_STATE 0x1E00 /* CARD current state */
|
|
||||||
/*-------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* レスポンスのRSP0 & RSP_R1_CURRENT_STATEを1ビット右シフトした値に対するフラグ */
|
|
||||||
#define CURRENT_STATE_DATA 0x0500 /* CARD current state data */
|
|
||||||
#define CURRENT_STATE_RCV 0x0600 /* CARD current state rcv */
|
|
||||||
|
|
||||||
/* カードステータス */
|
|
||||||
#define SD_MEMORY_CARD 0x00FF /* SD_CARD_TYPE SD memory card */
|
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------
|
|
||||||
プロトタイプ宣言
|
|
||||||
-------------------------------------*/
|
|
||||||
void SD_Init(void); /* SD Cardインターフェース部をリセット&初期設定 */
|
|
||||||
void SD_EnableInfo(void); /* SD Card 挿抜 割り込みイネーブル・ディスエーブル */
|
|
||||||
u16 SD_Command(u16 ucCommand); /* SDカードコマンド送出 */
|
|
||||||
u16 SD_AppCommand(void); /* SDカード RCA = 1をセット後 CMD55 発行 */
|
|
||||||
u16 SD_AppOpCond(void); /* ACMD41 発行 busyでなくなるまで繰り返し */
|
|
||||||
u16 SD_SendOpCond(void); /* CMD1 発行 busyでなくなるまで繰り返し */
|
|
||||||
u16 SD_SendIfCond(void); /* CMD8 発行 (SDHCのみ反応してくる) */
|
|
||||||
u16 SD_SendRelativeAddr(void); /* CMD3 発行 正常終了時 RCA<-ResのRCA */
|
|
||||||
u16 SD_SelectCard(void); /* CMD7 発行 Command toggles acard between the Stand-by and Transfer states */
|
|
||||||
u16 SD_SetBlockLength(u32 ulBlockLength); /* ブロックレングス(1セクタの転送量)の設定 */
|
|
||||||
u16 SD_SendCID(void); /* card identification data の取得コマンド発行 */
|
|
||||||
u16 SD_SendCSD(void); /* card-specific data の取得コマンド発行 */
|
|
||||||
u16 SD_SendSCR(void); /* SD register の取得コマンド発行 */
|
|
||||||
u16 SD_SDStatus(void); /* SD STATUS の取得コマンド発行 */
|
|
||||||
u16 SD_SendStatus(void); /* SD status register の取得コマンド発行 */
|
|
||||||
u16 SD_MultiReadBlock(u32 ulOffset); /* マルチセクタリードコマンド発行 */
|
|
||||||
u16 SD_ClockDivSet(u16 usTranSpeed); /* カードの動作クロック設定 */
|
|
||||||
|
|
||||||
void SD_EnableClock( void); /* SDカードのクロック有効 */
|
|
||||||
void SD_DisableClock( void); /* SDカードのクロック無効(省電力) */
|
|
||||||
|
|
||||||
u16 SD_SelectBitWidth(s16 b4bit); /* ビット幅の選択 */
|
|
||||||
|
|
||||||
u16 MMCP_WriteBusWidth(s16 b4bit);
|
|
||||||
u16 MMCP_BusTest( BOOL readflag);
|
|
||||||
|
|
||||||
|
|
||||||
BOOL SD_FPGA_irq(void); /* カード転送要求時のFPGAの制御 */
|
|
||||||
void SD_StopTransmission(void); /* カード転送終了をFPGAに通知する。 */
|
|
||||||
void SD_TransEndFPGA(void); /* カード転送の終了処理(割り込みマスクを戻す) */
|
|
||||||
u16 SD_CheckStatus(BOOL bRead); /* Normal response command カードステータスのチェック */
|
|
||||||
u16 SD_SwapByte(u16 *data); /* 上位byte、下位byteを入れ替える関数 */
|
|
||||||
|
|
||||||
void SD_EnableSeccnt( u32 ulSDCARD_SectorCount); /* SD_SECCNTレジスタ有効化&値設定 */
|
|
||||||
void SD_DisableSeccnt( void); /* SD_SECCNTレジスタ無効化 */
|
|
||||||
|
|
||||||
void SD_SetErr(u16 Error); /* エラーステータスを設定する */
|
|
||||||
void SD_ClrErr(u16 Error); /* エラーステータスをクリアする */
|
|
||||||
|
|
||||||
BOOL SD_CheckFPGAReg(u16 reg,u16 value); /* IPレジスタにフラグが立っているか判定 */
|
|
||||||
|
|
||||||
void SD_TransReadyFPGA(void); /* 転送処理準備FPGA設定 */
|
|
||||||
u16 SD_TransCommand(u16 ucCommand); /* 命令発行処理 */
|
|
||||||
|
|
||||||
u16 SD_MultiWriteBlock(u32 ulOffset); /* マルチセクタライトコマンド発行 */
|
|
||||||
u16 SD_SendNumWRSectors(void); /* ACMD22 書きこみ完了セクタ数取得コマンド発行 */
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __SD_CARD_IP_H__ */
|
|
||||||
@ -1,118 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Project: TwlBrom - SD driver
|
|
||||||
File: sd_ip_reg.h
|
|
||||||
|
|
||||||
Copyright 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.
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef __SD_IP_REG_H__
|
|
||||||
#define __SD_IP_REG_H__
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SD IPレジスタ
|
|
||||||
|
|
||||||
(R/W) : readable and writable
|
|
||||||
(RO) : read only
|
|
||||||
*********************************************/
|
|
||||||
/*#if (CTR_DEF_ENVIRONMENT_DSEMU == 1)
|
|
||||||
#define SD_IP_BASE (0x08030000) // NTR用ブレッドボード設定
|
|
||||||
#else
|
|
||||||
#define SD_IP_BASE (0x400B0000) // IOP実機設定
|
|
||||||
#endif*/
|
|
||||||
#define SD_IP_BASE (0x04004800) // TWL ARM7設定
|
|
||||||
|
|
||||||
|
|
||||||
#define SD_CMD (*(vu16 *)(SD_IP_BASE + 0x00)) /* CMD発行レジスタ(R/W) */
|
|
||||||
#define SD_PORTSEL (*(vu16 *)(SD_IP_BASE + 0x02)) /* ポート選択レジスタ(R/W) */
|
|
||||||
#define SD_ARG0 (*(vu16 *)(SD_IP_BASE + 0x04)) /* Argument[15:0] (R/W) */
|
|
||||||
#define SD_ARG1 (*(vu16 *)(SD_IP_BASE + 0x06)) /* Argument[31:16] (R/W) */
|
|
||||||
#define SD_STOP (*(vu16 *)(SD_IP_BASE + 0x08)) /* 転送終了後STOP、SD_SECCNT有効 (R/W) */
|
|
||||||
#define SD_SECCNT (*(vu16 *)(SD_IP_BASE + 0x0A)) /* 転送セクタ数制御 (R/W) */
|
|
||||||
#define SD_RSP0 (*(vu16 *)(SD_IP_BASE + 0x0C)) /* Response [23:8] (RO) */
|
|
||||||
#define SD_RSP1 (*(vu16 *)(SD_IP_BASE + 0x0E)) /* Response [39:24] (RO) */
|
|
||||||
#define SD_RSP2 (*(vu16 *)(SD_IP_BASE + 0x10)) /* Response [55:40] (RO) */
|
|
||||||
#define SD_RSP3 (*(vu16 *)(SD_IP_BASE + 0x12)) /* Response [71:56] (RO) */
|
|
||||||
#define SD_RSP4 (*(vu16 *)(SD_IP_BASE + 0x14)) /* Response [87:72] (RO) */
|
|
||||||
#define SD_RSP5 (*(vu16 *)(SD_IP_BASE + 0x16)) /* Response [103:88] (RO) */
|
|
||||||
#define SD_RSP6 (*(vu16 *)(SD_IP_BASE + 0x18)) /* Response [119:104] (RO) */
|
|
||||||
#define SD_RSP7 (*(vu16 *)(SD_IP_BASE + 0x1A)) /* Response [127:120] (RO) */
|
|
||||||
#define SD_INFO1 (*(vu16 *)(SD_IP_BASE + 0x1C)) /* SDメモリーカードの状態 (R/W) */
|
|
||||||
#define SD_INFO2 (*(vu16 *)(SD_IP_BASE + 0x1E)) /* バッファ制御とエラー情報 (R/W) */
|
|
||||||
#define SD_INFO1_MASK (*(vu16 *)(SD_IP_BASE + 0x20)) /* SD_INFO1割込みマスク (R/W) */
|
|
||||||
#define SD_INFO2_MASK (*(vu16 *)(SD_IP_BASE + 0x22)) /* SD_INFO2割込みマスク (R/W) */
|
|
||||||
#define SD_CLK_CTRL (*(vu16 *)(SD_IP_BASE + 0x24)) /* SDクロック設定 (R/W) */
|
|
||||||
#define SD_SIZE (*(vu16 *)(SD_IP_BASE + 0x26)) /* ビット幅と転送データ長の設定 (R/W) */
|
|
||||||
#define SD_OPTION (*(vu16 *)(SD_IP_BASE + 0x28)) /* タイムアウト、width、CD検出タイム (R/W) */
|
|
||||||
#define SD_ERR_STS1 (*(vu16 *)(SD_IP_BASE + 0x2C)) /* CMD, CRC, ENDエラー割込み原因 (RO) */
|
|
||||||
#define SD_ERR_STS2 (*(vu16 *)(SD_IP_BASE + 0x2E)) /* タイムアウトエラー割込み原因 (RO) */
|
|
||||||
#define SD_BUF0 (vu16 *)(SD_IP_BASE + 0x30) /* SDバッファ読込/書込データポート (R/W) */
|
|
||||||
#define CC_EXT_MODE (*(vu16 *)(SD_IP_BASE + 0xD8)) /* DMAモード/PIOモード切り替え */
|
|
||||||
#define SOFT_RST (*(vu16 *)(SD_IP_BASE + 0xE0)) /* ソフトウェアリセット (R/W) */
|
|
||||||
#define VERSION (*(vu16 *)(SD_IP_BASE + 0xE2)) /* Version レジスタ (RO) */
|
|
||||||
#define EXT_WP (*(vu16 *)(SD_IP_BASE + 0xF6)) /* 拡張SD Card ライトプロテクト (RO) */
|
|
||||||
#define EXT_CD (*(vu16 *)(SD_IP_BASE + 0xF8)) /* 拡張SD Card 検出、挿入、抜け フラグ (R/W) */
|
|
||||||
#define EXT_CD_DAT3 (*(vu16 *)(SD_IP_BASE + 0xFA)) /* 拡張SD Card 検出、挿入、抜け フラグ (R/W) */
|
|
||||||
#define EXT_CD_MASK (*(vu16 *)(SD_IP_BASE + 0xFC)) /* 拡張SD Card 検出、挿入、抜け 割込みマスク (R/W) */
|
|
||||||
#define EXT_CD_DAT3_MASK (*(vu16 *)(SD_IP_BASE + 0xFE)) /* 拡張SD Card 検出、挿入、抜け 割込みマスク (R/W) */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SD I/F(ラッパー)レジスタ
|
|
||||||
*********************************************/
|
|
||||||
/*#if (CTR_DEF_ENVIRONMENT_DSEMU == 1)
|
|
||||||
#define SD_IF_BASE (0x08030100) // NTR用ブレッドボード設定
|
|
||||||
#else
|
|
||||||
#define SD_IF_BASE (0x400B0100) // IOP実機設定
|
|
||||||
#endif*/
|
|
||||||
#define SD_IF_BASE (0x04004900) // IOP実機設定
|
|
||||||
|
|
||||||
|
|
||||||
#define SDIF_CNT ((vu32 *)(SD_IF_BASE+0x00)) /* コントロール */
|
|
||||||
#define SDIF_FDS ((vu32 *)(SD_IF_BASE+0x04)) /* FIFOサイズ */
|
|
||||||
#define SDIF_FSC ((vu32 *)(SD_IF_BASE+0x08)) /* セクタカウント */
|
|
||||||
#define SDIF_FI ((vu32 *)(SD_IF_BASE+0x0c)) /* FIFOウィンドウ */
|
|
||||||
|
|
||||||
#define SDIF_CNT_L ((vu16 *)(SD_IF_BASE+0x00))
|
|
||||||
#define SDIF_CNT_H ((vu16 *)(SD_IF_BASE+0x02))
|
|
||||||
#define SDIF_FDS_L ((vu16 *)(SD_IF_BASE+0x04))
|
|
||||||
#define SDIF_FDS_H ((vu16 *)(SD_IF_BASE+0x06))
|
|
||||||
#define SDIF_FSC_L ((vu16 *)(SD_IF_BASE+0x08))
|
|
||||||
#define SDIF_FSC_H ((vu16 *)(SD_IF_BASE+0x0a))
|
|
||||||
#define SDIF_FI_L ((vu16 *)(SD_IF_BASE+0x0c))
|
|
||||||
#define SDIF_FI_H ((vu16 *)(SD_IF_BASE+0x0e))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
INTCレジスタ
|
|
||||||
*********************************************/
|
|
||||||
/*#if (CTR_DEF_ENVIRONMENT_DSEMU == 1)
|
|
||||||
#define CTR_INT_BASE (0x08000000)
|
|
||||||
#else
|
|
||||||
#define CTR_INT_BASE (0x40010000)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define CTR_INT_SE (CTR_INT_BASE + 0x00) //割り込み要求選択レジスタ
|
|
||||||
#define CTR_INT_IE (CTR_INT_BASE + 0x04) //IE
|
|
||||||
#define CTR_INT_IF (CTR_INT_BASE + 0x08) //IF
|
|
||||||
|
|
||||||
#define CTR_IE_SD_MASK (1<<13) //SD割り込みフラグ
|
|
||||||
*/
|
|
||||||
#define CTR_INT_BASE (0x04000000)
|
|
||||||
|
|
||||||
#define CTR_INT_SE (CTR_INT_BASE + 0x208) //割り込み要求選択レジスタ
|
|
||||||
#define CTR_INT_IE (CTR_INT_BASE + 0x218) //IE
|
|
||||||
#define CTR_INT_IF (CTR_INT_BASE + 0x21C) //IF
|
|
||||||
|
|
||||||
#define CTR_IE_SD_MASK (1<<8) //SD割り込みフラグ
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __SD_IP_REG_H__ */
|
|
||||||
@ -1,170 +0,0 @@
|
|||||||
|
|
||||||
#ifndef __SDMC_H__
|
|
||||||
#define __SDMC_H__
|
|
||||||
|
|
||||||
//#include <firm.h>
|
|
||||||
//#include <rtfs.h>
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
ポート番号
|
|
||||||
*********************************************/
|
|
||||||
typedef enum {
|
|
||||||
SDMC_PORT_CARD = 0x400,
|
|
||||||
SDMC_PORT_NAND = 0x401
|
|
||||||
}SDMC_PORT_NO;
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
DMA番号
|
|
||||||
*********************************************/
|
|
||||||
typedef enum {
|
|
||||||
SDMC_USE_DMA_0 = 0,
|
|
||||||
SDMC_USE_DMA_1 = 1,
|
|
||||||
SDMC_USE_DMA_2 = 2,
|
|
||||||
SDMC_USE_DMA_3 = 3,
|
|
||||||
SDMC_NOUSE_DMA = 0xFF
|
|
||||||
}SDMC_DMA_NO;
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
カードエラーコード(カードエラーステータス設定値)アプリケーション固有のSDCARD_ErrStatusに対して
|
|
||||||
*********************************************/
|
|
||||||
typedef enum {
|
|
||||||
SDMC_NORMAL = 0, /* 正常終了 */
|
|
||||||
SDMC_ERR_COMMAND = 0x0001, /* CMDエラー */
|
|
||||||
SDMC_ERR_CRC = 0x0002, /* CRCエラー */
|
|
||||||
SDMC_ERR_END = 0x0004, /* 実行エラー */
|
|
||||||
SDMC_ERR_TIMEOUT = 0x0008, /* コマンドタイムアウト */
|
|
||||||
SDMC_ERR_FIFO_OVF = 0x0010, /* FIFO オーバーフローエラー(INFO2のIllegal write access to buffer) */
|
|
||||||
SDMC_ERR_FIFO_UDF = 0x0020, /* FIFO アンダーフローエラー(INFO2のIllegal read access to buffer) */
|
|
||||||
SDMC_ERR_WP = 0x0040, /* WriteProtectによる書き込みエラー */
|
|
||||||
SDMC_ERR_FPGA_TIMEOUT = 0x0100, /* FPGA アクセスタイムアウト */
|
|
||||||
SDMC_ERR_PARAM = 0x0200, /* コマンドパラメータエラー */
|
|
||||||
SDMC_ERR_R1_STATUS = 0x0800, /* Normal response command カードステータス エラー */
|
|
||||||
SDMC_ERR_NUM_WR_SECTORS = 0x1000, /* 書き込み完了セクタ数 エラー */
|
|
||||||
SDMC_ERR_RESET = 0x2000, /* 初期化カードリセットコマンド時1.5秒タイムアウトエラー */
|
|
||||||
SDMC_ERR_ILA = 0x4000, /* イリーガルアクセスエラー */
|
|
||||||
SDMC_ERR_INFO_DETECT = 0x8000 /* カード排出時判別エラービット(IO3) */
|
|
||||||
}SDMC_ERR_CODE;
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SDドライバ処理結果通知情報構造体
|
|
||||||
*********************************************/
|
|
||||||
typedef struct {
|
|
||||||
u16 b_flags; /* 処理内容 */
|
|
||||||
u16 result; /* 実行結果 */
|
|
||||||
u32 resid; /* 読み(書き)サイズ */
|
|
||||||
} SdmcResultInfo;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SDポート状態保存用構造体
|
|
||||||
*********************************************/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
u16 SD_CID[8]; /* CID保存用 (Card IDentification register) : ID*/
|
|
||||||
u16 SD_CSD[8]; /* CSD保存用 (Card Specific Data register) : spec*/
|
|
||||||
u16 SD_OCR[2]; /* OCR保存用 (Operation Condition Register) : voltage and status*/
|
|
||||||
u16 SD_SCR[4]; /* SCR保存用 (Sd card Configulation Register) : bus-width, card-ver, etc*/
|
|
||||||
u16 SD_RCA; /* RCA保存用 (Relative Card Address register) : address*/
|
|
||||||
s16 MMCFlag;
|
|
||||||
s16 SDHCFlag;
|
|
||||||
s16 SDFlag;
|
|
||||||
SDMC_ERR_CODE ErrStatus; /* SDCARD_ErrStatus */
|
|
||||||
u32 Status; /* SDCARD_Status */
|
|
||||||
u16 SD_CLK_CTRL_VALUE;
|
|
||||||
u16 SD_OPTION_VALUE;
|
|
||||||
|
|
||||||
s16 OutFlag;
|
|
||||||
u16 port_no;
|
|
||||||
}
|
|
||||||
SDPortContext;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SDスペック構造体
|
|
||||||
*********************************************/
|
|
||||||
typedef struct {
|
|
||||||
u32 csd_ver2_flag; //CSDフォーマットバージョン(SDHCのときは1)
|
|
||||||
u32 memory_capacity; //data areaのサイズ(512Byte単位)
|
|
||||||
u32 protected_capacity; //protected areaのサイズ(512Byte単位)
|
|
||||||
u32 card_capacity; //カード全体のサイズ(512Byte単位)
|
|
||||||
|
|
||||||
u32 adjusted_memory_capacity; //memory_capacityをシリンダ(heads*secptrack)の倍数に調整したサイズ(cylinders*heads*secptrackになる)
|
|
||||||
|
|
||||||
u16 heads;
|
|
||||||
u16 secptrack;
|
|
||||||
u16 cylinders;
|
|
||||||
u16 SC; //sectors per cluster
|
|
||||||
u16 BU;
|
|
||||||
u16 RDE; //number of root dir entries(512 fix)
|
|
||||||
u32 SS; //sector size(512 fix)
|
|
||||||
u32 RSC; //reserved sector count(1 fix)
|
|
||||||
// u32 TS; //total sectors
|
|
||||||
u16 FATBITS; //16 or 32
|
|
||||||
u16 SF; //sectors per FAT
|
|
||||||
u32 SSA; //sectors in system area
|
|
||||||
u32 NOM; //sectors in master boot record
|
|
||||||
} SdmcSpec;
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
RTFS用ドライバインタフェース
|
|
||||||
*********************************************/
|
|
||||||
#if 0
|
|
||||||
BOOL sdmcRtfsIo( int driveno, dword block, void* buffer, word count, BOOLEAN reading);
|
|
||||||
int sdmcRtfsCtrl( int driveno, int opcode, void* pargs);
|
|
||||||
BOOL sdmcRtfsAttach( int driveno);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
BOOL sdmcCheckMedia( void);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
基本API
|
|
||||||
*********************************************/
|
|
||||||
void sdmcClearPortContext( SDPortContext* buf_adr);
|
|
||||||
SDMC_ERR_CODE sdmcCheckPortContext( SDPortContext* buf_adr);
|
|
||||||
|
|
||||||
|
|
||||||
SDMC_ERR_CODE sdmcInit( SDMC_DMA_NO dma_no, void (*func1)(void),void (*func2)(void)); /* カードドライバ初期化 */
|
|
||||||
SDMC_ERR_CODE sdmcReset( void); /* カードリセット */
|
|
||||||
|
|
||||||
SDMC_ERR_CODE sdmcGetStatus(u16 *status); /* カードドライバの現在の状態を取得する */
|
|
||||||
u32 sdmcGetCardSize(void); /* カード全サイズの取得 */
|
|
||||||
|
|
||||||
/*SD I/FのFIFOを使ってリードする(高速)*/
|
|
||||||
SDMC_ERR_CODE sdmcReadFifo(void* buf,u32 bufsize,u32 offset,void(*func)(void),SdmcResultInfo *info);/* テスト用カードリード */
|
|
||||||
/*リードする*/
|
|
||||||
SDMC_ERR_CODE sdmcRead(void* buf,u32 bufsize,u32 offset,void(*func)(void),SdmcResultInfo *info); /* テスト用カードリード */
|
|
||||||
|
|
||||||
/*SD I/FのFIFOを使ってライトする(高速)*/
|
|
||||||
SDMC_ERR_CODE sdmcWriteFifo(void* buf,u32 bufsize,u32 offset,void(*func)(void),SdmcResultInfo *info);/* テスト用カードライト */
|
|
||||||
/*ライトする*/
|
|
||||||
SDMC_ERR_CODE sdmcWrite(void* buf,u32 bufsize,u32 offset,void(*func)(void),SdmcResultInfo *info); /* テスト用カードライト */
|
|
||||||
|
|
||||||
u16 sdmcSelectedNo(void);
|
|
||||||
SDMC_ERR_CODE sdmcSelect( u16 select);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /* extern "C" */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif /*__SDMC_H__*/
|
|
||||||
@ -1,87 +0,0 @@
|
|||||||
/*
|
|
||||||
** Copyright (c) 2000-2001 Matsushita Electric Industrial Co., Ltd.
|
|
||||||
** All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** $System IP1.1 without C2 サンプルソフト
|
|
||||||
** $Subsystem カードドライバ
|
|
||||||
** $Filename CARDDRV.H
|
|
||||||
** $Version 1.0 版
|
|
||||||
** $Date 01/02/16
|
|
||||||
** $Log 01/02/16 rev1.0作成
|
|
||||||
** 松下電器産業(株)半導体開発本部
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __SDMC_CONFIG_H__
|
|
||||||
#define __SDMC_CONFIG_H__
|
|
||||||
|
|
||||||
|
|
||||||
#include <firm.h>
|
|
||||||
|
|
||||||
#ifdef USE_OS
|
|
||||||
#include <sd_ip_reg.h> /* IP 対応レジスタ定義 */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
ターゲットOS
|
|
||||||
*********************************************/
|
|
||||||
#define TARGET_OS_CTR (0)
|
|
||||||
#define TARGET_OS_NITRO (TARGET_OS_CTR ^ 1)
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SDドライバ コンフィグレーション
|
|
||||||
*********************************************/
|
|
||||||
#define SD_DEBUG_PRINT_ON 0 /* デバッグ表示 */
|
|
||||||
|
|
||||||
#define WP_ena 1 /* ライトプロテクトのチェック有効 */
|
|
||||||
#define TIMEOUT 1 /* FPGA Timeout none = FALSE */
|
|
||||||
#define SCR 1 /* Send SCR Command = TRUE */
|
|
||||||
#define RESID 1 /* Write Error Resid enable = TRUE */
|
|
||||||
#define ATC_ON 0 /* ATC転送 使用/未使用 */
|
|
||||||
|
|
||||||
#define SecEnable 1 /* SD_SECCNTレジスタ Enable */
|
|
||||||
#define SecDisenable 0 /* SD_SECCNTレジスタ Disable */
|
|
||||||
//#define STANDBYMODE 0x04 /*** 5772 standby control bit ***/
|
|
||||||
|
|
||||||
#define SDCARD_TIMER_ID (OS_TIMER_3)
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
タイムアウト設定値(ms単位)
|
|
||||||
*********************************************/
|
|
||||||
#define SDCARD_RW_TIMEOUT (2000)
|
|
||||||
#define SDCARD_STDBY_TIMEOUT (50)
|
|
||||||
#define SDCARD_CLOCK_WAIT (500)
|
|
||||||
#define SDCARD_SDCLK_WAIT (10)
|
|
||||||
#define SDCARD_INITIAL_TIMEOUT (800)
|
|
||||||
#define SDCARD_RESET_TIMEOUT (1500)
|
|
||||||
#define SDCARD_ERASE_TIMEOUT (1)
|
|
||||||
#define SDCARD_ERRPROC_TIMEOUT (2000)
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
リトライ回数(Multiple Block R/W のとき)
|
|
||||||
*********************************************/
|
|
||||||
#define SDCARD_RETRY_COUNT (3)
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
その他
|
|
||||||
*********************************************/
|
|
||||||
#define SECTOR_SIZE (512) /* 1セクタのバイト数 */
|
|
||||||
#define SECTOR_MAX (255) /* SYSFPGA アクセス最大セクタ数 */
|
|
||||||
|
|
||||||
/*--- 上位レイヤに返すステータス値(SDCARD_Getstatus参照)用 ---*/
|
|
||||||
#define SDCARD_FLAG_CLR (0x3FFF) /* カード判定部分クリア用 */
|
|
||||||
#define SDCARD_FLAG_SD (0x8000) /* カード判定部分SDカード */
|
|
||||||
#define SDCARD_FLAG_MMC (0x4000) /* カード判定部分MMCカード */
|
|
||||||
#define SDCARD_PORT1_CLR (0x0007) /* カードポート1判定部分クリア用 */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /*__SDMC_CONFIG_H__*/
|
|
||||||
@ -1,127 +0,0 @@
|
|||||||
|
|
||||||
#ifndef __SDMC_TYPES_H__
|
|
||||||
#define __SDMC_TYPES_H__
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
ポート番号
|
|
||||||
*********************************************/
|
|
||||||
typedef enum {
|
|
||||||
SDMC_PORT_CARD = 0x400,
|
|
||||||
SDMC_PORT_NAND = 0x401
|
|
||||||
}SDMC_PORT_NO;
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
DMA番号
|
|
||||||
*********************************************/
|
|
||||||
typedef enum {
|
|
||||||
SDMC_USE_DMA_0 = 0,
|
|
||||||
SDMC_USE_DMA_1 = 1,
|
|
||||||
SDMC_USE_DMA_2 = 2,
|
|
||||||
SDMC_USE_DMA_3 = 3,
|
|
||||||
SDMC_NOUSE_DMA = 0xFF
|
|
||||||
}SDMC_DMA_NO;
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
カードエラーコード(カードエラーステータス設定値)アプリケーション固有のSDCARD_ErrStatusに対して
|
|
||||||
*********************************************/
|
|
||||||
typedef enum {
|
|
||||||
SDMC_NORMAL = 0, /* 正常終了 */
|
|
||||||
SDMC_ERR_COMMAND = 0x0001, /* CMDエラー */
|
|
||||||
SDMC_ERR_CRC = 0x0002, /* CRCエラー */
|
|
||||||
SDMC_ERR_END = 0x0004, /* 実行エラー */
|
|
||||||
SDMC_ERR_TIMEOUT = 0x0008, /* コマンドタイムアウト */
|
|
||||||
SDMC_ERR_FIFO_OVF = 0x0010, /* FIFO オーバーフローエラー(INFO2のIllegal write access to buffer) */
|
|
||||||
SDMC_ERR_FIFO_UDF = 0x0020, /* FIFO アンダーフローエラー(INFO2のIllegal read access to buffer) */
|
|
||||||
SDMC_ERR_WP = 0x0040, /* WriteProtectによる書き込みエラー */
|
|
||||||
SDMC_ERR_FPGA_TIMEOUT = 0x0100, /* FPGA アクセスタイムアウト */
|
|
||||||
SDMC_ERR_PARAM = 0x0200, /* コマンドパラメータエラー */
|
|
||||||
SDMC_ERR_R1_STATUS = 0x0800, /* Normal response command カードステータス エラー */
|
|
||||||
SDMC_ERR_NUM_WR_SECTORS = 0x1000, /* 書き込み完了セクタ数 エラー */
|
|
||||||
SDMC_ERR_RESET = 0x2000, /* 初期化カードリセットコマンド時1.5秒タイムアウトエラー */
|
|
||||||
SDMC_ERR_ILA = 0x4000, /* イリーガルアクセスエラー */
|
|
||||||
SDMC_ERR_INFO_DETECT = 0x8000 /* カード排出時判別エラービット(IO3) */
|
|
||||||
}SDMC_ERR_CODE;
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SDドライバ処理結果通知情報構造体
|
|
||||||
*********************************************/
|
|
||||||
typedef struct {
|
|
||||||
u16 b_flags; /* 処理内容 */
|
|
||||||
u16 result; /* 実行結果 */
|
|
||||||
u32 resid; /* 読み(書き)サイズ */
|
|
||||||
} SdmcResultInfo;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SDポート状態保存用構造体
|
|
||||||
*********************************************/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
u16 SD_CID[8]; /* CID保存用 (Card IDentification register) : ID*/
|
|
||||||
u16 SD_CSD[8]; /* CSD保存用 (Card Specific Data register) : spec*/
|
|
||||||
u16 SD_OCR[2]; /* OCR保存用 (Operation Condition Register) : voltage and status*/
|
|
||||||
u16 SD_SCR[4]; /* SCR保存用 (Sd card Configulation Register) : bus-width, card-ver, etc*/
|
|
||||||
u16 SD_RCA; /* RCA保存用 (Relative Card Address register) : address*/
|
|
||||||
s16 MMCFlag;
|
|
||||||
s16 SDHCFlag;
|
|
||||||
s16 SDFlag;
|
|
||||||
SDMC_ERR_CODE ErrStatus; /* SDCARD_ErrStatus */
|
|
||||||
u32 Status; /* SDCARD_Status */
|
|
||||||
u16 SD_CLK_CTRL_VALUE;
|
|
||||||
u16 SD_OPTION_VALUE;
|
|
||||||
|
|
||||||
s16 OutFlag;
|
|
||||||
u16 port_no;
|
|
||||||
}
|
|
||||||
SDPortContext;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************
|
|
||||||
SDスペック構造体
|
|
||||||
*********************************************/
|
|
||||||
typedef struct {
|
|
||||||
u32 csd_ver2_flag; //CSDフォーマットバージョン(SDHCのときは1)
|
|
||||||
u32 memory_capacity; //data areaのサイズ(512Byte単位)
|
|
||||||
u32 protected_capacity; //protected areaのサイズ(512Byte単位)
|
|
||||||
u32 card_capacity; //カード全体のサイズ(512Byte単位)
|
|
||||||
|
|
||||||
u32 adjusted_memory_capacity; //memory_capacityをシリンダ(heads*secptrack)の倍数に調整したサイズ(cylinders*heads*secptrackになる)
|
|
||||||
|
|
||||||
u16 heads;
|
|
||||||
u16 secptrack;
|
|
||||||
u16 cylinders;
|
|
||||||
u16 SC; //sectors per cluster
|
|
||||||
u16 BU;
|
|
||||||
u16 RDE; //number of root dir entries(512 fix)
|
|
||||||
u32 SS; //sector size(512 fix)
|
|
||||||
u32 RSC; //reserved sector count(1 fix)
|
|
||||||
// u32 TS; //total sectors
|
|
||||||
u16 FATBITS; //16 or 32
|
|
||||||
u16 SF; //sectors per FAT
|
|
||||||
u32 SSA; //sectors in system area
|
|
||||||
u32 NOM; //sectors in master boot record
|
|
||||||
} SdmcSpec;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /* extern "C" */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif /*__SDMC_TYPES_H__*/
|
|
||||||
@ -24,8 +24,6 @@
|
|||||||
#include <firm/format/gcdfirm.h>
|
#include <firm/format/gcdfirm.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@ -38,6 +36,15 @@ extern "C" {
|
|||||||
#define AESKEY_NUM_FROM_BROM 4
|
#define AESKEY_NUM_FROM_BROM 4
|
||||||
#endif // SDK_ARM7
|
#endif // SDK_ARM7
|
||||||
|
|
||||||
|
|
||||||
|
// sizeof(SDPortContext)
|
||||||
|
typedef struct SDportContextData
|
||||||
|
{
|
||||||
|
u32 data[17];
|
||||||
|
}
|
||||||
|
SDPortContextData;
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
union
|
union
|
||||||
@ -75,7 +82,7 @@ typedef struct
|
|||||||
|
|
||||||
BLOWFISH_CTX twl_blowfish[2]; // (4KB + ƒ¿) * 2
|
BLOWFISH_CTX twl_blowfish[2]; // (4KB + ƒ¿) * 2
|
||||||
|
|
||||||
SDPortContext SDNandContext;
|
SDPortContextData SDNandContext;
|
||||||
}
|
}
|
||||||
OSFromBrom7Buf;
|
OSFromBrom7Buf;
|
||||||
|
|
||||||
|
|||||||
@ -17,10 +17,7 @@
|
|||||||
#ifndef FIRM_OS_BOOT_H_
|
#ifndef FIRM_OS_BOOT_H_
|
||||||
#define FIRM_OS_BOOT_H_
|
#define FIRM_OS_BOOT_H_
|
||||||
|
|
||||||
#include <twl/misc.h>
|
#include <firm.h>
|
||||||
#include <twl/types.h>
|
|
||||||
#include <firm/memorymap.h>
|
|
||||||
#include <firm/devices/firm_sdmc/ARM7/sdmc.h> //from_brom.h—p
|
|
||||||
#include <firm/format/from_brom.h>
|
#include <firm/format/from_brom.h>
|
||||||
|
|
||||||
#include <nitro/hw/common/armArch.h>
|
#include <nitro/hw/common/armArch.h>
|
||||||
|
|||||||
@ -19,7 +19,6 @@
|
|||||||
#define FIRM_PM_H_
|
#define FIRM_PM_H_
|
||||||
|
|
||||||
#ifdef SDK_ARM7
|
#ifdef SDK_ARM7
|
||||||
#include <firm/pm/ARM7/pm_reg_ex.h>
|
|
||||||
#include <firm/pm/ARM7/pm_pmic_ex.h>
|
#include <firm/pm/ARM7/pm_pmic_ex.h>
|
||||||
#include <firm/pm/ARM7/pm_init.h>
|
#include <firm/pm/ARM7/pm_init.h>
|
||||||
#endif // SDK_ARM7
|
#endif // SDK_ARM7
|
||||||
|
|||||||
@ -1,540 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Project: TwlIPL - include - pm
|
|
||||||
File: pm_reg_ex.h
|
|
||||||
|
|
||||||
Copyright 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.
|
|
||||||
|
|
||||||
$Date:: 2007-09-06$
|
|
||||||
$Rev$
|
|
||||||
$Author$
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
#ifndef FIRM_PM_PM_REG_EX_H_
|
|
||||||
#define FIRM_PM_PM_REG_EX_H_
|
|
||||||
|
|
||||||
#define SDK_PMIC_REV 100
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//================================================================
|
|
||||||
// PMIC extention register parameter
|
|
||||||
//================================================================
|
|
||||||
//---------------- address
|
|
||||||
#define REG_PMIC_CTL2_ADDR 0x10 // R/W
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
#define REG_PMIC_OUT_CTL_ADDR 0x11 // R/W
|
|
||||||
#define REG_PMIC_TIME_CTL_ADDR 0x12 // R/W
|
|
||||||
#define REG_PMIC_PM_INFO_ADDR 0x14 // R
|
|
||||||
#define REG_PMIC_BT_INFO_ADDR 0x15 // R
|
|
||||||
#define REG_PMIC_SW_FLAGS_ADDR 0x16 // R/W
|
|
||||||
#define REG_PMIC_BT_CRCT_ADDR 0x17 // R/W
|
|
||||||
#define REG_PMIC_BT_THL_ADDR 0x18 // R/W
|
|
||||||
#define REG_PMIC_BT_THH_ADDR 0x19 // R/W
|
|
||||||
#define REG_PMIC_LED_CTL_ADDR 0x1a // R/W
|
|
||||||
#define REG_PMIC_LED12_BLK_ADDR 0x1a // R/W mirror
|
|
||||||
#define REG_PMIC_LED12_B4_ADDR 0x1b // R/W
|
|
||||||
#define REG_PMIC_LED12_B3_ADDR 0x1c // R/W
|
|
||||||
#define REG_PMIC_LED12_B2_ADDR 0x1d // R/W
|
|
||||||
#define REG_PMIC_LED12_B1_ADDR 0x1e // R/W
|
|
||||||
#define REG_PMIC_BL1_BRT_ADDR 0x1f // R/W
|
|
||||||
#define REG_PMIC_BL2_BRT_ADDR 0x20 // R/W
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
#define REG_PMIC_BT_INFO_ADDR 0x11 // R
|
|
||||||
#define REG_PMIC_SW_FLAGS_ADDR 0x12 // R/W
|
|
||||||
#define REG_PMIC_TIME_CTL_ADDR 0x15 // R/W
|
|
||||||
#define REG_PMIC_OUT_CTL_ADDR 0x16 // R/W
|
|
||||||
#define REG_PMIC_BT_CRCT_ADDR 0x18 // R/W
|
|
||||||
#define REG_PMIC_BT_THL_ADDR 0x19 // R/W
|
|
||||||
#define REG_PMIC_BT_THH_ADDR 0x1a // R/W
|
|
||||||
#define REG_PMIC_LED_CTL_ADDR 0x1c // R/W
|
|
||||||
#define REG_PMIC_LED12_B4_ADDR 0x1d // R/W
|
|
||||||
#define REG_PMIC_LED12_B3_ADDR 0x1e // R/W
|
|
||||||
#define REG_PMIC_LED12_B2_ADDR 0x1f // R/W
|
|
||||||
#define REG_PMIC_LED12_B1_ADDR 0x20 // R/W
|
|
||||||
#define REG_PMIC_LED12_BLK_ADDR 0x22 // R/W
|
|
||||||
#define REG_PMIC_BL1_BRT_ADDR 0x24 // R/W
|
|
||||||
#define REG_PMIC_BL2_BRT_ADDR 0x24 // R/W
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
#define REG_PMIC_GPIO_CTL_ADDR 0x13 // R/W
|
|
||||||
|
|
||||||
|
|
||||||
//---------------- each register spec
|
|
||||||
//---- PMIC_CTL2
|
|
||||||
#define PMIC_CTL2_RST (1<< 0)
|
|
||||||
#define PMIC_CTL2_VCNT5_BLO (1<< 1)
|
|
||||||
#define PMIC_CTL2_BKLT1 (1<< 2)
|
|
||||||
#define PMIC_CTL2_BKLT2 (1<< 3)
|
|
||||||
#define PMIC_CTL2_VLT42 (1<< 4) // ?
|
|
||||||
#define PMIC_CTL2_LCD_PWR (1<< 5)
|
|
||||||
#define PMIC_CTL2_PWR_OFF (1<< 6)
|
|
||||||
|
|
||||||
//---- PMIC_BT_INFO
|
|
||||||
#define PMIC_BT_INFO_VLTLOW (1<< 0)
|
|
||||||
#define PMIC_BT_INFO_VLT_SHIFT 1
|
|
||||||
#define PMIC_BT_INFO_VLT_MASK (7<< PMIC_BT_INFO_VLT_SHIFT)
|
|
||||||
#define PMIC_BT_INFO_MKR_SHIFT 5
|
|
||||||
#define PMIC_BT_INFO_MKR_MASK (7<< PMIC_BT_INFO_MKR_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_SW_FLAGS
|
|
||||||
#define PMIC_SW_FLAGS_WARMBOOT (1 << 7)
|
|
||||||
|
|
||||||
//---- PMIC_GPIO_CTL
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
#define PMIC_GPIO_CTL_O1 (1<< 0)
|
|
||||||
#define PMIC_GPIO_CTL_O2 (1<< 1)
|
|
||||||
#define PMIC_GPIO_CTL_O3 (1<< 2)
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
#define PMIC_GPIO_CTL_O1 (1<< 1)
|
|
||||||
#define PMIC_GPIO_CTL_O2 (1<< 2)
|
|
||||||
#define PMIC_GPIO_CTL_O3 (1<< 3)
|
|
||||||
#define PMIC_GPIO_CTL_AO_SHIFT 6
|
|
||||||
#define PMIC_GPIO_CTL_AO_MASK (3<< PMIC_GPIO_CTL_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
|
|
||||||
//---- PMIC_TIME_CTL
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
#define PMIC_TIME_CTL_OFF_SHIFT 0
|
|
||||||
#define PMIC_TIME_CTL_OFF_MASK (0x7<< PMIC_TIME_CTL_OFF_SHIFT)
|
|
||||||
#define PMIC_TIME_CTL_ACQ_SHIFT 4
|
|
||||||
#define PMIC_TIME_CTL_ACQ_MASK (0x3<< PMIC_TIME_CTL_ACQ_SHIFT)
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
#define PMIC_TIME_CTL_OFF_SHIFT 0
|
|
||||||
#define PMIC_TIME_CTL_OFF_MASK (0xf<< PMIC_TIME_CTL_OFF_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
|
|
||||||
//---- PMIC_BT_CRCT
|
|
||||||
#define PMIC_BT_CRCT_TEMP_ON (1<< 0)
|
|
||||||
#define PMIC_BT_CRCT_AMPR_ON (1<< 1)
|
|
||||||
#define PMIC_BT_CRCT_BT2_ON (1<< 2)
|
|
||||||
#define PMIC_BT_CRCT_BT3_ON (1<< 3)
|
|
||||||
#define PMIC_BT_CRCT_AK_SHIFT 4
|
|
||||||
#define PMIC_BT_CRCT_AK_MASK (0x3<< PMIC_BT_CRCT_AK_SHIFT)
|
|
||||||
#define PMIC_BT_CRCT_TK_SHIFT 6
|
|
||||||
#define PMIC_BT_CRCT_TK_MASK (0x3<< PMIC_BT_CRCT_TK_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_BT_THL
|
|
||||||
#define PMIC_BT_THL_TH1_SHIFT 0
|
|
||||||
#define PMIC_BT_THL_TH1_MASK (7<< PMIC_BT_THL_TH1_SHIFT)
|
|
||||||
#define PMIC_BT_THL_TH2_SHIFT 4
|
|
||||||
#define PMIC_BT_THL_TH2_MASK (7<< PMIC_BT_THL_TH2_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_BT_THH
|
|
||||||
#define PMIC_BT_THH_TH3_SHIFT 0
|
|
||||||
#define PMIC_BT_THH_TH3_MASK (7<< PMIC_BT_THH_TH3_SHIFT)
|
|
||||||
#define PMIC_BT_THH_TH4_SHIFT 4
|
|
||||||
#define PMIC_BT_THH_TH4_MASK (7<< PMIC_BT_THH_TH4_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_OUT_CTL
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
#define PMIC_OUT_CTL_V12_SHIFT 0
|
|
||||||
#define PMIC_OUT_CTL_V12_MASK (0x1<< PMIC_OUT_CTL_V12_SHIFT)
|
|
||||||
#define PMIC_OUT_CTL_V18_SHIFT 1
|
|
||||||
#define PMIC_OUT_CTL_V18_MASK (0x1<< PMIC_OUT_CTL_V18_SHIFT)
|
|
||||||
#define PMIC_OUT_CTL_V33_SHIFT 2
|
|
||||||
#define PMIC_OUT_CTL_V33_MASK (0x1<< PMIC_OUT_CTL_V33_SHIFT)
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
#define PMIC_OUT_CTL_V18_SHIFT 0
|
|
||||||
#define PMIC_OUT_CTL_V18_MASK (0x3<< PMIC_OUT_CTL_V18_SHIFT)
|
|
||||||
#define PMIC_OUT_CTL_V12_SHIFT 2
|
|
||||||
#define PMIC_OUT_CTL_V12_MASK (0x1<< PMIC_OUT_CTL_V12_SHIFT)
|
|
||||||
#define PMIC_OUT_CTL_V33_SHIFT 3
|
|
||||||
#define PMIC_OUT_CTL_V33_MASK (0x1<< PMIC_OUT_CTL_V33_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
|
|
||||||
//---- PMIC_LED_CTL
|
|
||||||
#define PMIC_LED_CTL_L12_B4_ONLY (1<< 0)
|
|
||||||
#define PMIC_LED_CTL_L12_AT_BLK (1<< 1)
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
#define PMIC_LED_CTL_L12_BLK_BY_SLP (1<< 2)
|
|
||||||
#define PMIC_LED_CTL_L12_BLKF_SHIFT 4
|
|
||||||
#define PMIC_LED_CTL_L12_BLKF_MASK (0x3<< PMIC_LED_CTL_L12_BLKF_SHIFT)
|
|
||||||
#define PMIC_LED_CTL_L12_BLKD_SHIFT 6
|
|
||||||
#define PMIC_LED_CTL_L12_BLKD_MASK (0x3<< PMIC_LED_CTL_L12_BLKD_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV!=0
|
|
||||||
|
|
||||||
//---- PMIC_LED12_BLK (mirror)
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
#define PMIC_LED12_BLK_FQ_SHIFT 4
|
|
||||||
#define PMIC_LED12_BLK_FQ_MASK (0x3<< PMIC_LED12_BLK_FQ_SHIFT)
|
|
||||||
#define PMIC_LED12_BLK_DT_SHIFT 6
|
|
||||||
#define PMIC_LED12_BLK_DT_MASK (0x3<< PMIC_LED12_BLK_DT_SHIFT)
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
#define PMIC_LED12_BLK_FQ_SHIFT 0
|
|
||||||
#define PMIC_LED12_BLK_FQ_MASK (0x7<< PMIC_LED12_BLK_FQ_SHIFT)
|
|
||||||
#define PMIC_LED12_BLK_DT_SHIFT 4
|
|
||||||
#define PMIC_LED12_BLK_DT_MASK (0x3<< PMIC_LED12_BLK_DT_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
|
|
||||||
//---- PMIC_LED12_B4
|
|
||||||
#define PMIC_LED12_B4_L1_SHIFT 0
|
|
||||||
#define PMIC_LED12_B4_L1_MASK (0x7<< PMIC_LED12_B4_L1_SHIFT)
|
|
||||||
#define PMIC_LED12_B4_L2_SHIFT 4
|
|
||||||
#define PMIC_LED12_B4_L2_MASK (0x7<< PMIC_LED12_B4_L2_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_LED12_B3
|
|
||||||
#define PMIC_LED12_B3_L1_SHIFT 0
|
|
||||||
#define PMIC_LED12_B3_L1_MASK (0x7<< PMIC_LED12_B3_L1_SHIFT)
|
|
||||||
#define PMIC_LED12_B3_L2_SHIFT 4
|
|
||||||
#define PMIC_LED12_B3_L2_MASK (0x7<< PMIC_LED12_B3_L2_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_LED12_B2
|
|
||||||
#define PMIC_LED12_B2_L1_SHIFT 0
|
|
||||||
#define PMIC_LED12_B2_L1_MASK (0x7<< PMIC_LED12_B2_L1_SHIFT)
|
|
||||||
#define PMIC_LED12_B2_L2_SHIFT 4
|
|
||||||
#define PMIC_LED12_B2_L2_MASK (0x7<< PMIC_LED12_B2_L2_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_LED12_B1
|
|
||||||
#define PMIC_LED12_B1_L1_SHIFT 0
|
|
||||||
#define PMIC_LED12_B1_L1_MASK (0x7<< PMIC_LED12_B1_L1_SHIFT)
|
|
||||||
#define PMIC_LED12_B1_L2_SHIFT 4
|
|
||||||
#define PMIC_LED12_B1_L2_MASK (0x7<< PMIC_LED12_B1_L2_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_BL1_BRT
|
|
||||||
#define PMIC_BL1_BRT_SHIFT 0
|
|
||||||
#define PMIC_BL1_BRT_MASK (0x1f<< PMIC_BL1_BRT_SHIFT)
|
|
||||||
|
|
||||||
//---- PMIC_BL2_BRT
|
|
||||||
#define PMIC_BL2_BRT_SHIFT 0
|
|
||||||
#define PMIC_BL2_BRT_MASK (0x1f<< PMIC_BL2_BRT_SHIFT)
|
|
||||||
|
|
||||||
|
|
||||||
//---- PMIC_BT_INFO
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_INFO_VLT_L1 = (0 << PMIC_BT_INFO_VLT_SHIFT),
|
|
||||||
PMIC_BT_INFO_VLT_L2 = (1 << PMIC_BT_INFO_VLT_SHIFT),
|
|
||||||
PMIC_BT_INFO_VLT_L3 = (2 << PMIC_BT_INFO_VLT_SHIFT),
|
|
||||||
PMIC_BT_INFO_VLT_L4 = (3 << PMIC_BT_INFO_VLT_SHIFT),
|
|
||||||
PMIC_BT_INFO_VLT_L5 = (4 << PMIC_BT_INFO_VLT_SHIFT)
|
|
||||||
}
|
|
||||||
PMBatteryLevel;
|
|
||||||
|
|
||||||
//---- PMIC_TIME_CTL
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
PMIC_TIME_CTL_OFF_125MS = (0x0 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_250MS = (0x1 << PMIC_TIME_CTL_OFF_SHIFT), // default
|
|
||||||
PMIC_TIME_CTL_OFF_500MS = (0x2 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_750MS = (0x3 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_1S = (0x4 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_2S = (0x5 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_4S = (0x6 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_8S = (0x7 << PMIC_TIME_CTL_OFF_SHIFT)
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
PMIC_TIME_CTL_OFF_100MS = (0x0 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_200MS = (0x1 << PMIC_TIME_CTL_OFF_SHIFT), // default
|
|
||||||
PMIC_TIME_CTL_OFF_300MS = (0x2 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_500MS = (0x3 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_700MS = (0x4 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_900MS = (0x5 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_1S = (0x6 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_1500MS = (0x7 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_2S = (0x8 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_2500MS = (0x9 << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_3S = (0xa << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_4S = (0xb << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_5S = (0xc << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_7S = (0xd << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_9S = (0xe << PMIC_TIME_CTL_OFF_SHIFT),
|
|
||||||
PMIC_TIME_CTL_OFF_10S = (0xf << PMIC_TIME_CTL_OFF_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
}
|
|
||||||
PMOffTime;
|
|
||||||
|
|
||||||
//---- PMIC_BT_CRCT
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_CRCT_AK_30_10 = (0 << PMIC_BT_CRCT_AK_SHIFT),
|
|
||||||
PMIC_BT_CRCT_AK_50_10 = (1 << PMIC_BT_CRCT_AK_SHIFT), // default
|
|
||||||
PMIC_BT_CRCT_AK_70_10 = (2 << PMIC_BT_CRCT_AK_SHIFT),
|
|
||||||
PMIC_BT_CRCT_AK_90_10 = (3 << PMIC_BT_CRCT_AK_SHIFT)
|
|
||||||
}
|
|
||||||
PMAmprCoeff;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_CRCT_TK_10 = (0 << PMIC_BT_CRCT_TK_SHIFT),
|
|
||||||
PMIC_BT_CRCT_TK_15 = (1 << PMIC_BT_CRCT_TK_SHIFT), // default
|
|
||||||
PMIC_BT_CRCT_TK_20 = (2 << PMIC_BT_CRCT_TK_SHIFT),
|
|
||||||
PMIC_BT_CRCT_TK_30 = (3 << PMIC_BT_CRCT_TK_SHIFT)
|
|
||||||
}
|
|
||||||
PMTempCoeff;
|
|
||||||
|
|
||||||
//---- PMIC_BT_THL / PMIC_BT_THH
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_TH_D0 = 0,
|
|
||||||
PMIC_BT_TH_D20 = 1,
|
|
||||||
PMIC_BT_TH_D40 = 2,
|
|
||||||
PMIC_BT_TH_D60 = 3,
|
|
||||||
PMIC_BT_TH_D80 = 4,
|
|
||||||
PMIC_BT_TH_D100 = 5,
|
|
||||||
PMIC_BT_TH_D120 = 6,
|
|
||||||
PMIC_BT_TH_D140 = 7
|
|
||||||
}
|
|
||||||
PMBatteryThresholdDownCommon;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_THL_TH1_D0 = (0 << PMIC_BT_THL_TH1_SHIFT),
|
|
||||||
PMIC_BT_THL_TH1_D20 = (1 << PMIC_BT_THL_TH1_SHIFT),
|
|
||||||
PMIC_BT_THL_TH1_D40 = (2 << PMIC_BT_THL_TH1_SHIFT),
|
|
||||||
PMIC_BT_THL_TH1_D60 = (3 << PMIC_BT_THL_TH1_SHIFT),
|
|
||||||
PMIC_BT_THL_TH1_D80 = (4 << PMIC_BT_THL_TH1_SHIFT),
|
|
||||||
PMIC_BT_THL_TH1_D100 = (5 << PMIC_BT_THL_TH1_SHIFT),
|
|
||||||
PMIC_BT_THL_TH1_D120 = (6 << PMIC_BT_THL_TH1_SHIFT),
|
|
||||||
PMIC_BT_THL_TH1_D140 = (7 << PMIC_BT_THL_TH1_SHIFT)
|
|
||||||
}
|
|
||||||
PMBatteryThreshold1Down;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_THL_TH2_D0 = (0 << PMIC_BT_THL_TH2_SHIFT),
|
|
||||||
PMIC_BT_THL_TH2_D20 = (1 << PMIC_BT_THL_TH2_SHIFT),
|
|
||||||
PMIC_BT_THL_TH2_D40 = (2 << PMIC_BT_THL_TH2_SHIFT),
|
|
||||||
PMIC_BT_THL_TH2_D60 = (3 << PMIC_BT_THL_TH2_SHIFT),
|
|
||||||
PMIC_BT_THL_TH2_D80 = (4 << PMIC_BT_THL_TH2_SHIFT),
|
|
||||||
PMIC_BT_THL_TH2_D100 = (5 << PMIC_BT_THL_TH2_SHIFT),
|
|
||||||
PMIC_BT_THL_TH2_D120 = (6 << PMIC_BT_THL_TH2_SHIFT),
|
|
||||||
PMIC_BT_THL_TH2_D140 = (7 << PMIC_BT_THL_TH2_SHIFT)
|
|
||||||
}
|
|
||||||
PMBatteryThreshold2Down;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_THH_TH3_D0 = (0 << PMIC_BT_THH_TH3_SHIFT),
|
|
||||||
PMIC_BT_THH_TH3_D20 = (1 << PMIC_BT_THH_TH3_SHIFT),
|
|
||||||
PMIC_BT_THH_TH3_D40 = (2 << PMIC_BT_THH_TH3_SHIFT),
|
|
||||||
PMIC_BT_THH_TH3_D60 = (3 << PMIC_BT_THH_TH3_SHIFT),
|
|
||||||
PMIC_BT_THH_TH3_D80 = (4 << PMIC_BT_THH_TH3_SHIFT),
|
|
||||||
PMIC_BT_THH_TH3_D100 = (5 << PMIC_BT_THH_TH3_SHIFT),
|
|
||||||
PMIC_BT_THH_TH3_D120 = (6 << PMIC_BT_THH_TH3_SHIFT),
|
|
||||||
PMIC_BT_THH_TH3_D140 = (7 << PMIC_BT_THH_TH3_SHIFT)
|
|
||||||
}
|
|
||||||
PMBatteryThreshold3Down;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BT_THH_TH4_D0 = (0 << PMIC_BT_THH_TH4_SHIFT),
|
|
||||||
PMIC_BT_THH_TH4_D20 = (1 << PMIC_BT_THH_TH4_SHIFT),
|
|
||||||
PMIC_BT_THH_TH4_D40 = (2 << PMIC_BT_THH_TH4_SHIFT),
|
|
||||||
PMIC_BT_THH_TH4_D60 = (3 << PMIC_BT_THH_TH4_SHIFT),
|
|
||||||
PMIC_BT_THH_TH4_D80 = (4 << PMIC_BT_THH_TH4_SHIFT),
|
|
||||||
PMIC_BT_THH_TH4_D100 = (5 << PMIC_BT_THH_TH4_SHIFT),
|
|
||||||
PMIC_BT_THH_TH4_D120 = (6 << PMIC_BT_THH_TH4_SHIFT),
|
|
||||||
PMIC_BT_THH_TH4_D140 = (7 << PMIC_BT_THH_TH4_SHIFT)
|
|
||||||
}
|
|
||||||
PMBatteryThreshold4Down;
|
|
||||||
|
|
||||||
//---- PMIC_OUT_CTL
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_OUT_CTL_V18_PWM = (0 << PMIC_OUT_CTL_V18_SHIFT), // default
|
|
||||||
PMIC_OUT_CTL_V18_PFM = (1 << PMIC_OUT_CTL_V18_SHIFT)
|
|
||||||
}
|
|
||||||
PMPfmPwmV18;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_OUT_CTL_V12_PWM = (0 << PMIC_OUT_CTL_V12_SHIFT), // default
|
|
||||||
PMIC_OUT_CTL_V12_PFM = (1 << PMIC_OUT_CTL_V12_SHIFT)
|
|
||||||
}
|
|
||||||
PMPfmPwmV12;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_OUT_CTL_V33_PWM = (0 << PMIC_OUT_CTL_V33_SHIFT), // default
|
|
||||||
PMIC_OUT_CTL_V33_PFM = (1 << PMIC_OUT_CTL_V33_SHIFT)
|
|
||||||
}
|
|
||||||
PMPfmPwmV33;
|
|
||||||
|
|
||||||
//---- PMIC_LED12_B4 / PMIC_LED12_B3 / PMIC_LED12_B2 / PMIC_LED12_B1
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED_BRT_OFF = 0, // default
|
|
||||||
PMIC_LED_BRT_14 = 1,
|
|
||||||
PMIC_LED_BRT_28 = 2,
|
|
||||||
PMIC_LED_BRT_43 = 3,
|
|
||||||
PMIC_LED_BRT_57 = 4,
|
|
||||||
PMIC_LED_BRT_71 = 5,
|
|
||||||
PMIC_LED_BRT_85 = 6,
|
|
||||||
PMIC_LED_BRT_100 = 7
|
|
||||||
}
|
|
||||||
PMLedBrightCommon;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B4_L1_OFF = (0 << PMIC_LED12_B4_L1_SHIFT), // default
|
|
||||||
PMIC_LED12_B4_L1_14 = (1 << PMIC_LED12_B4_L1_SHIFT),
|
|
||||||
PMIC_LED12_B4_L1_28 = (2 << PMIC_LED12_B4_L1_SHIFT),
|
|
||||||
PMIC_LED12_B4_L1_43 = (3 << PMIC_LED12_B4_L1_SHIFT),
|
|
||||||
PMIC_LED12_B4_L1_57 = (4 << PMIC_LED12_B4_L1_SHIFT),
|
|
||||||
PMIC_LED12_B4_L1_71 = (5 << PMIC_LED12_B4_L1_SHIFT),
|
|
||||||
PMIC_LED12_B4_L1_85 = (6 << PMIC_LED12_B4_L1_SHIFT),
|
|
||||||
PMIC_LED12_B4_L1_100 = (7 << PMIC_LED12_B4_L1_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed1Bright4;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B4_L2_OFF = (0 << PMIC_LED12_B4_L2_SHIFT), // default
|
|
||||||
PMIC_LED12_B4_L2_14 = (1 << PMIC_LED12_B4_L2_SHIFT),
|
|
||||||
PMIC_LED12_B4_L2_28 = (2 << PMIC_LED12_B4_L2_SHIFT),
|
|
||||||
PMIC_LED12_B4_L2_43 = (3 << PMIC_LED12_B4_L2_SHIFT),
|
|
||||||
PMIC_LED12_B4_L2_57 = (4 << PMIC_LED12_B4_L2_SHIFT),
|
|
||||||
PMIC_LED12_B4_L2_71 = (5 << PMIC_LED12_B4_L2_SHIFT),
|
|
||||||
PMIC_LED12_B4_L2_85 = (6 << PMIC_LED12_B4_L2_SHIFT),
|
|
||||||
PMIC_LED12_B4_L2_100 = (7 << PMIC_LED12_B4_L2_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed2Bright4;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B3_L1_OFF = (0 << PMIC_LED12_B3_L1_SHIFT), // default
|
|
||||||
PMIC_LED12_B3_L1_14 = (1 << PMIC_LED12_B3_L1_SHIFT),
|
|
||||||
PMIC_LED12_B3_L1_28 = (2 << PMIC_LED12_B3_L1_SHIFT),
|
|
||||||
PMIC_LED12_B3_L1_43 = (3 << PMIC_LED12_B3_L1_SHIFT),
|
|
||||||
PMIC_LED12_B3_L1_57 = (4 << PMIC_LED12_B3_L1_SHIFT),
|
|
||||||
PMIC_LED12_B3_L1_71 = (5 << PMIC_LED12_B3_L1_SHIFT),
|
|
||||||
PMIC_LED12_B3_L1_85 = (6 << PMIC_LED12_B3_L1_SHIFT),
|
|
||||||
PMIC_LED12_B3_L1_100 = (7 << PMIC_LED12_B3_L1_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed1Bright3;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B3_L2_OFF = (0 << PMIC_LED12_B3_L2_SHIFT), // default
|
|
||||||
PMIC_LED12_B3_L2_14 = (1 << PMIC_LED12_B3_L2_SHIFT),
|
|
||||||
PMIC_LED12_B3_L2_28 = (2 << PMIC_LED12_B3_L2_SHIFT),
|
|
||||||
PMIC_LED12_B3_L2_43 = (3 << PMIC_LED12_B3_L2_SHIFT),
|
|
||||||
PMIC_LED12_B3_L2_57 = (4 << PMIC_LED12_B3_L2_SHIFT),
|
|
||||||
PMIC_LED12_B3_L2_71 = (5 << PMIC_LED12_B3_L2_SHIFT),
|
|
||||||
PMIC_LED12_B3_L2_85 = (6 << PMIC_LED12_B3_L2_SHIFT),
|
|
||||||
PMIC_LED12_B3_L2_100 = (7 << PMIC_LED12_B3_L2_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed2Bright3;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B2_L1_OFF = (0 << PMIC_LED12_B2_L1_SHIFT), // default
|
|
||||||
PMIC_LED12_B2_L1_14 = (1 << PMIC_LED12_B2_L1_SHIFT),
|
|
||||||
PMIC_LED12_B2_L1_28 = (2 << PMIC_LED12_B2_L1_SHIFT),
|
|
||||||
PMIC_LED12_B2_L1_43 = (3 << PMIC_LED12_B2_L1_SHIFT),
|
|
||||||
PMIC_LED12_B2_L1_57 = (4 << PMIC_LED12_B2_L1_SHIFT),
|
|
||||||
PMIC_LED12_B2_L1_71 = (5 << PMIC_LED12_B2_L1_SHIFT),
|
|
||||||
PMIC_LED12_B2_L1_85 = (6 << PMIC_LED12_B2_L1_SHIFT),
|
|
||||||
PMIC_LED12_B2_L1_100 = (7 << PMIC_LED12_B2_L1_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed1Bright2;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B2_L2_OFF = (0 << PMIC_LED12_B2_L2_SHIFT), // default
|
|
||||||
PMIC_LED12_B2_L2_14 = (1 << PMIC_LED12_B2_L2_SHIFT),
|
|
||||||
PMIC_LED12_B2_L2_28 = (2 << PMIC_LED12_B2_L2_SHIFT),
|
|
||||||
PMIC_LED12_B2_L2_43 = (3 << PMIC_LED12_B2_L2_SHIFT),
|
|
||||||
PMIC_LED12_B2_L2_57 = (4 << PMIC_LED12_B2_L2_SHIFT),
|
|
||||||
PMIC_LED12_B2_L2_71 = (5 << PMIC_LED12_B2_L2_SHIFT),
|
|
||||||
PMIC_LED12_B2_L2_85 = (6 << PMIC_LED12_B2_L2_SHIFT),
|
|
||||||
PMIC_LED12_B2_L2_100 = (7 << PMIC_LED12_B2_L2_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed2Bright2;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B1_L1_OFF = (0 << PMIC_LED12_B1_L1_SHIFT), // default
|
|
||||||
PMIC_LED12_B1_L1_14 = (1 << PMIC_LED12_B1_L1_SHIFT),
|
|
||||||
PMIC_LED12_B1_L1_28 = (2 << PMIC_LED12_B1_L1_SHIFT),
|
|
||||||
PMIC_LED12_B1_L1_43 = (3 << PMIC_LED12_B1_L1_SHIFT),
|
|
||||||
PMIC_LED12_B1_L1_57 = (4 << PMIC_LED12_B1_L1_SHIFT),
|
|
||||||
PMIC_LED12_B1_L1_71 = (5 << PMIC_LED12_B1_L1_SHIFT),
|
|
||||||
PMIC_LED12_B1_L1_85 = (6 << PMIC_LED12_B1_L1_SHIFT),
|
|
||||||
PMIC_LED12_B1_L1_100 = (7 << PMIC_LED12_B1_L1_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed1Bright5;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED12_B1_L2_OFF = (0 << PMIC_LED12_B1_L2_SHIFT), // default
|
|
||||||
PMIC_LED12_B1_L2_14 = (1 << PMIC_LED12_B1_L2_SHIFT),
|
|
||||||
PMIC_LED12_B1_L2_28 = (2 << PMIC_LED12_B1_L2_SHIFT),
|
|
||||||
PMIC_LED12_B1_L2_43 = (3 << PMIC_LED12_B1_L2_SHIFT),
|
|
||||||
PMIC_LED12_B1_L2_57 = (4 << PMIC_LED12_B1_L2_SHIFT),
|
|
||||||
PMIC_LED12_B1_L2_71 = (5 << PMIC_LED12_B1_L2_SHIFT),
|
|
||||||
PMIC_LED12_B1_L2_85 = (6 << PMIC_LED12_B1_L2_SHIFT),
|
|
||||||
PMIC_LED12_B1_L2_100 = (7 << PMIC_LED12_B1_L2_SHIFT)
|
|
||||||
}
|
|
||||||
PMLed2Bright1;
|
|
||||||
|
|
||||||
//---- PMIC_LED_CTL ( PMIC_LED12_BLK )
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_LED_BLK_FREQ_033HZ = 0, // default
|
|
||||||
PMIC_LED_BLK_FREQ_050HZ = 1,
|
|
||||||
PMIC_LED_BLK_FREQ_067HZ = 2,
|
|
||||||
PMIC_LED_BLK_FREQ_1HZ = 3,
|
|
||||||
PMIC_LED_BLK_FREQ_2HZ = 4,
|
|
||||||
PMIC_LED_BLK_FREQ_4HZ = 5
|
|
||||||
}
|
|
||||||
PMLedBlinkFreqCommon;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
PMIC_LED12_BLK_FREQ_041HZ = (0 << PMIC_LED_CTL_L12_BLKF_SHIFT),
|
|
||||||
PMIC_LED12_BLK_FREQ_082HZ = (1 << PMIC_LED_CTL_L12_BLKF_SHIFT),
|
|
||||||
PMIC_LED12_BLK_FREQ_2Z = (2 << PMIC_LED_CTL_L12_BLKF_SHIFT), // default
|
|
||||||
PMIC_LED12_BLK_FREQ_4HZ = (3 << PMIC_LED_CTL_L12_BLKF_SHIFT)
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
PMIC_LED12_BLK_FREQ_033HZ = (0 << PMIC_LED12_BLK_FQ_SHIFT), // default
|
|
||||||
PMIC_LED12_BLK_FREQ_050HZ = (1 << PMIC_LED12_BLK_FQ_SHIFT),
|
|
||||||
PMIC_LED12_BLK_FREQ_067HZ = (2 << PMIC_LED12_BLK_FQ_SHIFT),
|
|
||||||
PMIC_LED12_BLK_FREQ_1HZ = (3 << PMIC_LED12_BLK_FQ_SHIFT),
|
|
||||||
PMIC_LED12_BLK_FREQ_2HZ = (4 << PMIC_LED12_BLK_FQ_SHIFT),
|
|
||||||
PMIC_LED12_BLK_FREQ_4HZ = (5 << PMIC_LED12_BLK_FQ_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
}
|
|
||||||
PMLed12BlinkFreq;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
#if SDK_PMIC_REV!=0
|
|
||||||
PMIC_LED12_BLK_DUTY_10 = (0 << PMIC_LED_CTL_L12_BLKD_SHIFT),
|
|
||||||
PMIC_LED12_BLK_DUTY_25 = (1 << PMIC_LED_CTL_L12_BLKD_SHIFT),
|
|
||||||
PMIC_LED12_BLK_DUTY_50 = (2 << PMIC_LED_CTL_L12_BLKD_SHIFT), // default
|
|
||||||
PMIC_LED12_BLK_DUTY_75 = (3 << PMIC_LED_CTL_L12_BLKD_SHIFT)
|
|
||||||
#else // SDK_PMIC_REV==0
|
|
||||||
PMIC_LED12_BLK_DUTY_10 = (0 << PMIC_LED12_BLK_DT_SHIFT), // default
|
|
||||||
PMIC_LED12_BLK_DUTY_25 = (1 << PMIC_LED12_BLK_DT_SHIFT),
|
|
||||||
PMIC_LED12_BLK_DUTY_50 = (2 << PMIC_LED12_BLK_DT_SHIFT),
|
|
||||||
PMIC_LED12_BLK_DUTY_75 = (3 << PMIC_LED12_BLK_DT_SHIFT)
|
|
||||||
#endif // SDK_PMIC_REV==0
|
|
||||||
}
|
|
||||||
PMLed12BlinkDuty;
|
|
||||||
|
|
||||||
//---- PMIC_BL1_BRT / PMIC_BL2_BRT
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PMIC_BL_BRT_MIN = 0, // default
|
|
||||||
PMIC_BL_BRT_MAX = 0x1f,
|
|
||||||
PMIC_BL_BRT_DEFAULT = 0x08
|
|
||||||
}
|
|
||||||
PMBackLightBrightness;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /* extern "C" */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* FIRM_PM_PM_REG_EX_H_ */
|
|
||||||
#endif
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Project: TwlIPL - include - sdmc
|
|
||||||
File: sdmc.h
|
|
||||||
|
|
||||||
Copyright 2007 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.
|
|
||||||
|
|
||||||
$Date:: 2007-09-06$
|
|
||||||
$Rev$
|
|
||||||
$Author$
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#ifndef FIRM_SDMC_H_
|
|
||||||
#define FIRM_SDMC_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SDK_ARM9
|
|
||||||
#else // SDK_ARM7
|
|
||||||
#include <firm/devices/firm_sdmc/ARM7/sdif_ip.h>
|
|
||||||
#include <firm/devices/firm_sdmc/ARM7/sdif_reg.h>
|
|
||||||
#include <firm/devices/firm_sdmc/ARM7/sdmc.h>
|
|
||||||
#include <firm/devices/firm_sdmc/ARM7/sdmc_config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /* extern "C" */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* FIRM_SDMC_H_ */
|
|
||||||
#endif
|
|
||||||
@ -28,7 +28,7 @@ Static $(TARGET_NAME)
|
|||||||
Object $(OBJS_AUTOLOAD) (.rodata)
|
Object $(OBJS_AUTOLOAD) (.rodata)
|
||||||
Object * (.ltdmain)
|
Object * (.ltdmain)
|
||||||
Object $(OBJS_LTDAUTOLOAD)
|
Object $(OBJS_LTDAUTOLOAD)
|
||||||
Library $(GLTDLIBS)
|
Library $(LLIBS_EX) $(GLIBS_EX)
|
||||||
Object * (.dtcm)
|
Object * (.dtcm)
|
||||||
Object $(OBJS_AUTOLOAD) (.data)
|
Object $(OBJS_AUTOLOAD) (.data)
|
||||||
Object $(OBJS_AUTOLOAD) (.sdata)
|
Object $(OBJS_AUTOLOAD) (.sdata)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user