Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
bd824b9f
Commit
bd824b9f
authored
Jul 06, 2003
by
Ian Molton
Committed by
Steve French
Jul 06, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] ARM26 architecture update
parent
d62f5562
Changes
29
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
105 additions
and
924 deletions
+105
-924
MAINTAINERS
MAINTAINERS
+15
-0
arch/arm26/Config.help
arch/arm26/Config.help
+0
-387
arch/arm26/Kconfig
arch/arm26/Kconfig
+12
-144
arch/arm26/config.in
arch/arm26/config.in
+0
-151
arch/arm26/kernel/Makefile
arch/arm26/kernel/Makefile
+1
-1
arch/arm26/kernel/arch.c
arch/arm26/kernel/arch.c
+0
-30
arch/arm26/kernel/asm-offsets.c
arch/arm26/kernel/asm-offsets.c
+1
-1
arch/arm26/kernel/compat.c
arch/arm26/kernel/compat.c
+1
-1
arch/arm26/kernel/dma.c
arch/arm26/kernel/dma.c
+1
-1
arch/arm26/kernel/ecard.c
arch/arm26/kernel/ecard.c
+7
-13
arch/arm26/kernel/irq.c
arch/arm26/kernel/irq.c
+3
-6
arch/arm26/kernel/process.c
arch/arm26/kernel/process.c
+3
-1
arch/arm26/kernel/setup.c
arch/arm26/kernel/setup.c
+25
-48
arch/arm26/kernel/traps.c
arch/arm26/kernel/traps.c
+6
-1
arch/arm26/lib/Makefile
arch/arm26/lib/Makefile
+5
-10
arch/arm26/machine/Makefile
arch/arm26/machine/Makefile
+1
-1
arch/arm26/machine/arch.c
arch/arm26/machine/arch.c
+0
-36
arch/arm26/machine/irq.c
arch/arm26/machine/irq.c
+2
-2
arch/arm26/mm/init.c
arch/arm26/mm/init.c
+1
-1
arch/arm26/mm/mm-memc.c
arch/arm26/mm/mm-memc.c
+0
-2
include/asm-arm26/arch.h
include/asm-arm26/arch.h
+0
-62
include/asm-arm26/bug.h
include/asm-arm26/bug.h
+10
-1
include/asm-arm26/bugs.h
include/asm-arm26/bugs.h
+1
-1
include/asm-arm26/ecard.h
include/asm-arm26/ecard.h
+3
-0
include/asm-arm26/mach-types.h
include/asm-arm26/mach-types.h
+1
-0
include/asm-arm26/pgalloc.h
include/asm-arm26/pgalloc.h
+2
-2
include/asm-arm26/pgtable.h
include/asm-arm26/pgtable.h
+1
-1
include/asm-arm26/statfs.h
include/asm-arm26/statfs.h
+2
-19
include/asm-arm26/thread_info.h
include/asm-arm26/thread_info.h
+1
-1
No files found.
MAINTAINERS
View file @
bd824b9f
...
...
@@ -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
...
...
arch/arm26/Config.help
deleted
100644 → 0
View file @
d62f5562
This diff is collapsed.
Click to expand it.
arch/arm26/Kconfig
View file @
bd824b9f
...
...
@@ -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"
...
...
arch/arm26/config.in
deleted
100644 → 0
View file @
d62f5562
#
# 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
arch/arm26/kernel/Makefile
View file @
bd824b9f
...
...
@@ -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
...
...
arch/arm26/kernel/arch.c
deleted
100644 → 0
View file @
d62f5562
/*
* 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
);
arch/arm26/kernel/asm-offsets.c
View file @
bd824b9f
/*
* 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
...
...
arch/arm26/kernel/compat.c
View file @
bd824b9f
...
...
@@ -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>
/*
...
...
arch/arm26/kernel/dma.c
View file @
bd824b9f
...
...
@@ -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
...
...
arch/arm26/kernel/ecard.c
View file @
bd824b9f
...
...
@@ -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
();
...
...
arch/arm26/kernel/irq.c
View file @
bd824b9f
...
...
@@ -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
();
}
arch/arm26/kernel/process.c
View file @
bd824b9f
...
...
@@ -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
;
...
...
arch/arm26/kernel/setup.c
View file @
bd824b9f
...
...
@@ -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 lp
0, lp
1 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)
...
...
arch/arm26/kernel/traps.c
View file @
bd824b9f
...
...
@@ -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
)
vo
latile
vo
id
__bug
(
const
char
*
file
,
int
line
,
void
*
data
)
{
printk
(
KERN_CRIT
"kernel BUG at %s:%d!"
,
file
,
line
);
if
(
data
)
...
...
arch/arm26/lib/Makefile
View file @
bd824b9f
...
...
@@ -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
...
...
arch/arm26/machine/Makefile
View file @
bd824b9f
...
...
@@ -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
...
...
arch/arm26/machine/arch.c
deleted
100644 → 0
View file @
d62f5562
/*
* 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
arch/arm26/machine/irq.c
View file @
bd824b9f
...
...
@@ -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
);
...
...
arch/arm26/mm/init.c
View file @
bd824b9f
...
...
@@ -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))
...
...
arch/arm26/mm/mm-memc.c
View file @
bd824b9f
...
...
@@ -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
)
...
...
include/asm-arm26/arch.h
deleted
100644 → 0
View file @
d62f5562
/*
* 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
include/asm-arm26/bug.h
View file @
bd824b9f
...
...
@@ -4,7 +4,7 @@
#include <linux/config.h>
#ifdef CONFIG_DEBUG_BUGVERBOSE
extern
void
__bug
(
const
char
*
file
,
int
line
,
void
*
data
);
extern
vo
latile
vo
id
__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
include/asm-arm26/bugs.h
View file @
bd824b9f
/*
* linux/include/asm-arm/bugs.h
* linux/include/asm-arm
26
/bugs.h
*
* Copyright (C) 1995 Russell King
*
...
...
include/asm-arm26/ecard.h
View file @
bd824b9f
...
...
@@ -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
...
...
include/asm-arm26/mach-types.h
View file @
bd824b9f
/*
* 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
...
...
include/asm-arm26/pgalloc.h
View file @
bd824b9f
...
...
@@ -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
);
...
...
include/asm-arm26/pgtable.h
View file @
bd824b9f
...
...
@@ -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))
...
...
include/asm-arm26/statfs.h
View file @
bd824b9f
#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
include/asm-arm26/thread_info.h
View file @
bd824b9f
...
...
@@ -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)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment