diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-05-12 23:48:34 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-05-12 23:48:34 +0000 |
commit | 7fd36ebeeec9244a7431bb010e6e3c5e4848a0d5 (patch) | |
tree | 5fb03a9aafdd1cec5f4f6ff7f1873174cb89b66c /arch/arm | |
parent | ba2dacab305c598cd4c34a604f8e276bf5bab5ff (diff) |
Merge with Linux 2.3.99-pre8. Linus must hate me, too man patches ;-)
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Makefile | 28 | ||||
-rw-r--r-- | arch/arm/boot/compressed/Makefile | 6 | ||||
-rw-r--r-- | arch/arm/boot/compressed/head-sa1100.S | 41 | ||||
-rw-r--r-- | arch/arm/boot/compressed/head.S | 99 | ||||
-rw-r--r-- | arch/arm/config.in | 79 | ||||
-rw-r--r-- | arch/arm/def-configs/assabet | 246 | ||||
-rw-r--r-- | arch/arm/def-configs/brutus | 52 | ||||
-rw-r--r-- | arch/arm/def-configs/graphicsclient | 382 | ||||
-rw-r--r-- | arch/arm/def-configs/lart | 330 | ||||
-rw-r--r-- | arch/arm/def-configs/lusl7200 | 233 | ||||
-rw-r--r-- | arch/arm/def-configs/thinclient | 60 | ||||
-rw-r--r-- | arch/arm/kernel/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/kernel/arch.h | 3 | ||||
-rw-r--r-- | arch/arm/kernel/bios32.c | 3 | ||||
-rw-r--r-- | arch/arm/kernel/calls.S | 4 | ||||
-rw-r--r-- | arch/arm/kernel/debug-armv.S | 27 | ||||
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 20 | ||||
-rw-r--r-- | arch/arm/kernel/head-armv.S | 104 | ||||
-rw-r--r-- | arch/arm/kernel/sys_arm.c | 60 | ||||
-rw-r--r-- | arch/arm/mm/mm-sa1100.c | 36 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm6,7.S | 10 | ||||
-rw-r--r-- | arch/arm/mm/proc-sa110.S | 11 |
22 files changed, 1575 insertions, 260 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 019f2115e..3988131ac 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -38,7 +38,6 @@ dummy:; @echo '*** 2.3 kernels no longer build correctly with old versions of b @false endif - # GCC 2.7 uses different options to later compilers; sort out which we have NEW_GCC := $(shell if $(CC) --version 2>&1 | grep '^2\.7' > /dev/null; then echo n; else echo y; fi) @@ -52,13 +51,16 @@ CFLAGS_PROC_CPU_32v3 := -march=armv3 CFLAGS_PROC_CPU_32v4 := -march=armv4 CFLAGS_ARM6 := -mtune=arm6 CFLAGS_ARM7 := -mtune=arm7 +CFLAGS_ARM720 := -mtune=arm7tdmi CFLAGS_SA110 := -mtune=strongarm110 else +CFLAGS += -DNO_TEXT_SECTIONS CFLAGS_PROC_CPU_26 := -m3 CFLAGS_PROC_CPU_32v3 := CFLAGS_PROC_CPU_32v4 := CFLAGS_ARM6 := -m6 CFLAGS_ARM7 := -m6 +CFLAGS_ARM720 := -m6 CFLAGS_SA110 := -m6 endif @@ -91,8 +93,16 @@ ifeq ($(CONFIG_CPU_32),y) ifeq ($(CONFIG_CPU_ARM7),y) CFLAGS += $(CFLAGS_ARM7) else + ifeq ($(CONFIG_CPU_ARM720),y) + CFLAGS += $(CFLAGS_ARM720) + else ifeq ($(CONFIG_CPU_SA110),y) CFLAGS += $(CFLAGS_SA110) + else + ifeq ($(CONFIG_CPU_SA1100),y) + CFLAGS += $(CFLAGS_SA110) + endif + endif endif endif endif @@ -151,6 +161,11 @@ MACHINE = sa1100 ARCHDIR = sa1100 endif +ifeq ($(CONFIG_ARCH_L7200),y) +MACHINE = l7200 +ARCHDIR = l7200 +endif + HEAD := arch/arm/kernel/head-$(PROCESSOR).o \ arch/arm/kernel/init_task.o SUBDIRS += arch/arm/kernel arch/arm/mm arch/arm/lib \ @@ -261,3 +276,14 @@ thinclient_config: $(RM) arch/arm/defconfig cp arch/arm/def-configs/thinclient arch/arm/defconfig +assabet_config: + $(RM) arch/arm/defconfig + cp arch/arm/def-configs/assabet arch/arm/defconfig + +lart_config: + $(RM) arch/arm/defconfig + cp arch/arm/def-configs/lart arch/arm/defconfig + +l7200_config: + $(RM) arch/arm/defconfig + cp arch/arm/def-configs/lusl7200 arch/arm/defconfig diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 37d79da39..632126213 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -55,6 +55,12 @@ ifeq ($(CONFIG_SA1100_VICTOR),y) ZTEXTADDR = 0x00002000 ZBSSADDR = 0xc0100000 endif +ifeq ($(CONFIG_SA1100_THINCLIENT),y) + ZTEXTADDR = 0xC0200000 +endif +ifeq ($(CONFIG_SA1100_GRAPHICSCLIENT),y) + ZTEXTADDR = 0xC0200000 +endif endif # diff --git a/arch/arm/boot/compressed/head-sa1100.S b/arch/arm/boot/compressed/head-sa1100.S index b6e9dbe64..411a210cf 100644 --- a/arch/arm/boot/compressed/head-sa1100.S +++ b/arch/arm/boot/compressed/head-sa1100.S @@ -8,27 +8,31 @@ #include <linux/config.h> +#ifndef CONFIG_ARCH_SA1100 +#error What am I doing here... +#endif .section ".start", #alloc, #execinstr __SA1100_start: -#ifndef CONFIG_ARCH_SA1100 -#error What am I doing here... -#endif + @ Preserve r0/r1 i.e. kernel entry values + mov r8, r0 + mov r9, r1 -#if defined( CONFIG_SA1100_BRUTUS ) || \ +#if defined( CONFIG_SA1100_ASSABET ) || \ + defined( CONFIG_SA1100_BRUTUS ) || \ defined( CONFIG_SA1100_THINCLIENT ) @ Booting from Angel -- need to enter SVC mode #define angel_SWIreason_EnterSVC 0x17 /* from arm.h, in angel source */ -#define angel_SWI_ARM (0xEF123456 & 0xffffff) +#define angel_SWI_ARM (0x123456) mov r0, #angel_SWIreason_EnterSVC swi #angel_SWI_ARM @ turn off interrupts to prevent the angel from running mrs r0, cpsr orr r0, r0, #0xc0 - msr cpsr, r0 + msr cpsr_c, r0 #endif #ifdef CONFIG_SA1100_VICTOR @@ -55,18 +59,23 @@ __SA1100_start: mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c7, 0 @ flush I & D caches - @ disabling MMU, enabling I cache + @ disabling MMU and caches mrc p15, 0, r0, c1, c0, 0 @ read control reg bic r0, r0, #0x0d @ clear WB, DC, MMU - orr r0, r0, #0x1000 @ set Icache + bic r0, r0, #0x1000 @ clear Icache mcr p15, 0, r0, c1, c0, 0 -#ifdef CONFIG_SA1100_BRUTUS +#if defined( CONFIG_SA1100_ASSABET ) || \ + defined( CONFIG_SA1100_BRUTUS ) @ Initialize UART1 for early serial communication @ since UART3 is used by angelboot. It is routed to @ alternate GPIO functions on Brutus. b 1f +#ifdef CONFIG_SA1100_BRUTUS +#define ALT_UART +#endif + GPIO_BASE: .long 0x90040000 #define GPDR 0x04 #define GAFR 0x1c @@ -90,7 +99,9 @@ UART1_BASE: .long 0x80010000 #define BAUD_DIV_9600 0x017 #define BAUD_DIV BAUD_DIV_9600 -1: ldr r0, GPIO_BASE +1: +#ifdef ALT_UART + ldr r0, GPIO_BASE ldr r1, [r0, #GPDR] bic r1, r1, #1<<15 orr r1, r1, #1<<14 @@ -102,6 +113,7 @@ UART1_BASE: .long 0x80010000 ldr r1, [r0, #PPAR] orr r1, r1, #1<<12 str r1, [r0, #PPAR] +#endif ldr r0, UART1_BASE 1: ldr r1, [r0, #UTSR1] tst r1, #1<<0 @ TBY @@ -120,8 +132,7 @@ UART1_BASE: .long 0x80010000 str r1, [r0, #UTSR0] #endif - @ set registers for entry - mov r0, #0 - mov r1, #16 - - + @ Restore initial r0/r1 + @ (r8 preserved) + mov r0, r8 + mov r1, r9 diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index f60dc3564..2c329295d 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -5,7 +5,6 @@ */ #include <linux/linkage.h> - .section ".start", #alloc, #execinstr /* * Debugging stuff @@ -47,6 +46,10 @@ #endif .endm +/* + * Note that these macros must not contain any code which is not + * 100% relocatable. Any attempt to do so will result in a crash. + */ #if 0 .macro loadsp, rb mov \rb, #0x7c000000 @@ -66,6 +69,8 @@ .endm #endif + + .section ".start", #alloc, #execinstr /* * sort out different calling conventions */ @@ -79,11 +84,13 @@ start: b 1f .word 0x016f2818 @ Magic numbers to help the loader .word start -1: +1: adr r8, start @ get the start address of the code + @ (used for locating the page tables) /* - * some architecture specific code can - * be inserted by the linker here + * some architecture specific code can be inserted + * by the linker here, but it should preserve r0, r1 + * and r8. */ .text @@ -142,31 +149,6 @@ start: bl cache_clean_flush add pc, r5, r0 @ call relocation code -/* - * Page table physical address list - */ - .align 5 - .type pgtable,#object -pgtable: .word 0x00004000 @ 0x00 - .word 0x10004000 @ 0x01 - .word 0x00000000 @ 0x02 - .word 0x40004000 @ 0x03 - .word 0x00004000 @ 0x04 - .word 0x00004000 @ 0x05 - .word 0x00004000 @ 0x06 - .word 0x80004000 @ 0x07 - .word 0x00004000 @ 0x08 - .word 0x00000000 @ 0x09 - .word 0x00000000 @ 0x0a - .word 0x00000000 @ 0x0b - .word 0x00000000 @ 0x0c - .word 0x00000000 @ 0x0d - .word 0x10004000 @ 0x0e - .word 0x08004000 @ 0x0f - .word 0xc0004000 @ 0x10 - .size pgtable,. - pgtable -1: - .type LC0, #object LC0: .word __bss_start .word _end @@ -175,17 +157,33 @@ LC0: .word __bss_start .word user_stack+4096 .size LC0, . - LC0 +/* + * Turn on the cache. We need to setup some page tables so that we + * can have both the I and D caches on. + * + * We place the page tables 16k down from the kernel execution address, + * and we hope that nothing else is using it. If we're using it, we + * will go pop! + * + * On entry, + * r4 = kernel execution address + * r6 = processor ID + * r7 = architecture number + * r8 = run-time address of "start" + * On exit, + * r0, r1, r2, r3, r8, r9 corrupted + * This routine must preserve: + * r4, r5, r6, r7 + */ .align 5 cache_on: ldr r1, proc_sa110_type eor r1, r1, r6 movs r1, r1, lsr #5 movne pc, lr - cmp r7, #(1b - pgtable) >> 2 - movge pc, lr - adr r3, pgtable - ldr r3, [r3, r7, lsl #2] - teq r3, #0 - moveq pc, lr + + sub r3, r4, #16384 @ Page directory size + bic r3, r3, #0xff @ Align the pointer + bic r3, r3, #0x3f /* * Initialise the page tables */ @@ -220,6 +218,9 @@ cache_on: ldr r1, proc_sa110_type mov pc, lr /* + * This code is relocatable. It is relocated by the above code to the end + * of the kernel and executed there. During this time, we have no stacks. + * * r0 = decompressed kernel length * r1-r3 = unused * r4 = kernel execution address @@ -248,13 +249,26 @@ call_kernel: bl cache_clean_flush mov r1, r7 @ restore architecture number mov pc, r4 @ call kernel +/* + * Here follow the relocatable cache support functions for + * the various processors. + */ + .type proc_sa110_type,#object proc_sa110_type: .word 0x4401a100 .size proc_sa110_type, . - proc_sa110_type /* - * Turn off StrongARM cache and MMU + * Turn off StrongARM cache and MMU. It is safe to + * leave the I-cache on. + * + * On entry, + * r6 = processor ID + * On exit, + * r0, r1 corrupted + * This routine must preserve: + * r4, r6, r7 */ .align 5 cache_off: ldr r1, proc_sa110_type @@ -268,6 +282,13 @@ cache_off: ldr r1, proc_sa110_type /* * Clean and flush the cache to maintain consistency. + * + * On entry, + * r6 = processor ID + * On exit, + * r1, r2, r12 corrupted + * This routine must preserve: + * r4, r6, r7 */ .align 5 cache_clean_flush: @@ -278,7 +299,7 @@ cache_clean_flush: bic r1, pc, #31 add r2, r1, #32768 -1: ldr r12, [r1], #32 +1: ldr r12, [r1], #32 @ s/w flush D cache teq r1, r2 bne 1b @@ -286,6 +307,10 @@ cache_clean_flush: mcr p15, 0, r1, c7, c10, 4 @ drain WB mov pc, lr +/* + * Various debugging routines for printing hex characters and + * memory, which again must be relocatable. + */ #ifdef DEBUG .type phexbuf,#object phexbuf: .space 12 diff --git a/arch/arm/config.in b/arch/arm/config.in index f00835051..911703fe1 100644 --- a/arch/arm/config.in +++ b/arch/arm/config.in @@ -14,7 +14,7 @@ bool 'Prompt for development and/or incomplete code/drivers' CONFIG_EXPERIMENTAL endmenu mainmenu_option next_comment -comment 'System and processor type' +comment 'System and Processor Type' choice 'ARM system type' \ "Archimedes CONFIG_ARCH_ARC \ @@ -22,6 +22,8 @@ choice 'ARM system type' \ RiscPC CONFIG_ARCH_RPC \ EBSA-110 CONFIG_ARCH_EBSA110 \ FootBridge-based CONFIG_FOOTBRIDGE" RiscPC +# the following are placeholders for when they are fully integrated +# LinkUp-L7200 CONFIG_ARCH_L7200 # SA1100-based CONFIG_ARCH_SA1100 if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then @@ -34,6 +36,7 @@ if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then fi if [ "$CONFIG_HOST_FOOTBRIDGE" = "y" ]; then + comment 'Footbridge Implementations' bool ' Include support for EBSA285' CONFIG_ARCH_EBSA285 bool ' Include support for CATS' CONFIG_ARCH_CATS bool ' Include support for NetWinder' CONFIG_ARCH_NETWINDER @@ -47,15 +50,19 @@ if [ "$CONFIG_ADDIN_FOOTBRIDGE" = "y" ]; then fi if [ "$CONFIG_ARCH_SA1100" = "y" ]; then - choice 'SA1100 implementation' \ - "Brutus CONFIG_SA1100_BRUTUS \ - Empeg CONFIG_SA1100_EMPEG \ - Itsy CONFIG_SA1100_ITSY \ - LART CONFIG_SA1100_LART \ - PLEB CONFIG_SA1100_PLEB \ - ThinClient CONFIG_SA1100_THINCLIENT \ - Victor CONFIG_SA1100_VICTOR \ - Tifon CONFIG_SA1100_TIFON" Brutus + comment 'SA11x0 Implementations' + bool ' Include support for Assabet' CONFIG_SA110_ASSABET + bool ' Include support for Bitsy' CONFIG_SA1100_BITSY + bool ' Include support for Brutus' CONFIG_SA1100_BRUTUS +# bool ' Include support for Empeg' CONFIG_SA1100_EMPEG +# bool ' Include support for Itsy' CONFIG_SA1100_ITSY + bool ' Include support for LART' CONFIG_SA1100_LART +# bool ' Include support for PLEB' CONFIG_SA1100_PLEB + bool ' Include support for ThinClient' CONFIG_SA1100_THINCLIENT + bool ' Include support for GraphicsClient' CONFIG_SA1100_GRAPHICSCLIENT + bool ' Include support for Victor' CONFIG_SA1100_VICTOR +# bool ' Include support for Tifon' CONFIG_SA1100_TIFON + define_bool CONFIG_DISCONTIGMEM y fi # @@ -87,30 +94,32 @@ if [ "$CONFIG_ARCH_ARC" = "y" -o \ else define_bool CONFIG_CPU_32 y define_bool CONFIG_CPU_26 n +fi - # - # Select CPU and optimisation dependent on architecture - # - if [ "$CONFIG_ARCH_EBSA110" = "y" -o \ - "$CONFIG_ARCH_SA1100" = "y" -o \ - "$CONFIG_FOOTBRIDGE" = "y" -o \ - "$CONFIG_ARCH_TBOX" = "y" -o \ - "$CONFIG_ARCH_SHARK" = "y" -o \ - "$CONFIG_ARCH_NEXUSPCI" = "y" ]; then - define_bool CONFIG_CPU_32v4 y - if [ "$CONFIG_ARCH_SA1100" = "y" ]; then - define_bool CONFIG_CPU_SA1100 y - else - define_bool CONFIG_CPU_SA110 y - fi - else - if [ "$CONFIG_ARCH_RPC" = "y" ]; then - define_bool CONFIG_CPU_32v3 y - bool 'Support ARM610' CONFIG_CPU_ARM6 - bool 'Support ARM710' CONFIG_CPU_ARM7 - bool 'Support StrongARM110' CONFIG_CPU_SA110 - fi - fi +# +# Select CPU and optimisation dependent on architecture +# +if [ "$CONFIG_ARCH_RPC" = "y" ]; then + define_bool CONFIG_CPU_32v3 y + bool 'Support ARM610' CONFIG_CPU_ARM6 + bool 'Support ARM710' CONFIG_CPU_ARM7 + bool 'Support StrongARM110' CONFIG_CPU_SA110 +fi +if [ "$CONFIG_ARCH_EBSA110" = "y" -o \ + "$CONFIG_FOOTBRIDGE" = "y" -o \ + "$CONFIG_ARCH_TBOX" = "y" -o \ + "$CONFIG_ARCH_SHARK" = "y" -o \ + "$CONFIG_ARCH_NEXUSPCI" = "y" ]; then + define_bool CONFIG_CPU_32v4 y + define_bool CONFIG_CPU_SA110 y +fi +if [ "$CONFIG_ARCH_L7200" = "y" ]; then + define_bool CONFIG_CPU_32v4 y + define_bool CONFIG_CPU_ARM720 y +fi +if [ "$CONFIG_ARCH_SA1100" = "y" ]; then + define_bool CONFIG_CPU_32v4 y + define_bool CONFIG_CPU_SA1100 y fi # @@ -137,10 +146,12 @@ else define_bool CONFIG_ISA_DMA n fi +define_bool CONFIG_SBUS n +define_bool CONFIG_PCMCIA n + if [ "$CONFIG_CPU_32" = "y" -a "$CONFIG_ARCH_EBSA110" != "y" ]; then bool 'Kernel-mode alignment trap handler' CONFIG_ALIGNMENT_TRAP fi -#bool 'Split text into discardable sections' CONFIG_TEXT_SECTIONS endmenu mainmenu_option next_comment diff --git a/arch/arm/def-configs/assabet b/arch/arm/def-configs/assabet new file mode 100644 index 000000000..0a2cb7462 --- /dev/null +++ b/arch/arm/def-configs/assabet @@ -0,0 +1,246 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_ARM=y +CONFIG_UID16=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# System and processor type +# +# CONFIG_ARCH_ARC is not set +# CONFIG_ARCH_A5K is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_FOOTBRIDGE is not set +CONFIG_ARCH_SA1100=y +CONFIG_SA1100_ASSABET=y +# CONFIG_SA1100_BRUTUS is not set +# CONFIG_SA1100_EMPEG is not set +# CONFIG_SA1100_ITSY is not set +# CONFIG_SA1100_BITSY is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_THINCLIENT is not set +# CONFIG_SA1100_VICTOR is not set +# CONFIG_SA1100_TIFON is not set +CONFIG_DISCONTIGMEM=y +# CONFIG_ARCH_ACORN is not set +CONFIG_CPU_32=y +# CONFIG_CPU_26 is not set +CONFIG_CPU_32v4=y +CONFIG_CPU_SA1100=y +# CONFIG_PCI is not set +# CONFIG_ISA is not set +# CONFIG_ISA_DMA is not set +# CONFIG_ALIGNMENT_TRAP is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +# CONFIG_KMOD is not set + +# +# General setup +# +# CONFIG_NET is not set +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_SYSCTL is not set +CONFIG_NWFPE=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set +CONFIG_BINFMT_AOUT=y +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set +CONFIG_CMDLINE="" +CONFIG_LEDS=y +CONFIG_LEDS_TIMER=y +CONFIG_LEDS_CPU=y + +# +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_PCI is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set + +# +# Additional Block Devices +# +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_FLASH is not set + +# +# Character devices +# +CONFIG_VT=y +# CONFIG_VT_CONSOLE is not set +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_UNIX98_PTYS=y +CONFIG_UNIX98_PTY_COUNT=32 + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_JOYSTICK is not set +# CONFIG_QIC02_TAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set + +# +# Video For Linux +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_DRM is not set +# CONFIG_DRM_TDFX is not set +# CONFIG_AGP is not set + +# +# Console drivers +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_FB=y + +# +# Frame-buffer support +# +CONFIG_FB=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_FB_SA1100=y +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FBCON_ADVANCED is not set +CONFIG_FBCON_CFB2=y +CONFIG_FBCON_CFB4=y +CONFIG_FBCON_CFB8=y +CONFIG_FBCON_FONTWIDTH8_ONLY=y +CONFIG_FBCON_FONTS=y +CONFIG_FONT_8x8=y +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set + +# +# ATA/IDE/MFM/RLL support +# +# CONFIG_IDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_FAT_FS is not set +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_MINIX_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVFS_DEBUG is not set +CONFIG_DEVPTS_FS=y +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_UFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_NLS is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Kernel hacking +# +CONFIG_FRAME_POINTER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_INFO=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_DEBUG_LL is not set diff --git a/arch/arm/def-configs/brutus b/arch/arm/def-configs/brutus index a72f0f312..80a38a0c3 100644 --- a/arch/arm/def-configs/brutus +++ b/arch/arm/def-configs/brutus @@ -18,12 +18,15 @@ CONFIG_EXPERIMENTAL=y # CONFIG_ARCH_EBSA110 is not set # CONFIG_FOOTBRIDGE is not set CONFIG_ARCH_SA1100=y +# CONFIG_SA1100_ASSABET is not set CONFIG_SA1100_BRUTUS=y # CONFIG_SA1100_EMPEG is not set # CONFIG_SA1100_ITSY is not set +# CONFIG_SA1100_BITSY is not set # CONFIG_SA1100_LART is not set # CONFIG_SA1100_PLEB is not set # CONFIG_SA1100_THINCLIENT is not set +# CONFIG_SA1100_GRAPHICSCLIENT is not set # CONFIG_SA1100_VICTOR is not set # CONFIG_SA1100_TIFON is not set CONFIG_DISCONTIGMEM=y @@ -32,7 +35,11 @@ CONFIG_CPU_32=y # CONFIG_CPU_26 is not set CONFIG_CPU_32v4=y CONFIG_CPU_SA1100=y +# CONFIG_PCI is not set +# CONFIG_ISA is not set # CONFIG_ISA_DMA is not set +# CONFIG_SBUS is not set +# CONFIG_PCMCIA is not set # CONFIG_ALIGNMENT_TRAP is not set # @@ -62,12 +69,14 @@ CONFIG_BINFMT_ELF=y # # CONFIG_PARPORT is not set CONFIG_CMDLINE="" +CONFIG_LEDS=y +CONFIG_LEDS_TIMER=y +CONFIG_LEDS_CPU=y # # I2O device support # # CONFIG_I2O is not set -# CONFIG_I2O_PCI is not set # CONFIG_I2O_BLOCK is not set # CONFIG_I2O_SCSI is not set # CONFIG_I2O_PROC is not set @@ -82,24 +91,23 @@ CONFIG_CMDLINE="" # Block devices # # CONFIG_BLK_DEV_FD is not set -# CONFIG_BLK_DEV_IDE is not set - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_HD_ONLY is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set # # Additional Block Devices # # CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_LVM is not set # CONFIG_BLK_DEV_MD is not set +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_STRIPED is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_INITRD=y -# CONFIG_BLK_DEV_XD is not set -# CONFIG_PARIDE is not set -# CONFIG_BLK_DEV_IDE_MODES is not set -# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_FLASH is not set # # Character devices @@ -155,11 +163,6 @@ CONFIG_UNIX98_PTY_COUNT=32 # CONFIG_AGP is not set # -# USB support -# -# CONFIG_USB is not set - -# # Console drivers # # CONFIG_VGA_CONSOLE is not set @@ -171,10 +174,6 @@ CONFIG_FB=y CONFIG_FB=y CONFIG_DUMMY_CONSOLE=y CONFIG_FB_SA1100=y -# CONFIG_FB_MATROX is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_3DFX is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FBCON_ADVANCED is not set CONFIG_FBCON_CFB2=y @@ -189,6 +188,13 @@ CONFIG_FONT_8x8=y # CONFIG_FONT_ACORN_8x8 is not set # +# ATA/IDE/MFM/RLL support +# +# CONFIG_IDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# # SCSI support # # CONFIG_SCSI is not set @@ -200,6 +206,7 @@ CONFIG_FONT_8x8=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_ADFS_FS is not set +# CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set @@ -234,6 +241,11 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_NLS is not set # +# USB support +# +# CONFIG_USB is not set + +# # Kernel hacking # CONFIG_FRAME_POINTER=y diff --git a/arch/arm/def-configs/graphicsclient b/arch/arm/def-configs/graphicsclient new file mode 100644 index 000000000..902495c32 --- /dev/null +++ b/arch/arm/def-configs/graphicsclient @@ -0,0 +1,382 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_ARM=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# System and processor type +# +# CONFIG_ARCH_ARC is not set +# CONFIG_ARCH_A5K is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_FOOTBRIDGE is not set +CONFIG_ARCH_SA1100=y +# CONFIG_SA1100_BRUTUS is not set +# CONFIG_SA1100_EMPEG is not set +# CONFIG_SA1100_ITSY is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_PLEB is not set +CONFIG_SA1100_GRAPHICSCLIENT=y +# CONFIG_SA1100_VICTOR is not set +# CONFIG_SA1100_TIFON is not set +CONFIG_DISCONTIGMEM=y +# CONFIG_ARCH_ACORN is not set +CONFIG_CPU_32=y +# CONFIG_CPU_26 is not set +CONFIG_CPU_32v4=y +CONFIG_CPU_SA1100=y +# CONFIG_ISA_DMA is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +# CONFIG_KMOD is not set + +# +# General setup +# +CONFIG_NET=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +CONFIG_NWFPE=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set +CONFIG_BINFMT_AOUT=y +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set +# CONFIG_PARPORT is not set +CONFIG_CMDLINE="ip=off" + +# +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_PCI is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_LAN is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_IDE is not set + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_HD_ONLY is not set + +# +# Additional Block Devices +# +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_XD is not set +CONFIG_PARIDE_PARPORT=y +# CONFIG_PARIDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# +# Character devices +# +CONFIG_VT=y +# CONFIG_VT_CONSOLE is not set +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_UNIX98_PTYS=y +CONFIG_UNIX98_PTY_COUNT=32 + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_JOYSTICK is not set +# CONFIG_QIC02_TAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set + +# +# Video For Linux +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_DRM is not set +# CONFIG_DRM_TDFX is not set + +# +# PCMCIA character device support +# +# CONFIG_AGP is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Console drivers +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_FB=y + +# +# Frame-buffer support +# +CONFIG_FB=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_FB_SA1100=y +# CONFIG_FB_MATROX is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FBCON_ADVANCED is not set +CONFIG_FBCON_CFB2=y +CONFIG_FBCON_CFB4=y +CONFIG_FBCON_CFB8=y +CONFIG_FBCON_FONTWIDTH8_ONLY=y +CONFIG_FBCON_FONTS=y +# CONFIG_FONT_8x8 is not set +CONFIG_FONT_8x16=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set + +# +# Networking options +# +# CONFIG_PACKET is not set +# CONFIG_NETLINK is not set +# CONFIG_NETFILTER is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_IP_ROUTER is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_ALIAS is not set +# CONFIG_SYN_COOKIES is not set + +# +# (it is safe to leave these untouched) +# +CONFIG_SKB_LARGE=y +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set +# CONFIG_ATM is not set + +# +# +# +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_DECNET is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_BRIDGE is not set +# CONFIG_LLC is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set +# CONFIG_DUMMY is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_SB1000 is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_ARM_AM79C961A is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_LANCE is not set +CONFIG_NET_VENDOR_SMC=y +# CONFIG_WD80x3 is not set +# CONFIG_ULTRA is not set +# CONFIG_ULTRA32 is not set +CONFIG_SMC9194=y +# CONFIG_NET_VENDOR_RACAL is not set +# CONFIG_RTL8139 is not set +# CONFIG_DM9102 is not set +# CONFIG_AT1700 is not set +# CONFIG_DEPCA is not set +# CONFIG_NET_ISA is not set +# CONFIG_NET_EISA is not set +# CONFIG_NET_POCKET is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_YELLOWFIN is not set +# CONFIG_ACENIC is not set +# CONFIG_SK98LIN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Token Ring driver support +# +# CONFIG_TR is not set +# CONFIG_NET_FC is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set + +# +# PCMCIA network device support +# +# CONFIG_NET_PCMCIA is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# Filesystems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_FAT_FS is not set +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_MINIX_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +CONFIG_DEVPTS_FS=y +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +# CONFIG_CODA_FS is not set +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y +# CONFIG_NFSD is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +# CONFIG_SMB_FS is not set +# CONFIG_NCP_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SGI_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_NLS is not set + +# +# Kernel hacking +# +CONFIG_FRAME_POINTER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_INFO=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_DEBUG_LL is not set diff --git a/arch/arm/def-configs/lart b/arch/arm/def-configs/lart new file mode 100644 index 000000000..d101f4392 --- /dev/null +++ b/arch/arm/def-configs/lart @@ -0,0 +1,330 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_ARM=y +CONFIG_UID16=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# System and processor type +# +# CONFIG_ARCH_ARC is not set +# CONFIG_ARCH_A5K is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_FOOTBRIDGE is not set +CONFIG_ARCH_SA1100=y +# CONFIG_SA1100_ASSABET is not set +# CONFIG_SA1100_BRUTUS is not set +# CONFIG_SA1100_EMPEG is not set +# CONFIG_SA1100_ITSY is not set +# CONFIG_SA1100_BITSY is not set +CONFIG_SA1100_LART=y +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_THINCLIENT is not set +# CONFIG_SA1100_VICTOR is not set +# CONFIG_SA1100_TIFON is not set +CONFIG_DISCONTIGMEM=y +# CONFIG_ARCH_ACORN is not set +CONFIG_CPU_32=y +# CONFIG_CPU_26 is not set +CONFIG_CPU_32v4=y +CONFIG_CPU_SA1100=y +# CONFIG_PCI is not set +# CONFIG_ISA is not set +# CONFIG_ISA_DMA is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODVERSIONS=y +# CONFIG_KMOD is not set + +# +# General setup +# +CONFIG_NET=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_SYSCTL is not set +CONFIG_NWFPE=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set +CONFIG_BINFMT_AOUT=y +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set +CONFIG_CMDLINE="console=ttyS0,9600" +CONFIG_LEDS=y +# CONFIG_LEDS_TIMER is not set +CONFIG_LEDS_CPU=y + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_XD is not set + +# +# Additional Block Devices +# +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_FLASH is not set + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_UNIX98_PTYS is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_JOYSTICK is not set +# CONFIG_QIC02_TAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set + +# +# Video For Linux +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_DRM is not set +# CONFIG_AGP is not set + +# +# Networking options +# +# CONFIG_PACKET is not set +# CONFIG_NETLINK is not set +# CONFIG_NETFILTER is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +# CONFIG_IP_PNP is not set +# CONFIG_IP_ROUTER is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_ALIAS is not set +# CONFIG_SYN_COOKIES is not set + +# +# (it is safe to leave these untouched) +# +# CONFIG_SKB_LARGE is not set +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set +# CONFIG_ATM is not set + +# +# +# +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_DECNET is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_BRIDGE is not set +# CONFIG_LLC is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_SB1000 is not set + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_YELLOWFIN is not set +# CONFIG_ACENIC is not set +# CONFIG_SK98LIN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PPP=y +CONFIG_PPP_ASYNC=y +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_BSDCOMP=m +CONFIG_SLIP=y +CONFIG_SLIP_COMPRESSED=y +# CONFIG_SLIP_SMART is not set +# CONFIG_SLIP_MODE_SLIP6 is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set +# CONFIG_NET_FC is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set + +# +# ATA/IDE/MFM/RLL support +# +# CONFIG_IDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_FAT_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_MINIX_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +# CONFIG_CODA_FS is not set +CONFIG_NFS_FS=y +# CONFIG_NFSD is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +# CONFIG_SMB_FS is not set +# CONFIG_NCP_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_NLS is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Kernel hacking +# +CONFIG_FRAME_POINTER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_INFO=y +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_DEBUG_LL=y diff --git a/arch/arm/def-configs/lusl7200 b/arch/arm/def-configs/lusl7200 new file mode 100644 index 000000000..96cc49d3d --- /dev/null +++ b/arch/arm/def-configs/lusl7200 @@ -0,0 +1,233 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_ARM=y +CONFIG_UID16=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# System and Processor Type +# +# CONFIG_ARCH_ARC is not set +# CONFIG_ARCH_A5K is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_FOOTBRIDGE is not set +CONFIG_ARCH_L7200=y +# CONFIG_ARCH_ACORN is not set +CONFIG_CPU_32=y +# CONFIG_CPU_26 is not set +CONFIG_CPU_32v4=y +CONFIG_CPU_ARM720=y +# CONFIG_PCI is not set +# CONFIG_ISA is not set +# CONFIG_ISA_DMA is not set +# CONFIG_SBUS is not set +# CONFIG_PCMCIA is not set +# CONFIG_ALIGNMENT_TRAP is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y + +# +# General setup +# +# CONFIG_NET is not set +CONFIG_SYSVIPC=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_SYSCTL=y +CONFIG_NWFPE=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set +CONFIG_BINFMT_AOUT=y +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set + +# +# Additional Block Devices +# +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_LVM is not set +# CONFIG_BLK_DEV_MD is not set +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_STRIPED is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_INITRD=y + +# +# Character devices +# +# CONFIG_VT is not set +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +CONFIG_SERIAL_L7200=y +CONFIG_SERIAL_L7200_CONSOLE=y +# CONFIG_DIGIEPCA is not set +# CONFIG_DIGI is not set +# CONFIG_ESPSERIAL is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_ISI is not set +# CONFIG_SYNCLINK is not set +# CONFIG_N_HDLC is not set +# CONFIG_RISCOM8 is not set +# CONFIG_SPECIALIX is not set +# CONFIG_SX is not set +# CONFIG_STALDRV is not set +# CONFIG_UNIX98_PTYS is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_JOYSTICK is not set +# CONFIG_QIC02_TAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set + +# +# Video For Linux +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_DRM is not set +# CONFIG_DRM_TDFX is not set +# CONFIG_AGP is not set + +# +# ATA/IDE/MFM/RLL support +# +# CONFIG_IDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_ADFS_FS_RW is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_FAT_FS is not set +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_RAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_MINIX_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS_RW is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVFS_DEBUG is not set +# CONFIG_DEVPTS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX4FS_RW is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_SYSV_FS is not set +# CONFIG_SYSV_FS_WRITE is not set +# CONFIG_UDF_FS is not set +# CONFIG_UDF_RW is not set +# CONFIG_UFS_FS is not set +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_NCPFS_NLS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_NLS is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Kernel hacking +# +CONFIG_FRAME_POINTER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_INFO=y +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_DEBUG_LL=y diff --git a/arch/arm/def-configs/thinclient b/arch/arm/def-configs/thinclient index b512fad1d..32355662b 100644 --- a/arch/arm/def-configs/thinclient +++ b/arch/arm/def-configs/thinclient @@ -18,12 +18,15 @@ CONFIG_EXPERIMENTAL=y # CONFIG_ARCH_EBSA110 is not set # CONFIG_FOOTBRIDGE is not set CONFIG_ARCH_SA1100=y +# CONFIG_SA1100_ASSABET is not set # CONFIG_SA1100_BRUTUS is not set # CONFIG_SA1100_EMPEG is not set # CONFIG_SA1100_ITSY is not set +# CONFIG_SA1100_BITSY is not set # CONFIG_SA1100_LART is not set # CONFIG_SA1100_PLEB is not set CONFIG_SA1100_THINCLIENT=y +# CONFIG_SA1100_GRAPHICSCLIENT is not set # CONFIG_SA1100_VICTOR is not set # CONFIG_SA1100_TIFON is not set CONFIG_DISCONTIGMEM=y @@ -32,7 +35,11 @@ CONFIG_CPU_32=y # CONFIG_CPU_26 is not set CONFIG_CPU_32v4=y CONFIG_CPU_SA1100=y +# CONFIG_PCI is not set +# CONFIG_ISA is not set # CONFIG_ISA_DMA is not set +# CONFIG_SBUS is not set +# CONFIG_PCMCIA is not set CONFIG_ALIGNMENT_TRAP=y # @@ -56,14 +63,18 @@ CONFIG_BINFMT_AOUT=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set # CONFIG_ARTHUR is not set + +# +# Parallel port support +# # CONFIG_PARPORT is not set CONFIG_CMDLINE="root=nfs" +# CONFIG_LEDS is not set # # I2O device support # # CONFIG_I2O is not set -# CONFIG_I2O_PCI is not set # CONFIG_I2O_BLOCK is not set # CONFIG_I2O_LAN is not set # CONFIG_I2O_SCSI is not set @@ -79,25 +90,23 @@ CONFIG_CMDLINE="root=nfs" # Block devices # # CONFIG_BLK_DEV_FD is not set -# CONFIG_BLK_DEV_IDE is not set - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_HD_ONLY is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set # # Additional Block Devices # # CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_LVM is not set # CONFIG_BLK_DEV_MD is not set +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_STRIPED is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_INITRD=y -# CONFIG_BLK_DEV_XD is not set -# CONFIG_PARIDE is not set -# CONFIG_BLK_DEV_IDE_MODES is not set -# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_FLASH=y # # Character devices @@ -135,7 +144,6 @@ CONFIG_UNIX98_PTY_COUNT=32 # CONFIG_WATCHDOG is not set # CONFIG_NVRAM is not set # CONFIG_RTC is not set -# CONFIG_EFI_RTC is not set # # Video For Linux @@ -154,15 +162,6 @@ CONFIG_UNIX98_PTY_COUNT=32 # CONFIG_AGP is not set # -# USB support -# -# CONFIG_USB is not set - -# -# Misc devices -# - -# # Console drivers # # CONFIG_VGA_CONSOLE is not set @@ -174,10 +173,6 @@ CONFIG_FB=y CONFIG_FB=y CONFIG_DUMMY_CONSOLE=y CONFIG_FB_SA1100=y -# CONFIG_FB_MATROX is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_3DFX is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FBCON_ADVANCED is not set CONFIG_FBCON_CFB2=y @@ -300,7 +295,7 @@ CONFIG_SMC9194=y # CONFIG_NET_RADIO is not set # -# Token Ring driver support +# Token Ring devices # # CONFIG_TR is not set # CONFIG_NET_FC is not set @@ -313,6 +308,13 @@ CONFIG_SMC9194=y # CONFIG_WAN is not set # +# ATA/IDE/MFM/RLL support +# +# CONFIG_IDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# # SCSI support # # CONFIG_SCSI is not set @@ -324,6 +326,7 @@ CONFIG_SMC9194=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_ADFS_FS is not set +# CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set @@ -370,6 +373,11 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_NLS is not set # +# USB support +# +# CONFIG_USB is not set + +# # Kernel hacking # CONFIG_FRAME_POINTER=y diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile index 6cc5652e0..d8f14a756 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile @@ -19,6 +19,7 @@ O_OBJS_ebsa110 = dma-dummy.o O_OBJS_footbridge = dma.o dma-footbridge.o $(ISA_DMA_OBJS) hw-footbridge.o isa.o O_OBJS_nexuspci = dma-dummy.o O_OBJS_sa1100 = dma-dummy.o fiq.o +O_OBJS_l7200 = dma-dummy.o fiq.o O_TARGET := kernel.o diff --git a/arch/arm/kernel/arch.h b/arch/arm/kernel/arch.h index 91de77772..87494efed 100644 --- a/arch/arm/kernel/arch.h +++ b/arch/arm/kernel/arch.h @@ -33,7 +33,8 @@ struct machine_desc { }; /* - * Set of macros to define architecture features + * Set of macros to define architecture features. This is built into + * a table by the linker. */ #define MACHINE_START(_type,_name) \ const struct machine_desc __mach_desc_##_type \ diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index 835bce140..0d2e68846 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c @@ -378,6 +378,9 @@ static int __init netwinder_map_irq(struct pci_dev *dev, u8 slot, u8 pin) case DEV(PCI_VENDOR_ID_INTERG, PCI_DEVICE_ID_INTERG_5000): return IRQ_NETWINDER_VGA; + case DEV(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285): + return 0; + default: printk(KERN_ERR "PCI: %02X:%02X [%04X:%04X] unknown device\n", dev->bus->number, dev->devfn, diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index d8d416c4e..eec058522 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S @@ -68,7 +68,7 @@ .long SYMBOL_NAME(sys_ni_syscall) /* was sys_mpx */ .long SYMBOL_NAME(sys_setpgid) .long SYMBOL_NAME(sys_ni_syscall) /* was sys_ulimit */ - .long SYMBOL_NAME(sys_olduname) + .long SYMBOL_NAME(sys_ni_syscall) /* was sys_olduname */ /* 60 */ .long SYMBOL_NAME(sys_umask) .long SYMBOL_NAME(sys_chroot) .long SYMBOL_NAME(sys_ustat) @@ -118,7 +118,7 @@ .long SYMBOL_NAME(sys_newstat) .long SYMBOL_NAME(sys_newlstat) .long SYMBOL_NAME(sys_newfstat) - .long SYMBOL_NAME(sys_uname) + .long SYMBOL_NAME(sys_ni_syscall) /* was sys_uname */ /* 110 */ .long SYMBOL_NAME(sys_iopl) .long SYMBOL_NAME(sys_vhangup) .long SYMBOL_NAME(sys_ni_syscall) diff --git a/arch/arm/kernel/debug-armv.S b/arch/arm/kernel/debug-armv.S index ce7f2f94c..8054f8756 100644 --- a/arch/arm/kernel/debug-armv.S +++ b/arch/arm/kernel/debug-armv.S @@ -160,6 +160,33 @@ bne 1001b .endm +#elif defined(CONFIG_ARCH_L7200) + + .macro addruart,rx + + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 @ MMU enabled? + moveq \rx, #0x80000000 @ physical base address + movne \rx, #0xd0000000 @ virtual address + add \rx, \rx, #0x00044000 @ Ser1 +@ add \rx, \rx, #0x00045000 @ Ser2 + .endm + + .macro senduart,rd,rx + str \rd, [\rx, #0x0] @ UARTDR1 + .endm + + .macro waituart,rd,rx +1001: ldr \rd, [\rx, #0x18] @ UARTFLG + tst \rd, #1 << 5 @ UARTFLGUTXFF - 1 when full + bne 1001b + .endm + + .macro busyuart,rd,rx +1001: ldr \rd, [\rx, #0x18] @ UARTFLG + tst \rd, #1 << 3 @ UARTFLGUBUSY - 1 when busy + bne 1001b + .endm #else #error Unknown architecture #endif diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 182b1c3b4..bffe289ce 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -400,6 +400,26 @@ ENTRY(soft_irq_mask) .macro irq_prio_table .endm +#elif defined(CONFIG_ARCH_L7200) +/* Don't use fast interrupts */ + .macro disable_fiq + .endm + + .macro get_irqnr_and_base, irqnr, irqstat, base + ldr r4, =0xe0001000 @ Virt addr status reg + ldr \irqstat, [r4] @ get interrupts + mov \irqnr, #0 +1001: tst \irqstat, #1 + addeq \irqnr, \irqnr, #1 + moveq \irqstat, \irqstat, lsr #1 + tsteq \irqnr, #32 + beq 1001b + teq \irqnr, #32 + .endm + + .macro irq_prio_table + .endm + #else #error Unknown architecture #endif diff --git a/arch/arm/kernel/head-armv.S b/arch/arm/kernel/head-armv.S index 956d9ccd2..38bfc8760 100644 --- a/arch/arm/kernel/head-armv.S +++ b/arch/arm/kernel/head-armv.S @@ -63,31 +63,39 @@ ENTRY(_stext) mov r5, #0 movne pc, r0 + mov r0, #0 @ catch old NeTTroms + mov r1, #5 @ (will go in 2.5) +#endif +#ifdef CONFIG_ARCH_L7200 +/* + * FIXME - No bootloader, so manually set 'r1' with our architecture number. + */ mov r0, #0 - mov r1, #5 + mov r1, #19 #endif /* * Entry point. Entry *must* be called with r0 == 0, with the MMU off. * r1 contains the unique architecture number. See - * linux/arch/arm/kernel/setup.c machine_desc[] array for the complete - * list. If you require a new number, please follow the instructions - * given in Documentation/arm/README. + * linux/arch/arm/kernel/arch.c and linux/include/asm-arm/system.h for + * the complete list. If you require a new number, please follow the + * instructions given towards the end of Documentation/arm/README. */ -__entry: teq r0, #0 - movne r0, #'i' +__entry: teq r0, #0 @ wrong register vals? + movne r0, #'i' @ yes, error 'i' bne __error bl __lookup_processor_type teq r10, #0 @ invalid processor? - moveq r0, #'p' + moveq r0, #'p' @ yes, error 'p' beq __error bl __lookup_architecture_type teq r7, #0 @ invalid architecture? - moveq r0, #'a' + moveq r0, #'a' @ yes, error 'a' beq __error bl __create_page_tables - adr lr, __ret - add pc, r10, #12 @ flush caches (returns ctrl reg) + adr lr, __ret @ return address + add pc, r10, #12 @ initialise processor + @ (return control reg) __switch_data: .long __mmap_switched .long SYMBOL_NAME(__bss_start) @@ -115,7 +123,8 @@ __ret: ldr lr, __switch_data .align 5 __mmap_switched: adr r3, __switch_data + 4 - ldmia r3, {r4, r5, r6, r7, r8, sp} @ Setup stack + ldmia r3, {r4, r5, r6, r7, r8, sp} @ r4 = __bss_start + @ sp = stack pointer mov fp, #0 @ Clear BSS 1: cmp r4, r5 @@ -150,8 +159,8 @@ __create_page_tables: add r4, r5, #SWAPPER_PGDIR_OFFSET mov r0, r4 mov r3, #0 - add r2, r0, #0x4000 @ Clear page table -1: str r3, [r0], #4 + add r2, r0, #0x4000 @ 16k of page table +1: str r3, [r0], #4 @ Clear page table str r3, [r0], #4 str r3, [r0], #4 str r3, [r0], #4 @@ -164,19 +173,19 @@ __create_page_tables: * * The identity mapping will be removed by paging_init() */ - mov r3, #0x0c - orr r3, r3, r8 - add r3, r3, r5 + mov r3, #0x0c @ cacheable, bufferable + orr r3, r3, r8 @ | pagetable flags + add r3, r3, r5 @ + start of RAM add r0, r4, r5, lsr #18 - str r3, [r0] - add r0, r4, #(TEXTADDR - 0x8000) >> 18 - str r3, [r0], #4 + str r3, [r0] @ identity mapping + add r0, r4, #(TEXTADDR - 0x8000) >> 18 @ start of kernel + str r3, [r0], #4 @ PAGE_OFFSET + 0MB add r3, r3, #1 << 20 - str r3, [r0], #4 + str r3, [r0], #4 @ PAGE_OFFSET + 1MB add r3, r3, #1 << 20 - str r3, [r0], #4 + str r3, [r0], #4 @ PAGE_OFFSET + 2MB add r3, r3, #1 << 20 - str r3, [r0], #4 + str r3, [r0], #4 @ PAGE_OFFSET + 3MB #ifdef CONFIG_DEBUG_LL /* * Map in IO space for serial debugging. @@ -194,6 +203,10 @@ __create_page_tables: teq r0, r2 bne 1b #ifdef CONFIG_ARCH_NETWINDER + /* + * If we're using the NetWinder, we need to map in + * the 16550-type serial port for the debug messages + */ teq r1, #5 bne 1f add r0, r4, #0x3fc0 @@ -228,7 +241,10 @@ __create_page_tables: * proceed. We ought to tell the user, but since we * don't have any guarantee that we're even running on * the right architecture, we do virtually nothing. - * r0 = ascii error character + * r0 = ascii error character: + * a = invalid architecture + * p = invalid processor + * i = invalid calling convention * * Generally, only serious errors cause this. */ @@ -262,8 +278,11 @@ err_str: .asciz "\nError: " #endif /* - * Read processor ID register (CP#15, CR0), and determine - * processor type. + * Read processor ID register (CP#15, CR0), and look up in the linker-built + * supported processor list. Note that we can't use the absolute addresses + * for the __proc_info lists since we aren't running with the MMU on + * (and therefore, we are not in the correct address space). We have to + * calculate the offset. * * Returns: * r5, r6, r7 corrupted @@ -274,20 +293,24 @@ err_str: .asciz "\nError: " __lookup_processor_type: adr r5, 2f ldmia r5, {r7, r9, r10} - sub r5, r5, r10 - add r7, r7, r5 + sub r5, r5, r10 @ convert addresses + add r7, r7, r5 @ to our address space add r10, r9, r5 mrc p15, 0, r9, c0, c0 @ get processor id 1: ldmia r10, {r5, r6, r8} @ value, mask, mmuflags - eor r5, r5, r9 - tst r5, r6 + and r6, r6, r9 @ mask wanted bits + teq r5, r6 moveq pc, lr add r10, r10, #36 @ sizeof(proc_info_list) cmp r10, r7 blt 1b - mov r10, #0 + mov r10, #0 @ unknown processor mov pc, lr +/* + * Look in include/asm-arm/procinfo.h and arch/arm/kernel/arch.[ch] for + * more information about the __proc_info and __arch_info structures. + */ 2: .long __proc_info_end .long __proc_info_begin .long 2b @@ -295,10 +318,14 @@ __lookup_processor_type: .long __arch_info_end /* - * Lookup machine architecture - * r1 = machine architecture number + * Lookup machine architecture in the linker-build list of architectures. + * Note that we can't use the absolute addresses for the __arch_info + * lists since we aren't running with the MMU on (and therefore, we are + * not in the correct address space). We have to calculate the offset. + * + * r1 = machine architecture number * Returns: - * r4 = unused word + * r2, r3, r4 corrupted * r5 = physical start address of RAM * r6 = physical address of IO * r7 = byte offset into page tables for IO @@ -306,16 +333,17 @@ __lookup_processor_type: __lookup_architecture_type: adr r4, 2b ldmia r4, {r2, r3, r5, r6, r7} @ throw away r2, r3 - sub r5, r4, r5 - add r4, r6, r5 + sub r5, r4, r5 @ convert addresses + add r4, r6, r5 @ to our address space add r7, r7, r5 -1: ldr r5, [r4] +1: ldr r5, [r4] @ get machine type teq r5, r1 beq 2f add r4, r4, #SIZEOF_MACHINE_DESC cmp r4, r7 blt 1b - mov r7, #0 + mov r7, #0 @ unknown architecture mov pc, lr -2: ldmib r4, {r5, r6, r7} +2: ldmib r4, {r5, r6, r7} @ found, get results + mov r7, r7, lsr #18 @ pagetable byte offset mov pc, lr diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index 9abb9e617..93c539ffd 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c @@ -248,66 +248,6 @@ out: return error; } -/* Compatability functions - we used to pass 5 parameters as r0, r1, r2, *r3, *(r3+4) - * We now use r0 - r4, and return an error if the old style calling standard is used. - * Eventually these functions will disappear. - */ -asmlinkage int sys_uname(struct old_utsname * name) -{ - static int warned = 0; - int err; - - if (warned == 0) { - warned ++; - printk (KERN_NOTICE "%s (%d): obsolete uname call\n", - current->comm, current->pid); - } - - if(!name) - return -EFAULT; - down_read(&uts_sem); - err=copy_to_user (name, &system_utsname, sizeof (*name)); - up_read(&uts_sem); - return err?-EFAULT:0; -} - -asmlinkage int sys_olduname(struct oldold_utsname * name) -{ - int error; - static int warned = 0; - - if (warned == 0) { - warned ++; - printk (KERN_NOTICE "%s (%d): obsolete olduname call\n", - current->comm, current->pid); - } - - if (!name) - return -EFAULT; - - if (!access_ok(VERIFY_WRITE,name,sizeof(struct oldold_utsname))) - return -EFAULT; - - down_read(&uts_sem); - - error = __copy_to_user(&name->sysname,&system_utsname.sysname,__OLD_UTS_LEN); - error |= __put_user(0,name->sysname+__OLD_UTS_LEN); - error |= __copy_to_user(&name->nodename,&system_utsname.nodename,__OLD_UTS_LEN); - error |= __put_user(0,name->nodename+__OLD_UTS_LEN); - error |= __copy_to_user(&name->release,&system_utsname.release,__OLD_UTS_LEN); - error |= __put_user(0,name->release+__OLD_UTS_LEN); - error |= __copy_to_user(&name->version,&system_utsname.version,__OLD_UTS_LEN); - error |= __put_user(0,name->version+__OLD_UTS_LEN); - error |= __copy_to_user(&name->machine,&system_utsname.machine,__OLD_UTS_LEN); - error |= __put_user(0,name->machine+__OLD_UTS_LEN); - - up_read(&uts_sem); - - error = error ? -EFAULT : 0; - - return error; -} - asmlinkage int sys_pause(void) { current->state = TASK_INTERRUPTIBLE; diff --git a/arch/arm/mm/mm-sa1100.c b/arch/arm/mm/mm-sa1100.c index 5674dbe37..9d9306dd4 100644 --- a/arch/arm/mm/mm-sa1100.c +++ b/arch/arm/mm/mm-sa1100.c @@ -29,12 +29,12 @@ #define SA1100_STD_IO_MAPPING \ /* virtual physical length domain r w c b */ \ - { 0xe0000000, 0x20000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA0 IO */ \ - { 0xe4000000, 0x30000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA1 IO */ \ - { 0xe8000000, 0x28000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA0 attr */ \ - { 0xec000000, 0x38000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA1 attr */ \ - { 0xf0000000, 0x2c000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA0 mem */ \ - { 0xf4000000, 0x3c000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA1 mem */ \ + { 0xe0000000, 0x20000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA0 IO */ \ + { 0xe4000000, 0x30000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA1 IO */ \ + { 0xe8000000, 0x28000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA0 attr */ \ + { 0xec000000, 0x38000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA1 attr */ \ + { 0xf0000000, 0x2c000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA0 mem */ \ + { 0xf4000000, 0x3c000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA1 mem */ \ { 0xf8000000, 0x80000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCM */ \ { 0xfa000000, 0x90000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* SCM */ \ { 0xfc000000, 0xa0000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* MER */ \ @@ -63,16 +63,21 @@ static struct map_desc empeg_io_desc[] __initdata = { #endif }; +static struct map_desc graphicsclient_io_desc[] __initdata = { +#ifdef CONFIG_SA1100_GRAPHICSCLIENT + { 0xd0000000, 0x08000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 */ + { 0xd0800000, 0x18000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 3 */ + { 0xdc000000, 0x10000000, 0x00400000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD */ + SA1100_STD_IO_MAPPING +#endif +}; + static struct map_desc thinclient_io_desc[] __initdata = { #ifdef CONFIG_SA1100_THINCLIENT -#if 1 - /* ThinClient: only one of those... */ -// { 0xd0000000, 0x00000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 when JP1 2-4 */ - { 0xd0000000, 0x08000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 when JP1 3-4 */ +#if 0 + { 0xd0000000, 0x00000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 when JP1 2-4 */ #else - /* GraphicsClient: */ - { 0xd0000000, 0x08000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 */ - { 0xd0800000, 0x18000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 3 */ + { 0xd0000000, 0x08000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 when JP1 3-4 */ #endif { 0xdc000000, 0x10000000, 0x00400000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD */ SA1100_STD_IO_MAPPING @@ -104,7 +109,7 @@ static struct map_desc default_io_desc[] __initdata = { * Here it would be wiser to simply assign a pointer to the appropriate * list, but io_desc is already declared as an array in "map.h". */ -struct map_desc io_desc[20] __initdata = { { 0, }, }; +struct map_desc io_desc[20] __initdata = {}; unsigned int io_desc_size; void __init select_sa1100_io_desc(void) @@ -118,6 +123,9 @@ void __init select_sa1100_io_desc(void) } else if( machine_is_empeg() ) { memcpy( io_desc, empeg_io_desc, sizeof(empeg_io_desc) ); io_desc_size = SIZE(empeg_io_desc); + } else if( machine_is_graphicsclient() ) { + memcpy( io_desc, graphicsclient_io_desc, sizeof(graphicsclient_io_desc) ); + io_desc_size = SIZE(graphicsclient_io_desc); } else if( machine_is_thinclient() ) { memcpy( io_desc, thinclient_io_desc, sizeof(thinclient_io_desc) ); io_desc_size = SIZE(thinclient_io_desc); diff --git a/arch/arm/mm/proc-arm6,7.S b/arch/arm/mm/proc-arm6,7.S index dd039f208..c2f4f2346 100644 --- a/arch/arm/mm/proc-arm6,7.S +++ b/arch/arm/mm/proc-arm6,7.S @@ -254,9 +254,7 @@ ENTRY(cpu_arm7_proc_init) ENTRY(cpu_arm6_proc_fin) ENTRY(cpu_arm7_proc_fin) - mrs r0, cpsr - orr r0, r0, #F_BIT | I_BIT - msr cpsr, r0 + msr cpsr_c, #F_BIT | I_BIT | SVC_MODE mov r0, #0x31 @ ....S..DP...M mcr p15, 0, r0, c1, c0, 0 @ disable caches mov pc, lr @@ -366,7 +364,8 @@ cpu_arm710_name: .section ".text.init", #alloc, #execinstr -__arm6_setup: mov r0, #0 +__arm6_setup: msr cpsr_c, #F_BIT | I_BIT | SVC_MODE + mov r0, #0 mcr p15, 0, r0, c7, c0 @ flush caches on v3 mcr p15, 0, r0, c5, c0 @ flush TLBs on v3 mcr p15, 0, r4, c2, c0 @ load page table pointer @@ -376,7 +375,8 @@ __arm6_setup: mov r0, #0 orr r0, r0, #0x100 mov pc, lr -__arm7_setup: mov r0, #0 +__arm7_setup: msr cpsr_c, #F_BIT | I_BIT | SVC_MODE + mov r0, #0 mcr p15, 0, r0, c7, c0 @ flush caches on v3 mcr p15, 0, r0, c5, c0 @ flush TLBs on v3 mcr p15, 0, r4, c2, c0 @ load page table pointer diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S index 9ae5fb9d6..ac5d0735e 100644 --- a/arch/arm/mm/proc-sa110.S +++ b/arch/arm/mm/proc-sa110.S @@ -423,9 +423,7 @@ ENTRY(cpu_sa1100_proc_init) ENTRY(cpu_sa110_proc_fin) stmfd sp!, {r1, lr} - mrs r0, cpsr - orr r0, r0, #F_BIT | I_BIT - msr cpsr, r0 + msr cpsr_c, #F_BIT | I_BIT | SVC_MODE bl cpu_sa110_flush_cache_all @ clean caches 1: mov r0, #0 mcr p15, 0, r0, c15, c2, 2 @ Disable clock switching @@ -437,9 +435,7 @@ ENTRY(cpu_sa110_proc_fin) ENTRY(cpu_sa1100_proc_fin) stmfd sp!, {r1, lr} - mrs r0, cpsr - orr r0, r0, #F_BIT | I_BIT - msr cpsr, r0 + msr cpsr_c, #F_BIT | I_BIT | SVC_MODE bl cpu_sa1100_flush_cache_all @ clean caches b 1b @@ -505,7 +501,8 @@ cpu_sa1110_name: .section ".text.init", #alloc, #execinstr -__sa110_setup: mov r0, #0 +__sa110_setup: msr cpsr_c, #F_BIT | I_BIT | SVC_MODE + mov r0, #0 mcr p15, 0, r0, c7, c7 @ flush I,D caches on v4 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r0, c8, c7 @ flush I,D TLBs on v4 |