target: add generic Xtensa LX support
[fw/openocd] / src / target / espressif / esp_xtensa.c
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 /***************************************************************************
4  *   Espressif Xtensa target API for OpenOCD                               *
5  *   Copyright (C) 2019 Espressif Systems Ltd.                             *
6  ***************************************************************************/
7
8 #ifdef HAVE_CONFIG_H
9 #include <config.h>
10 #endif
11
12 #include <stdbool.h>
13 #include <stdint.h>
14 #include <target/smp.h>
15 #include "esp_xtensa.h"
16 #include <target/register.h>
17
18 int esp_xtensa_init_arch_info(struct target *target,
19         struct esp_xtensa_common *esp_xtensa,
20         struct xtensa_debug_module_config *dm_cfg)
21 {
22         return xtensa_init_arch_info(target, &esp_xtensa->xtensa, dm_cfg);
23 }
24
25 int esp_xtensa_target_init(struct command_context *cmd_ctx, struct target *target)
26 {
27         return xtensa_target_init(cmd_ctx, target);
28 }
29
30 void esp_xtensa_target_deinit(struct target *target)
31 {
32         LOG_DEBUG("start");
33
34         xtensa_target_deinit(target);
35         free(target_to_esp_xtensa(target));     /* same as free(xtensa) */
36 }
37
38 int esp_xtensa_arch_state(struct target *target)
39 {
40         return ERROR_OK;
41 }
42
43 int esp_xtensa_poll(struct target *target)
44 {
45         return xtensa_poll(target);
46 }
47
48 int esp_xtensa_breakpoint_add(struct target *target, struct breakpoint *breakpoint)
49 {
50         return xtensa_breakpoint_add(target, breakpoint);
51         /* flash breakpoints will be handled in another patch */
52 }
53
54 int esp_xtensa_breakpoint_remove(struct target *target, struct breakpoint *breakpoint)
55 {
56         return xtensa_breakpoint_remove(target, breakpoint);
57         /* flash breakpoints will be handled in another patch */
58 }