summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/pc386/console/gdb_select.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/i386/pc386/console/gdb_select.c')
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/gdb_select.c170
1 files changed, 0 insertions, 170 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/console/gdb_select.c b/c/src/lib/libbsp/i386/pc386/console/gdb_select.c
deleted file mode 100644
index adc996913b..0000000000
--- a/c/src/lib/libbsp/i386/pc386/console/gdb_select.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * @file
- *
- * @ingroup GDB
- *
- * @brief pc386 gdb select
- *
- * This file contains a routine to enable and select the UART the gdb stub
- * connects too. Currently limited to COM1 and COM2. See
- * shared/comm/i386-stub-glue.c file.
- */
-
-/*
- * COPYRIGHT (c) 2016.
- * Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <stdlib.h>
-#include <limits.h>
-
-#include <bsp.h>
-#include <rtems/libio.h>
-#include <rtems/console.h>
-#include <rtems/termiostypes.h>
-#include <libchip/serial.h>
-#include <libchip/ns16550.h>
-#include <bsp/bspimpl.h>
-
-#include "../../../../../../../bsps/shared/dev/serial/legacy-console.h"
-
-/*
- * Used in the stub to print output.
- */
-int remote_debug;
-/*
- * Defined in the stub, used here.
- */
-void set_debug_traps(void);
-
-/*
- * Added here to get a valid baudrate. Needs to go once we
- * move to the standard UART driver.
- */
-int BSPBaseBaud;
-
-static bool gdb_port_probe(int minor)
-{
- /* Return false as GDB has claimed the port */
- return false;
-}
-
-void pc386_parse_gdb_arguments(void)
-{
- static const char *opt;
-
- /*
- * Check the command line to see if com1-com4 are disabled.
- */
- opt = bsp_cmdline_arg("--gdb=");
- if ( opt ) {
- const char *option;
- const char *comma;
- size_t length;
- size_t index;
- rtems_device_minor_number minor;
- uint32_t baudrate = 115200;
- bool halt = false;
- console_tbl *port;
-
- /*
- * Fine the length, there can be more command line visible.
- */
- length = 0;
- while ((opt[length] != ' ') && (opt[length] != '\0')) {
- ++length;
- if (length > NAME_MAX) {
- printk("invalid option (--gdb): too long\n");
- return;
- }
- }
-
- /*
- * Only match up to a comma or NULL
- */
- index = 0;
- while ((opt[index] != '=') && (index < length)) {
- ++index;
- }
-
- if (opt[index] != '=') {
- printk("invalid option (--gdb): no equals\n");
- return;
- }
-
- ++index;
- option = &opt[index];
-
- while ((opt[index] != ',') && (index < length)) {
- ++index;
- }
-
- if (opt[index] == ',')
- comma = &opt[index];
- else
- comma = NULL;
-
- length = &opt[index] - option;
-
- port = console_find_console_entry( option, length, &minor );
-
- if ( port == NULL ) {
- printk("invalid option (--gdb): port not found\n");
- return;
- }
-
- if (comma) {
- option = comma + 1;
- baudrate = strtoul(option, 0, 10);
- switch (baudrate) {
- case 115200:
- case 57600:
- case 38400:
- case 19200:
- case 9600:
- case 4800:
- port->pDeviceParams = (void*) baudrate;
- BSPBaseBaud = baudrate; /* REMOVE ME */
- break;
- default:
- printk("invalid option (--gdb): bad baudrate\n");
- return;
- }
- }
-
- /*
- * Provide a probe that fails so the device is not part of termios. All
- * functions are polling.
- */
- port->deviceProbe = gdb_port_probe;
- port->pDeviceFns = &ns16550_fns_polled;
-
- opt = bsp_cmdline_arg("--gdb-remote-debug");
- if ( opt ) {
- remote_debug = 1;
- }
-
- opt = bsp_cmdline_arg("--gdb-break");
- if ( opt ) {
- halt = true;
- }
-
- printk("GDB stub: enable %s%s%s\n",
- port->sDeviceName,
- remote_debug ? ", remote-debug" : "",
- halt ? ", halting" : "");
-
- i386_stub_glue_init(minor);
- set_debug_traps();
- i386_stub_glue_init_breakin();
-
- if ( halt ) {
- printk("GDB stub: waiting for remote connection..\n");
- breakpoint();
- }
- }
-}