⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uboot-usbtty-acm.patch

📁 Uboot常用的移植patches, 方便定制移植到s3c2440
💻 PATCH
字号:
This patch adds cdc_acm interoperability to u-boot usbtty.It was taken (almost blindly) from the Linux for Siemens SX1 project onhandhelds.org.  Please don't complain to me about coding style issuesor whitespace changes in this one - HW.Index: u-boot/drivers/serial/usbtty.c===================================================================--- u-boot.orig/drivers/serial/usbtty.c+++ u-boot/drivers/serial/usbtty.c@@ -1,7 +1,7 @@ /*  * (C) Copyright 2003  * Gerry Hamel, geh@ti.com, Texas Instruments- *+ *   * (C) Copyright 2006  * Bryan O'Donoghue, bodonoghue@codehermit.ie  *@@ -25,6 +25,7 @@  #ifdef CONFIG_USB_TTY +#include <asm/io.h> #include <circbuf.h> #include <devices.h> #include "usbtty.h"@@ -474,6 +475,12 @@ 		usbtty_poll ();  		space = maxlen - usbtty_output.size;++		/* If the USB is not configured, allow the circular buffer to+		   be overwritten. Otherwise this while() will loop forever. */+		if (!usbtty_configured())+			space = maxlen;+ 		/* Empty buffer here, if needed, to ensure space... */ 		if (space) { 			write_buffer (&usbtty_output);@@ -544,6 +551,14 @@ 	} 	usbtty_init_terminal_type(strcmp(tt,"cdc_acm")); +	/* Decide on which type of UDC device to be.+	 */++	if(!(tt = getenv("usbtty"))) {+		tt = "generic";+	}+	usbtty_init_terminal_type(strcmp(tt,"cdc_acm"));+	 	/* prepare buffers... */ 	buf_init (&usbtty_input, USBTTY_BUFFER_SIZE); 	buf_init (&usbtty_output, USBTTY_BUFFER_SIZE);Index: u-boot/drivers/serial/usbtty.h===================================================================--- u-boot.orig/drivers/serial/usbtty.h+++ u-boot/drivers/serial/usbtty.h@@ -27,7 +27,7 @@ #include "usbdcore.h" #if defined(CONFIG_PPC) #include "usbdcore_mpc8xx.h"-#elif defined(CONFIG_ARM)+#elif defined(CONFIG_OMAP1510) #include "usbdcore_omap1510.h" #endif @@ -36,12 +36,13 @@ /* If no VendorID/ProductID is defined in config.h, pretend to be Linux  * DO NOT Reuse this Vendor/Product setup with protocol incompatible devices */ +#ifndef CONFIG_USBD_VENDORID #define CONFIG_USBD_VENDORID 0x0525 	/* Linux/NetChip */ #define CONFIG_USBD_PRODUCTID_GSERIAL 0xa4a6	/* gserial */ #define CONFIG_USBD_PRODUCTID_CDCACM  0xa4a7	/* CDC ACM */ #define CONFIG_USBD_MANUFACTURER "Das U-Boot" #define CONFIG_USBD_PRODUCT_NAME U_BOOT_VERSION-+#endif /* CONFIG_USBD_VENDORID */  #define CONFIG_USBD_CONFIGURATION_STR "TTY via USB" Index: u-boot/drivers/usb/usbdcore_omap1510.c===================================================================--- u-boot.orig/drivers/usb/usbdcore_omap1510.c+++ u-boot/drivers/usb/usbdcore_omap1510.c@@ -960,7 +960,7 @@ /* Handle general USB interrupts and dispatch according to type.  * This function implements TRM Figure 14-13.  */-void omap1510_udc_irq (void)+static void omap1510_udc_irq (void) { 	u16 irq_src = inw (UDC_IRQ_SRC); 	int valid_irq = 0;@@ -1000,7 +1000,7 @@ }  /* This function implements TRM Figure 14-26. */-void omap1510_udc_noniso_irq (void)+static void omap1510_udc_noniso_irq (void) { 	unsigned short epnum; 	unsigned short irq_src = inw (UDC_IRQ_SRC);@@ -1054,6 +1054,20 @@ 			       irq_src); } +void udc_irq(void)+{+	/* Loop while we have interrupts.+	 * If we don't do this, the input chain+	 * polling delay is likely to miss+	 * host requests.+	 */+	while (inw (UDC_IRQ_SRC) & ~UDC_SOF_Flg) {+		/* Handle any new IRQs */+		omap1510_udc_irq ();+		omap1510_udc_noniso_irq ();+	}+}+ /* ------------------------------------------------------------------------------- */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -