From b88edae8d8e98a8511bbed30af6550c6736d9705 Mon Sep 17 00:00:00 2001 From: nakasima Date: Thu, 18 Dec 2008 10:53:10 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=91=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E?= =?UTF-8?q?=E3=83=B3=E3=82=B9=E3=83=A2=E3=83=8B=E3=82=BF=E6=9C=89=E5=8A=B9?= =?UTF-8?q?=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@125 b871894f-2f95-9b40-918c-086798483c85 --- .../bootrom/build/libraries/init/ARM11/crt0.c | 10 ++ trunk/bootrom/include/brom/os/common/tick.h | 116 +++++------------- trunk/include/ctr/hw/ARM11/arm11_reg.h | 4 +- 3 files changed, 40 insertions(+), 90 deletions(-) diff --git a/trunk/bootrom/build/libraries/init/ARM11/crt0.c b/trunk/bootrom/build/libraries/init/ARM11/crt0.c index 2aa2163..397c6bb 100644 --- a/trunk/bootrom/build/libraries/init/ARM11/crt0.c +++ b/trunk/bootrom/build/libraries/init/ARM11/crt0.c @@ -72,6 +72,16 @@ stupStartHandlerVeneer cmpne r12, #~0 LSYM(1) beq BSYM(1) + //---- enable performance monitor + mrc p15, 0, r0, c15, c12, 0 + ldr r1, =HW_C15_PMN_ENABLE | HW_C15_CYCLE_COUNT_RESET | HW_C15_COUNT01_RESET | \ + (HW_C15_EVT_INC_EACH_CYCLE << HW_C15_COUNT0_EVT_SFT) | \ + (HW_C15_EVT_INC_EACH_CYCLE << HW_C15_COUNT1_EVT_SFT) | \ + HW_C15_CYCLE_COUNT_D64 + orr r0, r0, r1 +// bic r0, r0, #HW_C15_CYCLE_COUNT_D64 + mcr p15, 0, r0, c15, c12, 0 + //---- check CPU-ID mrc p15,0, r0, c0, c0, 5 tst r0, #HW_C0_AP_CPU_ID_MASK diff --git a/trunk/bootrom/include/brom/os/common/tick.h b/trunk/bootrom/include/brom/os/common/tick.h index 78aaea8..81f2f99 100644 --- a/trunk/bootrom/include/brom/os/common/tick.h +++ b/trunk/bootrom/include/brom/os/common/tick.h @@ -40,14 +40,16 @@ extern void i_osSetTick( u64 ); //---- conversion tick count <-> real time count #ifdef SDK_ARM11 -#define OS_SYSTEM_CLOCK HW_CPU_CLOCK +#define OS_TICK_CLOCK HW_CPU_CLOCK +#define OS_TICK_PRESCALE 1 #define OS_TICK_HI_SHIFT 24 // 2の累乗単位でチック管理するのであれば32は指定できない(ロード値0では割り込みが発生しないため) #define OS_TICK_HI_LSB (1ULL<>1)) #define OS_TICK_LO_LIMIT OS_TICK_HI_LSB #else // SDK_ARM9 -#define OS_SYSTEM_CLOCK HW_SYSTEM_CLOCK +#define OS_TICK_CLOCK HW_SYSTEM_CLOCK +#define OS_TICK_PRESCALE 64 #define OS_TICK_HI_SHIFT 16 // ロード値0でも割り込み発生 #define OS_TICK_HI_LSB (1ULL<