diff options
| author | Ian Molton <spyro@f2s.com> | 2003-07-06 23:29:28 -0700 |
|---|---|---|
| committer | Steve French <cifs.adm@hostme.bitkeeper.com> | 2003-07-06 23:29:28 -0700 |
| commit | bd824b9fb179ceba690d683a79eeb6f0f0ff5f06 (patch) | |
| tree | 013e3f54ed1f966b2ff0d40c24503085db9b6d5f | |
| parent | d62f5562b1a1ba6a081700f887876b3e2aaba1de (diff) | |
[PATCH] ARM26 architecture update
29 files changed, 105 insertions, 924 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index c4bb8d3ae788..6590dd21b509 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -245,6 +245,21 @@ M: jschlst@samba.org L: linux-atalk@lists.netspace.org S: Maintained +ARM26 ARCHITECTURE +P: Ian Molton +M: spyro@f2s.com +S: Maintained + +ARM26/ARCHIMEDES +P: Ian Molton +M: spyro@f2s.com +S: Maintained + +ARM26/A5000 +P: John Appleby +M: john@dnsworld.co.uk +S: Maintained + ARM MFM AND FLOPPY DRIVERS P: Dave Gilbert M: linux@treblig.org diff --git a/arch/arm26/Config.help b/arch/arm26/Config.help deleted file mode 100644 index a2a7f13d4eff..000000000000 --- a/arch/arm26/Config.help +++ /dev/null @@ -1,387 +0,0 @@ -CONFIG_ARM - The ARM series is a line of low-power-consumption RISC chip designs - licensed by ARM ltd and targeted at embedded applications. - -CONFIG_IDE - If you say Y here, your kernel will be able to manage low cost mass - storage units such as ATA/(E)IDE and ATAPI units. The most common - cases are IDE hard drives and ATAPI CD-ROM drives. - - If your system is pure SCSI and doesn't use these interfaces, you - can say N here. - - Integrated Disk Electronics (IDE aka ATA-1) is a connecting standard - for mass storage units such as hard disks. It was designed by - Western Digital and Compaq Computer in 1984. It was then named - ST506. Quite a number of disks use the IDE interface. - - AT Attachment (ATA) is the superset of the IDE specifications. - ST506 was also called ATA-1. - - Fast-IDE is ATA-2 (also named Fast ATA), Enhanced IDE (EIDE) is - ATA-3. It provides support for larger disks (up to 8.4GB by means of - the LBA standard), more disks (4 instead of 2) and for other mass - storage units such as tapes and cdrom. UDMA/33 (aka UltraDMA/33) is - ATA-4 and provides faster (and more CPU friendly) transfer modes - than previous PIO (Programmed processor Input/Output) from previous - ATA/IDE standards by means of fast DMA controllers. - - ATA Packet Interface (ATAPI) is a protocol used by EIDE tape and - CD-ROM drives, similar in many respects to the SCSI protocol. - - SMART IDE (Self Monitoring, Analysis and Reporting Technology) was - designed in order to prevent data corruption and disk crash by - detecting pre hardware failure conditions (heat, access time, and - the like...). Disks built since June 1995 may follow this standard. - The kernel itself don't manage this; however there are quite a - number of user programs such as smart that can query the status of - SMART parameters disk. - - If you want to compile this driver as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. The module - will be called ide.o. - - For further information, please read <file:Documentation/ide.txt>. - - If unsure, say Y. - -CONFIG_ISA - Find out whether you have ISA slots on your motherboard. ISA is the - name of a bus system, i.e. the way the CPU talks to the other stuff - inside your box. Other bus systems are PCI, EISA, MicroChannel - (MCA) or VESA. ISA is an older system, now being displaced by PCI; - newer boards don't support it. If you have ISA, say Y, otherwise N. - -CONFIG_PREEMPT - This option reduces the latency of the kernel when reacting to - real-time or interactive events by allowing a low priority process to - be preempted even if it is in kernel mode executing a system call. - This allows applications to run more reliably even when the system is - under load. - - Say Y here if you are building a kernel for a desktop, embedded - or real-time system. Say N if you are unsure. - -CONFIG_MCA - MicroChannel Architecture is found in some IBM PS/2 machines and - laptops. It is a bus system similar to PCI or ISA. See - <file:Documentation/mca.txt> (and especially the web page given - there) before attempting to build an MCA bus kernel. - -CONFIG_EISA - The Extended Industry Standard Architecture (EISA) bus was - developed as an open alternative to the IBM MicroChannel bus. - - The EISA bus provided some of the features of the IBM MicroChannel - bus while maintaining backward compatibility with cards made for - the older ISA bus. The EISA bus saw limited use between 1988 and - 1995 when it was made obsolete by the PCI bus. - - Say Y here if you are building a kernel for an EISA-based machine. - - Otherwise, say N. - -CONFIG_HOTPLUG - Say Y here if you want to plug devices into your computer while - the system is running, and be able to use them quickly. In many - cases, the devices can likewise be unplugged at any time too. - - One well known example of this is PCMCIA- or PC-cards, credit-card - size devices such as network cards, modems or hard drives which are - plugged into slots found on all modern laptop computers. Another - example, used on modern desktops as well as laptops, is USB. - - Enable HOTPLUG and KMOD, and build a modular kernel. Get agent - software (at <http://linux-hotplug.sourceforge.net/>) and install it. - Then your kernel will automatically call out to a user mode "policy - agent" (/sbin/hotplug) to load modules and set up software needed - to use devices as you hotplug them. - -CONFIG_KCORE_ELF - If you enabled support for /proc file system then the file - /proc/kcore will contain the kernel core image. This can be used - in gdb: - - $ cd /usr/src/linux ; gdb vmlinux /proc/kcore - - You have two choices here: ELF and A.OUT. Selecting ELF will make - /proc/kcore appear in ELF core format as defined by the Executable - and Linking Format specification. Selecting A.OUT will choose the - old "a.out" format which may be necessary for some old versions - of binutils or on some architectures. - - This is especially useful if you have compiled the kernel with the - "-g" option to preserve debugging information. It is mainly used - for examining kernel data structures on the live kernel so if you - don't understand what this means or are not a kernel hacker, just - leave it at its default value ELF. - -CONFIG_KCORE_AOUT - Not necessary unless you're using a very out-of-date binutils - version. You probably want KCORE_ELF. - -CONFIG_BINFMT_ELF - ELF (Executable and Linkable Format) is a format for libraries and - executables used across different architectures and operating - systems. Saying Y here will enable your kernel to run ELF binaries - and enlarge it by about 13 KB. ELF support under Linux has now all - but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC) - because it is portable (this does *not* mean that you will be able - to run executables from different architectures or operating systems - however) and makes building run-time libraries very easy. Many new - executables are distributed solely in ELF format. You definitely - want to say Y here. - - Information about ELF is contained in the ELF HOWTO available from - <http://www.linuxdoc.org/docs.html#howto>. - - If you find that after upgrading from Linux kernel 1.2 and saying Y - here, you still can't run any ELF binaries (they just crash), then - you'll have to install the newest ELF runtime libraries, including - ld.so (check the file <file:Documentation/Changes> for location and - latest version). - - If you want to compile this as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. The module - will be called binfmt_elf.o. Saying M or N here is dangerous because - some crucial programs on your system might be in ELF format. - -CONFIG_BINFMT_AOUT - A.out (Assembler.OUTput) is a set of formats for libraries and - executables used in the earliest versions of UNIX. Linux used the - a.out formats QMAGIC and ZMAGIC until they were replaced with the - ELF format. - - As more and more programs are converted to ELF, the use for a.out - will gradually diminish. If you disable this option it will reduce - your kernel by one page. This is not much and by itself does not - warrant removing support. However its removal is a good idea if you - wish to ensure that absolutely none of your programs will use this - older executable format. If you don't know what to answer at this - point then answer Y. If someone told you "You need a kernel with - QMAGIC support" then you'll have to say Y here. You may answer M to - compile a.out support as a module and later load the module when you - want to use a program or library in a.out format. The module will be - called binfmt_aout.o. Saying M or N here is dangerous though, - because some crucial programs on your system might still be in A.OUT - format. - -CONFIG_BINFMT_MISC - If you say Y here, it will be possible to plug wrapper-driven binary - formats into the kernel. You will like this especially when you use - programs that need an interpreter to run like Java, Python or - Emacs-Lisp. It's also useful if you often run DOS executables under - the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from - <http://www.linuxdoc.org/docs.html#howto>). Once you have - registered such a binary class with the kernel, you can start one of - those programs simply by typing in its name at a shell prompt; Linux - will automatically feed it to the correct interpreter. - - You can do other nice things, too. Read the file - <file:Documentation/binfmt_misc.txt> to learn how to use this - feature, and <file:Documentation/java.txt> for information about how - to include Java support. - - You must say Y to "/proc file system support" (CONFIG_PROC_FS) to - use this part of the kernel. - - You may say M here for module support and later load the module when - you have use for it; the module is called binfmt_misc.o. If you - don't know what to answer at this point, say Y. - -CONFIG_SCSI - If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or - any other SCSI device under Linux, say Y and make sure that you know - the name of your SCSI host adapter (the card inside your computer - that "speaks" the SCSI protocol, also called SCSI controller), - because you will be asked for it. - - You also need to say Y here if you want support for the parallel - port version of the 100 MB IOMEGA ZIP drive. - - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called scsi_mod.o. If you want to compile it as - a module, say M here and read <file:Documentation/modules.txt> and - <file:Documentation/scsi.txt>. However, do not compile this as a - module if your root file system (the one containing the directory /) - is located on a SCSI device. - -CONFIG_NETDEVICES - You can say N here if you don't intend to connect your Linux box to - any other computer at all or if all your connections will be over a - telephone line with a modem either via UUCP (UUCP is a protocol to - forward mail and news between unix hosts over telephone lines; read - the UUCP-HOWTO, available from - <http://www.linuxdoc.org/docs.html#howto>) or dialing up a shell - account or a BBS, even using term (term is a program which gives you - almost full Internet connectivity if you have a regular dial up - shell account on some Internet connected Unix computer. Read - <http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html>). - - You'll have to say Y if your computer contains a network card that - you want to use under Linux (make sure you know its name because you - will be asked for it and read the Ethernet-HOWTO (especially if you - plan to use more than one network card under Linux)) or if you want - to use SLIP (Serial Line Internet Protocol is the protocol used to - send Internet traffic over telephone lines or null modem cables) or - CSLIP (compressed SLIP) or PPP (Point to Point Protocol, a better - and newer replacement for SLIP) or PLIP (Parallel Line Internet - Protocol is mainly used to create a mini network by connecting the - parallel ports of two local machines) or AX.25/KISS (protocol for - sending Internet traffic over amateur radio links). - - Make sure to read the NET-3-HOWTO. Eventually, you will have to read - Olaf Kirch's excellent and free book "Network Administrator's - Guide", to be found in <http://www.linuxdoc.org/docs.html#guide>. If - unsure, say Y. - -CONFIG_MAGIC_SYSRQ - If you say Y here, you will have some control over the system even - if the system crashes for example during kernel debugging (e.g., you - will be able to flush the buffer cache to disk, reboot the system - immediately or dump some status information). This is accomplished - by pressing various keys while holding SysRq (Alt+PrintScreen). It - also works on a serial console (on PC hardware at least), if you - send a BREAK and then within 5 seconds a command keypress. The - keys are documented in <file:Documentation/sysrq.txt>. Don't say Y - unless you really know what this hack does. - -CONFIG_ARCH_ARCA5K - This selects support for 'ARM26' CPUs (ARM 2 and 3) - -CONFIG_ARCH_A5K - Say Y here to to support the Acorn A5000. Linux can support the - internal IDE disk and CD-ROM interface, serial and parallel port, - and the floppy drive. Note that on some A5000s the floppy is - plugged into the wrong socket on the motherboard. - -CONFIG_ARCH_ARC - The Acorn Archimedes was an personal computer based on an 8MHz ARM2 - processor, released in 1987. It supported 512K of RAM and 2 800K - floppy disks. Picture and more detailed specifications at - <http://www.computingmuseum.com/museum/archi.htm>. - -CONFIG_PAGESIZE_16 - Say Y here if your Archimedes or A5000 system has only 2MB of - memory, otherwise say N. The resulting kernel will not run on a - machine with 4MB of memory. - -CONFIG_FPE_NWFPE - Say Y to include the NWFPE floating point emulator in the kernel. - This is necessary to run most binaries. Linux does not currently - support floating point hardware so you need to say Y here even if - your machine has an FPA or floating point co-processor podule. - - It is also possible to say M to build the emulator as a module - (nwfpe.o) or indeed to leave it out altogether. However, unless you - know what you are doing this can easily render your machine - unbootable. Saying Y is the safe option. - - You may say N here if you are going to load the Acorn FPEmulator - early in the bootup. - -CONFIG_FPE_FASTFPE - Say Y here to include the FAST floating point emulator in the kernel. - This is an experimental much faster emulator which now also has full - precision for the mantissa. It does not support any exceptions. - It is very simple, and approximately 3-6 times faster than NWFPE. - - It should be sufficient for most programs. It may be not suitable - for scientific calculations, but you have to check this for yourself. - If you do not feel you need a faster FP emulation you should better - choose NWFPE. - - It is also possible to say M to build the emulator as a module - (fastfpe.o). But keep in mind that you should only load the FP - emulator early in the bootup. You should never change from NWFPE to - FASTFPE or vice versa in an active system! - -CONFIG_DEBUG_ERRORS - This option controls verbose debugging information which can be - printed when the kernel detects an internal error. This debugging - information is useful to kernel hackers when tracking down problems, - but mostly meaningless to other people. It's safe to say Y unless - you are concerned with the code size or don't want to see these - messages. - -CONFIG_NO_FRAME_POINTER - If you say Y here, the resulting kernel will be slightly smaller and - faster. However, when a problem occurs with the kernel, the - information that is reported is severely limited. Most people - should say N here. - -CONFIG_DEBUG_USER - When a user program crashes due to an exception, the kernel can - print a brief message explaining what the problem was. This is - sometimes helpful for debugging but serves no purpose on a - production system. Most people should say N here. - -CONFIG_DEBUG_INFO - Say Y here to include source-level debugging information in the - `vmlinux' binary image. This is handy if you want to use gdb or - addr2line to debug the kernel. It has no impact on the in-memory - footprint of the running kernel but it can increase the amount of - time and disk space needed for compilation of the kernel. If in - doubt say N. - -CONFIG_DEBUG_LL - Say Y here to include definitions of printascii, printchar, printhex - in the kernel. This is helpful if you are debugging code that - executes before the console is initialized. - -CONFIG_NO_PGT_CACHE - Normally the kernel maintains a `quicklist' of preallocated - pagetable structures in order to increase performance. On machines - with very few pages this may however be a loss. Say Y here to - disable the pgtable cache. - -CONFIG_ARTHUR - Say Y here to include the kernel code necessary if you want to run - Acorn RISC OS/Arthur binaries under Linux. This code is still very - experimental; if this sounds frightening, say N and sleep in peace. - You can also say M here to compile this support as a module (which - will be called arthur.o). - -CONFIG_CMDLINE - On some architectures (EBSA110 and CATS), there is currently no way - for the boot loader to pass arguments to the kernel. For these - architectures, you should supply some command-line options at build - time by entering them here. As a minimum, you should specify the - memory size and the root device (e.g., mem=64M root=/dev/nfs). - -CONFIG_DEBUG_KERNEL - Say Y here if you are developing drivers or trying to debug and - identify kernel problems. - -CONFIG_DEBUG_SLAB - Say Y here to have the kernel do limited verification on memory - allocation as well as poisoning memory on free to catch use of freed - memory. - -CONFIG_DEBUG_SPINLOCK - Say Y here and build SMP to catch missing spinlock initialization - and certain other kinds of spinlock errors commonly made. This is - best used in conjunction with the NMI watchdog so that spinlock - deadlocks are also debuggable. - -CONFIG_DEBUG_BUGVERBOSE - Say Y here to make BUG() panics output the file name and line number - of the BUG call as well as the EIP and oops trace. This aids - debugging but costs about 70-100K of memory. - -CONFIG_ZBOOT_ROM - Say Y here if you intend to execute your compressed kernel image (zImage) - directly from ROM or flash. If unsure, say N. - -CONFIG_ZBOOT_ROM_TEXT - The base address for zImage. Unless you have special requirements, you - should not change this value. - -CONFIG_ZBOOT_ROM_BSS - The base address of 64KiB of read/write memory, which must be available - while the decompressor is running. Unless you have special requirements, - you should not change this value. - diff --git a/arch/arm26/Kconfig b/arch/arm26/Kconfig index b62382271dad..31d2e5de2c32 100644 --- a/arch/arm26/Kconfig +++ b/arch/arm26/Kconfig @@ -8,15 +8,8 @@ mainmenu "Linux Kernel Configuration" config ARM bool default y - help - The ARM series is a line of low-power-consumption RISC chip designs - licensed by ARM ltd and targeted at embedded applications and - handhelds such as the Compaq IPAQ. ARM-based PCs are no longer - manufactured, but legacy ARM-based PC hardware remains popular in - Europe. There is an ARM Linux project with a web page at - <http://www.arm.linux.org.uk/>. - -config ARCH_ARCA5K + +config ARM26 bool default y @@ -67,25 +60,25 @@ comment "Archimedes/A5000 Implementations (select only ONE)" config ARCH_ARC bool "Archimedes" - depends on ARCH_ARCA5K help - The Acorn Archimedes was an personal computer based on an 8K ARM2 - processor, released in 1987. It supported 512K of RAM and 2 800K - floppy disks. Picture and more detailed specifications at - <http://www.computingmuseum.com/museum/archi.htm>. + Say Y to support the Acorn Archimedes. + + The Acorn Archimedes was an personal computer based on an 8MHz ARM2 + processor, released in 1987. It supported up to 16MB of RAM in + later models and floppy, harddisc, ethernet etc. config ARCH_A5K bool "A5000" - depends on ARCH_ARCA5K help - Say Y here to to support the Acorn A5000. Linux can support the + Say Y here to to support the Acorn A5000. + + Linux can support the internal IDE disk and CD-ROM interface, serial and parallel port, and the floppy drive. Note that on some A5000s the floppy is plugged into the wrong socket on the motherboard. config PAGESIZE_16 - bool "2MB physical memory" - depends on ARCH_ARCA5K + bool "2MB physical memory (broken)" help Say Y here if your Archimedes or A5000 system has only 2MB of memory, otherwise say N. The resulting kernel will not run on a @@ -186,81 +179,7 @@ config KCORE_AOUT endchoice -config BINFMT_AOUT - tristate "Kernel support for a.out binaries" - ---help--- - A.out (Assembler.OUTput) is a set of formats for libraries and - executables used in the earliest versions of UNIX. Linux used the - a.out formats QMAGIC and ZMAGIC until they were replaced with the - ELF format. - - As more and more programs are converted to ELF, the use for a.out - will gradually diminish. If you disable this option it will reduce - your kernel by one page. This is not much and by itself does not - warrant removing support. However its removal is a good idea if you - wish to ensure that absolutely none of your programs will use this - older executable format. If you don't know what to answer at this - point then answer Y. If someone told you "You need a kernel with - QMAGIC support" then you'll have to say Y here. You may answer M to - compile a.out support as a module and later load the module when you - want to use a program or library in a.out format. The module will be - called binfmt_aout. Saying M or N here is dangerous though, - because some crucial programs on your system might still be in A.OUT - format. - -config BINFMT_ELF - tristate "Kernel support for ELF binaries" - ---help--- - ELF (Executable and Linkable Format) is a format for libraries and - executables used across different architectures and operating - systems. Saying Y here will enable your kernel to run ELF binaries - and enlarge it by about 13 KB. ELF support under Linux has now all - but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC) - because it is portable (this does *not* mean that you will be able - to run executables from different architectures or operating systems - however) and makes building run-time libraries very easy. Many new - executables are distributed solely in ELF format. You definitely - want to say Y here. - - Information about ELF is contained in the ELF HOWTO available from - <http://www.linuxdoc.org/docs.html#howto>. - - If you find that after upgrading from Linux kernel 1.2 and saying Y - here, you still can't run any ELF binaries (they just crash), then - you'll have to install the newest ELF runtime libraries, including - ld.so (check the file <file:Documentation/Changes> for location and - latest version). - - If you want to compile this as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. The module - will be called binfmt_elf. Saying M or N here is dangerous because - some crucial programs on your system might be in ELF format. - -config BINFMT_MISC - tristate "Kernel support for MISC binaries" - ---help--- - If you say Y here, it will be possible to plug wrapper-driven binary - formats into the kernel. You will like this especially when you use - programs that need an interpreter to run like Java, Python or - Emacs-Lisp. It's also useful if you often run DOS executables under - the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from - <http://www.linuxdoc.org/docs.html#howto>). Once you have - registered such a binary class with the kernel, you can start one of - those programs simply by typing in its name at a shell prompt; Linux - will automatically feed it to the correct interpreter. - - You can do other nice things, too. Read the file - <file:Documentation/binfmt_misc.txt> to learn how to use this - feature, and <file:Documentation/java.txt> for information about how - to include Java support. - - You must say Y to "/proc file system support" (CONFIG_PROC_FS) to - use this part of the kernel. - - You may say M here for module support and later load the module when - you have use for it; the module is called binfmt_misc. If you - don't know what to answer at this point, say Y. +source "fs/Kconfig.binfmt" config PREEMPT bool "Preemptible Kernel (EXPERIMENTAL)" @@ -311,59 +230,8 @@ source "net/Kconfig" source "net/irda/Kconfig" -menu "ATA/ATAPI/MFM/RLL support" - -config IDE - tristate "ATA/ATAPI/MFM/RLL support" - ---help--- - If you say Y here, your kernel will be able to manage low cost mass - storage units such as ATA/(E)IDE and ATAPI units. The most common - cases are IDE hard drives and ATAPI CD-ROM drives. - - If your system is pure SCSI and doesn't use these interfaces, you - can say N here. - - Integrated Disk Electronics (IDE aka ATA-1) is a connecting standard - for mass storage units such as hard disks. It was designed by - Western Digital and Compaq Computer in 1984. It was then named - ST506. Quite a number of disks use the IDE interface. - - AT Attachment (ATA) is the superset of the IDE specifications. - ST506 was also called ATA-1. - - Fast-IDE is ATA-2 (also named Fast ATA), Enhanced IDE (EIDE) is - ATA-3. It provides support for larger disks (up to 8.4GB by means of - the LBA standard), more disks (4 instead of 2) and for other mass - storage units such as tapes and cdrom. UDMA/33 (aka UltraDMA/33) is - ATA-4 and provides faster (and more CPU friendly) transfer modes - than previous PIO (Programmed processor Input/Output) from previous - ATA/IDE standards by means of fast DMA controllers. - - ATA Packet Interface (ATAPI) is a protocol used by EIDE tape and - CD-ROM drives, similar in many respects to the SCSI protocol. - - SMART IDE (Self Monitoring, Analysis and Reporting Technology) was - designed in order to prevent data corruption and disk crash by - detecting pre hardware failure conditions (heat, access time, and - the like...). Disks built since June 1995 may follow this standard. - The kernel itself don't manage this; however there are quite a - number of user programs such as smart that can query the status of - SMART parameters disk. - - If you want to compile this driver as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. The module - will be called ide. - - For further information, please read <file:Documentation/ide.txt>. - - If unsure, say Y. - source "drivers/ide/Kconfig" -endmenu - - source "drivers/scsi/Kconfig" source "drivers/isdn/Kconfig" diff --git a/arch/arm26/config.in b/arch/arm26/config.in deleted file mode 100644 index 006a435d7591..000000000000 --- a/arch/arm26/config.in +++ /dev/null @@ -1,151 +0,0 @@ -# -# For a description of the syntax of this configuration file, -# see Documentation/kbuild/config-language.txt. -# -mainmenu_name "Linux Kernel Configuration" - -define_bool CONFIG_ARM y -define_bool CONFIG_EISA n -define_bool CONFIG_SBUS n -define_bool CONFIG_MCA n -define_bool CONFIG_UID16 y -define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y -define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n -define_bool CONFIG_GENERIC_BUST_SPINLOCK n -define_bool CONFIG_GENERIC_ISA_DMA n - -source init/Config.in - -mainmenu_option next_comment -comment 'System Type' - -define_bool CONFIG_ARCH_ARCA5K -bool ' Archimedes' CONFIG_ARCH_ARC -bool ' A5000' CONFIG_ARCH_A5K - -# Definitions to make life easier -define_bool CONFIG_ARCH_ACORN y -define_bool CONFIG_CPU_32 n -define_bool CONFIG_CPU_26 y -bool '2MB physical memory' CONFIG_PAGESIZE_16 - -endmenu - -mainmenu_option next_comment -comment 'General setup' - -define_bool CONFIG_FIQ y - -# Compressed boot loader in ROM. Yes, we really want to ask about -# TEXT and BSS so we preserve their values in the config files. -bool 'Compressed boot loader in ROM/flash' CONFIG_ZBOOT_ROM -hex 'Compressed ROM boot loader base address' CONFIG_ZBOOT_ROM_TEXT 0 -hex 'Compressed ROM boot loader BSS address' CONFIG_ZBOOT_ROM_BSS 0 - -comment 'At least one math emulation must be selected' -define_bool CONFIG_FPE_NWFPE y -choice 'Kernel core (/proc/kcore) format' \ - "ELF CONFIG_KCORE_ELF \ - A.OUT CONFIG_KCORE_AOUT" ELF -tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT -tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF -tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC -string 'Default kernel command string' CONFIG_CMDLINE "" - -define_bool CONFIG_ALIGNMENT_TRAP n -endmenu - -source drivers/parport/Config.in -source drivers/pnp/Config.in -source drivers/block/Config.in -source drivers/md/Config.in -source drivers/acorn/block/Config.in - -if [ "$CONFIG_NET" = "y" ]; then - source net/Config.in - - mainmenu_option next_comment - comment 'Network device support' - - bool 'Network device support' CONFIG_NETDEVICES - if [ "$CONFIG_NETDEVICES" = "y" ]; then - source drivers/net/Config.in - fi - endmenu -fi - -mainmenu_option next_comment -comment 'ATA/ATAPI/MFM/RLL support' - -tristate 'ATA/ATAPI/MFM/RLL support' CONFIG_IDE - -if [ "$CONFIG_IDE" != "n" ]; then - source drivers/ide/Config.in -else - define_bool CONFIG_BLK_DEV_HD n -fi -endmenu - -mainmenu_option next_comment -comment 'SCSI support' - -tristate 'SCSI support' CONFIG_SCSI -endmenu - -source drivers/isdn/Config.in - -# -# input before char - char/joystick depends on it. As does USB. -# -source drivers/input/Config.in - -source drivers/char/Config.in -if [ "$CONFIG_BUSMOUSE" = "y" ]; then - define_bool CONFIG_KBDMOUSE y -fi - -source drivers/media/Config.in - -source fs/Config.in - -if [ "$CONFIG_VT" = "y" ]; then - mainmenu_option next_comment - comment 'Console drivers' - source drivers/video/Config.in - endmenu -fi - -mainmenu_option next_comment -comment 'Sound' - -tristate 'Sound card support' CONFIG_SOUND -if [ "$CONFIG_SOUND" != "n" ]; then - source sound/Config.in -fi -endmenu - -source drivers/misc/Config.in -source drivers/usb/Config.in - -mainmenu_option next_comment -comment 'Kernel hacking' - -# Always compile kernel with framepointer (until 2.4 real comes out) -# Bug reports aren't much use without this. -bool 'Compile kernel without frame pointer' CONFIG_NO_FRAME_POINTER -bool 'Verbose user fault messages' CONFIG_DEBUG_USER -bool 'Include debugging information in kernel binary' CONFIG_DEBUG_INFO - -bool 'Kernel debugging' CONFIG_DEBUG_KERNEL -dep_bool ' Debug memory allocations' CONFIG_DEBUG_SLAB $CONFIG_DEBUG_KERNEL -dep_bool ' Magic SysRq key' CONFIG_MAGIC_SYSRQ $CONFIG_DEBUG_KERNEL -dep_bool ' Spinlock debugging' CONFIG_DEBUG_SPINLOCK $CONFIG_DEBUG_KERNEL -dep_bool ' Wait queue debugging' CONFIG_DEBUG_WAITQ $CONFIG_DEBUG_KERNEL -dep_bool ' Verbose BUG() reporting (adds 70K)' CONFIG_DEBUG_BUGVERBOSE $CONFIG_DEBUG_KERNEL -dep_bool ' Verbose kernel error messages' CONFIG_DEBUG_ERRORS $CONFIG_DEBUG_KERNEL -# These options are only for real kernel hackers who want to get their hands dirty. -dep_bool ' Kernel low-level debugging functions' CONFIG_DEBUG_LL $CONFIG_DEBUG_KERNEL -endmenu - -source security/Config.in -source lib/Config.in diff --git a/arch/arm26/kernel/Makefile b/arch/arm26/kernel/Makefile index 01b44b589dc8..59a75ea9a8dd 100644 --- a/arch/arm26/kernel/Makefile +++ b/arch/arm26/kernel/Makefile @@ -6,7 +6,7 @@ ENTRY_OBJ = entry.o # Object file lists. -obj-y := arch.o compat.o dma.o entry.o irq.o \ +obj-y := compat.o dma.o entry.o irq.o \ process.o ptrace.o semaphore.o setup.o signal.o sys_arm.o \ time.o traps.o ecard.o time-acorn.o dma.o \ ecard.o fiq.o time.o diff --git a/arch/arm26/kernel/arch.c b/arch/arm26/kernel/arch.c deleted file mode 100644 index 186de4fd6be3..000000000000 --- a/arch/arm26/kernel/arch.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * linux/arch/arm/kernel/arch.c - * - * Architecture specific fixups. - */ -#include <linux/config.h> -#include <linux/init.h> -#include <linux/types.h> - -#include <asm/elf.h> -#include <asm/setup.h> -#include <asm/mach-types.h> -#include <asm/arch.h> -#include <asm/page.h> - -unsigned int vram_size; - - -unsigned int memc_ctrl_reg; -unsigned int number_mfm_drives; - -static int __init parse_tag_acorn(const struct tag *tag) -{ - memc_ctrl_reg = tag->u.acorn.memc_control_reg; - number_mfm_drives = tag->u.acorn.adfsdrives; - return 0; -} - -__tagtable(ATAG_ACORN, parse_tag_acorn); - diff --git a/arch/arm26/kernel/asm-offsets.c b/arch/arm26/kernel/asm-offsets.c index 1e8764884737..b8d0442de9b5 100644 --- a/arch/arm26/kernel/asm-offsets.c +++ b/arch/arm26/kernel/asm-offsets.c @@ -1,7 +1,7 @@ /* * Copyright (C) 1995-2001 Russell King * 2001-2002 Keith Owens - * 2003-? Ian Molton + * 2003 Ian Molton * * Generate definitions needed by assembly language modules. * This code generates raw asm output which is post-processed to extract diff --git a/arch/arm26/kernel/compat.c b/arch/arm26/kernel/compat.c index 0f8644fe6a86..e3717ab1c043 100644 --- a/arch/arm26/kernel/compat.c +++ b/arch/arm26/kernel/compat.c @@ -26,7 +26,7 @@ #include <asm/mach-types.h> #include <asm/page.h> -#include <asm/arch.h> +//#include <asm/arch.h> //#include <asm/mach/irq.h> /* diff --git a/arch/arm26/kernel/dma.c b/arch/arm26/kernel/dma.c index a6ae4e23651d..b4b8c7c4bbe8 100644 --- a/arch/arm26/kernel/dma.c +++ b/arch/arm26/kernel/dma.c @@ -2,7 +2,7 @@ * linux/arch/arm/kernel/dma.c * * Copyright (C) 1995-2000 Russell King - * 2003-? Ian Molton + * 2003 Ian Molton * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as diff --git a/arch/arm26/kernel/ecard.c b/arch/arm26/kernel/ecard.c index d69497a92811..b57a2e6b87eb 100644 --- a/arch/arm26/kernel/ecard.c +++ b/arch/arm26/kernel/ecard.c @@ -11,9 +11,8 @@ * Find all installed expansion cards, and handle interrupts from them. * * Created from information from Acorns RiscOS3 PRMs - * - * 08-Dec-1996 RMK Added code for the 9'th expansion card - the ether - * podule slot. + * 15-Jun-2003 IM Modified from ARM32 (RiscPC capable) version + * 10-Jan-1999 RMK Run loaders in a simulated RISC OS environment. * 06-May-1997 RMK Added blacklist for cards whose loader doesn't work. * 12-Sep-1997 RMK Created new handling of interrupt enables/disables * - cards can now register their own routine to control @@ -21,10 +20,7 @@ * 29-Sep-1997 RMK Expansion card interrupt hardware not being re-enabled * on reset from Linux. (Caused cards not to respond * under RiscOS without hard reset). - * 15-Feb-1998 RMK Added DMA support - * 12-Sep-1998 RMK Added EASI support - * 10-Jan-1999 RMK Run loaders in a simulated RISC OS environment. - * 17-Apr-1999 RMK Support for EASI Type C cycles. + * */ #define ECARD_C @@ -527,8 +523,7 @@ static int ecard_prints(char *buffer, ecard_t *ec) { char *start = buffer; - buffer += sprintf(buffer, " %d: %s ", ec->slot_no, - ec->type == ECARD_EASI ? "EASI" : " "); + buffer += sprintf(buffer, " %d: ", ec->slot_no); if (ec->cid.id == 0) { struct in_chunk_dir incd; @@ -674,7 +669,7 @@ ecard_probe(int slot, card_type_t type) memset(ec, 0, sizeof(ecard_t)); ec->slot_no = slot; - ec->type = type; + ec->type = type; ec->irq = NO_IRQ; ec->fiq = NO_IRQ; ec->dma = NO_DMA; @@ -770,9 +765,8 @@ static int __init ecard_init(void) printk("Probing expansion cards\n"); - for (slot = 0; slot < 8; slot ++) { - if (ecard_probe(slot, ECARD_EASI) == -ENODEV) - ecard_probe(slot, ECARD_IOC); + for (slot = 0; slot < 4; slot ++) { + ecard_probe(slot, ECARD_IOC); } irqhw = ecard_probeirqhw(); diff --git a/arch/arm26/kernel/irq.c b/arch/arm26/kernel/irq.c index 3b4965a28193..ddd2ea591afd 100644 --- a/arch/arm26/kernel/irq.c +++ b/arch/arm26/kernel/irq.c @@ -41,7 +41,7 @@ * not be set too low to prevent false triggering. Conversely, if it * is set too high, then you could miss a stuck IRQ. * - * Maybe we ought to set a timer and re-enable the IRQ at a later time? + * FIXME Maybe we ought to set a timer and re-enable the IRQ at a later time? */ #define MAX_IRQ_CNT 100000 @@ -49,7 +49,6 @@ static volatile unsigned long irq_err_count; static spinlock_t irq_controller_lock = SPIN_LOCK_UNLOCKED; struct irqdesc irq_desc[NR_IRQS]; -void (*init_arch_irq)(void) __initdata = NULL; /* * Dummy mask/unmask handler @@ -88,7 +87,6 @@ void disable_irq(unsigned int irq) { struct irqdesc *desc = irq_desc + irq; unsigned long flags; - spin_lock_irqsave(&irq_controller_lock, flags); if (!desc->depth++) desc->enabled = 0; @@ -114,7 +112,7 @@ void enable_irq(unsigned int irq) spin_lock_irqsave(&irq_controller_lock, flags); if (unlikely(!desc->depth)) { printk("enable_irq(%u) unbalanced from %p\n", irq, - __builtin_return_address(0)); + __builtin_return_address(0)); //FIXME bum addresses reported - why? } else if (!--desc->depth) { desc->probing = 0; desc->enabled = 1; @@ -187,7 +185,6 @@ __do_irq(unsigned int irq, struct irqaction *action, struct pt_regs *regs) unsigned int status; spin_unlock(&irq_controller_lock); - if (!(action->flags & SA_INTERRUPT)) local_irq_enable(); @@ -700,6 +697,6 @@ void __init init_IRQ(void) for (irq = 0, desc = irq_desc; irq < NR_IRQS; irq++, desc++) *desc = bad_irq_desc; - init_arch_irq(); + arc_init_irq(); init_dma(); } diff --git a/arch/arm26/kernel/process.c b/arch/arm26/kernel/process.c index 6a4283a30199..bf8e0367be88 100644 --- a/arch/arm26/kernel/process.c +++ b/arch/arm26/kernel/process.c @@ -227,7 +227,9 @@ extern void free_page_8k(unsigned long page); #define ll_alloc_task_struct() ((struct thread_info *)get_page_8k(GFP_KERNEL)) #define ll_free_task_struct(p) free_page_8k((unsigned long)(p)) -struct thread_info *alloc_thread_info(void) +//FIXME - do we use *task param below looks like we dont, which is ok? +//FIXME - if EXTRA_TASK_STRUCT is zero we can optimise the below away permanently. *IF* its supposed to be zero. +struct thread_info *alloc_thread_info(struct task_struct *task) { struct thread_info *thread = NULL; diff --git a/arch/arm26/kernel/setup.c b/arch/arm26/kernel/setup.c index f4523c16ae0f..a5e07d757be7 100644 --- a/arch/arm26/kernel/setup.c +++ b/arch/arm26/kernel/setup.c @@ -30,7 +30,6 @@ #include <asm/mach-types.h> #include <asm/tlbflush.h> -#include <asm/arch.h> #include <asm/irqchip.h> #ifndef MEM_SIZE @@ -66,6 +65,8 @@ unsigned int system_rev; unsigned int system_serial_low; unsigned int system_serial_high; unsigned int elf_hwcap; +unsigned int memc_ctrl_reg; +unsigned int number_mfm_drives; struct processor processor; @@ -147,33 +148,6 @@ static void __init setup_processor(void) cpu_proc_init(); } -static struct machine_desc * __init setup_machine(unsigned int nr) -{ - extern struct machine_desc __arch_info_begin, __arch_info_end; - struct machine_desc *list; - - /* - * locate architecture in the list of supported architectures. - */ - for (list = &__arch_info_begin; list < &__arch_info_end; list++) - if (list->nr == nr) - break; - - /* - * If the architecture type is not recognised, then we - * can co nothing... - */ - if (list >= &__arch_info_end) { - printk("Architecture configuration botched (nr %d), unable " - "to continue.\n", nr); - while (1); - } - - printk("Machine: %s\n", list->name); - - return list; -} - /* * Initial parsing of the command line. We need to pick out the * memory size. We look for mem=size@start, where start and size @@ -239,7 +213,7 @@ setup_ramdisk(int doload, int prompt, int image_start, unsigned int rd_sz) } static void __init -request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc) +request_standard_resources(struct meminfo *mi) { struct resource *res; int i; @@ -274,22 +248,18 @@ request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc) request_resource(res, &kernel_data); } - if (mdesc->video_start) { +/* FIXME - needed? if (mdesc->video_start) { video_ram.start = mdesc->video_start; video_ram.end = mdesc->video_end; request_resource(&iomem_resource, &video_ram); - } + }*/ /* * Some machines don't have the possibility of ever - * possessing lp0, lp1 or lp2 + * possessing lp1 or lp2 */ - if (mdesc->reserve_lp0) + if (0) /* FIXME - need to do this for A5k at least */ request_resource(&ioport_resource, &lp0); - if (mdesc->reserve_lp1) - request_resource(&ioport_resource, &lp1); - if (mdesc->reserve_lp2) - request_resource(&ioport_resource, &lp2); } /* @@ -359,6 +329,15 @@ static int __init parse_tag_videotext(const struct tag *tag) __tagtable(ATAG_VIDEOTEXT, parse_tag_videotext); #endif +static int __init parse_tag_acorn(const struct tag *tag) +{ + memc_ctrl_reg = tag->u.acorn.memc_control_reg; + number_mfm_drives = tag->u.acorn.adfsdrives; + return 0; +} + +__tagtable(ATAG_ACORN, parse_tag_acorn); + static int __init parse_tag_ramdisk(const struct tag *tag) { setup_ramdisk((tag->u.ramdisk.flags & 1) == 0, @@ -467,15 +446,18 @@ static struct init_tags { void __init setup_arch(char **cmdline_p) { struct tag *tags = (struct tag *)&init_tags; - struct machine_desc *mdesc; char *from = default_command_line; setup_processor(); - mdesc = setup_machine(machine_arch_type); - machine_name = mdesc->name; + if(machine_arch_type == MACH_TYPE_A5K) + machine_name = "A5000"; + else if(machine_arch_type == MACH_TYPE_ARCHIMEDES) + machine_name = "Archimedes"; + else + machine_name = "UNKNOWN"; - if (mdesc->param_offset) - tags = (struct tag *)mdesc->param_offset; //FIXME - ugly? + //FIXME - this may need altering when we get ROM images working + tags = (struct tag *)0x0207c000; /* * If we have the old style parameters, convert them to @@ -501,12 +483,7 @@ void __init setup_arch(char **cmdline_p) parse_cmdline(&meminfo, cmdline_p, from); bootmem_init(&meminfo); paging_init(&meminfo); - request_standard_resources(&meminfo, mdesc); - - /* - * Set up various architecture-specific pointers - */ - init_arch_irq = mdesc->init_irq; + request_standard_resources(&meminfo); #ifdef CONFIG_VT #if defined(CONFIG_DUMMY_CONSOLE) diff --git a/arch/arm26/kernel/traps.c b/arch/arm26/kernel/traps.c index eaf86c9fedd1..d0e1bc6cf474 100644 --- a/arch/arm26/kernel/traps.c +++ b/arch/arm26/kernel/traps.c @@ -175,6 +175,11 @@ void show_trace_task(struct task_struct *tsk) } } +/* FIXME - this is probably wrong.. */ +void show_stack(struct task_struct *task, unsigned long *sp) { + dump_mem("Stack: ", (unsigned long)sp, 8192+(unsigned long)task->thread_info); +} + spinlock_t die_lock = SPIN_LOCK_UNLOCKED; /* @@ -497,7 +502,7 @@ baddataabort(int code, unsigned long instr, struct pt_regs *regs) die_if_kernel("unknown data abort code", regs, instr); } -void __bug(const char *file, int line, void *data) +volatile void __bug(const char *file, int line, void *data) { printk(KERN_CRIT"kernel BUG at %s:%d!", file, line); if (data) diff --git a/arch/arm26/lib/Makefile b/arch/arm26/lib/Makefile index d327dc7f385e..d05d6b0fd3e2 100644 --- a/arch/arm26/lib/Makefile +++ b/arch/arm26/lib/Makefile @@ -4,9 +4,7 @@ # Copyright (C) 1995-2000 Russell King # -L_TARGET := lib.a - -obj-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ +lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ csumpartialcopy.o csumpartialcopyuser.o clearbit.o \ copy_page.o delay.o findbit.o memchr.o memcpy.o \ memset.o memzero.o setbit.o \ @@ -16,15 +14,12 @@ obj-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ ucmpdi2.o udivdi3.o lib1funcs.o ecard.o io-acorn.o \ floppydma.o io-readsb.o io-writesb.o io-writesl.o \ uaccess-kernel.o uaccess-user.o io-readsw-armv3.o \ - io-writesw-armv3.o io-readsl-armv3.o - -obj-m := -obj-n := - -obj-$(CONFIG_VT)+= kbd.o + io-writesw-armv3.o io-readsl-armv3.o ecard.o \ + io-acorn.o floppydma.o -obj-y += ecard.o io-acorn.o floppydma.o +lib-n := +lib-$(CONFIG_VT)+= kbd.o csumpartialcopy.o: csumpartialcopygeneric.S csumpartialcopyuser.o: csumpartialcopygeneric.S diff --git a/arch/arm26/machine/Makefile b/arch/arm26/machine/Makefile index f1211f9c9827..84642febab44 100644 --- a/arch/arm26/machine/Makefile +++ b/arch/arm26/machine/Makefile @@ -4,7 +4,7 @@ # Object file lists. -obj-y := arch.o dma.o irq.o oldlatches.o \ +obj-y := dma.o irq.o oldlatches.o \ small_page.o extra-y := head.o diff --git a/arch/arm26/machine/arch.c b/arch/arm26/machine/arch.c deleted file mode 100644 index 410c2852afaf..000000000000 --- a/arch/arm26/machine/arch.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * linux/arch/arm26/mach-arc/arch.c - * - * Copyright (C) 1998-2001 Russell King - * Copyright (C) 2003 Ian Molton - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Architecture specific fixups. - */ -#include <linux/config.h> -#include <linux/tty.h> -#include <linux/init.h> - -#include <asm/mach-types.h> -#include <asm/hardware.h> -#include <asm/page.h> -#include <asm/setup.h> - -#include <asm/map.h> -#include <asm/arch.h> - -extern void arc_init_irq(void); - -#ifdef CONFIG_ARCH_ARC -MACHINE_START(ARCHIMEDES, "Acorn-Archimedes") -#elif defined(CONFIG_ARCH_A5K) -MACHINE_START(A5K, "Acorn-A5000") -#endif - MAINTAINER("Ian Molton") - BOOT_PARAMS(0x0207c000) - INITIRQ(arc_init_irq) -MACHINE_END - diff --git a/arch/arm26/machine/irq.c b/arch/arm26/machine/irq.c index 1c5f88fb2e52..158a7d29efbc 100644 --- a/arch/arm26/machine/irq.c +++ b/arch/arm26/machine/irq.c @@ -73,7 +73,6 @@ static struct irqchip arc_a_chip = { static void arc_mask_irq_b(unsigned int irq) { unsigned int val, mask; - mask = 1 << (irq & 7); val = ioc_readb(IOC_IRQMASKB); ioc_writeb(val & ~mask, IOC_IRQMASKB); @@ -94,7 +93,7 @@ static struct irqchip arc_b_chip = { .unmask = arc_unmask_irq_b, }; -/* FIXME - JMA none of these functions are used in arm26 +/* FIXME - JMA none of these functions are used in arm26 currently static void arc_mask_irq_fiq(unsigned int irq) { unsigned int val, mask; @@ -124,6 +123,7 @@ void __init arc_init_irq(void) { unsigned int irq, flags; + /* Disable all IOC interrupt sources */ ioc_writeb(0, IOC_IRQMASKA); ioc_writeb(0, IOC_IRQMASKB); ioc_writeb(0, IOC_FIQMASK); diff --git a/arch/arm26/mm/init.c b/arch/arm26/mm/init.c index 01c772bef70e..989f08c19c62 100644 --- a/arch/arm26/mm/init.c +++ b/arch/arm26/mm/init.c @@ -32,7 +32,7 @@ #include <asm/setup.h> #include <asm/tlb.h> -#include <asm/arch.h> +//#include <asm/arch.h> #include <asm/map.h> #define TABLE_SIZE PTRS_PER_PTE * sizeof(pte_t)) diff --git a/arch/arm26/mm/mm-memc.c b/arch/arm26/mm/mm-memc.c index 15ec20e2750c..6b3d3ae806f4 100644 --- a/arch/arm26/mm/mm-memc.c +++ b/arch/arm26/mm/mm-memc.c @@ -70,11 +70,9 @@ void free_pgd_slow(pgd_t *pgd) pgd_t *get_pgd_slow(struct mm_struct *mm) { - void *pg2k; pgd_t *new_pgd, *init_pgd; pmd_t *new_pmd, *init_pmd; pte_t *new_pte, *init_pte; - struct mm_struct bob; new_pgd = alloc_pgd_table(); if (!new_pgd) diff --git a/include/asm-arm26/arch.h b/include/asm-arm26/arch.h deleted file mode 100644 index 1011bcc6d7ac..000000000000 --- a/include/asm-arm26/arch.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * linux/include/asm-arm/mach/arch.h - * - * Copyright (C) 2000 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -/* - * The size of struct machine_desc - * (for assembler code) - * FIXME - I count 45... or is this padding? - */ -#define SIZEOF_MACHINE_DESC 48 - -#ifndef __ASSEMBLY__ - -struct tag; - -struct machine_desc { - int nr; /* arch no FIXME - get rid */ - const char *name; /* architecture name */ - unsigned int param_offset; /* parameter page */ - - unsigned int video_start; /* start of video RAM */ - unsigned int video_end; /* end of video RAM */ - - unsigned int reserve_lp0 :1; /* never has lp0 */ - unsigned int reserve_lp1 :1; /* never has lp1 */ - unsigned int reserve_lp2 :1; /* never has lp2 */ - unsigned int soft_reboot :1; /* soft reboot */ - void (*fixup)(struct machine_desc *, - struct tag *, char **, - struct meminfo *); - void (*map_io)(void);/* IO mapping function */ - void (*init_irq)(void); -}; - -/* - * 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 \ - __attribute__((__section__(".arch.info"))) = { \ - nr: MACH_TYPE_##_type, \ - name: _name, - -#define MAINTAINER(n) - -#define BOOT_PARAMS(_params) \ - param_offset: _params, - -#define INITIRQ(_func) \ - init_irq: _func, - -#define MACHINE_END \ -}; - -#endif diff --git a/include/asm-arm26/bug.h b/include/asm-arm26/bug.h index a92b1bc8eb1e..a1afde728b03 100644 --- a/include/asm-arm26/bug.h +++ b/include/asm-arm26/bug.h @@ -4,7 +4,7 @@ #include <linux/config.h> #ifdef CONFIG_DEBUG_BUGVERBOSE -extern void __bug(const char *file, int line, void *data); +extern volatile void __bug(const char *file, int line, void *data); /* give file/line information */ #define BUG() __bug(__FILE__, __LINE__, NULL) @@ -18,4 +18,13 @@ extern void __bug(const char *file, int line, void *data); #endif +#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) + +#define WARN_ON(condition) do { \ + if (unlikely((condition)!=0)) { \ + printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ + dump_stack(); \ + } \ +} while (0) + #endif diff --git a/include/asm-arm26/bugs.h b/include/asm-arm26/bugs.h index 665ab62c27ce..e99ac2e46d7f 100644 --- a/include/asm-arm26/bugs.h +++ b/include/asm-arm26/bugs.h @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/bugs.h + * linux/include/asm-arm26/bugs.h * * Copyright (C) 1995 Russell King * diff --git a/include/asm-arm26/ecard.h b/include/asm-arm26/ecard.h index 28af14fd7f75..8318a0c1df81 100644 --- a/include/asm-arm26/ecard.h +++ b/include/asm-arm26/ecard.h @@ -26,6 +26,9 @@ #define PROD_ACORN_ETHER1 0x0003 #define PROD_ACORN_MFM 0x000b +#define MANU_CCONCEPTS 0x0009 +#define PROD_CCONCEPTS_COLOURCARD 0x0050 + #define MANU_ANT2 0x0011 #define PROD_ANT_ETHER3 0x00a4 diff --git a/include/asm-arm26/mach-types.h b/include/asm-arm26/mach-types.h index 514b8032696c..b34045b78128 100644 --- a/include/asm-arm26/mach-types.h +++ b/include/asm-arm26/mach-types.h @@ -1,5 +1,6 @@ /* * Unlike ARM32 this is NOT automatically generated. DONT delete it + * Instead, consider FIXME-ing it so its auto-detected. */ #ifndef __ASM_ARM_MACH_TYPE_H diff --git a/include/asm-arm26/pgalloc.h b/include/asm-arm26/pgalloc.h index bf2e19512524..6437167b1ffe 100644 --- a/include/asm-arm26/pgalloc.h +++ b/include/asm-arm26/pgalloc.h @@ -55,9 +55,9 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep) * is thrown away. It just cant be zero. -IM */ -#define pmd_alloc_one(mm,addr) ((pmd_t *)2); BUG() +#define pmd_alloc_one(mm,addr) ({ BUG(); ((pmd_t *)2); }) #define pmd_free(pmd) do { } while (0) -#define pgd_populate(mm,pmd,pte) (0) +#define pgd_populate(mm,pmd,pte) BUG() extern pgd_t *get_pgd_slow(struct mm_struct *mm); extern void free_pgd_slow(pgd_t *pgd); diff --git a/include/asm-arm26/pgtable.h b/include/asm-arm26/pgtable.h index a6ac3957b0be..3fb067eaf801 100644 --- a/include/asm-arm26/pgtable.h +++ b/include/asm-arm26/pgtable.h @@ -179,7 +179,7 @@ extern struct page *empty_zero_page; /* Is pmd_page supposed to return a pointer to a page in some arches? ours seems to * return a pointer to memory (no special alignment) */ -#define pmd_page(pmd) ((unsigned long)(pmd_val((pmd)) & ~_PMD_PRESENT)) +#define pmd_page(pmd) ((struct page *)(pmd_val((pmd)) & ~_PMD_PRESENT)) #define pmd_page_kernel(pmd) ((pte_t *)(pmd_val((pmd)) & ~_PMD_PRESENT)) #define pte_offset_kernel(dir,addr) (pmd_page_kernel(*(dir)) + __pte_index(addr)) diff --git a/include/asm-arm26/statfs.h b/include/asm-arm26/statfs.h index a1eba73ded99..776dbc8f7623 100644 --- a/include/asm-arm26/statfs.h +++ b/include/asm-arm26/statfs.h @@ -1,25 +1,8 @@ #ifndef _ASMARM_STATFS_H #define _ASMARM_STATFS_H -#ifndef __KERNEL_STRICT_NAMES +//FIXME - this may not be appropriate for arm26. check it out. -#include <linux/types.h> - -typedef __kernel_fsid_t fsid_t; - -#endif - -struct statfs { - long f_type; - long f_bsize; - long f_blocks; - long f_bfree; - long f_bavail; - long f_files; - long f_ffree; - __kernel_fsid_t f_fsid; - long f_namelen; - long f_spare[6]; -}; +#include <asm-generic/statfs.h> #endif diff --git a/include/asm-arm26/thread_info.h b/include/asm-arm26/thread_info.h index 3f298bf9206a..24c5136484fb 100644 --- a/include/asm-arm26/thread_info.h +++ b/include/asm-arm26/thread_info.h @@ -85,7 +85,7 @@ static inline struct thread_info *current_thread_info(void) //#define INIT_THREAD_SIZE (65536) #define __get_user_regs(x) (((struct pt_regs *)((unsigned long)(x) + THREAD_SIZE - 8)) - 1) -extern struct thread_info *alloc_thread_info(void); +extern struct thread_info *alloc_thread_info(struct task_struct *task); extern void free_thread_info(struct thread_info *); #define get_thread_info(ti) get_task_struct((ti)->task) |
