・TwlSDKリビジョン2547でビルドが通るよう修正。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@237 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2007-11-21 05:11:28 +00:00
parent 20d3856cb6
commit 7bddb5032a
7 changed files with 221 additions and 19 deletions

View File

@ -22,11 +22,13 @@ include $(TWLIPL_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
export TWL_ARCHGEN = ALL
SUBDIRS = $(TWLSDK_ROOT)/add-ins/NitroWireless \
SUBDIRS = \
$(TWLSDK_ROOT)/add-ins/NitroWireless \
$(TWLSDK_ROOT)/build/libraries/ese \
$(TWLSDK_ROOT)/build/libraries/nam \
$(TWLSDK_ROOT)/build/libraries/reboot \
$(TWLSDK_ROOT)/build/libraries/aes \
$(TWLSDK_ROOT)/build/libraries/spi \
$(TWLSDK_ROOT)/build/components/racoon.TWL \
$(TWLSYSTEM_ROOT) \
build

View File

@ -28,6 +28,8 @@ SUBDIRS = \
$(TWLSDK_ROOT)/build/libraries/nam \
$(TWLSDK_ROOT)/build/libraries/reboot \
$(TWLSDK_ROOT)/build/libraries/aes \
$(TWLSDK_ROOT)/build/libraries/rtc \
$(TWLSDK_ROOT)/build/libraries/spi \
$(TWLSDK_ROOT)/build/components/racoon.TWL \
$(TWLSYSTEM_ROOT) \
build/libraries_sysmenu\

View File

@ -40,13 +40,24 @@ CRT0_O = crt0.LTD.TWL.o
include $(TWLIPL_ROOT)/build/buildtools/commondefs
include $(TWLSDK_ROOT)/build/libraries/reboot/commondefs.reboot
ifdef TWLSDK_NOCRYPTO
CCFLAGS += -DSDK_NOCRYPTO
endif
ifndef TWLSDK_NOCRYPTO
MAKELCF_FLAGS += -DUSE_CRYPTO_LIBS='libaes_sp.TWL$(CODEGEN).a'
endif
#MACRO_FLAGS += -DSDK_ARM7COMP_LTD
MAKELCF_FLAGS += -DADDRESS_LTDWRAM='0x037c0000' \
-DADDRESS_FLXMAIN='0x02280000' \
-DADDRESS_BOOTCORE='0x0380f000' \
-DCRT0_O='$(CRT0_O)'
MAKELCF_FLAGS += -DISDBG_LIBS='$(ISDBG_LIBS)'
MAKELCF_FLAGS += -DISDBG_LIBS_TWL='$(if $(ISDBG_LIBS_TWL),$(ISDBG_LIBS_TWL),libstubsistd_sp$(TWL_LIBSUFFIX).a)' \
-DISDBG_LIBS_NITRO='libstubsisd_sp$(TWL_LIBSUFFIX).a'
#--------------------------------
# install target
@ -60,6 +71,7 @@ INSTALL_TARGETS = $(BINDIR)/$(TARGET_NAME).tef \
INSTALL_DIR = $(TWL_INSTALL_COMPONENTSDIR)/$(TARGET_NAME)/$(TWL_BUILDTYPE)
LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include
LLIBRARIES += libwl_sp.TWL.LTD.a
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
do-build: $(TARGETS)

View File

@ -53,24 +53,76 @@ Autoload WRAM
libcdc_sp.TWL$(CODEGEN).a \
libtpex_sp.TWL$(CODEGEN).a \
libmicex_sp.TWL$(CODEGEN).a \
libnvram_sp.TWL$(CODEGEN).a \
librtc_sp.TWL$(CODEGEN).a \
libwvr_sp.TWL$(CODEGEN).a \
libaes_sp.TWL$(CODEGEN).a \
libboot_sp.TWL$(CODEGEN).a \
libreboot_sp.TWL$(CODEGEN).a \
libcardboot_sp.TWL$(CODEGEN).a \
$(USE_CRYPTO_LIBS) \
$(ISDBG_LIBS)
Library libsdio_hcd_twl.TWL$(CODEGEN).a \
libsdio_busdriver.TWL$(CODEGEN).a \
libsdio_lib.TWL$(CODEGEN).a \
libARM7athdrv.TWL$(CODEGEN).a
Object * (.etable)
Object * (.wram)
Object * (.ltdwram)
Object $(OBJDIR)/main.o
#####
# Sub-routines in WL library , that should be on WRAM.
# in TaskMan.o
Object OBJECT( MainTaskRoutine , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( AddTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( DeleteTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( LowestIdleTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( ExecuteMessage , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in BufMan.o
Object OBJECT( NewHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( DeleteHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( AllocateHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( ReleaseHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( MoveHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( AddHeapBuf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( GetHeapBufNextAdrs , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in WlCmdIf.o
Object OBJECT( RequestCmdTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( SendMessageToWmDirect , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in WlNic.o
Object OBJECT( WStart , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WStop , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WSetStaState , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in WlIntr.o
Object OBJECT( WlIntr , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrPreTbtt , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrTbtt , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrActEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
# Object OBJECT( WlIntrAckCntOvf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrCntOvf , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrTxErr , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrRxCntup , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrTxEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrRxEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrMpEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrStartTx , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrStartRx , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( SetParentTbttTxq , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( MacBugTxMp , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( AdjustRingPointer , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( CheckKeyTxEnd , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in WlIntrTask.o
Object OBJECT( WlIntrTxBeaconTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrTxEndTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrRxEndTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WlIntrMpEndTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( SetParentTbttTxqTask , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( TakeoutRxFrame , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in TxCtrl.o
Object OBJECT( InitTxCtrl , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in RxCtrl.o
Object OBJECT( InitRxCtrl , libwl_sp.TWL$(CODEGEN).a ) (.text)
# in WaitLoop.o
Object OBJECT( WaitLoop_Rxpe , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WaitLoop_Waitus , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WaitLoop_ClrAid , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WaitLoop_BbpAccess , libwl_sp.TWL$(CODEGEN).a ) (.text)
Object OBJECT( WaitLoop_RfAccess , libwl_sp.TWL$(CODEGEN).a ) (.text)
}
#--------
@ -79,6 +131,19 @@ Ltdautoload LTDMAIN
After $(TARGET_NAME)
Object * (.ltdmain)
Library libfatfs_sp.TWL$(CODEGEN).a
Library librompatch_sp.TWL$(CODEGEN).a
Library libnvram_sp.TWL$(CODEGEN).a
Library librtc_sp.TWL$(CODEGEN).a
Library librompatch_sp.TWL$(CODEGEN).a \
libwm_sp.TWL$(CODEGEN).a \
libnwm_sp.TWL$(CODEGEN).a \
libwvr_sp.TWL$(CODEGEN).a \
libwl_sp.TWL$(CODEGEN).a \
libboot_sp.TWL$(CODEGEN).a \
libreboot_sp.TWL$(CODEGEN).a \
libcardboot_sp.TWL$(CODEGEN).a \
Library libfatfs_sp.TWL$(CODEGEN).a \
$(USE_CRYPTO_LIBS)
Library $(ISDBG_LIBS_TWL)
Library $(ISDBG_LIBS_NITRO)
}

View File

@ -39,10 +39,13 @@
#include <sysmenu/card/common/blowfish.h>
#include <sysmenu/card/common/Card.h>
#include "nvram_sp.h"
/*---------------------------------------------------------------------------*
*---------------------------------------------------------------------------*/
/* [TODO] Work around. Should be defined in wm_sp.h */
#define WM_WL_HEAP_SIZE 0x2100
/* Priorities of each threads */
#define THREAD_PRIO_SPI 2
@ -52,6 +55,16 @@
#define THREAD_PRIO_FS 15
/* OS_THREAD_LAUNCHER_PRIORITY 16 */
/* [TODO] 以下は New WM 側に移行するほうが好ましい? */
#define NWM_DMANO 3
#define THREAD_PRIO_NWM_COMMMAND 6
#define THREAD_PRIO_NWM_EVENT 4
#define THREAD_PRIO_NWM_SDIO 5
#define THREAD_PRIO_NWM_WPA 7
// ROM 内登録エリアの拡張言語コード
#define ROMHEADER_FOR_CHINA_BIT 0x80
#define ROMHEADER_FOR_KOREA_BIT 0x40
/*---------------------------------------------------------------------------*
@ -60,8 +73,10 @@ static void ReadResetParameter( void );
static void PrintDebugInfo(void);
static OSHeapHandle InitializeAllocateSystem(void);
static void InitializeFatfs(void);
static void InitializeNwm(void);
static void InitializeCdc(void);
static void DummyThread(void* arg);
static void ReadUserInfo(void);
static void VBlankIntr(void);
/*---------------------------------------------------------------------------*
@ -89,11 +104,14 @@ TwlSpMain(void)
// OS 初期化
OS_Init();
PrintDebugInfo();
// NVRAM からユーザー情報読み出し
ReadUserInfo();
// Cold/Hotスタート判定
ReadResetParameter();
SYSMi_GetWork()->isARM9Start = TRUE; // ※HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい
ReadResetParameter();
SYSMi_GetWork()->isARM9Start = TRUE; // ※HW_RED_RESERVEDはNANDファームでクリアしておいて欲しい
// ヒープ領域設定
{
void *wram = OS_GetWramSubPrivArenaHi();
@ -122,7 +140,10 @@ TwlSpMain(void)
if (OS_IsRunOnTwl() == TRUE)
{
InitializeFatfs(); // FATFS 初期化
InitializeNwm(); // NWM 初期化
#ifndef SDK_NOCRYPTO
AES_Init(); // AES 初期化
#endif
}
if (OSi_IsCodecTwlMode() == TRUE)
@ -142,6 +163,9 @@ TwlSpMain(void)
// RTC 初期化
RTC_Init(THREAD_PRIO_RTC);
// 旧無線初期化
WVR_Begin(heapHandle);
// SPI 初期化
SPI_Init(THREAD_PRIO_SPI);
@ -244,6 +268,41 @@ InitializeFatfs(void)
}
#include <twl/ltdwram_end.h>
#include <twl/ltdwram_begin.h>
/*---------------------------------------------------------------------------*
Name: InitializeNwm
Description: NWMライブラリを初期化する
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static void
InitializeNwm(void)
{
NwmspInit nwmInit;
OSHeapHandle heapHandle;
void* Lo = (void*)OS_GetSubPrivArenaLo();
void* Hi = (void*)OS_GetSubPrivArenaHi();
heapHandle = OS_CreateHeap(OS_ARENA_MAIN_SUBPRIV, Lo, Hi);
/* [TODO] 確保したヒープ領域が新無線一式が必要としているメモリ量以上かのチェックが必要 */
nwmInit.dmaNo = NWM_DMANO;
nwmInit.cmdPrio = THREAD_PRIO_NWM_COMMMAND;
nwmInit.evtPrio = THREAD_PRIO_NWM_EVENT;
nwmInit.sdioPrio = THREAD_PRIO_NWM_SDIO;
nwmInit.drvHeap.id = OS_ARENA_MAIN_SUBPRIV; /* [TODO] */
nwmInit.drvHeap.handle = heapHandle;
#ifdef WPA_BUILT_IN /* WPA が組み込まれる場合、以下のメンバが追加される */
nwmInit.wpaPrio = THREAD_PRIO_NWM_WPA;
nwmInit.wpaHeap.id = OS_ARENA_MAIN_SUBPRIV; /* [TODO] */
nwmInit.wpaHeap.handle = heapHandle;
#endif
NWMSP_Init(&nwmInit);
}
#include <twl/ltdwram_end.h>
#include <twl/ltdwram_begin.h>
/*---------------------------------------------------------------------------*
Name: InitializeCdc
@ -265,6 +324,7 @@ InitializeCdc(void)
// CODEC 初期化
CDC_Init();
CDC_InitMic();
// CDCi_DumpRegisters();
// ダミースレッド破棄
@ -441,9 +501,69 @@ InitializeAllocateSystem(void)
// カレントヒープに設定
(void)OS_SetCurrentHeap(OS_ARENA_WRAM_SUBPRIV, hh);
// ヒープサイズの確認
{
u32 heapSize;
heapSize = (u32)OS_CheckHeap(OS_ARENA_WRAM_SUBPRIV, hh);
if (WM_WL_HEAP_SIZE > heapSize)
{
OS_Panic("Insufficient heap size. (0x%x < 0x%x)\n", heapSize, WM_WL_HEAP_SIZE);
}
OS_TPrintf("ARM7: WRAM heap size is %d\n", heapSize);
}
return hh;
}
#ifdef WM_PRECALC_ALLOWEDCHANNEL
extern u16 WMSP_GetAllowedChannel(u16 bitField);
#endif
/*---------------------------------------------------------------------------*
Name: ReadUserInfo
Description: NVRAMからユーザー情報を読み出し
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static void ReadUserInfo(void)
{
u8 *p;
// 無線MACアドレスをユーザー情報の後ろに展開
{
u8 wMac[6];
// NVRAMからMACアドレスを読み出し
NVRAM_ReadDataBytes(NVRAM_CONFIG_MACADDRESS_ADDRESS, 6, wMac);
// 展開先アドレスを計算
p = (u8 *)((u32)p + ((sizeof(NVRAMConfig) + 3) & ~0x00000003));
// 共有領域に展開
MI_CpuCopy8(wMac, p, 6);
}
#ifdef WM_PRECALC_ALLOWEDCHANNEL
// 使用可能チャンネルから使用許可チャンネルを計算
{
u16 enableChannel;
u16 allowedChannel;
// 使用可能チャンネルを読み出し
NVRAM_ReadDataBytes(NVRAM_CONFIG_ENABLECHANNEL_ADDRESS, 2, (u8 *)(&enableChannel));
// 使用許可チャンネルを計算
allowedChannel = WMSP_GetAllowedChannel((u16)(enableChannel >> 1));
// 展開先アドレスを計算(MACアドレスの後ろの2バイト)
p = (u8 *)((u32)p + 6);
// 共有領域に展開
*((u16 *)p) = allowedChannel;
}
#endif
}
/*---------------------------------------------------------------------------*
Name: VBlankIntr

View File

@ -409,7 +409,7 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList )
if( (pad.trg & PAD_BUTTON_START) || up_bl_trg ) {
brightness = TSD_GetBacklightBrightness() + 1;
if( brightness > BACKLIGHT_LEVEL_MAX ) {
if( brightness > TWL_BACKLIGHT_LEVEL_MAX ) {
brightness = 0;
}
SYSM_SetBackLightBrightness( (u8)brightness );
@ -417,7 +417,7 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList )
if( ( pad.trg & PAD_BUTTON_SELECT) || dw_bl_trg ) {
brightness = TSD_GetBacklightBrightness() - 1;
if( brightness < 0 ) {
brightness = BACKLIGHT_LEVEL_MAX;
brightness = TWL_BACKLIGHT_LEVEL_MAX;
}
SYSM_SetBackLightBrightness( (u8)brightness );
}

View File

@ -38,6 +38,7 @@ extern "C" {
#define TWL_COMMENT_LENGTH NTR_COMMENT_LENGTH // コメント長
#define TWL_COMMENT_BUFFERSIZE ( ( TWL_COMMENT_LENGTH + 1 ) * 2 ) // コメントバッファサイズ
#define TWL_FAVORITE_COLOR_MAX_NUM NTR_FAVORITE_COLOR_MAX_NUM // 好きな色の最大数
#define TWL_BACKLIGHT_LEVEL_MAX 22 // TWLバックライト最大輝度レベル
#define TSD_TEMP_BUFFER_SIZE ( sizeof(TSDStore) * 2 ) // TSD_ReadTWLSettingsで必要なTempBufferサイズ