Files
Gen4_R-Car_Trace32/2_Trunk/demo/arm/flash/vybrid-nand2g16.cmm
2025-10-14 09:52:32 +09:00

107 lines
3.8 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: TWR-VF65GS10 VYBRID TOWER SYSTEM MODULE NAND FLASH Program script
;
; @Description:
; NAND (MT29F16ABAEA,MICRON) is connected to CE0
; SRAM: 0x3F001000
; NFC Base Register Address : 0x400E0000
; NFC BufferRAM(IO) Address : 0x400E0000
;
; @Author: jjeong
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; @Chip: VF7*
; @Board: TWR-VF65GS10
; @Keywords: MT29F16ABAEA MICRON NAND
; --------------------------------------------------------------------------------
; $Id: vybrid-nand2g16.cmm 10516 2022-02-02 11:39:30Z bschroefel $
LOCAL &arg1
ENTRY &arg1
&arg1=STRing.UPpeR("&arg1") // for example "PREPAREONLY"
// Basic settings for system.up
RESet
SYStem.CPU VF7xx-CA5
ETM.OFF
SYStem.CONFIG.CORE 1. 1.
SYStem.Up
PER.Set.simple C15:0x1 %LE %Long (Data.Long(C15:0x1)&~(0x5)) ; disable interrupt and mmu
//CCM config
Data.Set A:0x4006B048 %LE %Long 0xFFFFFFFF
Data.Set A:0x4006B04C %LE %Long 0xFFFFFFFF
Data.Set A:0x4006B008 %LE %Long 0x01000000
Data.Set A:0x4006b068 %LE %Long 0x3 ;NFC module
Data.Set A:0x4006B000 %LE %Long 0x11057 ;CCM Control Register (CCM_CCR)
Data.Set A:0x4006b008 %LE %Long 0x10040824 ;CCM Clock Switcher Register (CCM_CCSR)
Data.Set A:0x4006B010 %LE %Long 0x00002000
Data.Set A:0x4006b018 %LE %Long 0x2210
Data.Set A:0x4006b01C %LE %Long 0x6000
Data.Set A:0x4006b038 %LE %Long 0x0A0001
GOSUB IOMUX_NAND_config
//NFC_config
Data.Set A:0x400E3F00 %LE %LE %Long 0x30FF0000
Data.Set A:0x400E3F08 %LE %LE %Long 0x00 //COL addr
Data.Set A:0x400E3F0C %LE %LE %Long 0x11000000 //Chip Sel & Row addr
Data.Set A:0x400E3F2C %LE %LE %Long 0x840 ; Sector Size, (Sector Size)*PageCnt= Real Page Size
Data.Set A:0x400E3F30 %LE %LE %Long 0x0EFF81 ; ECC=32-error(60Bytes), BootMode=0, 16bit , PageCnt=1
Break.RESet
FLASHFILE.RESet
//FLASHFILE.CONFIG <NFC Base> <0x0> <NFC BufferRAM(IO) Address> <CS#>
FLASHFILE.CONFIG 0x400E0000 0x0 0x400E0000 0
//FLASHFILE.TARGET <Code_range> <Data_range> <Algorithm file>
FLASHFILE.TARGET 0x3f001000++0x1FFF 0x3f004000++0x41FF ~~/demo/arm/flash/word/nand2g16_vybrid.bin /KEEP /STACKSIZE 0x200
FLASHFILE.GETID
//End of the test prepareonly
IF "&arg1"=="PREPAREONLY"
ENDDO
FLASHFILE.DUMP 0x0 ; Read NAND
;FLASHFILE.ERASE 0x0--0xFFFFF /EraseBadBlock ; Erase NAND
;FLASHFILE.LOAD * 0x0 ; Write NAND
;FLASHFILE.DUMP 0x0 /spare ; Read NAND spare area
ENDDO
IOMUX_NAND_config:
Data.Set A:0x4004817c %LE %Long 0x5031E2 ;PTB25, NAND_CE0
Data.Set A:0x40048184 %LE %Long 0x6031E2 ;PTB27, NAND_RE
Data.Set A:0x40048178 %LE %Long 0x5031E2 ;PTB24, NAND_WE
Data.Set A:0x4004818C %LE %Long 0x5031E1 ;PTC26, NAND_RB
Data.Set A:0x40048190 %LE %Long 0x6031E2 ;PTC27, NAND_ALE
Data.Set A:0x40048194 %LE %Long 0x6031E2 ;PTC28, NAND_CLE
Data.Set A:0x400480FC %LE %Long 0x2031E3 ;PTD31, NAND_IO15
Data.Set A:0x40048100 %LE %Long 0x2031E3 ;PTD30
Data.Set A:0x40048104 %LE %Long 0x2031E3 ;PTD29
Data.Set A:0x40048108 %LE %Long 0x2031E3 ;PTD28
Data.Set A:0x4004810C %LE %Long 0x2031E3 ;PTD27
Data.Set A:0x40048110 %LE %Long 0x2031E3 ;PTD26
Data.Set A:0x40048114 %LE %Long 0x2031E3 ;PTD25
Data.Set A:0x40048118 %LE %Long 0x2031E3 ;PTD24
Data.Set A:0x4004811C %LE %Long 0x2031E3 ;PTD23
Data.Set A:0x40048120 %LE %Long 0x2031E3 ;PTD22
Data.Set A:0x40048124 %LE %Long 0x2031E3 ;PTD21
Data.Set A:0x40048128 %LE %Long 0x2031E3 ;PTD20
Data.Set A:0x4004812C %LE %Long 0x2031E3 ;PTD19
Data.Set A:0x40048130 %LE %Long 0x2031E3 ;PTD18
Data.Set A:0x40048134 %LE %Long 0x2031E3 ;PTD17
Data.Set A:0x40048138 %LE %Long 0x2031E3 ;PTD16, NAND_IO0
RETURN