[MIPS] kgdb: Remove existing implementation
This patch explicitly removes the kgdb implementation, for mips which is intended to be followed by a patch that adds a kgdb implementation for MIPS that makes use of the kgdb core in the kernel. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
8f8da9adeb
commit
8d60a903d9
@@ -24,6 +24,5 @@
|
||||
|
||||
obj-y := setup.o prom.o int.o reset.o time.o proc.o platform.o
|
||||
obj-$(CONFIG_PCI) += pci.o
|
||||
obj-$(CONFIG_KGDB) += gdb_hook.o
|
||||
|
||||
EXTRA_CFLAGS += -Werror
|
||||
|
@@ -1,109 +0,0 @@
|
||||
/*
|
||||
* Carsten Langgaard, carstenl@mips.com
|
||||
* Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
|
||||
*
|
||||
* ########################################################################
|
||||
*
|
||||
* This program is free software; you can distribute it and/or modify it
|
||||
* under the terms of the GNU General Public License (Version 2) as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
|
||||
*
|
||||
* ########################################################################
|
||||
*
|
||||
* This is the interface to the remote debugger stub.
|
||||
*
|
||||
*/
|
||||
#include <linux/types.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/serialP.h>
|
||||
#include <linux/serial_reg.h>
|
||||
#include <linux/serial_ip3106.h>
|
||||
|
||||
#include <asm/serial.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#include <uart.h>
|
||||
|
||||
static struct serial_state rs_table[IP3106_NR_PORTS] = {
|
||||
};
|
||||
static struct async_struct kdb_port_info = {0};
|
||||
|
||||
void rs_kgdb_hook(int tty_no)
|
||||
{
|
||||
struct serial_state *ser = &rs_table[tty_no];
|
||||
|
||||
kdb_port_info.state = ser;
|
||||
kdb_port_info.magic = SERIAL_MAGIC;
|
||||
kdb_port_info.port = tty_no;
|
||||
kdb_port_info.flags = ser->flags;
|
||||
|
||||
/*
|
||||
* Clear all interrupts
|
||||
*/
|
||||
/* Clear all the transmitter FIFO counters (pointer and status) */
|
||||
ip3106_lcr(UART_BASE, tty_no) |= IP3106_UART_LCR_TX_RST;
|
||||
/* Clear all the receiver FIFO counters (pointer and status) */
|
||||
ip3106_lcr(UART_BASE, tty_no) |= IP3106_UART_LCR_RX_RST;
|
||||
/* Clear all interrupts */
|
||||
ip3106_iclr(UART_BASE, tty_no) = IP3106_UART_INT_ALLRX |
|
||||
IP3106_UART_INT_ALLTX;
|
||||
|
||||
/*
|
||||
* Now, initialize the UART
|
||||
*/
|
||||
ip3106_lcr(UART_BASE, tty_no) = IP3106_UART_LCR_8BIT;
|
||||
ip3106_baud(UART_BASE, tty_no) = 5; // 38400 Baud
|
||||
}
|
||||
|
||||
int putDebugChar(char c)
|
||||
{
|
||||
/* Wait until FIFO not full */
|
||||
while (((ip3106_fifo(UART_BASE, kdb_port_info.port) & IP3106_UART_FIFO_TXFIFO) >> 16) >= 16)
|
||||
;
|
||||
/* Send one char */
|
||||
ip3106_fifo(UART_BASE, kdb_port_info.port) = c;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
char getDebugChar(void)
|
||||
{
|
||||
char ch;
|
||||
|
||||
/* Wait until there is a char in the FIFO */
|
||||
while (!((ip3106_fifo(UART_BASE, kdb_port_info.port) &
|
||||
IP3106_UART_FIFO_RXFIFO) >> 8))
|
||||
;
|
||||
/* Read one char */
|
||||
ch = ip3106_fifo(UART_BASE, kdb_port_info.port) &
|
||||
IP3106_UART_FIFO_RBRTHR;
|
||||
/* Advance the RX FIFO read pointer */
|
||||
ip3106_lcr(UART_BASE, kdb_port_info.port) |= IP3106_UART_LCR_RX_NEXT;
|
||||
return (ch);
|
||||
}
|
||||
|
||||
void rs_disable_debug_interrupts(void)
|
||||
{
|
||||
ip3106_ien(UART_BASE, kdb_port_info.port) = 0; /* Disable all interrupts */
|
||||
}
|
||||
|
||||
void rs_enable_debug_interrupts(void)
|
||||
{
|
||||
/* Clear all the transmitter FIFO counters (pointer and status) */
|
||||
ip3106_lcr(UART_BASE, kdb_port_info.port) |= IP3106_UART_LCR_TX_RST;
|
||||
/* Clear all the receiver FIFO counters (pointer and status) */
|
||||
ip3106_lcr(UART_BASE, kdb_port_info.port) |= IP3106_UART_LCR_RX_RST;
|
||||
/* Clear all interrupts */
|
||||
ip3106_iclr(UART_BASE, kdb_port_info.port) = IP3106_UART_INT_ALLRX |
|
||||
IP3106_UART_INT_ALLTX;
|
||||
ip3106_ien(UART_BASE, kdb_port_info.port) = IP3106_UART_INT_ALLRX; /* Enable RX interrupts */
|
||||
}
|
@@ -34,7 +34,6 @@
|
||||
#include <linux/module.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/gdb-stub.h>
|
||||
#include <int.h>
|
||||
#include <uart.h>
|
||||
|
||||
|
@@ -22,7 +22,6 @@
|
||||
#include <linux/random.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/gdb-stub.h>
|
||||
#include <int.h>
|
||||
#include <uart.h>
|
||||
|
||||
|
@@ -47,7 +47,6 @@ extern void pnx8550_machine_halt(void);
|
||||
extern void pnx8550_machine_power_off(void);
|
||||
extern struct resource ioport_resource;
|
||||
extern struct resource iomem_resource;
|
||||
extern void rs_kgdb_hook(int tty_no);
|
||||
extern char *prom_getcmdline(void);
|
||||
|
||||
struct resource standard_io_resources[] = {
|
||||
@@ -142,16 +141,5 @@ void __init plat_mem_setup(void)
|
||||
ip3106_baud(UART_BASE, pnx8550_console_port) = 5;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_KGDB
|
||||
argptr = prom_getcmdline();
|
||||
if ((argptr = strstr(argptr, "kgdb=ttyS")) != NULL) {
|
||||
int line;
|
||||
argptr += strlen("kgdb=ttyS");
|
||||
line = *argptr == '0' ? 0 : 1;
|
||||
rs_kgdb_hook(line);
|
||||
pr_info("KGDB: Using ttyS%i for session, "
|
||||
"please connect your debugger\n", line ? 1 : 0);
|
||||
}
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user