Index: Makefile =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 2001/08/24 00:58:39 1.1.1.1 +++ Makefile 2001/08/24 01:36:43 1.2 @@ -1,17 +1,20 @@ +.EXPORT_ALL_VARIABLES: +include makeflags + VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 6 -EXTRAVERSION = .0pre0 +EXTRAVERSION = -superbt KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) # ARCH := armnommu -# ARCH := m68knommu +ARCH := m68knommu CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ else echo sh; fi ; fi) -TOPDIR := $(shell /bin/pwd) +TOPDIR := $(shell /bin/pwd)/ HPATH = $(TOPDIR)/include FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net @@ -21,6 +24,7 @@ # CROSS_COMPILE = m68k-elf- # CROSS_COMPILE = arm-elf- +CROSS_COMPILE := $(CROSS) # # Include the make variables (CC, etc...) @@ -28,7 +32,7 @@ AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc +CC = $(GCC_BIN) $(GCC_MACHINE_FLAG) $(ARCH_FLAGS) CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm @@ -87,6 +91,8 @@ # makefile but the arguement can be passed to make if needed. # +INSTALL_MOD_PATH := $(TOPDIR)install + MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) export MODLIB @@ -211,7 +217,7 @@ # files removed with 'make clean' CLEAN_FILES = \ kernel/ksyms.lst include/linux/compile.h \ - $(LINUX) System.map \ + $(LINUX) $(LINUX).elfrel $(LINUX).elf $(LINUX).gdb System.map \ .tmp* \ drivers/char/consolemap_deftbl.c drivers/video/promcon_tbl.c \ drivers/char/conmakehash \ @@ -273,6 +279,18 @@ $(LIBS) \ --end-group \ -o $(LINUX) + $(LD).real -r -d $(HEAD) init/main.o init/version.o \ + --start-group \ + $(CORE_FILES) \ + $(DRIVERS) \ + $(NETWORKS) \ + $(LIBS) \ + --end-group \ + -o $(LINUX).elfrel + $(LD).real $(LINKFLAGS) -Ur $(LINUX).elfrel -o $(LINUX).elf + $(LD).real $(LINKFLAGS) $(LINUX).elfrel -o $(LINUX).gdb + rm -f $(LINUX).elfrel + $(NM) $(LINUX) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map symlinks: @@ -398,14 +416,17 @@ endif .PHONY: _modinst_post _modinst_post: _modinst_post_pcmcia - if [ -r System.map ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi + if [ -r System.map ]; then \ + mkdir -p $(MODLIB)/kernel && \ + $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); \ + fi # Backwards compatibilty symlinks for people still using old versions # of pcmcia-cs with hard coded pathnames on insmod. Remove # _modinst_post_pcmcia for kernel 2.4.1. .PHONY: _modinst_post_pcmcia _modinst_post_pcmcia: - cd $(MODLIB); \ + ! test -d $(MODLIB) || cd $(MODLIB); \ mkdir -p pcmcia; \ find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia Index: Rules.make =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/Rules.make,v retrieving revision 1.1.1.1 retrieving revision 1.3 diff -u -r1.1.1.1 -r1.3 --- Rules.make 2001/08/24 00:58:39 1.1.1.1 +++ Rules.make 2001/09/05 23:55:35 1.3 @@ -1,3 +1,6 @@ +.EXPORT_ALL_VARIABLES: +include $(TOPDIR)/makeflags + # # This file contains rules which are shared between multiple Makefiles. # @@ -130,7 +133,12 @@ ifdef _FASTDEP_ALL_SUB_DIRS $(patsubst %,_sfdep_%,$(_FASTDEP_ALL_SUB_DIRS)): - $(MAKE) -C $(patsubst _sfdep_%,%,$@) fastdep + subdir=$(patsubst _sfdep_%,%,$@) ; \ + if [ -d $${subdir} ] ; then \ + $(MAKE) -C $${subdir} fastdep ; \ + else \ + true ; \ + fi endif Index: makeflags =================================================================== RCS file: makeflags diff -N makeflags --- /dev/null Tue May 5 16:32:27 1998 +++ makeflags Fri Oct 26 10:36:23 2001 @@ -0,0 +1 @@ +export MAKE := flags davidm - make Index: arch/m68knommu/Boards.mk =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/arch/m68knommu/Boards.mk,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- arch/m68knommu/Boards.mk 2001/08/24 00:58:47 1.1.1.1 +++ arch/m68knommu/Boards.mk 2001/08/24 01:38:50 1.2 @@ -99,6 +99,9 @@ ifdef CONFIG_CADRE3 BOARD := CADRE3 endif +ifdef CONFIG_SUPERBTLAP +BOARD := SuperBTLAP +endif endif ifdef CONFIG_M5407 Index: arch/m68knommu/Makefile =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/arch/m68knommu/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- arch/m68knommu/Makefile 2001/08/24 00:58:47 1.1.1.1 +++ arch/m68knommu/Makefile 2001/08/24 01:38:50 1.2 @@ -34,7 +34,7 @@ UTS_SYSNAME = -DUTS_SYSNAME=\"uClinux\" # Find out which board we are compiling for -include arch/$(ARCH)/Boards.mk +include $(TOPDIR)/arch/$(ARCH)/Boards.mk # Set up the memory model. RAM or ROM. ifdef CONFIG_RAMKERNEL @@ -50,10 +50,10 @@ # get the compiler, flags and targets from the platform ifdef PLATFORM -include arch/$(ARCH)/platform/$(PLATFORM)/Rules.make +include $(TOPDIR)/arch/$(ARCH)/platform/$(PLATFORM)/Rules.make endif -arch/$(ARCH)/empty.o: +$(TOPDIR)/arch/$(ARCH)/empty.o: $(CROSS_COMPILE)gcc -o arch/$(ARCH)/empty.o -c arch/$(ARCH)/empty.c bootstrap: Index: arch/m68knommu/config.in =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/arch/m68knommu/config.in,v retrieving revision 1.1.1.2 retrieving revision 1.4 diff -u -r1.1.1.2 -r1.4 --- arch/m68knommu/config.in 2001/08/24 03:34:45 1.1.1.2 +++ arch/m68knommu/config.in 2001/08/24 04:05:23 1.4 @@ -130,9 +130,16 @@ bool 'Lineo DISKtel support' CONFIG_DISKtel bool 'Lineo MP3 support' CONFIG_LINEOMP3 bool 'Cadre-III eval board support' CONFIG_CADRE3 + bool 'SuperBT LAP board support' CONFIG_SUPERBTLAP bool 'Old mask (broken watchdog timer)' CONFIG_OLDMASK - if [ "$CONFIG_ARNEWSH" != "y" -o "$CONFIG_CADRE3" != "y" ]; then + if [ "$CONFIG_SUPERBTLAP" = "y" ]; then + choice 'MCF5307 clock frequency' \ + "30MHz CONFIG_CLOCK_30MHz \ + 45MHz CONFIG_CLOCK_45MHz" 30MHz + fi + + if [ "$CONFIG_ARNEWSH" != "y" -a "$CONFIG_CADRE3" != "y" ]; then choice 'FLASH size' \ "1MB CONFIG_FLASH1MB \ 2MB CONFIG_FLASH2MB \ @@ -388,6 +395,10 @@ ############################################################################# source drivers/usb/Config.in + +if [ "$CONFIG_EXPERIMENTAL" = "y" -a -f net/bluetooth/Config.in ]; then + source net/bluetooth/Config.in +fi ############################################################################# Index: arch/m68knommu/defconfig =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/arch/m68knommu/defconfig,v retrieving revision 1.1.1.1 retrieving revision 1.4 diff -u -r1.1.1.1 -r1.4 --- arch/m68knommu/defconfig 2001/08/24 00:58:47 1.1.1.1 +++ arch/m68knommu/defconfig 2001/09/05 23:56:07 1.4 @@ -34,18 +34,23 @@ # CONFIG_COLDFIRE=y # CONFIG_ARNEWSH is not set -CONFIG_NETtel=y +# CONFIG_NETtel is not set # CONFIG_eLIA is not set # CONFIG_DISKtel is not set # CONFIG_CADRE3 is not set + +CONFIG_SUPERBTLAP=y +CONFIG_CLOCK_30MHz=y +# CONFIG_CLOCK_45MHz is not set + # CONFIG_OLDMASK is not set -CONFIG_FLASH1MB=y -# CONFIG_FLASH2MB is not set +# CONFIG_FLASH1MB is not set +CONFIG_FLASH2MB=y # CONFIG_FLASH4MB is not set # CONFIG_EXTRA_FLASH1MB is not set -CONFIG_RAM4MB=y +# CONFIG_RAM4MB is not set # CONFIG_RAM8MB is not set -# CONFIG_RAM16MB is not set +CONFIG_RAM16MB=y # CONFIG_RAM32MB is not set CONFIG_RAMKERNEL=y # CONFIG_ROMKERNEL is not set @@ -62,7 +67,7 @@ # CONFIG_PCMCIA is not set # CONFIG_SYSVIPC is not set # CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_SYSCTL is not set +CONFIG_SYSCTL=y # CONFIG_KCORE_ELF is not set CONFIG_KCORE_AOUT=y CONFIG_BINFMT_FLAT=y @@ -222,10 +227,10 @@ # CONFIG_HIPPI is not set CONFIG_PPP=y # CONFIG_PPP_MULTILINK is not set -# CONFIG_PPP_ASYNC is not set +CONFIG_PPP_ASYNC=y # CONFIG_PPP_SYNC_TTY is not set -# CONFIG_PPP_DEFLATE is not set -# CONFIG_PPP_BSDCOMP is not set +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_BSDCOMP=y # CONFIG_PPPOE is not set # CONFIG_SLIP is not set @@ -279,12 +284,12 @@ # CONFIG_DACI2S is not set # CONFIG_T6963 is not set # CONFIG_HIFN7901 is not set -CONFIG_LEDMAN=y +# CONFIG_LEDMAN is not set # CONFIG_VT is not set # CONFIG_SERIAL is not set # CONFIG_SERIAL_EXTENDED is not set # CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_UNIX98_PTYS is not set +CONFIG_UNIX98_PTYS=y # # I2C support @@ -292,6 +297,11 @@ # CONFIG_I2C is not set # +# Bluetooth +# +# CONFIG_BLUETOOTH is not set + +# # Mice # # CONFIG_BUSMOUSE is not set @@ -354,7 +364,7 @@ # CONFIG_DEVFS_FS is not set # CONFIG_DEVFS_MOUNT is not set # CONFIG_DEVFS_DEBUG is not set -# CONFIG_DEVPTS_FS is not set +CONFIG_DEVPTS_FS=y # CONFIG_QNX4FS_FS is not set # CONFIG_QNX4FS_RW is not set CONFIG_ROMFS_FS=y @@ -420,7 +430,7 @@ # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_ISO8859_1 is not set +CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set @@ -443,6 +453,11 @@ # USB support # # CONFIG_USB is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set # # Kernel hacking Index: arch/m68knommu/platform/5307/Rules.make =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/arch/m68knommu/platform/5307/Rules.make,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- arch/m68knommu/platform/5307/Rules.make 2001/08/24 03:34:46 1.1.1.2 +++ arch/m68knommu/platform/5307/Rules.make 2001/08/24 01:39:04 1.2 @@ -14,12 +14,14 @@ # Copyright (C) 1994 by Hamish Macdonald # Copyright (C) 2000 Lineo Inc. (www.lineo.com) -GCC_DIR = $(shell $(CC) -v 2>&1 | grep specs | sed -e 's/.* \(.*\)specs/\1\./') +# GCC_DIR = $(shell $(CC) -v 2>&1 | grep specs | sed -e 's/.* \(.*\)specs/\1\./') -INCGCC = $(GCC_DIR)/include -LIBGCC = $(GCC_DIR)/m5307/libgcc.a +# INCGCC = $(GCC_DIR)/include +INCGCC = $(GCCINCDIR) +# LIBGCC = $(GCC_DIR)/m5200/libgcc.a +LIBGCC = $(LIBGCCDIR)libgcc.a -CFLAGS := -fno-builtin -nostdinc $(CFLAGS) -I$(INCGCC) -pipe -DNO_MM -DNO_FPU -m5307 -Wa,-S -Wa,-m5307 -D__ELF__ -DMAGIC_ROM_PTR -DUTS_SYSNAME=\"uClinux\" -D__linux__ +CFLAGS := -fno-builtin -nostdinc $(CFLAGS) -I$(INCGCC) -pipe -DNO_MM -DNO_FPU $(ARCH_FLAGS) -Wa,-S -D__ELF__ -DMAGIC_ROM_PTR -DUTS_SYSNAME=\"uClinux\" -D__linux__ AFLAGS := $(CFLAGS) LINKFLAGS = -T arch/$(ARCH)/platform/$(PLATFORM)/$(BOARD)/$(MODEL).ld Index: arch/m68knommu/platform/5307/config.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/arch/m68knommu/platform/5307/config.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- arch/m68knommu/platform/5307/config.c 2001/08/24 00:58:48 1.1.1.1 +++ arch/m68knommu/platform/5307/config.c 2001/08/24 01:39:04 1.2 @@ -30,7 +30,11 @@ /***************************************************************************/ +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ + defined(CONFIG_DISKtel) || defined(CONFIG_LINEOMP3) void reset_setupbutton(void); +#endif + void coldfire_profile_init(void); /***************************************************************************/ @@ -74,7 +78,8 @@ icrp = (volatile unsigned char *) (MCF_MBAR + MCFSIM_TIMER1ICR); #if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ - defined(CONFIG_DISKtel) || defined(CONFIG_LINEOMP3) + defined(CONFIG_DISKtel) || defined(CONFIG_LINEOMP3) || \ + defined(CONFIG_SUPERBTLAP) *icrp = MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3; request_irq(30, handler, SA_INTERRUPT, "ColdFire Timer", NULL); #else @@ -387,7 +392,8 @@ void config_BSP(char *commandp, int size) { #if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ - defined(CONFIG_DISKtel) || defined(CONFIG_LINEOMP3) + defined(CONFIG_DISKtel) || defined(CONFIG_LINEOMP3) || \ + defined(CONFIG_SUPERBTLAP) /* Copy command line from FLASH to local buffer... */ memcpy(commandp, (char *) 0xf0004000, size); commandp[size-1] = 0; Index: arch/m68knommu/platform/5307/SuperBTLAP/crt0_ram.S =================================================================== RCS file: crt0_ram.S diff -N crt0_ram.S --- /dev/null Tue May 5 16:32:27 1998 +++ arch/m68knommu/platform/5307/SuperBTLAP/crt0_ram.S Fri Oct 26 10:36:30 2001 @@ -0,0 +1,212 @@ +/*****************************************************************************/ + +/* + * crt0_ram.S -- startup code for MCF5307 ColdFire based NETtel. + * + * (C) Copyright 1999, Greg Ungerer. + * Copyright (C) 2000 Lineo Inc. (www.lineo.com) + * + * 1999/02/24 Modified for the 5307 processor David W. Miller + */ + +/*****************************************************************************/ + +#include "linux/autoconf.h" +#include "asm/coldfire.h" +#include "asm/mcfsim.h" +#include "asm/nettel.h" + +/*****************************************************************************/ + +/* + * Lineo NETtel board memory setup. + */ +#define MEM_BASE 0x00000000 /* Memory base at address 0 */ +#define VBR_BASE MEM_BASE /* Vector address */ + +#if defined(CONFIG_RAM32MB) +#define MEM_SIZE 0x02000000 /* Memory size 32Mb */ +#elif defined(CONFIG_RAM16MB) +#define MEM_SIZE 0x01000000 /* Memory size 16Mb */ +#elif defined(CONFIG_RAM8MB) +#define MEM_SIZE 0x00800000 /* Memory size 8Mb */ +#else +#define MEM_SIZE 0x00400000 /* Memory size 4Mb */ +#endif + +/*****************************************************************************/ + +.global _start +.global _rambase +.global _ramvec +.global _ramstart +.global _ramend + +/*****************************************************************************/ + +.data + +/* + * Set up the usable of RAM stuff. Size of RAM is determined then + * an initial stack set up at the end. + */ +_rambase: +.long 0 +_ramvec: +.long 0 +_ramstart: +.long 0 +_ramend: +.long 0 + +/*****************************************************************************/ + +/* + * The NETtel platform has some funky LEDs! + * SuperBTLAP: bit 0 is connected to the reset pin of the add-on chip + */ +.global ppdata +ppdata: +.short 0x0001 + +#if 0 +.global ledbank +ledbank: +.byte 0xff +#endif + +/*****************************************************************************/ + +.text + +/* + * This is the codes first entry point. This is where it all + * begins... + */ + +_start: + nop /* Filler */ + move.w #0x2700, %sr /* No interrupts */ + + /* Don't initialize SYPCR and VBAR, boot loader has done this */ +#if 0 + /* + * Set LEDs to known startup state. + */ + move.l #NETtel_LEDADDR, %a5 /* Addr of LED bank */ + move.b #0xff, (%a5) /* Turn them all off */ + + /* + * Disable watchdog timer. + */ + move.l #MCF_MBAR, %a0 /* Get MBAR address */ + clr.l %d0 /* Disable SWT */ + move.b %d0, MCFSIM_SYPCR(%a0) + move.b #0x55, %d0 /* Clear SWT as well */ + move.b %d0, MCFSIM_SWSR(%a0) + move.b #0xaa, %d0 + move.b %d0, MCFSIM_SWSR(%a0) + move.l #0xffffffff, %d0 /* Mask out all interrupts */ + move.l %d0, MCFSIM_IMR(%a0) + + /* + * Setup VBR here, otherwise buserror remap will not work. + * if dBug was active before (on my SBC with dBug 1.1 of Dec 16 1996) + * + * bkr@cut.de 19990306 + * + * Note: this is because dBUG points VBR to ROM, making vectors read + * only, so the bus trap can't be changed. (RS) + */ + move.l #VBR_BASE, %a7 /* Note VBR can't be read */ + movec %a7, %VBR + move.l %a7, _ramvec /* Set up vector addr */ + move.l %a7, _rambase /* Set up base RAM addr */ +#else + move.l #VBR_BASE, %a0 + move.l %a0, _ramvec /* Set up vector addr */ + move.l %a0, _rambase /* Set up base RAM addr */ +#endif + + /* + * Determine size of RAM, then set up initial stack. + */ + move.l #MEM_SIZE, %a0 + + move.l %a0, %d0 /* Mem end addr is in a0 */ + move.l %d0, %sp /* Set up initial stack ptr */ + move.l %d0, _ramend /* Set end ram addr */ + + /* Don't mess with CPU cache, it was set up by the boot loader */ +#if 0 + /* + * Enable CPU internal cache. + */ + move.l #0x01000000, %d0 /* invalidate whole cache */ + movec %d0,%CACR + nop +#ifdef DEBUGGER_COMPATIBLE_CACHE + move.l #0x0000c000, %d0 /* Set SDRAM cached only */ +#else + move.l #0x0000c020, %d0 /* Set SDRAM cached only (copyback) */ +#endif +#ifdef CONFIG_RAM32MB + or.l #0x00010000, %d0 +#endif + movec %d0, %ACR0 + move.l #0x00000000, %d0 /* No other regions cached */ + movec %d0, %ACR1 + + /* Enable cache */ + move.l #0xa0000200, %d0 + movec %d0,%CACR + nop +#endif + + /* + * Move ROM filesystem above bss :-) + */ + lea.l _sbss, %a0 /* Get start of bss */ + lea.l _ebss, %a1 /* Set up destination */ + move.l %a0, %a2 /* Copy of bss start */ + + move.l 8(%a0), %d0 /* Get size of ROMFS */ + addq.l #8, %d0 /* Allow for rounding */ + and.l #0xfffffffc, %d0 /* Whole words */ + + add.l %d0, %a0 /* Copy from end */ + add.l %d0, %a1 /* Copy from end */ + move.l %a1, _ramstart /* Set start of ram */ + +_copy_romfs: + move.l -(%a0), %d0 /* Copy dword */ + move.l %d0, -(%a1) + cmp.l %a0, %a2 /* Check if at end */ + bne _copy_romfs + + /* + * Zero out the bss region. + */ + lea.l _sbss, %a0 /* Get start of bss */ + lea.l _ebss, %a1 /* Get end of bss */ + clr.l %d0 /* Set value */ +_clear_bss: + move.l %d0, (%a0)+ /* Clear each word */ + cmp.l %a0, %a1 /* Check if at end */ + bne _clear_bss + + /* + * load the current task pointer and stack + */ + lea init_task_union,%a0 + movel %a0, _current_task + lea 0x2000(%a0),%sp + /* + * Assember start up done, start code proper. + */ + jsr start_kernel /* Start Linux kernel */ + +_exit: + jmp _exit /* Should never get here */ + +/*****************************************************************************/ Index: arch/m68knommu/platform/5307/SuperBTLAP/ram.ld =================================================================== RCS file: ram.ld diff -N ram.ld --- /dev/null Tue May 5 16:32:27 1998 +++ arch/m68knommu/platform/5307/SuperBTLAP/ram.ld Fri Oct 26 10:36:30 2001 @@ -0,0 +1,64 @@ + +MEMORY { + ram : ORIGIN = 0x400, LENGTH = 0x400000 +} + +SECTIONS { + + .text : { + _stext = . ; + *(.text) + *(.text.exit) + *(.text.lock) + *(.exitcall.exit) + *(.rodata) + . = ALIGN(0x4) ; + *(.kstrtab) + . = ALIGN(16); /* Exception table */ + __start___ex_table = .; + *(__ex_table) + __stop___ex_table = .; + + __start___ksymtab = .; /* Kernel symbol table */ + *(__ksymtab) + __stop___ksymtab = .; + . = ALIGN(4) ; + _etext = . ; + } > ram + + .data BLOCK(0x4) : { + _sdata = . ; + __data_start = . ; + *(.data) + *(.data.exit) + . = ALIGN(0x2000) ; + *(.data.init_task) + . = ALIGN(0x2000) ; + _edata = . ; + } > ram + + .init BLOCK(4096) : { + __init_begin = .; + *(.text.init) + *(.data.init) + . = ALIGN(16); + __setup_start = .; + *(.setup.init) + __setup_end = .; + __initcall_start = .; + *(.initcall.init) + . = ALIGN(4) ; + __initcall_end = .; + __init_end = .; + } > ram + + .bss BLOCK(0x4) : { + _sbss = . ; + *(.bss) + *(COMMON) + . = ALIGN(4) ; + _ebss = . ; + _end = . ; + } > ram +} + Index: arch/m68knommu/platform/5307/eLIA/crt0_ram.S =================================================================== RCS file: crt0_ram.S diff -N crt0_ram.S --- /dev/null Tue May 5 16:32:27 1998 +++ arch/m68knommu/platform/5307/eLIA/crt0_ram.S Fri Oct 26 10:36:30 2001 @@ -0,0 +1,204 @@ +/*****************************************************************************/ + +/* + * crt0_ram.S -- startup code for MCF5307 ColdFire based NETtel. + * + * (C) Copyright 1999, Greg Ungerer. + * Copyright (C) 2000 Lineo Inc. (www.lineo.com) + * + * 1999/02/24 Modified for the 5307 processor David W. Miller + */ + +/*****************************************************************************/ + +#include "linux/autoconf.h" +#include "asm/coldfire.h" +#include "asm/mcfsim.h" +#include "asm/nettel.h" + +/*****************************************************************************/ + +/* + * Lineo NETtel board memory setup. + */ +#define MEM_BASE 0x00000000 /* Memory base at address 0 */ +#define VBR_BASE MEM_BASE /* Vector address */ + +#if defined(CONFIG_RAM32MB) +#define MEM_SIZE 0x02000000 /* Memory size 32Mb */ +#elif defined(CONFIG_RAM16MB) +#define MEM_SIZE 0x01000000 /* Memory size 16Mb */ +#elif defined(CONFIG_RAM8MB) +#define MEM_SIZE 0x00800000 /* Memory size 8Mb */ +#else +#define MEM_SIZE 0x00400000 /* Memory size 4Mb */ +#endif + +/*****************************************************************************/ + +.global _start +.global _rambase +.global _ramvec +.global _ramstart +.global _ramend + +/*****************************************************************************/ + +.data + +/* + * Set up the usable of RAM stuff. Size of RAM is determined then + * an initial stack set up at the end. + */ +_rambase: +.long 0 +_ramvec: +.long 0 +_ramstart: +.long 0 +_ramend: +.long 0 + +/*****************************************************************************/ + +/* + * The NETtel platform has some funky LEDs! + */ +.global ppdata +ppdata: +.short 0x0000 + +#if 0 +.global ledbank +ledbank: +.byte 0xff +#endif + +/*****************************************************************************/ + +.text + +/* + * This is the codes first entry point. This is where it all + * begins... + */ + +_start: + nop /* Filler */ + move.w #0x2700, %sr /* No interrupts */ + +#if 0 + /* + * Set LEDs to known startup state. + */ + move.l #NETtel_LEDADDR, %a5 /* Addr of LED bank */ + move.b #0xff, (%a5) /* Turn them all off */ +#endif + + /* + * Disable watchdog timer. + */ + move.l #MCF_MBAR, %a0 /* Get MBAR address */ + clr.l %d0 /* Disable SWT */ + move.b %d0, MCFSIM_SYPCR(%a0) + move.b #0x55, %d0 /* Clear SWT as well */ + move.b %d0, MCFSIM_SWSR(%a0) + move.b #0xaa, %d0 + move.b %d0, MCFSIM_SWSR(%a0) + move.l #0xffffffff, %d0 /* Mask out all interrupts */ + move.l %d0, MCFSIM_IMR(%a0) + + /* + * Setup VBR here, otherwise buserror remap will not work. + * if dBug was active before (on my SBC with dBug 1.1 of Dec 16 1996) + * + * bkr@cut.de 19990306 + * + * Note: this is because dBUG points VBR to ROM, making vectors read + * only, so the bus trap can't be changed. (RS) + */ + move.l #VBR_BASE, %a7 /* Note VBR can't be read */ + movec %a7, %VBR + move.l %a7, _ramvec /* Set up vector addr */ + move.l %a7, _rambase /* Set up base RAM addr */ + + + /* + * Determine size of RAM, then set up initial stack. + */ + move.l #MEM_SIZE, %a0 + + move.l %a0, %d0 /* Mem end addr is in a0 */ + move.l %d0, %sp /* Set up initial stack ptr */ + move.l %d0, _ramend /* Set end ram addr */ + + /* + * Enable CPU internal cache. + */ + move.l #0x01000000, %d0 /* invalidate whole cache */ + movec %d0,%CACR + nop +#ifdef DEBUGGER_COMPATIBLE_CACHE + move.l #0x0000c000, %d0 /* Set SDRAM cached only */ +#else + move.l #0x0000c020, %d0 /* Set SDRAM cached only (copyback) */ +#endif +#ifdef CONFIG_RAM32MB + or.l #0x00010000, %d0 +#endif + movec %d0, %ACR0 + move.l #0x00000000, %d0 /* No other regions cached */ + movec %d0, %ACR1 + + /* Enable cache */ + move.l #0xa0000200, %d0 + movec %d0,%CACR + nop + + /* + * Move ROM filesystem above bss :-) + */ + lea.l _sbss, %a0 /* Get start of bss */ + lea.l _ebss, %a1 /* Set up destination */ + move.l %a0, %a2 /* Copy of bss start */ + + move.l 8(%a0), %d0 /* Get size of ROMFS */ + addq.l #8, %d0 /* Allow for rounding */ + and.l #0xfffffffc, %d0 /* Whole words */ + + add.l %d0, %a0 /* Copy from end */ + add.l %d0, %a1 /* Copy from end */ + move.l %a1, _ramstart /* Set start of ram */ + +_copy_romfs: + move.l -(%a0), %d0 /* Copy dword */ + move.l %d0, -(%a1) + cmp.l %a0, %a2 /* Check if at end */ + bne _copy_romfs + + /* + * Zero out the bss region. + */ + lea.l _sbss, %a0 /* Get start of bss */ + lea.l _ebss, %a1 /* Get end of bss */ + clr.l %d0 /* Set value */ +_clear_bss: + move.l %d0, (%a0)+ /* Clear each word */ + cmp.l %a0, %a1 /* Check if at end */ + bne _clear_bss + + /* + * load the current task pointer and stack + */ + lea init_task_union,%a0 + movel %a0, _current_task + lea 0x2000(%a0),%sp + /* + * Assember start up done, start code proper. + */ + jsr start_kernel /* Start Linux kernel */ + +_exit: + jmp _exit /* Should never get here */ + +/*****************************************************************************/ Index: arch/m68knommu/platform/5307/eLIA/ram.ld =================================================================== RCS file: ram.ld diff -N ram.ld --- /dev/null Tue May 5 16:32:27 1998 +++ arch/m68knommu/platform/5307/eLIA/ram.ld Fri Oct 26 10:36:30 2001 @@ -0,0 +1,64 @@ + +MEMORY { + ram : ORIGIN = 0x400, LENGTH = 0x400000 +} + +SECTIONS { + + .text : { + _stext = . ; + *(.text) + *(.text.exit) + *(.text.lock) + *(.exitcall.exit) + *(.rodata) + . = ALIGN(0x4) ; + *(.kstrtab) + . = ALIGN(16); /* Exception table */ + __start___ex_table = .; + *(__ex_table) + __stop___ex_table = .; + + __start___ksymtab = .; /* Kernel symbol table */ + *(__ksymtab) + __stop___ksymtab = .; + . = ALIGN(4) ; + _etext = . ; + } > ram + + .data BLOCK(0x4) : { + _sdata = . ; + __data_start = . ; + *(.data) + *(.data.exit) + . = ALIGN(0x2000) ; + *(.data.init_task) + . = ALIGN(0x2000) ; + _edata = . ; + } > ram + + .init BLOCK(4096) : { + __init_begin = .; + *(.text.init) + *(.data.init) + . = ALIGN(16); + __setup_start = .; + *(.setup.init) + __setup_end = .; + __initcall_start = .; + *(.initcall.init) + . = ALIGN(4) ; + __initcall_end = .; + __init_end = .; + } > ram + + .bss BLOCK(0x4) : { + _sbss = . ; + *(.bss) + *(COMMON) + . = ALIGN(4) ; + _ebss = . ; + _end = . ; + } > ram +} + Index: drivers/block/blkmem.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/drivers/block/blkmem.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- drivers/block/blkmem.c 2001/08/24 00:59:06 1.1.1.1 +++ drivers/block/blkmem.c 2001/08/24 01:39:14 1.2 @@ -146,7 +146,8 @@ #if defined(CONFIG_NETtel) || \ defined(CONFIG_eLIA) || \ defined(CONFIG_DISKtel) || \ - defined(CONFIG_LINEOMP3) + defined(CONFIG_LINEOMP3) || \ + defined(CONFIG_SUPERBTLAP) #define CONFIG_LINEOHW 1 #endif Index: drivers/char/Makefile =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/drivers/char/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- drivers/char/Makefile 2001/08/24 00:59:07 1.1.1.1 +++ drivers/char/Makefile 2001/08/24 01:41:35 1.2 @@ -172,12 +172,15 @@ obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o +subdir-$(CONFIG_BLUETOOTH) += bluetooth subdir-$(CONFIG_RIO) += rio subdir-$(CONFIG_INPUT) += joystick obj-$(CONFIG_ATIXL_BUSMOUSE) += atixlmouse.o obj-$(CONFIG_LOGIBUSMOUSE) += logibusmouse.o obj-$(CONFIG_PRINTER) += lp.o + +obj-$(CONFIG_BLUETOOTH) += bluetooth/bt.o ifeq ($(CONFIG_INPUT),y) obj-y += joystick/js.o Index: drivers/char/mcfserial.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/drivers/char/mcfserial.c,v retrieving revision 1.1.1.1 retrieving revision 1.4 diff -u -r1.1.1.1 -r1.4 --- drivers/char/mcfserial.c 2001/08/24 00:59:07 1.1.1.1 +++ drivers/char/mcfserial.c 2001/10/04 22:24:25 1.4 @@ -65,6 +65,7 @@ struct timer_list mcfrs_timer_struct; #endif + /* * Default console baud rate, we use this as the default * for all ports so init can just open /dev/console and @@ -72,15 +73,17 @@ * console can be used instead. */ #if defined(CONFIG_M5206e) || defined(CONFIG_M5272) || defined(CONFIG_M5307) || defined(CONFIG_M5407) -#define CONSOLE_BAUD_RATE 19200 -#define DEFAULT_CBAUD B19200 +#define CONSOLE_BAUD_RATE 115200 #endif #ifndef CONSOLE_BAUD_RATE #define CONSOLE_BAUD_RATE 9600 -#define DEFAULT_CBAUD B9600 #endif +#define PRESCAN_ARG(func, arg) func(arg) +#define MAKECBAUD(r) B ## r +#define DEFAULT_CBAUD PRESCAN_ARG(MAKECBAUD, CONSOLE_BAUD_RATE) + int mcfrs_console_inited = 0; int mcfrs_console_port = -1; int mcfrs_console_baud = CONSOLE_BAUD_RATE; @@ -105,6 +108,8 @@ */ #undef SERIAL_DEBUG_OPEN #undef SERIAL_DEBUG_FLOW +#undef SERIAL_DEBUG_LOSS +#undef SERIAL_DEBUG_CRTSCTS #define _INLINE_ inline @@ -346,6 +351,7 @@ volatile unsigned char *uartp; struct tty_struct *tty = info->tty; unsigned char status, ch; + int num_received = 0, num_err = 0; if (!tty) return; @@ -358,8 +364,13 @@ while ((status = uartp[MCFUART_USR]) & MCFUART_USR_RXREADY) { - if (tty->flip.count >= TTY_FLIPBUF_SIZE) + if (tty->flip.count >= TTY_FLIPBUF_SIZE) { +#if 0 + printk(KERN_ERR __FILE__ ": " __FUNCTION__ \ + ": flip buffer exhausted\n"); +#endif break; + } ch = uartp[MCFUART_URB]; info->stats.rx++; @@ -372,8 +383,10 @@ #endif tty->flip.count++; - if (status & MCFUART_USR_RXERR) + if (status & MCFUART_USR_RXERR) { uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETERR; + num_err++; + } if (status & MCFUART_USR_RXBREAK) { info->stats.rxbreak++; *tty->flip.flag_buf_ptr++ = TTY_BREAK; @@ -390,7 +403,13 @@ *tty->flip.flag_buf_ptr++ = 0; } *tty->flip.char_buf_ptr++ = ch; + num_received++; } +#ifdef SERIAL_DEBUG_LOSS + printk(KERN_INFO "+%d -%d: %d %d %d %d\n", num_received, num_err, + info->stats.rxbreak, info->stats.rxparity, + info->stats.rxoverrun, info->stats.rxframing); +#endif queue_task(&tty->flip.tqueue, &tq_timer); return; @@ -439,10 +458,16 @@ { struct mcf_serial *info; unsigned char isr; + volatile unsigned char *uartp; info = &mcfrs_table[(irq - IRQBASE)]; - isr = (((volatile unsigned char *)info->addr)[MCFUART_UISR]) & info->imr; + uartp = (volatile unsigned char *)(info->addr); + if (info->sigs & TIOCM_RTS) + uartp[MCFUART_UOP0] = MCFUART_UOP_RTS; + + isr = uartp[MCFUART_UISR] & info->imr; + if (isr & MCFUART_UIR_RXREADY) receive_chars(info, regs, isr); if (isr & MCFUART_UIR_TXREADY) @@ -454,6 +479,9 @@ } #endif + if (info->sigs & TIOCM_RTS) + uartp[MCFUART_UOP1] = MCFUART_UOP_RTS; + return; } @@ -621,17 +649,17 @@ info->xmit_cnt = info->xmit_head = info->xmit_tail = 0; /* - * and set the speed of the serial port - */ - mcfrs_change_speed(info); - - /* * Lastly enable the UART transmitter and receiver, and * interrupt enables. */ info->imr = MCFUART_UIR_RXREADY; - uartp[MCFUART_UCR] = MCFUART_UCR_RXENABLE | MCFUART_UCR_TXENABLE; - uartp[MCFUART_UIMR] = info->imr; + // uartp[MCFUART_UCR] = MCFUART_UCR_RXENABLE | MCFUART_UCR_TXENABLE; + // uartp[MCFUART_UIMR] = info->imr; + + /* + * and set the speed of the serial port + */ + mcfrs_change_speed(info); info->flags |= ASYNC_INITIALIZED; restore_flags(flags); @@ -754,24 +782,40 @@ save_flags(flags); cli(); #if 0 - printk("%s(%d): mr1=%x mr2=%x baudclk=%x\n", __FILE__, __LINE__, - mr1, mr2, baudclk); + printk("%s(%d): mr1=%x mr2=%x baudclk=%x, baud=%d\n", __FILE__, __LINE__, + mr1, mr2, baudclk, info->baud); #endif /* Note: pg 12-16 of MCF5206e User's Manual states that a software reset should be performed prior to changing UMR1,2, UCSR, UACR, bit 7 */ - uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETRX; /* reset RX */ uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETTX; /* reset TX */ + uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETRX; /* reset RX */ uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETMRPTR; /* reset MR pointer */ - uartp[MCFUART_UMR] = mr1; - uartp[MCFUART_UMR] = mr2; + + /* leave UIVR (IRQ number) untouched ? */ + uartp[MCFUART_UIMR] = info->imr; + + /* generate an interrupt when ~CTS input changes */ + uartp[MCFUART_UACR] = MCFUART_UACR_IEC; + + uartp[MCFUART_UCSR] = MCFUART_UCSR_RXCLKTIMER | MCFUART_UCSR_TXCLKTIMER; uartp[MCFUART_UBG1] = (baudclk & 0xff00) >> 8; /* set msb byte */ uartp[MCFUART_UBG2] = (baudclk & 0xff); /* set lsb byte */ - uartp[MCFUART_UCSR] = MCFUART_UCSR_RXCLKTIMER | MCFUART_UCSR_TXCLKTIMER; - uartp[MCFUART_UCR] = MCFUART_UCR_RXENABLE | MCFUART_UCR_TXENABLE; + + uartp[MCFUART_UMR] = mr1; + uartp[MCFUART_UMR] = mr2; + + uartp[MCFUART_UCR] = MCFUART_UCR_TXENABLE; /* enable TX */ + uartp[MCFUART_UCR] = MCFUART_UCR_RXENABLE; /* enable RX */ + mcfrs_setsignals(info, 1, -1); + +#ifdef SERIAL_DEBUG_CRTSCTS + printk(KERN_INFO "mr1 %x, mr2 %x\n", (int)mr1, (int)mr2); +#endif + restore_flags(flags); return; } @@ -922,6 +966,7 @@ info->x_char = STOP_CHAR(tty); /* Turn off RTS line (do this atomic) */ + mcfrs_setsignals(info, -1, 0); } static void mcfrs_unthrottle(struct tty_struct * tty) @@ -945,6 +990,7 @@ } /* Assert RTS line (do this atomic) */ + mcfrs_setsignals(info, -1, 1); } /* @@ -1446,10 +1492,11 @@ info->count--; info->blocked_open++; while (1) { - cli(); + long flags; + save_flags(flags); cli(); if (!(info->flags & ASYNC_CALLOUT_ACTIVE)) mcfrs_setsignals(info, 1, 1); - sti(); + restore_flags(flags); current->state = TASK_INTERRUPTIBLE; if (tty_hung_up_p(filp) || !(info->flags & ASYNC_INITIALIZED)) { @@ -1706,8 +1753,12 @@ mcfrs_serial_driver.subtype = SERIAL_TYPE_NORMAL; mcfrs_serial_driver.init_termios = tty_std_termios; + /* Setting the hardware flow control may prevent us from seeing + * console output during system startup. + */ mcfrs_serial_driver.init_termios.c_cflag = - mcfrs_console_cbaud | CS8 | CREAD | HUPCL | CLOCAL; + mcfrs_console_cbaud | CS8 | CREAD | HUPCL | CLOCAL + /* | CRTSCTS */; mcfrs_serial_driver.flags = TTY_DRIVER_REAL_RAW; mcfrs_serial_driver.refcount = &mcfrs_serial_refcount; mcfrs_serial_driver.table = mcfrs_serial_table; @@ -1809,23 +1860,41 @@ */ uartp = (volatile unsigned char *) (MCF_MBAR + (mcfrs_console_port ? MCFUART_BASE2 : MCFUART_BASE1)); + clk = ((MCF_CLK / 32) / mcfrs_console_baud); /* Set baud above */ - uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETRX; /* reset RX */ - uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETTX; /* reset TX */ - uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETMRPTR; /* reset MR pointer */ +#if 0 + printk("%s(%d): baud %d, clk %d\n", __FILE__, __LINE__, + mcfrs_console_baud, clk); +#endif + + uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETTX; /* reset TX */ + uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETRX; /* reset RX */ + uartp[MCFUART_UCR] = MCFUART_UCR_CMDRESETMRPTR; /* reset MR pointer */ + /* leave UIVR (IRQ number) untouched ? */ + uartp[MCFUART_UIMR] = 0; + + /* don't generate an interrupt when ~CTS input changes */ + uartp[MCFUART_UACR] = 0; + + uartp[MCFUART_UCSR] = MCFUART_UCSR_RXCLKTIMER | MCFUART_UCSR_TXCLKTIMER; + uartp[MCFUART_UBG1] = (clk & 0xff00) >> 8; /* set msb byte */ + uartp[MCFUART_UBG2] = (clk & 0xff); /* set lsb byte */ + /* * Set port for defined baud , 8 data bits, 1 stop bit, no parity. + * Setting MCFUART_MR1_RXRTS and MCFUART_MR2_TXCTS can prevent us + * from seeing console output during system startup because some + * cables lack flow control wires or loopbacks. Besides, the flow + * control can be turned off in the serial terminal application. */ - uartp[MCFUART_UMR] = MCFUART_MR1_PARITYNONE | MCFUART_MR1_CS8; - uartp[MCFUART_UMR] = MCFUART_MR2_STOP1; + uartp[MCFUART_UMR] = MCFUART_MR1_PARITYNONE | MCFUART_MR1_CS8 + /* | MCFUART_MR1_RXRTS */; + uartp[MCFUART_UMR] = MCFUART_MR2_STOP1 + /* | MCFUART_MR2_TXCTS */; - clk = ((MCF_CLK / 32) / mcfrs_console_baud); /* Set baud above */ - uartp[MCFUART_UBG1] = (clk & 0xff00) >> 8; /* set msb baud */ - uartp[MCFUART_UBG2] = (clk & 0xff); /* set lsb baud */ - - uartp[MCFUART_UCSR] = MCFUART_UCSR_RXCLKTIMER | MCFUART_UCSR_TXCLKTIMER; - uartp[MCFUART_UCR] = MCFUART_UCR_RXENABLE | MCFUART_UCR_TXENABLE; + uartp[MCFUART_UCR] = MCFUART_UCR_TXENABLE; /* enable TX */ + uartp[MCFUART_UCR] = MCFUART_UCR_RXENABLE; /* enable RX */ mcfrs_console_inited++; return; Index: drivers/net/smc9194.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/drivers/net/smc9194.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- drivers/net/smc9194.c 2001/08/24 00:59:13 1.1.1.1 +++ drivers/net/smc9194.c 2001/08/24 01:42:01 1.2 @@ -213,7 +213,8 @@ */ int packets_waiting; -#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) \ + || defined(CONFIG_SUPERBTLAP) int interface_num; #endif }; @@ -930,7 +931,8 @@ int i, memory, retval; static unsigned version_printed; unsigned int bank; -#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) \ + || defined(CONFIG_SUPERBTLAP) static int nr = 0; #endif #if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328) @@ -1012,7 +1014,8 @@ dev->base_addr = ioaddr; #if defined(CONFIG_COLDFIRE) || defined(CONFIG_M68EZ328) -#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) \ + || defined(CONFIG_SUPERBTLAP) /* . MAC address should be in FLASH, check that it is valid. . If good use it, otherwise use the default. @@ -1162,7 +1165,8 @@ /* set the private data to zero by default */ memset(dev->priv, 0, sizeof(struct smc_local)); -#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) \ + || defined(CONFIG_SUPERBTLAP) for (i = 0; smc_portlist[i]; i++) if (smc_portlist[i] == dev->base_addr) ((struct smc_local *) dev->priv)->interface_num = i; @@ -1257,7 +1261,8 @@ /* clear out all the junk that was put here before... */ memset(dev->priv, 0, sizeof(struct smc_local)); -#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) +#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) \ + || defined(CONFIG_SUPERBTLAP) /* * the memset above means we need to put this back each time */ Index: fs/binfmt_flat.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/fs/binfmt_flat.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fs/binfmt_flat.c 2001/08/24 00:59:24 1.1.1.1 +++ fs/binfmt_flat.c 2001/08/24 01:43:00 1.2 @@ -420,7 +420,7 @@ if (strncmp(hdr->magic, "bFLT", 4) || (rev != FLAT_VERSION && rev != OLD_FLAT_VERSION)) { - printk("BINFMT_FLAT: bad magic/rev (%d, need %d)\n", + DBG_FLT("BINFMT_FLAT: bad magic/rev (%d, need %d)\n", rev, (int) FLAT_VERSION); return -ENOEXEC; } Index: fs/binfmt_script.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/fs/binfmt_script.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fs/binfmt_script.c 2001/08/24 00:59:24 1.1.1.1 +++ fs/binfmt_script.c 2001/08/24 01:43:00 1.2 @@ -83,7 +83,9 @@ * DAVIDM look at implementing remove_arg_zero and copy_strings so * code like this should work. */ +#if DEBUG printk("%s,%d: #! not implemented yet !\n", __FILE__, __LINE__); +#endif return -ENOEXEC; #endif bprm->argc++; Index: fs/exec.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/fs/exec.c,v retrieving revision 1.1.1.2 retrieving revision 1.3 diff -u -r1.1.1.2 -r1.3 Index: include/asm-m68knommu/coldfire.h =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/include/asm-m68knommu/coldfire.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- include/asm-m68knommu/coldfire.h 2001/08/24 00:59:39 1.1.1.1 +++ include/asm-m68knommu/coldfire.h 2001/08/24 01:46:05 1.2 @@ -38,7 +38,18 @@ #elif defined(CONFIG_M5272) #define MCF_CLK 66000000 #elif defined(CONFIG_M5307) -#define MCF_CLK 45000000 + #if defined(CONFIG_SUPERBTLAP) + #if defined(CONFIG_CLOCK_30MHz) + #define MCF_CLK 30000000 + #elif defined(CONFIG_CLOCK_45MHz) + #define MCF_CLK 45000000 + #else + #define MCF_CLK 45000000 + #error Undefined clock frequency + #endif + #else + #define MCF_CLK 45000000 + #endif #elif defined(CONFIG_M5407) #define MCF_CLK 50000000 #endif Index: include/asm-m68knommu/param.h =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/include/asm-m68knommu/param.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- include/asm-m68knommu/param.h 2001/08/24 00:59:39 1.1.1.1 +++ include/asm-m68knommu/param.h 2001/08/31 17:16:48 1.2 @@ -44,6 +44,5 @@ #endif #define MAXHOSTNAMELEN 64 /* max length of hostname */ -#define CLOCKS_PER_SEC HZ #endif /* _M68KNOMMU_PARAM_H */ Index: include/asm-m68knommu/system.h =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/include/asm-m68knommu/system.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- include/asm-m68knommu/system.h 2001/08/24 00:59:39 1.1.1.1 +++ include/asm-m68knommu/system.h 2001/08/24 01:46:05 1.2 @@ -229,7 +229,7 @@ jmp 0xf0000400; \ "); \ }) -#elif defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) || defined(CONFIG_LINEOMP3) +#elif defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || defined(CONFIG_DISKtel) || defined(CONFIG_LINEOMP3) || defined(CONFIG_SUPERBTLAP) #define HARD_RESET_NOW() ({ \ asm(" \ movew #0x2700, %sr; \ Index: include/linux/coda.h =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/include/linux/coda.h,v retrieving revision 1.1.1.1 retrieving revision 1.3 diff -u -r1.1.1.1 -r1.3 --- include/linux/coda.h 2001/08/24 00:59:41 1.1.1.1 +++ include/linux/coda.h 2001/08/31 17:17:24 1.3 @@ -97,7 +97,6 @@ #endif /* !KERNEL */ #endif /* !DJGPP */ - #if defined(__linux__) #define cdev_t u_quad_t #ifndef __KERNEL__ @@ -106,11 +105,17 @@ typedef unsigned long long u_quad_t; #endif #else /*__KERNEL__ */ +#define _UQUAD_T_ 1 typedef unsigned long long u_quad_t; #endif /* __KERNEL__ */ -#else +#else /* __linux__ */ #define cdev_t dev_t #endif + +#if defined(__embedded__) && !defined(_UQUAD_T_) +#define _UQUAD_T_ 1 +typedef unsigned long long u_quad_t; +#endif /* __embedded__ */ #ifdef __CYGWIN32__ struct timespec { Index: mmnommu/vmalloc.c =================================================================== RCS file: /usr/local/cvsroot/uClinux-2.4.x/mmnommu/vmalloc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- mmnommu/vmalloc.c 2001/08/24 00:59:43 1.1.1.1 +++ mmnommu/vmalloc.c 2001/08/24 01:46:36 1.2 @@ -25,7 +25,7 @@ void * __vmalloc (unsigned long size, int gfp_mask, pgprot_t prot) { - return kmalloc(size, gfp_mask); + return kmalloc(size, gfp_mask & ~(__GFP_HIGHMEM)); } long vread(char *buf, char *addr, unsigned long count)