Commit be620917 authored by Linus Torvalds's avatar Linus Torvalds

Import 2.3.99pre8

parent 5cb39380
......@@ -245,8 +245,7 @@ new /proc/net/dev format. This will also provide support for new
features like IPv6.
The IP firewalling and NAT code has been replaced again. The
actual modules (including ipfwadm and ipchains backwards-compatibility
modules) are currently distributed separately: see
userspace tool `iptables' is distributed at:
http://antarctica.penguincomputing.com/~netfilter/
http://www.samba.org/netfilter/
http://netfilter.kernelnotes.org
......@@ -737,12 +736,13 @@ PPP
The 2.4.0b1 release:
ftp://linuxcare.com.au/pub/ppp/ppp-2.4.0b1.tar.gz
IP Chains
iptables
=========
The 1.3.8 release:
ftp://ftp.rustcorp.com/ipchains/ipchains-1.3.8.tar.gz
ftp://ftp.rustcorp.com/ipchains/ipchains-1.3.8.tar.bz2
The 1.1.0 release:
http://antarctica.penguincomputing.com/~netfilter/iptables-1.1.0.tar.bz2
http://www.samba.org/netfilter/iptables-1.1.0.tar.bz2
http://netfilter.kernelnotes.org/iptables-1.1.0.tar.bz2
IP Masq Adm
===========
......
......@@ -1477,7 +1477,7 @@ CONFIG_MD_LINEAR
If unsure, say Y.
RAID-0 (striping) mode
CONFIG_MD_STRIPED
CONFIG_MD_RAID0
If you say Y here, then your multiple devices driver will be able to
use the so-called raid0 mode, i.e. it will combine the hard disk
partitions into one logical device in such a fashion as to fill them
......@@ -1496,8 +1496,17 @@ CONFIG_MD_STRIPED
If unsure, say Y.
DANGEROUS! RAID-1/RAID-5 code
CONFIG_RAID15_DANGEROUS
This new RAID1/RAID5 code has been freshly merged, and has not seen
enough testing yet. While there are no known bugs in it, it might
destroy your filesystems, eat your data and start World War III.
You have been warned.
If unsure, say N.
RAID-1 (mirroring) mode
CONFIG_MD_MIRRORING
CONFIG_MD_RAID1
A RAID-1 set consists of several disk drives which are exact copies
of each other. In the event of a mirror failure, the RAID driver
will continue to use the operational mirrors in the set, providing
......@@ -9160,7 +9169,6 @@ CONFIG_SKFP
Read Documentation/networking/skfp.txt for information about
the driver.
WARNING: this driver does currently not support 64 bit systems!
Questions concerning this driver can be addressed to:
linux@syskonnect.de
......@@ -15220,6 +15228,17 @@ CONFIG_ARCH_PERSONAL_SERVER
If you have any questions or comments about the Compaq Personal
Server, send e-mail to skiff@crl.dec.com
Include support for the LinkUp Systems L7200 SDB
CONFIG_ARCH_L7200
Say Y here if you intend to run this kernel on a LinkUp Systems
L7200 Software Development Board which uses an ARM720T processor.
Information on this board can be obtained at:
http://www.linkupsys.com/
If you have any questions or comments about the Linux kernel port
to this board, send e-mail to sjhill@cotw.com
Math emulation
CONFIG_NWFPE
Say Y to include the NWFPE floating point emulator in the kernel.
......@@ -15332,6 +15351,18 @@ CONFIG_SERIAL_21285_CONSOLE
If you have enabled the serial port on the 21285 footbridge you can
make it the console by answering Y to this option.
L7200 serial port support
CONFIG_SERIAL_L7200
If you have a LinkUp Systems L7200 board you can enable its two
onboard serial ports by enabling this option. The device numbers
are major ID 4 with minor 64 and 65 respectively.
Console on L7200 serial port
CONFIG_SERIAL_L7200_CONSOLE
If you have enabled the serial ports on the L7200 development board
you can make the first serial port the console by answering Y to
this option.
Footbridge Mode
CONFIG_HOST_FOOTBRIDGE
The 21285 Footbridge chip can operate in either `host mode' or
......
The Intel Assabet (SA-1110 evaluation) board
============================================
Please see:
http://developer.intel.com/design/strong/quicklist/eval-plat/sa-1110.htm
http://developer.intel.com/design/strong/guides/278278.htm
Also some notes from John G Dorsey <jd5q@andrew.cmu.edu>:
http://www.cs.cmu.edu/~wearable/software/assabet.html
To build the kernel:
make assabet_config
make config
[accept all defaults]
make dep
make zImage
Typically, you'll need angelboot to load the kernel.
The following angelboot.opt file should be used:
----- begin angelboot.opt -----
base 0xc0008000
entry 0xc0008000
r0 0x00000000
r1 0x00000019
device /dev/ttyS1
options "9600 8N1"
baud 115200
otherfile ramdisk_img.gz
otherbase 0xc0800000
exec minicom
----- end angelboot.opt -----
Then load the kernel and ramdisk with:
angelboot -f angelboot.opt zImage
Here it is assumed that your Assabet is connected to ttyS1 and that
minicom is preconfigured with /dev/ttyS1, 9600 baud, 8N1, no flow control
by default.
This is work in progress...
Please send any patches to nico@cam.org.
......@@ -13,12 +13,38 @@ To compile for Brutus, you must issue the following comands:
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.
0xc0008000 as well with the value of registers r0 = 0 and r1 = 16 upon
entry.
But prior to execute the kernel, a ramdisk image must also be loaded in
memory. Use memory address 0xd8000000 for this. Note that the file
containing the (compressed) ramdisk image must not exceed 4 MB.
Typically, you'll need angelboot to load the kernel.
The following angelboot.opt file should be used:
----- begin angelboot.opt -----
base 0xc0008000
entry 0xc0008000
r0 0x00000000
r1 0x00000010
device /dev/ttyS0
options "9600 8N1"
baud 115200
otherfile ramdisk_img.gz
otherbase 0xd8000000
----- end angelboot.opt -----
Then load the kernel and ramdisk with:
angelboot -f angelboot.opt zImage
The first Brutus serial port (assumed to be linked to /dev/ttyS0 on your
host PC) is used by angel to load the kernel and ramdisk image. The serial
console is provided through the second Brutus serial port. To access it,
you may use minicom configured with /dev/ttyS1, 9600 baud, 8N1, no flow
control.
Currently supported:
- RS232 serial ports
- audio output
......
......@@ -10,8 +10,6 @@ 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.
The designs for this board have been released under a GPL-like license;
Contact: J.D. Bakker <bakker@thorgal.et.tudelft.nl>;
pictures at http://www-ict.its.tudelft.nl/~erik/open-source/LART/
For lot more info, see the LART page at http://www.lart.tudelft.nl.
......@@ -14,15 +14,50 @@ complete Linux environment. Otherwyse a ramdisk image may be used. Use
'make thinclient_config' before any 'make config'. This will set up
defaults for ThinClient support.
The kernel zImage is linked to be loaded and executed at 0xc0200000.
Also the following registers should have the specified values upon entry:
r0 = 0
r1 = 24 (this is the ThinClient architecture number)
Here is a tipical angel.opt option file if the kernel is loaded through
the Angel Debug Monitor:
----- begin angelboot.opt -----
base 0xc0200000
entry 0xc0200000
r0 0x00000000
r1 0x00000018
device /dev/ttyS1
options "9600 8N1"
baud 115200
#otherfile ramdisk.gz
#otherbase 0xc0800000
exec minicom
----- end angelboot.opt -----
Then the kernel (and ramdisk if otherfile/otherbase lines above are
uncommented) would be loaded with:
angelboot -f angelboot.opt zImage
Here it is assumed that the ThinClient is connected to ttyS1 on your PC
and that minicom is preconfigured with /dev/ttyS1, 9600 baud, 8N1, no flow
control by default.
If any other bootloader is used, ensure it accomplish the same, especially
for r0/r1 register values before jumping into the kernel.
Supported peripherals:
- SA1100 LCD frame buffer (only 8bpp yet)
- on-board SMC 92C94 ethernet NIC
- SA1100 serial port
- flash memory access
- possibly UCB1200 audio (not tested yet)
To do:
- touchscreen driver
- flash memory access
- 16bpp frame buffer support
- extra (external) serial port driver
- pcmcia
......
(C)Copyright 1998-2000 SysKonnect,
===========================================================================
skfp.txt created 17-Feb-2000
skfp.txt created 11-May-2000
Readme File for skfp.o v2.05
Readme File for skfp.o v2.06
This file contains
......@@ -143,6 +143,12 @@ please ensure that the following information is available:
(6) HISTORY
===========
v2.06 (20000511) (In-Kernel version)
New features:
- 64 bit support
- new pci dma interface
- in kernel 2.3.99
v2.05 (20000217) (In-Kernel version)
New features:
- Changes for 2.3.45 kernel
......
DASD device driver
S/390's disk devices (DASDs) are managed by Linux via the DASD device
driver. It is valid for all types of DASDs and represents them to
Linux as block devices, namely "dd". Currently the DASD driver uses a
single major number (254) and 4 minor numbers per volume (1 for the
physical volume and 3 for partitions). With respect to partitions see
below. Thus you may have up to 64 DASD devices in your system.
The kernel parameter 'dasd=from-to,...' may be issued arbitrary times
in the kernel's parameter line or not at all. The 'from' and 'to'
parameters are to be given in hexadecimal notation without a leading
0x.
If you supply kernel parameters the different instances are processed
in order of appearance and a minor number is reserved for any device
covered by the supplied range up to 64 volumes. Additional DASDs are
ignored. If you do not supply the 'dasd=' kernel parameter at all, the
DASD driver registers all supported DASDs of your system to a minor
number in ascending order of the subchannel number.
The driver currently supports ECKD-devices and there are stubs for
support of the FBA and CKD architectures. For the FBA architecture
only some smart data structures are missing to make the support
complete.
We performed our testing on 3380 and 3390 type disksof different
sizes, under VM and on the bare hardware (LPAR), using internal disks
of the multiprise as well as a RAMAC virtual array. Disks exported by
an Enterprise Storage Server (Seascape) should work fine as well.
We currently implement one partition per volume, which is the whole
volume, skipping the first blocks up to the volume label. These are
reserved for IPL records and IBM's volume label to assure
accessability of the DASD from other OSs. In a later stage we will
provide support of partitions, maybe VTOC oriented or using a kind of
partition table in the label record.
USAGE
-Low-level format (?CKD only)
For using an ECKD-DASD as a Linux harddisk you have to low-level
format the tracks by issueing the BLKDASDFORMAT-ioctl on that
device. This will erase any data on that volume including IBM volume
labels, VTOCs etc. The ioctl may take a 'struct format_data *' or
'NULL' as an argument.
typedef struct {
int start_unit;
int stop_unit;
int blksize;
} format_data_t;
When a NULL argument is passed to the BLKDASDFORMAT ioctl the whole
disk is formatted to a blocksize of 1024 bytes. Otherwise start_unit
and stop_unit are the first and last track to be formatted. If
stop_unit is -1 it implies that the DASD is formatted from start_unit
up to the last track. blksize can be any power of two between 512 and
4096. We recommend no blksize lower than 1024 because the ext2fs uses
1kB blocks anyway and you gain approx. 50% of capacity increasing your
blksize from 512 byte to 1kB.
-Make a filesystem
Then you can mk??fs the filesystem of your choice on that volume or
partition. For reasons of sanity you should build your filesystem on
the partition /dev/dd?1 instead of the whole volume. You only lose 3kB
but may be sure that you can reuse your data after introduction of a
real partition table.
BUGS:
- Performance sometimes is rather low because we don't fully exploit clustering
TODO-List:
- Add IBM'S Disk layout to genhd
- Enhance driver to use more than one major number
- Enable usage as a module
- Support Cache fast write and DASD fast write (ECKD)
This diff is collapsed.
VERSION = 2
PATCHLEVEL = 3
SUBLEVEL = 99
EXTRAVERSION = -pre7
EXTRAVERSION = -pre8
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
......
......@@ -38,7 +38,6 @@ dummy:; @echo '*** 2.3 kernels no longer build correctly with old versions of b
@false
endif
# GCC 2.7 uses different options to later compilers; sort out which we have
NEW_GCC := $(shell if $(CC) --version 2>&1 | grep '^2\.7' > /dev/null; then echo n; else echo y; fi)
......@@ -52,13 +51,16 @@ CFLAGS_PROC_CPU_32v3 := -march=armv3
CFLAGS_PROC_CPU_32v4 := -march=armv4
CFLAGS_ARM6 := -mtune=arm6
CFLAGS_ARM7 := -mtune=arm7
CFLAGS_ARM720 := -mtune=arm7tdmi
CFLAGS_SA110 := -mtune=strongarm110
else
CFLAGS += -DNO_TEXT_SECTIONS
CFLAGS_PROC_CPU_26 := -m3
CFLAGS_PROC_CPU_32v3 :=
CFLAGS_PROC_CPU_32v4 :=
CFLAGS_ARM6 := -m6
CFLAGS_ARM7 := -m6
CFLAGS_ARM720 := -m6
CFLAGS_SA110 := -m6
endif
......@@ -91,8 +93,16 @@ ifeq ($(CONFIG_CPU_32),y)
ifeq ($(CONFIG_CPU_ARM7),y)
CFLAGS += $(CFLAGS_ARM7)
else
ifeq ($(CONFIG_CPU_ARM720),y)
CFLAGS += $(CFLAGS_ARM720)
else
ifeq ($(CONFIG_CPU_SA110),y)
CFLAGS += $(CFLAGS_SA110)
else
ifeq ($(CONFIG_CPU_SA1100),y)
CFLAGS += $(CFLAGS_SA110)
endif
endif
endif
endif
endif
......@@ -151,6 +161,11 @@ MACHINE = sa1100
ARCHDIR = sa1100
endif
ifeq ($(CONFIG_ARCH_L7200),y)
MACHINE = l7200
ARCHDIR = l7200
endif
HEAD := arch/arm/kernel/head-$(PROCESSOR).o \
arch/arm/kernel/init_task.o
SUBDIRS += arch/arm/kernel arch/arm/mm arch/arm/lib \
......@@ -261,3 +276,14 @@ thinclient_config:
$(RM) arch/arm/defconfig
cp arch/arm/def-configs/thinclient arch/arm/defconfig
assabet_config:
$(RM) arch/arm/defconfig
cp arch/arm/def-configs/assabet arch/arm/defconfig
lart_config:
$(RM) arch/arm/defconfig
cp arch/arm/def-configs/lart arch/arm/defconfig
l7200_config:
$(RM) arch/arm/defconfig
cp arch/arm/def-configs/lusl7200 arch/arm/defconfig
......@@ -55,6 +55,12 @@ ifeq ($(CONFIG_SA1100_VICTOR),y)
ZTEXTADDR = 0x00002000
ZBSSADDR = 0xc0100000
endif
ifeq ($(CONFIG_SA1100_THINCLIENT),y)
ZTEXTADDR = 0xC0200000
endif
ifeq ($(CONFIG_SA1100_GRAPHICSCLIENT),y)
ZTEXTADDR = 0xC0200000
endif
endif
#
......
......@@ -8,27 +8,31 @@
#include <linux/config.h>
#ifndef CONFIG_ARCH_SA1100
#error What am I doing here...
#endif
.section ".start", #alloc, #execinstr
__SA1100_start:
#ifndef CONFIG_ARCH_SA1100
#error What am I doing here...
#endif
@ Preserve r0/r1 i.e. kernel entry values
mov r8, r0
mov r9, r1
#if defined( CONFIG_SA1100_BRUTUS ) || \
#if defined( CONFIG_SA1100_ASSABET ) || \
defined( CONFIG_SA1100_BRUTUS ) || \
defined( CONFIG_SA1100_THINCLIENT )
@ Booting from Angel -- need to enter SVC mode
#define angel_SWIreason_EnterSVC 0x17 /* from arm.h, in angel source */
#define angel_SWI_ARM (0xEF123456 & 0xffffff)
#define angel_SWI_ARM (0x123456)
mov r0, #angel_SWIreason_EnterSVC
swi #angel_SWI_ARM
@ turn off interrupts to prevent the angel from running
mrs r0, cpsr
orr r0, r0, #0xc0
msr cpsr, r0
msr cpsr_c, r0
#endif
#ifdef CONFIG_SA1100_VICTOR
......@@ -55,18 +59,23 @@ __SA1100_start:
mcr p15, 0, r0, c7, c10, 4 @ drain WB
mcr p15, 0, r0, c7, c7, 0 @ flush I & D caches
@ disabling MMU, enabling I cache
@ disabling MMU and caches
mrc p15, 0, r0, c1, c0, 0 @ read control reg
bic r0, r0, #0x0d @ clear WB, DC, MMU
orr r0, r0, #0x1000 @ set Icache
bic r0, r0, #0x1000 @ clear Icache
mcr p15, 0, r0, c1, c0, 0
#ifdef CONFIG_SA1100_BRUTUS
#if defined( CONFIG_SA1100_ASSABET ) || \
defined( CONFIG_SA1100_BRUTUS )
@ Initialize UART1 for early serial communication
@ since UART3 is used by angelboot. It is routed to
@ alternate GPIO functions on Brutus.
b 1f
#ifdef CONFIG_SA1100_BRUTUS
#define ALT_UART
#endif
GPIO_BASE: .long 0x90040000
#define GPDR 0x04
#define GAFR 0x1c
......@@ -90,7 +99,9 @@ UART1_BASE: .long 0x80010000
#define BAUD_DIV_9600 0x017
#define BAUD_DIV BAUD_DIV_9600
1: ldr r0, GPIO_BASE
1:
#ifdef ALT_UART
ldr r0, GPIO_BASE
ldr r1, [r0, #GPDR]
bic r1, r1, #1<<15
orr r1, r1, #1<<14
......@@ -102,6 +113,7 @@ UART1_BASE: .long 0x80010000
ldr r1, [r0, #PPAR]
orr r1, r1, #1<<12
str r1, [r0, #PPAR]
#endif
ldr r0, UART1_BASE
1: ldr r1, [r0, #UTSR1]
tst r1, #1<<0 @ TBY
......@@ -120,8 +132,7 @@ UART1_BASE: .long 0x80010000
str r1, [r0, #UTSR0]
#endif
@ set registers for entry
mov r0, #0
mov r1, #16
@ Restore initial r0/r1
@ (r8 preserved)
mov r0, r8
mov r1, r9
......@@ -5,7 +5,6 @@
*/
#include <linux/linkage.h>
.section ".start", #alloc, #execinstr
/*
* Debugging stuff
......@@ -47,6 +46,10 @@
#endif
.endm
/*
* Note that these macros must not contain any code which is not
* 100% relocatable. Any attempt to do so will result in a crash.
*/
#if 0
.macro loadsp, rb
mov \rb, #0x7c000000
......@@ -66,6 +69,8 @@
.endm
#endif
.section ".start", #alloc, #execinstr
/*
* sort out different calling conventions
*/
......@@ -79,11 +84,13 @@ start:
b 1f
.word 0x016f2818 @ Magic numbers to help the loader
.word start
1:
1: adr r8, start @ get the start address of the code
@ (used for locating the page tables)
/*
* some architecture specific code can
* be inserted by the linker here
* some architecture specific code can be inserted
* by the linker here, but it should preserve r0, r1
* and r8.
*/
.text
......@@ -142,31 +149,6 @@ start:
bl cache_clean_flush
add pc, r5, r0 @ call relocation code
/*
* Page table physical address list
*/
.align 5
.type pgtable,#object
pgtable: .word 0x00004000 @ 0x00
.word 0x10004000 @ 0x01
.word 0x00000000 @ 0x02
.word 0x40004000 @ 0x03
.word 0x00004000 @ 0x04
.word 0x00004000 @ 0x05
.word 0x00004000 @ 0x06
.word 0x80004000 @ 0x07
.word 0x00004000 @ 0x08
.word 0x00000000 @ 0x09
.word 0x00000000 @ 0x0a
.word 0x00000000 @ 0x0b
.word 0x00000000 @ 0x0c
.word 0x00000000 @ 0x0d
.word 0x10004000 @ 0x0e
.word 0x08004000 @ 0x0f
.word 0xc0004000 @ 0x10
.size pgtable,. - pgtable
1:
.type LC0, #object
LC0: .word __bss_start
.word _end
......@@ -175,17 +157,33 @@ LC0: .word __bss_start
.word user_stack+4096
.size LC0, . - LC0
/*
* Turn on the cache. We need to setup some page tables so that we
* can have both the I and D caches on.
*
* We place the page tables 16k down from the kernel execution address,
* and we hope that nothing else is using it. If we're using it, we
* will go pop!
*
* On entry,
* r4 = kernel execution address
* r6 = processor ID
* r7 = architecture number
* r8 = run-time address of "start"
* On exit,
* r0, r1, r2, r3, r8, r9 corrupted
* This routine must preserve:
* r4, r5, r6, r7
*/
.align 5
cache_on: ldr r1, proc_sa110_type
eor r1, r1, r6
movs r1, r1, lsr #5
movne pc, lr
cmp r7, #(1b - pgtable) >> 2
movge pc, lr
adr r3, pgtable
ldr r3, [r3, r7, lsl #2]
teq r3, #0
moveq pc, lr
sub r3, r4, #16384 @ Page directory size
bic r3, r3, #0xff @ Align the pointer
bic r3, r3, #0x3f
/*
* Initialise the page tables
*/
......@@ -220,6 +218,9 @@ cache_on: ldr r1, proc_sa110_type
mov pc, lr
/*
* This code is relocatable. It is relocated by the above code to the end
* of the kernel and executed there. During this time, we have no stacks.
*
* r0 = decompressed kernel length
* r1-r3 = unused
* r4 = kernel execution address
......@@ -248,13 +249,26 @@ call_kernel: bl cache_clean_flush
mov r1, r7 @ restore architecture number
mov pc, r4 @ call kernel
/*
* Here follow the relocatable cache support functions for
* the various processors.
*/
.type proc_sa110_type,#object
proc_sa110_type:
.word 0x4401a100
.size proc_sa110_type, . - proc_sa110_type
/*
* Turn off StrongARM cache and MMU
* Turn off StrongARM cache and MMU. It is safe to
* leave the I-cache on.
*
* On entry,
* r6 = processor ID
* On exit,
* r0, r1 corrupted
* This routine must preserve:
* r4, r6, r7
*/
.align 5
cache_off: ldr r1, proc_sa110_type
......@@ -268,6 +282,13 @@ cache_off: ldr r1, proc_sa110_type
/*
* Clean and flush the cache to maintain consistency.
*
* On entry,
* r6 = processor ID
* On exit,
* r1, r2, r12 corrupted
* This routine must preserve:
* r4, r6, r7
*/
.align 5
cache_clean_flush:
......@@ -278,7 +299,7 @@ cache_clean_flush:
bic r1, pc, #31
add r2, r1, #32768
1: ldr r12, [r1], #32
1: ldr r12, [r1], #32 @ s/w flush D cache
teq r1, r2
bne 1b
......@@ -286,6 +307,10 @@ cache_clean_flush:
mcr p15, 0, r1, c7, c10, 4 @ drain WB
mov pc, lr
/*
* Various debugging routines for printing hex characters and
* memory, which again must be relocatable.
*/
#ifdef DEBUG
.type phexbuf,#object
phexbuf: .space 12
......
......@@ -14,7 +14,7 @@ bool 'Prompt for development and/or incomplete code/drivers' CONFIG_EXPERIMENTAL
endmenu
mainmenu_option next_comment
comment 'System and processor type'
comment 'System and Processor Type'
choice 'ARM system type' \
"Archimedes CONFIG_ARCH_ARC \
......@@ -22,6 +22,8 @@ choice 'ARM system type' \
RiscPC CONFIG_ARCH_RPC \
EBSA-110 CONFIG_ARCH_EBSA110 \
FootBridge-based CONFIG_FOOTBRIDGE" RiscPC
# the following are placeholders for when they are fully integrated
# LinkUp-L7200 CONFIG_ARCH_L7200
# SA1100-based CONFIG_ARCH_SA1100
if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
......@@ -34,6 +36,7 @@ if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
fi
if [ "$CONFIG_HOST_FOOTBRIDGE" = "y" ]; then
comment 'Footbridge Implementations'
bool ' Include support for EBSA285' CONFIG_ARCH_EBSA285
bool ' Include support for CATS' CONFIG_ARCH_CATS
bool ' Include support for NetWinder' CONFIG_ARCH_NETWINDER
......@@ -47,15 +50,19 @@ if [ "$CONFIG_ADDIN_FOOTBRIDGE" = "y" ]; then
fi
if [ "$CONFIG_ARCH_SA1100" = "y" ]; then
choice 'SA1100 implementation' \
"Brutus CONFIG_SA1100_BRUTUS \
Empeg CONFIG_SA1100_EMPEG \
Itsy CONFIG_SA1100_ITSY \
LART CONFIG_SA1100_LART \
PLEB CONFIG_SA1100_PLEB \
ThinClient CONFIG_SA1100_THINCLIENT \
Victor CONFIG_SA1100_VICTOR \
Tifon CONFIG_SA1100_TIFON" Brutus
comment 'SA11x0 Implementations'
bool ' Include support for Assabet' CONFIG_SA110_ASSABET
bool ' Include support for Bitsy' CONFIG_SA1100_BITSY
bool ' Include support for Brutus' CONFIG_SA1100_BRUTUS
# bool ' Include support for Empeg' CONFIG_SA1100_EMPEG
# bool ' Include support for Itsy' CONFIG_SA1100_ITSY
bool ' Include support for LART' CONFIG_SA1100_LART
# bool ' Include support for PLEB' CONFIG_SA1100_PLEB
bool ' Include support for ThinClient' CONFIG_SA1100_THINCLIENT
bool ' Include support for GraphicsClient' CONFIG_SA1100_GRAPHICSCLIENT
bool ' Include support for Victor' CONFIG_SA1100_VICTOR
# bool ' Include support for Tifon' CONFIG_SA1100_TIFON
define_bool CONFIG_DISCONTIGMEM y
fi
#
......@@ -87,30 +94,32 @@ if [ "$CONFIG_ARCH_ARC" = "y" -o \
else
define_bool CONFIG_CPU_32 y
define_bool CONFIG_CPU_26 n
fi
#
# Select CPU and optimisation dependent on architecture
#
if [ "$CONFIG_ARCH_EBSA110" = "y" -o \
"$CONFIG_ARCH_SA1100" = "y" -o \
"$CONFIG_FOOTBRIDGE" = "y" -o \
"$CONFIG_ARCH_TBOX" = "y" -o \
"$CONFIG_ARCH_SHARK" = "y" -o \
"$CONFIG_ARCH_NEXUSPCI" = "y" ]; then
define_bool CONFIG_CPU_32v4 y
if [ "$CONFIG_ARCH_SA1100" = "y" ]; then
define_bool CONFIG_CPU_SA1100 y
else
define_bool CONFIG_CPU_SA110 y
fi
else
if [ "$CONFIG_ARCH_RPC" = "y" ]; then
define_bool CONFIG_CPU_32v3 y
bool 'Support ARM610' CONFIG_CPU_ARM6
bool 'Support ARM710' CONFIG_CPU_ARM7
bool 'Support StrongARM110' CONFIG_CPU_SA110
fi
fi
#
# Select CPU and optimisation dependent on architecture
#
if [ "$CONFIG_ARCH_RPC" = "y" ]; then
define_bool CONFIG_CPU_32v3 y
bool 'Support ARM610' CONFIG_CPU_ARM6
bool 'Support ARM710' CONFIG_CPU_ARM7
bool 'Support StrongARM110' CONFIG_CPU_SA110
fi
if [ "$CONFIG_ARCH_EBSA110" = "y" -o \
"$CONFIG_FOOTBRIDGE" = "y" -o \
"$CONFIG_ARCH_TBOX" = "y" -o \
"$CONFIG_ARCH_SHARK" = "y" -o \
"$CONFIG_ARCH_NEXUSPCI" = "y" ]; then
define_bool CONFIG_CPU_32v4 y
define_bool CONFIG_CPU_SA110 y
fi
if [ "$CONFIG_ARCH_L7200" = "y" ]; then
define_bool CONFIG_CPU_32v4 y
define_bool CONFIG_CPU_ARM720 y
fi
if [ "$CONFIG_ARCH_SA1100" = "y" ]; then
define_bool CONFIG_CPU_32v4 y
define_bool CONFIG_CPU_SA1100 y
fi
#
......@@ -137,10 +146,12 @@ else
define_bool CONFIG_ISA_DMA n
fi
define_bool CONFIG_SBUS n
define_bool CONFIG_PCMCIA n
if [ "$CONFIG_CPU_32" = "y" -a "$CONFIG_ARCH_EBSA110" != "y" ]; then
bool 'Kernel-mode alignment trap handler' CONFIG_ALIGNMENT_TRAP
fi
#bool 'Split text into discardable sections' CONFIG_TEXT_SECTIONS
endmenu
mainmenu_option next_comment
......
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=y
CONFIG_UID16=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
#
# System and processor type
#
# CONFIG_ARCH_ARC is not set
# CONFIG_ARCH_A5K is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_FOOTBRIDGE is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y
# CONFIG_SA1100_BRUTUS is not set
# CONFIG_SA1100_EMPEG is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_BITSY is not set
# CONFIG_SA1100_LART is not set
# CONFIG_SA1100_PLEB is not set
# CONFIG_SA1100_THINCLIENT is not set
# CONFIG_SA1100_VICTOR is not set
# CONFIG_SA1100_TIFON is not set
CONFIG_DISCONTIGMEM=y
# CONFIG_ARCH_ACORN is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y
CONFIG_CPU_SA1100=y
# CONFIG_PCI is not set
# CONFIG_ISA is not set
# CONFIG_ISA_DMA is not set
# CONFIG_ALIGNMENT_TRAP is not set
#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
# CONFIG_KMOD is not set
#
# General setup
#
# CONFIG_NET is not set
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_SYSCTL is not set
CONFIG_NWFPE=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
CONFIG_CMDLINE=""
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_PCI is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set
#
# Plug and Play configuration
#
# CONFIG_PNP is not set
# CONFIG_ISAPNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_FLASH is not set
#
# Character devices
#
CONFIG_VT=y
# CONFIG_VT_CONSOLE is not set
CONFIG_SERIAL_SA1100=y
CONFIG_SERIAL_SA1100_CONSOLE=y
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=32
#
# I2C support
#
# CONFIG_I2C is not set
#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_MOUSE is not set
#
# Joysticks
#
# CONFIG_JOYSTICK is not set
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_DRM is not set
# CONFIG_DRM_TDFX is not set
# CONFIG_AGP is not set
#
# Console drivers
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_FB=y
#
# Frame-buffer support
#
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FB_SA1100=y
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FBCON_ADVANCED is not set
CONFIG_FBCON_CFB2=y
CONFIG_FBCON_CFB4=y
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_FONTWIDTH8_ONLY=y
CONFIG_FBCON_FONTS=y
CONFIG_FONT_8x8=y
# CONFIG_FONT_8x16 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
#
# ATA/IDE/MFM/RLL support
#
# CONFIG_IDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI support
#
# CONFIG_SCSI is not set
#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_DEBUG is not set
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UFS_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_INFO=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_LL is not set
......@@ -18,12 +18,15 @@ CONFIG_EXPERIMENTAL=y
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_FOOTBRIDGE is not set
CONFIG_ARCH_SA1100=y
# CONFIG_SA1100_ASSABET is not set
CONFIG_SA1100_BRUTUS=y
# CONFIG_SA1100_EMPEG is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_BITSY is not set
# CONFIG_SA1100_LART is not set
# CONFIG_SA1100_PLEB is not set
# CONFIG_SA1100_THINCLIENT is not set
# CONFIG_SA1100_GRAPHICSCLIENT is not set
# CONFIG_SA1100_VICTOR is not set
# CONFIG_SA1100_TIFON is not set
CONFIG_DISCONTIGMEM=y
......@@ -32,7 +35,11 @@ CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y
CONFIG_CPU_SA1100=y
# CONFIG_PCI is not set
# CONFIG_ISA is not set
# CONFIG_ISA_DMA is not set
# CONFIG_SBUS is not set
# CONFIG_PCMCIA is not set
# CONFIG_ALIGNMENT_TRAP is not set
#
......@@ -62,12 +69,14 @@ CONFIG_BINFMT_ELF=y
#
# CONFIG_PARPORT is not set
CONFIG_CMDLINE=""
CONFIG_LEDS=y
CONFIG_LEDS_TIMER=y
CONFIG_LEDS_CPU=y
#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_PCI is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set
......@@ -82,24 +91,23 @@ CONFIG_CMDLINE=""
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_IDE is not set
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_ONLY is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_LVM is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_STRIPED is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_FLASH is not set
#
# Character devices
......@@ -154,11 +162,6 @@ CONFIG_UNIX98_PTY_COUNT=32
# CONFIG_DRM_TDFX is not set
# CONFIG_AGP is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Console drivers
#
......@@ -171,10 +174,6 @@ CONFIG_FB=y
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FB_SA1100=y
# CONFIG_FB_MATROX is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FBCON_ADVANCED is not set
CONFIG_FBCON_CFB2=y
......@@ -188,6 +187,13 @@ CONFIG_FONT_8x8=y
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
#
# ATA/IDE/MFM/RLL support
#
# CONFIG_IDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI support
#
......@@ -200,6 +206,7 @@ CONFIG_FONT_8x8=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
......@@ -233,6 +240,11 @@ CONFIG_EXT2_FS=y
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Kernel hacking
#
......
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
#
# System and processor type
#
# CONFIG_ARCH_ARC is not set
# CONFIG_ARCH_A5K is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_FOOTBRIDGE is not set
CONFIG_ARCH_SA1100=y
# CONFIG_SA1100_BRUTUS is not set
# CONFIG_SA1100_EMPEG is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_LART is not set
# CONFIG_SA1100_PLEB is not set
CONFIG_SA1100_GRAPHICSCLIENT=y
# CONFIG_SA1100_VICTOR is not set
# CONFIG_SA1100_TIFON is not set
CONFIG_DISCONTIGMEM=y
# CONFIG_ARCH_ACORN is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y
CONFIG_CPU_SA1100=y
# CONFIG_ISA_DMA is not set
CONFIG_ALIGNMENT_TRAP=y
#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
# CONFIG_KMOD is not set
#
# General setup
#
CONFIG_NET=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_NWFPE=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
# CONFIG_PARPORT is not set
CONFIG_CMDLINE="ip=off"
#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_PCI is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_LAN is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set
#
# Plug and Play configuration
#
# CONFIG_PNP is not set
# CONFIG_ISAPNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_IDE is not set
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_ONLY is not set
#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_XD is not set
CONFIG_PARIDE_PARPORT=y
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
#
# Character devices
#
CONFIG_VT=y
# CONFIG_VT_CONSOLE is not set
CONFIG_SERIAL_SA1100=y
CONFIG_SERIAL_SA1100_CONSOLE=y
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=32
#
# I2C support
#
# CONFIG_I2C is not set
#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_MOUSE is not set
#
# Joysticks
#
# CONFIG_JOYSTICK is not set
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_DRM is not set
# CONFIG_DRM_TDFX is not set
#
# PCMCIA character device support
#
# CONFIG_AGP is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Console drivers
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_FB=y
#
# Frame-buffer support
#
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FB_SA1100=y
# CONFIG_FB_MATROX is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FBCON_ADVANCED is not set
CONFIG_FBCON_CFB2=y
CONFIG_FBCON_CFB4=y
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_FONTWIDTH8_ONLY=y
CONFIG_FBCON_FONTS=y
# CONFIG_FONT_8x8 is not set
CONFIG_FONT_8x16=y
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
#
# Networking options
#
# CONFIG_PACKET is not set
# CONFIG_NETLINK is not set
# CONFIG_NETFILTER is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_PNP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_PNP_RARP is not set
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_ALIAS is not set
# CONFIG_SYN_COOKIES is not set
#
# (it is safe to leave these untouched)
#
CONFIG_SKB_LARGE=y
# CONFIG_IPV6 is not set
# CONFIG_KHTTPD is not set
# CONFIG_ATM is not set
#
#
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_DECNET is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# Network device support
#
CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_SB1000 is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
# CONFIG_ARM_AM79C961A is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
CONFIG_NET_VENDOR_SMC=y
# CONFIG_WD80x3 is not set
# CONFIG_ULTRA is not set
# CONFIG_ULTRA32 is not set
CONFIG_SMC9194=y
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_RTL8139 is not set
# CONFIG_DM9102 is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_NET_ISA is not set
# CONFIG_NET_EISA is not set
# CONFIG_NET_POCKET is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_YELLOWFIN is not set
# CONFIG_ACENIC is not set
# CONFIG_SK98LIN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Token Ring driver support
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# PCMCIA network device support
#
# CONFIG_NET_PCMCIA is not set
#
# SCSI support
#
# CONFIG_SCSI is not set
#
# Filesystems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
# CONFIG_NFSD is not set
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_SGI_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_NLS is not set
#
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_INFO=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_LL is not set
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=y
CONFIG_UID16=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
#
# System and processor type
#
# CONFIG_ARCH_ARC is not set
# CONFIG_ARCH_A5K is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_FOOTBRIDGE is not set
CONFIG_ARCH_SA1100=y
# CONFIG_SA1100_ASSABET is not set
# CONFIG_SA1100_BRUTUS is not set
# CONFIG_SA1100_EMPEG is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_BITSY is not set
CONFIG_SA1100_LART=y
# CONFIG_SA1100_PLEB is not set
# CONFIG_SA1100_THINCLIENT is not set
# CONFIG_SA1100_VICTOR is not set
# CONFIG_SA1100_TIFON is not set
CONFIG_DISCONTIGMEM=y
# CONFIG_ARCH_ACORN is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y
CONFIG_CPU_SA1100=y
# CONFIG_PCI is not set
# CONFIG_ISA is not set
# CONFIG_ISA_DMA is not set
CONFIG_ALIGNMENT_TRAP=y
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
# CONFIG_KMOD is not set
#
# General setup
#
CONFIG_NET=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_SYSCTL is not set
CONFIG_NWFPE=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
CONFIG_CMDLINE="console=ttyS0,9600"
CONFIG_LEDS=y
# CONFIG_LEDS_TIMER is not set
CONFIG_LEDS_CPU=y
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Plug and Play configuration
#
# CONFIG_PNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_FLASH is not set
#
# Character devices
#
# CONFIG_VT is not set
CONFIG_SERIAL_SA1100=y
CONFIG_SERIAL_SA1100_CONSOLE=y
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_UNIX98_PTYS is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_MOUSE is not set
#
# Joysticks
#
# CONFIG_JOYSTICK is not set
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_DRM is not set
# CONFIG_AGP is not set
#
# Networking options
#
# CONFIG_PACKET is not set
# CONFIG_NETLINK is not set
# CONFIG_NETFILTER is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_ALIAS is not set
# CONFIG_SYN_COOKIES is not set
#
# (it is safe to leave these untouched)
#
# CONFIG_SKB_LARGE is not set
# CONFIG_IPV6 is not set
# CONFIG_KHTTPD is not set
# CONFIG_ATM is not set
#
#
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_DECNET is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# Network device support
#
CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_SB1000 is not set
#
# Ethernet (10 or 100Mbit)
#
# CONFIG_NET_ETHERNET is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_YELLOWFIN is not set
# CONFIG_ACENIC is not set
# CONFIG_SK98LIN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=y
CONFIG_PPP_ASYNC=y
# CONFIG_PPP_SYNC_TTY is not set
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=m
CONFIG_SLIP=y
CONFIG_SLIP_COMPRESSED=y
# CONFIG_SLIP_SMART is not set
# CONFIG_SLIP_MODE_SLIP6 is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# ATA/IDE/MFM/RLL support
#
# CONFIG_IDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI support
#
# CONFIG_SCSI is not set
#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_FAT_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
CONFIG_NFS_FS=y
# CONFIG_NFSD is not set
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_INFO=y
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_DEBUG_LL=y
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=y
CONFIG_UID16=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
#
# System and Processor Type
#
# CONFIG_ARCH_ARC is not set
# CONFIG_ARCH_A5K is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_FOOTBRIDGE is not set
CONFIG_ARCH_L7200=y
# CONFIG_ARCH_ACORN is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y
CONFIG_CPU_ARM720=y
# CONFIG_PCI is not set
# CONFIG_ISA is not set
# CONFIG_ISA_DMA is not set
# CONFIG_SBUS is not set
# CONFIG_PCMCIA is not set
# CONFIG_ALIGNMENT_TRAP is not set
#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
#
# General setup
#
# CONFIG_NET is not set
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_NWFPE=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set
#
# Plug and Play configuration
#
# CONFIG_PNP is not set
# CONFIG_ISAPNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_LVM is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_STRIPED is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
#
# Character devices
#
# CONFIG_VT is not set
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_COMPUTONE is not set
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
CONFIG_SERIAL_L7200=y
CONFIG_SERIAL_L7200_CONSOLE=y
# CONFIG_DIGIEPCA is not set
# CONFIG_DIGI is not set
# CONFIG_ESPSERIAL is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_ISI is not set
# CONFIG_SYNCLINK is not set
# CONFIG_N_HDLC is not set
# CONFIG_RISCOM8 is not set
# CONFIG_SPECIALIX is not set
# CONFIG_SX is not set
# CONFIG_STALDRV is not set
# CONFIG_UNIX98_PTYS is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_MOUSE is not set
#
# Joysticks
#
# CONFIG_JOYSTICK is not set
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
#
# Video For Linux
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_DRM is not set
# CONFIG_DRM_TDFX is not set
# CONFIG_AGP is not set
#
# ATA/IDE/MFM/RLL support
#
# CONFIG_IDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI support
#
# CONFIG_SCSI is not set
#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_RAMFS is not set
# CONFIG_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX4FS_RW is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_SYSV_FS_WRITE is not set
# CONFIG_UDF_FS is not set
# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_NCPFS_NLS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_INFO=y
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_DEBUG_LL=y
......@@ -18,12 +18,15 @@ CONFIG_EXPERIMENTAL=y
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_FOOTBRIDGE is not set
CONFIG_ARCH_SA1100=y
# CONFIG_SA1100_ASSABET is not set
# CONFIG_SA1100_BRUTUS is not set
# CONFIG_SA1100_EMPEG is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_BITSY is not set
# CONFIG_SA1100_LART is not set
# CONFIG_SA1100_PLEB is not set
CONFIG_SA1100_THINCLIENT=y
# CONFIG_SA1100_GRAPHICSCLIENT is not set
# CONFIG_SA1100_VICTOR is not set
# CONFIG_SA1100_TIFON is not set
CONFIG_DISCONTIGMEM=y
......@@ -32,7 +35,11 @@ CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_CPU_32v4=y
CONFIG_CPU_SA1100=y
# CONFIG_PCI is not set
# CONFIG_ISA is not set
# CONFIG_ISA_DMA is not set
# CONFIG_SBUS is not set
# CONFIG_PCMCIA is not set
CONFIG_ALIGNMENT_TRAP=y
#
......@@ -56,14 +63,18 @@ CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
CONFIG_CMDLINE="root=nfs"
# CONFIG_LEDS is not set
#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_PCI is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_LAN is not set
# CONFIG_I2O_SCSI is not set
......@@ -79,25 +90,23 @@ CONFIG_CMDLINE="root=nfs"
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_IDE is not set
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_ONLY is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
#
# Additional Block Devices
#
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_LVM is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_STRIPED is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_FLASH=y
#
# Character devices
......@@ -135,7 +144,6 @@ CONFIG_UNIX98_PTY_COUNT=32
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
# CONFIG_EFI_RTC is not set
#
# Video For Linux
......@@ -153,15 +161,6 @@ CONFIG_UNIX98_PTY_COUNT=32
# CONFIG_DRM_TDFX is not set
# CONFIG_AGP is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Misc devices
#
#
# Console drivers
#
......@@ -174,10 +173,6 @@ CONFIG_FB=y
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FB_SA1100=y
# CONFIG_FB_MATROX is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FBCON_ADVANCED is not set
CONFIG_FBCON_CFB2=y
......@@ -300,7 +295,7 @@ CONFIG_SMC9194=y
# CONFIG_NET_RADIO is not set
#
# Token Ring driver support
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
......@@ -312,6 +307,13 @@ CONFIG_SMC9194=y
#
# CONFIG_WAN is not set
#
# ATA/IDE/MFM/RLL support
#
# CONFIG_IDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI support
#
......@@ -324,6 +326,7 @@ CONFIG_SMC9194=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
......@@ -369,6 +372,11 @@ CONFIG_LOCKD=y
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Kernel hacking
#
......
......@@ -19,6 +19,7 @@ O_OBJS_ebsa110 = dma-dummy.o
O_OBJS_footbridge = dma.o dma-footbridge.o $(ISA_DMA_OBJS) hw-footbridge.o isa.o
O_OBJS_nexuspci = dma-dummy.o
O_OBJS_sa1100 = dma-dummy.o fiq.o
O_OBJS_l7200 = dma-dummy.o fiq.o
O_TARGET := kernel.o
......
......@@ -33,7 +33,8 @@ struct machine_desc {
};
/*
* Set of macros to define architecture features
* Set of macros to define architecture features. This is built into
* a table by the linker.
*/
#define MACHINE_START(_type,_name) \
const struct machine_desc __mach_desc_##_type \
......
......@@ -378,6 +378,9 @@ static int __init netwinder_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
case DEV(PCI_VENDOR_ID_INTERG, PCI_DEVICE_ID_INTERG_5000):
return IRQ_NETWINDER_VGA;
case DEV(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285):
return 0;
default:
printk(KERN_ERR "PCI: %02X:%02X [%04X:%04X] unknown device\n",
dev->bus->number, dev->devfn,
......
......@@ -68,7 +68,7 @@
.long SYMBOL_NAME(sys_ni_syscall) /* was sys_mpx */
.long SYMBOL_NAME(sys_setpgid)
.long SYMBOL_NAME(sys_ni_syscall) /* was sys_ulimit */
.long SYMBOL_NAME(sys_olduname)
.long SYMBOL_NAME(sys_ni_syscall) /* was sys_olduname */
/* 60 */ .long SYMBOL_NAME(sys_umask)
.long SYMBOL_NAME(sys_chroot)
.long SYMBOL_NAME(sys_ustat)
......@@ -118,7 +118,7 @@
.long SYMBOL_NAME(sys_newstat)
.long SYMBOL_NAME(sys_newlstat)
.long SYMBOL_NAME(sys_newfstat)
.long SYMBOL_NAME(sys_uname)
.long SYMBOL_NAME(sys_ni_syscall) /* was sys_uname */
/* 110 */ .long SYMBOL_NAME(sys_iopl)
.long SYMBOL_NAME(sys_vhangup)
.long SYMBOL_NAME(sys_ni_syscall)
......
......@@ -160,6 +160,33 @@
bne 1001b
.endm
#elif defined(CONFIG_ARCH_L7200)
.macro addruart,rx
mrc p15, 0, \rx, c1, c0
tst \rx, #1 @ MMU enabled?
moveq \rx, #0x80000000 @ physical base address
movne \rx, #0xd0000000 @ virtual address
add \rx, \rx, #0x00044000 @ Ser1
@ add \rx, \rx, #0x00045000 @ Ser2
.endm
.macro senduart,rd,rx
str \rd, [\rx, #0x0] @ UARTDR1
.endm
.macro waituart,rd,rx
1001: ldr \rd, [\rx, #0x18] @ UARTFLG
tst \rd, #1 << 5 @ UARTFLGUTXFF - 1 when full
bne 1001b
.endm
.macro busyuart,rd,rx
1001: ldr \rd, [\rx, #0x18] @ UARTFLG
tst \rd, #1 << 3 @ UARTFLGUBUSY - 1 when busy
bne 1001b
.endm
#else
#error Unknown architecture
#endif
......
......@@ -400,6 +400,26 @@ ENTRY(soft_irq_mask)
.macro irq_prio_table
.endm
#elif defined(CONFIG_ARCH_L7200)
/* Don't use fast interrupts */
.macro disable_fiq
.endm
.macro get_irqnr_and_base, irqnr, irqstat, base
ldr r4, =0xe0001000 @ Virt addr status reg
ldr \irqstat, [r4] @ get interrupts
mov \irqnr, #0
1001: tst \irqstat, #1
addeq \irqnr, \irqnr, #1
moveq \irqstat, \irqstat, lsr #1
tsteq \irqnr, #32
beq 1001b
teq \irqnr, #32
.endm
.macro irq_prio_table
.endm
#else
#error Unknown architecture
#endif
......
......@@ -63,31 +63,39 @@ ENTRY(_stext)
mov r5, #0
movne pc, r0
mov r0, #0 @ catch old NeTTroms
mov r1, #5 @ (will go in 2.5)
#endif
#ifdef CONFIG_ARCH_L7200
/*
* FIXME - No bootloader, so manually set 'r1' with our architecture number.
*/
mov r0, #0
mov r1, #5
mov r1, #19
#endif
/*
* Entry point. Entry *must* be called with r0 == 0, with the MMU off.
* r1 contains the unique architecture number. See
* linux/arch/arm/kernel/setup.c machine_desc[] array for the complete
* list. If you require a new number, please follow the instructions
* given in Documentation/arm/README.
* linux/arch/arm/kernel/arch.c and linux/include/asm-arm/system.h for
* the complete list. If you require a new number, please follow the
* instructions given towards the end of Documentation/arm/README.
*/
__entry: teq r0, #0
movne r0, #'i'
__entry: teq r0, #0 @ wrong register vals?
movne r0, #'i' @ yes, error 'i'
bne __error
bl __lookup_processor_type
teq r10, #0 @ invalid processor?
moveq r0, #'p'
moveq r0, #'p' @ yes, error 'p'
beq __error
bl __lookup_architecture_type
teq r7, #0 @ invalid architecture?
moveq r0, #'a'
moveq r0, #'a' @ yes, error 'a'
beq __error
bl __create_page_tables
adr lr, __ret
add pc, r10, #12 @ flush caches (returns ctrl reg)
adr lr, __ret @ return address
add pc, r10, #12 @ initialise processor
@ (return control reg)
__switch_data: .long __mmap_switched
.long SYMBOL_NAME(__bss_start)
......@@ -115,7 +123,8 @@ __ret: ldr lr, __switch_data
.align 5
__mmap_switched:
adr r3, __switch_data + 4
ldmia r3, {r4, r5, r6, r7, r8, sp} @ Setup stack
ldmia r3, {r4, r5, r6, r7, r8, sp} @ r4 = __bss_start
@ sp = stack pointer
mov fp, #0 @ Clear BSS
1: cmp r4, r5
......@@ -150,8 +159,8 @@ __create_page_tables:
add r4, r5, #SWAPPER_PGDIR_OFFSET
mov r0, r4
mov r3, #0
add r2, r0, #0x4000 @ Clear page table
1: str r3, [r0], #4
add r2, r0, #0x4000 @ 16k of page table
1: str r3, [r0], #4 @ Clear page table
str r3, [r0], #4
str r3, [r0], #4
str r3, [r0], #4
......@@ -164,19 +173,19 @@ __create_page_tables:
*
* The identity mapping will be removed by paging_init()
*/
mov r3, #0x0c
orr r3, r3, r8
add r3, r3, r5
mov r3, #0x0c @ cacheable, bufferable
orr r3, r3, r8 @ | pagetable flags
add r3, r3, r5 @ + start of RAM
add r0, r4, r5, lsr #18
str r3, [r0]
add r0, r4, #(TEXTADDR - 0x8000) >> 18
str r3, [r0], #4
str r3, [r0] @ identity mapping
add r0, r4, #(TEXTADDR - 0x8000) >> 18 @ start of kernel
str r3, [r0], #4 @ PAGE_OFFSET + 0MB
add r3, r3, #1 << 20
str r3, [r0], #4
str r3, [r0], #4 @ PAGE_OFFSET + 1MB
add r3, r3, #1 << 20
str r3, [r0], #4
str r3, [r0], #4 @ PAGE_OFFSET + 2MB
add r3, r3, #1 << 20
str r3, [r0], #4
str r3, [r0], #4 @ PAGE_OFFSET + 3MB
#ifdef CONFIG_DEBUG_LL
/*
* Map in IO space for serial debugging.
......@@ -194,6 +203,10 @@ __create_page_tables:
teq r0, r2
bne 1b
#ifdef CONFIG_ARCH_NETWINDER
/*
* If we're using the NetWinder, we need to map in
* the 16550-type serial port for the debug messages
*/
teq r1, #5
bne 1f
add r0, r4, #0x3fc0
......@@ -228,7 +241,10 @@ __create_page_tables:
* proceed. We ought to tell the user, but since we
* don't have any guarantee that we're even running on
* the right architecture, we do virtually nothing.
* r0 = ascii error character
* r0 = ascii error character:
* a = invalid architecture
* p = invalid processor
* i = invalid calling convention
*
* Generally, only serious errors cause this.
*/
......@@ -262,8 +278,11 @@ err_str: .asciz "\nError: "
#endif
/*
* Read processor ID register (CP#15, CR0), and determine
* processor type.
* Read processor ID register (CP#15, CR0), and look up in the linker-built
* supported processor list. Note that we can't use the absolute addresses
* for the __proc_info lists since we aren't running with the MMU on
* (and therefore, we are not in the correct address space). We have to
* calculate the offset.
*
* Returns:
* r5, r6, r7 corrupted
......@@ -274,20 +293,24 @@ err_str: .asciz "\nError: "
__lookup_processor_type:
adr r5, 2f
ldmia r5, {r7, r9, r10}
sub r5, r5, r10
add r7, r7, r5
sub r5, r5, r10 @ convert addresses
add r7, r7, r5 @ to our address space
add r10, r9, r5
mrc p15, 0, r9, c0, c0 @ get processor id
1: ldmia r10, {r5, r6, r8} @ value, mask, mmuflags
eor r5, r5, r9
tst r5, r6
and r6, r6, r9 @ mask wanted bits
teq r5, r6
moveq pc, lr
add r10, r10, #36 @ sizeof(proc_info_list)
cmp r10, r7
blt 1b
mov r10, #0
mov r10, #0 @ unknown processor
mov pc, lr
/*
* Look in include/asm-arm/procinfo.h and arch/arm/kernel/arch.[ch] for
* more information about the __proc_info and __arch_info structures.
*/
2: .long __proc_info_end
.long __proc_info_begin
.long 2b
......@@ -295,10 +318,14 @@ __lookup_processor_type:
.long __arch_info_end
/*
* Lookup machine architecture
* r1 = machine architecture number
* Lookup machine architecture in the linker-build list of architectures.
* Note that we can't use the absolute addresses for the __arch_info
* lists since we aren't running with the MMU on (and therefore, we are
* not in the correct address space). We have to calculate the offset.
*
* r1 = machine architecture number
* Returns:
* r4 = unused word
* r2, r3, r4 corrupted
* r5 = physical start address of RAM
* r6 = physical address of IO
* r7 = byte offset into page tables for IO
......@@ -306,16 +333,17 @@ __lookup_processor_type:
__lookup_architecture_type:
adr r4, 2b
ldmia r4, {r2, r3, r5, r6, r7} @ throw away r2, r3
sub r5, r4, r5
add r4, r6, r5
sub r5, r4, r5 @ convert addresses
add r4, r6, r5 @ to our address space
add r7, r7, r5
1: ldr r5, [r4]
1: ldr r5, [r4] @ get machine type
teq r5, r1
beq 2f
add r4, r4, #SIZEOF_MACHINE_DESC
cmp r4, r7
blt 1b
mov r7, #0
mov r7, #0 @ unknown architecture
mov pc, lr
2: ldmib r4, {r5, r6, r7}
2: ldmib r4, {r5, r6, r7} @ found, get results
mov r7, r7, lsr #18 @ pagetable byte offset
mov pc, lr
......@@ -248,66 +248,6 @@ asmlinkage int sys_execve(char *filenamei, char **argv, char **envp, struct pt_r
return error;
}
/* Compatability functions - we used to pass 5 parameters as r0, r1, r2, *r3, *(r3+4)
* We now use r0 - r4, and return an error if the old style calling standard is used.
* Eventually these functions will disappear.
*/
asmlinkage int sys_uname(struct old_utsname * name)
{
static int warned = 0;
int err;
if (warned == 0) {
warned ++;
printk (KERN_NOTICE "%s (%d): obsolete uname call\n",
current->comm, current->pid);
}
if(!name)
return -EFAULT;
down_read(&uts_sem);
err=copy_to_user (name, &system_utsname, sizeof (*name));
up_read(&uts_sem);
return err?-EFAULT:0;
}
asmlinkage int sys_olduname(struct oldold_utsname * name)
{
int error;
static int warned = 0;
if (warned == 0) {
warned ++;
printk (KERN_NOTICE "%s (%d): obsolete olduname call\n",
current->comm, current->pid);
}
if (!name)
return -EFAULT;
if (!access_ok(VERIFY_WRITE,name,sizeof(struct oldold_utsname)))
return -EFAULT;
down_read(&uts_sem);
error = __copy_to_user(&name->sysname,&system_utsname.sysname,__OLD_UTS_LEN);
error |= __put_user(0,name->sysname+__OLD_UTS_LEN);
error |= __copy_to_user(&name->nodename,&system_utsname.nodename,__OLD_UTS_LEN);
error |= __put_user(0,name->nodename+__OLD_UTS_LEN);
error |= __copy_to_user(&name->release,&system_utsname.release,__OLD_UTS_LEN);
error |= __put_user(0,name->release+__OLD_UTS_LEN);
error |= __copy_to_user(&name->version,&system_utsname.version,__OLD_UTS_LEN);
error |= __put_user(0,name->version+__OLD_UTS_LEN);
error |= __copy_to_user(&name->machine,&system_utsname.machine,__OLD_UTS_LEN);
error |= __put_user(0,name->machine+__OLD_UTS_LEN);
up_read(&uts_sem);
error = error ? -EFAULT : 0;
return error;
}
asmlinkage int sys_pause(void)
{
current->state = TASK_INTERRUPTIBLE;
......
......@@ -29,12 +29,12 @@
#define SA1100_STD_IO_MAPPING \
/* virtual physical length domain r w c b */ \
{ 0xe0000000, 0x20000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA0 IO */ \
{ 0xe4000000, 0x30000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA1 IO */ \
{ 0xe8000000, 0x28000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA0 attr */ \
{ 0xec000000, 0x38000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA1 attr */ \
{ 0xf0000000, 0x2c000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA0 mem */ \
{ 0xf4000000, 0x3c000000, 0x04000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCMCIA1 mem */ \
{ 0xe0000000, 0x20000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA0 IO */ \
{ 0xe4000000, 0x30000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA1 IO */ \
{ 0xe8000000, 0x28000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA0 attr */ \
{ 0xec000000, 0x38000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA1 attr */ \
{ 0xf0000000, 0x2c000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA0 mem */ \
{ 0xf4000000, 0x3c000000, 0x04000000, DOMAIN_IO, 1, 1, 0, 0 }, /* PCMCIA1 mem */ \
{ 0xf8000000, 0x80000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* PCM */ \
{ 0xfa000000, 0x90000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* SCM */ \
{ 0xfc000000, 0xa0000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* MER */ \
......@@ -63,16 +63,21 @@ static struct map_desc empeg_io_desc[] __initdata = {
#endif
};
static struct map_desc graphicsclient_io_desc[] __initdata = {
#ifdef CONFIG_SA1100_GRAPHICSCLIENT
{ 0xd0000000, 0x08000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 */
{ 0xd0800000, 0x18000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 3 */
{ 0xdc000000, 0x10000000, 0x00400000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD */
SA1100_STD_IO_MAPPING
#endif
};
static struct map_desc thinclient_io_desc[] __initdata = {
#ifdef CONFIG_SA1100_THINCLIENT
#if 1
/* ThinClient: only one of those... */
// { 0xd0000000, 0x00000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 when JP1 2-4 */
{ 0xd0000000, 0x08000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 when JP1 3-4 */
#if 0
{ 0xd0000000, 0x00000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 when JP1 2-4 */
#else
/* GraphicsClient: */
{ 0xd0000000, 0x08000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 */
{ 0xd0800000, 0x18000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 3 */
{ 0xd0000000, 0x08000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 1 when JP1 3-4 */
#endif
{ 0xdc000000, 0x10000000, 0x00400000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD */
SA1100_STD_IO_MAPPING
......@@ -104,7 +109,7 @@ static struct map_desc default_io_desc[] __initdata = {
* Here it would be wiser to simply assign a pointer to the appropriate
* list, but io_desc is already declared as an array in "map.h".
*/
struct map_desc io_desc[20] __initdata = { { 0, }, };
struct map_desc io_desc[20] __initdata = {};
unsigned int io_desc_size;
void __init select_sa1100_io_desc(void)
......@@ -118,6 +123,9 @@ void __init select_sa1100_io_desc(void)
} else if( machine_is_empeg() ) {
memcpy( io_desc, empeg_io_desc, sizeof(empeg_io_desc) );
io_desc_size = SIZE(empeg_io_desc);
} else if( machine_is_graphicsclient() ) {
memcpy( io_desc, graphicsclient_io_desc, sizeof(graphicsclient_io_desc) );
io_desc_size = SIZE(graphicsclient_io_desc);
} else if( machine_is_thinclient() ) {
memcpy( io_desc, thinclient_io_desc, sizeof(thinclient_io_desc) );
io_desc_size = SIZE(thinclient_io_desc);
......
......@@ -254,9 +254,7 @@ ENTRY(cpu_arm7_proc_init)
ENTRY(cpu_arm6_proc_fin)
ENTRY(cpu_arm7_proc_fin)
mrs r0, cpsr
orr r0, r0, #F_BIT | I_BIT
msr cpsr, r0
msr cpsr_c, #F_BIT | I_BIT | SVC_MODE
mov r0, #0x31 @ ....S..DP...M
mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr
......@@ -366,7 +364,8 @@ cpu_arm710_name:
.section ".text.init", #alloc, #execinstr
__arm6_setup: mov r0, #0
__arm6_setup: msr cpsr_c, #F_BIT | I_BIT | SVC_MODE
mov r0, #0
mcr p15, 0, r0, c7, c0 @ flush caches on v3
mcr p15, 0, r0, c5, c0 @ flush TLBs on v3
mcr p15, 0, r4, c2, c0 @ load page table pointer
......@@ -376,7 +375,8 @@ __arm6_setup: mov r0, #0
orr r0, r0, #0x100
mov pc, lr
__arm7_setup: mov r0, #0
__arm7_setup: msr cpsr_c, #F_BIT | I_BIT | SVC_MODE
mov r0, #0
mcr p15, 0, r0, c7, c0 @ flush caches on v3
mcr p15, 0, r0, c5, c0 @ flush TLBs on v3
mcr p15, 0, r4, c2, c0 @ load page table pointer
......
......@@ -423,9 +423,7 @@ ENTRY(cpu_sa1100_proc_init)
ENTRY(cpu_sa110_proc_fin)
stmfd sp!, {r1, lr}
mrs r0, cpsr
orr r0, r0, #F_BIT | I_BIT
msr cpsr, r0
msr cpsr_c, #F_BIT | I_BIT | SVC_MODE
bl cpu_sa110_flush_cache_all @ clean caches
1: mov r0, #0
mcr p15, 0, r0, c15, c2, 2 @ Disable clock switching
......@@ -437,9 +435,7 @@ ENTRY(cpu_sa110_proc_fin)
ENTRY(cpu_sa1100_proc_fin)
stmfd sp!, {r1, lr}
mrs r0, cpsr
orr r0, r0, #F_BIT | I_BIT
msr cpsr, r0
msr cpsr_c, #F_BIT | I_BIT | SVC_MODE
bl cpu_sa1100_flush_cache_all @ clean caches
b 1b
......@@ -505,7 +501,8 @@ cpu_sa1110_name:
.section ".text.init", #alloc, #execinstr
__sa110_setup: mov r0, #0
__sa110_setup: msr cpsr_c, #F_BIT | I_BIT | SVC_MODE
mov r0, #0
mcr p15, 0, r0, c7, c7 @ flush I,D caches on v4
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer on v4
mcr p15, 0, r0, c8, c7 @ flush I,D TLBs on v4
......
......@@ -110,7 +110,8 @@ CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_LVM is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_STRIPED is not set
# CONFIG_MD_RAID0 is not set
# CONFIG_RAID15_DANGEROUS is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
......
CFLAGS = -D__KERNEL__ -g -O2 -Wall -I$(TOPDIR)/include
ifdef CONFIG_SMP
CFLAGS += -D__SMP__
endif
CFLAGS = -g -O2 -Wall $(CPPFLAGS)
TARGET = $(TOPDIR)/include/asm-ia64/offsets.h
......
# s390/Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions
# for "archclean" and "archdep" for cleaning up and making dependencies for
# this architecture
#
# This file is subject to the terms and conditions of the GNU General Public
# License. See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 1994 by Linus Torvalds
#
LD=$(CROSS_COMPILE)ld -m elf_s390
OBJCOPY=$(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
LDFLAGS=-e start
LINKFLAGS =-T $(TOPDIR)/arch/s390/vmlinux.lds $(LDFLAGS)
CFLAGS_PIPE := -pipe
CFLAGS_NSR := -fno-strength-reduce
CFLAGS := $(CFLAGS) $(CFLAGS_PIPE) $(CFLAGS_NSR)
HEAD := arch/s390/kernel/head.o arch/s390/kernel/init_task.o
SUBDIRS := $(SUBDIRS) arch/s390/mm arch/s390/kernel arch/s390/lib \
drivers/s390
CORE_FILES := arch/s390/mm/mm.o arch/s390/kernel/kernel.o $(CORE_FILES) \
drivers/s390/io.o
LIBS := $(TOPDIR)/arch/s390/lib/lib.a $(LIBS) $(TOPDIR)/arch/s390/lib/lib.a
all: image listing
listing: vmlinux
@$(MAKEBOOT) listing
arch/s390/kernel: dummy
$(MAKE) linuxsubdirs SUBDIRS=arch/s390/kernel
arch/s390/mm: dummy
$(MAKE) linuxsubdirs SUBDIRS=arch/s390/mm
drivers/s390: dummy
$(MAKE) linuxsubdirs SUBDIRS=drivers/s390
MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
MAKESILO = $(MAKE) -C arch/$(ARCH)/tools/silo
MAKEDASDFMT = $(MAKE) -C arch/$(ARCH)/tools/dasdfmt
silo:
@$(MAKESILO) silo
dasdfmt:
@$(MAKEDASDFMT) dasdfmt
image: vmlinux
@$(MAKEBOOT) image
archclean:
@$(MAKEBOOT) clean
archmrproper:
archdep:
@$(MAKEBOOT) dep
#
# Makefile for the linux s390-specific parts of the memory manager.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now in the main makefile...
OBJCOPY = $(CROSS_COMPILE)objcopy
O_TARGET :=
O_OBJS :=
include $(TOPDIR)/Rules.make
.S.o:
$(CC) $(AFLAGS) -traditional -c $< -o $*.o
%.lnk: %.o
$(LD) -Ttext 0x0 -o $@ $<
%.boot: %.lnk
$(OBJCOPY) -O binary $< $@
image: $(CONFIGURE) $(TOPDIR)/vmlinux \
iplfba.boot ipleckd.boot ipldump.boot
$(OBJCOPY) -O binary $(TOPDIR)/vmlinux image
$(NM) $(TOPDIR)/vmlinux | grep -v '\(compiled\)\|\( [aU] \)\|\(\.\)\|\(LASH[RL]DI\)' | sort > $(TOPDIR)/System.map
listing: ../../../vmlinux
$(OBJDUMP) --disassemble --disassemble-all --disassemble-zeroes --reloc $(TOPDIR)/vmlinux > listing
dep:
clean:
rm -f image listing iplfba.boot ipleckd.boot ipldump.boot
/*
* arch/s390/boot/ipldump.S
*
* S390 version
* Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
*
* Tape dump ipl record. Put it on a tape and ipl from it and it will
* write a dump of the real storage after the ipl record on that tape.
*/
#include <asm/setup.h>
#include <asm/lowcore.h>
#define IPL_BS 1024
.org 0
.long 0x00080000,0x80000000+_start # The first 24 bytes are loaded
.long 0x07000000,0x60000001 # by ipl to addresses 0-23.
.long 0x02000000,0x20000000+IPL_BS # (a PSW and two CCWs).
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000 # svc old psw
.long 0x00000000,0x00000000 # program check old psw
.long 0x00000000,0x00000000 # machine check old psw
.long 0x00000000,0x00000000 # io old psw
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x000a0000,0x00000058 # external new psw
.long 0x000a0000,0x00000060 # svc new psw
.long 0x000a0000,0x00000068 # program check new psw
.long 0x000a0000,0x00000070 # machine check new psw
.long 0x00080000,0x80000000+.Lioint # io new psw
.org 0x100
.globl _start
_start:
l %r1,0xb8 # load ipl subchannel number
#
# find out memory size
#
mvc 104(8,0),.Lpcmem0 # setup program check handler
slr %r3,%r3
lhi %r2,1
sll %r2,20
.Lloop0:
l %r0,0(%r3) # test page
ar %r3,%r2 # add 1M
jnm .Lloop0 # r1 < 0x80000000 -> loop
.Lchkmem0:
n %r3,.L4malign0 # align to multiples of 4M
st %r3,.Lmemsize # store memory size
.Lmemok:
#
# first write a tape mark
#
bras %r14,.Ltapemark
#
# write real storage to tape
#
slr %r2,%r2 # start at address 0
bras %r14,.Lwriter # load ramdisk
#
# write another tape mark
#
bras %r14,.Ltapemark
#
# everything written, stop processor
#
lpsw .Lstopped
#
# subroutine for writing to tape
# Paramters:
# R1 = device number
# R2 = start address
# R3 = length
.Lwriter:
st %r14,.Lldret
la %r12,.Lorbread # r12 = address of orb
la %r5,.Lirb # r5 = address of irb
st %r2,.Lccwwrite+4 # initialize CCW data addresses
lctl %c6,%c6,.Lcr6
slr %r2,%r2
.Lldlp:
lhi %r6,3 # 3 retries
.Lssch:
ssch 0(%r12) # write chunk of IPL_BS bytes
jnz .Llderr
.Lw4end:
bras %r14,.Lwait4io
tm 8(%r5),0x82 # do we have a problem ?
jnz .Lrecov
l %r0,.Lccwwrite+4 # update CCW data addresses
ahi %r0,IPL_BS
st %r0,.Lccwwrite+4
clr %r0,%r3 # enough ?
jl .Lldlp
.Ldone:
l %r14,.Lldret
br %r14 # r2 contains the total size
.Lrecov:
bras %r14,.Lsense # do the sensing
brct %r6,.Lssch # dec. retry count & branch
j .Llderr
.Ltapemark:
st %r14,.Lldret
la %r12,.Lorbmark # r12 = address of orb
la %r5,.Lirb # r5 = address of irb
lctl %c6,%c6,.Lcr6
ssch 0(%r12) # write a tape mark
jnz .Llderr
bras %r14,.Lwait4io
l %r14,.Lldret
br %r14
#
# Sense subroutine
#
.Lsense:
st %r14,.Lsnsret
la %r7,.Lorbsense
ssch 0(%r7) # start sense command
jnz .Llderr
bras %r14,.Lwait4io
l %r14,.Lsnsret
tm 8(%r5),0x82 # do we have a problem ?
jnz .Llderr
br %r14
#
# Wait for interrupt subroutine
#
.Lwait4io:
lpsw .Lwaitpsw
.Lioint:
c %r1,0xb8 # compare subchannel number
jne .Lwait4io
tsch 0(%r5)
slr %r0,%r0
tm 8(%r5),0x82 # do we have a problem ?
jnz .Lwtexit
tm 8(%r5),0x04 # got device end ?
jz .Lwait4io
.Lwtexit:
br %r14
.Llderr:
lpsw .Lcrash
.align 8
.Lorbread:
.long 0x00000000,0x0080ff00,.Lccwwrite
.align 8
.Lorbsense:
.long 0x00000000,0x0080ff00,.Lccwsense
.align 8
.Lorbmark:
.long 0x00000000,0x0080ff00,.Lccwmark
.align 8
.Lccwwrite:
.long 0x01200000+IPL_BS,0x00000000
.Lccwsense:
.long 0x04200001,0x00000000
.Lccwmark:
.long 0x1f200001,0x00000000
.Lwaitpsw:
.long 0x020a0000,0x80000000+.Lioint
.Lirb: .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.Lcr6: .long 0xff000000
.align 8
.Lcrash:.long 0x000a0000,0x00000000
.Lstopped: .long 0x000a0000,0x00001234
.Lpcmem0:.long 0x00080000,0x80000000 + .Lchkmem0
.L4malign0:.long 0xffc00000
.Lmemsize:.long 0
.Lldret:.long 0
.Lsnsret: .long 0
.org IPL_BS
#
# arch/s390/boot/ipleckd.S
# IPL record for 3380/3390 DASD
#
# S390 version
# Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
# Author(s): Holger Smolinski <Holger.Smolinski@de.ibm.com>
#
#
# FIXME: should use the countarea to determine the blocksize
# FIXME: should insert zeroes into memory when filling holes
# FIXME: calculate blkpertrack from rdc data and blksize
# Usage of registers
# r1: ipl subchannel ( general use, dont overload without save/restore !)
# r10:
# r13: base register index to 0x0000
# r14: callers address
# r15: temporary save register (we have no stack!)
# storage layout:
#include <asm/lowcore.h>
.org 0
.psw: .long 0x00080000,0x80000000+_start
.ccw1: .long 0x06000000,0x00001000 # Re-Read enough of bootsector to start
.ccw2: .long 0x00000000,0x00000000 # read countarea of record 1 to s/w.
.org 0x58
.Lextn: .long 0x000a0000,0x00000000+.Lextn
.Lsvcn: .long 0x000a0000,0x00000000+.Lsvcn
.Lprgn: .long 0x00080000,0x00000000+.Lecs
.Lmcn: .long 0x000a0000,0x00000000+.Lmcn
.Lion: .long 0x00080000,0x80000000+.Lionewaddr
.org 0xe0
.Llstad:.long 0x00000000,0x00000000 # sectorno + ct of bootlist
.org 0xf0 # Lets start now...
_start: .globl _start
l %r1,__LC_SUBCHANNEL_ID # get IPL-subchannel from lowcore
st %r1,__LC_IPLDEV # keep it for reipl
stsch .Lrdcdata
oi .Lrdcdata+5,0x84 # enable ssch and multipath mode
.Lecs: xi .Lrdcdata+27,0x01 # enable concurrent sense
msch .Lrdcdata
xi .Lprgn,6 # restore Wait and d/a bit in PCnew PSW
l %r2,.Lparm
mvc 0x0(8,%r2),.Lnull # set parmarea to null
lctl %c6,%c6,.Lc6 # enable all interrupts
.Lrdc: # read device characteristics
la %r6,.Lrdcccw
st %r6,.Lorb+8 # store cp-address to orb
bras %r15,.Lssch # start I/O
oi .Llodata+1,0x80
lh %r5,.Lcountarea+6 # init r5 from countarea
stcm %r5,3,.Lrdccw+2 # and store into rd template *FIXME*
stcm %r5,3,.Llodata+14 # and store into lodata *FIXME*
.Lbootlist:
l %r2,.Llstad
l %r3,.Lblklst
lhi %r4,1
bras %r14,.Lreadblks
.Lloader:
l %r10,.Lblklst # r10 is index to bootlist
lhi %r5,4 # r5: skip 4 blocks = firstpage....
.Lkloop:
clc .Lnull(8),0(%r10) # test blocklist
jz .Lchkparm # end of list?
l %r2,0(%r10) # get startblock to r2
slr %r4,%r4 # erase r4
icm %r4,1,7(%r10) # get blockcount
slr %r3,%r3 # get address to r3
icm %r3,0xe,4(%r10)
chi %r5,0 # still blocks to skip?
jz .Ldoread # no: start reading
cr %r5,%r4 # #skipblocks >= blockct?
jm .L007 # no: skip the blocks one by one
.L006:
sr %r5,%r4 # decrease number of blocks to skip
j .Lkcont # advance to next entry
.L007:
ahi %r2,1 # skip 1 block...
bctr %r4,0 # update blockct
ah %r3,.Lcountarea+6 # increment address
bct %r5,.L007 # 4 blocks skipped?
.Ldoread:
ltr %r2,%r2 # test startblock
jz .Lzeroes # startblocks is zero (hole)
.Ldiskread:
bras %r14,.Lreadblks
j .Lkcont
.Lzeroes:
lr %r2,%r3
.L001: slr %r3,%r3
icm %r3,3,.Lcountarea+6 # get blocksize
slr %r5,%r5 # no bytes to move
.L008: mvcle %r2,%r4,0 # fill zeroes to storage
jo .L008 # until block is filled
brct %r4,.L001 # skip to next block
.Lkcont:
ahi %r10,8
j .Lkloop
.Lchkparm:
lm %r3,%r4,.Lstart # load .Lstart and .Lparm
clc 0x0(4,%r4),.Lnull
je .Lrunkern
mvc 0x480(128,%r3),0(%r4) # move 1k-0x80 to parmarea
mvc 0x500(256,%r3),0x80(%r4)
mvc 0x600(256,%r3),0x180(%r4)
mvc 0x700(256,%r3),0x280(%r4)
.Lrunkern:
lhi %r2,17
sll %r2,12
st %r1,0xc6c(%r2) # store iplsubchannel to lowcore
st %r1,0xc6c # store iplsubchannel to lowcore
br %r3
# This function does the start IO
# r2: number of first block to read ( input by caller )
# r3: address to read data to ( input by caller )
# r4: number of blocks to read ( input by caller )
# r5: destroyed
# r6: blocks per track ( input by caller )
# r7: number of heads
# r8:
# r9:
# r10:
# r11: temporary register
# r12: local use for base address
# r13: base address for module
# r14: address of caller for subroutine
# r15: temporary save register (since we have no stack)
.Lreadblks:
la %r12,.Ldeccw
st %r12,8+.Lorb # store cpaddr to orb
ahi %r12,0x10 # increment r12 to point to rdccw
oi 1(%r12),0x40 # set CC in rd template
# first setup the read CCWs
lr %r15,%r4 # save number or blocks
slr %r7,%r7
icm %r7,3,.Lrdcdata+14 # load heads to r7
clc .Lrdcdata+3(2),.L3390
jne .L010 # 3380 or 3390 ?
lhi %r6,12 # setup r6 correct!
j .L011
.L010:
clc .Lrdcdata+3(2),.L9343
jne .L013
lhi %r6,9
j .L011
.L013:
lhi %r6,10
.L011:
# loop for nbl times
.Lrdloop:
mvc 0(8,%r12),.Lrdccw # copy template to this ccw
st %r3,4(%r12) # store target address to this ccw
bct %r4,.L005 # decrement no of blks still to do
ni 1(%r12),0x3f # delete CC from last ccw
lr %r4,%r15 # restore number of blocks
# read CCWs are setup now
stcm %r4,3,.Llodata+2 # store blockno to lodata clears r4
ar %r4,%r2 # r4 (clear): ebl = blk + nbl
bctr %r4,0 # decrement r4 ( last blk touched
srda %r2,32 # trk = blk / bpt, bot = blk % bpt
dr %r2,%r6 # r3: trk, r2: bot
ahi %r2,1 # bot++ ( we start counting at 1 )
stcm %r2,1,.Llodata+12 # store bot to lodata
xr %r2,%r2 # cy = trk / heads, hd = trk % heads
dr %r2,%r7 # r3: cy, r2: hd
sll %r3,16 # combine to CCHH in r3
or %r3,%r2
st %r3,.Ldedata+8 # store cchh to dedata
st %r3,.Llodata+4 # store cchh to lodata
st %r3,.Llodata+8 # store cchh to lodata
lr %r15,%r5 # save r5
srda %r4,32 # tr2 = ebl / bpt
dr %r4,%r6 # r5: tr2, r4: bot2
xr %r4,%r4 # cy2 = tr2 / heads, hd2 = hd2 % heads
dr %r4,%r7 # r5: cy2, r4: hd2
stcm %r5,3,.Ldedata+12 # store cy2,hd2 to dedata
stcm %r4,3,.Ldedata+14 # store cy2,hd2 to dedata
lr %r5,%r15 # restore r5
# CCWs are setup now, arent they?
bras %r15,.Lssch # start I/O
br %r14 # return to caller
.L005:
ah %r3,.Lcountarea+6 # add blocksize to target address
ahi %r12,8 # add sizeof(ccw) to base address
j .Lrdloop
# end of function
# This function does the start IO
# r1: Subchannel number
# r8: ORB address
# r9: IRB address
.Lssch:
lhi %r13,10 # initialize retries
.L012:
ssch .Lorb # start I/O
jz .Ltpi # ok?
bras %r14,.Ldisab # error
.Ltpi:
lpsw .Lwaitpsw # load wait-PSW
.Lionewaddr:
c %r1,0xb8 # compare to ipl subhchannel
jnz .Ltpi # not equal: loop
clc 0xbc(4),.Lorb # cross check the intparm
jnz .Ltpi # not equal: loop
tsch .Lirb # get status
tm .Lirb+9,0xff # channel status ?
jz .L003 # CS == 0x00
bras %r14,.Ldisab # error
.L003:
tm .Lirb+8,0xf3 # DS different from CE/DE
jz .L004 # ok ?
bct %r13,.L012 # retries <= 5 ?
bras %r14,.Ldisab # error
.L004:
tm .Lirb+8,0x04 # DE set?
jz .Ltpi # DE not set, loop
.Lsschend:
br %r15 # return to caller
# end of function
# In case of error goto disabled wait with %r14 containing the caller
.Ldisab:
st %r14,.Ldisabpsw+4
lpsw .Ldisabpsw
# FIXME pre-initialized data should be listed first
# NULLed storage can be taken from anywhere ;)
.Lblklst:
.long 0x00002000
.align 8
.Ldisabpsw:
.long 0x000a0000,0x00000000
.Lwaitpsw:
.long 0x020a0000,0x00000000+.Ltpi
.Lorb:
.long 0x0049504c,0x0080ff00 # intparm is " IPL"
.Lc6: .long 0xff000000
.Lstart:
.long 0x00010000 # do not separate .Lstart and .Lparm
.Lparm:
.long 0x00008000 # they are loaded with a LM
.L3390:
.word 0x3390
.L9343:
.word 0x9343
.Lnull:
.long 0x00000000,0x00000000
.Lrdcdata:
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.Lirb:
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.long 0x00000000,0x00000000
.Lcountarea:
.word 0x0000 # cyl;
.word 0x0000 # head;
.byte 0x00 # record;
.byte 0x00 # key length;
.word 0x0000 # data length == blocksize;
.Ldedata:
.long 0x40c00000,0x00000000
.long 0x00000000,0x00000000
.Llodata:
.long 0x06000001,0x00000000
.long 0x00000000,0x01000000
.long 0x12345678
.org 0x7c8
.Lrdcccw: # CCW read device characteristics
.long 0x64400040,0x00000000+.Lrdcdata
.long 0x63400010,0x00000000+.Ldedata
.long 0x47400010,0x00000000+.Llodata
.long 0x12000008,0x00000000+.Lcountarea
.Ldeccw:
.long 0x63400010,0x00000000+.Ldedata
.Lloccw:
.long 0x47400010,0x00000000+.Llodata
.Lrdccw:
.long 0x86400000,0x00000000
.org 0x800
# end of pre initialized data is here CCWarea follows
# from here we load 1k blocklist
# end of function
#
# Ipl block for fba devices
# Copyright (C) 1998 IBM Corporation
# Author(s): Martin Schwidefsky
#
# startup for ipl at address 0
# start with restart
# The first 24 byes are loaded by ipl to addresses 0-23 (a PSW and two CCWs).
# The CCWs on 8-23 are used as a continuation of the implicit ipl channel
# program. The fba ipl loader only uses the CCW on 8-15 to load the first 512
# byte block to location 0-511 (the reading starts again at block 0, byte 0).
# The second CCW is used to store the location of the load list.
.org 0
.long 0x00080000,0x80000000+_start # The first 24 byte are loaded
.long 0x02000000,0x20000200 # by ipl to addresses 0-23.
.long 0x00000001,0x00000001 # (PSW, one CCW & loadlist info).
.globl _start
_start:
basr %r13,0
.LPG0:
l %r1,0xb8 # load ipl subchannel number
lhi %r2,0x200 # location for the loadlist
lm %r3,%r4,0x10 # blocknr and length of loadlist
bras %r14,.Lloader # load loadlist
lhi %r11,0x400
lhi %r12,0x200 # load address of loadlist
l %r3,0(%r12) # get first block number
l %r4,4(%r12) # get first block count
la %r12,8(%r12)
j .Llistloop
.org 0x50
.Llistloop:
lr %r2,%r11 # load address
lr %r5,%r4 # block count
mhi %r5,512
la %r11,0(%r5,%r11) # update load address
bras %r14,.Lloader # load chunk of the image
l %r3,0(%r12) # get next block number
icm %r4,15,4(%r12) # get next block count
la %r12,8(%r12)
jnz .Llistloop
#
# everything loaded, go for it
#
l %r1,.Lstart-.LPG0(%r13)
br %r1
#
# subroutine for loading a sequence of block from fba
# %r2: load address (24 bit address)
# %r3: number of first block (unsigned long)
# %r4: number of blocks to load (unsigned short)
#
.org 0xC0
.Lloader:
la %r5,.Llo-.LPG0(%r13)
sth %r4,2(%r5) # initialize block count
st %r3,4(%r5) # initialize block number
la %r5,.Lccws-.LPG0(%r13)
mhi %r4,512
sth %r4,22(%r5) # initialize byte count
icm %r2,8,16(%r5)
st %r2,16(%r5) # initialize CCW data address
slr %r2,%r2
la %r3,.Lorb-.LPG0(%r13) # r2 = address of orb into r2
la %r4,.Ltinfo-.LPG0(%r13) # r3 = address of tpi info block
la %r5,.Lirb-.LPG0(%r13) # r4 = address of irb
lctl %c6,%c6,.Lc6-.LPG0(%r13)
.Lldlp:
ssch 0(%r3) # read blocks
.Ltpi:
tpi 0(%r4) # test pending interrupt
jz .Ltpi
c %r1,0(%r4) # compare subchannel number
jne .Ltpi
tsch 0(%r5)
slr %r0,%r0
tm 8(%r5),0x82 # do we have a problem ?
jnz .Ldwpsw
tm 8(%r5),0x04 # got device end ?
jz .Ltpi
.Lexit:
br %r14
.align 8
.Ldwpsw:.long 0x000a0000,0x00000000
.Lorb: .long 0x00000000,0x0000ff00,.Lccws
.Ltinfo:.long 0
.Lirb: .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.Lc6: .long 0xff000000
.Lloadp:.long 0,0
.Lparm: .long 0x10400
.Lstart:.long 0x10000
.align 8
.Lccws: .long 0x63000000+.Lde,0x60000010 # define extent
.long 0x43000000+.Llo,0x60000008 # locate
# offset 1 in read CCW: data address (24 bit)
# offset 6 in read CCW: number of bytes (16 bit)
.long 0x42000000,0x20000000 # read
.Lde: .long 0x40000200,0x00000000
.long 0x00000000,0x00001000
# offset 2 in .Llo: block count (unsigned short)
# offset 4 in .Llo: block number (unsigned long)
.Llo: .long 0x06000000,0x00000000
.org 0x200
.long 0x00000002,0x0000007f
.long 0x00000081,0x0000007f
.long 0x00000100,0x0000007f
.long 0x0000017f,0x0000007f
.long 0x000001fe,0x0000007f
.long 0x0000027d,0x0000007f
.long 0x000002fc,0x0000007f
.long 0x0000037b,0x0000007f
.long 0x000003fa,0x0000007f
.long 0x00000479,0x0000007f
.long 0x000004f8,0x0000007f
.long 0x00000577,0x0000007f
.long 0x000005f6,0x0000007f
.long 0x00000675,0x0000007f
.long 0x000006f4,0x0000007f
.long 0x00000773,0x0000003f
.long 0x00000000,0x00000000
.org 0x400
# For a description of the syntax of this configuration file,
# see the Configure script.
#
define_bool CONFIG_UID16 y
mainmenu_name "Linux Kernel Configuration"
define_bool CONFIG_ARCH_S390 y
mainmenu_option next_comment
comment 'Code maturity level options'
bool 'Prompt for development and/or incomplete code/drivers' CONFIG_EXPERIMENTAL
endmenu
mainmenu_option next_comment
comment 'Processor type and features'
bool 'Symmetric multi-processing support' CONFIG_SMP
bool 'IEEE FPU emulation' CONFIG_IEEEFPU_EMULATION
endmenu
mainmenu_option next_comment
comment 'Loadable module support'
bool 'Enable loadable module support' CONFIG_MODULES
if [ "$CONFIG_MODULES" = "y" ]; then
bool 'Set version information on all symbols for modules' CONFIG_MODVERSIONS
bool 'Kernel module loader' CONFIG_KMOD
fi
endmenu
mainmenu_option next_comment
comment 'General setup'
bool 'Fast IRQ handling' CONFIG_FAST_IRQ
bool 'Builtin IPL record support' CONFIG_IPL
if [ "$CONFIG_IPL" = "y" ]; then
choice 'IPL method generated into head.S' \
"tape CONFIG_IPL_TAPE \
vm_reader CONFIG_IPL_VM" tape
fi
bool 'Networking support' CONFIG_NET
bool 'System V IPC' CONFIG_SYSVIPC
bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
bool 'Sysctl support' CONFIG_SYSCTL
tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
endmenu
source drivers/s390/Config.in
bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
fi
if [ "$CONFIG_NET" = "y" ]; then
source net/Config.in
fi
source fs/Config.in
# source drivers/char/Config.in
mainmenu_option next_comment
comment 'Kernel hacking'
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Kernel profiling support' CONFIG_PROFILE
if [ "$CONFIG_PROFILE" = "y" ]; then
int ' Profile shift count' CONFIG_PROFILE_SHIFT 2
fi
if [ "$CONFIG_CTC" = "y" ]; then
bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
fi
# this does not work. bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
endmenu
#
# Automatically generated by make menuconfig: don't edit
#
CONFIG_UID16=y
CONFIG_ARCH_S390=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
#
# Processor type and features
#
CONFIG_SMP=y
CONFIG_IEEEFPU_EMULATION=y
#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
# CONFIG_KMOD is not set
#
# General setup
#
CONFIG_FAST_IRQ=y
CONFIG_IPL=y
# CONFIG_IPL_TAPE is not set
CONFIG_IPL_VM=y
CONFIG_NET=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_BINFMT_ELF=y
#
# S/390 block device drivers
#
CONFIG_BLK_DEV_LOOP=y
# 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_MDISK is not set
CONFIG_DASD=y
CONFIG_DASD_ECKD=y
# CONFIG_DASD_MDSK is not set
#
# S/390 Network device support
#
# CONFIG_CHANDEV is not set
CONFIG_NETDEVICES=y
CONFIG_CTC=y
CONFIG_IUCV=y
# CONFIG_DUMMY is not set
CONFIG_NET_ETHERNET=y
CONFIG_TR=y
# CONFIG_FDDI is not set
#
# S/390 Terminal and Console options
#
CONFIG_3215=y
CONFIG_3215_CONSOLE=y
CONFIG_HWC=y
CONFIG_HWC_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_NETLINK=y
# CONFIG_RTNETLINK is not set
# CONFIG_NETLINK_DEV is not set
# CONFIG_NETFILTER is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_ALIAS is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_SKB_LARGE=y
# CONFIG_IPV6 is not set
# CONFIG_KHTTPD is not set
# CONFIG_ATM is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_DECNET is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_FAT_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
CONFIG_NFS_FS=y
# CONFIG_ROOT_NFS is not set
CONFIG_NFSD=y
# CONFIG_NFSD_V3 is not set
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_IBM_PARTITION=y
# 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_NLS is not set
#
# Kernel hacking
#
# CONFIG_PROFILE is not set
# CONFIG_REMOTE_DEBUG is not set
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
.S.o:
$(CC) $(AFLAGS) -traditional -c $< -o $*.o
all: kernel.o head.o init_task.o
O_TARGET := kernel.o
O_OBJS := lowcore.o entry.o bitmap.o traps.o time.o process.o irq.o \
setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \
semaphore.o s390fpu.o s390io.o s390mach.o s390dyn.o reipl.o
OX_OBJS := s390_ksyms.o
MX_OBJS :=
ifdef CONFIG_SMP
O_OBJS += smp.o
endif
ifdef CONFIG_PCI
O_OBJS += bios32.o
endif
ifdef CONFIG_MCA
O_OBJS += mca.o
endif
ifeq ($(CONFIG_MTRR),y)
OX_OBJS += mtrr.o
else
ifeq ($(CONFIG_MTRR),m)
MX_OBJS += mtrr.o
endif
endif
ifeq ($(CONFIG_IEEEFPU_EMULATION),y)
O_OBJS += mathemu.o floatlib.o
endif
#
# Kernel debugging
#
ifdef CONFIG_REMOTE_DEBUG
O_OBJS += gdb-stub.o #gdb-low.o
endif
include $(TOPDIR)/Rules.make
/*
* arch/s390/kernel/bitmap.S
* Bitmaps for set_bit, clear_bit, test_and_set_bit, ...
* See include/asm-s390/{bitops.h|posix_types.h} for details
*
* S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
*/
.globl _oi_bitmap
_oi_bitmap:
.byte 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
.globl _ni_bitmap
_ni_bitmap:
.byte 0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
.globl _zb_findmap
_zb_findmap:
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4
.byte 0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,8
/*
* arch/s390/kernel/cpcmd.c
*
* S390 version
* Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
*/
#include <linux/stddef.h>
#include <linux/kernel.h>
#include <asm/string.h>
#include <asm/ebcdic.h>
void cpcmd(char *cmd, char *response, int rlen)
{
const int mask = 0x40000000L;
char obuffer[128];
int olen;
olen = strlen(cmd);
strcpy(obuffer, cmd);
ASCEBC(obuffer,olen);
if (response != NULL && rlen > 0) {
asm volatile ("LRA 2,0(0,%0)\n\t"
"LR 4,%1\n\t"
"O 4,%4\n\t"
"LRA 3,0(0,%2)\n\t"
"LR 5,%3\n\t"
".long 0x83240008 # Diagnose 83\n\t"
: /* no output */
: "a" (obuffer), "d" (olen),
"a" (response), "d" (rlen), "m" (mask)
: "2", "3", "4", "5" );
EBCASC(response, rlen);
} else {
asm volatile ("LRA 2,0(0,%0)\n\t"
"LR 3,%1\n\t"
".long 0x83230008 # Diagnose 83\n\t"
: /* no output */
: "a" (obuffer), "d" (olen)
: "2", "3" );
}
}
/*
* arch/s390/kernel/cpcmd.h
*
* S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
*/
#ifndef __CPCMD__
#define __CPCMD__
extern void cpcmd(char *cmd, char *response, int rlen);
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*
* arch/s390/kernel/ieee.h
*
* S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
*/
#include <linux/sched.h>
static inline void _adddf(int R1,int R2)
{
current->tss.fprs[R1].fd = current->tss.fprs[R1].fd +
current->tss.fprs[R2].fd;
}
static inline void _subdf(int R1,int R2)
{
current->tss.fprs[R1].fd = current->tss.fprs[R1].fd -
current->tss.fprs[R2].fd;
}
static inline void _muldf(int R1,int R2)
{
current->tss.fprs[R1].fd = current->tss.fprs[R1].fd *
current->tss.fprs[R2].fd;
}
static inline void _divdf(int R1,int R2)
{
current->tss.fprs[R1].fd = current->tss.fprs[R1].fd /
current->tss.fprs[R2].fd;
}
static inline void _negdf(int R1,int R2)
{
current->tss.fprs[R1].fd = -current->tss.fprs[R1].fd;
}
static inline void _fixdfsi(int R1,int R2)
{
current->tss.regs->gprs[R1] = (__u32) current->tss.fprs[R2].fd;
}
static inline void _extendsidf(int R1,int R2)
{
current->tss.fprs[R1].fd = (double) current->tss.regs->gprs[R2];
}
static inline void _addsf(int R1,int R2)
{
current->tss.fprs[R1].ff = current->tss.fprs[R1].ff +
current->tss.fprs[R2].ff;
}
static inline void _subsf(int R1,int R2)
{
current->tss.fprs[R1].ff = current->tss.fprs[R1].ff -
current->tss.fprs[R2].ff;
}
static inline void _mulsf(int R1,int R2)
{
current->tss.fprs[R1].ff = current->tss.fprs[R1].ff *
current->tss.fprs[R2].ff;
}
static inline void _divsf(int R1,int R2)
{
current->tss.fprs[R1].ff = current->tss.fprs[R1].ff /
current->tss.fprs[R2].ff;
}
static inline void _negsf(int R1,int R2)
{
current->tss.fprs[R1].ff = -current->tss.fprs[R1].ff;
}
static inline void _fixsfsi(int R1,int R2)
{
current->tss.regs->gprs[R1] = (__u32) current->tss.fprs[R2].ff;
}
static inline void _extendsisf(int R1,int R2)
{
current->tss.fprs[R1].ff = (double) current->tss.regs->gprs[R2];
}
/*
* arch/s390/kernel/init_task.c
*
* S390 version
*
* Derived from "arch/i386/kernel/init_task.c"
*/
#include <linux/mm.h>
#include <linux/sched.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
static struct vm_area_struct init_mmap = INIT_MMAP;
static struct fs_struct init_fs = INIT_FS;
static struct files_struct init_files = INIT_FILES;
static struct signal_struct init_signals = INIT_SIGNALS;
struct mm_struct init_mm = INIT_MM(init_mm);
/*
* Initial task structure.
*
* We need to make sure that this is 8192-byte aligned due to the
* way process stacks are handled. This is done by making sure
* the linker maps this in the .text segment right after head.S,
* and making head.S ensure the proper alignment.
*
* The things we do for performance..
*/
union task_union init_task_union __attribute__((aligned(8192))) =
{ INIT_TASK(init_task_union.task) };
This diff is collapsed.
/*
* arch/s390/kernel/irqextras390.c
*
* S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com),
*
* Some channel code by D.J. Barrow
*/
/*
*/
#include<asm/irqextras390.h>
#include<asm/lowcore.h>
#if 0
// fixchannelprogram is now obselete
void fixchannelprogram(orb_bits_t *orbptr)
{
__u32 newAddress=orbptr->ccw_program_address;
fixccws(orbptr->ccw_program_address);
orbptr->ccw_program_address=newAddress;
orbptr->ccw_program_address=(ccw1_t *)(((__u32)orbptr->ccw_program_address));
}
#endif
void fixccws(ccw1_bits_t *ccwptr)
{
for(;;ccwptr++)
{ // Just hope nobody starts doing prefixing
if(!ccwptr->cc)
break;
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*
* arch/s390/kernel/s390dyn.c
* S/390 dynamic device attachment
*
* S390 version
* Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Ingo Adlung (adlung@de.ibm.com)
*/
#include <linux/init.h>
#include <asm/irq.h>
#include <asm/s390io.h>
#include <asm/s390dyn.h>
int s390_device_register( devreg_t *drinfo )
{
return -EOPNOTSUPP;
}
int s390_device_deregister ( devreg_t *dreg )
{
return -EOPNOTSUPP;
}
int s390_request_irq_special( int irq,
io_handler_func_t io_handler,
not_oper_handler_func_t not_oper_handler,
unsigned long irqflags,
const char *devname,
void *dev_id)
{
return -EOPNOTSUPP;
}
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.
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