if { [info exists CHIPNAME] } { set _CHIPNAME $CHIPNAME } else { set _CHIPNAME pxa255 } if { [info exists ENDIAN] } { set _ENDIAN $ENDIAN } else { set _ENDIAN little } if { [info exists CPUTAPID ] } { set _CPUTAPID $CPUTAPID } else { # force an error till we get a good number set _CPUTAPID 0xffffffff } jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUTAPID jtag_nsrst_delay 200 jtag_ntrst_delay 200 set _TARGETNAME [format "%s.cpu" $_CHIPNAME] target create $_TARGETNAME xscale -endian $_ENDIAN -chain-position $_TARGETNAME -variant pxa255 $_TARGETNAME configure -event reset-init { xscale cp15 15 0x00002001 #Enable CP0 and CP13 access # # setup GPIO # mww 0x40E00018 0x00008000 #CPSR0 sleep 20 mww 0x40E0001C 0x00000002 #GPSR1 sleep 20 mww 0x40E00020 0x00000008 #GPSR2 sleep 20 mww 0x40E0000C 0x00008000 #GPDR0 sleep 20 mww 0x40E00054 0x80000000 #GAFR0_L sleep 20 mww 0x40E00058 0x00188010 #GAFR0_H sleep 20 mww 0x40E0005C 0x60908018 #GAFR1_L sleep 20 mww 0x40E0000C 0x0280E000 #GPDR0 sleep 20 mww 0x40E00010 0x821C88B2 #GPDR1 sleep 20 mww 0x40E00014 0x000F03DB #GPDR2 sleep 20 mww 0x40E00000 0x000F03DB #GPLR0 sleep 20 mww 0x40F00004 0x00000020 #PSSR sleep 20 # # setup memory controller # mww 0x48000008 0x01111998 #MSC0 sleep 20 mww 0x48000010 0x00047ff0 #MSC2 sleep 20 mww 0x48000014 0x00000000 #MECR sleep 20 mww 0x48000028 0x00010504 #MCMEM0 sleep 20 mww 0x4800002C 0x00010504 #MCMEM1 sleep 20 mww 0x48000030 0x00010504 #MCATT0 sleep 20 mww 0x48000034 0x00010504 #MCATT1 sleep 20 mww 0x48000038 0x00004715 #MCIO0 sleep 20 mww 0x4800003C 0x00004715 #MCIO1 sleep 20 # mww 0x48000004 0x03CA4018 #MDREF sleep 20 mww 0x48000004 0x004B4018 #MDREF sleep 20 mww 0x48000004 0x000B4018 #MDREF sleep 20 mww 0x48000004 0x000BC018 #MDREF sleep 20 mww 0x48000000 0x00001AC8 #MDCNFG sleep 20 sleep 20 mww 0x48000000 0x00001AC9 #MDCNFG sleep 20 mww 0x48000040 0x00000000 #MDMRS sleep 20 } reset_config trst_and_srst #xscale debug_handler 0 0xFFFF0800 # debug handler base address