1# Copyright (c) 2024 HPMicro 2# SPDX-License-Identifier: BSD-3-Clause 3# 4 5 6set _CHIP hpm6e00 7set _CPUTAPID 0x1000563D 8jtag newtap $_CHIP cpu -irlen 5 -expected-id $_CPUTAPID 9 10set _TARGET0 $_CHIP.cpu0 11target create $_TARGET0 riscv -chain-position $_CHIP.cpu -coreid 0 12 13$_TARGET0 configure -work-area-phys 0x00000000 -work-area-size 0x20000 -work-area-backup 0 14 15targets $_TARGET0 16 17proc dmi_write {reg value} { 18 $::_TARGET0 riscv dmi_write ${reg} ${value} 19} 20 21proc dmi_read {reg} { 22 set v [$::_TARGET0 riscv dmi_read ${reg}] 23 return ${v} 24} 25proc dmi_write_memory {addr value} { 26 dmi_write 0x39 ${addr} 27 dmi_write 0x3C ${value} 28} 29 30proc dmi_read_memory {addr} { 31 set sbcs [expr { 0x100000 | [dmi_read 0x38] }] 32 dmi_write 0x38 ${sbcs} 33 dmi_write 0x39 ${addr} 34 set value [dmi_read 0x3C] 35 return ${value} 36} 37 38proc release_core1 {} { 39 dmi_write_memory 0xF4002C00 0x1000 40} 41 42set _TARGET1 $_CHIP.cpu1 43target create $_TARGET1 riscv -chain-position $_CHIP.cpu -coreid 1 44$_TARGET1 configure -work-area-phys 0x00000000 -work-area-size 0x20000 -work-area-backup 0 45 46$_TARGET1 configure -event examine-start { 47 release_core1 48} 49 50$_TARGET1 configure -event reset-deassert-pre { 51 $::_TARGET0 arp_poll 52 release_core1 53} 54 55$_TARGET0 configure -event reset-end { 56 $::_TARGET0 riscv dmi_write 0x39 0xF4002010 57 $::_TARGET0 riscv dmi_write 0x3C 0x2 58} 59 60proc reset_soc {} { 61 $::_TARGET0 riscv dmi_write 0x39 0xF410001C 62 $::_TARGET0 riscv dmi_write 0x3C 24000000 63} 64