# Copyright 2018 NXP
# SPDX-License-Identifier: BSD-3-Clause

set _WORKAREASIZE 0x2000

adapter_khz 1000

interface jlink
transport select jtag

set _WORKAREASIZE 0x1000

set _CHIPNAME rv32m1

reset_config srst_only

# OpenCores Mohor JTAG TAP ID
set _CPUTAPID  0x249511C3

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

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME rv32m1 -endian little -chain-position $_TARGETNAME

# Select the TAP core we are using
tap_select mohor

# Select the debug unit core we are using. This debug unit as an option.

set ADBG_USE_HISPEED		1

# If ADBG_USE_HISPEED is set (options bit 1), status bits will be skipped
# on burst reads and writes to improve download speeds.
# This option must match the RTL configured option.

du_select adv [expr $ADBG_USE_HISPEED]

# Select core 0
core_select 0

$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
$_TARGETNAME configure -event gdb-detach {
    resume
}
set _FLASHNAME $_CHIPNAME.flash
flash bank $_CHIPNAME.flash0 rv32m1 0 0 0 0 $_TARGETNAME # For core 0
flash bank $_CHIPNAME.flash1 rv32m1 0x01000000 0 0 0 $_TARGETNAME # For core 1

proc ri5cy_boot { } {

    # Erase all blok unsecure
    mwb 0x40023000 0x70
    mww 0x40023004 0x49000000
    mwb 0x40023000 0x80

    sleep 1000

    mwb 0x40023000 0x70
    mww 0x40023008 0xFFFF03FF
    mww 0x40023004 0x43840000
    mwb 0x40023000 0x80

    sleep 2
}

proc cm4_boot { } {

    # Erase all blok unsecure
    mwb 0x40023000 0x70
    mww 0x40023004 0x49000000
    mwb 0x40023000 0x80

    sleep 1000

    mwb 0x40023000 0x70
    mww 0x40023008 0xFFFFFFFF
    mww 0x40023004 0x43840000
    mwb 0x40023000 0x80

    sleep 2
}

proc zero_boot { } {

    # Erase all blok unsecure
    mwb 0x40023000 0x70
    mww 0x40023004 0x49000000
    mwb 0x40023000 0x80

    sleep 1000

    mwb 0x40023000 0x70
    mww 0x40023008 0xFFFF03BF
    mww 0x40023004 0x43840000
    mwb 0x40023000 0x80

    sleep 2
}

proc cm0_boot { } {

    # Erase all blok unsecure
    mwb 0x40023000 0x70
    mww 0x40023004 0x49000000
    mwb 0x40023000 0x80

    sleep 1000

    mwb 0x40023000 0x70
    mww 0x40023008 0xFFFFFFBF
    mww 0x40023004 0x43840000
    mwb 0x40023000 0x80

    sleep 2
}

# All cores are available, CM4 & RI5CY boot first
proc core0_boot { } {

    # Erase all blok unsecure
    mwb 0x40023000 0x70
    mww 0x40023004 0x49000000
    mwb 0x40023000 0x80

    sleep 1000

    mwb 0x40023000 0x70
    mww 0x40023008 0xFFFFA3FF
    mww 0x40023004 0x43840000
    mwb 0x40023000 0x80

    sleep 2
}

# All cores are available, CM0 & ZERO_RISCY boot first
proc core1_boot { } {

    # Erase all blok unsecure
    mwb 0x40023000 0x70
    mww 0x40023004 0x49000000
    mwb 0x40023000 0x80

    sleep 1000

    mwb 0x40023000 0x70
    mww 0x40023008 0xFFFFA3BF
    mww 0x40023004 0x43840000
    mwb 0x40023000 0x80

    sleep 2
}
