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

150 lines
4.3 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: i.MX27 NAND FLASH Programming Script
; @Description:
; FLASH Type: NAND FLASH(SAMSUNG, K9F2G08)
;
; SDRAM: 0xA0008000
; NAND FLASH Controller(CPU-specific): 0xDB000000
;
; @Author: jjeong
; @Chip: IMX27
; @Keywords: SAMSUNG K9F2G08
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: imx27-nand2g08.cmm 10516 2022-02-02 11:39:30Z bschroefel $
LOCAL &arg1
ENTRY &arg1
&arg1=STRing.UPpeR("&arg1") // for example "PREPAREONLY"
PRINT "initializing..."
SYStem.CPU MCIMX27 ; set your CPU here
SYStem.Option DACR ON ; give Debugger global write permissions
SYStem.Option ResBreak OFF ; board specific, see documentation
SYStem.JtagClock 10.0MHz ; board specific, see documentation
TrOnchip.Set DABORT OFF ; used by Linux for page miss!
TrOnchip.Set PABORT OFF ; used by Linux for page miss!
TrOnchip.Set UNDEF OFF ; my be used by Linux for FPU detection
SYStem.Option MMUSPACES ON ; enable space ids to virtual addresses
SYStem.Up
//Call SDRAM initialization
GOSUB sdram_init
//NAND FLASH Controller Clk divide for i.MX27
PER.Set.simple AD:0x10027018 %Long 0x13C401C3
Break.RESet
FLASHFILE.RESet
//FLASHFILE.CONFIG <NAND Flash Controller Base Address> , ,
FLASHFILE.CONFIG 0xDB000000 , , , ,
//FLASHFILE.TARGET <code range> <data range> <Algorithm file>
FLASHFILE.TARGET 0xA0008000++0x3fff 0xA000C000++0x4FFF ~~/demo/arm/flash/byte/nand2g08_imx.bin /KEEP
//Read FLASH Manufacture and Device ID
FLASHFILE.GETID
//End of the test prepareonly
IF "&arg1"=="PREPAREONLY"
ENDDO
//Put a list of bad blocks into area window for 2Gbit (256MB) size
FLASHFILE.GETBADBLOCK 0x0--0xFFFFFFF
//Erase NAND FLASH Main and Bad block inforamtion
;FLASHFILE.ERASE 0x0--0x7FFFFFF /EraseBadBlocks
//Write NAND FLASH
;FLASHFILE.LOAD * 0x0 //WriteBadBlocks
//Read NAND FLASH
FLASHFILE.DUMP 0x0
ENDDO
; --------------------------------------------------------------------------------
; Initialization script for 32 bit DDR on Tortola EVB
; --------------------------------------------------------------------------------
sdram_init:
; Start-up script for i.MX27 ADS board from Freescale
Data.Set c15:0x01 %Long 0x00050078
; configuring CP15 for enabling the pripheral bus
Data.Set c15:0x042f %Long 0x40000015
Data.Set sd:0x10000000 %LE %Long 0x20040304
Data.Set sd:0x10020000 %LE %Long 0x00000000
Data.Set sd:0x10000004 %LE %Long 0xDFFBFCFB
Data.Set sd:0x10020004 %LE %Long 0xFFFFFFFF
; Enable clko
Data.Set sd:0x10027018 %LE %Long 0x22087403
; clko = a-7 h-8 i-9 p1-a p2-b p3-c p4-d
Data.Set sd:0x10027028 %LE %Long 0x00000007
Data.Set sd:0x10027854 %LE %Long 0x03
Data.Set sd:0x10027814 %LE %Long 0xFFFFFFC9
; Configure DDR on CSD0 -- initial reset
;Data.Set sd:0xD8001010 %le %long 0x00000008
; Configure PSRAM on CS5
Data.Set sd:0xd8002050 %LE %Long 0x0000DCF6
Data.Set sd:0xd8002054 %LE %Long 0x444A4541
Data.Set sd:0xd8002058 %LE %Long 0x44443302
; Configure16 bit NorFlash on CS0
;Data.Set sd:0xd8002000 %le %long 0x0000CC03
;Data.Set sd:0xd8002004 %le %long 0xa0330D01
;Data.Set sd:0xd8002008 %le %long 0x00220800
; Configure CPLD on CS4
;Data.Set sd:0xd8002040 %le %long 0x0000DCF6
;Data.Set sd:0xd8002044 %le %long 0x444A4541
;Data.Set sd:0xd8002048 %le %long 0x44443302
// ========================================
// Configure DDR on CSD0 -- wait 5000 cycle
// ========================================
Data.Set sd:0xD8001010 %LE %Long 0x80000008
Data.Set sd:0x10027828 %LE %Long 0x55555555
Data.Set sd:0x10027830 %LE %Long 0x55555555
Data.Set sd:0x10027834 %LE %Long 0x55555555
Data.Set sd:0x10027838 %LE %Long 0x00005005
Data.Set sd:0x1002783C %LE %Long 0x15555555
Data.Set sd:0xD8001010 %LE %Long 0x80000004
Data.Set sd:0xD8001004 %LE %Long 0x00795429
;Data.Set sd:0xD8001004 %le %long 0x0076eb3a
Data.Set sd:0xD8001000 %LE %Long 0x92100000
Data.Set sd:0xA0000F00 %LE %Long 0x12344321
Data.Set sd:0xD8001000 %LE %Long 0xA2100000
Data.Set sd:0xA0000F00 %LE %Long 0x12344321
Data.Set sd:0xA0000F00 %LE %Long 0x12344321
Data.Set sd:0xD8001000 %LE %Long 0xB2100000
Data.Set sd:0xA0000033 %LE %Byte 0xda
Data.Set sd:0xA1000000 %LE %Byte 0xff
Data.Set sd:0xD8001000 %LE %Long 0x82128485
RETURN