; -------------------------------------------------------------------------------- ; @Title: LSI AXM5516 Serial FLASH Programming Script ; @Description: ; Serial FLASH(SPANSION, 25F64) is connected the SSP_CS0(Synchronous Serial Port) ; ; SDRAM: 0x100000 ; Serial FLASH Controller base addr: 0x90088000 ; ; @Author: jjeong ; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only ; @Chip: AXM5516 ; @Keywords: SPANSION 25F64 FLASH SPI ; -------------------------------------------------------------------------------- ; $Id: axm5516-spi64.cmm 10516 2022-02-02 11:39:30Z bschroefel $ LOCAL &arg1 ENTRY &arg1 &arg1=STRing.UPpeR("&arg1") // for example "PREPAREONLY" &SSP_BASE=0x90088000 ; or 0x10088000 , it depends on the booting PER.Set.simple ZSD:&SSP_BASE %Long 0x7 PER.Set.simple ZSD:&SSP_BASE+0x4 %Long 0x2 PER.Set.simple ZSD:&SSP_BASE+0x10 %Long 0x32 flush_loop: ®_data=Data.Long(ZSD:&SSP_BASE+0xC)&0x4 IF ®_data==0x0 ( GOTO flush_end ) &dummy=Data.Long(ZSD:&SSP_BASE+0x8) GOTO flush_loop flush_end: GOSUB READ_ID_TEST Break.RESet FLASHFILE.RESet //FLASFILE.CONFIG FLASHFILE.CONFIG (&SSP_BASE+0x8) (&SSP_BASE+0x8) (&SSP_BASE+0x30) 0x0 FLASHFILE.TARGET 0x100000++0x3FFF 0x104000++0x3FFF ~~/demo/arm/flash/byte/spi64_axx5500.bin /KEEP //Read FLASH Manufacture and Device ID FLASHFILE.GETID //End of the test prepareonly IF "&arg1"=="PREPAREONLY" ENDDO //Dump window for Serial FLASH ;FLASHFILE.DUMP 0x0 ;FLASHFILE.UNLOCK 0x0--0xFFFFF //Erase Serial FLASH ;FLASHFILE.ERASE 0x0--0xFFFFF //Write ;FLASHFILE.LOAD * 0x0 ;FLASHFILE.LOAD * 0x0 /ComPare ;verify ENDDO READ_ID_TEST: SCREEN.OFF Data.Set ZSD:(&SSP_BASE+0x030) %LE %Long 0x1E ;Enable SPI_CS_LOW PER.Set.simple ZSD:&SSP_BASE+0x8 %Long 0x00F0 &dummy=Data.Long(ZSD:&SSP_BASE+0x8) Data.Set ZSD:(&SSP_BASE+0x030) %LE %Long 0x1F ;Enable SPI_CS_HIGH Data.Set ZSD:(&SSP_BASE+0x030) %LE %Long 0x1E ;Enable SPI_CS_LOW PER.Set.simple ZSD:&SSP_BASE+0x8 %Long 0x009F PRINT "1st : 0x" Data.Long(ZSD:&SSP_BASE+0x8) PER.Set.simple ZSD:&SSP_BASE+0x8 %Long 0x0000 PRINT "2nd : 0x" Data.Long(ZSD:&SSP_BASE+0x8) " (manufacture id)" PER.Set.simple ZSD:&SSP_BASE+0x8 %Long 0x0000 PRINT "3rd : 0x" Data.Long(ZSD:&SSP_BASE+0x8) " (device id)" PER.Set.simple ZSD:&SSP_BASE+0x8 %Long 0x0000 PRINT "4th : 0x" Data.Long(ZSD:&SSP_BASE+0x8) Data.Set ZSD:(&SSP_BASE+0x030) %LE %Long 0x1F ;Enable SPI_CS_HIGH SCREEN.ON RETURN