; -------------------------------------------------------------------------------- ; @Title: Serial FLASH Programming script for DB-88F6281/88F6192 board from Marvell ; @Description: ; Serial FLASH(ST,25P64) is connected ; ; SDRAM: 0x00100000 ; ; before booting up ; SPI Tx Register : 0xD0010608 ; SPI Rx Register : 0xD001060C ; SPI CS Register : 0xD0010600 ; ; @Author: jjeong ; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only ; @Chip: 88FR131 ; @Board: DB-88F6281/88F6192 ; @Keywords: Marvell 25P64 ST flash SPI ; -------------------------------------------------------------------------------- ; $Id: 88f6281-spi.cmm 10516 2022-02-02 11:39:30Z bschroefel $ LOCAL &arg1 ENTRY &arg1 &arg1=STRing.UPpeR("&arg1") // for example "PREPAREONLY" SYStem.RESet SYStem.CPU 88FR131 SYStem.Option L2Cache ON SYStem.JtagClock 5Mhz SYStem.Up ; Increase JTAG clock (limited to 5MHz during nSRST is asserted) SYStem.JtagClock CTCK 50Mhz GOSUB SDRAM_INIT Data.Set 0xD00d3100 %LE %Long 0x2A10 Data.Set 0xD00d3104 %LE %Long 0x81 ;TDM/SPI Pin Multiplexting Register Data.Set 0xD00d4000 %Long 0xFFFFC001 Data.Set SD:0xD0010000 %LE %Long 0x10022222 ;Data.Set SD:0xD00100D0 %LE %LONG 0x94010712 Data.Set SD:0xD0010600 %LE %Long 0x2 Data.Set SD:0xD0010604 %LE %Long 0x215 Data.Set SD:0xD0010610 %LE %Long 0x1 Data.Set SD:0xD0010614 %LE %Long 0x1 FLASHFILE.RESet //FLASHFILE.CONFIG FLASHFILE.CONFIG 0xD0010608 0xD001060C 0xD0010600 0x0 // FLASHFILE.TARGET FLASHFILE.TARGET 0x00100000++0x1FFF 0x00102000++0x1FFF ~~/demo/arm/flash/byte/spi64_marvell.bin //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 DIALOG.YESNO "Program flash memory?" ENTRY &progflash IF &progflash ( //Erase Serial FLASH 8MB &addr=0x0 RePeaT 8. ( PRINT "Erasing 1MB from 0x" &addr FLASHFILE.Erase &addr++0xFFFFF &addr=&addr+0x100000 ) //Write Serial FLASH FLASHFILE.LOAD.binary * 0x0 //Save Serial FLASH ;FLASHFILE.SAVE dump.bin 0x0--0x7FFFFF ) ENDDO SDRAM_INIT: Data.Set SD:0xD0001400 %LE %Long 0x43000C30 Data.Set SD:0xD0001404 %LE %Long 0x39543000 Data.Set SD:0xD0001408 %LE %Long 0x22125451 Data.Set SD:0xD000140C %LE %Long 0x0833 Data.Set SD:0xD0001410 %LE %Long 0xCC Data.Set SD:0xD0001414 %LE %Long 0x0 Data.Set SD:0xD0001418 %LE %Long 0x0 Data.Set SD:0xD000141C %LE %Long 0xC52 Data.Set SD:0xD0001420 %LE %Long 0x42 Data.Set SD:0xD0001424 %LE %Long 0x0000F1FF Data.Set SD:0xD0001428 %LE %Long 0x00085520 Data.Set SD:0xD000147C %LE %Long 0x00008552 Data.Set SD:0xF1001500 %LE %Long 0x0 Data.Set SD:0xF1001504 %LE %Long 0x0FFFFFF1 Data.Set SD:0xD0001494 %LE %Long 0x3c0000 Data.Set SD:0xD0001498 %LE %Long 0x0 Data.Set SD:0xD000149C %LE %Long 0x0000F80F Data.Set SD:0xD0001480 %LE %Long 0x1 RETURN