source [find bitsbytes.tcl]
source [find cpu/arm/arm7tdmi.tcl]
source [find memory.tcl]
source [find mmr_helpers.tcl]

set CHIP_MAKER             freescale
set CHIP_FAMILY            mc1322x
set CHIP_NAME              mc13224
set N_RAM                  1
set RAM(0,BASE)            0x00400000
set RAM(0,LEN)             0x18000
set RAM(0,HUMAN)           "internal SRAM"
set RAM(0,TYPE)            "ram"
set RAM(0,RWX)             $RWX_RWX
set RAM(0,ACCESS_WIDTH)    $ACCESS_WIDTH_ANY

# I AM LAZY... I create 1 region for all MMRs.
set N_MMREGS                  1
set MMREGS(0,CHIPSELECT)      -1
set MMREGS(0,BASE)            0x80000000
set MMREGS(0,LEN)             0x00030000
set MMREGS(0,HUMAN)           "mm-regs"
set MMREGS(0,TYPE)            "mmr"
set MMREGS(0,RWX)             $RWX_RW
set MMREGS(0,ACCESS_WIDTH)    $ACCESS_WIDTH_ANY

set N_XMEM 0

set _CHIPNAME mc13224v
set _CPUTAPID 0x1f1f001d

jtag newtap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID

reset_config srst_only
jtag_ntrst_delay 200

# rclk hasn't been working well. This maybe the mc13224v or something else.
#adapter_khz 2000
adapter_khz 2000

######################
# Target configuration
######################

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME

# Internal sram memory
$_TARGETNAME configure -work-area-phys 0x00408000 \
                       -work-area-size 0x1000     \
                       -work-area-backup 1

# flash support is pending (should be straightforward to implement)
#flash bank mc1322x 0 0 0 0 $_TARGETNAME
