SDK_TS_VERSION >= 300の時はMCU互換機能を外すようにした

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@743 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2008-02-26 06:11:19 +00:00
parent 9d655b885c
commit 72aa2161ee
4 changed files with 112 additions and 40 deletions

View File

@ -86,6 +86,15 @@ static void CreateIdleThread(void)
OS_WakeupThreadDirect(&idleThread); OS_WakeupThreadDirect(&idleThread);
} }
// MCU旧バージョン対策
#if SDK_TS_VERSION <= 200
static u8 version = 0;
#define IS_OLD_MCU (version ? (version < 0x20) : ((version=MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR )) < 0x20))
#else
#define IS_OLD_MCU FALSE
#define MCU_OLD_REG_TEMP_ADDR MCU_REG_TEMP_ADDR // avoid compiler error
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -97,13 +106,16 @@ static void PreInit(void)
/* /*
*/ */
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 ) if ( !IS_OLD_MCU ) // MCU旧バージョン対策
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
/* /*
FromBrom関連 FromBrom関連
@ -116,10 +128,14 @@ static void PreInit(void)
(1)(1) (1)(1)
*/ */
#define HOTSTART_FLAG_ENABLE 0x80 #define HOTSTART_FLAG_ENABLE 0x80
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCUŒƒo<C692>[ƒWƒ‡ƒ“Î<E28098>ô if ( IS_OLD_MCU ) // MCU旧バージョン対策
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
else else
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
} }
/*************************************************************** /***************************************************************
@ -138,13 +154,16 @@ static void PostInit(void)
/* /*
*/ */
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 ) if ( !IS_OLD_MCU ) // MCU旧バージョン対策
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
} }

View File

@ -86,6 +86,15 @@ static void CreateIdleThread(void)
OS_WakeupThreadDirect(&idleThread); OS_WakeupThreadDirect(&idleThread);
} }
// MCU旧バージョン対策
#if SDK_TS_VERSION <= 200
static u8 version = 0;
#define IS_OLD_MCU (version ? (version < 0x20) : ((version=MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR )) < 0x20))
#else
#define IS_OLD_MCU FALSE
#define MCU_OLD_REG_TEMP_ADDR MCU_REG_TEMP_ADDR // avoid compiler error
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -97,14 +106,16 @@ static void PreInit(void)
/* /*
*/ */
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCU旧バージョン対策 if ( !IS_OLD_MCU ) // MCU旧バージョン対策
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
/* /*
FromBrom関連 FromBrom関連
@ -117,10 +128,14 @@ static void PreInit(void)
(1)(1) (1)(1)
*/ */
#define HOTSTART_FLAG_ENABLE 0x80 #define HOTSTART_FLAG_ENABLE 0x80
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCU旧バージョン対策 if ( IS_OLD_MCU ) // MCU旧バージョン対策
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
else else
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
} }
/*************************************************************** /***************************************************************
@ -139,14 +154,16 @@ static void PostInit(void)
/* /*
*/ */
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCU旧バージョン対策 if ( !IS_OLD_MCU ) // MCU旧バージョン対策
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
} }

View File

@ -87,6 +87,15 @@ static void CreateIdleThread(void)
OS_WakeupThreadDirect(&idleThread); OS_WakeupThreadDirect(&idleThread);
} }
// MCU旧バージョン対策
#if SDK_TS_VERSION <= 200
static u8 version = 0;
#define IS_OLD_MCU (version ? (version < 0x20) : ((version=MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR )) < 0x20))
#else
#define IS_OLD_MCU FALSE
#define MCU_OLD_REG_TEMP_ADDR MCU_REG_TEMP_ADDR // avoid compiler error
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -98,14 +107,16 @@ static void PreInit(void)
/* /*
*/ */
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCU旧バージョン対策 if ( !IS_OLD_MCU ) // MCU旧バージョン対策
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
/* /*
FromBrom関連 FromBrom関連
@ -118,10 +129,14 @@ static void PreInit(void)
(1)(1) (1)(1)
*/ */
#define HOTSTART_FLAG_ENABLE 0x80 #define HOTSTART_FLAG_ENABLE 0x80
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCU旧バージョン対策 if ( IS_OLD_MCU ) // MCU旧バージョン対策
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
else else
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
} }
/*************************************************************** /***************************************************************
@ -140,14 +155,16 @@ static void PostInit(void)
/* /*
*/ */
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCU旧バージョン対策 if ( !IS_OLD_MCU ) // MCU旧バージョン対策
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
} }

View File

@ -86,6 +86,15 @@ static void CreateIdleThread(void)
OS_WakeupThreadDirect(&idleThread); OS_WakeupThreadDirect(&idleThread);
} }
// MCU旧バージョン対策
#if SDK_TS_VERSION <= 200
static u8 version = 0;
#define IS_OLD_MCU (version ? (version < 0x20) : ((version=MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR )) < 0x20))
#else
#define IS_OLD_MCU FALSE
#define MCU_OLD_REG_TEMP_ADDR MCU_REG_TEMP_ADDR // avoid compiler error
#endif
/*************************************************************** /***************************************************************
PreInit PreInit
@ -97,13 +106,16 @@ static void PreInit(void)
/* /*
*/ */
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 ) if ( !IS_OLD_MCU ) // MCU旧バージョン対策
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
/* /*
FromBrom関連 FromBrom関連
@ -116,10 +128,14 @@ static void PreInit(void)
(1)(1) (1)(1)
*/ */
#define HOTSTART_FLAG_ENABLE 0x80 #define HOTSTART_FLAG_ENABLE 0x80
if ( MCUi_ReadRegister( MCU_REG_VER_INFO_ADDR ) >= 0x20 ) // MCUŒƒo<C692>[ƒWƒ‡ƒ“Î<E28098>ô if ( IS_OLD_MCU ) // MCU旧バージョン対策
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
else else
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_OLD_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE); {
*(u8 *)HW_NAND_FIRM_HOTSTART_FLAG = (u8)(MCUi_ReadRegister( (u16)(MCU_REG_TEMP_ADDR + OS_MCU_RESET_VALUE_OFS) ) | HOTSTART_FLAG_ENABLE);
}
} }
/*************************************************************** /***************************************************************
@ -138,13 +154,16 @@ static void PostInit(void)
/* /*
*/ */
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 ) if ( !IS_OLD_MCU ) // MCU旧バージョン対策
{ {
if ( (MCUi_ReadRegister( MCU_REG_POWER_INFO_ADDR ) & MCU_REG_POWER_INFO_LEVEL_MASK) == 0 )
{
#ifndef SDK_FINALROM #ifndef SDK_FINALROM
OS_TPanic("Battery is empty.\n"); OS_TPanic("Battery is empty.\n");
#else #else
PM_Shutdown(); PM_Shutdown();
#endif #endif
}
} }
} }