diff --git a/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c b/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c index 609d729..55dfa95 100644 --- a/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c +++ b/trunk/bootrom/build/libraries/init/ARM9/crt0_secure_sp.c @@ -136,7 +136,7 @@ asm void i_stupInitCP15(void) ; Region 0: MAIN_MEM: Base = 0x20000000, Size = 128MB, I:NC NB / D:NC NB, I:NA / D:RW ; Region 1: IO_AXIRAM: Base = 0x10000000, Size = 256MB, I:NC NB / D:NC NB, I:NA / D:RW ; Region 2: PRV_WRAM: Base = 0x08000000, Size = 1MB, I:Cach Buf / D:Cach Buf, I:NA / D:RW -; Region 3: PRV_WRAM_SYSRV:Base = 0x08000000, Size = 4MB, I:Cach Buf / D:Cach Buf, I:RO / D:RW +; Region 3: PRV_WRAM_SYSRV:Base = 0x08000000, Size = 4KB, I:Cach Buf / D:Cach Buf, I:RO / D:RW ; Region 4: DTCM: Base = 0xfffe0000, Size = 16KB, I:NC NB / D:NC NB, I:NA / D:RW ; Region 5: ITCM: Base = 0x07ff8000, Size = 32KB, I:Cach Buf / D:NC NB, I:RO / D:RW ; Region 6: BIOS: Base = 0xffff0000, Size = 64KB, I:Cach NB / D:Cach NB, I:RO / D:RO @@ -167,8 +167,13 @@ asm void i_stupInitCP15(void) SET_PROTECTION_B( c2, HW_PRV_WRAM, 1MB ) //---- PRV_WRAM_SYSRV +#ifndef SDK_MG20EMU SET_PROTECTION_A( c3, HW_PRV_WRAM_SYSRV, 4KB ) SET_PROTECTION_B( c3, HW_PRV_WRAM_SYSRV, 4KB ) +#else // SDK_MG20EMU + SET_PROTECTION_A( c3, HW_MG20IOP_REG, 1MB ) + SET_PROTECTION_B( c3, HW_MG20IOP_REG, 1MB ) +#endif // SDK_MG20EMU //---- データ TCM ldr r0, =STUPi_HW_DTCM @@ -238,7 +243,11 @@ asm void i_stupInitCP15(void) // BIOS : RO // SHARED : NA // +#ifndef SDK_MG20EMU ldr r0, =REGION_ACC(NA,NA,NA,RO,NA,RO,RO,NA) +#else // SDK_MG20EMU + ldr r0, =REGION_ACC(NA,NA,RO,NA,NA,RO,RO,NA) +#endif // SDK_MG20EMU mcr p15, 0, r0, c5, c0, 3 // @@ -250,12 +259,12 @@ asm void i_stupInitCP15(void) // DTCM : RW // ITCM : RW // BIOS : RO - // SHARED : NA + // SHARED : RW // #ifdef BROM_ENABLE_BOOTROM_WRITE - ldr r0, =REGION_ACC(RW,RW,RW,RW,RW,RW,RW,NA) + ldr r0, =REGION_ACC(RW,RW,RW,RW,RW,RW,RW,RW) #else // BROM_ENABLE_BOOTROM_WRITE - ldr r0, =REGION_ACC(RW,RW,RW,RW,RW,RW,RO,NA) + ldr r0, =REGION_ACC(RW,RW,RW,RW,RW,RW,RO,RW) #endif // BROM_ENABLE_BOOTROM_WRITE mcr p15, 0, r0, c5, c0, 2 diff --git a/trunk/bootrom/build/libraries/os/common/os_irqHandler.c b/trunk/bootrom/build/libraries/os/common/os_irqHandler.c index 017fd4b..004cebd 100644 --- a/trunk/bootrom/build/libraries/os/common/os_irqHandler.c +++ b/trunk/bootrom/build/libraries/os/common/os_irqHandler.c @@ -67,8 +67,7 @@ asm void osIrqHandler( void ) #else // SDK_ARM9 // get IE address - mov r12, #HW_REG_BASE - add r12, r12, #REG_IE_OFFSET // r12: REG_IE address + ldr r12, =REG_IE_ADDR // r12: REG_IE address // get IE&IF ldmia r12, { r1-r2 } // r1: IE, r2: IF diff --git a/trunk/build/buildsetup/ioreg_sp/Makefile b/trunk/build/buildsetup/ioreg_sp/Makefile index 621db76..02c7dab 100644 --- a/trunk/build/buildsetup/ioreg_sp/Makefile +++ b/trunk/build/buildsetup/ioreg_sp/Makefile @@ -30,6 +30,10 @@ TARGET_PREFIX = $(subst .h,,$(TARGET)) TARGET_SUBFILES = $(TARGET_PREFIX)_*.h TARGET_TMPCSV = $(TARGET_PREFIX).csv +MG20_SUFFIX = _mg20patch +CSVSRC_PATCH = $(basename $(CSVSRC))$(MG20_SUFFIX)$(suffix $(CSVSRC)) + + # build TARGETS = $(TARGET) $(TARGET_SUBFILES) @@ -52,9 +56,14 @@ include $(CTRFIRM_ROOT)/build/buildtools/commondefs do-build: $(TARGET) -$(TARGET): $(CSVSRC) $(SCRIPT) +$(TARGET): $(CSVSRC) $(CSVSRC_PATCH) $(SCRIPT) $(CP) $(CSVSRC) $(TARGET_TMPCSV) $(PERL) $(SCRIPT) $(TARGET_TMPCSV) +ifeq ($(CTR_PLATFORM),MG20EMU) + $(CP) $(CSVSRC_PATCH) $(TARGET_TMPCSV) + $(PERL) $(SCRIPT) -s $(TARGET_TMPCSV) +else +endif #---------------------------------------------------------------------------- diff --git a/trunk/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl b/trunk/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl index 4277a0c..1dd9c31 100755 --- a/trunk/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl +++ b/trunk/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl @@ -582,7 +582,6 @@ ENDDOC # コマンドラインオプションの設定 # - # -vか-verboseが指定されているとverboseモード if ($v == 1 || $verbose == 1) { $verbose_mode = 1; @@ -598,6 +597,14 @@ if ($nodup == 1) { $duplicate_ok = 1; } +# -sが指定されているとマスターファイル非生成モード +if ($s) { + $cancel_master_file = 1; + verbose("cancel master file mode on\n"); +} else { + $cancel_master_file = 0; +} + @@ -653,6 +660,10 @@ foreach $filename (@ARGV) { output($output_filename, $category); } + if ($cancel_master_file) { + exit(0); + } + my $master_filename = $filename; if (($master_filename =~ s/\.csv/\.h/) == 0) { $master_filename .= ".h"; diff --git a/trunk/build/buildsetup/ioreg_sp/io_register_list_sp_mg20patch.csv b/trunk/build/buildsetup/ioreg_sp/io_register_list_sp_mg20patch.csv new file mode 100644 index 0000000..08a3f99 --- /dev/null +++ b/trunk/build/buildsetup/ioreg_sp/io_register_list_sp_mg20patch.csv @@ -0,0 +1,11 @@ +$OS:HW_MG20IOP_REG,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, + +#offset,condition,name,bit,rw,category,volatile/permanent,fieldname,shift,bit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#割り込み,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x10004,,IE,32,rw,OS,volatile,D3,31,1,D2,30,1,D1,29,1,D0,28,1,LMC,27,1,CGC_DET,26,1,CGC_I,25,1,CMC2,24,1,CMC1,23,1,RSA,22,1,J_TX,21,1,J_RX,20,1,SD3_A,19,1,SD3,18,1,SD1_A,17,1,SD1,16,1,AES,15,1,PXI_RX,14,1,PXI_TX,13,1,A11,12,1,T3,6,1,T2,5,1,T1,4,1,T0,3,1 +0x10008,,IF,32,rw,OS,volatile,D3,31,1,D2,30,1,D1,29,1,D0,28,1,LMC,27,1,CGC_DET,26,1,CGC_I,25,1,CMC2,24,1,CMC1,23,1,RSA,22,1,J_TX,21,1,J_RX,20,1,SD3_A,19,1,SD3,18,1,SD1_A,17,1,SD1,16,1,AES,15,1,PXI_RX,14,1,PXI_TX,13,1,A11,12,1,T3,6,1,T2,5,1,T1,4,1,T0,3,1 +#タイマ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x30000,,TM0CNT_L,16,rw,OS,volatile,CTR,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x30002,,TM0CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,PS,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x30004,,TM1CNT_L,16,rw,OS,volatile,CTR,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x30006,,TM1CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,CH,2,1,PS,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/trunk/include/ctr/hw/ARM9/mmap_global.h b/trunk/include/ctr/hw/ARM9/mmap_global.h index f79b64b..ce1625a 100644 --- a/trunk/include/ctr/hw/ARM9/mmap_global.h +++ b/trunk/include/ctr/hw/ARM9/mmap_global.h @@ -100,6 +100,9 @@ extern "C" { #define HW_IOREG_END 0x10000000 #define HW_REG_BASE HW_IOREG // alias +#define HW_MG20IOP_REG 0x40000000 +#define HW_MG20IOP_REG_END 0x40100000 + #endif // SDK_MG20EMU #define HW_PRV_REG (HW_IOREG + 0) diff --git a/trunk/setup b/trunk/setup index ef6ab3c..7709b56 100644 --- a/trunk/setup +++ b/trunk/setup @@ -8,12 +8,13 @@ export CTRFIRM_ROOT=`cygpath -m $PWD` export CTRBROM_ROOT=$CTRFIRM_ROOT/bootrom export CTRSDK_ROOT=$CTRFIRM_ROOT -export BROM_PLATFORM='MG20EMU' +export CTR_PLATFORM='MG20EMU' +export BROM_PLATFORM=$CTR_PLATFORM export CYGPATH_NOCMD='TRUE' echo "Set CTRFIRM_ROOT: $CTRFIRM_ROOT" echo "Set CTRBROM_ROOT: $CTRBROM_ROOT" echo "Set CTRSDK_ROOT: $CTRSDK_ROOT" -echo "Set BROM_PLATFORM: $BROM_PLATFORM" +echo "Set CTR_PLATFORM: $CTR_PLATFORM" echo "Set CYGPATH_NOCMD: $CYGPATH_NOCMD"