mirror of
https://github.com/rvtr/ctr_firmware.git
synced 2025-10-31 07:51:08 -04:00
ARM11-MMU設定追加。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@57 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
parent
c3b7cb9bf7
commit
adf90ea104
@ -170,27 +170,14 @@ ASM void stupEnableCP15( void )
|
||||
//
|
||||
mrc p15, 0, r0, c1, c0, 0
|
||||
|
||||
|
||||
#if 1 // 0 -> 1 miya
|
||||
ldr r1, =HW_C1_EXCEPT_VEC_UPPER \
|
||||
| HW_C1_FORCE_AP_BIT \
|
||||
| HW_C1_UNALIGN_ACCESS_ENABLE \
|
||||
| HW_C1_BR_PREDICT_ENABLE \
|
||||
| HW_C1_MMU_V6 \
|
||||
| HW_C1_IC_ENABLE \
|
||||
| HW_C1_DC_ENABLE \
|
||||
| HW_C1_MMU_ENABLE
|
||||
#else
|
||||
ldr r1, =HW_C1_0_SB1 \
|
||||
| HW_C1_EXCEPT_LITTLE_ENDIAN \
|
||||
| HW_C1_EXCEPT_VEC_UPPER \
|
||||
| HW_C1_UNALIGN_ACCESS_ENABLE \
|
||||
| HW_C1_BR_PREDICT_ENABLE \
|
||||
| HW_C1_MMU_V6 \
|
||||
| HW_C1_IC_ENABLE \
|
||||
| HW_C1_DC_ENABLE \
|
||||
| HW_C1_MMU_ENABLE
|
||||
#endif
|
||||
|
||||
orr r0, r0, r1
|
||||
|
||||
@ -230,7 +217,7 @@ ASM void stupInitMMU( void )
|
||||
|
||||
ldr r0, =HW_BROM_MMU_T1
|
||||
|
||||
mov r2, #HW_C2_V5_T1_BOUNBRY_16KB
|
||||
mov r2, #HW_C2_V5_T1_BOUNBARY_16KB
|
||||
|
||||
// MMU L1 Table Base
|
||||
|
||||
@ -326,9 +313,8 @@ void stupInitMMUTable( void )
|
||||
paddr += HW_MMU6_T1_SEC_SIZE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
table = &t2Base[0];
|
||||
for ( paddr = (u32 )NULL; table < (void *)HW_MAIN_MEM_MMU_T2_END; )
|
||||
for ( paddr = (u32 )NULL; table < (void *)HW_BROM_MMU_T1_END; )
|
||||
{
|
||||
*table++ = HW_MMU6_T2_SP_PACK(
|
||||
paddr,
|
||||
@ -336,29 +322,61 @@ void stupInitMMUTable( void )
|
||||
HW_MMU6_T2_LP_RGT_STRONG_ORDER,
|
||||
HW_MMU6_T2_GLOBAL,
|
||||
FALSE,
|
||||
HW_MMU6_T2_SP_XN);
|
||||
HW_MMU6_T2_SP_XN);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// EDRAM Region (4MB uncache)
|
||||
table = &t1Base[HW_EDRAM/HW_MMU6_T1_SEC_SIZE];
|
||||
for ( paddr = HW_EDRAM; paddr < HW_EDRAM_END; )
|
||||
// BROM Region (64KBx2 cached)
|
||||
table = &t1Base[HW_BIOS_IMG/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_BIOS_IMG;
|
||||
*table = HW_MMU6_T1_COURSE_PACK( paddr, 0 );
|
||||
// T2 for Page
|
||||
table = &t2Base[0];
|
||||
for ( paddr = HW_BIOS_IMG; paddr < HW_BROM_END; )
|
||||
{
|
||||
*table++ = HW_MMU6_T1_SEC_PACK(
|
||||
*table++ = HW_MMU6_T2_LP_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T2_APX_ALL,
|
||||
HW_MMU6_T2_LP_RGT_L1L2C_WB_WA,
|
||||
HW_MMU6_T2_GLOBAL,
|
||||
FALSE,
|
||||
FALSE);
|
||||
paddr += HW_MMU6_T2_LP_ALIAS_SIZE;
|
||||
}
|
||||
// Coarse page is 1KB boundary
|
||||
t2Base += MATH_ROUNDUP(HW_BROM_SIZE*2, HW_MMU6_T1_CORS_SIZE)/sizeof(t2Base[0]);
|
||||
|
||||
// IO Registers Region (16MB)
|
||||
table = &t1Base[HW_IOREG/HW_MMU6_T1_SEC_SIZE];
|
||||
for ( paddr = HW_IOREG; paddr < HW_IOREG + HW_MMU6_T1_SUSEC_SIZE; )
|
||||
{
|
||||
|
||||
*table++ = HW_MMU6_T1_SUSEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_L1L2C_NC,
|
||||
HW_MMU6_T1_RGT_SHARED_DEV,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE
|
||||
);
|
||||
paddr += HW_MMU6_T1_SEC_SIZE;
|
||||
}
|
||||
|
||||
// MPCore Registers Region (1MB)
|
||||
table = &t1Base[HW_MPCORE_REG/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_MPCORE_REG;
|
||||
*table++ = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_NSHARED_DEV,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
paddr += HW_MMU6_T1_SEC_SIZE;
|
||||
}
|
||||
|
||||
// EDRAM Region (4MB cache)
|
||||
table = &t1Base[HW_EDRAM_CACHED/HW_MMU6_T1_SEC_SIZE];
|
||||
for ( paddr = HW_EDRAM; paddr < HW_EDRAM_END; )
|
||||
// VRAM Region (4MB cached)
|
||||
table = &t1Base[HW_VRAM/HW_MMU6_T1_SEC_SIZE];
|
||||
for ( paddr = HW_VRAM; paddr < HW_VRAM_END; )
|
||||
{
|
||||
*table++ = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
@ -371,49 +389,36 @@ void stupInitMMUTable( void )
|
||||
paddr += HW_MMU6_T1_SEC_SIZE;
|
||||
}
|
||||
|
||||
// Main Memory Region (64MB uncache)
|
||||
table = &t1Base[HW_MAIN_MEM/HW_MMU6_T1_SEC_SIZE];
|
||||
|
||||
|
||||
#ifdef MIYA_MMU
|
||||
for ( paddr = HW_MAIN_MEM; paddr < HW_MAIN_MEM_SEC_END; )
|
||||
#else
|
||||
for ( paddr = HW_MAIN_MEM; paddr < (HW_MAIN_MEM +( 64 * 1024 *1024 )); )
|
||||
#endif
|
||||
{
|
||||
|
||||
*table++ = HW_MMU6_T1_SEC_PACK(
|
||||
// AXI-WRAM & DSP-WRAM Region (1MB cached)
|
||||
table = &t1Base[HW_DSP_WRAM/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_DSP_WRAM;
|
||||
*table++ = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_L1L2C_NC,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
paddr += HW_MMU6_T1_SEC_SIZE;
|
||||
}
|
||||
|
||||
|
||||
// Main Memory Region (64MB cache)
|
||||
table = &t1Base[HW_MAIN_MEM_CACHED/HW_MMU6_T1_SEC_SIZE];
|
||||
#ifdef MIYA_MMU
|
||||
for ( paddr = HW_MAIN_MEM; paddr < HW_MAIN_MEM_SEC_END; )
|
||||
#else
|
||||
for ( paddr = HW_MAIN_MEM; paddr < (HW_MAIN_MEM +( 64 * 1024 *1024 )); )
|
||||
#endif
|
||||
{
|
||||
|
||||
*table++ = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_L1L2C_WB_WA,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
|
||||
// Main Memory Region (128MB cached)
|
||||
table = &t1Base[HW_MAIN_MEM/HW_MMU6_T1_SEC_SIZE];
|
||||
for ( paddr = HW_MAIN_MEM; paddr < HW_MAIN_MEM_EX_END; )
|
||||
{
|
||||
|
||||
*table++ = HW_MMU6_T1_SUSEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_L1L2C_WB_WA,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE
|
||||
);
|
||||
paddr += HW_MMU6_T1_SEC_SIZE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
#ifdef MIYA_MMU
|
||||
*table = HW_MMU6_T1_COURSE_PACK( paddr, 0 );
|
||||
// T2 for Page
|
||||
@ -459,108 +464,6 @@ void stupInitMMUTable( void )
|
||||
t2Base += HW_MMU6_T1_CORS_SIZE/sizeof(t2Base[0]);
|
||||
#endif
|
||||
|
||||
// IO Registers Region (4MB)
|
||||
// IOPIF (4MB) 0x40000000
|
||||
table = &t1Base[HW_IOPIF/HW_MMU6_T1_SEC_SIZE];
|
||||
for ( paddr = HW_IOPIF; paddr < (HW_IOPIF + 0x00100000 * 16) ; ) // HW_IOPIF_END
|
||||
{
|
||||
*table++ = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_NSHARED_DEV,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
paddr += HW_MMU6_T1_SEC_SIZE;
|
||||
}
|
||||
|
||||
// APBIF (64KB) 0x44100000
|
||||
table = &t1Base[HW_APBIF/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_APBIF;
|
||||
*table = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_NSHARED_DEV,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
// GPUIF (64MB) 0x48000000
|
||||
table = &t1Base[HW_GPUIF/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_GPUIF;
|
||||
*table = HW_MMU6_T1_SUSEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_NSHARED_DEV,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE);
|
||||
|
||||
// CONFIF (64KB) 0xfe000000 mmio cfg.
|
||||
table = &t1Base[HW_CONFIF/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_CONFIF;
|
||||
*table = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_NSHARED_DEV,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
|
||||
// MPCore Registers Region (8KB) 0xff000000
|
||||
table = &t1Base[HW_MPCORE_REG/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_MPCORE_REG;
|
||||
*table = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_NSHARED_DEV,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
|
||||
|
||||
// TCRAM Region (4KB)
|
||||
table = &t1Base[HW_TCRAM/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_TCRAM;
|
||||
|
||||
*table = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_L1L2C_NC,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
|
||||
|
||||
|
||||
// BIOS Region (32KB) 0xffff0000
|
||||
table = &t1Base[HW_BIOS/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_BIOS;
|
||||
*table = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_L1L2C_WB_WA,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
|
||||
|
||||
// MSelect Region (4KB) = 0xfdff0000
|
||||
table = &t1Base[HW_MSEL_VIRTUAL/HW_MMU6_T1_SEC_SIZE];
|
||||
paddr = HW_BIOS;
|
||||
*table = HW_MMU6_T1_SEC_PACK(
|
||||
paddr,
|
||||
HW_MMU6_T1_APX_ALL,
|
||||
HW_MMU6_T1_RGT_STRONG_ORDER,
|
||||
HW_MMU6_T1_GLOBAL,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -27,11 +27,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
//------------------------------------- BROM
|
||||
#ifdef BROM_ENABLE_WRAMEMU
|
||||
#define HW_BROM HW_WRAM
|
||||
#else // BROM_ENABLE_WRAMEMU
|
||||
#define HW_BROM HW_BIOS
|
||||
#endif
|
||||
#define HW_BROM_END (HW_BROM + HW_BROM_SIZE)
|
||||
#define HW_BROM_SIZE 0x10000 // 64KB
|
||||
|
||||
|
||||
23
trunk/bootrom/include/brom/math.h
Normal file
23
trunk/bootrom/include/brom/math.h
Normal file
@ -0,0 +1,23 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlBrom - include - MATH
|
||||
File: math.h
|
||||
|
||||
Copyright 2008 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:: #$
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
#ifndef BROM_MATH_H_
|
||||
#define BROM_MATH_H_
|
||||
|
||||
#include <brom/math/math.h>
|
||||
|
||||
/* BROM_MATH_H_ */
|
||||
#endif
|
||||
203
trunk/bootrom/include/brom/math/math.h
Normal file
203
trunk/bootrom/include/brom/math/math.h
Normal file
@ -0,0 +1,203 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlBrom - MATH - include
|
||||
File: math/math.h
|
||||
|
||||
Copyright 2008 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:: $
|
||||
$Rev:$
|
||||
$Author:$
|
||||
*---------------------------------------------------------------------------*/
|
||||
#ifndef BROM_MATH_MATH_H_
|
||||
#define BROM_MATH_MATH_H_
|
||||
|
||||
#include <brom/misc.h>
|
||||
#include <brom/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Type definition
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Declaration of function
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Implementation of inline function
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_ABS
|
||||
|
||||
Description: 絶対値を返すマクロ。
|
||||
各引数は複数回評価されるため、副作用に注意。
|
||||
|
||||
Arguments: a
|
||||
|
||||
Returns: a < 0 なら -a, さもなくば a
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_ABS(a) ( ( (a) < 0 ) ? (-(a)) : (a) )
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_IAbs
|
||||
|
||||
Description: 絶対値を返すインライン関数。
|
||||
インライン関数として実装されているので、副作用はない。
|
||||
|
||||
Arguments: a
|
||||
|
||||
Returns: a < 0 なら -a, さもなくば a
|
||||
*---------------------------------------------------------------------------*/
|
||||
SDK_INLINE int MATH_IAbs(int a)
|
||||
{
|
||||
return (a < 0) ? -a : a;
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_CLAMP
|
||||
|
||||
Description: lowからhighの範囲の値を取得するマクロ。
|
||||
各引数は複数回評価されるため、副作用に注意。
|
||||
|
||||
Arguments: x
|
||||
low 最大値
|
||||
hight 最小値
|
||||
|
||||
Returns: x < low ならば low, x > high ならば high さもなくば x
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_CLAMP(x, low, high) ( ( (x) > (high) ) ? (high) : ( ( (x) < (low) ) ? (low) : (x) ) )
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_MIN
|
||||
|
||||
Description: 2つの引数のどちらか小さいほうを返す。
|
||||
マクロとして実装されているので、不等号演算子が定義されている
|
||||
型で使用可能。各引数は複数回評価されるため、副作用に注意。
|
||||
|
||||
Arguments: a, b
|
||||
|
||||
Returns: a < b なら a, さもなくば b
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_MIN(a,b) (((a) <= (b)) ? (a) : (b))
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_IMin
|
||||
|
||||
Description: 2つの int 型整数引数のどちらか小さいほうを返す。
|
||||
インライン関数として実装されているので、副作用はない。
|
||||
|
||||
Arguments: a, b - int 型整数
|
||||
|
||||
Returns: a <= b なら a, さもなくば b
|
||||
*---------------------------------------------------------------------------*/
|
||||
SDK_INLINE int MATH_IMin(int a, int b)
|
||||
{
|
||||
return (a <= b) ? a : b;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_MAX
|
||||
|
||||
Description: 2つの引数のどちらか大きいほうを返す。
|
||||
マクロとして実装されているので、不等号演算子が定義されている
|
||||
型で使用可能。各引数は複数回評価されるため、副作用に注意。
|
||||
|
||||
Arguments: a, b
|
||||
|
||||
Returns: a >= b なら a, さもなくば b
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_MAX(a,b) (((a) >= (b)) ? (a) : (b))
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_IMax
|
||||
|
||||
Description: 2つの int 型整数引数のどちらか大きいほうを返す。
|
||||
インライン関数として実装されているので、副作用はない。
|
||||
|
||||
Arguments: a, b - int 型整数
|
||||
|
||||
Returns: a >= b なら a, さもなくば b
|
||||
*---------------------------------------------------------------------------*/
|
||||
SDK_INLINE int MATH_IMax(int a, int b)
|
||||
{
|
||||
return (a >= b) ? a : b;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_DIVUP
|
||||
|
||||
Description: base で割り端数を切り上げるマクロ。
|
||||
|
||||
Arguments: x: 数値
|
||||
base: 2 のべき乗の基数
|
||||
|
||||
Returns: x を base で割り端数を切り上げた数
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_DIVUP(x, base) (((x) + ((base)-1)) / (base))
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_ROUNDUP
|
||||
|
||||
Description: 切り上げた数値を返すマクロ。
|
||||
|
||||
Arguments: x
|
||||
base - 2 のべき乗の基数
|
||||
|
||||
Returns: x 以上の最小の base の倍数
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_ROUNDUP(x, base) (((x) + ((base)-1)) & ~((base)-1))
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_ROUNDDOWN
|
||||
|
||||
Description: 切り下げた数値を返すマクロ。
|
||||
|
||||
Arguments: x
|
||||
base - 2 のべき乗の基数
|
||||
|
||||
Returns: x 以下の最大の base の倍数
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_ROUNDDOWN(x, base) ((x) & ~((base)-1))
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_ROUNDUP32
|
||||
|
||||
Description: 32の倍数に切り上げた数値を返すマクロ。
|
||||
|
||||
Arguments: x
|
||||
|
||||
Returns: x 以上の最小の32の倍数
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_ROUNDUP32(x) MATH_ROUNDUP(x, 32)
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MATH_ROUNDDOWN32
|
||||
|
||||
Description: 32の倍数に切り下げた数値を返すマクロ。
|
||||
|
||||
Arguments: x
|
||||
|
||||
Returns: x 以下の最大の32の倍数
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define MATH_ROUNDDOWN32(x) MATH_ROUNDDOWN(x, 32)
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}/* extern "C" */
|
||||
#endif
|
||||
|
||||
/* BROM_MATH_MATH_H_ */
|
||||
#endif
|
||||
@ -28,6 +28,7 @@ extern "C" {
|
||||
#include <ctr/os/common/svc.h>
|
||||
|
||||
#include <brom/init/crt0.h>
|
||||
#include <brom/math.h>
|
||||
#if 0
|
||||
#include <brom/os/common/systemWork.h>
|
||||
#include <brom/os/common/system.h>
|
||||
|
||||
@ -124,16 +124,16 @@ extern "C" {
|
||||
|
||||
// Register 2.0.2 : MMU L1 Table Boundary
|
||||
|
||||
#define HW_C2_V5_T1_BOUNBRY_MASK 0x00000007 // the size of the first-level translation table base boundary for MMUv5
|
||||
#define HW_C2_V5_T1_BOUNBARY_MASK 0x00000007 // the size of the first-level translation table base boundary for MMUv5
|
||||
|
||||
#define HW_C2_V5_T1_BOUNBRY_16KB 0 // 16KB
|
||||
#define HW_C2_V5_T1_BOUNBRY_8KB 1 // 8KB
|
||||
#define HW_C2_V5_T1_BOUNBRY_4KB 2 // 4KB
|
||||
#define HW_C2_V5_T1_BOUNBRY_2KB 3 // 2KB
|
||||
#define HW_C2_V5_T1_BOUNBRY_1KB 4 // 1KB
|
||||
#define HW_C2_V5_T1_BOUNBRY_512B 5 // 512B
|
||||
#define HW_C2_V5_T1_BOUNBRY_256B 6 // 256B
|
||||
#define HW_C2_V5_T1_BOUNBRY_128B 7 // 128B
|
||||
#define HW_C2_V5_T1_BOUNBARY_16KB 0 // 16KB
|
||||
#define HW_C2_V5_T1_BOUNBARY_8KB 1 // 8KB
|
||||
#define HW_C2_V5_T1_BOUNBARY_4KB 2 // 4KB
|
||||
#define HW_C2_V5_T1_BOUNBARY_2KB 3 // 2KB
|
||||
#define HW_C2_V5_T1_BOUNBARY_1KB 4 // 1KB
|
||||
#define HW_C2_V5_T1_BOUNBARY_512B 5 // 512B
|
||||
#define HW_C2_V5_T1_BOUNBARY_256B 6 // 256B
|
||||
#define HW_C2_V5_T1_BOUNBARY_128B 7 // 128B
|
||||
|
||||
|
||||
// Register 3 : Domain Access Control
|
||||
|
||||
@ -70,12 +70,12 @@ extern "C" {
|
||||
#define HW_MPCORE_REG_SIZE 0x20000 // 128KB
|
||||
|
||||
//----------------------------- System ROM
|
||||
#define HW_BIOS 0xffff0000
|
||||
#define HW_BIOS_IMG 0x00000000
|
||||
#define HW_BIOS 0x00010000
|
||||
#define HW_BIOS_END (HW_BIOS + HW_BIOS_SIZE)
|
||||
#define HW_BIOS_EX HW_BIOS_END
|
||||
#define HW_BIOS_EX_END (HW_BIOS_EX + HW_BIOS_EX_SIZE)
|
||||
#define HW_BIOS_IMG_END (HW_BIOS_IMG + HW_BIOS_EX_SIZE)
|
||||
#define HW_BIOS_SIZE 0x8000 // 32KB
|
||||
#define HW_BIOS_EX_SIZE 0x10000 // 64KB
|
||||
#define HW_BIOS_IMG_SIZE 0x8000 // 32KB
|
||||
|
||||
#define HW_RESET_VECTOR HW_BIOS
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ extern "C" {
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
//----------------------------- ITCM
|
||||
#define HW_ITCM_IMAGE 0x01000000
|
||||
#define HW_ITCM_IMG 0x01000000
|
||||
#define HW_ITCM 0x01ff8000
|
||||
#define HW_ITCM_SIZE 0x8000 // 32KB
|
||||
#define HW_ITCM_END (HW_ITCM + HW_ITCM_SIZE)
|
||||
|
||||
@ -22,7 +22,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef SDK_WIN32
|
||||
#include <ctr/os/common/printf.h>
|
||||
//#include <ctr/os/common/printf.h>
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
Loading…
Reference in New Issue
Block a user