; -------------------------------------------------------------------------------- ; @Title: Flash declaration for Renesas RA8 internal flash derivativs ; @Description: ; Script arguments: ; DO ra8 [PREPAREONLY] [CPU=] [DUALPORT=<0|1>] ; PREPAREONLY only declares flash but does not execute flash programming ; CPU= selects CPU derivative ; DUALPORT=<0|1> use dual port memory access, default 1 ; Example: ; DO ~~/demo/arm/flash/ra8 PREPAREONLY ; Note: ; This file must NOT be modified. ; This file is intended to stay within TRACE32 installation. ; Usage examples are available in the ~~/demo/arm/hardware/... subdirectories. ; ; List of RA8* derivatives and their configuration: ; CPU-Type Code Flash Data Flash RamSize ; [KB] [KB] [KB] ; -------------------------------------------------------------------------------- ; R7FA8M1AH* 2048 12 1024 ; R7FA8M1AF* 512 12 1024 ; R7FA8M1AH* 2048 12 1024 ; R7FA8M1AF* 512 12 1024 ; R7FA8M1AH* 2048 12 1024 ; R7FA8M1AF* 512 12 1024 ; R7FA8M1AH* 2048 12 1024 ; R7FA8M1AF* 512 12 1024 ; ; @Chip: R7FA8* ; @Author: MDT ; @Copyright: (C) 1989-2023 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Rev: 13554 $ ; $Id: ra8.cmm 13554 2024-06-11 14:22:27Z mtrabelsi $ PRIVATE ¶meters ENTRY %LINE ¶meters PRIVATE ¶m_prepareonly ¶m_cpu ¶m_dualport ¶meters=STRing.UPpeR("¶meters") ¶m_prepareonly=(STRing.SCAN("¶meters","PREPAREONLY",0)!=-1) ¶m_cpu=STRing.SCANAndExtract("¶meters","CPU=","") ¶m_dualport=STRing.SCANAndExtract("¶meters","DUALPORT=","1") ; -------------------------------------------------------------------------------- ; Initialize and start the debugger IF !SYStem.Up() ( SYStem.RESet IF "¶m_cpu"!="" SYStem.CPU ¶m_cpu IF (!CPUIS(R7FA8*)) SYStem.CPU R7FA8* SYStem.MemAccess DAP SYStem.JtagClock 10MHz IF CABLE.TWOWIRE() SYStem.CONFIG.DEBUGPORTTYPE SWD ELSE SYStem.CONFIG.DEBUGPORTTYPE JTAG ETM.OFF Trace.DISable SYStem.Up ) ; -------------------------------------------------------------------------------- ; Flash declaration FLASH.RESet GOSUB FlashDeclaration "¶m_dualport" ; Flash script ends here if called with parameter PREPAREONLY IF ¶m_prepareonly ENDDO PREPAREDONE ; -------------------------------------------------------------------------------- ; Flash programming example DIALOG.YESNO "Program flash memory?" PRIVATE &progflash ENTRY &progflash IF &progflash ( FLASH.ReProgram ALL /Erase Data.LOAD.auto * FLASH.ReProgram off ; Reset device SYStem.Down SYStem.Up ) ENDDO ; -------------------------------------------------------------------------------- ; SUBROUTINES ; -------------------------------------------------------------------------------- ; Flash declaration depending on selected CPU ; ; Please do NOT modify the TRACE32 flash declaration. ; ; Modifications can result in unpredictable behavior. ; Please contact support@lauterbach.com for any changes. FlashDeclaration: ;(param_dualport) ( PARAMETERS ¶m_dualport PRIVATE &PNRBank &PNReport &SRAMAddress &FlashDriver &CodeFlashSize &DataFlashSize &CodeSectorSize1 &CodeSectorSize2 &DataSectorSize ; Check for part numbering register (PNRn) via flash root table, FMIFRT. IF (CPUIS(R7FA8M1*)||CPUIS(R7FA8D1*)||CPUIS(R7FA8T1*)) ( &PNReport=Data.STRingN(ASD:0x030080F0,0xD) IF CPU()!="&PNReport" ( PRINT %WARNING "Chip selected (" CPU() ") does not match self-reported ID: &PNReport" ) ) ELSE PRINT "PNR calculation is not done" ; Assign parameters based on CPU assignment IF (CPUIS(R7FA8M1*)||CPUIS(R7FA8D1*)||CPUIS(R7FA8T1*)) ( &SRAMAddress=0x22000000 ;SRAM0 &FlashDriver="ra8.bin" ) ELSE ( PRINT %ERROR "CPU type is not supported by the script" ENDDO ) ; Determine Code FLASH size IF CPUIS(R7FA8???F*) &CodeFlashSize=0x100000 ELSE IF CPUIS(R7FA8???H*) &CodeFlashSize=0x200000 ELSE ( PRINT %ERROR "Code FLASH size of CPU type is not supported by the script" ENDDO ) ; Determine Data FLASH size IF CPUIS(R7FA8*) &DataFlashSize=0x3000 ELSE ( PRINT %ERROR "Data FLASH size of CPU type is not supported by the script" ENDDO ) &CodeSectorSize1=0x2000 &CodeSectorSize2=0x8000 &DataSectorSize=0x40 IF CPUIS(R7FA8*) ( ;Code FLASH Memory FLASH.Create 1. 0x02000000--0x0200FFFF &CodeSectorSize1 TARGET Long FLASH.Create 1. 0x02010000++((&CodeFlashSize-0x18000)-1) &CodeSectorSize2 TARGET Long ;Configuration setting area FLASH.Create 2. 0x0300A100--0x0300A104 NOP Long /INFO "OFS0" FLASH.Create 2. 0x0300A104--0x0300A107 NOP Long /INFO "OFS2" FLASH.Create 2. 0x0300A110--0x0300A113 NOP Long /INFO "DUALSEL" FLASH.Create 2. 0x0300A134--0x0300A137 NOP Long /INFO "SAS" FLASH.Create 2. 0x1300A180--0x1300A183 NOP Long /INFO "OFS1" FLASH.Create 2. 0x1300A190--0x1300A193 NOP Long /INFO "BANKSEL" FLASH.Create 2. 0x1300A1C0--0x1300A1CB NOP Long /INFO "BPS" FLASH.Create 2. 0x1300A1E0--0x1300A1EB NOP Long /INFO "PBPS" FLASH.Create 2. 0x0300A200--0x0300A203 NOP Long /INFO "OFS1_SEC" FLASH.Create 2. 0x0300A210--0x0300A213 NOP Long /INFO "BANKSEL_SEC" FLASH.Create 2. 0x0300A240--0x0300A24B NOP Long /INFO "BPS_SEC" FLASH.Create 2. 0x0300A260--0x0300A26B NOP Long /INFO "PBPS_SEC" FLASH.Create 2. 0x0300A280--0x0300A283 NOP Long /INFO "OFS1_SEL" FLASH.Create 2. 0x0300A290--0x0300A293 NOP Long /INFO "BANKSEL_SEL" FLASH.Create 2. 0x0300A2C0--0x0300A2CB NOP Long /INFO "BPS_SEL" FLASH.Create 2. 0x27030080--0x27030083 NOP Long /INFO "FSBLCTRL0" FLASH.Create 2. 0x27030084--0x27030087 NOP Long /INFO "FSBLCTRL1" FLASH.Create 2. 0x27030088--0x2703008B NOP Long /INFO "FSBLCTRL2" FLASH.Create 2. 0x2703008C--0x2703008F NOP Long /INFO "SACC0" FLASH.Create 2. 0x27030090--0x27030093 NOP Long /INFO "SACC1" FLASH.Create 2. 0x27030094--0x27030097 NOP Long /INFO "SAMR" FLASH.Create 2. 0x27030360--0x27030363 NOP Long /INFO "HOEMRTPK" FLASH.Create 2. 0x27030380--0x27030383 NOP Long /INFO "CFGD0LOCK" FLASH.Create 2. 0x27030388--0x2703038B NOP Long /INFO "CFGD1LOCK" FLASH.Create 2. 0x27030390--0x27030393 NOP Long /INFO "CFGD2LOCK" FLASH.Create 2. 0x270303C0--0x270303C3 NOP Long /INFO "ARCLS" FLASH.Create 2. 0x270303C2--0x270303C5 NOP Long /INFO "ARCCS" FLASH.Create 2. 0x27030850--0x27030853 NOP Long /INFO "ARC_SEC0" FLASH.Create 2. 0x27030854--0x27030857 NOP Long /INFO "ARC_SEC1" FLASH.Create 2. 0x27030858--0x2703086A NOP Long /INFO "ARC_NSEC0" FLASH.Create 2. 0x2703086B--0x2703086E NOP Long /INFO "ARC_NSEC1" FLASH.Create 2. 0x27030878--0x2703088A NOP Long /INFO "ARC_OEMBL0" FLASH.Create 2. 0x2703088B--0x2703088E NOP Long /INFO "ARC_OEMBL1" ;Data FLASH Memory FLASH.Create 3. 0x27000000++(&DataFlashSize-1) &DataSectorSize TARGET Long ) IF (("¶m_dualport"!="1")||SYStem.ACCESS.DENIED()) FLASH.TARGET &SRAMAddress &SRAMAddress+0x1000 0x1000 ~~/demo/arm/flash/long/&FlashDriver ELSE FLASH.TARGET &SRAMAddress E:&SRAMAddress+0x1000 0x1000 ~~/demo/arm/flash/long/&FlashDriver /DualPort RETURN )