| # Copyright lowRISC contributors. | 
 | # Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
 | # SPDX-License-Identifier: Apache-2.0 | 
 |  | 
 | # Target configuration for the lowRISC "Earl Grey" chip | 
 |  | 
 | if { [info exists CHIPNAME] } { | 
 |    set  _CHIPNAME $CHIPNAME | 
 | } else { | 
 |    set  _CHIPNAME riscv | 
 | } | 
 |  | 
 | if { [info exists CPUTAPID ] } { | 
 |    set _CPUTAPID $CPUTAPID | 
 | } else { | 
 |    set _CPUTAPID 0x04f5484d | 
 | } | 
 |  | 
 | jtag newtap $_CHIPNAME tap -irlen 5 -expected-id $_CPUTAPID | 
 | set _TARGETNAME $_CHIPNAME.tap | 
 | target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME -rtos hwthread | 
 |  | 
 | # Configure work area in on-chip SRAM | 
 | $_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 1000 -work-area-backup 0 | 
 |  | 
 | # This chip implements system bus access, use it. | 
 | # Accessing the memory through the system bus is faster than through | 
 | # instruction feeding. | 
 | riscv set_prefer_sba on | 
 |  | 
 | # Be verbose about GDB errors | 
 | gdb_report_data_abort enable | 
 | gdb_report_register_access_error enable | 
 |  | 
 | # Always use hardware breakpoints. Since we don't use `flash bank` commands, | 
 | # OpenOCD won't provide a memory map to GDB. This means that GDB isn't be aware | 
 | # that the code resides in a read-only memory, and therefore should use hardware | 
 | # breakpoints. This setting makes OpenOCD convert the software breakpoints into | 
 | # hardware ones. | 
 | gdb_breakpoint_override hard |