亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mips-lite.patch

?? Linux-2.6.18內(nèi)核調(diào)試工具補丁程序KGDB。
?? PATCH
?? 第 1 頁 / 共 5 頁
字號:
This adds basic support to the MIPS architecture as well as supportspecifically for the MIPS Malta (via 8250) and SiByte 1250-SWARM(32 and 64bit, custom uart), all from Manish Lachwani.  This looks like itshould work on anything with an 8250-compatible uart, and be fairly easyto convert other boards with custom uarts.  This also adds the base functionsfor debugging into the serial_txx9 driver, from Ralf.Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>Signed-off-by: Tom Rini <trini@kernel.crashing.org> arch/mips/Kconfig.debug                   |   19 arch/mips/kernel/Makefile                 |    3 arch/mips/kernel/gdb-low.S                |  369 ---------- arch/mips/kernel/gdb-stub.c               | 1096 ------------------------------ arch/mips/kernel/irq.c                    |   32 arch/mips/kernel/kgdb-jmp.c               |  116 +++ arch/mips/kernel/kgdb-setjmp.S            |   28 arch/mips/kernel/kgdb.c                   |  297 ++++++++ arch/mips/kernel/kgdb_handler.S           |   57 + arch/mips/kernel/traps.c                  |   24 arch/mips/mips-boards/generic/Makefile    |    1 arch/mips/mips-boards/generic/init.c      |   62 - arch/mips/mips-boards/malta/malta_setup.c |    8 arch/mips/mm/extable.c                    |    7 arch/mips/sibyte/cfe/setup.c              |   14 arch/mips/sibyte/sb1250/Makefile          |    1 arch/mips/sibyte/sb1250/irq.c             |   59 - arch/mips/sibyte/sb1250/irq_handler.S     |    2 arch/mips/sibyte/sb1250/kgdb_sibyte.c     |  164 ++++ arch/mips/sibyte/swarm/Makefile           |    2 arch/mips/sibyte/swarm/dbg_io.c           |   76 -- arch/mips/tx4938/common/Makefile          |    2 drivers/serial/serial_txx9.c              |   90 ++ include/asm-mips/kdebug.h                 |   47 + include/asm-mips/kgdb.h                   |   29 lib/Kconfig.debug                         |    7 26 files changed, 889 insertions(+), 1723 deletions(-)Index: linux-2.6.16/drivers/serial/serial_txx9.c===================================================================--- linux-2.6.16.orig/drivers/serial/serial_txx9.c	2006-03-20 00:53:29.000000000 -0500+++ linux-2.6.16/drivers/serial/serial_txx9.c	2006-04-25 08:01:03.942041168 -0400@@ -1174,6 +1174,96 @@ MODULE_DEVICE_TABLE(pci, serial_txx9_pci_tbl); #endif /* ENABLE_SERIAL_TXX9_PCI */ +/******************************************************************************/+/* BEG: KDBG Routines                                                         */+/******************************************************************************/++#ifdef CONFIG_KGDB+int kgdb_init_count = 0;++void txx9_sio_kgdb_hook(unsigned int port, unsigned int baud_rate)+{+	static struct resource kgdb_resource;+	int ret;+	struct uart_txx9_port *up = &serial_txx9_ports[port];++	/* prevent initialization by driver */+	kgdb_resource.name = "serial_txx9(debug)";+	kgdb_resource.start = (unsigned long)up->port.membase;+	kgdb_resource.end = (unsigned long)(up->port.membase + 36 - 1);+	kgdb_resource.flags = IORESOURCE_MEM | IORESOURCE_BUSY;++	ret = request_resource(&iomem_resource, &kgdb_resource);+	if(ret == -EBUSY)+		printk(" serial_txx9(debug): request_resource failed\n");++	return;+}+void+txx9_sio_kdbg_init( unsigned int port_number )+{+	if (port_number == 1) {+		txx9_sio_kgdb_hook(port_number, 38400);+	} else {+		printk("Bad Port Number [%u] != [1]\n",port_number);+	}+	return;+}++u8+txx9_sio_kdbg_rd( void )+{+	unsigned int status,ch;+	struct uart_txx9_port *up = &serial_txx9_ports[1];++	if (kgdb_init_count == 0) {+		txx9_sio_kdbg_init(1);+		kgdb_init_count = 1;+	}++	while (1) {+		status = sio_in(up, TXX9_SIDISR);+		if ( status & 0x1f ) {+			ch = sio_in(up, TXX9_SIRFIFO );+			break;+		}+	}++	return (ch);+}++int+txx9_sio_kdbg_wr( u8 ch )+{+	unsigned int status;+	struct uart_txx9_port *up = &serial_txx9_ports[1];++	if (kgdb_init_count == 0) {+		txx9_sio_kdbg_init(1);+		kgdb_init_count = 1;+	}++	while (1) {+		status = sio_in(up, TXX9_SICISR);+		if (status & TXX9_SICISR_TRDY) {+			if ( ch == '\n' ) {+				txx9_sio_kdbg_wr( '\r' );+			}+			sio_out(up, TXX9_SITFIFO, (u32)ch );++			break;+		}+	}++	return (1);+}+#endif /* CONFIG_KGDB */+++/******************************************************************************/+/* END: KDBG Routines                                                         */+/******************************************************************************/+ static int __init serial_txx9_init(void) { 	int ret;Index: linux-2.6.16/lib/Kconfig.debug===================================================================--- linux-2.6.16.orig/lib/Kconfig.debug	2006-04-25 08:01:02.886201680 -0400+++ linux-2.6.16/lib/Kconfig.debug	2006-04-25 08:01:04.012030528 -0400@@ -232,7 +232,7 @@ config KGDB 	bool "KGDB: kernel debugging with remote gdb" 	select WANT_EXTRA_DEBUG_INFORMATION-	depends on DEBUG_KERNEL && (X86 || PPC)+	depends on DEBUG_KERNEL && (X86 || MIPS || PPC) 	help 	  If you say Y here, it will be possible to remotely debug the 	  kernel using gdb. It is strongly suggested that you enable@@ -260,6 +260,7 @@ 	default KGDB_8250_NOMODULE 	default KGDB_MPSC if SERIAL_MPSC 	default KGDB_CPM_UART if (8xx || 8260)+	default KGDB_SIBYTE if SIBYTE_SB1xxx_SOC 	help 	  There are a number of different ways in which you can communicate 	  with KGDB.  The most common is via serial, with the 8250 driver@@ -310,6 +311,10 @@ 	depends on PPC && (CPM2 || 8xx)  	help  	  Uses CPM UART to communicate with the host GDB.++config KGDB_SIBYTE+	bool "KGDB: On the Broadcom SWARM serial port"+	depends on MIPS && SIBYTE_SB1xxx_SOC endchoice  config KGDBOEIndex: linux-2.6.16/arch/mips/kernel/kgdb-setjmp.S===================================================================--- linux-2.6.16.orig/arch/mips/kernel/kgdb-setjmp.S	2006-04-25 03:03:31.107356424 -0400+++ linux-2.6.16/arch/mips/kernel/kgdb-setjmp.S	2006-04-25 08:01:04.005031592 -0400@@ -0,0 +1,28 @@+/*+ * arch/mips/kernel/kgdb-jmp.c+ *+ * Save and restore system registers so that within a limited frame we+ * may have a fault and "jump back" to a known safe location.+ *+ * Copyright (C) 2005 by MontaVista Software.+ * Author: Manish Lachwani (mlachwani@mvista.com)+ *+ * This file is licensed under the terms of the GNU General Public License+ * version 2. This program as licensed "as is" without any warranty of+ * any kind, whether express or implied.+ */++#include <asm/asm.h>+#include <asm/mipsregs.h>+#include <asm/regdef.h>+#include <asm/stackframe.h>++	.ent	kgdb_fault_setjmp,0+ENTRY (kgdb_fault_setjmp)+	move    a1, sp+	move	a2, fp+#ifdef CONFIG_MIPS64+	nop+#endif+	j	kgdb_fault_setjmp_aux+	.end	kgdb_fault_setjmpIndex: linux-2.6.16/arch/mips/kernel/gdb-stub.c===================================================================--- linux-2.6.16.orig/arch/mips/kernel/gdb-stub.c	2006-03-20 00:53:29.000000000 -0500+++ linux-2.6.16/arch/mips/kernel/gdb-stub.c	2006-04-25 03:03:31.107356424 -0400@@ -1,1096 +0,0 @@-/*- *  arch/mips/kernel/gdb-stub.c- *- *  Originally written by Glenn Engel, Lake Stevens Instrument Division- *- *  Contributed by HP Systems- *- *  Modified for SPARC by Stu Grossman, Cygnus Support.- *- *  Modified for Linux/MIPS (and MIPS in general) by Andreas Busse- *  Send complaints, suggestions etc. to <andy@waldorf-gmbh.de>- *- *  Copyright (C) 1995 Andreas Busse- *- *  Copyright (C) 2003 MontaVista Software Inc.- *  Author: Jun Sun, jsun@mvista.com or jsun@junsun.net- */--/*- *  To enable debugger support, two things need to happen.  One, a- *  call to set_debug_traps() is necessary in order to allow any breakpoints- *  or error conditions to be properly intercepted and reported to gdb.- *  Two, a breakpoint needs to be generated to begin communication.  This- *  is most easily accomplished by a call to breakpoint().  Breakpoint()- *  simulates a breakpoint by executing a BREAK instruction.- *- *- *    The following gdb commands are supported:- *- * command          function                               Return value- *- *    g             return the value of the CPU registers  hex data or ENN- *    G             set the value of the CPU registers     OK or ENN- *- *    mAA..AA,LLLL  Read LLLL bytes at address AA..AA      hex data or ENN- *    MAA..AA,LLLL: Write LLLL bytes at address AA.AA      OK or ENN- *- *    c             Resume at current address              SNN   ( signal NN)- *    cAA..AA       Continue at address AA..AA             SNN- *- *    s             Step one instruction                   SNN- *    sAA..AA       Step one instruction from AA..AA       SNN- *- *    k             kill- *- *    ?             What was the last sigval ?             SNN   (signal NN)- *- *    bBB..BB	    Set baud rate to BB..BB		   OK or BNN, then sets- *							   baud rate- *- * All commands and responses are sent with a packet which includes a- * checksum.  A packet consists of- *- * $<packet info>#<checksum>.- *- * where- * <packet info> :: <characters representing the command or response>- * <checksum>    :: < two hex digits computed as modulo 256 sum of <packetinfo>>- *- * When a packet is received, it is first acknowledged with either '+' or '-'.- * '+' indicates a successful transfer.  '-' indicates a failed transfer.- *- * Example:- *- * Host:                  Reply:- * $m0,10#2a               +$00010203040506070809101112131415#42- *- *- *  ==============- *  MORE EXAMPLES:- *  ==============- *- *  For reference -- the following are the steps that one- *  company took (RidgeRun Inc) to get remote gdb debugging- *  going. In this scenario the host machine was a PC and the- *  target platform was a Galileo EVB64120A MIPS evaluation- *  board.- *- *  Step 1:- *  First download gdb-5.0.tar.gz from the internet.- *  and then build/install the package.- *- *  Example:- *    $ tar zxf gdb-5.0.tar.gz- *    $ cd gdb-5.0- *    $ ./configure --target=mips-linux-elf- *    $ make- *    $ install- *    $ which mips-linux-elf-gdb- *    /usr/local/bin/mips-linux-elf-gdb- *- *  Step 2:- *  Configure linux for remote debugging and build it.- *- *  Example:- *    $ cd ~/linux- *    $ make menuconfig <go to "Kernel Hacking" and turn on remote debugging>- *    $ make- *- *  Step 3:- *  Download the kernel to the remote target and start- *  the kernel running. It will promptly halt and wait- *  for the host gdb session to connect. It does this- *  since the "Kernel Hacking" option has defined- *  CONFIG_KGDB which in turn enables your calls- *  to:- *     set_debug_traps();- *     breakpoint();- *- *  Step 4:- *  Start the gdb session on the host.- *- *  Example:- *    $ mips-linux-elf-gdb vmlinux- *    (gdb) set remotebaud 115200- *    (gdb) target remote /dev/ttyS1- *    ...at this point you are connected to- *       the remote target and can use gdb- *       in the normal fasion. Setting- *       breakpoints, single stepping,- *       printing variables, etc.- */-#include <linux/config.h>-#include <linux/string.h>-#include <linux/kernel.h>-#include <linux/signal.h>-#include <linux/sched.h>-#include <linux/mm.h>-#include <linux/console.h>-#include <linux/init.h>-#include <linux/smp.h>-#include <linux/spinlock.h>-#include <linux/slab.h>-#include <linux/reboot.h>--#include <asm/asm.h>-#include <asm/cacheflush.h>-#include <asm/mipsregs.h>-#include <asm/pgtable.h>-#include <asm/system.h>-#include <asm/gdb-stub.h>-#include <asm/inst.h>--/*- * external low-level support routines- */--extern int putDebugChar(char c);    /* write a single character      */-extern char getDebugChar(void);     /* read and return a single char */-extern void trap_low(void);--/*- * breakpoint and test functions- */-extern void breakpoint(void);-extern void breakinst(void);-extern void async_breakpoint(void);-extern void async_breakinst(void);-extern void adel(void);--/*- * local prototypes- */--static void getpacket(char *buffer);-static void putpacket(char *buffer);-static int computeSignal(int tt);-static int hex(unsigned char ch);-static int hexToInt(char **ptr, int *intValue);-static int hexToLong(char **ptr, long *longValue);-static unsigned char *mem2hex(char *mem, char *buf, int count, int may_fault);-void handle_exception(struct gdb_regs *regs);--int kgdb_enabled;--/*- * spin locks for smp case- */-static DEFINE_SPINLOCK(kgdb_lock);-static raw_spinlock_t kgdb_cpulock[NR_CPUS] = {-	[0 ... NR_CPUS-1] = __RAW_SPIN_LOCK_UNLOCKED,-};--/*- * BUFMAX defines the maximum number of characters in inbound/outbound buffers- * at least NUMREGBYTES*2 are needed for register packets- */-#define BUFMAX 2048--static char input_buffer[BUFMAX];-static char output_buffer[BUFMAX];-static int initialized;	/* !0 means we've been initialized */-static int kgdb_started;-static const char hexchars[]="0123456789abcdef";--/* Used to prevent crashes in memory access.  Note that they'll crash anyway if-   we haven't set up fault handlers yet... */-int kgdb_read_byte(unsigned char *address, unsigned char *dest);-int kgdb_write_byte(unsigned char val, unsigned char *dest);--/*- * Convert ch from a hex digit to an int- */-static int hex(unsigned char ch)-{-	if (ch >= 'a' && ch <= 'f')-		return ch-'a'+10;-	if (ch >= '0' && ch <= '9')-		return ch-'0';-	if (ch >= 'A' && ch <= 'F')-		return ch-'A'+10;-	return -1;-}--/*- * scan for the sequence $<data>#<checksum>- */-static void getpacket(char *buffer)-{-	unsigned char checksum;-	unsigned char xmitcsum;-	int i;-	int count;-	unsigned char ch;--	do {-		/*-		 * wait around for the start character,-		 * ignore all other characters-		 */-		while ((ch = (getDebugChar() & 0x7f)) != '$') ;--		checksum = 0;-		xmitcsum = -1;-		count = 0;--		/*-		 * now, read until a # or end of buffer is found-		 */-		while (count < BUFMAX) {-			ch = getDebugChar();-			if (ch == '#')-				break;-			checksum = checksum + ch;-			buffer[count] = ch;-			count = count + 1;-		}--		if (count >= BUFMAX)-			continue;--		buffer[count] = 0;--		if (ch == '#') {-			xmitcsum = hex(getDebugChar() & 0x7f) << 4;-			xmitcsum |= hex(getDebugChar() & 0x7f);--			if (checksum != xmitcsum)-				putDebugChar('-');	/* failed checksum */-			else {-				putDebugChar('+'); /* successful transfer */--				/*-				 * if a sequence char is present,-				 * reply the sequence ID-				 */-				if (buffer[2] == ':') {-					putDebugChar(buffer[0]);-					putDebugChar(buffer[1]);--					/*-					 * remove sequence chars from buffer-					 */-					count = strlen(buffer);-					for (i=3; i <= count; i++)-						buffer[i-3] = buffer[i];-				}-			}-		}-	}-	while (checksum != xmitcsum);-}--/*- * send the packet in buffer.- */-static void putpacket(char *buffer)-{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人av网| 欧美日韩一卡二卡| 国产精品12区| 久草中文综合在线| 国内成人精品2018免费看| 免费在线观看精品| 蜜臀精品久久久久久蜜臀| 日韩电影在线免费| 麻豆精品一区二区| 精品一区二区日韩| 精品亚洲aⅴ乱码一区二区三区| 久久99国产精品免费网站| 国产中文字幕一区| 粗大黑人巨茎大战欧美成人| av毛片久久久久**hd| 97久久超碰国产精品电影| 色综合久久久久综合体桃花网| 色综合天天综合色综合av| 91国模大尺度私拍在线视频| 欧美美女bb生活片| 欧美第一区第二区| 国产欧美日韩久久| 亚洲黄色免费网站| 日韩成人dvd| 国产综合成人久久大片91| 国产成人亚洲精品狼色在线| 不卡的av在线| 欧美三区在线观看| 精品日韩在线一区| 中文字幕av一区二区三区| 亚洲欧美激情视频在线观看一区二区三区 | 美女脱光内衣内裤视频久久影院| 日韩不卡一二三区| 国产盗摄精品一区二区三区在线| av男人天堂一区| 欧美疯狂性受xxxxx喷水图片| 欧美大片日本大片免费观看| 国产三级欧美三级日产三级99| 日韩理论在线观看| 日韩精品亚洲一区二区三区免费| 国产一区二区成人久久免费影院| 99精品国产一区二区三区不卡| 欧美日韩精品欧美日韩精品一| xfplay精品久久| 亚洲精品欧美专区| 久久99精品久久只有精品| 91看片淫黄大片一级| 欧美一区二区免费视频| 2014亚洲片线观看视频免费| 亚洲精品免费在线播放| 久久se精品一区精品二区| 波多野结衣91| 日韩精品一区二区三区在线观看 | 国产偷v国产偷v亚洲高清| 一区二区三区欧美在线观看| 老司机精品视频导航| 色欧美日韩亚洲| 久久久综合九色合综国产精品| 亚洲一区二区三区四区五区黄| 国产综合久久久久影院| 欧美日韩美女一区二区| 国产精品毛片久久久久久| 首页国产丝袜综合| 色综合一区二区| 欧美激情一区在线| 奇米色777欧美一区二区| 91九色最新地址| 欧美激情一区二区三区四区| 蜜臀久久99精品久久久画质超高清 | 午夜视频一区二区| 99精品视频在线播放观看| 精品成人一区二区三区四区| 亚洲精品国产视频| 成人免费黄色在线| 久久综合久久久久88| 日韩va欧美va亚洲va久久| 在线观看欧美精品| 中文字幕色av一区二区三区| 国产一区二区中文字幕| 日韩一级精品视频在线观看| 亚洲图片自拍偷拍| 色婷婷综合久久久| 自拍偷自拍亚洲精品播放| 国产福利一区在线| 欧美大胆人体bbbb| 丝袜a∨在线一区二区三区不卡| 一本大道久久a久久综合| 亚洲国产成人私人影院tom| 国产精品综合一区二区三区| 日韩一区二区在线观看视频播放| 亚洲一区二区三区三| 91视频观看免费| 自拍视频在线观看一区二区| 成人激情免费视频| 国产精品久久久一本精品| 国产成人在线视频播放| 久久这里只有精品6| 狠狠色狠狠色综合系列| 欧美xfplay| 久久99精品视频| 精品国精品国产| 国产制服丝袜一区| 久久精品视频免费| 国产91丝袜在线播放九色| 国产日韩一级二级三级| 成人理论电影网| 国产精品久久久久国产精品日日| 国产成人99久久亚洲综合精品| 日本一区二区免费在线观看视频| 风间由美性色一区二区三区| 久久久国产一区二区三区四区小说| 国产一区二区三区蝌蚪| 国产色91在线| 99久久精品免费看国产免费软件| 亚洲图片另类小说| 91高清视频在线| 亚洲成人av中文| 欧美一区二区三区在线电影| 偷窥少妇高潮呻吟av久久免费| 欧美一级黄色大片| 国产一区二区网址| 国产精品青草久久| 日本精品裸体写真集在线观看| 亚洲高清视频在线| 日韩免费视频线观看| 国产一区二区三区久久悠悠色av| 国产精品妹子av| 欧美色图片你懂的| 久久成人精品无人区| 国产日韩三级在线| 在线精品视频免费播放| 久久精品72免费观看| 欧美高清在线一区| 欧美日韩在线播放三区四区| 老司机免费视频一区二区三区| 欧美激情艳妇裸体舞| 欧美性受xxxx黑人xyx性爽| 日本亚洲免费观看| 日本一区二区三区电影| 欧美性猛片aaaaaaa做受| 老司机精品视频导航| 1区2区3区欧美| 欧美一级日韩一级| 97se亚洲国产综合自在线| 日日摸夜夜添夜夜添精品视频| 久久免费午夜影院| 91国产精品成人| 国产乱码精品一品二品| 亚洲黄一区二区三区| 精品成a人在线观看| 色综合天天综合网天天看片| 久久国产综合精品| 亚洲欧美另类综合偷拍| 欧美精品一区二区久久婷婷| 一本色道久久综合亚洲aⅴ蜜桃 | 一区二区三区加勒比av| 欧美成人a∨高清免费观看| 99久久伊人网影院| 久久精品国产成人一区二区三区| 亚洲日本在线看| 精品理论电影在线| 欧美亚洲国产一区二区三区| 国产精品中文字幕日韩精品| 亚洲图片欧美综合| 中文字幕一区二区5566日韩| 日韩欧美在线一区二区三区| 91在线免费播放| 国产九九视频一区二区三区| 日韩中文欧美在线| 亚洲人成小说网站色在线| 精品国产123| 欧美精三区欧美精三区| 色综合久久久久久久久| 国产精品538一区二区在线| 日日夜夜免费精品视频| 一区二区三区在线影院| 国产精品麻豆欧美日韩ww| 精品黑人一区二区三区久久 | 国产精品成人一区二区三区夜夜夜 | 3d动漫精品啪啪一区二区竹菊| 99国产精品99久久久久久| 国产一区二区三区免费播放| 美女久久久精品| 视频一区二区欧美| 亚洲成人免费在线观看| 亚洲精品国产成人久久av盗摄| 国产精品久久综合| www一区二区| 日韩久久久精品| 欧美一区二区在线播放| 欧美日韩高清不卡| 欧美日韩精品一区视频| 欧美在线短视频| 在线亚洲一区二区| 在线影院国内精品| 日本韩国欧美国产| 日本高清不卡在线观看| av一区二区三区黑人| 成人理论电影网| 成年人国产精品|