📄 patch-2.6.0-rmk2
字号:
+- Many bugs fixed in usb-char.c++- Fiddled startup sequence so should start everytime.++- Arch specific "soft connect" hook in usb_ctl.c++- Bumped the interation count in write/set/clear macros+in usb_ctl.h up to 10000. This seemed to help various bit+setting in ep0 and usb_send.c.++*** Following changes 10Feb01 release:++- endpoint zero entirely rewitten++- Various changes by Oleg to make Netlink work again after the+ 2.4.1-rmk1-np1 release.++- Resetting of new max packet length done after clearing TPC+in usb_send, per Nicolas Pitre.+++*** Following changes 23Jan01 (came out in 2.4.1-rmk1-np1):++- Moved host initiated SET/GET feature stall into endpoint code of+usb_send.c and usb_receive.c and removed stallep from usb_ctl.c+Opposite of a SET_FEATURE stall is a reset, so no code to unstall is+provided.++- Added explicit USB state machine to usb_ctl so driver and device+state can be tracked closely and explicitly. Added hard-wired+notification routines in endpoints 1 and 2 so they can track device+state changes as required. State machine has notion of "zombie" state+the covers USB states NONATTACHED, ATTACHED and POWERED since these+are murky, and USB driver currently has no way to differentiate+between the two.++- Reworked ISR in usb_ctl so reset has higher priority than any other+event. Stopped using sync macros to clear interrupt pending flags and set+mask registers since it appears mask register changes are not+always reflected on a mask register read until the pending flag is+cleared (yet other tests show they are always cleared+eventually). Toggle suspend/resume interrupt masks back and forth during+suspend and resume to debounce and keep UDC internal state machine in+sync per Intel documentation.++- Flipped UDC flip, clear, write and set macros from do{}while to+while() loops. Theory is you might save a loop iteration if value+becomes valid immediately. Also, my hardware guy says writes are never+"lost", just pipelined and not executed immediately depending on+internal device conditions (like setting int masks when ints+pending), so moved write cycles in macros outside of loops.++- Added #defines to SA-1110.h for suspend and resume interrupt mask+bits per Intel eratta. Submitted to ARM patch system (444/1).++- Removed task queue and defered execution of configure() from+usb_ctl.++- Removed usb_write_reg() from usb_ctl.c, and various cruft from+usb_ctl.h.++- Added sa1100_usb_xmitter_avail() to usb_send.c. Makes implementing+poll() fileop easier.++- Added sa1100_usb_send_reset() to usb_send.c. Makes implementing+transmitter timeout easier.++- Added API to usb_ctl to set vendor and product ID++- Changed BMATTR descriptor fron int to bulk, when not using netlink. (All+the docs say UDC does not support INT xfers -- though, at the protocol+level I don't see why not, since bulk and int are both just+IN-DATA-ACK. I figure netlink may rely on this, and not just a+continuous pending read from the host, but for "pure bulk" host+polling may not be generally correct.)++- Removed unused rx_lock and tx_lock from usb_ctl++- Converted everyone to SA-1100.h and nuked hardware defines in usb_ctl.h++- Removed udc_init() in usb_ctl.c and folded functionality into udc_start().++- Clear force stall (FST) in udc_start and reset so UDC actually runs when+first turned on.++- Emit NAK in receiver until ep1_start() for error (RPE) case too.++- Remove enable/disable UDC from reset handler in udc_ctl. The UDC has+already been reset, so no need to do this again.++- Explicitly set address to zero in ep0_reset()++- Added "naking" boolean to usb_receiv.c. An attempt to solve a+hypothetical race condition where we are in the critical section+initiating a read from base-level code, a RPC happens, and start()+might clear the condition before the packet is handled by the ISR.diff -urN orig/Documentation/arm/memory.txt linux/Documentation/arm/memory.txt--- orig/Documentation/arm/memory.txt Thu Jan 1 01:00:00 1970+++ linux/Documentation/arm/memory.txt Sun Apr 27 10:53:47 2003@@ -0,0 +1,74 @@+ Kernel Memory Layout on ARM Linux++ Russell King <rmk@arm.linux.org.uk>+ April 27, 2003 (2.5.68)++This document describes the virtual memory layout which the Linux+kernel uses for ARM processors. It indicates which regions are+free for platforms to use, and which are used by generic code.++The ARM CPU is capable of addressing a maximum of 4GB virtual memory+space, and this must be shared between user space processes, the+kernel, and hardware devices.++As the ARM architecture matures, it becomes necessary to reserve+certain regions of VM space for use for new facilities; therefore+this document may reserve more VM space over time.++Start End Use+--------------------------------------------------------------------------+ffff8000 ffffffff copy_user_page / clear_user_page use.+ For SA11xx and Xscale, this is used to+ setup a minicache mapping.++ffff1000 ffff7fff Reserved.+ Platforms must not use this address range.++ffff0000 ffff0fff CPU vector page.+ The CPU vectors are mapped here if the+ CPU supports vector relocation (control+ register V bit.)++ffe00000 fffeffff Free for platform use, not recommended.++ffc00000 ffdfffff 2MB consistent memory mapping.+ Memory returned by the consistent_alloc+ low level function will be dynamically+ mapped here.++ff000000 ffbfffff Free for platform use, not recommended.++VMALLOC_END ff000000 Free for platform use, recommended.++VMALLOC_START VMALLOC_END vmalloc() / ioremap() space.+ Memory returned by vmalloc/ioremap will+ be dynamically placed in this region.+ VMALLOC_START may be based upon the value+ of the high_memory variable.++PAGE_OFFSET high_memory Kernel direct-mapped RAM region.+ This maps the platforms RAM, and typically+ maps all platform RAM in a 1:1 relationship.++TASK_SIZE PAGE_OFFSET Kernel module space+ Kernel modules inserted via insmod are+ placed here using dynamic mappings.++00001000 TASK_SIZE User space mappings+ Per-thread mappings are placed here via+ the mmap() system call.++00000000 00000fff CPU vector page / null pointer trap+ CPUs which do not support vector remapping+ place their vector page here. NULL pointer+ dereferences by both the kernel and user+ space are also caught via this mapping.++Please note that mappings which collide with the above areas may result+in a non-bootable kernel, or may cause the kernel to (eventually) panic+at run time.++Since future CPUs may impact the kernel mapping layout, user programs+must not access any memory which is not mapped inside their 0x0001000+to TASK_SIZE address range. If they wish to access these areas, they+must set up their own mappings using open() and mmap().diff -urN orig/Documentation/l3/structure linux/Documentation/l3/structure--- orig/Documentation/l3/structure Thu Jan 1 01:00:00 1970+++ linux/Documentation/l3/structure Sun Aug 5 18:40:00 2001@@ -0,0 +1,36 @@+L3 Bus Driver+-------------++The structure of the driver is as follows:++ +----------+ +----------+ +----------++ | client 1 | | client 2 | | client 3 |+ +-----^----+ +----^-----+ +----^-----++ | | |+ +-----v--------------v---------------v-----++ | |+ +-----^-------+ +-------^-----++ | | core | |+ +-----v----+ | | +----v-----++ | device | | | | device |+ | driver 1 | | | | driver 2 |+ +-----^----+ | | +----^-----++ | | services | |+ +-----v-------+ +-------v-----++ | |+ +-----------------^----^-------------------++ | |+ | +-v---------++ | | algorithm |+ | | driver |+ | +-v---------++ | |+ +-v----v-++ | bus |+ | driver |+ +--------+++Clients talk to the core to attach device drivers and bus adapters, and+to instruct device drivers to perform actions. Device drivers then talk+to the core to perform L3 bus transactions via the algorithm driver and+ultimately bus driver.diff -urN orig/Documentation/sound/oss/WaveArtist linux/Documentation/sound/oss/WaveArtist--- orig/Documentation/sound/oss/WaveArtist Mon Mar 11 11:55:34 2002+++ linux/Documentation/sound/oss/WaveArtist Thu May 8 00:59:57 2003@@ -20,6 +20,7 @@ 02 | 0 | 0 1 1 1 | left mic mixer gain | left mic | left mixer gain |dith | ----+---+------------+-----+-----+-----+----+-----+-----+-----+-----+-----+-----+-----+ 03 | 0 | 1 0 0 1 | left mixer input select |lrfg | left ADC gain |+ | | | pcm | |micx |mic |aux1 | |line | | | ----+---+------------+-----+-----+-----+----+-----+-----+-----+-----+-----+-----+-----+ 04 | 0 | 1 0 1 1 | right line mixer gain | right aux1 mixer gain |rmute| ----+---+------------+-----+-----+-----+----+-----+-----+-----+-----+-----+-----+-----+@@ -28,6 +29,7 @@ 06 | 0 | 1 1 1 1 | right mic mixer gain | right mic |right mixer gain |rbyps| ----+---+------------+-----+-----+-----+----+-----+-----+-----+-----+-----+-----+-----+ 07 | 1 | 0 0 0 1 | right mixer select |rrfg | right ADC gain |+ | | | pcm | |micx |mic |aux1 | |line | | | ----+---+------------+-----+-----+-----+----+-----+-----+-----+-----+-----+-----+-----+ 08 | 1 | 0 0 1 1 | mono mixer gain |right ADC mux sel|left ADC mux sel | ----+---+------------+-----+-----+-----+----+-----+-----+-----+-----+-----+-----+-----+@@ -91,59 +93,67 @@ L | | +----+ +------+ | | | | | | | \------\ Aux1 | | +----+ +------+ | | |- --------*----->mute>--> Gain >--> I | |- L | +----+ +------+ | | |+ --------*----->mute>--> Gain >--> | |+ L | +----+ +------+ | I | | | | | |- | +----+ +------+ | | +---+ |- *------->mute>--> Gain >--> X >-->AMP>--*+ (Mic) | +----+ +------+ | | +---+ |+ *------->mute>--> Gain >--> >-->AMP>--* | +----+ +------+ | | +-^-+ |- | | | | |- | +----+ +------+ | | r2b1-3 | - | /----->mute>--> Gain >--> E | |+ | | X | | |+ (Micx)| +----+ +------+ | | r2b1-3 | + | /----->mute>--> Gain >--> | | | | +----+ +------+ | | | | | | | |- | | +----+ +------+ | | |- | | /--->mute>--> Gain >--> R | |+ (Mono)| | +----+ +------+ | E | |+ | | /--->mute>--> Gain >--> | | | | | +----+ +------+ | | |+ | | | | | |+ FM | | | +------+ | | |+ ----------------------> Gain >--> R | |+ L | | | +------+ | | | | | | | | | r9b8-9 | | | +----+ +------+ | | | | | | | /->mute>--> Gain >--> | | +---v---+ | | | | +----+ +------+ +---+ /-*->0 |- DAC | | | | | | |+ PCM | | | | | | | ------------*----------------------------------->? | +----+ L | | | | | Mux >-->mute>--> L output | | | | /->? | +--^-+ | | | | | | | |- | | | /--------->? | r0b0- | | | | | | +-------+- | | | | | |- Mono | | | | | | +-------+- ----------* | \---> | +----+- | | | | | | Mix >-->mute>--> Mono output- | | | | *-> | +--^-+- | | | | | +-------+ |- | | | | | r1b0- DAC | | | | | +-------+- ------------*-------------------------*--------->1 | +----++ | | | /----->? | r0b0+ | | | | | | +-------++ | | | | | |+ Mono | | | | | | +-------++ ----------* | \---> | +----++ | | | | | | Mix >-->mute>--> Mono output+ | | | | *-> | +--^-++ | | | | | +-------+ |+ | | | | | r1b0+ PCM | | | | | +-------++ ------------*-----------------------------*----->1 | +----+ R | | | | | | Mux >-->mute>--> R output | | | | +----+ +------+ +---+ *->0 | +--^-+ | | | \->mute>--> Gain >--> | | +---^---+ |- | | | +----+ +------+ | | | | r5b0+ | | | +----+ +------+ | | | | r4b0 | | | | | | r6b0- | | | +----+ +------+ | | |- | | \--->mute>--> Gain >--> M | |- | | +----+ +------+ | | |- | | | | |- | | +----+ +------+ | | |- | *----->mute>--> Gain >--> I | |- | | +----+ +------+ | | |+ FM | | | +------+ | | |+ ----------------------> Gain >--> M | |+ R | | | +------+ | | |+ | | | | | |+ (Mono)| | | +----+ +------+ | | |+ | | \--->mute>--> Gain >--> | |+ | | +----+ +------+ | I | | | | | | |- | | +----+ +------+ | | +---+ |- \------->mute>--> Gain >--> X >-->AMP>--*- | +----+ +------+ | | +-^-+ |- /--/ | | | |- Aux1 | +----+ +------+ | | r6b1-3 |- -------*------>mute>--> Gain >--> E | |+ (Micx)| | +----+ +------+ | | |+ \------->mute>--> Gain >--> | |+ | +----+ +------+ | | |+ | | X | |+ (Mic) | +----+ +------+ | | +---+ |+ /--*----->mute>--> Gain >--> >-->AMP>--*+ | +----+ +------+ | | +-^-+ |+ | | | | |+ Aux1 | +----+ +------+ | E | r6b1-3 |+ -------*------>mute>--> Gain >--> | | R | | +----+ +------+ | | | | | | | | Aux2 | | +----+ +------+ | | /------/diff -urN orig/Makefile linux/Makefile--- orig/Makefile Thu Dec 18 09:57:40 2003+++ linux/Makefile Sun Dec 21 21:57:02 2003@@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 0-EXTRAVERSION =+EXTRAVERSION =-rmk2 # *DOCUMENTATION* # To see a list of typical targets execute "make help"diff -urN orig/arch/arm/Kconfig linux/arch/arm/Kconfig--- orig/arch/arm/Kconfig Thu Oct 9 00:03:43 2003+++ linux/arch/arm/Kconfig Sat Dec 20 23:49:46 2003@@ -227,9 +227,14 @@ menu "General setup" # Select various configuration options depending on the machine type++config NUMA+ bool "Numa Memory Allocation Support"+ depends on ARCH_INTEGRATOR+ config DISCONTIGMEM bool- depends on ARCH_EDB7211 || ARCH_SA1100+ depends on ARCH_EDB7211 || ARCH_SA1100 || NUMA default y help Say Y to upport efficient handling of discontiguous physical memory,diff -urN orig/arch/arm/Makefile linux/arch/arm/Makefile--- orig/arch/arm/Makefile Fri Oct 17 23:59:51 2003+++ linux/arch/arm/Makefile Fri Nov 21 16:18:10 2003@@ -33,6 +33,7 @@ # Note that GCC does not numerically define an architecture version # macro, but instead defines a whole series of macros which makes # testing for a specific architecture or later rather impossible.+arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 -march=armv5t -Wa,-march=armv6 arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 $(call check_gcc,-march=armv5te,-march=armv4) arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4 arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3@@ -47,6 +48,7 @@ tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110 tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100 tune-$(CONFIG_CPU_XSCALE) :=$(call check_gcc,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale+tune-$(CONFIG_CPU_V6) :=-mtune=strongarm # Need -Uarm for gcc < 3.x CFLAGS_BOOT :=-mapcs-32 $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarmdiff -urN orig/arch/arm/boot/compressed/Makefile linux/arch/arm/boot/compressed/Makefile--- orig/arch/arm/boot/compressed/Makefile Mon Mar 24 23:47:12 2003+++ linux/arch/arm/boot/compressed/Makefile Mon Oct 13 14:39:52 2003@@ -23,10 +23,6 @@ OBJS += head-shark.o ofw-shark.o endif -ifeq ($(CONFIG_ARCH_INTEGRATOR),y)-OBJS += head-integrator.o-endif- ifeq ($(CONFIG_ARCH_CAMELOT),y) OBJS += head-epxa10db.o endifdiff -urN orig/arch/arm/boot/compressed/head-integrator.S linux/arch/arm/boot/compressed/head-integrator.S--- orig/arch/arm/boot/compressed/head-integrator.S Sun Apr 28 17:16:56 2002+++ linux/arch/arm/boot/compressed/head-integrator.S Thu Jan 1 01:00:00 1970@@ -1,4 +0,0 @@-#include <asm/mach-types.h>-- .section ".start", "ax"- mov r7, #MACH_TYPE_INTEGRATORdiff -urN orig/arch/arm/boot/compressed/head.S linux/arch/arm/boot/compressed/head.S--- orig/arch/arm/boot/compressed/head.S Thu Oct 9 00:03:43 2003+++ linux/arch/arm/boot/compressed/head.S Wed Oct 15 10:13:08 2003@@ -503,12 +503,6 @@ @ Everything from here on will be the new ID system. - .word 0x41129200 @ ARM920T- .word 0xff00fff0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -