diff -ruN linux-2.4.24-uc0-snap1/Documentation/Configure.help linux-2.4.24-uc0-snap1-fass1/Documentation/Configure.help --- linux-2.4.24-uc0-snap1/Documentation/Configure.help 2004-02-17 23:52:12.000000000 +1100 +++ linux-2.4.24-uc0-snap1-fass1/Documentation/Configure.help 2004-03-27 14:56:14.000000000 +1100 @@ -25741,6 +25741,35 @@ CONFIG_CPU_BPREDICT_DISABLE Say Y here to disable branch prediction. If unsure, say N. +Enable Fast Address Space Switching +CONFIG_CPU_FASS_ENABLE + This option enables Fast Address Space Switching (FASS). FASS uses a + number of features available in later-model ARM processors, namely + domains and the fast context switch extension, to optimise + context-switching times of user processes. You can find more + information on FASS in . + + FASS is currently an experimental feature: it may be best to say N, + unless you would like to help debug ARM Linux to make it even faster + than before! + +Number of Process ID slots to use with FASS +CONFIG_CPU_FASS_SLOTS + This option specifies the number of Process ID slots to use with Fast + Address Space Switching (FASS) for the ARM processor. Process ID slots + are also called Process Blocks in ARM documentation; each slot is 32MB + in size. + + The number of Process ID slots you can use depends on the ARM processor + for which you are compiling. The StrongARM SA1100 supports a maximum of + 64 slots; every other ARM processor that supports FASS can use up to 95 + slots. You can find more information in . + + If you are not sure of the number of slots to use, accept the default of + 64. You should never specify more than 95 (64 on the SA1100), and it + does not make sense to specify a value less than 2. You may want to + experiment with values of 16, 32, 48, 64 or 80. + Compressed boot loader in ROM/flash CONFIG_ZBOOT_ROM Say Y here if you intend to execute your compressed kernel image (zImage) diff -ruN linux-2.4.24-uc0-snap1/Documentation/arm/fass linux-2.4.24-uc0-snap1-fass1/Documentation/arm/fass --- linux-2.4.24-uc0-snap1/Documentation/arm/fass 1970-01-01 10:00:00.000000000 +1000 +++ linux-2.4.24-uc0-snap1-fass1/Documentation/arm/fass 2004-03-27 13:29:49.000000000 +1100 @@ -0,0 +1,4 @@ +Fast Address Space Switching for the ARM Linux Kernel +===================================================== + +@@@ To be completed diff -ruN linux-2.4.24-uc0-snap1/Makefile linux-2.4.24-uc0-snap1-fass1/Makefile --- linux-2.4.24-uc0-snap1/Makefile 2004-02-17 23:52:16.000000000 +1100 +++ linux-2.4.24-uc0-snap1-fass1/Makefile 2004-03-27 12:48:42.000000000 +1100 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 24 -EXTRAVERSION = -uc0 +EXTRAVERSION = -uc0-fass1 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) diff -ruN linux-2.4.24-uc0-snap1/arch/arm/config.in linux-2.4.24-uc0-snap1-fass1/arch/arm/config.in --- linux-2.4.24-uc0-snap1/arch/arm/config.in 2004-02-17 23:52:17.000000000 +1100 +++ linux-2.4.24-uc0-snap1-fass1/arch/arm/config.in 2004-03-27 14:51:16.000000000 +1100 @@ -503,7 +503,15 @@ if [ "$CONFIG_CPU_ARM1020" = "y" -o "$CONFIG_CPU_ARM1026" = "y" ]; then bool 'Disable branch prediction' CONFIG_CPU_BPREDICT_DISABLE fi - +if [ "$CONFIG_CPU_ARM720T" = "y" -o "$CONFIG_CPU_ARM920T" = "y" -o \ + "$CONFIG_CPU_ARM922T" = "y" -o "$CONFIG_CPU_ARM926T" = "y" -o \ + "$CONFIG_CPU_ARM1020" = "y" -o "$CONFIG_CPU_ARM1026" = "y" -o \ + "$CONFIG_CPU_SA1100" = "y" -o "$CONFIG_CPU_XSCALE" = "y" ]; then + dep_bool 'Enable Fast Address Space Switching (EXPERIMENTAL)' CONFIG_CPU_FASS_ENABLE $CONFIG_EXPERIMENTAL + if [ "$CONFIG_CPU_FASS_ENABLE" = "y" ]; then + int ' Number of Process ID slots to use with FASS' CONFIG_CPU_FASS_SLOTS 64 + fi +fi # Select various configuration options depending on the machine type if [ "$CONFIG_ARCH_EDB7211" = "y" -o \ diff -ruN linux-2.4.24-uc0-snap1/arch/arm/mm/Makefile linux-2.4.24-uc0-snap1-fass1/arch/arm/mm/Makefile --- linux-2.4.24-uc0-snap1/arch/arm/mm/Makefile 2004-02-17 23:52:18.000000000 +1100 +++ linux-2.4.24-uc0-snap1-fass1/arch/arm/mm/Makefile 2004-03-27 15:54:03.000000000 +1100 @@ -26,6 +26,7 @@ obj-$(CONFIG_CPU_26) += fault-armo.o mm-armo.o small_page.o +obj-$(CONFIG_CPU_FASS_ENABLE) += cpd.o pid.o obj-$(CONFIG_ALIGNMENT_TRAP) += alignment.o obj-$(CONFIG_DISCONTIGMEM) += discontig.o diff -ruN linux-2.4.24-uc0-snap1/arch/arm/mm/cpd.c linux-2.4.24-uc0-snap1-fass1/arch/arm/mm/cpd.c --- linux-2.4.24-uc0-snap1/arch/arm/mm/cpd.c 1970-01-01 10:00:00.000000000 +1000 +++ linux-2.4.24-uc0-snap1-fass1/arch/arm/mm/cpd.c 2004-03-27 16:12:30.000000000 +1100 @@ -0,0 +1 @@ +/* arch/arm/mm/cpd.c */ diff -ruN linux-2.4.24-uc0-snap1/arch/arm/mm/pid.c linux-2.4.24-uc0-snap1-fass1/arch/arm/mm/pid.c --- linux-2.4.24-uc0-snap1/arch/arm/mm/pid.c 1970-01-01 10:00:00.000000000 +1000 +++ linux-2.4.24-uc0-snap1-fass1/arch/arm/mm/pid.c 2004-03-27 16:12:20.000000000 +1100 @@ -0,0 +1 @@ +/* arch/arm/mm/pid.c */