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

📄 patch-2.6.0-rmk2

📁 linux 2.6.0 的arm补丁 .做嵌入式的来下
💻 0-RMK2
📖 第 1 页 / 共 5 页
字号:
diff -urN orig/Documentation/arm/00-INDEX linux/Documentation/arm/00-INDEX--- orig/Documentation/arm/00-INDEX	Mon Jan 13 22:32:15 2003+++ linux/Documentation/arm/00-INDEX	Sun Apr 27 10:53:20 2003@@ -2,19 +2,27 @@ 	- this file Booting 	- requirements for booting+ConfigVars+	- random descriptions of various config variables Interrupts 	- ARM Interrupt subsystem documentation+MEMC+	- memc-related functions Netwinder 	- Netwinder specific documentation README 	- General ARM documentation SA1100 	- SA1100 documentation+Setup+	- description of old param_struct.  OBSOLETE. XScale 	- XScale documentation empeg 	- Empeg documentation mem_alignment 	- alignment abort handler documentation+memory.txt+	- description of the virtual memory layout nwfpe 	- NWFPE floating point emulator documentationdiff -urN orig/Documentation/arm/ConfigVars linux/Documentation/arm/ConfigVars--- orig/Documentation/arm/ConfigVars	Thu Jan  1 01:00:00 1970+++ linux/Documentation/arm/ConfigVars	Thu Jul 20 18:28:19 2000@@ -0,0 +1,26 @@+CONFIG_ARCH_CO285		- co-ebsa285+CONFIG_ARCH_FOOTBRIDGE		- all other footbridge systems++  CONFIG_ARCH_CATS		- CATS support+  CONFIG_ARCH_PERSONAL_SERVER	- personal server support+  CONFIG_ARCH_EBSA285_ADDIN	- add-in ebsa285 support+  CONFIG_ARCH_EBSA285_HOST	- host ebsa285 support+  CONFIG_ARCH_NETWINDER 	- netwinder support++CONFIG_FOOTBRIDGE		- any system with a footbridge chip+ |- (CONFIG_ARCH_CO285)+ \- (CONFIG_ARCH_FOOTBRIDGE)++CONFIG_FOOTBRIDGE_HOST		- any system with host mode footbridge support+ |- (CONFIG_ARCH_CATS)+ |- (CONFIG_ARCH_EBSA285_HOST)+ |- (CONFIG_ARCH_NETWINDER)+ \- (CONFIG_ARCH_PERSONAL_SERVER)++CONFIG_FOOTBRIDGE_ADDIN 	- any system with addin mode footbridge support+ |- (CONFIG_ARCH_CO285)+ \- (CONFIG_ARCH_EBSA285_ADDIN)++CONFIG_ARCH_EBSA285		- either host or add-in ebsa285 support, but+ |- (CONFIG_ARCH_EBSA285_ADDIN)   not co-ebsa285+ \- (CONFIG_ARCH_EBSA285_HOST)diff -urN orig/Documentation/arm/MEMC linux/Documentation/arm/MEMC--- orig/Documentation/arm/MEMC	Thu Jan  1 01:00:00 1970+++ linux/Documentation/arm/MEMC	Mon May  3 19:51:25 1999@@ -0,0 +1,57 @@+MEMC enhancements for Linux 2.3+-------------------------------++The current interface:++  There is a cache of the MEMC settings held in tsk->tss.memcmap, which is+  kept up to date by the following functions (from the page tables):++  update_memc_all()				hits:	2+	Updates all MEMC caches on all processes.  Update the real MEMC+	to reflect the `current' tasks page tables.++  update_memc_tsk(tsk)				hits:	0+	Update the MEMC cache for the specified task.  If tsk is the+	`current' task, then update the real MEMC as well.++  update_memc_mm(mm)				hits:	16+	Update the MEMC cache for any task which has a mm_struct+	corresponding to `mm'.  If the `current' tasks mm_struct+	includes this, then update the real MEMC as well.++  update_memc_addr(mm, addr, pte)		hits:	8+	Update the MEMC cache entry defined by the physical address+	in pte for any task which has a mm_struct corresponding to `mm'.+	If the `current' tasks mm_struct includes this, then update the+	real MEMC as well.++The proposed interface:++  Couple the MEMC cache into the mm_struct so that we only have to+  keep one copy per mm_struct.  This also allows us to reduce the+  number of loops through all existing tasks on each MEMC change.++  memc_clear(mm, physaddr)			hits:	6+	Clear the MEMC mapping associated with the physical address+	`physaddr'.  If the `current' tasks mm_struct is `mm', then+	update the real MEMC as well.	(should equate to a possible+	two writes and zero reads).++  memc_update_addr(mm, pte, logaddr)		hits:	10+	Change the MEMC mapping for the physical address specified+	in `pte' to point to the logical address `logaddr', with the+	protection specified in `pte'.  If the `current' tasks mm_struct+	is `mm', then update the real MEMC as well.  (should again equate+	to a possible two writes and zero reads).++  memc_update_mm(mm)				hits:	7+	Rebuild the MEMC mappings for the specified `mm' in the same way+	that update_memc_mm used to.  If the `current' tasks mm_struct+	is `mm', update the real MEMC as well.++  memc_update_all()				hits:	2+	Rebuild the MEMC mappings for all mm_structs, including the real+	MEMC.++The hit numbers are approximate usage of each function in the 2.2.7+memory management (mm) code, and there are other uses outside this area.diff -urN orig/Documentation/arm/README linux/Documentation/arm/README--- orig/Documentation/arm/README	Wed Aug 13 10:32:20 2003+++ linux/Documentation/arm/README	Wed Oct 15 22:46:23 2003@@ -149,11 +149,34 @@  Kernel entry (head-armv.S) ---------------------------  The initial entry into the kernel made via head-armv.S uses architecture-  independent code.  The architecture is selected by the value of 'r1' on-  entry, which must be kept unique.  You can register a new architecture-  by mailing the following details to rmk@arm.linux.org.uk  Please give-  the mail a subject of 'Register new architecture':+  The initial entry into the kernel is via head-armv.S, which uses machine+  independent code.  The machine type is selected by the value of 'r1' on+  entry, which must be kept unique.++  Due to the large number of machines which the ARM port of Linux provides+  for, we have a method to manage this which ensures that we don't end up+  duplicating large amounts of code.++  We group machine (or platform) support code into machine classes.  A+  class typically based around one or more system on a chip devices, and+  acts as a natural container around the actual implementations.  These+  classes are given directories - arch/arm/mach-<class> and+  include/asm-arm/arch-<class> - which contain the source files to+  support the machine class.  This directories also contain any machine+  specific supporting code.++  For example, the SA1100 class is based upon the SA1100 and SA1110 SoC+  devices, and contains the code to support the way the on-board and off-+  board devices are used, or the device is setup, and provides that+  machine specific "personality."++  This fine-grained machine specific selection is controlled by the machine+  type ID, which acts both as a run-time and a compile-time code selection+  method.++  You can register a new machine type ID by mailing the following details+  to rmk@arm.linux.org.uk  Please give the mail a subject of+  'Register new architecture':      Name: <name of your architecture>     ArchDir: <name of include/asm-arm/arch-* directory>diff -urN orig/Documentation/arm/SA1100/SA1100_USB linux/Documentation/arm/SA1100/SA1100_USB--- orig/Documentation/arm/SA1100/SA1100_USB	Thu Jan  1 01:00:00 1970+++ linux/Documentation/arm/SA1100/SA1100_USB	Tue Oct 16 20:02:23 2001@@ -0,0 +1,344 @@+StrongARM SA-1100 USB function Driver+Ward Willats <ward.willats@extenex.com> -  08Mar01++1. History+''''''''''+Brad Parker <brad@parker.boston.ma.us> ported the DEC/Compaq "Itsy"+SA-1100 USB Function driver to the 2.4.x code base in late 2000, for+use as an "ethernet over usb" link. His original notes are here in+section 4. Nicolas Pitre <nico@cam.org> rewrote the transmitter and+reciver (endpoints 1 and 2) in late 2000 to use the standard SA DMA+API and I added a bulk character interface and reworked the control+control module code and rewrote endpoint zero in early 2001.++This release (22Feb01) is the first that completely separates+client modules (usb-eth.c and usb-char.c) from the SA-1100 USB core.+(usb_ctl, usb_ep0, usb_send and usb_receive)and makes the whole+mess a module. Oleg Drokin has done a huge amount of work, fixing+things I break and adding support for the generic usbnet driver+from the AC tree.++2. Usage+''''''''+Turn on CONFIG_SA1100_USB_NETLINK to use the "ethernet over usb"+functionality. Turn it off to use the character oriented+interface. The character driver currently uses mknod c 10 240.++Programming:+The public interface is in sa1100_usb.h. For a client USB service+to use the SA-1100 USB core driver it should:++1. Call sa1100_usb_open() to get the usb core assigned to it.++2. Setup descriptors as appropriate for the task at hand. Esp.+important are endpoint max packet lengths, vendor and product IDs,+and type of endpoint (bulk or interrupt). Call+sa1100_get_descriptor_ptr() to get this.++3. Call sa1100_usb_start() to actually start the usb hardware.+At this time the host will configure the device.++...at shutdown...++4. Call sa1100_usb_stop() to stop the USB core.+5. Call sa1100_usb_close() to free the core for use by another+client.++3. Netlink Usage+''''''''''''''''+StrongARM SA-1100 USB function "ethernet over usb driver"+Brad Parker <brad@parker.boston.ma.us>++I ported the DEC "Itsy" usb "ethernet over usb driver" code to the 2.4.x+base and made some enhacements and bug fixes.  This code has 2 sides and+implements a simple "ethernet over usb" functionality.++function (SA1100) side:+- the driver has two endpoints and uses interrupt and bulk transfer to+receive/send packets.  the driver does not require any other usb code+and should work on most any sa1100.++host (SA1111) side:+- because the SA1111 usb host is not working yet I tested this driver+(usb-net-host.c) on a 2.2.14 based PC with the latest usb backport.+It has been fully converted to use URBs and worked well with my UHCI+based controller.++TESTING:++To test you need an assabet on the 'function' side, a PC on the 'host'+side and a USB A-B cable to connect them together.++Boot a kernel on the assabet with "USB function and net-host support"+(CONFIG_SA1100_USB) turned on.  This will define an interface named+"usbf".  Once it's booted you can setup the interface with++	mount -t proc /proc /proc+	/sbin/ifconfig usbf 1.1.1.2++I used a 2.2.14 kernel on a x86 PC for the host side.  It has a built+in UHCI usb controller chip.  I installed the latest USB backport from+http://www.linux-usb.org onto the 2.2.14 kernel sources and turned on+"USB net-host" (CONFIG_USB_NET_HOST) as a module.  Load the module+"usb-net-host.o" and connect the USB cable to the assabet.  Configure+the usb network interface with++	/sbin/ifconfig usb0 1.1.1.1++You should be able to "ping" the assabet now with++	ping -c 1 1.1.1.2++If the assabet is running inetd the usual network services such as+telnet and ftp should work.++Oleg Drokin in 2.4.2-rmk1-np2 (08Mar01) added module config params for+read and write size to the usb-eth.c client to allow dynamic setting+of the DATA0/DATA1 packet size on the usb wire:++usb_rsize - number of bytes in OUT packets from host to SA1100+usb_wsize - number of bytes in IN packets from SA1100 to host++This allows dynamic tuning for performance or to prevent overruning+the the host with data.++4. Known Issues+'''''''''''''''+- We are fiddling with various ways to set the IMP register in+usb_send.c. A small percentage of the time, this value does not+"take."++- I've started to bring back the /proc interface, but clients+of the sa-usb core currently don't have a directory or something+to put their stats into.++- Only a useful subset of ep0 setup calls have been implemented.+++5. Mysteries of the Universe+''''''''''''''''''''''''''''+This driver has been hard to develop because the documentation+provided by Intel is incomplete, and the UDC itself seems to have a+variety of bugs. The errata for the part is particularly scary! This+section is an attempt to document some of the discoveries and+questions I have come across while working on this thing.++pp 11-63 of the "Intel Strong ARM SA-1110 Microprocessor Advanced+Developer Information" give an ominous warning about how "due to+internal synchronization required by the UDC configuration registers,+it is possible for the procesor to write the UDC refisters and FIFOs+too fast." This has led to a variety of approaches that attempt to+bang on the hardware repeatedly and read it back until the write+"sticks."++All of these approaches have been problematic. Currently some macros+in udc_ctl.h that Nicolas wrote are being used. My hardware guy told+me that writes would never be "lost" but stuck on some internal bus in+the UDC module and propagated to the rest of the circuit when the time+was right. Indeed this seemed to be the case, for example, it seems+impossible to reliably read back the interrupt mask register of the UDC when in+the interrupt service routine. Often times the state was not reflected+on a read until after pending interrupt sources were cleared.++I was feeling prety good about this and was ripping out the looping+macros right and left until I came upon a situation where, while+receiving a continuous set of 1 character packets, ep1 (usb_receive.c)+could not clear receive packet complete (RPC). After much desperate+faliling about it turns out changing the UDC_flip() macro to bang like+crazy on the RPC bit did in fact clear it, and clear it+consistently. So go figure.++Other items of interest:++- Upon emerging from a reset, the UDC will clear the mask register except+for a mask on suspend.++- USB 1.0 spec says maximum size of a DATA0/1 packet is 64 bytes,+which is what the character driver is using. However, the UDC can do+256 bytes and every host I've tried can handle it, even though they+are not required to. (Perhaps it is a problem when hubs are on the+line, but the SA UDC has other problems in a hub environment -- like+even getting the correct address -- per the errata).++- Endpoint zero FIFOs: ARGHHH! Just leave those routines alone.+Believe me, I have tried every other variation you can think of.+Probably.++- Sometimes I get a setup request of 0x80 from Windows hosts. I have+not determined if this is a read_fifo error (none is reported) or if+this is some undocumented secret Redmond handshake only known to+initiates of the inner-order.++6. Test Program+'''''''''''''''+This is now in the /proc interface. (For good or ill, probably don't+actually need to dump all this stuff..)++7. Errors and Notes on Intel's 1110 Documentation+'''''''''''''''''''''''''''''''''''''''''''''''''+These corrections apply to "Intel StrongARM SA-1110 Microprocessor,+Advanced Developer's Manual of December 1999" Some of these have been+corrected in later editions, some not. There have been several updates+to this document published through 2000. Always use the latest+available on http://developer.intel.com/design/strong/collateral.htm.++pp 11-65 section 11.8.3.8 bit 2, reserved is now the resume interrupt+mask. SRM is now SUSIM on SA-1110, and masks only the suspend+interrupt.++pp 11-67 section 11.8.6, Max IN register, end should be 9 _bytes_+not 9 bits.++pp 11-68 section 11.8.7.3, SST. This is set by the CPU _not_ the UDC.+And it looks like you don't get a SST if you FST yourself.++pp 11-68 section 11.8.7.5, DE. This is set by the CPU _not_ the UDC.++pp 11-73 section 11.8.9.7, UDCCS2 table, bit 2, Should be "valid only+when _TPC_ (not RPC) is set.++pp 11-74 section 11.8.10, should end with a GET_DESCRIPTOR _or+similar_ command. (Like, for example, GET_CONFIGURATION).+++8. Change History+'''''''''''''''''+Following are current chages  8Mar01 (released in 2.4.2-rmk1-np2?)++- Resetting UDC when coming out of suspend helped enumeration get+going considerably.++- Added support for client-supplied notify routine to be called+by the USB core when core reaches "configured" state.++- Added error returns from interrupt reads and buffer flush ioctl+calls to usb-char. Added usb-char.h file for ioctl calls.++- Fixed bug that kept usb-char transmitter from working the second+time the module was loaded.++- Turned off a lot of the noise in /proc++- Added specialty routines in ep0 to set and clear bits.++- More enumeration fiddling.++- There are horrible hacks to set max IN length in usb_send+  that ARE GOING AWAY SOON! REALLY!++*** Following changes 26Feb01 (released in 2.4.2-rmk1-np1)++- usb-eth integration with generic usbnet from AC tree.++- Creation of public interface for usb clients in sa1100_usb.h+and final separation into a "core" driver (usb_ctl.c, usb_ep0.c+usb_recv.c usb_send.c) and "client" services (usb-eth.c and+usb-char.c). Modularized.++- Descriptor handling rewritten. Support for string descriptors+added. More bugs in ep0 fixed. More setup packets handled.++- /proc interface in usb_ctl returning++- removed client specific stuff from usbd_info_t and hid the+structure in usb_ctl. Removed RAM-backing of address and pktsize+in this structure. Now the descriptor values are gospel.++- usb_dbg.h eliminated+

⌨️ 快捷键说明

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