97 lines
2.0 KiB
Plaintext
97 lines
2.0 KiB
Plaintext
#!/usr/local/bin/bdmctrl
|
|
#
|
|
# This script is for use with the bdmctrl utility and allows flashing of
|
|
# 5235 BCC (have not tested with EVB) from linux.
|
|
#
|
|
# Usage ./bdmctrl mcf5235.test /dev/tblcf2 elf_file
|
|
#
|
|
# see flashlib/README and bdmctrl/README.bdmctrl for more information
|
|
#
|
|
# you will need to run flashlib/compile_plugins with 5200 as a target
|
|
# and copy the resulting intelc3 plugin to the working folder
|
|
#
|
|
|
|
open $1
|
|
|
|
reset
|
|
|
|
# IPSBAR at 0x40000000
|
|
# SRAMBAR at 0x20000000
|
|
# FLASH at 0xFFE00000 (AM29PL160CB(1x16))
|
|
# DRAM at 0x00000000
|
|
|
|
# RAMBAR
|
|
write-ctrl 0x0C05 0x20000001
|
|
|
|
# Set PAR_SDRAM to allow SDRAM signals to be enabled
|
|
write 0x40100046 0x3F 1
|
|
|
|
# Set PAR_AD to allow 32-bit SDRAM if the external boot device is 16 bits
|
|
write 0x40100040 0xE1 1
|
|
|
|
# Turn off WCR
|
|
write 0x40140000 0x0000 2
|
|
|
|
# set up 2nd RAMBAR to make 2nd port avail to FEC
|
|
write 0x40000008 0x20000201 4
|
|
|
|
# 1MB ASRAM on CS1 at 0x30000000 (not populated)
|
|
#write 0x4000008C 0x3000 2
|
|
#write 0x40000090 0x000f0001 4
|
|
#write 0x40000096 0x3d20 2
|
|
|
|
# 2 meg flash on CS0 at 0xffe000
|
|
write 0x40000080 0xFFE0 2
|
|
write 0x40000084 0x001f0001 4
|
|
write 0x4000008a 0x1980 2
|
|
|
|
sleep 100
|
|
|
|
# crank up PLL
|
|
write 0x40120000 0x00000000 4
|
|
|
|
sleep 100
|
|
|
|
# 16 meg sdram (page 18.6.4 of ref 5235 ref-manual)
|
|
#powerup sequence
|
|
write 0x40000040 0x0446 2
|
|
write 0x40000048 0x00001300 4
|
|
write 0x4000004c 0x00fc0001 4
|
|
|
|
#precharge
|
|
write 0x40000048 0x00001308 4
|
|
write 0x00000000 0x00000000 4
|
|
|
|
sleep 100
|
|
|
|
#refresh sequence
|
|
write 0x40000048 0x00009300 4
|
|
#enable IMRS
|
|
write 0x40000048 0x00009340 4
|
|
#access sd ram to initialize the mode register
|
|
write 0x00000400 0x00000000 4
|
|
|
|
sleep 600
|
|
|
|
#notify flashlib that we have flash at address 0xFFE00000, plugin is flash29
|
|
flash 0xFFE00000 flash29
|
|
|
|
#erase the entire flash
|
|
erase 0xFFE00000 -1
|
|
|
|
#wait for the erase operation to complete
|
|
erase-wait 0xFFE00000
|
|
|
|
#load our flash plugin
|
|
flash-plugin 0x20000000 0x4000 flash29_5200.plugin
|
|
|
|
#load and verify
|
|
load -v $2
|
|
|
|
# dump some memory at the start of flash for debugging
|
|
dump-mem 0xFFE00000 48 l
|
|
|
|
execute
|
|
|
|
wait
|