This is committed to powerpc-lite.patch with context changes in
mips-lite.patch and arm-lite.patch in the linux2_6_21_uprev branch.
Jason.
Sergei Shtylyov wrote:
> Update KGDB serial driver for MPSC:
>
> - merge the necessary #define's from the serial driver -- the shared header
> file
> has been long killed;
>
> - enable KGDB baud rate option for the driver, change driver's option text to
> be in line with the others;
>
> - fix the write_char() method to accept argument of type 'u8';
>
> - fix the interrupt handler to take only 2 arguments, due to 2.6.19-rc1
> change;
>
> - add the missing dot in the platform device name.
>
> While at it, also remove from the "normal" serial driver #define's added by
> powerpc-lite.patch for no reason...
>
> Signed-off-by: Sergey Shtylyov <[EMAIL PROTECTED]>
>
> ---
> The patch is against the top of KGDB patchset in the linux_2_6_21_uprev
> branch,
> it will need some changes to be folded into powerpc-lite.patch...
>
> drivers/serial/mpsc.c | 5 ---
> drivers/serial/mpsc_kgdb.c | 59
> ++++++++++++++++++++++++++++++++++++++++-----
> lib/Kconfig.kgdb | 7 +++--
> 3 files changed, 57 insertions(+), 14 deletions(-)
>
> Index: linux-2.6/drivers/serial/mpsc.c
> ===================================================================
> --- linux-2.6.orig/drivers/serial/mpsc.c
> +++ linux-2.6/drivers/serial/mpsc.c
> @@ -242,11 +242,6 @@ struct mpsc_port_info *mpsc_device_remov
> #define MPSC_RCRR 0x0004
> #define MPSC_TCRR 0x0008
>
> -/* MPSC Interrupt registers (offset from MV64x60_SDMA_INTR_OFFSET) */
> -#define MPSC_INTR_CAUSE 0x0004
> -#define MPSC_INTR_MASK 0x0084
> -#define MPSC_INTR_CAUSE_RCC (1<<6)
> -
> /* Serial DMA Controller Interface Registers */
> #define SDMA_SDC 0x0000
> #define SDMA_SDCM 0x0008
> Index: linux-2.6/drivers/serial/mpsc_kgdb.c
> ===================================================================
> --- linux-2.6.orig/drivers/serial/mpsc_kgdb.c
> +++ linux-2.6/drivers/serial/mpsc_kgdb.c
> @@ -7,7 +7,7 @@
> *
> * Author: Randy Vinson <[EMAIL PROTECTED]>
> *
> - * 2005 (c) MontaVista Software, Inc.
> + * Copyright (C) 2005-2006 MontaVista Software, Inc.
> * This program is free software; you can redistribute it and/or modify it
> * under the terms of the GNU General Public License as published by the
> * Free Software Foundation; either version 2 of the License, or (at your
> @@ -22,7 +22,55 @@
> #include <asm/io.h>
> #include <asm/delay.h>
>
> -#include "mpsc.h"
> +/* Main MPSC Configuration Register Offsets */
> +#define MPSC_MMCRL 0x0000
> +#define MPSC_MMCRH 0x0004
> +#define MPSC_MPCR 0x0008
> +#define MPSC_CHR_1 0x000c
> +#define MPSC_CHR_2 0x0010
> +#define MPSC_CHR_3 0x0014
> +#define MPSC_CHR_4 0x0018
> +#define MPSC_CHR_5 0x001c
> +#define MPSC_CHR_6 0x0020
> +#define MPSC_CHR_7 0x0024
> +#define MPSC_CHR_8 0x0028
> +#define MPSC_CHR_9 0x002c
> +#define MPSC_CHR_10 0x0030
> +#define MPSC_CHR_11 0x0034
> +
> +#define MPSC_MPCR_FRZ (1 << 9)
> +#define MPSC_MPCR_CL_5 0
> +#define MPSC_MPCR_CL_6 1
> +#define MPSC_MPCR_CL_7 2
> +#define MPSC_MPCR_CL_8 3
> +#define MPSC_MPCR_SBL_1 0
> +#define MPSC_MPCR_SBL_2 1
> +
> +#define MPSC_CHR_2_TEV (1<<1)
> +#define MPSC_CHR_2_TA (1<<7)
> +#define MPSC_CHR_2_TTCS (1<<9)
> +#define MPSC_CHR_2_REV (1<<17)
> +#define MPSC_CHR_2_RA (1<<23)
> +#define MPSC_CHR_2_CRD (1<<25)
> +#define MPSC_CHR_2_EH (1<<31)
> +#define MPSC_CHR_2_PAR_ODD 0
> +#define MPSC_CHR_2_PAR_SPACE 1
> +#define MPSC_CHR_2_PAR_EVEN 2
> +#define MPSC_CHR_2_PAR_MARK 3
> +
> +/* MPSC Signal Routing */
> +#define MPSC_MRR 0x0000
> +#define MPSC_RCRR 0x0004
> +#define MPSC_TCRR 0x0008
> +
> +/* MPSC Interrupt registers (offset from MV64x60_SDMA_INTR_OFFSET) */
> +#define MPSC_INTR_CAUSE 0x0004
> +#define MPSC_INTR_MASK 0x0084
> +#define MPSC_INTR_CAUSE_RCC (1<<6)
> +
> +/* Baud Rate Generator Interface Registers */
> +#define BRG_BCR 0x0000
> +#define BRG_BTR 0x0004
>
> /* Speed of the UART. */
> static int kgdbmpsc_baud = CONFIG_KGDB_BAUDRATE;
> @@ -43,7 +91,7 @@ static void __iomem *sdma_base;
>
> static unsigned int mpsc_irq;
>
> -static void kgdb_write_debug_char(int c)
> +static void kgdb_write_debug_char(u8 c)
> {
> u32 data;
>
> @@ -80,8 +128,7 @@ static int kgdb_get_debug_char(void)
> * line we're in charge of. If this is true, schedule a breakpoint and
> * return.
> */
> -static irqreturn_t
> -kgdbmpsc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
> +static irqreturn_t kgdbmpsc_interrupt(int irq, void *dev_id)
> {
> if (irq != mpsc_irq)
> return IRQ_NONE;
> @@ -227,7 +274,7 @@ static void __init kgdbmpsc_local_exit(v
> static void __init kgdbmpsc_update_pdata(struct platform_device *pdev)
> {
>
> - snprintf(pdev->dev.bus_id, BUS_ID_SIZE, "%s%u", pdev->name, pdev->id);
> + snprintf(pdev->dev.bus_id, BUS_ID_SIZE, "%s.%u", pdev->name, pdev->id);
> }
>
> static int __init kgdbmpsc_pdev_init(void)
> Index: linux-2.6/lib/Kconfig.kgdb
> ===================================================================
> --- linux-2.6.orig/lib/Kconfig.kgdb
> +++ linux-2.6/lib/Kconfig.kgdb
> @@ -91,7 +91,7 @@ config KGDBOE_NOMODULE
> See the documentation for syntax.
>
> config KGDB_MPSC
> - bool "KGDB on MV64x60 MPSC"
> + bool "KGDB: On MV64x60 MPSC"
> depends on SERIAL_MPSC
> help
> Uses a Marvell GT64260B or MV64x60 Multi-Purpose Serial
> @@ -212,8 +212,9 @@ config KGDB_SIMPLE_SERIAL
>
> config KGDB_BAUDRATE
> int "Debug serial port baud rate"
> - depends on (KGDB_8250 && KGDB_SIMPLE_SERIAL) || KGDB_CPM_UART \
> - || KGDB_TXX9 || KGDB_PXA_SERIAL || KGDB_AMBA_PL011
> + depends on (KGDB_8250 && KGDB_SIMPLE_SERIAL) || \
> + KGDB_MPSC || KGDB_CPM_UART || \
> + KGDB_TXX9 || KGDB_PXA_SERIAL || KGDB_AMBA_PL011
> default "115200"
> help
> gdb and the kernel stub need to agree on the baud rate to be
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Kgdb-bugreport mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport