Index: arch/v850/config.in =================================================================== RCS file: /var/cvs/uClinux-2.4.x/arch/v850/config.in,v retrieving revision 1.2 diff -u -r1.2 config.in --- arch/v850/config.in 2002/01/10 12:36:30 1.2 +++ arch/v850/config.in 2002/02/28 05:04:42 @@ -168,6 +172,15 @@ bool ' ACPI interpreter (EXPERIMENTAL)' CONFIG_ACPI_INTERPRETER bool ' Enter S1 for sleep (EXPERIMENTAL)' CONFIG_ACPI_S1_SLEEP fi +fi + +if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + bool 'Non power-of-2 kernel allocator (EXPERIMENTAL)' CONFIG_CONTIGUOUS_PAGE_ALLOC + dep_bool ' include /proc/mem_map' CONFIG_MEM_MAP $CONFIG_CONTIGUOUS_PAGE_ALLOC +fi + +if [ "$CONFIG_CONTIGUOUS_PAGE_ALLOC" != "y" ]; then + bool 'Allow allocating large blocks (> 1MB) of memory' CONFIG_NO_MMU_LARGE_ALLOCS fi endmenu Index: include/linux/mmzone.h =================================================================== RCS file: /var/cvs/uClinux-2.4.x/include/linux/mmzone.h,v retrieving revision 1.1.1.4 diff -u -r1.1.1.4 mmzone.h --- include/linux/mmzone.h 2001/09/28 10:15:22 1.1.1.4 +++ include/linux/mmzone.h 2002/02/28 05:05:03 @@ -12,10 +12,12 @@ * Free memory management - zoned buddy allocator. */ -#ifndef CONFIG_FORCE_MAX_ZONEORDER -#define MAX_ORDER 10 -#else +#ifdef CONFIG_FORCE_MAX_ZONEORDER #define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER +#elif defined (CONFIG_NO_MMU_LARGE_ALLOCS) +#define MAX_ORDER 13 +#else +#define MAX_ORDER 10 #endif typedef struct free_area_struct { Index: mmnommu/slab.c =================================================================== RCS file: /var/cvs/uClinux-2.4.x/mmnommu/slab.c,v retrieving revision 1.12 diff -u -r1.12 slab.c --- mmnommu/slab.c 2002/02/28 03:08:00 1.12 +++ mmnommu/slab.c 2002/02/28 05:05:24 @@ -309,8 +309,10 @@ /* maximum size of an obj (in 2^order pages) */ #ifndef NO_MM #define MAX_OBJ_ORDER 5 /* 32 pages */ +#elif defined (CONFIG_NO_MMU_LARGE_ALLOCS) +#define MAX_OBJ_ORDER 13 /* up to 32Mb */ #else -#define MAX_OBJ_ORDER 8 /* up to 1Mb */ +#define MAX_OBJ_ORDER 8 /* up to 1MB */ #endif /* @@ -325,8 +327,10 @@ */ #ifndef NO_MM #define MAX_GFP_ORDER 5 /* 32 pages */ +#elif defined (CONFIG_NO_MMU_LARGE_ALLOCS) +#define MAX_GFP_ORDER 13 /* up to 32MB */ #else -#define MAX_GFP_ORDER 8 /* up to 1Mb */ +#define MAX_GFP_ORDER 8 /* up to 1MB */ #endif @@ -367,6 +371,13 @@ {262144, NULL, NULL}, {524288, NULL, NULL}, {1048576, NULL, NULL}, +#ifdef CONFIG_NO_MMU_LARGE_ALLOCS + {2097152, NULL, NULL}, + {4194304, NULL, NULL}, + {8388608, NULL, NULL}, + {16777216, NULL, NULL}, + {33554432, NULL, NULL}, +#endif /* CONFIG_NO_MMU_LARGE_ALLOCS */ #endif /* NO_MM */ #endif /* CONFIG_CONTIGUOUS_PAGE_ALLOC */ { 0, NULL, NULL}