Commit 4d1ceac2 authored by Linus Torvalds's avatar Linus Torvalds

Import 2.3.23pre5

parent 23dd3db1
...@@ -907,14 +907,14 @@ S: CV5 8BZ ...@@ -907,14 +907,14 @@ S: CV5 8BZ
S: United Kingdom S: United Kingdom
N: Ron Holt N: Ron Holt
E: ron@caldera.com E: ron@holt.org
W: http://www.holt.org/ W: http://www.holt.org/
P: 1024/1FD44539 DF 4B EB 9F 5B 68 38 9A 40 E3 FB 71 D1 C8 0B 56 W: http://www.ronholt.com/
D: Kernel development D: Kernel development
D: Minor kernel modifications to support Wabi and Wine D: Kernel LDT modifications to support Wabi and Wine
S: Caldera, Inc. S: Holtron Internetics, Inc.
S: 240 West Center Street S: 998 East 900 South, Suite 26
S: Orem, Utah 84059-1920 S: Provo, Utah 84606-5607
S: USA S: USA
N: Rob W. W. Hooft N: Rob W. W. Hooft
......
Brutus is an evaluation platform for the SA1100 manufactured by Intel.
For more details, see:
http://developer.intel.com/design/strong/applnots/sa1100lx/getstart.htm
To compile for Brutus, you must issue the following comands:
make brutus_config
make config
[accept all the defaults]
make dep
make zImage
The resulting kernel will end up in linux/arch/arm/boot/zImage. This file
must be loaded at 0xc0008000 in Brutus's memory and execution started at
0xc0008000 as well.
But prior to execute the kernel, a ramdisk image must also be loaded in
memory. Use memory address 0x00800000 for this.
Currently supported:
- RS232 serial ports
- audio output
- LCD screen
- keyboard (needs to be cleaned up badly... any volunteer?)
A full PCMCIA support is still missing, although it's possible to hack
some drivers in order to drive already inserted cards at boot time with
little modifications.
Any contribution is welcome.
Please send patches to nico@cam.org
Have Fun !
Itsy is a research project done by the Western Research Lab, and Systems
Research Center in Palo Alto, CA. The Itsy project is one of several
research projects at Compaq that are related to pocket computing.
Itsy support has yet to be fully integrated in this kernel. Linux 2.0.x
support is available though.
For more information, see:
http://www.research.digital.com/wrl/itsy/index.html
Linux Advanced Radio Terminal (LART)
------------------------------------
The LART is a small (7.5 x 10cm) SA-1100 board, designed for embedded
applications. It has 32 MB DRAM, 4MB Flash ROM, double RS232 and all
other StrongARM-gadgets. Almost all SA signals are directly accessible
through a number of connectors. The powersupply accepts voltages
between 3.5V and 16V and is overdimensioned to support a range of
daughterboards. A quad Ethernet / IDE / PS2 / sound daughterboard
is under development, with plenty of others in different stages of
planning.
The designs for this board are to be released under a GPL-like license;
we're working on the details.
Contact: J.D. Bakker <bakker@thorgal.et.tudelft.nl>;
pictures at http://www-ict.its.tudelft.nl/~erik/open-source/LART/
The PLEB project was started as a student initiative at the School of
Computer Science and Engineering, University of New South Wales to make a
pocket computer capable of running the Linux Kernel.
PLEB support has yet to be fully integrated.
For more information, see:
http://www.cse.unsw.edu.au/~pleb/
Tifon
-----
More info has to come...
Contact: Peter Danielsson <peter.danielsson@era-t.ericsson.se>
Victor is known as a "digital talking book player" manufactured by
VisuAide, Inc. to be used by blind people.
For more information related to Victor, see:
http://www.visuaide.com/victor
Of course Victor is using Linux as its main operating system.
The Victor implementation for Linux is maintained by Nicolas Pitre:
nico@visuaide.com
nico@cam.org
For any comments, please feel free to contact me through the above
addresses.
Kernel initialisation parameters on ARM Linux
---------------------------------------------
The following document describes the kernel initialisation parameter
structure, otherwise known as 'struct param_struct' which is used
for most ARM Linux architectures.
This structure is used to pass initialisation parameters from the
kernel loader to the Linux kernel proper, and may be short lived
through the kernel initialisation process. As a general rule, it
should not be referenced outside of arch/arm/kernel/setup.c:setup_arch().
There are a lot of parameters listed in there, and they are described
below:
page_size
This parameter must be set to the page size of the machine, and
will be checked by the kernel.
nr_pages
This is the total number of pages of memory in the system. If
the memory is banked, then this should contain the total number
of pages in the system.
If the system contains separate VRAM, this value should not
include this information.
ramdisk_size
This is now obsolete, and should not be used.
flags
Various kernel flags, including:
bit 0 - 1 = mount root read only
bit 1 - unused
bit 2 - 0 = load ramdisk
bit 3 - 0 = prompt for ramdisk
rootdev
major/minor number pair of device to mount as the root filesystem.
video_num_cols
video_num_rows
These two together describe the character size of the dummy console,
or VGA console character size. They should not be used for any other
purpose.
It's generally a good idea to set these to be either standard VGA, or
the equivalent character size of your fbcon display. This then allows
all the bootup messages to be displayed correctly.
video_x
video_y
This describes the character position of cursor on VGA console, and
is otherwise unused. (should not used for other console types, and
should not be used for other purposes).
memc_control_reg
MEMC chip control register for Acorn Archimedes and Acorn A5000
based machines. May be used differently by different architectures.
sounddefault
Default sound setting on Acorn machines. May be used differently by
different architectures.
adfsdrives
Number of ADFS/MFM disks. May be used differently by different
architectures.
bytes_per_char_h
bytes_per_char_v
These are now obsolete, and should not be used.
pages_in_bank[4]
Number of pages in each bank of the systems memory (used for RiscPC).
This is intended to be used on systems where the physical memory
is non-contiguous from the processors point of view.
pages_in_vram
Number of pages in VRAM (used on Acorn RiscPC). This value may also
be used by loaders if the size of the video RAM can't be obtained
from the hardware.
initrd_start
initrd_size
This describes the kernel virtual start address and size of the
inital ramdisk.
rd_start
Start address in sectors of the ramdisk image on a floppy disk.
system_rev
system revision number.
system_serial_low
system_serial_high
system 64-bit serial number
paths[8][128]
These are now obsolete, and should not be used.
commandline
Kernel command line parameters. Details can be found elsewhere.
Empeg, Ltd's Empeg MP3 Car Audio Player
The initial design is to go in your car, but you can use it at home, on a
boat... almost anywhere. The principle is to store CD-quality music using
MPEG technology onto a hard disk in the unit, and use the power of the
embedded computer to serve up the music you want.
For more details, see:
http://www.empeg.com
Infra-red driver documentation.
Mike Crowe <mac@empeg.com>
(C) Empeg Ltd 1999
Not a lot here yet :-)
The Kenwood KCA-R6A remote control generates a sequence like the following:
Go low for approx 16T (Around 9000us)
Go high for approx 8T (Around 4000us)
Go low for less than 2T (Around 750us)
For each of the 32 bits
Go high for more than 2T (Around 1500us) == 1
Go high for less than T (Around 400us) == 0
Go low for less than 2T (Around 750us)
Rather than repeat a signal when the button is held down certain buttons
generate the following code to indicate repitition.
Go low for approx 16T
Go high for approx 4T
Go low for less than 2T
(By removing the <2T from the start of the sequence and placing at the end
it can be considered a stop bit but I found it easier to deal with it at
the start).
The 32 bits are encoded as XxYy where x and y are the actual data values
while X and Y are the logical inverses of the associated data values. Using
LSB first yields sensible codes for the numbers.
All codes are of the form b9xx
The numeric keys generate the code 0x where x is the number pressed.
Tuner 1c
Tape 1d
CD 1e
CD-MD-CH 1f
Track- 0a
Track+ 0b
Rewind 0c
FF 0d
DNPP 5e
Play/Pause 0e
Vol+ 14
Vol- 15
#!/bin/sh
mknod /dev/display c 244 0
mknod /dev/ir c 242 0
mknod /dev/usb0 c 243 0
mknod /dev/audio c 245 4
mknod /dev/dsp c 245 3
mknod /dev/mixer c 245 0
mknod /dev/empeg_state c 246 0
mknod /dev/radio0 c 81 64
ln -sf radio0 radio
ln -sf usb0 usb
...@@ -35,7 +35,7 @@ so far in the emulator. The file TODO contains a information on what ...@@ -35,7 +35,7 @@ so far in the emulator. The file TODO contains a information on what
remains to be done, and other ideas for the emulator. remains to be done, and other ideas for the emulator.
Bug reports, comments, suggestions should be directed to me at Bug reports, comments, suggestions should be directed to me at
<scottb@corelcomputer.com>. General reports of "this program doesn't <scottb@netwinder.com>. General reports of "this program doesn't
work correctly when your emulator is installed" are useful for work correctly when your emulator is installed" are useful for
determining that bugs still exist; but are virtually useless when determining that bugs still exist; but are virtually useless when
attempting to isolate the problem. Please report them, but don't attempting to isolate the problem. Please report them, but don't
...@@ -46,7 +46,7 @@ problem are a godsend. ...@@ -46,7 +46,7 @@ problem are a godsend.
Legal Notices Legal Notices
------------- -------------
The NetWinder Floating Point Emulator is free software. Everything Corel The NetWinder Floating Point Emulator is free software. Everything Rebel.com
has written is provided under the GNU GPL. See the file COPYING for copying has written is provided under the GNU GPL. See the file COPYING for copying
conditions. Excluded from the above is the SoftFloat code. John Hauser's conditions. Excluded from the above is the SoftFloat code. John Hauser's
legal notice for SoftFloat is included below. legal notice for SoftFloat is included below.
......
...@@ -139,10 +139,10 @@ be implemented in future versions. ...@@ -139,10 +139,10 @@ be implemented in future versions.
Signalling: Signalling:
Signals are implemented. However current ELF kernels produced by Corel Signals are implemented. However current ELF kernels produced by Rebel.com
Computer have a bug in them that prevents the module from generating a have a bug in them that prevents the module from generating a SIGFPE. This
SIGFPE. This is caused by a failure to alias fp_current to the kernel is caused by a failure to alias fp_current to the kernel variable
variable current_set[0] correctly. current_set[0] correctly.
The kernel provided with this distribution (vmlinux-nwfpe-0.93) contains The kernel provided with this distribution (vmlinux-nwfpe-0.93) contains
a fix for this problem and also incorporates the current version of the a fix for this problem and also incorporates the current version of the
......
...@@ -12,91 +12,101 @@ ...@@ -12,91 +12,101 @@
# #
# Copyright (C) 1995-1999 by Russell King # Copyright (C) 1995-1999 by Russell King
# GCC 2.7 uses different options to later compilers; sort out which we have LD := $(CROSS_COMPILE)ld
CONFIG_GCC_NEW := $(shell if $(CC) --version 2>&1 | grep '^2\.7' > /dev/null; then echo n; else echo y; fi) OBJCOPY := $(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
CPP := $(CC) -E
PERL := perl
LINKFLAGS := -X -T arch/arm/vmlinux.lds
ARCHCC := $(word 1,$(CC))
CFLAGS_PIPE := -pipe
CFLAGS := $(CFLAGS) $(CFLAGS_PIPE)
ifdef CONFIG_FRAME_POINTER
CFLAGS := $(CFLAGS:-fomit-frame-pointer=)
endif
ifdef CONFIG_DEBUG_INFO
CFLAGS += -g
endif
# See if this is ld "2.9.4" or later
NEW_LINKER := $(shell if $(LD) --gc-sections --version >/dev/null 2>&1; then echo y; else echo n; fi)
# CFLAGS_PROC - processor dependent CFLAGS # GCC 2.7 uses different options to later compilers; sort out which we have
# PROCESSOR - processor type NEW_GCC := $(shell if $(CC) --version 2>&1 | grep '^2\.7' > /dev/null; then echo n; else echo y; fi)
# TEXTADDR - Uncompressed kernel link text address
# ZTEXTADDR - Compressed kernel link text address
# ZRELADDR - Compressed kernel relocating address
# (point at which uncompressed kernel is loaded).
# #
# select flags depending on the compiler # select flags depending on the compiler
# #
ifeq ($(CONFIG_GCC_NEW),y) ifeq ($(NEW_GCC),y)
CFLAGS_PROC := -mshort-load-bytes -msoft-float CFLAGS += -mshort-load-bytes -msoft-float
CFLAGS_PROC_CPU_26 := -mcpu=arm3 -Os CFLAGS_PROC_CPU_26 := -mcpu=arm3 -Os
CFLAGS_PROC_CPU_32v3 := -march=armv3 CFLAGS_PROC_CPU_32v3 := -march=armv3
CFLAGS_PROC_CPU_32v4 := -march=armv4 CFLAGS_PROC_CPU_32v4 := -march=armv4
CFLAGS_ARM6 := -mtune=arm6 CFLAGS_ARM6 := -mtune=arm6
CFLAGS_ARM7 := -mtune=arm7 CFLAGS_ARM7 := -mtune=arm7
CFLAGS_SA110 := -mtune=strongarm110 CFLAGS_SA110 := -mtune=strongarm110
else else
CFLAGS_PROC := CFLAGS_PROC_CPU_26 := -m3
CFLAGS_PROC_CPU_26 := -m3 CFLAGS_PROC_CPU_32v3 :=
CFLAGS_PROC_CPU_32v3 := CFLAGS_PROC_CPU_32v4 :=
CFLAGS_PROC_CPU_32v4 := CFLAGS_ARM6 := -m6
CFLAGS_ARM6 := -m6 CFLAGS_ARM7 := -m6
CFLAGS_ARM7 := -m6 CFLAGS_SA110 := -m6
CFLAGS_SA110 := -m6
endif endif
# See if this is ld "2.9.4" or later
NEW_LINKER := $(shell if $(LD) --gc-sections --version >/dev/null 2>&1; then echo y; else echo n; fi)
ifeq ($(NEW_LINKER),y) ifeq ($(NEW_LINKER),y)
ASFLAGS_PROC := -mno-fpu AFLAGS += -mno-fpu
ASFLAGS_PROC_CPU_26 := -mapcs-26 AFLAGS_PROC_CPU_26 := -mapcs-26
ASFLAGS_PROC_CPU_32v3 := -mapcs-32 -marmv3m AFLAGS_PROC_CPU_32v3 := -mapcs-32 -marmv3m
ASFLAGS_PROC_CPU_32v4 := -mapcs-32 -marmv4t AFLAGS_PROC_CPU_32v4 := -mapcs-32 -marmv4t
LINKFLAGS := -p LINKFLAGS := -p $(LINKFLAGS)
else else
ASFLAGS_PROC := AFLAGS_PROC_CPU_26 := -m3
ASFLAGS_PROC_CPU_26 := -m3 AFLAGS_PROC_CPU_32v3 := -m6
ASFLAGS_PROC_CPU_32v3 := -m6 AFLAGS_PROC_CPU_32v4 := -m6
ASFLAGS_PROC_CPU_32v4 := -m6
LINKFLAGS :=
endif endif
#
# Select CPU dependent flags
#
ifeq ($(CONFIG_CPU_26),y) ifeq ($(CONFIG_CPU_26),y)
PROCESSOR = armo PROCESSOR = armo
TEXTADDR = 0x02080000 TEXTADDR = 0x02080000
ZTEXTADDR = 0x01800000 CFLAGS += $(CFLAGS_PROC_CPU_26)
ZRELADDR = 0x02080000 AFLAGS += $(AFLAGS_PROC_CPU_26)
CFLAGS_PROC += $(CFLAGS_PROC_CPU_26)
ASFLAGS_PROC += $(ASFLAGS_PROC_CPU_26)
endif endif
ifeq ($(CONFIG_CPU_32),y) ifeq ($(CONFIG_CPU_32),y)
PROCESSOR = armv PROCESSOR = armv
TEXTADDR = 0xC0008000 TEXTADDR = 0xC0008000
ifeq ($(CONFIG_CPU_32v4),y) ifeq ($(CONFIG_CPU_32v4),y)
CFLAGS_PROC += $(CFLAGS_PROC_CPU_32v4) CFLAGS += $(CFLAGS_PROC_CPU_32v4)
ASFLAGS_PROC += $(ASFLAGS_PROC_CPU_32v4) AFLAGS += $(AFLAGS_PROC_CPU_32v4)
else else
CFLAGS_PROC += $(CFLAGS_PROC_CPU_32v3) CFLAGS += $(CFLAGS_PROC_CPU_32v3)
ASFLAGS_PROC += $(ASFLAGS_PROC_CPU_32v3) AFLAGS += $(AFLAGS_PROC_CPU_32v3)
endif endif
# #
# Exactly one of the following must be selected # Exactly one of the following must be selected
# #
ifeq ($(CONFIG_CPU_ARM6),y) ifeq ($(CONFIG_CPU_ARM6),y)
CFLAGS_PROC += $(CFLAGS_ARM6) CFLAGS += $(CFLAGS_ARM6)
else else
ifeq ($(CONFIG_CPU_ARM7),y) ifeq ($(CONFIG_CPU_ARM7),y)
CFLAGS_PROC += $(CFLAGS_ARM7) CFLAGS += $(CFLAGS_ARM7)
else else
ifeq ($(CONFIG_CPU_SA110),y) ifeq ($(CONFIG_CPU_SA110),y)
CFLAGS_PROC += $(CFLAGS_SA110) CFLAGS += $(CFLAGS_SA110)
endif endif
endif endif
endif endif
endif endif
GCCLIB := $(shell $(CC) $(CFLAGS) --print-libgcc-file-name)
COMPRESSED_HEAD = head.o
ifeq ($(CONFIG_ARCH_A5K),y) ifeq ($(CONFIG_ARCH_A5K),y)
MACHINE = a5k MACHINE = a5k
...@@ -111,22 +121,16 @@ endif ...@@ -111,22 +121,16 @@ endif
ifeq ($(CONFIG_ARCH_RPC),y) ifeq ($(CONFIG_ARCH_RPC),y)
MACHINE = rpc MACHINE = rpc
ARCHDIR = rpc ARCHDIR = rpc
ZTEXTADDR = 0x10008000
ZRELADDR = 0x10008000
endif endif
ifeq ($(CONFIG_ARCH_EBSA110),y) ifeq ($(CONFIG_ARCH_EBSA110),y)
MACHINE = ebsa110 MACHINE = ebsa110
ARCHDIR = ebsa110 ARCHDIR = ebsa110
ZTEXTADDR = 0x00008000
ZRELADDR = 0x00008000
endif endif
ifeq ($(CONFIG_FOOTBRIDGE),y) ifeq ($(CONFIG_FOOTBRIDGE),y)
MACHINE = footbridge MACHINE = footbridge
ARCHDIR = ebsa285 ARCHDIR = ebsa285
ZTEXTADDR = 0x00008000
ZRELADDR = 0x00008000
endif endif
ifeq ($(CONFIG_ARCH_CO285),y) ifeq ($(CONFIG_ARCH_CO285),y)
...@@ -136,56 +140,31 @@ endif ...@@ -136,56 +140,31 @@ endif
ifeq ($(CONFIG_ARCH_NEXUSPCI),y) ifeq ($(CONFIG_ARCH_NEXUSPCI),y)
MACHINE = nexuspci MACHINE = nexuspci
ARCHDIR = nexuspci ARCHDIR = nexuspci
ZTEXTADDR = 0x40200000
ZRELADDR = 0x40008000
COMPRESSED_EXTRA = $(TOPDIR)/arch/arm/lib/ll_char_wr_scc.o
COMPRESSED_HEAD = head-nexuspci.o
endif endif
ifeq ($(CONFIG_ARCH_SA1100),u)
MACHINE = sa1100
PERL = perl ARCHDIR = sa1100
LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
OBJDUMP = $(CROSS_COMPILE)objdump
CPP = $(CC) -E
ARCHCC := $(word 1,$(CC))
GCCLIB := `$(CC) $(CFLAGS_PROC) --print-libgcc-file-name`
HOSTCFLAGS := $(CFLAGS:-fomit-frame-pointer=)
ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS := $(CFLAGS:-fomit-frame-pointer=)
endif
CFLAGS := $(CFLAGS_PROC) $(CFLAGS) -pipe
ASFLAGS := $(ASFLAGS_PROC) $(ASFLAGS)
LINKFLAGS += -X -T $(TOPDIR)/arch/arm/vmlinux-$(PROCESSOR).lds -e stext
ZLINKFLAGS = -Ttext $(ZTEXTADDR)
# If we're intending to debug the kernel, make sure it has line number
# information. This gets stripped out when building (z)Image so it doesn't
# add anything to the footprint of the running kernel.
ifeq ($(CONFIG_DEBUG_INFO),y)
CFLAGS += -g
endif endif
HEAD := arch/arm/kernel/head-$(PROCESSOR).o \ HEAD := arch/arm/kernel/head-$(PROCESSOR).o \
arch/arm/kernel/init_task.o arch/arm/kernel/init_task.o
SUBDIRS := arch/arm/special $(SUBDIRS) arch/arm/lib arch/arm/kernel \ SUBDIRS += arch/arm/kernel arch/arm/mm arch/arm/lib \
arch/arm/mm arch/arm/nwfpe arch/arm/special arch/arm/nwfpe
CORE_FILES := arch/arm/kernel/kernel.o arch/arm/mm/mm.o $(CORE_FILES) CORE_FILES := arch/arm/kernel/kernel.o arch/arm/mm/mm.o $(CORE_FILES)
LIBS := arch/arm/lib/lib.a $(LIBS) $(GCCLIB) LIBS := arch/arm/lib/lib.a $(LIBS) $(GCCLIB)
DRIVERS += arch/arm/special/special.a DRIVERS += arch/arm/special/special.a
ifeq ($(CONFIG_ARCH_ACORN),y) ifeq ($(CONFIG_NWFPE),y)
SUBDIRS += drivers/acorn/block drivers/acorn/char drivers/acorn/net \ CORE_FILES += arch/arm/nwfpe/math-emu.o
drivers/acorn/scsi
DRIVERS += drivers/acorn/block/acorn-block.a \
drivers/acorn/char/acorn-char.a \
drivers/acorn/net/acorn-net.a \
drivers/acorn/scsi/acorn-scsi.a
endif endif
ifeq ($(CONFIG_NWFPE),y) ifeq ($(CONFIG_ARCH_ACORN),y)
DRIVERS += arch/arm/nwfpe/math-emu.a SUBDIRS += drivers/acorn
DRIVERS += drivers/acorn/block/acorn-block.a
DRIVERS += drivers/acorn/char/acorn-char.a
DRIVERS += drivers/acorn/net/acorn-net.a
DRIVERS += drivers/acorn/scsi/acorn-scsi.a
endif endif
MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
...@@ -203,14 +182,9 @@ archsymlinks: ...@@ -203,14 +182,9 @@ archsymlinks:
$(RM) include/asm-arm/arch include/asm-arm/proc $(RM) include/asm-arm/arch include/asm-arm/proc
(cd include/asm-arm; ln -sf arch-$(ARCHDIR) arch; ln -sf proc-$(PROCESSOR) proc) (cd include/asm-arm; ln -sf arch-$(ARCHDIR) arch; ln -sf proc-$(PROCESSOR) proc)
# We need to rebuild the linker script vmlinux: arch/arm/vmlinux.lds
# each time, in case the architecture has
# changed.
.PHONY: arch/arm/vmlinux-$(PROCESSOR).lds
vmlinux: arch/arm/vmlinux-$(PROCESSOR).lds
arch/arm/vmlinux-$(PROCESSOR).lds: $(TOPDIR)/arch/arm/vmlinux-$(PROCESSOR).lds.in arch/arm/vmlinux.lds: arch/arm/vmlinux-$(PROCESSOR).lds.in dummy
@sed 's/TEXTADDR/$(TEXTADDR)/' <$< >$@ @sed 's/TEXTADDR/$(TEXTADDR)/' <$< >$@
arch/arm/kernel: dummy arch/arm/kernel: dummy
...@@ -225,15 +199,13 @@ arch/arm/lib: dummy ...@@ -225,15 +199,13 @@ arch/arm/lib: dummy
zImage zinstall Image install: vmlinux zImage zinstall Image install: vmlinux
@$(MAKEBOOT) $@ @$(MAKEBOOT) $@
# Once we've finished integrating the sources, the @$(MAKE) will disappear
archmrproper: archmrproper:
rm -f include/asm-arm/arch include/asm-arm/proc
@$(MAKE) -C arch/$(ARCH)/special mrproper @$(MAKE) -C arch/$(ARCH)/special mrproper
rm -f $(TOPDIR)/arch/arm/vmlinux-*.lds $(RM) include/asm-arm/arch include/asm-arm/proc
archclean: archclean:
@$(MAKEBOOT) clean @$(MAKEBOOT) clean
$(RM) arch/arm/lib/constants.h $(RM) arch/arm/lib/constants.h arch/arm/vmlinux.lds
archdep: archdep:
@$(MAKEBOOT) dep @$(MAKEBOOT) dep
...@@ -244,6 +216,10 @@ Img:; @$(MAKEBOOT) Image ...@@ -244,6 +216,10 @@ Img:; @$(MAKEBOOT) Image
i:; @$(MAKEBOOT) install i:; @$(MAKEBOOT) install
zi:; @$(MAKEBOOT) zinstall zi:; @$(MAKEBOOT) zinstall
#
# Configuration targets. Use these to select a
# configuration for your architecture
#
a5k_config: a5k_config:
$(RM) arch/arm/defconfig $(RM) arch/arm/defconfig
cp arch/arm/def-configs/a5k arch/arm/defconfig cp arch/arm/def-configs/a5k arch/arm/defconfig
...@@ -260,3 +236,16 @@ rpc_config: ...@@ -260,3 +236,16 @@ rpc_config:
$(RM) arch/arm/defconfig $(RM) arch/arm/defconfig
cp arch/arm/def-configs/rpc arch/arm/defconfig cp arch/arm/def-configs/rpc arch/arm/defconfig
brutus_config:
$(RM) arch/arm/defconfig
cp arch/arm/def-configs/brutus arch/arm/defconfig
victor_config:
$(RM) arch/arm/defconfig
cp arch/arm/def-configs/victor arch/arm/defconfig
empeg_config:
$(RM) arch/arm/defconfig
cp arch/arm/def-configs/empeg arch/arm/defconfig
...@@ -2,47 +2,97 @@ ...@@ -2,47 +2,97 @@
# linux/arch/arm/boot/compressed/Makefile # linux/arch/arm/boot/compressed/Makefile
# #
# create a compressed vmlinuz image from the original vmlinux # create a compressed vmlinuz image from the original vmlinux
#
# With this config, max compressed image size = 640k
# Uncompressed image size = 1.3M (text+data)
SYSTEM =$(TOPDIR)/vmlinux HEAD = head.o
HEAD =$(COMPRESSED_HEAD) OBJS = misc.o
OBJS =$(HEAD) misc.o $(COMPRESSED_EXTRA) SYSTEM = $(TOPDIR)/vmlinux
CFLAGS =-O2 -DSTDC_HEADERS $(CFLAGS_PROC) CFLAGS = -O2 -DSTDC_HEADERS $(CFLAGS_PROC)
ARFLAGS =rc FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c
FONTC =$(TOPDIR)/drivers/video/font_acorn_8x8.c ZLDFLAGS = -X -T vmlinux.lds
#
# Architecture dependencies
#
ifeq ($(CONFIG_ARCH_ACORN),y) ifeq ($(CONFIG_ARCH_ACORN),y)
OBJS += ll_char_wr.o font.o OBJS += ll_char_wr.o font.o
endif
ifeq ($(CONFIG_CPU_26),y)
ZTEXTADDR = 0x02080000
endif
ifeq ($(CONFIG_ARCH_RPC),y)
ZTEXTADDR = 0x10008000
endif
ifeq ($(CONFIG_ARCH_EBSA110),y)
ZTEXTADDR = 0x00008000
endif
ifeq ($(CONFIG_FOOTBRIDGE),y)
ZTEXTADDR = 0x00008000
endif
ifeq ($(CONFIG_ARCH_NETWINDER),y)
OBJS += head-netwinder.o
endif endif
ifeq ($(NEW_LINKER),y) ifeq ($(CONFIG_ARCH_NEXUSPCI),y)
BINFMT := elf32-littlearm HEAD = head-nexuspci.o
OBJS += $(TOPDIR)/arch/arm/lib/ll_char_wr_scc.o
ZTEXTADDR = 0x40200000
ZRELADDR = 0x40008000
endif
ifeq ($(CONFIG_ARCH_SA110),y)
ifeq ($(CONFIG_SA1100_VICTOR),y)
HEAD = head-victor.o
ZTEXTADDR = 0x00002000
ZBSSADDR = 0xc0100000
else else
BINFMT := elf32-arm ZTEXTADDR = 0xc0008000
endif
ZRELADDR = 0xc0008000
endif
#
# If you don't define ZRELADDR above,
# then it defaults to ZTEXTADDR
#
ifeq ($(ZRELADDR),)
ZRELADDR = $(ZTEXTADDR)
endif endif
SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;
ifneq ($(ZBSSADDR),)
SEDFLAGS += s/BSS_START/$(ZBSSADDR)/
else
SEDFLAGS += s/BSS_START/ALIGN(4)/
endif
all: vmlinux all: vmlinux
vmlinux: $(OBJS) piggy.o vmlinux: $(HEAD) $(OBJS) piggy.o vmlinux.lds
$(LD) $(ZLINKFLAGS) -o vmlinux $(OBJS) piggy.o $(LD) $(ZLDFLAGS) $(HEAD) $(OBJS) piggy.o $(GCCLIB) -o vmlinux
$(HEAD): $(HEAD:.o=.S) $(HEAD): $(HEAD:.o=.S)
$(CC) -traditional -DLOADADDR=$(ZRELADDR) -c $(HEAD:.o=.S) $(CC) -traditional -c $(HEAD:.o=.S)
piggy.o: $(SYSTEM) piggy.o: $(SYSTEM)
tmppiggy=_tmp_$$$$piggy; \ $(OBJCOPY) $(SYSTEM) piggy
rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk; \ gzip -9 < piggy > piggy.gz
$(OBJCOPY) $(SYSTEM) $$tmppiggy; \ $(LD) -r -o $@ -b binary piggy.gz
gzip -f -9 < $$tmppiggy > $$tmppiggy.gz; \ rm -f piggy piggy.gz
echo "SECTIONS { .data : { input_len = .; LONG(input_data_end - input_data) input_data = .; *(.data) input_data_end = .; }}" > $$tmppiggy.lnk; \
$(LD) -r -o piggy.o -b binary $$tmppiggy.gz -b $(BINFMT) -T $$tmppiggy.lnk; \
rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk;
font.o: $(FONTC) font.o: $(FONTC)
$(CC) -Dstatic= -c -o $@ $(FONTC) $(CC) -Dstatic= -c -o $@ $(FONTC)
clean:; rm -f vmlinux core vmlinux.lds: vmlinux.lds.in
@sed "$(SEDFLAGS)" < vmlinux.lds.in > $@
clean:; rm -f vmlinux core piggy*
.PHONY: vmlinux.lds clean
misc.o: misc.c $(TOPDIR)/include/asm/arch/uncompress.h $(TOPDIR)/lib/inflate.c
.section ".start", #alloc, #execinstr
adr r2, 1f
ldmdb r2, {r7, r8}
and r3, r2, #0xc000
teq r3, #0x8000
beq 2f
bic r3, r2, #0xc000
orr r3, r3, #0x8000
mov r0, r3
mov r4, #64
sub r5, r8, r7
b 1f
.word _start
.word __bss_start
1:
.rept 4
ldmia r2!, {r6, r7, r8, r9}
stmia r3!, {r6, r7, r8, r9}
.endr
subs r4, r4, #64
bcs 1b
movs r4, r5
mov r5, #0
movne pc, r0
mov r0, #0
2:
/*
* linux/arch/arm/boot/compressed/head-victor.S
*
* Copyright (C) 1998 Nicolas Pitre <nico@visuaide.com>
*/
#include <linux/linkage.h>
.text
.globl _start
_start:
@ just in case we still use an a.out loader...
nop
nop
nop
nop
nop
nop
nop
nop
@ load different addresses
adr r2, LC0
ldmia r2, {r4, r5, r6, sp}
@ clear BSS
mov r2, #0
1: str r2, [r5], #4
cmp r5, r6
blt 1b
@ uncompress the kernel
mov r8, r0 @ save cmdline ptr
mov r0, r4 @ where to put uncompressed data
add r1, r6, #31
bic r1, r1, #31 @ free memory space
add r2, r1, #65536 @ end of free mem space
bl SYMBOL_NAME(decompress_kernel)
mov r0, r8 @ retrieve cmdline ptr
mov pc, r4 @ call via EXEC entry
LC0: .word _load_addr
.word __bss_start
.word SYMBOL_NAME(_end)
.word SYMBOL_NAME(user_stack)+4096
/* /*
* linux/arch/arm/boot/compressed/head.S * linux/arch/arm/boot/compressed/head.S
* *
* Copyright (C) 1996,1997,1998 Russell King * Copyright (C) 1996-1999 Russell King
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
.text .section ".start", #alloc, #execinstr
/* /*
* sort out different calling conventions * sort out different calling conventions
*/ */
.align .align
.globl _start start:
_start: .type start,#function
start: mov r0, r0 .rept 8
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0 mov r0, r0
.endr
b 1f b 1f
.word 0x016f2818 @ Magic numbers to help the loader .word 0x016f2818 @ Magic numbers to help the loader
.word _start .word start
1:
/*
* some architecture specific code can
* be inserted by the linker here
*/
.text
1: teq r0, #0 1: teq r0, #0
beq 2f bne 1b
mov r4, #0x02000000 mov r7, r1 @ save architecture ID
add r4, r4, #0x7C000 mrc p15, 0, r6, c0, c0 @ get processor ID
mov r3, #0x4000 adr r2, LC0
sub r3, r3, #4 ldmia r2, {r2, r3, r4, r5, sp}
1: ldmia r0!, {r5 - r12}
stmia r4!, {r5 - r12} mov r0, #0
subs r3, r3, #32 1: str r0, [r2], #4 @ clear bss
bpl 1b str r0, [r2], #4
2: adr r2, LC0 str r0, [r2], #4
ldmia r2, {r2, r3, r4, r5, r6, sp} str r0, [r2], #4
add r2, r2, #3
add r3, r3, #3
add sp, sp, #3
bic r2, r2, #3
bic r3, r3, #3
bic sp, sp, #3
adr r7, start
sub r6, r7, r6
/*
* Relocate pointers
*/
add r2, r2, r6
add r3, r3, r6
add r5, r5, r6
add sp, sp, r6
/*
* Clear zero-init
*/
mov r6, #0
1: str r6, [r2], #4
cmp r2, r3 cmp r2, r3
blt 1b blt 1b
str r1, [r5] @ save architecture
/* mov r1, sp @ malloc space above stack
* Uncompress the kernel add r2, sp, #0x10000 @ 64k max
*/
mov r1, #0x8000 teq r4, r5 @ will we overwrite ourselves?
add r3, r2, r1, lsl #1 @ Add 64k for malloc moveq r5, r2
sub r1, r1, #1 movne r5, r4
add r3, r3, r1
bic r5, r3, r1 @ decompress kernel to after end of the compressed
mov r0, r5 mov r0, r5
mov r1, r2 mov r3, r7
mov r2, r0
bl SYMBOL_NAME(decompress_kernel) bl SYMBOL_NAME(decompress_kernel)
add r0, r0, #7
bic r2, r0, #7 teq r4, r5 @ do we need to relocate
beq call_kernel @ the kernel?
add r0, r0, #127
bic r0, r0, #127 @ align the kernel length
/* /*
* Now move the kernel to the correct location (r5 -> r4, len r0) * r0 = decompressed kernel length
* r1-r3 = unused
* r4 = kernel execution address
* r5 = decompressed kernel start
* r6 = processor ID
* r7 = architecture ID
* r8-r14 = unused
*/ */
mov r0, r4 @ r0 = start of real kernel add r1, r5, r0 @ end of decompressed kernel
mov r1, r5 @ r1 = start of kernel image adr r2, reloc_start
add r3, r5, r2 @ r3 = end of kernel adr r3, reloc_end
adr r4, movecode 1: ldmia r2!, {r8 - r13} @ copy relocation code
adr r5, movecodeend stmia r1!, {r8 - r13}
1: ldmia r4!, {r6 - r12, lr} ldmia r2!, {r8 - r13}
stmia r3!, {r6 - r12, lr} stmia r1!, {r8 - r13}
cmp r4, r5 cmp r2, r3
blt 1b blt 1b
mrc p15, 0, r5, c0, c0
eor r5, r5, #0x44 << 24 eor r1, r6, #0x44 << 24 @ SA-110?
eor r5, r5, #0x01 << 16 eor r1, r1, #0x01 << 16
eor r5, r5, #0xa1 << 8 eor r1, r1, #0xa1 << 8
movs r5, r5, lsr #4 movs r1, r1, lsr #4
mov r5, #0 mcreq p15, 0, r1, c7, c7, 0 @ flush I & D-cache
mcreq p15, 0, r5, c7, c5, 0 @ flush I cache mcreq p15, 0, r1, c7, c10, 4 @ drain WB
ldr r5, LC0 + 12 @ get architecture add pc, r5, r0 @ call relocation code
ldr r5, [r5]
add pc, r1, r2 @ Call move code
/* /*
* r0 = length, r1 = to, r2 = from * r0 = decompressed kernel length
* r1-r3 = unused
* r4 = kernel execution address
* r5 = decompressed kernel start
* r6 = processor ID
* r7 = architecture ID
* r8-r14 = unused
*/ */
movecode: add r3, r1, r2 reloc_start: add r8, r5, r0
mov r4, r0 #if 0
1: ldmia r1!, {r6 - r12, lr} mov r0, r6
stmia r0!, {r6 - r12, lr} mov r1, #8
cmp r1, r3 bl phex
mov r0, #':'
bl putc
mov r0, r5
mov r1, #8
bl phex
mov r0, #'-'
bl putc
mov r0, r8
mov r1, #8
bl phex
mov r0, #'>'
bl putc
mov r0, r4
mov r1, #8
bl phex
mov r0, #'\n'
bl putc
#endif
mov r0, r8
mov r1, r4
1:
.rept 4
ldmia r5!, {r2, r3, r8 - r13} @ relocate kernel
stmia r1!, {r2, r3, r8 - r13}
.endr
cmp r5, r0
blt 1b blt 1b
mrc p15, 0, r0, c0, c0 #if 0
eor r0, r0, #0x44 << 24 mov r8, r0
mov r0, r5
mov r1, #8
bl phex
mov r0, #'-'
bl putc
mov r0, r8
mov r1, #8
bl phex
mov r0, #'\n'
bl putc
mov r0, r4
bl memdump
#endif
eor r0, r6, #0x44 << 24 @ SA-110?
eor r0, r0, #0x01 << 16 eor r0, r0, #0x01 << 16
eor r0, r0, #0xa1 << 8 eor r0, r0, #0xa1 << 8
movs r0, r0, lsr #4 movs r0, r0, lsr #4
mcreq p15, 0, r0, c7, c7, 0 @ flush I cache
mcreq p15, 0, r1, c7, c10, 4 @ drain WB
call_kernel: mov r0, #0
mov r1, r7 @ restore architecture number
mov pc, r4 @ call kernel
phexbuf: .space 12
phex: adr r3, phexbuf
mov r2, #0
strb r2, [r3, r1]
1: subs r1, r1, #1
movmi r0, r3
bmi puts
and r2, r0, #15
mov r0, r0, lsr #4
cmp r2, #10
addge r2, r2, #7
add r2, r2, #'0'
strb r2, [r3, r1]
b 1b
puts: mov r3, #0x7c000000
1: ldrb r2, [r0], #1
teq r2, #0
moveq pc, lr
2: strb r2, [r3, #0x3f8]
mov r1, #0x00020000
3: subs r1, r1, #1
bne 3b
teq r2, #'\n'
moveq r2, #'\r'
beq 2b
teq r0, #0
bne 1b
mov pc, lr
putc:
mov r2, r0
mov r0, #0 mov r0, #0
mcreq p15, 0, r0, c7, c5, 0 @ flush I cache mov r3, #0x7c000000
mov r1, r5 @ call kernel correctly b 2b
mov pc, r4 @ call via EXEC entry
movecodeend:
LC0: .word SYMBOL_NAME(_edata)
.word SYMBOL_NAME(_end)
.word LOADADDR
.word SYMBOL_NAME(architecture)
.word start
.word SYMBOL_NAME(user_stack)+4096
.align
.bss memdump: mov r12, r0
SYMBOL_NAME(architecture): mov r10, lr
.space 4 mov r1, #8
bl phex
mov r0, #'\n'
bl putc
mov r11, #0
2: mov r0, r11, lsl #2
mov r1, #4
bl phex
mov r0, #':'
bl putc
1: mov r0, #' '
bl putc
ldr r0, [r12, r11, lsl #2]
mov r1, #8
bl phex
and r0, r11, #7
teq r0, #3
moveq r0, #' '
bleq putc
and r0, r11, #7
add r11, r11, #1
teq r0, #7
bne 1b
mov r0, #'\n'
bl putc
cmp r11, #64
blt 2b
mov pc, r10
reloc_end:
LC0: .word __bss_start
.word _end
.word _load_addr
.word _start
.word user_stack+4096
.align .align
.section ".stack"
user_stack: .space 4096
...@@ -7,8 +7,17 @@ ...@@ -7,8 +7,17 @@
* malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994 * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
* *
* Modified for ARM Linux by Russell King * Modified for ARM Linux by Russell King
*
* Nicolas Pitre <nico@visuaide.com> 1999/04/14 :
* For this code to run directly from Flash, all constant variables must
* be marked with 'const' and all other variables initialized at run-time
* only. This way all non constant variables will end up in the bss segment,
* which should point to addresses in RAM and cleared to 0 on start.
* This allows for a much quicker boot time.
*/ */
unsigned int __machine_arch_type;
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/arch/uncompress.h> #include <asm/arch/uncompress.h>
#include <asm/proc/uncompress.h> #include <asm/proc/uncompress.h>
...@@ -22,7 +31,7 @@ ...@@ -22,7 +31,7 @@
/* /*
* Optimised C version of memzero for the ARM. * Optimised C version of memzero for the ARM.
*/ */
extern __inline__ __ptr_t __memzero (__ptr_t s, size_t n) void __memzero (__ptr_t s, size_t n)
{ {
union { void *vp; unsigned long *ulp; unsigned char *ucp; } u; union { void *vp; unsigned long *ulp; unsigned char *ucp; } u;
int i; int i;
...@@ -62,11 +71,8 @@ extern __inline__ __ptr_t __memzero (__ptr_t s, size_t n) ...@@ -62,11 +71,8 @@ extern __inline__ __ptr_t __memzero (__ptr_t s, size_t n)
if (n & 1) if (n & 1)
*u.ucp++ = 0; *u.ucp++ = 0;
return s;
} }
#define memzero(s,n) __memzero(s,n)
extern __inline__ __ptr_t memcpy(__ptr_t __dest, __const __ptr_t __src, extern __inline__ __ptr_t memcpy(__ptr_t __dest, __const __ptr_t __src,
size_t __n) size_t __n)
{ {
...@@ -157,11 +163,11 @@ static void gzip_mark(void **); ...@@ -157,11 +163,11 @@ static void gzip_mark(void **);
static void gzip_release(void **); static void gzip_release(void **);
extern char input_data[]; extern char input_data[];
extern int input_len; extern char input_data_end[];
static uch *output_data; static uch *output_data;
static ulg output_ptr; static ulg output_ptr;
static ulg bytes_out = 0; static ulg bytes_out;
static void *malloc(int size); static void *malloc(int size);
static void free(void *where); static void free(void *where);
...@@ -226,13 +232,14 @@ static void gzip_release(void **ptr) ...@@ -226,13 +232,14 @@ static void gzip_release(void **ptr)
* Fill the input buffer. This is called only when the buffer is empty * Fill the input buffer. This is called only when the buffer is empty
* and at least one byte is really needed. * and at least one byte is really needed.
*/ */
int fill_inbuf() int fill_inbuf(void)
{ {
if (insize != 0) if (insize != 0)
error("ran out of input data\n"); error("ran out of input data\n");
inbuf = input_data; inbuf = input_data;
insize = input_len; insize = &input_data_end[0] - &input_data[0];
inptr = 1; inptr = 1;
return inbuf[0]; return inbuf[0];
} }
...@@ -241,7 +248,7 @@ int fill_inbuf() ...@@ -241,7 +248,7 @@ int fill_inbuf()
* Write the output window window[0..outcnt-1] and update crc and bytes_out. * Write the output window window[0..outcnt-1] and update crc and bytes_out.
* (Used for the decompressed data only.) * (Used for the decompressed data only.)
*/ */
void flush_window() void flush_window(void)
{ {
ulg c = crc; ulg c = crc;
unsigned n; unsigned n;
...@@ -257,6 +264,7 @@ void flush_window() ...@@ -257,6 +264,7 @@ void flush_window()
bytes_out += (ulg)outcnt; bytes_out += (ulg)outcnt;
output_ptr += (ulg)outcnt; output_ptr += (ulg)outcnt;
outcnt = 0; outcnt = 0;
puts(".");
} }
static void error(char *x) static void error(char *x)
...@@ -270,21 +278,19 @@ static void error(char *x) ...@@ -270,21 +278,19 @@ static void error(char *x)
while(1); /* Halt */ while(1); /* Halt */
} }
#define STACK_SIZE (4096)
ulg user_stack [STACK_SIZE];
#ifndef STANDALONE_DEBUG #ifndef STANDALONE_DEBUG
ulg decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p) ulg
decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p,
int arch_id)
{ {
free_mem_ptr = free_mem_ptr_p; output_data = (uch *)output_start; /* Points to kernel start */
free_mem_ptr_end = free_mem_ptr_end_p; free_mem_ptr = free_mem_ptr_p;
free_mem_ptr_end = free_mem_ptr_end_p;
proc_decomp_setup (); __machine_arch_type = arch_id;
arch_decomp_setup ();
output_data = (uch *)output_start; /* Points to kernel start */ proc_decomp_setup();
arch_decomp_setup();
makecrc(); makecrc();
puts("Uncompressing Linux..."); puts("Uncompressing Linux...");
......
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
. = LOAD_ADDR;
_load_addr = .;
. = TEXT_START;
_text = .;
.text : {
_start = .;
head.o(.start)
*(.start)
head.o(.text)
*(.text)
*(.fixup)
*(.gnu.warning)
input_data = .;
piggy.o
input_data_end = .;
. = ALIGN(4);
}
_etext = .;
.data : {
*(.data)
}
_edata = .;
. = BSS_START;
__bss_start = .;
.bss : {
*(.bss)
}
_end = .;
.stack : {
*(.stack)
}
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
}
...@@ -20,7 +20,7 @@ choice 'ARM system type' \ ...@@ -20,7 +20,7 @@ choice 'ARM system type' \
RiscPC CONFIG_ARCH_RPC \ RiscPC CONFIG_ARCH_RPC \
EBSA-110 CONFIG_ARCH_EBSA110 \ EBSA-110 CONFIG_ARCH_EBSA110 \
FootBridge-based CONFIG_FOOTBRIDGE" RiscPC FootBridge-based CONFIG_FOOTBRIDGE" RiscPC
# SA1100-based CONFIG_ARCH_SA1100
if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
bool 'FootBridge in HOST mode' CONFIG_HOST_FOOTBRIDGE bool 'FootBridge in HOST mode' CONFIG_HOST_FOOTBRIDGE
if [ "$CONFIG_HOST_FOOTBRIDGE" = "y" ]; then if [ "$CONFIG_HOST_FOOTBRIDGE" = "y" ]; then
...@@ -31,9 +31,9 @@ if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then ...@@ -31,9 +31,9 @@ if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
fi fi
if [ "$CONFIG_HOST_FOOTBRIDGE" = "y" ]; then if [ "$CONFIG_HOST_FOOTBRIDGE" = "y" ]; then
bool ' Include support for Intel EBSA285' CONFIG_ARCH_EBSA285 bool ' Include support for EBSA285' CONFIG_ARCH_EBSA285
bool ' Include support for Chalice CATS boards' CONFIG_CATS bool ' Include support for CATS' CONFIG_CATS
bool ' Include support for Corel NetWinder' CONFIG_ARCH_NETWINDER bool ' Include support for NetWinder' CONFIG_ARCH_NETWINDER
fi fi
if [ "$CONFIG_ADDIN_FOOTBRIDGE" = "y" ]; then if [ "$CONFIG_ADDIN_FOOTBRIDGE" = "y" ]; then
...@@ -42,6 +42,18 @@ if [ "$CONFIG_ADDIN_FOOTBRIDGE" = "y" ]; then ...@@ -42,6 +42,18 @@ if [ "$CONFIG_ADDIN_FOOTBRIDGE" = "y" ]; then
define_bool CONFIG_ARCH_CO285 y define_bool CONFIG_ARCH_CO285 y
fi fi
if [ "$CONFIG_ARCH_SA1100" = "y" ]; then
define_bool CONFIG_CPU_SA1100 y
choice 'SA1100 implementation' \
"Brutus CONFIG_SA1100_BRUTUS \
empeg CONFIG_SA1100_EMPEG \
Itsy CONFIG_SA1100_ITSY \
LART CONFIG_SA1100_LART \
PLEB CONFIG_SA1100_PLEB \
Victor CONFIG_SA1100_VICTOR \
Tifon CONFIG_SA1100_TIFON" Brutus
fi
# #
# Select various configuration options depending on the machine type # Select various configuration options depending on the machine type
# Easy check for Acorn-style architectures # Easy check for Acorn-style architectures
...@@ -76,6 +88,7 @@ else ...@@ -76,6 +88,7 @@ else
# Select CPU and optimisation dependent on architecture # Select CPU and optimisation dependent on architecture
# #
if [ "$CONFIG_ARCH_EBSA110" = "y" -o \ if [ "$CONFIG_ARCH_EBSA110" = "y" -o \
"$CONFIG_ARCH_SA1100" = "y" -o \
"$CONFIG_FOOTBRIDGE" = "y" -o \ "$CONFIG_FOOTBRIDGE" = "y" -o \
"$CONFIG_ARCH_NEXUSPCI" = "y" ]; then "$CONFIG_ARCH_NEXUSPCI" = "y" ]; then
define_bool CONFIG_CPU_32v4 y define_bool CONFIG_CPU_32v4 y
...@@ -139,21 +152,10 @@ if [ "$CONFIG_CPU_32" = "y" ]; then ...@@ -139,21 +152,10 @@ if [ "$CONFIG_CPU_32" = "y" ]; then
tristate 'RISC OS personality' CONFIG_ARTHUR tristate 'RISC OS personality' CONFIG_ARTHUR
fi fi
tristate 'Parallel port support' CONFIG_PARPORT source drivers/parport/Config.in
if [ "$CONFIG_PARPORT" != "n" ]; then
if [ "$CONFIG_ARCH_ARC" = "y" ]; then
dep_tristate ' Archimedes hardware' CONFIG_PARPORT_ARC $CONFIG_PARPORT
fi
dep_tristate ' PC-style hardware' CONFIG_PARPORT_PC $CONFIG_PARPORT
# If exactly one hardware type is selected then parport will optimise away
# support for loading any others. Defeat this if the user is keen.
if [ "$CONFIG_PARPORT_PC" = "n" -o "$CONFIG_PARPORT_ARC" = "n" ]; then
if [ "$CONFIG_PARPORT_PC" != "n" -o "$CONFIG_PARPORT_ARC" != "n" ]; then
bool ' Support foreign hardware' CONFIG_PARPORT_OTHER
fi
fi
fi
if [ "$CONFIG_ARCH_EBSA110" = "y" -o \ if [ "$CONFIG_ARCH_EBSA110" = "y" -o \
"$CONFIG_ARCH_SA1100" = "y" -o \
"$CONFIG_ARCH_NETWINDER" = "y" -o \ "$CONFIG_ARCH_NETWINDER" = "y" -o \
"$CONFIG_CATS" = "y" ]; then "$CONFIG_CATS" = "y" ]; then
string 'Initial kernel command string' CONFIG_CMDLINE string 'Initial kernel command string' CONFIG_CMDLINE
...@@ -165,10 +167,10 @@ if [ "$CONFIG_ARCH_NETWINDER" = "y" -o \ ...@@ -165,10 +167,10 @@ if [ "$CONFIG_ARCH_NETWINDER" = "y" -o \
bool 'Timer and CPU usage LEDs' CONFIG_LEDS bool 'Timer and CPU usage LEDs' CONFIG_LEDS
if [ "$CONFIG_LEDS" = "y" ]; then if [ "$CONFIG_LEDS" = "y" ]; then
if [ "$CONFIG_ARCH_NETWINDER" = "y" -o \ if [ "$CONFIG_ARCH_NETWINDER" = "y" -o \
"$CONFIG_ARCH_EBSA285" = "y" -o \ "$CONFIG_ARCH_EBSA285" = "y" -o \
"$CONFIG_ARCH_CO285" = "y" ]; then "$CONFIG_ARCH_CO285" = "y" ]; then
bool ' Timer LED' CONFIG_LEDS_TIMER bool ' Timer LED' CONFIG_LEDS_TIMER
bool ' CPU usage LED' CONFIG_LEDS_CPU bool ' CPU usage LED' CONFIG_LEDS_CPU
fi fi
fi fi
fi fi
...@@ -186,11 +188,11 @@ fi ...@@ -186,11 +188,11 @@ fi
source drivers/char/Config.in source drivers/char/Config.in
if [ "$CONFIG_ARCH_ACORN" = "y" ]; then if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
if [ "$CONFIG_MOUSE" = "y" ]; then if [ "$CONFIG_BUSMOUSE" = "y" ]; then
if [ "$CONFIG_ARCH_RPC" != "y" ]; then if [ "$CONFIG_ARCH_RPC" != "y" ]; then
define_bool CONFIG_KBDMOUSE y define_bool CONFIG_KBDMOUSE y
else else
define_bool CONFIG_RPCMOUSE y define_bool CONFIG_RPCMOUSE y
fi fi
fi fi
fi fi
...@@ -230,7 +232,7 @@ fi ...@@ -230,7 +232,7 @@ fi
# #
# tristate 'ISDN support' CONFIG_ISDN # tristate 'ISDN support' CONFIG_ISDN
# if [ "$CONFIG_ISDN" != "n" ]; then # if [ "$CONFIG_ISDN" != "n" ]; then
# source drivers/isdn/Config.in # source drivers/isdn/Config.in
# fi # fi
# endmenu # endmenu
...@@ -267,17 +269,17 @@ bool 'Include debugging information in kernel binary' CONFIG_DEBUG_INFO ...@@ -267,17 +269,17 @@ bool 'Include debugging information in kernel binary' CONFIG_DEBUG_INFO
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC #bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
if [ "$CONFIG_CPU_26" = "y" ]; then if [ "$CONFIG_CPU_26" = "y" ]; then
bool 'Disable pgtable cache (EXPERIMENTAL)' CONFIG_NO_PGT_CACHE bool 'Disable pgtable cache (EXPERIMENTAL)' CONFIG_NO_PGT_CACHE
fi fi
# These options are only for real kernel hackers # These options are only for real kernel hackers
# who want to get their hands dirty. # who want to get their hands dirty.
bool 'Kernel low-level debugging functions' CONFIG_DEBUG_LL bool 'Kernel low-level debugging functions' CONFIG_DEBUG_LL
if [ "$CONFIG_DEBUG_LL" = "y" ]; then if [ "$CONFIG_DEBUG_LL" = "y" ]; then
if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
bool 'Kernel low-level debugging messages via DC21285 port' CONFIG_DEBUG_DC21285_PORT bool 'Kernel low-level debugging messages via DC21285 port' CONFIG_DEBUG_DC21285_PORT
fi fi
fi fi
fi fi
endmenu endmenu
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=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_CPU_SA1100=y
CONFIG_SA1100_BRUTUS=y
# 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_VICTOR is not set
# CONFIG_SA1100_TIFON is not set
# CONFIG_ARCH_ACORN is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y
CONFIG_CPU_SA110=y
# CONFIG_ISA_DMA is not set
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
# 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_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=""
#
# 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
# CONFIG_BLK_CPQ_DA 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_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=y
CONFIG_SERIAL_SA1100=y
# CONFIG_SERIAL_SA1100_CONSOLE is not set
# 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
#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_MOUSE is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set
#
# Joystick support
#
# CONFIG_JOYSTICK 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
#
# USB drivers - not for the faint of heart
#
# CONFIG_USB is not set
#
# Console drivers
#
# CONFIG_VGA_CONSOLE is not set
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_VIRTUAL is not set
# CONFIG_FBCON_ADVANCED is not set
CONFIG_FBCON_CFB2=y
CONFIG_FBCON_CFB4=y
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_CFB16=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
#
# 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_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_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_UDF_FS 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_UFS_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# 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
#
# Example empeg-car kernel configuration file.
#
CONFIG_ARM=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_CPU_SA1100=y
# CONFIG_SA1100_BRUTUS is not set
CONFIG_SA1100_EMPEG=y
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_PLEB is not set
# CONFIG_SA1100_VICTOR is not set
# CONFIG_EMPEG_HENRY is not set
# CONFIG_ARCH_ACORN is not set
# CONFIG_ISA_DMA is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
# CONFIG_CPU_ARM2 is not set
# CONFIG_CPU_ARM3 is not set
# CONFIG_CPU_ARM6 is not set
# CONFIG_CPU_ARM7 is not set
CONFIG_CPU_SA110=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
# CONFIG_ALIGNMENT_TRAP is not set
# CONFIG_TEXT_SECTIONS is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
# CONFIG_KMOD is not set
#
# General setup
#
CONFIG_NET=y
# CONFIG_SYSVIPC is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_SYSCTL is not set
CONFIG_NWFPE=y
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=""
#
# Plug and Play support
#
# CONFIG_PNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
CONFIG_BLK_DEV_IDE=y
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_BLK_DEV_IDECD is not set
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_IDE_CHIPSETS is not set
# 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_HD 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
# CONFIG_MOUSE is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
CONFIG_EMPEG_IR=y
CONFIG_EMPEG_USB=y
#
# Video For Linux
#
CONFIG_VIDEO_DEV=y
# CONFIG_RADIO_RTRACK is not set
# CONFIG_RADIO_RTRACK2 is not set
# CONFIG_RADIO_AZTECH is not set
# CONFIG_RADIO_CADET is not set
# CONFIG_RADIO_MIROPCM20 is not set
# CONFIG_RADIO_GEMTEK is not set
CONFIG_RADIO_EMPEG=y
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_RADIO_SF16FMI is not set
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set
#
# Joystick support
#
# CONFIG_JOYSTICK is not set
# CONFIG_DTLK is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
#
# Networking options
#
# CONFIG_PACKET is not set
# CONFIG_NETLINK is not set
# CONFIG_FIREWALL is not set
# CONFIG_FILTER is not set
# CONFIG_UNIX is not set
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
# CONFIG_INET_RARP is not set
# CONFIG_SKB_LARGE is not set
# CONFIG_IPV6 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK 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
# CONFIG_CPU_IS_SLOW is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA subsystem support
#
# CONFIG_IRDA is not set
#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_ETHERNET is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_DLCI is not set
CONFIG_PPP=y
# CONFIG_SLIP is not set
# CONFIG_NET_RADIO is not set
# CONFIG_TR is not set
# CONFIG_SHAPER is not set
# CONFIG_HOSTESS_SV11 is not set
# CONFIG_COSA is not set
# CONFIG_RCPCI 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_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS 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_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SUNRPC is not set
# CONFIG_LOCKD is not set
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
#
# Partition Types
#
# CONFIG_OSF_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_SGI_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ACORN_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_USER_BACKTRACE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_LL is not set
...@@ -17,22 +17,18 @@ CONFIG_ARCH_EBSA285=y ...@@ -17,22 +17,18 @@ CONFIG_ARCH_EBSA285=y
# CONFIG_CATS is not set # CONFIG_CATS is not set
CONFIG_ARCH_NETWINDER=y CONFIG_ARCH_NETWINDER=y
# CONFIG_ARCH_ACORN is not set # CONFIG_ARCH_ACORN is not set
CONFIG_PCI=y
CONFIG_ISA_DMA=y
CONFIG_CPU_32=y CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set # CONFIG_CPU_26 is not set
# CONFIG_CPU_ARM2 is not set CONFIG_CPU_32v4=y
# CONFIG_CPU_ARM3 is not set
# CONFIG_CPU_ARM6 is not set
# CONFIG_CPU_ARM7 is not set
CONFIG_CPU_SA110=y CONFIG_CPU_SA110=y
CONFIG_PCI=y
CONFIG_ISA_DMA=y
# #
# Code maturity level options # Code maturity level options
# #
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
# CONFIG_ALIGNMENT_TRAP is not set # CONFIG_ALIGNMENT_TRAP is not set
# CONFIG_TEXT_SECTIONS is not set
# #
# Loadable module support # Loadable module support
...@@ -55,15 +51,35 @@ CONFIG_BINFMT_ELF=y ...@@ -55,15 +51,35 @@ CONFIG_BINFMT_ELF=y
# CONFIG_ARTHUR is not set # CONFIG_ARTHUR is not set
CONFIG_PARPORT=y CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_FIFO=y
# CONFIG_PARPORT_PC_PCMCIA is not set
# CONFIG_PARPORT_ARC is not set
# CONFIG_PARPORT_AMIGA is not set
# CONFIG_PARPORT_MFC3 is not set
# CONFIG_PARPORT_ATARI is not set
# CONFIG_PARPORT_SUNBPP is not set
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y
CONFIG_CMDLINE="root=/dev/hda2 ro mem=32M parport=0x378,7 ide0=autotune" CONFIG_CMDLINE="root=/dev/hda2 ro mem=32M parport=0x378,7 ide0=autotune"
CONFIG_LEDS=y CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y CONFIG_LEDS_TIMER=y
# CONFIG_LEDS_CPU is not set # CONFIG_LEDS_CPU is not set
# #
# Plug and Play support # I2O device support
# #
# CONFIG_PNP is not set # 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=y
CONFIG_ISAPNP=y
# #
# Block devices # Block devices
...@@ -76,6 +92,7 @@ CONFIG_BLK_DEV_IDE=y ...@@ -76,6 +92,7 @@ CONFIG_BLK_DEV_IDE=y
# #
# CONFIG_BLK_DEV_HD_IDE is not set # CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDECD is not set
# CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set
...@@ -136,6 +153,7 @@ CONFIG_PARIDE_KBIC=m ...@@ -136,6 +153,7 @@ CONFIG_PARIDE_KBIC=m
CONFIG_PARIDE_KTTI=m CONFIG_PARIDE_KTTI=m
CONFIG_PARIDE_ON20=m CONFIG_PARIDE_ON20=m
CONFIG_PARIDE_ON26=m CONFIG_PARIDE_ON26=m
CONFIG_BLK_DEV_IDE_MODES=y
# CONFIG_BLK_DEV_HD is not set # CONFIG_BLK_DEV_HD is not set
# #
...@@ -149,15 +167,14 @@ CONFIG_SERIAL_CONSOLE=y ...@@ -149,15 +167,14 @@ CONFIG_SERIAL_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_UNIX98_PTYS is not set # CONFIG_UNIX98_PTYS is not set
CONFIG_PRINTER=m CONFIG_PRINTER=m
CONFIG_PRINTER_READBACK=y # CONFIG_LP_CONSOLE is not set
CONFIG_MOUSE=y # CONFIG_PPDEV is not set
# #
# Mice # Mice
# #
# CONFIG_ATIXL_BUSMOUSE is not set
# CONFIG_BUSMOUSE is not set # CONFIG_BUSMOUSE is not set
# CONFIG_MS_BUSMOUSE is not set CONFIG_MOUSE=y
CONFIG_PSMOUSE=y CONFIG_PSMOUSE=y
# CONFIG_82C710_MOUSE is not set # CONFIG_82C710_MOUSE is not set
# CONFIG_PC110_PAD is not set # CONFIG_PC110_PAD is not set
...@@ -172,6 +189,8 @@ CONFIG_WATCHDOG=y ...@@ -172,6 +189,8 @@ CONFIG_WATCHDOG=y
CONFIG_SOFT_WATCHDOG=y CONFIG_SOFT_WATCHDOG=y
# CONFIG_PCWATCHDOG is not set # CONFIG_PCWATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set # CONFIG_ACQUIRE_WDT is not set
# CONFIG_21285_WATCHDOG is not set
CONFIG_977_WATCHDOG=m
CONFIG_DS1620=y CONFIG_DS1620=y
CONFIG_NWBUTTON=y CONFIG_NWBUTTON=y
CONFIG_NWBUTTON_REBOOT=y CONFIG_NWBUTTON_REBOOT=y
...@@ -189,18 +208,44 @@ CONFIG_RTC=y ...@@ -189,18 +208,44 @@ CONFIG_RTC=y
# #
# CONFIG_JOYSTICK is not set # CONFIG_JOYSTICK is not set
# CONFIG_DTLK is not set # CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# #
# Ftape, the floppy tape device driver # Ftape, the floppy tape device driver
# #
# CONFIG_FTAPE is not set # CONFIG_FTAPE is not set
#
# USB drivers - not for the faint of heart
#
CONFIG_USB=m
# CONFIG_USB_UHCI is not set
CONFIG_USB_OHCI=m
CONFIG_USB_OHCI_DEBUG=y
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_VROOTHUB=y
# CONFIG_USB_DEBUG_ISOC is not set
CONFIG_USB_HUB=m
CONFIG_USB_MOUSE=m
CONFIG_USB_KBD=m
CONFIG_USB_AUDIO=m
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
# CONFIG_USB_CPIA is not set
CONFIG_USB_SCSI=m
CONFIG_USB_SCSI_DEBUG=m
# CONFIG_USB_EZUSB is not set
# CONFIG_USB_USS720 is not set
CONFIG_USB_PROC=y
# #
# Console drivers # Console drivers
# #
CONFIG_VGA_CONSOLE=y CONFIG_VGA_CONSOLE=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE=y
# CONFIG_FB_CLGEN is not set
# CONFIG_FB_PM2 is not set # CONFIG_FB_PM2 is not set
CONFIG_FB_CYBER2000=y CONFIG_FB_CYBER2000=y
# CONFIG_FB_MATROX is not set # CONFIG_FB_MATROX is not set
...@@ -220,6 +265,7 @@ CONFIG_FBCON_CFB24=y ...@@ -220,6 +265,7 @@ CONFIG_FBCON_CFB24=y
# CONFIG_FBCON_IPLAN2P4 is not set # CONFIG_FBCON_IPLAN2P4 is not set
# CONFIG_FBCON_IPLAN2P8 is not set # CONFIG_FBCON_IPLAN2P8 is not set
# CONFIG_FBCON_MAC is not set # CONFIG_FBCON_MAC is not set
# CONFIG_FBCON_VGA_PLANES is not set
CONFIG_FBCON_VGA=y CONFIG_FBCON_VGA=y
# CONFIG_FBCON_FONTWIDTH8_ONLY is not set # CONFIG_FBCON_FONTWIDTH8_ONLY is not set
CONFIG_FBCON_FONTS=y CONFIG_FBCON_FONTS=y
...@@ -235,8 +281,9 @@ CONFIG_FONT_ACORN_8x8=y ...@@ -235,8 +281,9 @@ CONFIG_FONT_ACORN_8x8=y
# Networking options # Networking options
# #
CONFIG_PACKET=y CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK is not set # CONFIG_NETLINK is not set
# CONFIG_FIREWALL is not set # CONFIG_NETFILTER is not set
# CONFIG_FILTER is not set # CONFIG_FILTER is not set
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_INET=y CONFIG_INET=y
...@@ -254,15 +301,17 @@ CONFIG_IP_ALIAS=y ...@@ -254,15 +301,17 @@ CONFIG_IP_ALIAS=y
# #
# (it is safe to leave these untouched) # (it is safe to leave these untouched)
# #
# CONFIG_INET_RARP is not set
CONFIG_SKB_LARGE=y CONFIG_SKB_LARGE=y
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
# CONFIG_KHTTPD is not set
# CONFIG_ATM is not set
# #
# #
# #
# CONFIG_IPX is not set # CONFIG_IPX is not set
# CONFIG_ATALK is not set # CONFIG_ATALK is not set
# CONFIG_DECNET is not set
# CONFIG_X25 is not set # CONFIG_X25 is not set
# CONFIG_LAPB is not set # CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set # CONFIG_BRIDGE is not set
...@@ -271,7 +320,6 @@ CONFIG_SKB_LARGE=y ...@@ -271,7 +320,6 @@ CONFIG_SKB_LARGE=y
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set # CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set # CONFIG_NET_HW_FLOWCONTROL is not set
# CONFIG_CPU_IS_SLOW is not set
# #
# QoS and/or fair queueing # QoS and/or fair queueing
...@@ -284,7 +332,7 @@ CONFIG_SKB_LARGE=y ...@@ -284,7 +332,7 @@ CONFIG_SKB_LARGE=y
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# #
# IrDA subsystem support # IrDA (infrared) support
# #
# CONFIG_IRDA is not set # CONFIG_IRDA is not set
...@@ -292,9 +340,18 @@ CONFIG_SKB_LARGE=y ...@@ -292,9 +340,18 @@ CONFIG_SKB_LARGE=y
# Network device support # Network device support
# #
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set # CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set # CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set # CONFIG_EQUALIZER is not set
# CONFIG_NET_SB1000 is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y CONFIG_NET_ETHERNET=y
# CONFIG_ARM_AM79C961A is not set # CONFIG_ARM_AM79C961A is not set
CONFIG_NET_VENDOR_3COM=y CONFIG_NET_VENDOR_3COM=y
...@@ -309,11 +366,12 @@ CONFIG_VORTEX=y ...@@ -309,11 +366,12 @@ CONFIG_VORTEX=y
# CONFIG_NET_VENDOR_SMC is not set # CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set # CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_RTL8139 is not set # CONFIG_RTL8139 is not set
# CONFIG_SIS900 is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
# CONFIG_ACENIC is not set
# CONFIG_NET_ISA is not set # CONFIG_NET_ISA is not set
CONFIG_NET_EISA=y CONFIG_NET_EISA=y
# CONFIG_PCNET32 is not set # CONFIG_PCNET32 is not set
# CONFIG_ACENIC is not set
# CONFIG_AC3200 is not set # CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set # CONFIG_APRICOT is not set
# CONFIG_CS89x0 is not set # CONFIG_CS89x0 is not set
...@@ -332,23 +390,32 @@ CONFIG_NE2K_PCI=y ...@@ -332,23 +390,32 @@ CONFIG_NE2K_PCI=y
# CONFIG_NET_POCKET is not set # CONFIG_NET_POCKET is not set
# CONFIG_FDDI is not set # CONFIG_FDDI is not set
# CONFIG_HIPPI is not set # CONFIG_HIPPI is not set
# CONFIG_DLCI is not set
# CONFIG_PLIP is not set # CONFIG_PLIP is not set
CONFIG_PPP=m CONFIG_PPP=m
CONFIG_PPP_ASYNC=m
# CONFIG_PPP_DEFLATE=m
# CCP compressors for PPP are only built as modules. CONFIG_PPP_BSDCOMP=m
#
CONFIG_SLIP=m CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP_SMART=y CONFIG_SLIP_SMART=y
CONFIG_SLIP_MODE_SLIP6=y CONFIG_SLIP_MODE_SLIP6=y
# CONFIG_NET_RADIO is not set # CONFIG_NET_RADIO is not set
#
# Token ring devices
#
# CONFIG_TR is not set # CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set # CONFIG_SHAPER is not set
#
# Wan interfaces
#
# CONFIG_HOSTESS_SV11 is not set # CONFIG_HOSTESS_SV11 is not set
# CONFIG_COSA is not set # CONFIG_COSA is not set
# CONFIG_RCPCI is not set # CONFIG_SEALEVEL_4021 is not set
# CONFIG_DLCI is not set
# #
# SCSI support # SCSI support
...@@ -359,8 +426,10 @@ CONFIG_SLIP_MODE_SLIP6=y ...@@ -359,8 +426,10 @@ CONFIG_SLIP_MODE_SLIP6=y
# Sound # Sound
# #
CONFIG_SOUND=m CONFIG_SOUND=m
# CONFIG_SOUND_CMPCI is not set
# CONFIG_SOUND_ES1370 is not set # CONFIG_SOUND_ES1370 is not set
# CONFIG_SOUND_ES1371 is not set # CONFIG_SOUND_ES1371 is not set
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_SONICVIBES is not set # CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set # CONFIG_SOUND_MSNDPIN is not set
...@@ -410,6 +479,7 @@ CONFIG_FAT_FS=m ...@@ -410,6 +479,7 @@ CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m CONFIG_MSDOS_FS=m
# CONFIG_UMSDOS_FS is not set # CONFIG_UMSDOS_FS is not set
CONFIG_VFAT_FS=m CONFIG_VFAT_FS=m
# CONFIG_EFS_FS is not set
CONFIG_ISO9660_FS=m CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y CONFIG_JOLIET=y
# CONFIG_MINIX_FS is not set # CONFIG_MINIX_FS is not set
...@@ -438,12 +508,17 @@ CONFIG_LOCKD=y ...@@ -438,12 +508,17 @@ CONFIG_LOCKD=y
# #
# Partition Types # Partition Types
# #
CONFIG_PARTITION_ADVANCED=y
# CONFIG_OSF_PARTITION is not set # CONFIG_OSF_PARTITION is not set
# CONFIG_MAC_PARTITION is not set # CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_SGI_PARTITION is not set # CONFIG_SGI_PARTITION is not set
# CONFIG_SUN_PARTITION is not set # CONFIG_SUN_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_ACORN_PARTITION=y CONFIG_ACORN_PARTITION=y
CONFIG_ACORN_PARTITION_ADFS=y CONFIG_ACORN_PARTITION_ADFS=y
# CONFIG_ACORN_PARTITION_ICS is not set # CONFIG_ACORN_PARTITION_ICS is not set
...@@ -479,6 +554,7 @@ CONFIG_NLS_ISO8859_2=m ...@@ -479,6 +554,7 @@ CONFIG_NLS_ISO8859_2=m
# CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=m CONFIG_NLS_ISO8859_15=m
# CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_R is not set
...@@ -487,7 +563,7 @@ CONFIG_NLS_ISO8859_15=m ...@@ -487,7 +563,7 @@ CONFIG_NLS_ISO8859_15=m
# #
CONFIG_FRAME_POINTER=y CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_ERRORS=y CONFIG_DEBUG_ERRORS=y
# CONFIG_DEBUG_USER is not set CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_INFO is not set
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_LL is not set # CONFIG_DEBUG_LL is not set
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=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_CPU_SA1100=y
# CONFIG_SA1100_BRUTUS is not set
# CONFIG_SA1100_EMPEG is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_PLEB is not set
CONFIG_SA1100_VICTOR=y
# CONFIG_VICTOR_BOARD1 is not set
# CONFIG_ARCH_ACORN is not set
# CONFIG_ISA_DMA is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
# CONFIG_CPU_ARM2 is not set
# CONFIG_CPU_ARM3 is not set
# CONFIG_CPU_ARM6 is not set
# CONFIG_CPU_ARM7 is not set
CONFIG_CPU_SA110=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
# CONFIG_ALIGNMENT_TRAP is not set
# CONFIG_TEXT_SECTIONS 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 is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_SYSCTL is not set
CONFIG_NWFPE=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
# CONFIG_PARPORT is not set
CONFIG_CMDLINE=""
#
# Plug and Play support
#
# CONFIG_PNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_IDEDISK is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_IDE_CHIPSETS is not set
#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE_PARPORT=y
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_HD 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
# CONFIG_MOUSE is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set
#
# Joystick support
#
# CONFIG_JOYSTICK is not set
# CONFIG_DTLK is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE 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_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_PROC_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_UFS_FS is not set
#
# Partition Types
#
# CONFIG_OSF_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
# CONFIG_MSDOS_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ACORN_PARTITION is not set
CONFIG_NLS=y
#
# Native Language Support
#
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_874 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
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
#
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_LL is not set
...@@ -55,7 +55,7 @@ CONFIG_BINFMT_ELF=y ...@@ -55,7 +55,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_ARTHUR is not set # CONFIG_ARTHUR is not set
CONFIG_PARPORT=y CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y CONFIG_PARPORT_PC=y
CONFIG_CMDLINE="root=/dev/hda2 ro mem=32M parport=0x378,7 ide0=autotune" CONFIG_CMDLINE="root=/dev/hda1 ro mem=32M parport=0x378,7 ide0=autotune"
CONFIG_LEDS=y CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y CONFIG_LEDS_TIMER=y
# CONFIG_LEDS_CPU is not set # CONFIG_LEDS_CPU is not set
......
...@@ -22,6 +22,7 @@ O_OBJS_rpc = dma-rpc.o iic.o fiq.o ...@@ -22,6 +22,7 @@ O_OBJS_rpc = dma-rpc.o iic.o fiq.o
O_OBJS_ebsa110 = dma-dummy.o O_OBJS_ebsa110 = dma-dummy.o
O_OBJS_footbridge = dma-footbridge.o $(ISA_DMA_OBJS) isa.o O_OBJS_footbridge = dma-footbridge.o $(ISA_DMA_OBJS) isa.o
O_OBJS_nexuspci = dma-dummy.o O_OBJS_nexuspci = dma-dummy.o
O_OBJS_sa1100 = dma-dummy.o fiq.o
OX_OBJS_arc = dma.o OX_OBJS_arc = dma.o
OX_OBJS_a5k = dma.o OX_OBJS_a5k = dma.o
...@@ -29,11 +30,16 @@ OX_OBJS_rpc = dma.o ...@@ -29,11 +30,16 @@ OX_OBJS_rpc = dma.o
OX_OBJS_ebsa110 = OX_OBJS_ebsa110 =
OX_OBJS_footbridge= dma.o hw-footbridge.o OX_OBJS_footbridge= dma.o hw-footbridge.o
OX_OBJS_nexuspci = OX_OBJS_nexuspci =
OX_OBJS_sa1100 =
all: kernel.o $(HEAD_OBJ) init_task.o all: kernel.o $(HEAD_OBJ) init_task.o
O_OBJS += $(O_OBJS_$(MACHINE)) O_OBJS += $(O_OBJS_$(MACHINE))
ifeq ($(CONFIG_DEBUG_LL),y)
O_OBJS += debug-$(PROCESSOR).o
endif
ifeq ($(CONFIG_MODULES),y) ifeq ($(CONFIG_MODULES),y)
OX_OBJS = armksyms.o OX_OBJS = armksyms.o
endif endif
...@@ -42,17 +48,15 @@ ifeq ($(CONFIG_ARCH_ACORN),y) ...@@ -42,17 +48,15 @@ ifeq ($(CONFIG_ARCH_ACORN),y)
OX_OBJS += ecard.o OX_OBJS += ecard.o
endif endif
ifeq ($(MACHINE),nexuspci) ifeq ($(CONFIG_PCI),y)
ifdef CONFIG_PCI ifeq ($(MACHINE),nexuspci)
O_OBJS += plx9080.o O_OBJS += plx9080.o
endif else
else
ifdef CONFIG_PCI
O_OBJS += bios32.o dec21285.o O_OBJS += bios32.o dec21285.o
endif endif
endif endif
ifdef CONFIG_LEDS ifeq ($(CONFIG_LEDS),y)
OX_OBJS += leds-$(MACHINE).o OX_OBJS += leds-$(MACHINE).o
endif endif
...@@ -73,13 +77,11 @@ endif ...@@ -73,13 +77,11 @@ endif
$(HEAD_OBJ): $(HEAD_OBJ:.o=.S) $(HEAD_OBJ): $(HEAD_OBJ:.o=.S)
$(CC) -D__ASSEMBLY__ -DTEXTADDR=$(TEXTADDR) -traditional -c $(HEAD_OBJ:.o=.S) -o $@ $(CC) -D__ASSEMBLY__ -DTEXTADDR=$(TEXTADDR) -traditional -c $(HEAD_OBJ:.o=.S) -o $@
$(ENTRY_OBJ): $(ENTRY_OBJ:.o=.S)
$(CC) $(CFLAGS) -D__ASSEMBLY__ -c $(ENTRY_OBJ:.o=.S) -o $@
include $(TOPDIR)/Rules.make include $(TOPDIR)/Rules.make
$(ENTRY_OBJ): ../lib/constants.h .S.o:
$(CC) -D__ASSEMBLY__ $(AFLAGS) $(AFLAGS_$@) -c -o $*.o $<
# Spell out some dependencies that `make dep' doesn't spot # Spell out some dependencies that `make dep' doesn't spot
entry-armv.o: calls.S entry-armv.o: calls.S ../lib/constants.h
entry-armo.o: calls.S entry-armo.o: calls.S ../lib/constants.h
...@@ -2,12 +2,14 @@ ...@@ -2,12 +2,14 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/user.h> #include <linux/user.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/fs.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/mman.h> #include <linux/mman.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/in6.h> #include <linux/in6.h>
#include <asm/byteorder.h>
#include <asm/elf.h> #include <asm/elf.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/dma.h> #include <asm/dma.h>
...@@ -93,6 +95,9 @@ EXPORT_SYMBOL(__ioremap); ...@@ -93,6 +95,9 @@ EXPORT_SYMBOL(__ioremap);
EXPORT_SYMBOL(__iounmap); EXPORT_SYMBOL(__iounmap);
#endif #endif
EXPORT_SYMBOL(kernel_thread); EXPORT_SYMBOL(kernel_thread);
EXPORT_SYMBOL(system_rev);
EXPORT_SYMBOL(system_serial_low);
EXPORT_SYMBOL(system_serial_high);
EXPORT_SYMBOL(enable_irq); EXPORT_SYMBOL(enable_irq);
EXPORT_SYMBOL(disable_irq); EXPORT_SYMBOL(disable_irq);
...@@ -108,7 +113,7 @@ EXPORT_SYMBOL(cpu_clean_cache_area); ...@@ -108,7 +113,7 @@ EXPORT_SYMBOL(cpu_clean_cache_area);
EXPORT_SYMBOL(cpu_flush_ram_page); EXPORT_SYMBOL(cpu_flush_ram_page);
EXPORT_SYMBOL(cpu_flush_tlb_all); EXPORT_SYMBOL(cpu_flush_tlb_all);
EXPORT_SYMBOL(cpu_flush_tlb_area); EXPORT_SYMBOL(cpu_flush_tlb_area);
EXPORT_SYMBOL(cpu_switch_mm); EXPORT_SYMBOL(cpu_set_pgd);
EXPORT_SYMBOL(cpu_set_pmd); EXPORT_SYMBOL(cpu_set_pmd);
EXPORT_SYMBOL(cpu_set_pte); EXPORT_SYMBOL(cpu_set_pte);
EXPORT_SYMBOL(cpu_flush_icache_area); EXPORT_SYMBOL(cpu_flush_icache_area);
...@@ -165,19 +170,20 @@ EXPORT_SYMBOL_NOVERS(strpbrk); ...@@ -165,19 +170,20 @@ EXPORT_SYMBOL_NOVERS(strpbrk);
EXPORT_SYMBOL_NOVERS(strtok); EXPORT_SYMBOL_NOVERS(strtok);
EXPORT_SYMBOL_NOVERS(strrchr); EXPORT_SYMBOL_NOVERS(strrchr);
EXPORT_SYMBOL_NOVERS(strstr); EXPORT_SYMBOL_NOVERS(strstr);
EXPORT_SYMBOL_NOVERS(memset); EXPORT_SYMBOL_NOVERS(__memset);
EXPORT_SYMBOL_NOVERS(memset); /* needed for some versions of gcc */
EXPORT_SYMBOL_NOVERS(memcpy); EXPORT_SYMBOL_NOVERS(memcpy);
EXPORT_SYMBOL_NOVERS(memmove); EXPORT_SYMBOL_NOVERS(memmove);
EXPORT_SYMBOL_NOVERS(memcmp); EXPORT_SYMBOL_NOVERS(memcmp);
EXPORT_SYMBOL_NOVERS(memscan); EXPORT_SYMBOL_NOVERS(memscan);
EXPORT_SYMBOL_NOVERS(memzero); EXPORT_SYMBOL_NOVERS(__memzero);
/* user mem (segment) */ /* user mem (segment) */
#if defined(CONFIG_CPU_32) #if defined(CONFIG_CPU_32)
EXPORT_SYMBOL(__arch_copy_from_user); EXPORT_SYMBOL(__arch_copy_from_user);
EXPORT_SYMBOL(__arch_copy_to_user); EXPORT_SYMBOL(__arch_copy_to_user);
EXPORT_SYMBOL(__arch_clear_user); EXPORT_SYMBOL(__arch_clear_user);
EXPORT_SYMBOL(__arch_strlen_user); EXPORT_SYMBOL(__arch_strnlen_user);
#elif defined(CONFIG_CPU_26) #elif defined(CONFIG_CPU_26)
EXPORT_SYMBOL(uaccess_kernel); EXPORT_SYMBOL(uaccess_kernel);
EXPORT_SYMBOL(uaccess_user); EXPORT_SYMBOL(uaccess_user);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/errno.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/irq.h> #include <asm/irq.h>
...@@ -72,6 +73,38 @@ struct pci_fixup pcibios_fixups[] = { ...@@ -72,6 +73,38 @@ struct pci_fixup pcibios_fixups[] = {
{ 0 } { 0 }
}; };
/*
* Assign new address to PCI resource. We hope our resource information
* is complete. On the PC, we don't re-assign resources unless we are
* forced to do so.
*
* Expects start=0, end=size-1, flags=resource type.
*/
int __init pcibios_assign_resource(struct pci_dev *dev, int i)
{
struct resource *r = &dev->resource[i];
struct resource *pr = pci_find_parent_resource(dev, r);
unsigned long size = r->end + 1;
unsigned long flags = 0;
if (!pr)
return -EINVAL;
if (r->flags & IORESOURCE_IO) {
if (size > 0x100)
return -EFBIG;
if (allocate_resource(pr, r, size, 0x9000, ~0, 1024))
return -EBUSY;
flags = PCI_BASE_ADDRESS_SPACE_IO;
} else {
if (allocate_resource(pr, r, size, 0x00100000, 0x7fffffff, size))
return -EBUSY;
}
if (i < 6)
pci_write_config_dword(dev, PCI_BASE_ADDRESS_0 + 4*i, r->start | flags);
return 0;
}
/* /*
* Assign an address to an I/O range. * Assign an address to an I/O range.
*/ */
......
/*
* linux/arch/arm/kernel/debug-armo.S
*
* Copyright (C) 1999 Russell King
*
* 26-bit debugging code
*/
#include <linux/linkage.h>
.macro addruart,rx
mov \rx, #0x03000000
orr \rx, \rx, #0x00010000
orr \rx, \rx, #0x00000fe0
.endm
.macro senduart,rd,rx
strb \rd, [\rx]
.endm
.macro busyuart,rd,rx
1002: ldrb \rd, [\rx, #0x14]
and \rd, \rd, #0x60
teq \rd, #0x60
bne 1002b
.endm
.macro waituart,rd,rx
1001: ldrb \rd, [\rx, #0x18]
tst \rd, #0x10
beq 1001b
.endm
.text
/*
* Useful debugging routines
*/
ENTRY(printhex8)
mov r1, #8
b printhex
ENTRY(printhex4)
mov r1, #4
b printhex
ENTRY(printhex2)
mov r1, #2
printhex: ldr r2, =hexbuf
add r3, r2, r1
mov r1, #0
strb r1, [r3]
1: and r1, r0, #15
mov r0, r0, lsr #4
cmp r1, #10
addlt r1, r1, #'0'
addge r1, r1, #'a' - 10
strb r1, [r3, #-1]!
teq r3, r2
bne 1b
mov r0, r2
b printascii
.ltorg
ENTRY(printascii)
addruart r3
b 2f
1: waituart r2, r3
senduart r1, r3
busyuart r2, r3
teq r1, #'\n'
moveq r1, #'\r'
beq 1b
2: teq r0, #0
ldrneb r1, [r0], #1
teqne r1, #0
bne 1b
mov pc, lr
ENTRY(printch)
addruart r3
mov r1, r0
mov r0, #0
b 1b
.bss
hexbuf: .space 16
/*
* linux/arch/arm/kernel/debug-armv.S
*
* Copyright (C) 1994-1999 Russell King
*
* 32-bit debugging code
*/
#include <linux/config.h>
#include <linux/linkage.h>
#include <asm/hardware.h>
#include <asm/dec21285.h>
.text
/*
* Some debugging routines (useful if you've got MM problems and
* printk isn't working). For DEBUGGING ONLY!!! Do not leave
* references to these in a production kernel!
*/
#if defined(CONFIG_ARCH_RPC)
.macro addruart,rx
mov \rx, #0xe0000000
orr \rx, \rx, #0x00010000
orr \rx, \rx, #0x00000fe0
.endm
.macro senduart,rd,rx
strb \rd, [\rx]
.endm
.macro busyuart,rd,rx
1002: ldrb \rd, [\rx, #0x14]
and \rd, \rd, #0x60
teq \rd, #0x60
bne 1002b
.endm
.macro waituart,rd,rx
1001: ldrb \rd, [\rx, #0x18]
tst \rd, #0x10
beq 1001b
.endm
#elif defined(CONFIG_ARCH_EBSA110)
.macro addruart,rx
mov \rx, #0xf0000000
orr \rx, \rx, #0x00000be0
.endm
.macro senduart,rd,rx
strb \rd, [\rx]
.endm
.macro busyuart,rd,rx
1002: ldrb \rd, [\rx, #0x14]
and \rd, \rd, #0x60
teq \rd, #0x60
bne 1002b
.endm
.macro waituart,rd,rx
1001: ldrb \rd, [\rx, #0x18]
tst \rd, #0x10
beq 1001b
.endm
#elif defined(CONFIG_HOST_FOOTBRIDGE) || defined(CONFIG_ADDIN_FOOTBRIDGE)
#ifndef CONFIG_DEBUG_DC21285_PORT
/* For NetWinder debugging */
.macro addruart,rx
mov \rx, #0xff000000
orr \rx, \rx, #0x000003f8
.endm
.macro senduart,rd,rx
strb \rd, [\rx]
.endm
.macro busyuart,rd,rx
1002: ldrb \rd, [\rx, #0x5]
and \rd, \rd, #0x60
teq \rd, #0x60
bne 1002b
.endm
.macro waituart,rd,rx
1001: ldrb \rd, [\rx, #0x6]
tst \rd, #0x10
beq 1001b
.endm
#else
/* For EBSA285 debugging */
.equ dc21285_high, ARMCSR_BASE & 0xff000000
.equ dc21285_low, ARMCSR_BASE & 0x00ffffff
.macro addruart,rx
mov \rx, #dc21285_high
.if dc21285_low
orr \rx, \rx, #dc21285_low
.endif
.endm
.macro senduart,rd,rx
str \rd, [\rx, #0x160] @ UARTDR
.endm
.macro busyuart,rd,rx
1001: ldr \rd, [\rx, #0x178] @ UARTFLG
tst \rd, #1 << 3
bne 1001b
.endm
.macro waituart,rd,rx
.endm
#endif
#elif defined(CONFIG_ARCH_NEXUSPCI)
.macro addruart,rx
ldr \rx, =0xfff00000
.endm
.macro senduart,rd,rx
str \rd, [\rx, #0xc]
.endm
.macro busyuart,rd,rx
1001: ldr \rd, [\rx, #0x4]
tst \rd, #1 << 0
bne 1001b
.endm
.macro waituart,rd,rx
.endm
#elif defined(CONFIG_ARCH_SA1100)
.macro addruart,rx
mov \rx, #0xf8000000
add \rx, \rx, #0x00050000
.endm
.macro senduart,rd,rx
str \rd, [\rx, #0x14] @ UARTDR
.endm
.macro busyuart,rd,rx
1001: ldr \rd, [\rx, #0x20] @ UTSR1
tst \rd, #1 << 2
beq 1001b
.endm
#else
#error Unknown architecture
#endif
/*
* Useful debugging routines
*/
ENTRY(printhex8)
mov r1, #8
b printhex
ENTRY(printhex4)
mov r1, #4
b printhex
ENTRY(printhex2)
mov r1, #2
printhex: ldr r2, =hexbuf
add r3, r2, r1
mov r1, #0
strb r1, [r3]
1: and r1, r0, #15
mov r0, r0, lsr #4
cmp r1, #10
addlt r1, r1, #'0'
addge r1, r1, #'a' - 10
strb r1, [r3, #-1]!
teq r3, r2
bne 1b
mov r0, r2
b printascii
.ltorg
ENTRY(printascii)
addruart r3
b 2f
1: waituart r2, r3
senduart r1, r3
busyuart r2, r3
teq r1, #'\n'
moveq r1, #'\r'
beq 1b
2: teq r0, #0
ldrneb r1, [r0], #1
teqne r1, #0
bne 1b
mov pc, lr
ENTRY(printch)
addruart r3
mov r1, r0
mov r0, #0
b 1b
.bss
hexbuf: .space 16
This diff is collapsed.
...@@ -17,15 +17,18 @@ int request_dma(int channel, const char *device_id) ...@@ -17,15 +17,18 @@ int request_dma(int channel, const char *device_id)
return -EINVAL; return -EINVAL;
} }
void free_dma(int channel) int no_dma(void)
{
}
int get_dma_list(char *buf)
{ {
return 0; return 0;
} }
void __init init_dma(void) #define GLOBAL_ALIAS(_a,_b) asm (".set " #_a "," #_b "; .globl " #_a)
{ GLOBAL_ALIAS(disable_dma, no_dma);
} GLOBAL_ALIAS(enable_dma, no_dma);
GLOBAL_ALIAS(free_dma, no_dma);
GLOBAL_ALIAS(get_dma_residue, no_dma);
GLOBAL_ALIAS(get_dma_list, no_dma);
GLOBAL_ALIAS(set_dma_mode, no_dma);
GLOBAL_ALIAS(set_dma_count, no_dma);
GLOBAL_ALIAS(set_dma_addr, no_dma);
GLOBAL_ALIAS(init_dma, no_dma);
...@@ -13,14 +13,11 @@ ...@@ -13,14 +13,11 @@
#include <linux/config.h> #include <linux/config.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/malloc.h> #include <linux/errno.h>
#include <linux/mman.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/page.h>
#include <asm/dma.h> #include <asm/dma.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/hardware.h>
#include "dma.h" #include "dma.h"
#include "dma-isa.h" #include "dma-isa.h"
......
...@@ -126,6 +126,13 @@ void isa_disable_dma(int channel, dma_t *dma) ...@@ -126,6 +126,13 @@ void isa_disable_dma(int channel, dma_t *dma)
outb(channel | 4, isa_dma_port[channel][ISA_DMA_MASK]); outb(channel | 4, isa_dma_port[channel][ISA_DMA_MASK]);
} }
static struct resource dma_resources[] = {
{ "dma1", 0x0000, 0x000f },
{ "dma low page", 0x0080, 0x008f },
{ "dma2", 0x00c0, 0x00df },
{ "dma high page", 0x0480, 0x048f }
};
int __init isa_init_dma(void) int __init isa_init_dma(void)
{ {
int dmac_found; int dmac_found;
......
...@@ -357,6 +357,8 @@ int arch_set_dma_speed(dmach_t channel, dma_t *dma, int cycle) ...@@ -357,6 +357,8 @@ int arch_set_dma_speed(dmach_t channel, dma_t *dma, int cycle)
} }
outb(tcr, IOMD_DMATCR); outb(tcr, IOMD_DMATCR);
return speed;
} }
void __init arch_dma_init(dma_t *dma) void __init arch_dma_init(dma_t *dma)
......
...@@ -82,7 +82,7 @@ static unsigned int have_expmask; ...@@ -82,7 +82,7 @@ static unsigned int have_expmask;
/* List of descriptions of cards which don't have an extended /* List of descriptions of cards which don't have an extended
* identification, or chunk directories containing a description. * identification, or chunk directories containing a description.
*/ */
static const struct expcard_blacklist __init blacklist[] = { static struct expcard_blacklist __initdata blacklist[] = {
{ MANU_ACORN, PROD_ACORN_ETHER1, "Acorn Ether1" } { MANU_ACORN, PROD_ACORN_ETHER1, "Acorn Ether1" }
}; };
...@@ -827,6 +827,8 @@ unsigned int ecard_address(ecard_t *ec, card_type_t type, card_speed_t speed) ...@@ -827,6 +827,8 @@ unsigned int ecard_address(ecard_t *ec, card_type_t type, card_speed_t speed)
ectcr |= 1 << slot; ectcr |= 1 << slot;
break; break;
#endif #endif
default:
break;
} }
#ifdef IOMD_ECTCR #ifdef IOMD_ECTCR
......
...@@ -298,6 +298,30 @@ irq_prio_ebsa110: ...@@ -298,6 +298,30 @@ irq_prio_ebsa110:
.macro irq_prio_table .macro irq_prio_table
.endm .endm
#elif defined(CONFIG_ARCH_SA1100)
.macro disable_fiq
.endm
.macro get_irqnr_and_base, irqnr, irqstat, base
mov r4, #0xfa000000 @ ICIP = 0xfa050000
add r4, r4, #0x00050000
ldr \irqstat, [r4] @ get irqs
ldr \irqnr, [r4, #4] @ ICMR = 0xfa050004
ands \irqstat, \irqstat, \irqnr
mov \irqnr, #0
beq 1002f
1001: tst \irqstat, #1
addeq \irqnr, \irqnr, #1
moveq \irqstat, \irqstat, lsr #1
beq 1001b
1002:
.endm
.macro irq_prio_table
.endm
#else #else
#error Unknown architecture #error Unknown architecture
#endif #endif
...@@ -449,11 +473,15 @@ __dabt_svc: sub sp, sp, #S_FRAME_SIZE ...@@ -449,11 +473,15 @@ __dabt_svc: sub sp, sp, #S_FRAME_SIZE
add r5, sp, #S_SP add r5, sp, #S_SP
mov r1, lr mov r1, lr
stmia r5, {r0 - r4} @ save sp_SVC, lr_SVC, pc, cpsr, old_ro stmia r5, {r0 - r4} @ save sp_SVC, lr_SVC, pc, cpsr, old_ro
mrs r9, cpsr @ Enable interrupts if they were
tst r3, #I_BIT tst r3, #I_BIT
mrseq r0, cpsr @ Enable interrupts if they were biceq r9, r9, #I_BIT @ previously
biceq r0, r0, #I_BIT @ previously
msreq cpsr, r0
mov r0, r2 mov r0, r2
/*
* This routine must not corrupt r9
*/
#ifdef MULTI_CPU #ifdef MULTI_CPU
ldr r2, .LCprocfns ldr r2, .LCprocfns
mov lr, pc mov lr, pc
...@@ -461,6 +489,7 @@ __dabt_svc: sub sp, sp, #S_FRAME_SIZE ...@@ -461,6 +489,7 @@ __dabt_svc: sub sp, sp, #S_FRAME_SIZE
#else #else
bl cpu_data_abort bl cpu_data_abort
#endif #endif
msr cpsr, r9
mov r3, sp mov r3, sp
bl SYMBOL_NAME(do_DataAbort) bl SYMBOL_NAME(do_DataAbort)
ldr r0, [sp, #S_PSR] ldr r0, [sp, #S_PSR]
...@@ -544,9 +573,6 @@ __dabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go ...@@ -544,9 +573,6 @@ __dabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go
#endif #endif
mov fp, #0 mov fp, #0
mrs r2, cpsr @ Enable interrupts if they were
bic r2, r2, #I_BIT @ previously
msr cpsr, r2
#ifdef MULTI_CPU #ifdef MULTI_CPU
ldr r2, .LCprocfns ldr r2, .LCprocfns
mov lr, pc mov lr, pc
...@@ -554,6 +580,10 @@ __dabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go ...@@ -554,6 +580,10 @@ __dabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go
#else #else
bl cpu_data_abort bl cpu_data_abort
#endif #endif
mrs r3, cpsr @ Enable interrupts if they were
bic r3, r3, #I_BIT @ previously
msr cpsr, r3
mov r3, sp mov r3, sp
adrsvc al, lr, ret_from_sys_call adrsvc al, lr, ret_from_sys_call
b SYMBOL_NAME(do_DataAbort) b SYMBOL_NAME(do_DataAbort)
......
/* /*
* linux/arch/arm/kernel/head.S * linux/arch/arm/kernel/head-armo.S
* *
* Copyright (C) 1994, 1995, 1996, 1997 Russell King * Copyright (C) 1994, 1995, 1996, 1997 Russell King
* *
...@@ -7,11 +7,13 @@ ...@@ -7,11 +7,13 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
.text .globl SYMBOL_NAME(swapper_pg_dir)
.align .equ SYMBOL_NAME(swapper_pg_dir), 0x0207d000
/* /*
* Entry point. * Entry point.
*/ */
.section ".text.init",#alloc,#execinstr
ENTRY(stext) ENTRY(stext)
ENTRY(_stext) ENTRY(_stext)
__entry: cmp pc, #0x02000000 __entry: cmp pc, #0x02000000
......
This diff is collapsed.
...@@ -25,269 +25,8 @@ ...@@ -25,269 +25,8 @@
#include <asm/system.h> #include <asm/system.h>
#define IRDA_IO_BASE 0x180 #define IRDA_IO_BASE 0x180
#define ETHER10_IO_BASE 0x301
#define GP1_IO_BASE 0x338 #define GP1_IO_BASE 0x338
#define GP2_IO_BASE 0x33a #define GP2_IO_BASE 0x33a
#define DEC21143_IO_BASE 0x401
#define DEC21143_MEM_BASE 0x00800000
#define CYBER2000_MEM_BASE 0x01000000
int have_isa_bridge;
extern int setup_arm_irq(int, struct irqaction *);
extern void pci_set_cmd(struct pci_dev *dev, unsigned short clear, unsigned short set);
extern void pci_set_base_addr(struct pci_dev *dev, int idx, unsigned int addr);
extern void pci_set_irq_line(struct pci_dev *dev, unsigned int irq);
extern void (*kd_mksound)(unsigned int hz, unsigned int ticks);
#ifdef CONFIG_PCI
static int irqmap_ebsa[] __initdata = { IRQ_IN1, IRQ_IN0, IRQ_PCI, IRQ_IN3 };
static int __init ebsa_irqval(struct pci_dev *dev)
{
unsigned char pin;
pcibios_read_config_byte(dev->bus->number,
dev->devfn,
PCI_INTERRUPT_PIN,
&pin);
return irqmap_ebsa[(PCI_SLOT(dev->devfn) + pin) & 3];
}
#ifdef CONFIG_CATS
static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 };
static int __init cats_irqval(struct pci_dev *dev)
{
if (dev->irq >= 128)
return 16 + (dev->irq & 0x1f);
switch (dev->irq) {
case 1:
case 2:
case 3:
case 4:
return irqmap_cats[dev->irq - 1];
case 0:
return 0;
}
printk("PCI: device %02x:%02x has unknown irq line %x\n",
dev->bus->number, dev->devfn, dev->irq);
return 0;
}
#endif
void __init pcibios_fixup_ebsa285(struct pci_dev *dev)
{
/* Latency timer of 32 */
pci_write_config_byte(dev, PCI_LATENCY_TIMER, 32);
/* 32-byte cache line size */
pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, 8);
/* Set SysErr enable, Parity enable */
pci_set_cmd(dev, 0, PCI_COMMAND_FAST_BACK | PCI_COMMAND_SERR | PCI_COMMAND_PARITY);
/* If this device is an ISA bridge, set the
* have_isa_bridge flag. We will then go looking
* for things like keyboard, etc
*/
if ((dev->class >> 8) == PCI_CLASS_BRIDGE_ISA ||
(dev->class >> 8) == PCI_CLASS_BRIDGE_EISA)
have_isa_bridge = !0;
/* sort out the irq mapping for this device */
switch (machine_arch_type) {
case MACH_TYPE_EBSA285:
dev->irq = ebsa_irqval(dev);
/* Turn on bus mastering - boot loader doesn't
* - perhaps it should! - dag
*/
pci_set_cmd(dev, 0, PCI_COMMAND_MASTER);
break;
#ifdef CONFIG_CATS
case MACH_TYPE_CATS:
dev->irq = cats_irqval(dev);
/* Turn on bus mastering - boot loader doesn't
* - perhaps it should! - dag
*/
pci_set_cmd(dev, 0, PCI_COMMAND_MASTER);
break;
#endif
#ifdef CONFIG_ARCH_NETWINDER
case MACH_TYPE_NETWINDER:
/* disable ROM */
pci_write_config_dword(dev, PCI_ROM_ADDRESS, 0);
#define DEV(v,d) ((v)<<16|(d))
switch (DEV(dev->vendor, dev->device)) {
/* Ether 100 */
case DEV(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142):
pci_set_base_addr(dev, 0, DEC21143_IO_BASE);
pci_set_base_addr(dev, 1, DEC21143_MEM_BASE);
pci_set_cmd(dev, 0, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY | PCI_COMMAND_IO);
/* Put the chip to sleep in case the driver isn't loaded */
pci_write_config_dword(dev, 0x40, 0x80000000);
dev->irq = IRQ_NETWINDER_ETHER100;
break;
/* Ether 10 */
case DEV(PCI_VENDOR_ID_WINBOND2,0x5a5a):
pci_set_base_addr(dev, 0, ETHER10_IO_BASE);
pci_set_cmd(dev, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY, PCI_COMMAND_IO);
dev->irq = IRQ_NETWINDER_ETHER10;
break;
/* ISA bridge */
case DEV(PCI_VENDOR_ID_WINBOND,PCI_DEVICE_ID_WINBOND_83C553):
pci_set_base_addr(dev, 0, 0);
pci_set_cmd(dev, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY, PCI_COMMAND_IO);
/*
* Enable all memory requests from ISA to be channeled to PCI
*/
pci_write_config_byte(dev, 0x48, 255);
/*
* Disable ping-pong (as per errata)
*/
pci_write_config_byte(dev, 0x42, 0);
/*
* Enable PCI packet retry
*/
pci_write_config_byte(dev, 0x40, 0x22);
/*
* Do not use PCI CPU park enable, park on
* last master, disable GAT bit
*/
pci_write_config_byte(dev, 0x83, 0x02);
/*
* Default rotating priorities
*/
pci_write_config_byte(dev, 0x80, 0xe0);
/*
* Rotate bank 4
*/
pci_write_config_byte(dev, 0x81, 0x01);
break;
/* IDE */
case DEV(PCI_VENDOR_ID_WINBOND,PCI_DEVICE_ID_WINBOND_82C105):
pci_set_base_addr(dev, 0, 0x1f1);
pci_set_base_addr(dev, 1, 0x3f5);
pci_set_base_addr(dev, 2, 0x171);
pci_set_base_addr(dev, 3, 0x375);
pci_set_base_addr(dev, 4, 0xe801);
pci_set_cmd(dev, PCI_COMMAND_MEMORY, PCI_COMMAND_MASTER | PCI_COMMAND_IO);
dev->irq = IRQ_ISA_HARDDISK1;
break;
/* VGA */
case DEV(PCI_VENDOR_ID_INTERG,0x2000):
pci_set_base_addr(dev, 0, CYBER2000_MEM_BASE);
pci_set_cmd(dev, PCI_COMMAND_MASTER, PCI_COMMAND_IO | PCI_COMMAND_MEMORY);
dev->irq = IRQ_NETWINDER_VGA;
break;
}
#endif
}
}
static inline void
report_pci_dev_error(void)
{
struct pci_dev *dev;
for (dev = pci_devices; dev; dev = dev->next) {
unsigned short status;
pci_read_config_word(dev, PCI_STATUS, &status);
if (status & 0xf900) {
printk(KERN_DEBUG "PCI: [%04X:%04X] status = %X\n",
dev->vendor, dev->device, status);
pci_write_config_word(dev, PCI_STATUS, status & 0xf900);
}
}
}
#else
#define report_pci_dev_error()
#endif
/*
* Warn on PCI errors. Please report any occurances!
*/
static void
irq_pci_err(int irq, void *dev_id, struct pt_regs *regs)
{
static unsigned long next_warn;
unsigned long cmd = *CSR_PCICMD & 0x0000ffff;
unsigned long ctrl = (*CSR_SA110_CNTL) & 0xffffde07;
unsigned long irqstatus = *CSR_IRQ_RAWSTATUS;
int warn = time_after_eq(jiffies, next_warn);
ctrl |= SA110_CNTL_DISCARDTIMER;
if (warn) {
next_warn = jiffies + 3 * HZ / 100;
printk(KERN_DEBUG "PCI: ");
}
if (irqstatus & (1 << 31)) {
if (warn)
printk("parity error ");
cmd |= 1 << 31;
}
if (irqstatus & (1 << 30)) {
if (warn)
printk("target abort ");
cmd |= 1 << 28;
}
if (irqstatus & (1 << 29)) {
if (warn)
printk("master abort ");
cmd |= 1 << 29;
}
if (irqstatus & (1 << 28)) {
if (warn)
printk("data parity error ");
cmd |= 1 << 24;
}
if (irqstatus & (1 << 27)) {
if (warn)
printk("discard timer expired ");
ctrl &= ~SA110_CNTL_DISCARDTIMER;
}
if (irqstatus & (1 << 23)) {
if (warn)
printk("system error ");
ctrl |= SA110_CNTL_RXSERR;
}
if (warn)
printk("pc=[<%08lX>]\n", instruction_pointer(regs));
report_pci_dev_error();
*CSR_PCICMD = cmd;
*CSR_SA110_CNTL = ctrl;
}
static struct irqaction irq_pci_error = {
irq_pci_err, SA_INTERRUPT, 0, "PCI error", NULL, NULL
};
void __init pcibios_init_ebsa285(void)
{
setup_arm_irq(IRQ_PCI_ERR, &irq_pci_error);
}
/* /*
* Netwinder stuff * Netwinder stuff
...@@ -627,7 +366,7 @@ void __netwinder_text cpld_modify(int mask, int set) ...@@ -627,7 +366,7 @@ void __netwinder_text cpld_modify(int mask, int set)
current_cpld = (current_cpld & ~mask) | set; current_cpld = (current_cpld & ~mask) | set;
gpio_modify_io(GPIO_DATA, 0); gpio_modify_io(GPIO_DATA | GPIO_IOCLK | GPIO_IOLOAD, 0);
gpio_modify_op(GPIO_IOLOAD, 0); gpio_modify_op(GPIO_IOLOAD, 0);
for (msk = 8; msk; msk >>= 1) { for (msk = 8; msk; msk >>= 1) {
...@@ -647,7 +386,7 @@ static void __init cpld_init(void) ...@@ -647,7 +386,7 @@ static void __init cpld_init(void)
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&gpio_lock, flags); spin_lock_irqsave(&gpio_lock, flags);
cpld_modify(-1, CPLD_UNMUTE | 4); cpld_modify(-1, CPLD_UNMUTE | CPLD_7111_DISABLE);
spin_unlock_irqrestore(&gpio_lock, flags); spin_unlock_irqrestore(&gpio_lock, flags);
} }
...@@ -713,12 +452,15 @@ static inline void rwa010_global_init(void) ...@@ -713,12 +452,15 @@ static inline void rwa010_global_init(void)
dprintk("Card no = %d\n", inb(0x203)); dprintk("Card no = %d\n", inb(0x203));
/* disable the modem section of the chip */
WRITE_RWA(7, 3); WRITE_RWA(7, 3);
WRITE_RWA(0x30, 0); WRITE_RWA(0x30, 0);
/* disable the cdrom section of the chip */
WRITE_RWA(7, 4); WRITE_RWA(7, 4);
WRITE_RWA(0x30, 0); WRITE_RWA(0x30, 0);
/* disable the MPU-401 section of the chip */
WRITE_RWA(7, 2); WRITE_RWA(7, 2);
WRITE_RWA(0x30, 0); WRITE_RWA(0x30, 0);
} }
...@@ -925,6 +667,7 @@ void __init hw_init(void) ...@@ -925,6 +667,7 @@ void __init hw_init(void)
extern void register_isa_ports(unsigned int, unsigned int, extern void register_isa_ports(unsigned int, unsigned int,
unsigned int); unsigned int);
register_isa_ports(DC21285_PCI_MEM, DC21285_PCI_IO, 0); register_isa_ports(DC21285_PCI_MEM, DC21285_PCI_IO, 0);
#ifdef CONFIG_ARCH_NETWINDER #ifdef CONFIG_ARCH_NETWINDER
/* /*
* this ought to have a better home... * this ought to have a better home...
......
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/fs.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
......
...@@ -9,10 +9,12 @@ ...@@ -9,10 +9,12 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/mm.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#ifdef CONFIG_CPU_32
asmlinkage int sys_iopl(unsigned long turn_on) asmlinkage int sys_iopl(unsigned long turn_on)
{ {
if (turn_on && !capable(CAP_SYS_RAWIO)) if (turn_on && !capable(CAP_SYS_RAWIO))
...@@ -25,3 +27,9 @@ asmlinkage int sys_iopl(unsigned long turn_on) ...@@ -25,3 +27,9 @@ asmlinkage int sys_iopl(unsigned long turn_on)
return 0; return 0;
} }
#else
asmlinkage int sys_iopl(unsigned long turn_on)
{
return -ENOSYS;
}
#endif
...@@ -494,8 +494,5 @@ void __init init_IRQ(void) ...@@ -494,8 +494,5 @@ void __init init_IRQ(void)
} }
irq_init_irq(); irq_init_irq();
#ifdef CONFIG_ARCH_ACORN
init_FIQ();
#endif
init_dma(); init_dma();
} }
...@@ -138,7 +138,7 @@ static void __netwinder_text netwinder_leds_event(led_event_t evt) ...@@ -138,7 +138,7 @@ static void __netwinder_text netwinder_leds_event(led_event_t evt)
switch (evt) { switch (evt) {
case led_start: case led_start:
led_state |= LED_STATE_ENABLED; led_state |= LED_STATE_ENABLED;
hw_led_state = 0; hw_led_state = GPIO_GREEN_LED;
break; break;
case led_stop: case led_stop:
...@@ -223,26 +223,20 @@ static void dummy_leds_event(led_event_t evt) ...@@ -223,26 +223,20 @@ static void dummy_leds_event(led_event_t evt)
{ {
} }
void __init static void __init
init_leds_event(led_event_t evt) init_leds_event(led_event_t evt)
{ {
switch (machine_arch_type) { leds_event = dummy_leds_event;
#ifdef CONFIG_FOOTBRIDGE #ifdef CONFIG_FOOTBRIDGE
case MACH_TYPE_EBSA285: if (machine_is_ebsa285() || machine_is_co285())
case MACH_TYPE_CO285:
leds_event = ebsa285_leds_event; leds_event = ebsa285_leds_event;
break;
#endif #endif
#ifdef CONFIG_ARCH_NETWINDER #ifdef CONFIG_ARCH_NETWINDER
case MACH_TYPE_NETWINDER: if (machine_is_netwinder())
leds_event = netwinder_leds_event; leds_event = netwinder_leds_event;
break;
#endif #endif
default:
leds_event = dummy_leds_event;
}
leds_event(evt); leds_event(evt);
} }
......
/* /*
* linux/arch/arm/kernel/process.c * linux/arch/arm/kernel/process.c
* *
* Copyright (C) 1996 Russell King - Converted to ARM. * Copyright (C) 1996-1999 Russell King - Converted to ARM.
* Origional Copyright (C) 1995 Linus Torvalds * Origional Copyright (C) 1995 Linus Torvalds
*/ */
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/system.h> #include <asm/system.h>
#include <asm/arch/system.h>
#include <asm/io.h> #include <asm/io.h>
extern char *processor_modes[]; extern char *processor_modes[];
...@@ -60,26 +61,38 @@ void cpu_idle(void) ...@@ -60,26 +61,38 @@ void cpu_idle(void)
current->priority = 0; current->priority = 0;
current->counter = -100; current->counter = -100;
while (1) { while (1) {
if (!current->need_resched && !hlt_counter) if (!hlt_counter)
proc_idle(); arch_do_idle();
schedule(); if (current->need_resched) {
schedule();
#ifndef CONFIG_NO_PGT_CACHE #ifndef CONFIG_NO_PGT_CACHE
check_pgt_cache(); check_pgt_cache();
#endif #endif
}
} }
} }
static char reboot_mode = 'h'; static char reboot_mode = 'h';
void __init reboot_setup(char *str, int *ints) int __init reboot_setup(char *str)
{ {
reboot_mode = str[0]; reboot_mode = str[0];
return 0;
} }
__setup("reboot=", reboot_setup);
void machine_restart(char * __unused) void machine_restart(char * __unused)
{ {
/*
* Turn off caches, interrupts, etc
*/
cpu_proc_fin();
arch_reset(reboot_mode); arch_reset(reboot_mode);
panic("Reboot failed\n");
printk("Reboot failed -- System halted\n");
while (1); while (1);
} }
...@@ -135,6 +148,35 @@ void show_regs(struct pt_regs * regs) ...@@ -135,6 +148,35 @@ void show_regs(struct pt_regs * regs)
#endif #endif
} }
void show_fpregs(struct user_fp *regs)
{
int i;
for (i = 0; i < 8; i++) {
unsigned long *p;
char type;
p = (unsigned long *)(regs->fpregs + i);
switch (regs->ftype[i]) {
case 1: type = 'f'; break;
case 2: type = 'd'; break;
case 3: type = 'e'; break;
default: type = '?'; break;
}
if (regs->init_flag)
type = '?';
printk(" f%d(%c): %08lx %08lx %08lx%c",
i, type, p[0], p[1], p[2], i & 1 ? '\n' : ' ');
}
printk("FPSR: %08lx FPCR: %08lx\n",
(unsigned long)regs->fpsr,
(unsigned long)regs->fpcr);
}
/* /*
* Task structure and kernel stack allocation. * Task structure and kernel stack allocation.
* *
...@@ -206,6 +248,7 @@ void exit_thread(void) ...@@ -206,6 +248,7 @@ void exit_thread(void)
void flush_thread(void) void flush_thread(void)
{ {
memset(&current->thread.debug, 0, sizeof(current->thread.debug)); memset(&current->thread.debug, 0, sizeof(current->thread.debug));
memset(&current->thread.fpstate, 0, sizeof(current->thread.fpstate));
current->used_math = 0; current->used_math = 0;
current->flags &= ~PF_USEDFPU; current->flags &= ~PF_USEDFPU;
} }
...@@ -237,12 +280,10 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long esp, ...@@ -237,12 +280,10 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long esp,
*/ */
int dump_fpu (struct pt_regs *regs, struct user_fp *fp) int dump_fpu (struct pt_regs *regs, struct user_fp *fp)
{ {
int fpvalid = 0;
if (current->used_math) if (current->used_math)
memcpy (fp, &current->thread.fpstate.soft, sizeof (fp)); memcpy(fp, &current->thread.fpstate.soft, sizeof (fp));
return fpvalid; return current->used_math;
} }
/* /*
...@@ -281,6 +322,7 @@ void dump_thread(struct pt_regs * regs, struct user * dump) ...@@ -281,6 +322,7 @@ void dump_thread(struct pt_regs * regs, struct user * dump)
*/ */
pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
{ {
extern long sys_exit(int) __attribute__((noreturn));
pid_t __ret; pid_t __ret;
__asm__ __volatile__( __asm__ __volatile__(
......
...@@ -447,8 +447,8 @@ asmlinkage int sys_ptrace(long request, long pid, long addr, long data) ...@@ -447,8 +447,8 @@ asmlinkage int sys_ptrace(long request, long pid, long addr, long data)
unsigned long tmp; unsigned long tmp;
ret = read_long(child, addr, &tmp); ret = read_long(child, addr, &tmp);
if (ret) if (!ret)
put_user(tmp, (unsigned long *) data); ret = put_user(tmp, (unsigned long *) data);
goto out; goto out;
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
* Modified for ARM by Russell King * Modified for ARM by Russell King
*/ */
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/errno.h>
#include <asm/semaphore.h> #include <asm/semaphore.h>
......
This diff is collapsed.
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/unistd.h> #include <linux/unistd.h>
#include <linux/stddef.h> #include <linux/stddef.h>
#include <linux/binfmts.h>
#include <linux/tty.h>
#include <asm/ucontext.h> #include <asm/ucontext.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
...@@ -550,6 +552,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall) ...@@ -550,6 +552,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
default: default:
lock_kernel(); lock_kernel();
sigaddset(&current->signal, signr); sigaddset(&current->signal, signr);
recalc_sigpending(current);
current->flags |= PF_SIGNALED; current->flags |= PF_SIGNALED;
do_exit(exit_code); do_exit(exit_code);
/* NOTREACHED */ /* NOTREACHED */
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/shm.h> #include <linux/shm.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/mman.h> #include <linux/mman.h>
#include <linux/fs.h>
#include <linux/file.h> #include <linux/file.h>
#include <linux/utsname.h> #include <linux/utsname.h>
......
...@@ -365,7 +365,6 @@ asmlinkage void baddataabort(int code, unsigned long instr, struct pt_regs *regs ...@@ -365,7 +365,6 @@ asmlinkage void baddataabort(int code, unsigned long instr, struct pt_regs *regs
{ {
pgd_t *pgd; pgd_t *pgd;
printk ("current->thread.memmap = %08lX\n", current->thread.memmap);
pgd = pgd_offset(current->mm, addr); pgd = pgd_offset(current->mm, addr);
printk ("*pgd = %08lx", pgd_val (*pgd)); printk ("*pgd = %08lx", pgd_val (*pgd));
if (!pgd_none (*pgd)) { if (!pgd_none (*pgd)) {
......
This diff is collapsed.
...@@ -21,6 +21,11 @@ ENTRY(__backtrace) ...@@ -21,6 +21,11 @@ ENTRY(__backtrace)
mov r0, fp mov r0, fp
ENTRY(c_backtrace) ENTRY(c_backtrace)
#ifndef CONFIG_FRAME_POINTER
mov pc, lr
#else
stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location...
#ifdef CONFIG_CPU_32 #ifdef CONFIG_CPU_32
tst r1, #0x10 @ 26 or 32-bit? tst r1, #0x10 @ 26 or 32-bit?
...@@ -103,3 +108,5 @@ ENTRY(c_backtrace) ...@@ -103,3 +108,5 @@ ENTRY(c_backtrace)
.align .align
.Ldsi: .word 0x00e92dd8 >> 2 .Ldsi: .word 0x00e92dd8 >> 2
.word 0x00e92d00 >> 2 .word 0x00e92d00 >> 2
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -30,7 +30,7 @@ SYMBOL_NAME(uaccess_user): ...@@ -30,7 +30,7 @@ SYMBOL_NAME(uaccess_user):
.word __arch_copy_to_user .word __arch_copy_to_user
.word __arch_clear_user .word __arch_clear_user
.word __arch_strncpy_from_user .word __arch_strncpy_from_user
.word __arch_strlen_user .word __arch_strnlen_user
@ In : r0 = x, r1 = addr, r2 = error @ In : r0 = x, r1 = addr, r2 = error
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
(c) Corel Computer Corporation, 1998 (c) Corel Computer Corporation, 1998
(c) Philip Blundell 1998-1999 (c) Philip Blundell 1998-1999
Direct questions, comments to Scott Bambrough <scottb@corelcomputer.com> Direct questions, comments to Scott Bambrough <scottb@netwinder.org>
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment