| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # SPDX-License-Identifier: GPL-2.0-or-later
- ################################################################################
- # Author: Michael Trensch (MTrensch@googlemail.com)
- ################################################################################
- #Hilscher netX 50 CPU
- if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
- } else {
- set _CHIPNAME netx50
- }
- if { [info exists ENDIAN] } {
- set _ENDIAN $ENDIAN
- } else {
- set _ENDIAN little
- }
- if { [info exists CPUTAPID] } {
- set _CPUTAPID $CPUTAPID
- } else {
- set _CPUTAPID 0x25966021
- }
- # jtag scan chain
- jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
- # that TAP is associated with a target
- set _TARGETNAME $_CHIPNAME.cpu
- target create $_TARGETNAME arm966e -endian $_ENDIAN -chain-position $_TARGETNAME
- # On netX50 SDRAM is not accessible at offset 0xDEAD0-0xDEADF as it is busy from
- # DMA controller at init. This function will setup a dummy DMA to free this ares
- # and must be called before using SDRAM
- proc sdram_fix { } {
- mww 0x1c005830 0x00000001
- mww 0x1c005104 0xBFFFFFFC
- mww 0x1c00510c 0x00480001
- mww 0x1c005110 0x00000001
- sleep 100
- mww 0x1c00510c 0
- mww 0x1c005110 0
- mww 0x1c005830 0x00000000
- puts "SDRAM Fix executed!"
- }
|