ce1601289c24b9c34daf181ae576b44947d2bb1a
[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         const struct xtensa_config *xtensa_cfg,
21         struct xtensa_debug_module_config *dm_cfg)
22 {
23         return xtensa_init_arch_info(target, &esp_xtensa->xtensa, xtensa_cfg, dm_cfg);
24 }
25
26 int esp_xtensa_target_init(struct command_context *cmd_ctx, struct target *target)
27 {
28         return xtensa_target_init(cmd_ctx, target);
29 }
30
31 void esp_xtensa_target_deinit(struct target *target)
32 {
33         LOG_DEBUG("start");
34
35         xtensa_target_deinit(target);
36         free(target_to_esp_xtensa(target));     /* same as free(xtensa) */
37 }
38
39 int esp_xtensa_arch_state(struct target *target)
40 {
41         return ERROR_OK;
42 }
43
44 int esp_xtensa_poll(struct target *target)
45 {
46         return xtensa_poll(target);
47 }
48
49 int esp_xtensa_breakpoint_add(struct target *target, struct breakpoint *breakpoint)
50 {
51         return xtensa_breakpoint_add(target, breakpoint);
52         /* flash breakpoints will be handled in another patch */
53 }
54
55 int esp_xtensa_breakpoint_remove(struct target *target, struct breakpoint *breakpoint)
56 {
57         return xtensa_breakpoint_remove(target, breakpoint);
58         /* flash breakpoints will be handled in another patch */
59 }