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
ea1e2d62
Commit
ea1e2d62
authored
Jun 04, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
5fb4864a
09520524
Changes
55
Hide whitespace changes
Inline
Side-by-side
Showing
55 changed files
with
450 additions
and
592 deletions
+450
-592
arch/arm/Makefile
arch/arm/Makefile
+26
-24
arch/arm/mach-adifcc/mm.c
arch/arm/mach-adifcc/mm.c
+3
-4
arch/arm/mach-anakin/mm.c
arch/arm/mach-anakin/mm.c
+5
-7
arch/arm/mach-clps711x/autcpu12.c
arch/arm/mach-clps711x/autcpu12.c
+4
-5
arch/arm/mach-clps711x/cdb89712.c
arch/arm/mach-clps711x/cdb89712.c
+3
-3
arch/arm/mach-clps711x/edb7211-mm.c
arch/arm/mach-clps711x/edb7211-mm.c
+8
-11
arch/arm/mach-clps711x/mm.c
arch/arm/mach-clps711x/mm.c
+3
-28
arch/arm/mach-clps711x/p720t.c
arch/arm/mach-clps711x/p720t.c
+4
-4
arch/arm/mach-clps7500/core.c
arch/arm/mach-clps7500/core.c
+7
-7
arch/arm/mach-ebsa110/core.c
arch/arm/mach-ebsa110/core.c
+8
-8
arch/arm/mach-epxa10db/mm.c
arch/arm/mach-epxa10db/mm.c
+8
-12
arch/arm/mach-footbridge/mm.c
arch/arm/mach-footbridge/mm.c
+14
-21
arch/arm/mach-ftvpci/core.c
arch/arm/mach-ftvpci/core.c
+7
-7
arch/arm/mach-integrator/mm.c
arch/arm/mach-integrator/mm.c
+18
-22
arch/arm/mach-iop310/mm.c
arch/arm/mach-iop310/mm.c
+8
-9
arch/arm/mach-l7200/core.c
arch/arm/mach-l7200/core.c
+7
-7
arch/arm/mach-pxa/generic.c
arch/arm/mach-pxa/generic.c
+7
-8
arch/arm/mach-pxa/idp.c
arch/arm/mach-pxa/idp.c
+8
-14
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/lubbock.c
+7
-7
arch/arm/mach-rpc/riscpc.c
arch/arm/mach-rpc/riscpc.c
+5
-5
arch/arm/mach-sa1100/adsbitsy.c
arch/arm/mach-sa1100/adsbitsy.c
+4
-5
arch/arm/mach-sa1100/assabet.c
arch/arm/mach-sa1100/assabet.c
+7
-10
arch/arm/mach-sa1100/badge4.c
arch/arm/mach-sa1100/badge4.c
+5
-6
arch/arm/mach-sa1100/cerf.c
arch/arm/mach-sa1100/cerf.c
+6
-7
arch/arm/mach-sa1100/empeg.c
arch/arm/mach-sa1100/empeg.c
+3
-4
arch/arm/mach-sa1100/flexanet.c
arch/arm/mach-sa1100/flexanet.c
+6
-7
arch/arm/mach-sa1100/freebird.c
arch/arm/mach-sa1100/freebird.c
+4
-7
arch/arm/mach-sa1100/generic.c
arch/arm/mach-sa1100/generic.c
+7
-9
arch/arm/mach-sa1100/graphicsclient.c
arch/arm/mach-sa1100/graphicsclient.c
+5
-6
arch/arm/mach-sa1100/graphicsmaster.c
arch/arm/mach-sa1100/graphicsmaster.c
+6
-7
arch/arm/mach-sa1100/h3600.c
arch/arm/mach-sa1100/h3600.c
+5
-6
arch/arm/mach-sa1100/huw_webpanel.c
arch/arm/mach-sa1100/huw_webpanel.c
+4
-5
arch/arm/mach-sa1100/itsy.c
arch/arm/mach-sa1100/itsy.c
+3
-5
arch/arm/mach-sa1100/jornada720.c
arch/arm/mach-sa1100/jornada720.c
+5
-6
arch/arm/mach-sa1100/lart.c
arch/arm/mach-sa1100/lart.c
+4
-5
arch/arm/mach-sa1100/nanoengine.c
arch/arm/mach-sa1100/nanoengine.c
+4
-6
arch/arm/mach-sa1100/neponset.c
arch/arm/mach-sa1100/neponset.c
+7
-6
arch/arm/mach-sa1100/omnimeter.c
arch/arm/mach-sa1100/omnimeter.c
+3
-4
arch/arm/mach-sa1100/pangolin.c
arch/arm/mach-sa1100/pangolin.c
+3
-4
arch/arm/mach-sa1100/pfs168.c
arch/arm/mach-sa1100/pfs168.c
+15
-17
arch/arm/mach-sa1100/pleb.c
arch/arm/mach-sa1100/pleb.c
+0
-8
arch/arm/mach-sa1100/pm.c
arch/arm/mach-sa1100/pm.c
+29
-13
arch/arm/mach-sa1100/simpad.c
arch/arm/mach-sa1100/simpad.c
+4
-6
arch/arm/mach-sa1100/sleep.S
arch/arm/mach-sa1100/sleep.S
+68
-92
arch/arm/mach-sa1100/sleep.h
arch/arm/mach-sa1100/sleep.h
+0
-30
arch/arm/mach-sa1100/stork.c
arch/arm/mach-sa1100/stork.c
+5
-7
arch/arm/mach-sa1100/system3.c
arch/arm/mach-sa1100/system3.c
+4
-5
arch/arm/mach-sa1100/xp860.c
arch/arm/mach-sa1100/xp860.c
+5
-6
arch/arm/mach-sa1100/yopy.c
arch/arm/mach-sa1100/yopy.c
+4
-7
arch/arm/mach-shark/core.c
arch/arm/mach-shark/core.c
+3
-11
arch/arm/mach-tbox/core.c
arch/arm/mach-tbox/core.c
+3
-3
arch/arm/mm/mm-armv.c
arch/arm/mm/mm-armv.c
+45
-45
include/asm-arm/mach/map.h
include/asm-arm/mach/map.h
+8
-10
include/asm-arm/page.h
include/asm-arm/page.h
+2
-2
include/asm-arm/thread_info.h
include/asm-arm/thread_info.h
+4
-2
No files found.
arch/arm/Makefile
View file @
ea1e2d62
...
@@ -201,15 +201,30 @@ MAKETOOLS =$(MAKE) -C arch/$(ARCH)/tools
...
@@ -201,15 +201,30 @@ MAKETOOLS =$(MAKE) -C arch/$(ARCH)/tools
$(patsubst %,_dir_%, $(SUBDIRS))
:
maketools
$(patsubst %,_dir_%, $(SUBDIRS))
:
maketools
$(patsubst %,_modsubdir_%,$(MOD_DIRS))
:
maketools
$(patsubst %,_modsubdir_%,$(MOD_DIRS))
:
maketools
symlinks
:
archsymlinks
# Update machine arch and proc symlinks if something which affects
# them changed. We use .arch and .proc to indicate when they were
# updated last, otherwise make uses the target directory mtime.
archsymlinks
:
include/asm-arm/.arch
:
$(wildcard include/config/arch/*.h)
$(RM)
include/asm-arm/arch include/asm-arm/proc
@
echo
'Making asm-arm/arch -> asm-arm/arch-
$(INCDIR)
symlink'
(
cd
include/asm-arm
;
ln
-sf
arch-
$(INCDIR)
arch
;
ln
-sf
proc-
$(PROCESSOR)
proc
)
@
rm
-f
include/asm-arm/arch
@
ln
-sf
arch-
$(INCDIR)
include/asm-arm/arch
@
touch
$@
include/asm-arm/.proc
:
$(wildcard include/config/cpu/32.h) $(wildcard include/config/cpu/26.h)
@
echo
'Making asm-arm/proc -> asm-arm/proc-
$(PROCESSOR)
symlink'
@
rm
-f
include/asm-arm/proc
@
ln
-sf
proc-
$(PROCESSOR)
include/asm-arm/proc
@
touch
$@
.hdepend
:
include/asm-arm/.arch include/asm-arm/.proc
vmlinux
:
arch/arm/vmlinux.lds
vmlinux
:
arch/arm/vmlinux.lds
arch/arm/vmlinux.lds
:
$(LDSCRIPT) FORCE
arch/arm/vmlinux.lds
:
arch/arm/Makefile $(LDSCRIPT)
\
$(wildcard include/config/cpu/32.h)
\
$(wildcard include/config/cpu/26.h)
\
$(wildcard include/config/arch/*.h)
@
sed
's/TEXTADDR/
$(TEXTADDR)
/;s/DATAADDR/
$(DATAADDR)
/'
$(LDSCRIPT)
>
$@
@
sed
's/TEXTADDR/
$(TEXTADDR)
/;s/DATAADDR/
$(DATAADDR)
/'
$(LDSCRIPT)
>
$@
bzImage zImage zinstall Image bootpImage install
:
vmlinux
bzImage zImage zinstall Image bootpImage install
:
vmlinux
...
@@ -220,39 +235,26 @@ CLEAN_FILES += \
...
@@ -220,39 +235,26 @@ CLEAN_FILES += \
MRPROPER_FILES
+=
\
MRPROPER_FILES
+=
\
arch
/arm/tools/constants.h
*
\
arch
/arm/tools/constants.h
*
\
include/asm-arm/arch
\
include/asm-arm/arch
include/asm-arm/.arch
\
include/asm-arm/proc
\
include/asm-arm/proc
include/asm-arm/.proc
\
include/asm-arm/constants.h
*
\
include/asm-arm/constants.h
*
\
include/asm-arm/mach-types.h
include/asm-arm/mach-types.h
# We use MRPROPER_FILES and CLEAN_FILES now
# We use MRPROPER_FILES and CLEAN_FILES now
archmrproper
:
archmrproper
:
FORCE
@
/bin/true
@
/bin/true
archclean
:
archclean
:
FORCE
@
$(MAKEBOOT)
clean
@
$(MAKEBOOT)
clean
archdep
:
scripts/mkdep archsymlinks
archdep
:
FORCE
@
$(MAKETOOLS)
dep
@
$(MAKETOOLS)
dep
@
$(MAKEBOOT)
dep
@
$(MAKEBOOT)
dep
# we need version.h
# we need version.h
maketools
:
checkbin include/linux/version.h
maketools
:
include/linux/version.h FORCE
@
$(MAKETOOLS)
all
@
$(MAKETOOLS)
all
# Ensure this is ld "2.9.4" or later
NEW_LINKER
:=
$(
shell
$(LD)
--gc-sections
--version
>
/dev/null 2>&1
;
echo
$$
?
)
ifneq
($(NEW_LINKER),0)
checkbin
:
@
echo
'***
${VERSION}
.
${PATCHLEVEL}
kernels no longer build correctly with old versions of binutils.'
@
echo
'*** Please upgrade your binutils to 2.9.5.'
@
false
else
checkbin
:
@
true
endif
# My testing targets (that short circuit a few dependencies)
# My testing targets (that short circuit a few dependencies)
zImg
:
; @$(MAKEBOOT) zImage
zImg
:
; @$(MAKEBOOT) zImage
Img
:
; @$(MAKEBOOT) Image
Img
:
; @$(MAKEBOOT) Image
...
...
arch/arm/mach-adifcc/mm.c
View file @
ea1e2d62
/*
/*
* linux/arch/arm/mach-xscale/mm.c
* linux/arch/arm/mach-xscale/mm.c
*/
*/
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -14,11 +14,10 @@
...
@@ -14,11 +14,10 @@
static
struct
map_desc
adifcc_io_desc
[]
__initdata
=
{
static
struct
map_desc
adifcc_io_desc
[]
__initdata
=
{
/* on-board devices */
/* on-board devices */
{
0xff400000
,
0x00400000
,
0x00300000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
0xff400000
,
0x00400000
,
0x00300000
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
adifcc_map_io
(
void
)
void
__init
adifcc_map_io
(
void
)
{
{
iotable_init
(
adifcc_io_desc
);
iotable_init
(
adifcc_io_desc
,
ARRAY_SIZE
(
adifcc_io_desc
)
);
}
}
arch/arm/mach-anakin/mm.c
View file @
ea1e2d62
...
@@ -10,8 +10,7 @@
...
@@ -10,8 +10,7 @@
* Changelog:
* Changelog:
* 09-Apr-2001 W/TTC Created
* 09-Apr-2001 W/TTC Created
*/
*/
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
#include <asm/io.h>
#include <asm/io.h>
...
@@ -19,14 +18,13 @@
...
@@ -19,14 +18,13 @@
#include <asm/mach/map.h>
#include <asm/mach/map.h>
static
struct
map_desc
anakin_io_desc
[]
__initdata
=
{
static
struct
map_desc
anakin_io_desc
[]
__initdata
=
{
{
IO_BASE
,
IO_START
,
IO_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
IO_BASE
,
IO_START
,
IO_SIZE
,
MT_DEVICE
},
{
FLASH_BASE
,
FLASH_START
,
FLASH_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
FLASH_BASE
,
FLASH_START
,
FLASH_SIZE
,
MT_DEVICE
},
{
VGA_BASE
,
VGA_START
,
VGA_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
VGA_BASE
,
VGA_START
,
VGA_SIZE
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
void
__init
anakin_map_io
(
void
)
anakin_map_io
(
void
)
{
{
iotable_init
(
anakin_io_desc
);
iotable_init
(
anakin_io_desc
,
ARRAY_SIZE
(
anakin_io_desc
)
);
}
}
arch/arm/mach-clps711x/autcpu12.c
View file @
ea1e2d62
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
* along with this program; if not, write to the Free Software
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/string.h>
...
@@ -48,18 +49,16 @@ extern void clps711x_init_irq(void);
...
@@ -48,18 +49,16 @@ extern void clps711x_init_irq(void);
*/
*/
static
struct
map_desc
autcpu12_io_desc
[]
__initdata
=
{
static
struct
map_desc
autcpu12_io_desc
[]
__initdata
=
{
/* virtual, physical, length,
domain, r, w, c, b
*/
/* virtual, physical, length,
type
*/
/* memory-mapped extra io and CS8900A Ethernet chip */
/* memory-mapped extra io and CS8900A Ethernet chip */
/* ethernet chip */
/* ethernet chip */
{
AUTCPU12_VIRT_CS8900A
,
AUTCPU12_PHYS_CS8900A
,
SZ_1M
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
AUTCPU12_VIRT_CS8900A
,
AUTCPU12_PHYS_CS8900A
,
SZ_1M
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
autcpu12_map_io
(
void
)
void
__init
autcpu12_map_io
(
void
)
{
{
clps711x_map_io
();
clps711x_map_io
();
iotable_init
(
autcpu12_io_desc
);
iotable_init
(
autcpu12_io_desc
,
ARRAY_SIZE
(
autcpu12_io_desc
)
);
}
}
MACHINE_START
(
AUTCPU12
,
"autronix autcpu12"
)
MACHINE_START
(
AUTCPU12
,
"autronix autcpu12"
)
...
...
arch/arm/mach-clps711x/cdb89712.c
View file @
ea1e2d62
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
* along with this program; if not, write to the Free Software
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/string.h>
...
@@ -40,14 +41,13 @@ extern void clps711x_map_io(void);
...
@@ -40,14 +41,13 @@ extern void clps711x_map_io(void);
* ethernet driver, perhaps.
* ethernet driver, perhaps.
*/
*/
static
struct
map_desc
cdb89712_io_desc
[]
__initdata
=
{
static
struct
map_desc
cdb89712_io_desc
[]
__initdata
=
{
{
ETHER_BASE
,
ETHER_START
,
ETHER_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
ETHER_BASE
,
ETHER_START
,
ETHER_SIZE
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
cdb89712_map_io
(
void
)
static
void
__init
cdb89712_map_io
(
void
)
{
{
clps711x_map_io
();
clps711x_map_io
();
iotable_init
(
cdb89712_io_desc
);
iotable_init
(
cdb89712_io_desc
,
ARRAY_SIZE
(
cdb89712_io_desc
)
);
}
}
MACHINE_START
(
CDB89712
,
"Cirrus-CDB89712"
)
MACHINE_START
(
CDB89712
,
"Cirrus-CDB89712"
)
...
...
arch/arm/mach-clps711x/edb7211-mm.c
View file @
ea1e2d62
...
@@ -19,13 +19,12 @@
...
@@ -19,13 +19,12 @@
* along with this program; if not, write to the Free Software
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
*/
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/sizes.h>
#include <asm/sizes.h>
#include <asm/mach/map.h>
#include <asm/mach/map.h>
...
@@ -52,22 +51,20 @@ extern void clps711x_map_io(void);
...
@@ -52,22 +51,20 @@ extern void clps711x_map_io(void);
* happens).
* happens).
*/
*/
static
struct
map_desc
edb7211_io_desc
[]
__initdata
=
{
static
struct
map_desc
edb7211_io_desc
[]
__initdata
=
{
/* virtual, physical, length,
domain, r, w, c, b
*/
/* virtual, physical, length,
type
*/
/* memory-mapped extra keyboard row and CS8900A Ethernet chip */
/* memory-mapped extra keyboard row and CS8900A Ethernet chip */
{
EP7211_VIRT_EXTKBD
,
EP7211_PHYS_EXTKBD
,
SZ_1M
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
EP7211_VIRT_EXTKBD
,
EP7211_PHYS_EXTKBD
,
SZ_1M
,
MT_DEVICE
},
{
EP7211_VIRT_CS8900A
,
EP7211_PHYS_CS8900A
,
SZ_1M
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
EP7211_VIRT_CS8900A
,
EP7211_PHYS_CS8900A
,
SZ_1M
,
MT_DEVICE
},
/* flash banks */
/* flash banks */
{
EP7211_VIRT_FLASH1
,
EP7211_PHYS_FLASH1
,
SZ_8M
,
DOMAIN_KERNEL
,
0
,
1
,
0
,
0
},
{
EP7211_VIRT_FLASH1
,
EP7211_PHYS_FLASH1
,
SZ_8M
,
MT_DEVICE
},
{
EP7211_VIRT_FLASH2
,
EP7211_PHYS_FLASH2
,
SZ_8M
,
DOMAIN_KERNEL
,
0
,
1
,
0
,
0
},
{
EP7211_VIRT_FLASH2
,
EP7211_PHYS_FLASH2
,
SZ_8M
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
edb7211_map_io
(
void
)
void
__init
edb7211_map_io
(
void
)
{
{
clps711x_map_io
();
clps711x_map_io
();
iotable_init
(
edb7211_io_desc
);
iotable_init
(
edb7211_io_desc
,
ARRAY_SIZE
(
edb7211_io_desc
)
);
}
}
arch/arm/mach-clps711x/mm.c
View file @
ea1e2d62
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
* along with this program; if not, write to the Free Software
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
*/
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -31,40 +32,14 @@
...
@@ -31,40 +32,14 @@
#include <asm/mach/map.h>
#include <asm/mach/map.h>
#include <asm/hardware/clps7111.h>
#include <asm/hardware/clps7111.h>
#if 0 //def CONFIG_DISCONTIGMEM
/*
* The assumption of maximum 4 discontiguous memory banks is present
* in several places in the ARM kernel, including the parameter block
* (this affects boot loaders, too). Banks do not necessarily
* correspond 1:1 with NUMA nodes, although they usually will,
* especially if they are widely discontiguous.
*
* - note that the parameter block is depreciated for new implementations
* - also note that discontig_node_data is actually used
* -- rmk
*/
static bootmem_data_t node_bootmem_data[4];
pg_data_t clps711x_node_data[4] = {
{ bdata: &node_bootmem_data[0] },
{ bdata: &node_bootmem_data[1] },
{ bdata: &node_bootmem_data[2] },
{ bdata: &node_bootmem_data[3] },
};
#endif
/*
/*
* This maps the generic CLPS711x registers
* This maps the generic CLPS711x registers
*/
*/
static
struct
map_desc
clps711x_io_desc
[]
__initdata
=
{
static
struct
map_desc
clps711x_io_desc
[]
__initdata
=
{
{
CLPS7111_VIRT_BASE
,
CLPS7111_PHYS_BASE
,
1048576
,
DOMAIN_IO
,
0
,
1
},
{
CLPS7111_VIRT_BASE
,
CLPS7111_PHYS_BASE
,
1048576
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
clps711x_map_io
(
void
)
void
__init
clps711x_map_io
(
void
)
{
{
iotable_init
(
clps711x_io_desc
);
iotable_init
(
clps711x_io_desc
,
ARRAY_SIZE
(
clps711x_io_desc
)
);
}
}
arch/arm/mach-clps711x/p720t.c
View file @
ea1e2d62
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/string.h>
...
@@ -43,9 +44,8 @@ extern void clps711x_map_io(void);
...
@@ -43,9 +44,8 @@ extern void clps711x_map_io(void);
* We map both here.
* We map both here.
*/
*/
static
struct
map_desc
p720t_io_desc
[]
__initdata
=
{
static
struct
map_desc
p720t_io_desc
[]
__initdata
=
{
{
SYSPLD_VIRT_BASE
,
SYSPLD_PHYS_BASE
,
1048576
,
DOMAIN_IO
,
0
,
1
},
{
SYSPLD_VIRT_BASE
,
SYSPLD_PHYS_BASE
,
1048576
,
MT_DEVICE
},
{
0xfe400000
,
0x10400000
,
1048576
,
DOMAIN_IO
,
0
,
1
},
{
0xfe400000
,
0x10400000
,
1048576
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
static
void
__init
...
@@ -77,7 +77,7 @@ fixup_p720t(struct machine_desc *desc, struct tag *tag,
...
@@ -77,7 +77,7 @@ fixup_p720t(struct machine_desc *desc, struct tag *tag,
static
void
__init
p720t_map_io
(
void
)
static
void
__init
p720t_map_io
(
void
)
{
{
clps711x_map_io
();
clps711x_map_io
();
iotable_init
(
p720t_io_desc
);
iotable_init
(
p720t_io_desc
,
ARRAY_SIZE
(
p720t_io_desc
)
);
}
}
MACHINE_START
(
P720T
,
"ARM-Prospector720T"
)
MACHINE_START
(
P720T
,
"ARM-Prospector720T"
)
...
...
arch/arm/mach-clps7500/core.c
View file @
ea1e2d62
/*
/*
* linux/arch/arm/m
m/mm-cl7500
.c
* linux/arch/arm/m
ach-clps7500/core
.c
*
*
* Copyright (C) 1998 Russell King
* Copyright (C) 1998 Russell King
* Copyright (C) 1999 Nexus Electronics Ltd
* Copyright (C) 1999 Nexus Electronics Ltd
*
*
* Extra MM routines for CL7500 architecture
* Extra MM routines for CL7500 architecture
*/
*/
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -215,16 +216,15 @@ static void __init clps7500_init_irq(void)
...
@@ -215,16 +216,15 @@ static void __init clps7500_init_irq(void)
}
}
static
struct
map_desc
cl7500_io_desc
[]
__initdata
=
{
static
struct
map_desc
cl7500_io_desc
[]
__initdata
=
{
{
IO_BASE
,
IO_START
,
IO_SIZE
,
DOMAIN_IO
,
0
,
1
},
/* IO space */
{
IO_BASE
,
IO_START
,
IO_SIZE
,
MT_DEVICE
},
/* IO space */
{
ISA_BASE
,
ISA_START
,
ISA_SIZE
,
DOMAIN_IO
,
0
,
1
},
/* ISA space */
{
ISA_BASE
,
ISA_START
,
ISA_SIZE
,
MT_DEVICE
},
/* ISA space */
{
FLASH_BASE
,
FLASH_START
,
FLASH_SIZE
,
DOMAIN_IO
,
0
,
1
},
/* Flash */
{
FLASH_BASE
,
FLASH_START
,
FLASH_SIZE
,
MT_DEVICE
},
/* Flash */
{
LED_BASE
,
LED_START
,
LED_SIZE
,
DOMAIN_IO
,
0
,
1
},
/* LED */
{
LED_BASE
,
LED_START
,
LED_SIZE
,
MT_DEVICE
}
/* LED */
LAST_DESC
};
};
static
void
__init
clps7500_map_io
(
void
)
static
void
__init
clps7500_map_io
(
void
)
{
{
iotable_init
(
cl7500_io_desc
);
iotable_init
(
cl7500_io_desc
,
ARRAY_SIZE
(
cl7500_io_desc
)
);
}
}
MACHINE_START
(
CLPS7500
,
"CL-PS7500"
)
MACHINE_START
(
CLPS7500
,
"CL-PS7500"
)
...
...
arch/arm/mach-ebsa110/core.c
View file @
ea1e2d62
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
*
*
* Extra MM routines for the EBSA-110 architecture
* Extra MM routines for the EBSA-110 architecture
*/
*/
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -71,22 +72,21 @@ static struct map_desc ebsa110_io_desc[] __initdata = {
...
@@ -71,22 +72,21 @@ static struct map_desc ebsa110_io_desc[] __initdata = {
/*
/*
* sparse external-decode ISAIO space
* sparse external-decode ISAIO space
*/
*/
{
IRQ_STAT
,
TRICK4_PHYS
,
PGDIR_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* IRQ_STAT/IRQ_MCLR */
{
IRQ_STAT
,
TRICK4_PHYS
,
PGDIR_SIZE
,
MT_DEVICE
},
/* IRQ_STAT/IRQ_MCLR */
{
IRQ_MASK
,
TRICK3_PHYS
,
PGDIR_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* IRQ_MASK/IRQ_MSET */
{
IRQ_MASK
,
TRICK3_PHYS
,
PGDIR_SIZE
,
MT_DEVICE
},
/* IRQ_MASK/IRQ_MSET */
{
SOFT_BASE
,
TRICK1_PHYS
,
PGDIR_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SOFT_BASE */
{
SOFT_BASE
,
TRICK1_PHYS
,
PGDIR_SIZE
,
MT_DEVICE
},
/* SOFT_BASE */
{
PIT_BASE
,
TRICK0_PHYS
,
PGDIR_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* PIT_BASE */
{
PIT_BASE
,
TRICK0_PHYS
,
PGDIR_SIZE
,
MT_DEVICE
},
/* PIT_BASE */
/*
/*
* self-decode ISAIO space
* self-decode ISAIO space
*/
*/
{
ISAIO_BASE
,
ISAIO_PHYS
,
ISAIO_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
ISAIO_BASE
,
ISAIO_PHYS
,
ISAIO_SIZE
,
MT_DEVICE
},
{
ISAMEM_BASE
,
ISAMEM_PHYS
,
ISAMEM_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
ISAMEM_BASE
,
ISAMEM_PHYS
,
ISAMEM_SIZE
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
ebsa110_map_io
(
void
)
static
void
__init
ebsa110_map_io
(
void
)
{
{
iotable_init
(
ebsa110_io_desc
);
iotable_init
(
ebsa110_io_desc
,
ARRAY_SIZE
(
ebsa110_io_desc
)
);
}
}
MACHINE_START
(
EBSA110
,
"EBSA110"
)
MACHINE_START
(
EBSA110
,
"EBSA110"
)
...
...
arch/arm/mach-epxa10db/mm.c
View file @
ea1e2d62
...
@@ -19,14 +19,11 @@
...
@@ -19,14 +19,11 @@
* along with this program; if not, write to the Free Software
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
*/
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/sizes.h>
#include <asm/sizes.h>
#include <asm/mach/map.h>
#include <asm/mach/map.h>
...
@@ -34,16 +31,15 @@
...
@@ -34,16 +31,15 @@
/* Page table mapping for I/O region */
/* Page table mapping for I/O region */
static
struct
map_desc
epxa10db_io_desc
[]
__initdata
=
{
static
struct
map_desc
epxa10db_io_desc
[]
__initdata
=
{
{
IO_ADDRESS
(
EXC_REGISTERS_BASE
),
EXC_REGISTERS_BASE
,
SZ_16K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
EXC_REGISTERS_BASE
),
EXC_REGISTERS_BASE
,
SZ_16K
,
MT_DEVICE
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK0_BASE
),
EXC_PLD_BLOCK0_BASE
,
SZ_16K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK0_BASE
),
EXC_PLD_BLOCK0_BASE
,
SZ_16K
,
MT_DEVICE
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK1_BASE
),
EXC_PLD_BLOCK1_BASE
,
SZ_16K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK1_BASE
),
EXC_PLD_BLOCK1_BASE
,
SZ_16K
,
MT_DEVICE
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK2_BASE
),
EXC_PLD_BLOCK2_BASE
,
SZ_16K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK2_BASE
),
EXC_PLD_BLOCK2_BASE
,
SZ_16K
,
MT_DEVICE
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK3_BASE
),
EXC_PLD_BLOCK3_BASE
,
SZ_16K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
EXC_PLD_BLOCK3_BASE
),
EXC_PLD_BLOCK3_BASE
,
SZ_16K
,
MT_DEVICE
},
{
FLASH_VADDR
(
EXC_EBI_BLOCK0_BASE
),
EXC_EBI_BLOCK0_BASE
,
SZ_16M
,
DOMAIN_IO
,
0
,
1
},
{
FLASH_VADDR
(
EXC_EBI_BLOCK0_BASE
),
EXC_EBI_BLOCK0_BASE
,
SZ_16M
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
epxa10db_map_io
(
void
)
void
__init
epxa10db_map_io
(
void
)
{
{
iotable_init
(
epxa10db_io_desc
);
iotable_init
(
epxa10db_io_desc
,
ARRAY_SIZE
(
epxa10db_io_desc
)
);
}
}
arch/arm/mach-footbridge/mm.c
View file @
ea1e2d62
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
* Extra MM routines for the EBSA285 architecture
* Extra MM routines for the EBSA285 architecture
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -28,9 +29,8 @@
...
@@ -28,9 +29,8 @@
* it means that we have extra bullet protection on our feet.
* it means that we have extra bullet protection on our feet.
*/
*/
static
struct
map_desc
fb_common_io_desc
[]
__initdata
=
{
static
struct
map_desc
fb_common_io_desc
[]
__initdata
=
{
{
ARMCSR_BASE
,
DC21285_ARMCSR_BASE
,
ARMCSR_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
ARMCSR_BASE
,
DC21285_ARMCSR_BASE
,
ARMCSR_SIZE
,
MT_DEVICE
},
{
XBUS_BASE
,
0x40000000
,
XBUS_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
XBUS_BASE
,
0x40000000
,
XBUS_SIZE
,
MT_DEVICE
}
LAST_DESC
};
};
/*
/*
...
@@ -39,13 +39,12 @@ static struct map_desc fb_common_io_desc[] __initdata = {
...
@@ -39,13 +39,12 @@ static struct map_desc fb_common_io_desc[] __initdata = {
*/
*/
static
struct
map_desc
ebsa285_host_io_desc
[]
__initdata
=
{
static
struct
map_desc
ebsa285_host_io_desc
[]
__initdata
=
{
#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_FOOTBRIDGE_HOST)
#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_FOOTBRIDGE_HOST)
{
PCIMEM_BASE
,
DC21285_PCI_MEM
,
PCIMEM_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCIMEM_BASE
,
DC21285_PCI_MEM
,
PCIMEM_SIZE
,
MT_DEVICE
},
{
PCICFG0_BASE
,
DC21285_PCI_TYPE_0_CONFIG
,
PCICFG0_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCICFG0_BASE
,
DC21285_PCI_TYPE_0_CONFIG
,
PCICFG0_SIZE
,
MT_DEVICE
},
{
PCICFG1_BASE
,
DC21285_PCI_TYPE_1_CONFIG
,
PCICFG1_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCICFG1_BASE
,
DC21285_PCI_TYPE_1_CONFIG
,
PCICFG1_SIZE
,
MT_DEVICE
},
{
PCIIACK_BASE
,
DC21285_PCI_IACK
,
PCIIACK_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCIIACK_BASE
,
DC21285_PCI_IACK
,
PCIIACK_SIZE
,
MT_DEVICE
},
{
PCIO_BASE
,
DC21285_PCI_IO
,
PCIO_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCIO_BASE
,
DC21285_PCI_IO
,
PCIO_SIZE
,
MT_DEVICE
}
#endif
#endif
LAST_DESC
};
};
/*
/*
...
@@ -53,33 +52,27 @@ static struct map_desc ebsa285_host_io_desc[] __initdata = {
...
@@ -53,33 +52,27 @@ static struct map_desc ebsa285_host_io_desc[] __initdata = {
*/
*/
static
struct
map_desc
co285_io_desc
[]
__initdata
=
{
static
struct
map_desc
co285_io_desc
[]
__initdata
=
{
#ifdef CONFIG_ARCH_CO285
#ifdef CONFIG_ARCH_CO285
{
PCIO_BASE
,
DC21285_PCI_IO
,
PCIO_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCIO_BASE
,
DC21285_PCI_IO
,
PCIO_SIZE
,
MT_DEVICE
},
{
PCIMEM_BASE
,
DC21285_PCI_MEM
,
PCIMEM_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCIMEM_BASE
,
DC21285_PCI_MEM
,
PCIMEM_SIZE
,
MT_DEVICE
}
#endif
#endif
LAST_DESC
};
};
void
__init
footbridge_map_io
(
void
)
void
__init
footbridge_map_io
(
void
)
{
{
struct
map_desc
*
desc
=
NULL
;
/*
/*
* Set up the common mapping first; we need this to
* Set up the common mapping first; we need this to
* determine whether we're in host mode or not.
* determine whether we're in host mode or not.
*/
*/
iotable_init
(
fb_common_io_desc
);
iotable_init
(
fb_common_io_desc
,
ARRAY_SIZE
(
fb_common_io_desc
)
);
/*
/*
* Now, work out what we've got to map in addition on this
* Now, work out what we've got to map in addition on this
* platform.
* platform.
*/
*/
if
(
machine_is_co285
())
if
(
machine_is_co285
())
desc
=
co285_io_desc
;
iotable_init
(
co285_io_desc
,
ARRAY_SIZE
(
co285_io_desc
));
else
if
(
footbridge_cfn_mode
())
if
(
footbridge_cfn_mode
())
desc
=
ebsa285_host_io_desc
;
iotable_init
(
ebsa285_host_io_desc
,
ARRAY_SIZE
(
ebsa285_host_io_desc
));
if
(
desc
)
iotable_init
(
desc
);
}
}
#ifdef CONFIG_FOOTBRIDGE_ADDIN
#ifdef CONFIG_FOOTBRIDGE_ADDIN
...
...
arch/arm/mach-ftvpci/core.c
View file @
ea1e2d62
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
* as published by the Free Software Foundation; either version
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
* 2 of the License, or (at your option) any later version.
*/
*/
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -76,17 +77,16 @@ static void __init ftvpci_init_irq(void)
...
@@ -76,17 +77,16 @@ static void __init ftvpci_init_irq(void)
}
}
static
struct
map_desc
ftvpci_io_desc
[]
__initdata
=
{
static
struct
map_desc
ftvpci_io_desc
[]
__initdata
=
{
{
INTCONT_BASE
,
INTCONT_START
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
INTCONT_BASE
,
INTCONT_START
,
0x00001000
,
MT_DEVICE
},
{
PLX_BASE
,
PLX_START
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PLX_BASE
,
PLX_START
,
0x00001000
,
MT_DEVICE
},
{
PCIO_BASE
,
PLX_IO_START
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
PCIO_BASE
,
PLX_IO_START
,
0x00100000
,
MT_DEVICE
},
{
DUART_BASE
,
DUART_START
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
DUART_BASE
,
DUART_START
,
0x00001000
,
MT_DEVICE
},
{
STATUS_BASE
,
STATUS_START
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
STATUS_BASE
,
STATUS_START
,
0x00001000
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
ftvpci_map_io
(
void
)
static
void
__init
ftvpci_map_io
(
void
)
{
{
iotable_init
(
ftvpci_io_desc
);
iotable_init
(
ftvpci_io_desc
,
ARRAY_SIZE
(
ftvpci_io_desc
)
);
}
}
MACHINE_START
(
NEXUSPCI
,
"FTV/PCI"
)
MACHINE_START
(
NEXUSPCI
,
"FTV/PCI"
)
...
...
arch/arm/mach-integrator/mm.c
View file @
ea1e2d62
...
@@ -20,14 +20,11 @@
...
@@ -20,14 +20,11 @@
* along with this program; if not, write to the Free Software
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
*/
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/mach/map.h>
#include <asm/mach/map.h>
...
@@ -53,26 +50,25 @@
...
@@ -53,26 +50,25 @@
*/
*/
static
struct
map_desc
integrator_io_desc
[]
__initdata
=
{
static
struct
map_desc
integrator_io_desc
[]
__initdata
=
{
{
IO_ADDRESS
(
INTEGRATOR_HDR_BASE
),
INTEGRATOR_HDR_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_HDR_BASE
),
INTEGRATOR_HDR_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_SC_BASE
),
INTEGRATOR_SC_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_SC_BASE
),
INTEGRATOR_SC_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_EBI_BASE
),
INTEGRATOR_EBI_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_EBI_BASE
),
INTEGRATOR_EBI_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_CT_BASE
),
INTEGRATOR_CT_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_CT_BASE
),
INTEGRATOR_CT_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_IC_BASE
),
INTEGRATOR_IC_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_IC_BASE
),
INTEGRATOR_IC_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_RTC_BASE
),
INTEGRATOR_RTC_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_RTC_BASE
),
INTEGRATOR_RTC_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_UART0_BASE
),
INTEGRATOR_UART0_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_UART0_BASE
),
INTEGRATOR_UART0_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_UART1_BASE
),
INTEGRATOR_UART1_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_UART1_BASE
),
INTEGRATOR_UART1_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_KBD_BASE
),
INTEGRATOR_KBD_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_KBD_BASE
),
INTEGRATOR_KBD_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_MOUSE_BASE
),
INTEGRATOR_MOUSE_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_MOUSE_BASE
),
INTEGRATOR_MOUSE_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_DBG_BASE
),
INTEGRATOR_DBG_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_DBG_BASE
),
INTEGRATOR_DBG_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
INTEGRATOR_GPIO_BASE
),
INTEGRATOR_GPIO_BASE
,
SZ_4K
,
DOMAIN_IO
,
0
,
1
},
{
IO_ADDRESS
(
INTEGRATOR_GPIO_BASE
),
INTEGRATOR_GPIO_BASE
,
SZ_4K
,
MT_DEVICE
},
{
PCI_MEMORY_VADDR
,
PHYS_PCI_MEM_BASE
,
SZ_16M
,
DOMAIN_IO
,
0
,
1
},
{
PCI_MEMORY_VADDR
,
PHYS_PCI_MEM_BASE
,
SZ_16M
,
MT_DEVICE
},
{
PCI_CONFIG_VADDR
,
PHYS_PCI_CONFIG_BASE
,
SZ_16M
,
DOMAIN_IO
,
0
,
1
},
{
PCI_CONFIG_VADDR
,
PHYS_PCI_CONFIG_BASE
,
SZ_16M
,
MT_DEVICE
},
{
PCI_V3_VADDR
,
PHYS_PCI_V3_BASE
,
SZ_64K
,
DOMAIN_IO
,
0
,
1
},
{
PCI_V3_VADDR
,
PHYS_PCI_V3_BASE
,
SZ_64K
,
MT_DEVICE
},
{
PCI_IO_VADDR
,
PHYS_PCI_IO_BASE
,
SZ_64K
,
DOMAIN_IO
,
0
,
1
},
{
PCI_IO_VADDR
,
PHYS_PCI_IO_BASE
,
SZ_64K
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
integrator_map_io
(
void
)
void
__init
integrator_map_io
(
void
)
{
{
iotable_init
(
integrator_io_desc
);
iotable_init
(
integrator_io_desc
,
ARRAY_SIZE
(
integrator_io_desc
)
);
}
}
arch/arm/mach-iop310/mm.c
View file @
ea1e2d62
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
*
*
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -32,17 +33,16 @@
...
@@ -32,17 +33,16 @@
* Standard IO mapping for all IOP310 based systems
* Standard IO mapping for all IOP310 based systems
*/
*/
static
struct
map_desc
iop80310_std_desc
[]
__initdata
=
{
static
struct
map_desc
iop80310_std_desc
[]
__initdata
=
{
/* virtual physical length
domain r w c b
*/
/* virtual physical length
type
*/
// IOP310 Memory Mapped Registers
// IOP310 Memory Mapped Registers
{
0xe8001000
,
0x00001000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
0xe8001000
,
0x00001000
,
0x00001000
,
MT_DEVICE
},
// PCI I/O Space
// PCI I/O Space
{
0xfe000000
,
0x90000000
,
0x00020000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
0xfe000000
,
0x90000000
,
0x00020000
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
iop310_map_io
(
void
)
void
__init
iop310_map_io
(
void
)
{
{
iotable_init
(
iop80310_std_desc
);
iotable_init
(
iop80310_std_desc
,
ARRAY_SIZE
(
iop80310_std_desc
)
);
}
}
/*
/*
...
@@ -50,10 +50,9 @@ void __init iop310_map_io(void)
...
@@ -50,10 +50,9 @@ void __init iop310_map_io(void)
*/
*/
#ifdef CONFIG_ARCH_IQ80310
#ifdef CONFIG_ARCH_IQ80310
static
struct
map_desc
iq80310_io_desc
[]
__initdata
=
{
static
struct
map_desc
iq80310_io_desc
[]
__initdata
=
{
/* virtual physical length
domain r w c b
*/
/* virtual physical length
type
*/
// IQ80310 On-Board Devices
// IQ80310 On-Board Devices
{
0xfe800000
,
0xfe800000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
0xfe800000
,
0xfe800000
,
0x00100000
,
MT_DEVICE
}
LAST_DESC
};
};
void
__init
iq80310_map_io
(
void
)
void
__init
iq80310_map_io
(
void
)
...
@@ -65,7 +64,7 @@ void __init iq80310_map_io(void)
...
@@ -65,7 +64,7 @@ void __init iq80310_map_io(void)
iop310_map_io
();
iop310_map_io
();
iotable_init
(
iq80310_io_desc
);
iotable_init
(
iq80310_io_desc
,
ARRAY_SIZE
(
iq80310_io_desc
)
);
}
}
#endif // CONFIG_ARCH_IQ80310
#endif // CONFIG_ARCH_IQ80310
arch/arm/mach-l7200/core.c
View file @
ea1e2d62
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
* Extra MM routines for L7200 architecture
* Extra MM routines for L7200 architecture
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
...
@@ -69,17 +70,16 @@ static void __init l7200_init_irq(void)
...
@@ -69,17 +70,16 @@ static void __init l7200_init_irq(void)
}
}
static
struct
map_desc
l7200_io_desc
[]
__initdata
=
{
static
struct
map_desc
l7200_io_desc
[]
__initdata
=
{
{
IO_BASE
,
IO_START
,
IO_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
IO_BASE
,
IO_START
,
IO_SIZE
,
MT_DEVICE
},
{
IO_BASE_2
,
IO_START_2
,
IO_SIZE_2
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
IO_BASE_2
,
IO_START_2
,
IO_SIZE_2
,
MT_DEVICE
},
{
AUX_BASE
,
AUX_START
,
AUX_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
AUX_BASE
,
AUX_START
,
AUX_SIZE
,
MT_DEVICE
},
{
FLASH1_BASE
,
FLASH1_START
,
FLASH1_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
FLASH1_BASE
,
FLASH1_START
,
FLASH1_SIZE
,
MT_DEVICE
},
{
FLASH2_BASE
,
FLASH2_START
,
FLASH2_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
FLASH2_BASE
,
FLASH2_START
,
FLASH2_SIZE
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
l7200_map_io
(
void
)
static
void
__init
l7200_map_io
(
void
)
{
{
iotable_init
(
l7200_io_desc
);
iotable_init
(
l7200_io_desc
,
ARRAY_SIZE
(
l7200_io_desc
)
);
}
}
MACHINE_START
(
L7200
,
"LinkUp Systems L7200"
)
MACHINE_START
(
L7200
,
"LinkUp Systems L7200"
)
...
...
arch/arm/mach-pxa/generic.c
View file @
ea1e2d62
...
@@ -88,16 +88,15 @@ EXPORT_SYMBOL(pxa_gpio_mode);
...
@@ -88,16 +88,15 @@ EXPORT_SYMBOL(pxa_gpio_mode);
* cache flush area.
* cache flush area.
*/
*/
static
struct
map_desc
standard_io_desc
[]
__initdata
=
{
static
struct
map_desc
standard_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf6000000
,
0x20000000
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* PCMCIA0 IO */
{
0xf6000000
,
0x20000000
,
0x01000000
,
MT_DEVICE
},
/* PCMCIA0 IO */
{
0xf7000000
,
0x30000000
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* PCMCIA1 IO */
{
0xf7000000
,
0x30000000
,
0x01000000
,
MT_DEVICE
},
/* PCMCIA1 IO */
{
0xfc000000
,
0x40000000
,
0x01400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Devs */
{
0xfc000000
,
0x40000000
,
0x01400000
,
MT_DEVICE
},
/* Devs */
{
0xfe000000
,
0x44000000
,
0x00200000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* LCD */
{
0xfe000000
,
0x44000000
,
0x00200000
,
MT_DEVICE
},
/* LCD */
{
0xff000000
,
0x48000000
,
0x00200000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Mem Ctl */
{
0xff000000
,
0x48000000
,
0x00200000
,
MT_DEVICE
}
/* Mem Ctl */
LAST_DESC
};
};
void
__init
pxa_map_io
(
void
)
void
__init
pxa_map_io
(
void
)
{
{
iotable_init
(
standard_io_desc
);
iotable_init
(
standard_io_desc
,
ARRAY_SIZE
(
standard_io_desc
)
);
}
}
arch/arm/mach-pxa/idp.c
View file @
ea1e2d62
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
* 2001-09-13: Cliff Brake <cbrake@accelent.com>
* 2001-09-13: Cliff Brake <cbrake@accelent.com>
* Initial code
* Initial code
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/major.h>
#include <linux/major.h>
#include <linux/fs.h>
#include <linux/fs.h>
...
@@ -69,45 +70,38 @@ static void __init idp_init_irq(void)
...
@@ -69,45 +70,38 @@ static void __init idp_init_irq(void)
}
}
static
struct
map_desc
idp_io_desc
[]
__initdata
=
{
static
struct
map_desc
idp_io_desc
[]
__initdata
=
{
/* virtual physical length
domain r w c b
*/
/* virtual physical length
type
*/
#ifndef PXA_IDP_REV02
#ifndef PXA_IDP_REV02
{
IDP_CTRL_PORT_BASE
,
{
IDP_CTRL_PORT_BASE
,
IDP_CTRL_PORT_PHYS
,
IDP_CTRL_PORT_PHYS
,
IDP_CTRL_PORT_SIZE
,
IDP_CTRL_PORT_SIZE
,
DOMAIN_IO
,
MT_DEVICE
},
0
,
1
,
0
,
0
},
#endif
#endif
{
IDP_IDE_BASE
,
{
IDP_IDE_BASE
,
IDP_IDE_PHYS
,
IDP_IDE_PHYS
,
IDP_IDE_SIZE
,
IDP_IDE_SIZE
,
DOMAIN_IO
,
MT_DEVICE
},
0
,
1
,
0
,
0
},
{
IDP_ETH_BASE
,
{
IDP_ETH_BASE
,
IDP_ETH_PHYS
,
IDP_ETH_PHYS
,
IDP_ETH_SIZE
,
IDP_ETH_SIZE
,
DOMAIN_IO
,
MT_DEVICE
},
0
,
1
,
0
,
0
},
{
IDP_COREVOLT_BASE
,
{
IDP_COREVOLT_BASE
,
IDP_COREVOLT_PHYS
,
IDP_COREVOLT_PHYS
,
IDP_COREVOLT_SIZE
,
IDP_COREVOLT_SIZE
,
DOMAIN_IO
,
MT_DEVICE
},
0
,
1
,
0
,
0
},
{
IDP_CPLD_BASE
,
{
IDP_CPLD_BASE
,
IDP_CPLD_PHYS
,
IDP_CPLD_PHYS
,
IDP_CPLD_SIZE
,
IDP_CPLD_SIZE
,
DOMAIN_IO
,
MT_DEVICE
}
0
,
1
,
0
,
0
},
LAST_DESC
};
};
static
void
__init
idp_map_io
(
void
)
static
void
__init
idp_map_io
(
void
)
{
{
pxa_map_io
();
pxa_map_io
();
iotable_init
(
idp_io_desc
);
iotable_init
(
idp_io_desc
,
ARRAY_SIZE
(
idp_io_desc
)
);
set_GPIO_IRQ_edge
(
IRQ_TO_GPIO_2_80
(
TOUCH_PANEL_IRQ
),
TOUCH_PANEL_IRQ_EDGE
);
set_GPIO_IRQ_edge
(
IRQ_TO_GPIO_2_80
(
TOUCH_PANEL_IRQ
),
TOUCH_PANEL_IRQ_EDGE
);
}
}
...
...
arch/arm/mach-pxa/lubbock.c
View file @
ea1e2d62
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
* it under the terms of the GNU General Public License version 2 as
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
* published by the Free Software Foundation.
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/major.h>
#include <linux/major.h>
#include <linux/fs.h>
#include <linux/fs.h>
...
@@ -120,18 +121,17 @@ static int __init lubbock_init(void)
...
@@ -120,18 +121,17 @@ static int __init lubbock_init(void)
__initcall
(
lubbock_init
);
__initcall
(
lubbock_init
);
static
struct
map_desc
lubbock_io_desc
[]
__initdata
=
{
static
struct
map_desc
lubbock_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0x08000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CPLD */
{
0xf0000000
,
0x08000000
,
0x00100000
,
MT_DEVICE
},
/* CPLD */
{
0xf1000000
,
0x0c000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* LAN91C96 IO */
{
0xf1000000
,
0x0c000000
,
0x00100000
,
MT_DEVICE
},
/* LAN91C96 IO */
{
0xf1100000
,
0x0e000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* LAN91C96 Attr */
{
0xf1100000
,
0x0e000000
,
0x00100000
,
MT_DEVICE
},
/* LAN91C96 Attr */
{
0xf4000000
,
0x10000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA1111 */
{
0xf4000000
,
0x10000000
,
0x00400000
,
MT_DEVICE
}
/* SA1111 */
LAST_DESC
};
};
static
void
__init
lubbock_map_io
(
void
)
static
void
__init
lubbock_map_io
(
void
)
{
{
pxa_map_io
();
pxa_map_io
();
iotable_init
(
lubbock_io_desc
);
iotable_init
(
lubbock_io_desc
,
ARRAY_SIZE
(
lubbock_io_desc
)
);
/* This enables the BTUART */
/* This enables the BTUART */
CKEN
|=
CKEN7_BTUART
;
CKEN
|=
CKEN7_BTUART
;
...
...
arch/arm/mach-rpc/riscpc.c
View file @
ea1e2d62
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
*
*
* Architecture specific fixups.
* Architecture specific fixups.
*/
*/
#include <linux/kernel.h>
#include <linux/tty.h>
#include <linux/tty.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/pm.h>
...
@@ -61,15 +62,14 @@ __tagtable(ATAG_ACORN, parse_tag_acorn);
...
@@ -61,15 +62,14 @@ __tagtable(ATAG_ACORN, parse_tag_acorn);
#endif
#endif
static
struct
map_desc
rpc_io_desc
[]
__initdata
=
{
static
struct
map_desc
rpc_io_desc
[]
__initdata
=
{
{
SCREEN_BASE
,
SCREEN_START
,
2
*
1048576
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* VRAM */
{
SCREEN_BASE
,
SCREEN_START
,
2
*
1048576
,
MT_DEVICE
},
/* VRAM */
{
IO_BASE
,
IO_START
,
IO_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* IO space */
{
IO_BASE
,
IO_START
,
IO_SIZE
,
MT_DEVICE
},
/* IO space */
{
EASI_BASE
,
EASI_START
,
EASI_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* EASI space */
{
EASI_BASE
,
EASI_START
,
EASI_SIZE
,
MT_DEVICE
}
/* EASI space */
LAST_DESC
};
};
void
__init
rpc_map_io
(
void
)
void
__init
rpc_map_io
(
void
)
{
{
iotable_init
(
rpc_io_desc
);
iotable_init
(
rpc_io_desc
,
ARRAY_SIZE
(
rpc_io_desc
)
);
/*
/*
* RiscPC can't handle half-word loads and stores
* RiscPC can't handle half-word loads and stores
...
...
arch/arm/mach-sa1100/adsbitsy.c
View file @
ea1e2d62
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* it under the terms of the GNU General Public License version 2 as
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
* published by the Free Software Foundation.
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
...
@@ -77,9 +77,8 @@ static void __init adsbitsy_init_irq(void)
...
@@ -77,9 +77,8 @@ static void __init adsbitsy_init_irq(void)
}
}
static
struct
map_desc
adsbitsy_io_desc
[]
__initdata
=
{
static
struct
map_desc
adsbitsy_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf4000000
,
0x18000000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA1111 */
{
0xf4000000
,
0x18000000
,
0x00800000
,
MT_DEVICE
}
/* SA1111 */
LAST_DESC
};
};
static
int
adsbitsy_uart_open
(
struct
uart_port
*
port
,
struct
uart_info
*
info
)
static
int
adsbitsy_uart_open
(
struct
uart_port
*
port
,
struct
uart_info
*
info
)
...
@@ -106,7 +105,7 @@ static struct sa1100_port_fns adsbitsy_port_fns __initdata = {
...
@@ -106,7 +105,7 @@ static struct sa1100_port_fns adsbitsy_port_fns __initdata = {
static
void
__init
adsbitsy_map_io
(
void
)
static
void
__init
adsbitsy_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
adsbitsy_io_desc
);
iotable_init
(
adsbitsy_io_desc
,
ARRAY_SIZE
(
adsbitsy_io_desc
)
);
sa1100_register_uart_fns
(
&
adsbitsy_port_fns
);
sa1100_register_uart_fns
(
&
adsbitsy_port_fns
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
...
...
arch/arm/mach-sa1100/assabet.c
View file @
ea1e2d62
...
@@ -171,15 +171,6 @@ fixup_assabet(struct machine_desc *desc, struct tag *tags,
...
@@ -171,15 +171,6 @@ fixup_assabet(struct machine_desc *desc, struct tag *tags,
}
}
static
struct
map_desc
assabet_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
{
0xf1000000
,
0x12000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Board Control Register */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* MQ200 */
/* f3000000 - neponset system registers */
/* f4000000 - neponset SA1111 registers */
LAST_DESC
};
static
void
assabet_uart_pm
(
struct
uart_port
*
port
,
u_int
state
,
u_int
oldstate
)
static
void
assabet_uart_pm
(
struct
uart_port
*
port
,
u_int
state
,
u_int
oldstate
)
{
{
if
(
port
->
mapbase
==
_Ser1UTCR0
)
{
if
(
port
->
mapbase
==
_Ser1UTCR0
)
{
...
@@ -255,12 +246,18 @@ static struct sa1100_port_fns assabet_port_fns __initdata = {
...
@@ -255,12 +246,18 @@ static struct sa1100_port_fns assabet_port_fns __initdata = {
pm:
assabet_uart_pm
,
pm:
assabet_uart_pm
,
};
};
static
struct
map_desc
assabet_io_desc
[]
__initdata
=
{
/* virtual physical length type */
{
0xf1000000
,
0x12000000
,
0x00100000
,
MT_DEVICE
},
/* Board Control Register */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
MT_DEVICE
}
/* MQ200 */
};
static
void
__init
assabet_map_io
(
void
)
static
void
__init
assabet_map_io
(
void
)
{
{
extern
void
neponset_map_io
(
void
);
extern
void
neponset_map_io
(
void
);
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
assabet_io_desc
);
iotable_init
(
assabet_io_desc
,
ARRAY_SIZE
(
assabet_io_desc
)
);
if
(
machine_has_neponset
())
{
if
(
machine_has_neponset
())
{
#ifdef CONFIG_ASSABET_NEPONSET
#ifdef CONFIG_ASSABET_NEPONSET
...
...
arch/arm/mach-sa1100/badge4.c
View file @
ea1e2d62
...
@@ -145,17 +145,16 @@ EXPORT_SYMBOL(badge4_set_5V);
...
@@ -145,17 +145,16 @@ EXPORT_SYMBOL(badge4_set_5V);
static
struct
map_desc
badge4_io_desc
[]
__initdata
=
{
static
struct
map_desc
badge4_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf1000000
,
0x08000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SRAM bank 1 */
{
0xf1000000
,
0x08000000
,
0x00100000
,
MT_DEVICE
},
/* SRAM bank 1 */
{
0xf2000000
,
0x10000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SRAM bank 2 */
{
0xf2000000
,
0x10000000
,
0x00100000
,
MT_DEVICE
},
/* SRAM bank 2 */
{
0xf4000000
,
0x48000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA-1111 */
{
0xf4000000
,
0x48000000
,
0x00100000
,
MT_DEVICE
}
/* SA-1111 */
LAST_DESC
};
};
static
void
__init
badge4_map_io
(
void
)
static
void
__init
badge4_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
badge4_io_desc
);
iotable_init
(
badge4_io_desc
,
ARRAY_SIZE
(
badge4_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/cerf.c
View file @
ea1e2d62
...
@@ -36,20 +36,19 @@ static void __init cerf_init_irq(void)
...
@@ -36,20 +36,19 @@ static void __init cerf_init_irq(void)
}
}
static
struct
map_desc
cerf_io_desc
[]
__initdata
=
{
static
struct
map_desc
cerf_io_desc
[]
__initdata
=
{
/* virtual physical length
domain r w c b
*/
/* virtual physical length
type
*/
{
0xf0000000
,
0x08000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Crystal Ethernet Chip */
{
0xf0000000
,
0x08000000
,
0x00100000
,
MT_DEVICE
}
/* Crystal Ethernet Chip */
#ifdef CONFIG_SA1100_CERF_CPLD
#ifdef CONFIG_SA1100_CERF_CPLD
{
0xf1000000
,
0x40000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CPLD Chip */
,{
0xf1000000
,
0x40000000
,
0x00100000
,
MT_DEVICE
},
/* CPLD Chip */
{
0xf2000000
,
0x10000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CerfPDA Bluetooth */
{
0xf2000000
,
0x10000000
,
0x00100000
,
MT_DEVICE
},
/* CerfPDA Bluetooth */
{
0xf3000000
,
0x18000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CerfPDA Serial */
{
0xf3000000
,
0x18000000
,
0x00100000
,
MT_DEVICE
}
/* CerfPDA Serial */
#endif
#endif
LAST_DESC
};
};
static
void
__init
cerf_map_io
(
void
)
static
void
__init
cerf_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
cerf_io_desc
);
iotable_init
(
cerf_io_desc
,
ARRAY_SIZE
(
cerf_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
#ifdef CONFIG_SA1100_CERF_IRDA_ENABLED
#ifdef CONFIG_SA1100_CERF_IRDA_ENABLED
...
...
arch/arm/mach-sa1100/empeg.c
View file @
ea1e2d62
...
@@ -16,15 +16,14 @@
...
@@ -16,15 +16,14 @@
#include "generic.h"
#include "generic.h"
static
struct
map_desc
empeg_io_desc
[]
__initdata
=
{
static
struct
map_desc
empeg_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
EMPEG_FLASHBASE
,
0x00000000
,
0x00200000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Flash */
{
EMPEG_FLASHBASE
,
0x00000000
,
0x00200000
,
MT_DEVICE
}
/* Flash */
LAST_DESC
};
};
static
void
__init
empeg_map_io
(
void
)
static
void
__init
empeg_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
empeg_io_desc
);
iotable_init
(
empeg_io_desc
,
ARRAY_SIZE
(
empeg_io_desc
)
);
sa1100_register_uart
(
0
,
1
);
sa1100_register_uart
(
0
,
1
);
sa1100_register_uart
(
1
,
3
);
sa1100_register_uart
(
1
,
3
);
...
...
arch/arm/mach-sa1100/flexanet.c
View file @
ea1e2d62
...
@@ -152,18 +152,17 @@ __initcall(flexanet_init);
...
@@ -152,18 +152,17 @@ __initcall(flexanet_init);
static
struct
map_desc
flexanet_io_desc
[]
__initdata
=
{
static
struct
map_desc
flexanet_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0x10000000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Board Control Register */
{
0xf0000000
,
0x10000000
,
0x00001000
,
MT_DEVICE
},
/* Board Control Register */
{
0xf1000000
,
0x18000000
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Ethernet controller */
{
0xf1000000
,
0x18000000
,
0x01000000
,
MT_DEVICE
},
/* Ethernet controller */
{
0xD0000000
,
0x40000000
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Instrument boards */
{
0xD0000000
,
0x40000000
,
0x01000000
,
MT_DEVICE
},
/* Instrument boards */
{
0xD8000000
,
0x48000000
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* External peripherals */
{
0xD8000000
,
0x48000000
,
0x01000000
,
MT_DEVICE
}
/* External peripherals */
LAST_DESC
};
};
static
void
__init
flexanet_map_io
(
void
)
static
void
__init
flexanet_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
flexanet_io_desc
);
iotable_init
(
flexanet_io_desc
,
ARRAY_SIZE
(
flexanet_io_desc
)
);
flexanet_serial_init
();
flexanet_serial_init
();
/* wakeup source is GPIO-0 only */
/* wakeup source is GPIO-0 only */
...
...
arch/arm/mach-sa1100/freebird.c
View file @
ea1e2d62
...
@@ -43,8 +43,6 @@ static int __init freebird_init(void)
...
@@ -43,8 +43,6 @@ static int __init freebird_init(void)
if
(
machine_is_freebird
())
{
if
(
machine_is_freebird
())
{
sa1100fb_backlight_power
=
freebird_backlight_power
;
sa1100fb_backlight_power
=
freebird_backlight_power
;
sa1100fb_lcd_power
=
freebird_lcd_power
;
sa1100fb_lcd_power
=
freebird_lcd_power
;
set_GPIO_IRQ_edge
(
GPIO_FREEBIRD_UCB1300
,
GPIO_RISING_EDGE
);
}
}
return
0
;
return
0
;
}
}
...
@@ -52,16 +50,15 @@ static int __init freebird_init(void)
...
@@ -52,16 +50,15 @@ static int __init freebird_init(void)
__initcall
(
freebird_init
);
__initcall
(
freebird_init
);
static
struct
map_desc
freebird_io_desc
[]
__initdata
=
{
static
struct
map_desc
freebird_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0x12000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Board Control Register */
{
0xf0000000
,
0x12000000
,
0x00100000
,
MT_DEVICE
},
/* Board Control Register */
{
0xf2000000
,
0x19000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
0xf2000000
,
0x19000000
,
0x00100000
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
freebird_map_io
(
void
)
static
void
__init
freebird_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
freebird_io_desc
);
iotable_init
(
freebird_io_desc
,
ARRAY_SIZE
(
freebird_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/generic.c
View file @
ea1e2d62
...
@@ -134,8 +134,6 @@ EXPORT_SYMBOL(sa1100fb_lcd_power);
...
@@ -134,8 +134,6 @@ EXPORT_SYMBOL(sa1100fb_lcd_power);
*
*
* Typically, static virtual address mappings are as follow:
* Typically, static virtual address mappings are as follow:
*
*
* 0xe8000000-0xefffffff: flash memory (especially when multiple flash
* banks need to be mapped contigously)
* 0xf0000000-0xf3ffffff: miscellaneous stuff (CPLDs, etc.)
* 0xf0000000-0xf3ffffff: miscellaneous stuff (CPLDs, etc.)
* 0xf4000000-0xf4ffffff: SA-1111
* 0xf4000000-0xf4ffffff: SA-1111
* 0xf5000000-0xf5ffffff: reserved (used by cache flushing area)
* 0xf5000000-0xf5ffffff: reserved (used by cache flushing area)
...
@@ -150,17 +148,16 @@ EXPORT_SYMBOL(sa1100fb_lcd_power);
...
@@ -150,17 +148,16 @@ EXPORT_SYMBOL(sa1100fb_lcd_power);
*/
*/
static
struct
map_desc
standard_io_desc
[]
__initdata
=
{
static
struct
map_desc
standard_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf8000000
,
0x80000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* PCM */
{
0xf8000000
,
0x80000000
,
0x00100000
,
MT_DEVICE
},
/* PCM */
{
0xfa000000
,
0x90000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SCM */
{
0xfa000000
,
0x90000000
,
0x00100000
,
MT_DEVICE
},
/* SCM */
{
0xfc000000
,
0xa0000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* MER */
{
0xfc000000
,
0xa0000000
,
0x00100000
,
MT_DEVICE
},
/* MER */
{
0xfe000000
,
0xb0000000
,
0x00200000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* LCD + DMA */
{
0xfe000000
,
0xb0000000
,
0x00200000
,
MT_DEVICE
}
/* LCD + DMA */
LAST_DESC
};
};
void
__init
sa1100_map_io
(
void
)
void
__init
sa1100_map_io
(
void
)
{
{
iotable_init
(
standard_io_desc
);
iotable_init
(
standard_io_desc
,
ARRAY_SIZE
(
standard_io_desc
)
);
}
}
/*
/*
...
@@ -203,3 +200,4 @@ void __init sa1110_mb_enable(void)
...
@@ -203,3 +200,4 @@ void __init sa1110_mb_enable(void)
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
}
}
arch/arm/mach-sa1100/graphicsclient.c
View file @
ea1e2d62
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* it under the terms of the GNU General Public License version 2 as
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
* published by the Free Software Foundation.
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
...
@@ -121,10 +121,9 @@ static void __init graphicsclient_init_irq(void)
...
@@ -121,10 +121,9 @@ static void __init graphicsclient_init_irq(void)
static
struct
map_desc
graphicsclient_io_desc
[]
__initdata
=
{
static
struct
map_desc
graphicsclient_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0x10000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CPLD */
{
0xf0000000
,
0x10000000
,
0x00400000
,
MT_DEVICE
},
/* CPLD */
{
0xf1000000
,
0x18000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CAN */
{
0xf1000000
,
0x18000000
,
0x00400000
,
MT_DEVICE
}
/* CAN */
LAST_DESC
};
};
static
u_int
graphicsclient_get_mctrl
(
struct
uart_port
*
port
)
static
u_int
graphicsclient_get_mctrl
(
struct
uart_port
*
port
)
...
@@ -187,7 +186,7 @@ static struct sa1100_port_fns graphicsclient_port_fns __initdata = {
...
@@ -187,7 +186,7 @@ static struct sa1100_port_fns graphicsclient_port_fns __initdata = {
static
void
__init
graphicsclient_map_io
(
void
)
static
void
__init
graphicsclient_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
graphicsclient_io_desc
);
iotable_init
(
graphicsclient_io_desc
,
ARRAY_SIZE
(
graphicsclient_io_desc
)
);
sa1100_register_uart_fns
(
&
graphicsclient_port_fns
);
sa1100_register_uart_fns
(
&
graphicsclient_port_fns
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
...
...
arch/arm/mach-sa1100/graphicsmaster.c
View file @
ea1e2d62
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
* it under the terms of the GNU General Public License version 2 as
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
* published by the Free Software Foundation.
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
...
@@ -153,11 +153,10 @@ static void __init graphicsmaster_init_irq(void)
...
@@ -153,11 +153,10 @@ static void __init graphicsmaster_init_irq(void)
static
struct
map_desc
graphicsmaster_io_desc
[]
__initdata
=
{
static
struct
map_desc
graphicsmaster_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0x10000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CPLD */
{
0xf0000000
,
0x10000000
,
0x00400000
,
MT_DEVICE
},
/* CPLD */
{
0xf1000000
,
0x40000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* CAN */
{
0xf1000000
,
0x40000000
,
0x00400000
,
MT_DEVICE
},
/* CAN */
{
0xf4000000
,
0x18000000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA-1111 */
{
0xf4000000
,
0x18000000
,
0x00800000
,
MT_DEVICE
}
/* SA-1111 */
LAST_DESC
};
};
#error Old code. Someone needs to decide what to do about this.
#error Old code. Someone needs to decide what to do about this.
...
@@ -244,7 +243,7 @@ static struct sa1100_port_fns graphicsmaster_port_fns __initdata = {
...
@@ -244,7 +243,7 @@ static struct sa1100_port_fns graphicsmaster_port_fns __initdata = {
static
void
__init
graphicsmaster_map_io
(
void
)
static
void
__init
graphicsmaster_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
graphicsmaster_io_desc
);
iotable_init
(
graphicsmaster_io_desc
,
ARRAY_SIZE
(
graphicsmaster_io_desc
)
);
sa1100_register_uart_fns
(
&
graphicsmaster_port_fns
);
sa1100_register_uart_fns
(
&
graphicsmaster_port_fns
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
...
...
arch/arm/mach-sa1100/h3600.c
View file @
ea1e2d62
...
@@ -434,17 +434,16 @@ static struct sa1100_port_fns h3600_port_fns __initdata = {
...
@@ -434,17 +434,16 @@ static struct sa1100_port_fns h3600_port_fns __initdata = {
};
};
static
struct
map_desc
h3600_io_desc
[]
__initdata
=
{
static
struct
map_desc
h3600_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
H3600_EGPIO_VIRT
,
0x49000000
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* EGPIO 0 CS#5 */
{
H3600_EGPIO_VIRT
,
0x49000000
,
0x01000000
,
MT_DEVICE
},
/* EGPIO 0 CS#5 */
{
H3600_BANK_2_VIRT
,
0x10000000
,
0x02800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* static memory bank 2 CS#2 */
{
H3600_BANK_2_VIRT
,
0x10000000
,
0x02800000
,
MT_DEVICE
},
/* static memory bank 2 CS#2 */
{
H3600_BANK_4_VIRT
,
0x40000000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* static memory bank 4 CS#4 */
{
H3600_BANK_4_VIRT
,
0x40000000
,
0x00800000
,
MT_DEVICE
}
/* static memory bank 4 CS#4 */
LAST_DESC
};
};
static
void
__init
h3600_map_io
(
void
)
static
void
__init
h3600_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
h3600_io_desc
);
iotable_init
(
h3600_io_desc
,
ARRAY_SIZE
(
h3600_io_desc
)
);
sa1100_register_uart_fns
(
&
h3600_port_fns
);
sa1100_register_uart_fns
(
&
h3600_port_fns
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
...
...
arch/arm/mach-sa1100/huw_webpanel.c
View file @
ea1e2d62
...
@@ -60,16 +60,15 @@ __initcall(init_huw_cs3);
...
@@ -60,16 +60,15 @@ __initcall(init_huw_cs3);
area size = 288 kByte (0x48000 Bytes)
area size = 288 kByte (0x48000 Bytes)
**/
**/
static
struct
map_desc
huw_webpanel_io_desc
[]
__initdata
=
{
static
struct
map_desc
huw_webpanel_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0xc1fb8000
,
0x00048000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Parameter */
{
0xf0000000
,
0xc1fb8000
,
0x00048000
,
MT_DEVICE
},
/* Parameter */
{
0xf1000000
,
0x18000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Paules CS3, write only */
{
0xf1000000
,
0x18000000
,
0x00100000
,
MT_DEVICE
}
/* Paules CS3, write only */
LAST_DESC
};
};
static
void
__init
huw_webpanel_map_io
(
void
)
static
void
__init
huw_webpanel_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
huw_webpanel_io_desc
);
iotable_init
(
huw_webpanel_io_desc
,
ARRAY_SIZE
(
huw_webpanel_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/itsy.c
View file @
ea1e2d62
...
@@ -18,16 +18,14 @@
...
@@ -18,16 +18,14 @@
/* BRADFIXME The egpio addresses aren't verifiably correct. (i.e. they're most
/* BRADFIXME The egpio addresses aren't verifiably correct. (i.e. they're most
likely wrong. */
likely wrong. */
static
struct
map_desc
itsy_io_desc
[]
__initdata
=
{
static
struct
map_desc
itsy_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xe8000000
,
0x00000000
,
0x02000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Flash bank 0 */
{
0xf0000000
,
0x49000000
,
0x01000000
,
MT_DEVICE
}
/* EGPIO 0 */
{
0xf0000000
,
0x49000000
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* EGPIO 0 */
LAST_DESC
};
};
static
void
__init
itsy_map_io
(
void
)
static
void
__init
itsy_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
itsy_io_desc
);
iotable_init
(
itsy_io_desc
,
ARRAY_SIZE
(
itsy_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/jornada720.c
View file @
ea1e2d62
...
@@ -56,17 +56,16 @@ static int __init jornada720_init(void)
...
@@ -56,17 +56,16 @@ static int __init jornada720_init(void)
__initcall
(
jornada720_init
);
__initcall
(
jornada720_init
);
static
struct
map_desc
jornada720_io_desc
[]
__initdata
=
{
static
struct
map_desc
jornada720_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0x48000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Epson registers */
{
0xf0000000
,
0x48000000
,
0x00100000
,
MT_DEVICE
},
/* Epson registers */
{
0xf1000000
,
0x48200000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Epson frame buffer */
{
0xf1000000
,
0x48200000
,
0x00100000
,
MT_DEVICE
},
/* Epson frame buffer */
{
0xf4000000
,
0x40000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA-1111 */
{
0xf4000000
,
0x40000000
,
0x00100000
,
MT_DEVICE
}
/* SA-1111 */
LAST_DESC
};
};
static
void
__init
jornada720_map_io
(
void
)
static
void
__init
jornada720_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
jornada720_io_desc
);
iotable_init
(
jornada720_io_desc
,
ARRAY_SIZE
(
jornada720_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/lart.c
View file @
ea1e2d62
...
@@ -17,16 +17,15 @@
...
@@ -17,16 +17,15 @@
static
struct
map_desc
lart_io_desc
[]
__initdata
=
{
static
struct
map_desc
lart_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xe8000000
,
0x00000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* main flash memory */
{
0xe8000000
,
0x00000000
,
0x00400000
,
MT_DEVICE
},
/* main flash memory */
{
0xec000000
,
0x08000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* main flash, alternative location */
{
0xec000000
,
0x08000000
,
0x00400000
,
MT_DEVICE
}
/* main flash, alternative location */
LAST_DESC
};
};
static
void
__init
lart_map_io
(
void
)
static
void
__init
lart_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
lart_io_desc
);
iotable_init
(
lart_io_desc
,
ARRAY_SIZE
(
lart_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/nanoengine.c
View file @
ea1e2d62
...
@@ -25,17 +25,15 @@ fixup_nanoengine(struct machine_desc *desc, struct tag *tags,
...
@@ -25,17 +25,15 @@ fixup_nanoengine(struct machine_desc *desc, struct tag *tags,
}
}
static
struct
map_desc
nanoengine_io_desc
[]
__initdata
=
{
static
struct
map_desc
nanoengine_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xe8000000
,
0x00000000
,
0x02000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Flash bank 0 */
{
0xf0000000
,
0x10000000
,
0x00100000
,
MT_DEVICE
},
/* System Registers */
{
0xf0000000
,
0x10000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* System Registers */
{
0xf1000000
,
0x18A00000
,
0x00100000
,
MT_DEVICE
}
/* Internal PCI Config Space */
{
0xf1000000
,
0x18A00000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Internal PCI Config Space */
LAST_DESC
};
};
static
void
__init
nanoengine_map_io
(
void
)
static
void
__init
nanoengine_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
nanoengine_io_desc
);
iotable_init
(
nanoengine_io_desc
,
ARRAY_SIZE
(
nanoengine_io_desc
)
);
sa1100_register_uart
(
0
,
1
);
sa1100_register_uart
(
0
,
1
);
sa1100_register_uart
(
1
,
2
);
sa1100_register_uart
(
1
,
2
);
...
...
arch/arm/mach-sa1100/neponset.c
View file @
ea1e2d62
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* linux/arch/arm/mach-sa1100/neponset.c
* linux/arch/arm/mach-sa1100/neponset.c
*
*
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
...
@@ -18,7 +18,9 @@
...
@@ -18,7 +18,9 @@
#include <asm/mach/irq.h>
#include <asm/mach/irq.h>
#include <asm/mach/serial_sa1100.h>
#include <asm/mach/serial_sa1100.h>
#include <asm/arch/assabet.h>
#include <asm/arch/assabet.h>
#include <asm/arch/neponset.h>
#include <asm/hardware/sa1111.h>
#include <asm/hardware/sa1111.h>
#include <asm/sizes.h>
#include "sa1111.h"
#include "sa1111.h"
...
@@ -216,13 +218,12 @@ static int __init neponset_init(void)
...
@@ -216,13 +218,12 @@ static int __init neponset_init(void)
__initcall
(
neponset_init
);
__initcall
(
neponset_init
);
static
struct
map_desc
neponset_io_desc
[]
__initdata
=
{
static
struct
map_desc
neponset_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf3000000
,
0x10000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* System Registers */
{
0xf3000000
,
0x10000000
,
SZ_1M
,
MT_DEVICE
},
/* System Registers */
{
0xf4000000
,
0x40000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA-1111 */
{
0xf4000000
,
0x40000000
,
SZ_1M
,
MT_DEVICE
}
/* SA-1111 */
LAST_DESC
};
};
void
__init
neponset_map_io
(
void
)
void
__init
neponset_map_io
(
void
)
{
{
iotable_init
(
neponset_io_desc
);
iotable_init
(
neponset_io_desc
,
ARRAY_SIZE
(
neponset_io_desc
)
);
}
}
arch/arm/mach-sa1100/omnimeter.c
View file @
ea1e2d62
...
@@ -41,15 +41,14 @@ static int __init omnimeter_init(void)
...
@@ -41,15 +41,14 @@ static int __init omnimeter_init(void)
__initcall
(
omnimeter_init
);
__initcall
(
omnimeter_init
);
static
struct
map_desc
omnimeter_io_desc
[]
__initdata
=
{
static
struct
map_desc
omnimeter_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xd2000000
,
0x10000000
,
0x02000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* TS */
{
0xd2000000
,
0x10000000
,
0x02000000
,
MT_DEVICE
}
/* TS */
LAST_DESC
};
};
static
void
__init
omnimeter_map_io
(
void
)
static
void
__init
omnimeter_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
omnimeter_io_desc
);
iotable_init
(
omnimeter_io_desc
,
ARRAY_SIZE
(
omnimeter_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/pangolin.c
View file @
ea1e2d62
...
@@ -16,15 +16,14 @@
...
@@ -16,15 +16,14 @@
#include "generic.h"
#include "generic.h"
static
struct
map_desc
pangolin_io_desc
[]
__initdata
=
{
static
struct
map_desc
pangolin_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* MQ200 */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
MT_DEVICE
}
/* MQ200 */
LAST_DESC
};
};
static
void
__init
pangolin_map_io
(
void
)
static
void
__init
pangolin_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
pangolin_io_desc
);
iotable_init
(
pangolin_io_desc
,
ARRAY_SIZE
(
pangolin_io_desc
)
);
sa1100_register_uart
(
0
,
1
);
sa1100_register_uart
(
0
,
1
);
sa1100_register_uart
(
1
,
3
);
sa1100_register_uart
(
1
,
3
);
...
...
arch/arm/mach-sa1100/pfs168.c
View file @
ea1e2d62
...
@@ -56,28 +56,26 @@ static void __init pfs168_init_irq(void)
...
@@ -56,28 +56,26 @@ static void __init pfs168_init_irq(void)
}
}
static
struct
map_desc
pfs168_io_desc
[]
__initdata
=
{
static
struct
map_desc
pfs168_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xe8000000
,
0x00000000
,
0x02000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Flash bank 0 */
{
0xf0000000
,
0x10000000
,
0x00001000
,
MT_DEVICE
},
/* 16C752 DUART port A (COM5) */
{
0xf0000000
,
0x10000000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* 16C752 DUART port A (COM5) */
{
0xf0001000
,
0x10800000
,
0x00001000
,
MT_DEVICE
},
/* 16C752 DUART port B (COM6) */
{
0xf0001000
,
0x10800000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* 16C752 DUART port B (COM6) */
{
0xf0002000
,
0x11000000
,
0x00001000
,
MT_DEVICE
},
/* COM1 RTS control (SYSC1RTS) */
{
0xf0002000
,
0x11000000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* COM1 RTS control (SYSC1RTS) */
{
0xf0003000
,
0x11400000
,
0x00001000
,
MT_DEVICE
},
/* Status LED control (SYSLED) */
{
0xf0003000
,
0x11400000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Status LED control (SYSLED) */
{
0xf0004000
,
0x11800000
,
0x00001000
,
MT_DEVICE
},
/* DTMF code read (SYSDTMF) */
{
0xf0004000
,
0x11800000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* DTMF code read (SYSDTMF) */
{
0xf0005000
,
0x11c00000
,
0x00001000
,
MT_DEVICE
},
/* LCD configure, enable (SYSLCDDE) */
{
0xf0005000
,
0x11c00000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* LCD configure, enable (SYSLCDDE) */
{
0xf0006000
,
0x12000000
,
0x00001000
,
MT_DEVICE
},
/* COM1 DSR and motion sense (SYSC1DSR) */
{
0xf0006000
,
0x12000000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* COM1 DSR and motion sense (SYSC1DSR) */
{
0xf0007000
,
0x12800000
,
0x00001000
,
MT_DEVICE
},
/* COM3 xmit enable (SYSC3TEN) */
{
0xf0007000
,
0x12800000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* COM3 xmit enable (SYSC3TEN) */
{
0xf0008000
,
0x13000000
,
0x00001000
,
MT_DEVICE
},
/* Control register A (SYSCTLA) */
{
0xf0008000
,
0x13000000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Control register A (SYSCTLA) */
{
0xf0009000
,
0x13800000
,
0x00001000
,
MT_DEVICE
},
/* Control register B (SYSCTLB) */
{
0xf0009000
,
0x13800000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Control register B (SYSCTLB) */
{
0xf000a000
,
0x18000000
,
0x00001000
,
MT_DEVICE
},
/* SMC91C96 */
{
0xf000a000
,
0x18000000
,
0x00001000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SMC91C96 */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
MT_DEVICE
},
/* MQ200 */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* MQ200 */
{
0xf4000000
,
0x40000000
,
0x00100000
,
MT_DEVICE
}
/* SA-1111 */
{
0xf4000000
,
0x40000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA-1111 */
LAST_DESC
};
};
static
void
__init
pfs168_map_io
(
void
)
static
void
__init
pfs168_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
pfs168_io_desc
);
iotable_init
(
pfs168_io_desc
,
ARRAY_SIZE
(
pfs168_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/pleb.c
View file @
ea1e2d62
...
@@ -15,17 +15,9 @@
...
@@ -15,17 +15,9 @@
#include "generic.h"
#include "generic.h"
static
struct
map_desc
pleb_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
{
0xe8000000
,
0x00000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* main flash memory */
{
0xe8400000
,
0x08000000
,
0x00400000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* main flash, alternative location */
LAST_DESC
};
static
void
__init
pleb_map_io
(
void
)
static
void
__init
pleb_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
pleb_io_desc
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/pm.c
View file @
ea1e2d62
...
@@ -18,12 +18,14 @@
...
@@ -18,12 +18,14 @@
* 2001-08-29: Nicolas Pitre <nico@cam.org>
* 2001-08-29: Nicolas Pitre <nico@cam.org>
* Cleaned up, pushed platform dependent stuff
* Cleaned up, pushed platform dependent stuff
* in the platform specific files.
* in the platform specific files.
*
* 2002-05-27: Nicolas Pitre Killed sleep.h and the kmalloced save array.
* Storage is local on the stack now.
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/pm.h>
#include <linux/pm.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/sysctl.h>
#include <linux/sysctl.h>
...
@@ -35,7 +37,6 @@
...
@@ -35,7 +37,6 @@
#include <asm/system.h>
#include <asm/system.h>
#include <asm/leds.h>
#include <asm/leds.h>
#include "sleep.h"
/*
/*
* Debug macros
* Debug macros
...
@@ -45,20 +46,32 @@
...
@@ -45,20 +46,32 @@
extern
void
sa1100_cpu_suspend
(
void
);
extern
void
sa1100_cpu_suspend
(
void
);
extern
void
sa1100_cpu_resume
(
void
);
extern
void
sa1100_cpu_resume
(
void
);
extern
unsigned
long
*
sleep_save
;
/* virtual address */
extern
unsigned
long
sleep_save_p
;
/* physical address */
#define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x
#define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x
#define RESTORE(x) x = sleep_save[SLEEP_SAVE_##x]
#define RESTORE(x) x = sleep_save[SLEEP_SAVE_##x]
/*
* List of global SA11x0 peripheral registers to preserve.
* More ones like CP and general purpose register values are preserved
* on the stack and then the stack pointer is stored last in sleep.S.
*/
enum
{
SLEEP_SAVE_SP
=
0
,
SLEEP_SAVE_OSCR
,
SLEEP_SAVE_OIER
,
SLEEP_SAVE_OSMR0
,
SLEEP_SAVE_OSMR1
,
SLEEP_SAVE_OSMR2
,
SLEEP_SAVE_OSMR3
,
SLEEP_SAVE_GPDR
,
SLEEP_SAVE_GRER
,
SLEEP_SAVE_GFER
,
SLEEP_SAVE_GAFR
,
SLEEP_SAVE_PPDR
,
SLEEP_SAVE_PPSR
,
SLEEP_SAVE_PPAR
,
SLEEP_SAVE_PSDR
,
SLEEP_SAVE_ICMR
,
SLEEP_SAVE_Ser1SDCR0
,
SLEEP_SAVE_SIZE
};
int
pm_do_suspend
(
void
)
int
pm_do_suspend
(
void
)
{
{
/* set up pointer to sleep parameters */
unsigned
long
sleep_save
[
SLEEP_SAVE_SIZE
];
sleep_save
=
kmalloc
(
SLEEP_SAVE_SIZE
*
sizeof
(
long
),
GFP_ATOMIC
);
if
(
!
sleep_save
)
return
-
ENOMEM
;
sleep_save_p
=
virt_to_phys
(
sleep_save
);
cli
();
cli
();
...
@@ -146,8 +159,6 @@ int pm_do_suspend(void)
...
@@ -146,8 +159,6 @@ int pm_do_suspend(void)
sti
();
sti
();
kfree
(
sleep_save
);
/*
/*
* Restore the CPU frequency settings.
* Restore the CPU frequency settings.
*/
*/
...
@@ -158,6 +169,11 @@ int pm_do_suspend(void)
...
@@ -158,6 +169,11 @@ int pm_do_suspend(void)
return
0
;
return
0
;
}
}
unsigned
long
sleep_phys_sp
(
void
*
sp
)
{
return
virt_to_phys
(
sp
);
}
#ifdef CONFIG_SYSCTL
#ifdef CONFIG_SYSCTL
/*
/*
* ARGH! ACPI people defined CTL_ACPI in linux/acpi.h rather than
* ARGH! ACPI people defined CTL_ACPI in linux/acpi.h rather than
...
...
arch/arm/mach-sa1100/simpad.c
View file @
ea1e2d62
/*
/*
* linux/arch/arm/mach-sa1100/simpad.c
* linux/arch/arm/mach-sa1100/simpad.c
*
*/
*/
#include <linux/config.h>
#include <linux/config.h>
...
@@ -41,10 +40,9 @@ void clear_cs3_bit(int value)
...
@@ -41,10 +40,9 @@ void clear_cs3_bit(int value)
}
}
static
struct
map_desc
simpad_io_desc
[]
__initdata
=
{
static
struct
map_desc
simpad_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* MQ200 */
{
0xf2800000
,
0x4b800000
,
0x00800000
,
MT_DEVICE
},
/* MQ200 */
{
0xf1000000
,
0x18000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Paules CS3, write only */
{
0xf1000000
,
0x18000000
,
0x00100000
,
MT_DEVICE
}
/* Paules CS3, write only */
LAST_DESC
};
};
...
@@ -65,7 +63,7 @@ static struct sa1100_port_fns simpad_port_fns __initdata = {
...
@@ -65,7 +63,7 @@ static struct sa1100_port_fns simpad_port_fns __initdata = {
static
void
__init
simpad_map_io
(
void
)
static
void
__init
simpad_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
simpad_io_desc
);
iotable_init
(
simpad_io_desc
,
ARRAY_SIZE
(
simpad_io_desc
)
);
PSPR
=
0xc0008000
;
PSPR
=
0xc0008000
;
GPDR
&=
~
GPIO_GPIO0
;
GPDR
&=
~
GPIO_GPIO0
;
...
...
arch/arm/mach-sa1100/sleep.S
View file @
ea1e2d62
...
@@ -11,12 +11,20 @@
...
@@ -11,12 +11,20 @@
*
2001
-
02
-
06
:
Cliff
Brake
Initial
code
*
2001
-
02
-
06
:
Cliff
Brake
Initial
code
*
*
*
2001
-
08
-
29
:
Nicolas
Pitre
Simplified
.
*
2001
-
08
-
29
:
Nicolas
Pitre
Simplified
.
*
*
2002
-
05
-
27
:
Nicolas
Pitre
Revisited
,
more
cleanup
and
simplification
.
*
Storage
is
on
the
stack
now
.
*/
*/
#include <linux/linkage.h>
#include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/assembler.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include "sleep.h"
.
text
/*
/*
*
sa1100_cpu_suspend
()
*
sa1100_cpu_suspend
()
...
@@ -25,35 +33,24 @@
...
@@ -25,35 +33,24 @@
*
*
*/
*/
.
text
ENTRY
(
sa1100_cpu_suspend
)
ENTRY
(
sleep_save
)
.
word
0
@
virtual
address
of
parameter
array
stmfd
sp
!,
{
r4
-
r12
,
lr
}
@
save
registers
on
stack
ENTRY
(
sleep_save_p
)
.
word
0
@
physical
address
of
parameter
array
ENTRY
(
sa1100_cpu_suspend
)
@
get
coprocessor
registers
mrc
p15
,
0
,
r4
,
c3
,
c0
,
0
@
domain
ID
mrc
p15
,
0
,
r5
,
c2
,
c0
,
0
@
translation
table
base
addr
mrc
p15
,
0
,
r6
,
c13
,
c0
,
0
@
PID
mrc
p15
,
0
,
r7
,
c1
,
c0
,
0
@
control
reg
@
store
them
plus
current
virtual
stack
ptr
on
stack
stmfd
sp
!,
{
r4
-
r7
,
sp
}
@
save
registers
on
stack
@
preserve
phys
address
of
stack
stmfd
sp
!,
{
r4
-
r12
,
lr
}
mov
r0
,
sp
bl
sleep_phys_sp
@
load
virtual
address
for
sleep_save
array
ldr
r1
,
=
sleep_save_sp
ldr
r4
,
sleep_save
str
r0
,
[
r1
]
@
save
stack
pointer
str
sp
,
[
r4
,
#(
SLEEP_SAVE_SP
*
4
)]
@
save
coprocessor
registers
mrc
p15
,
0
,
r1
,
c1
,
c0
,
0
str
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R1
*
4
)]
mrc
p15
,
0
,
r1
,
c2
,
c0
,
0
str
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R2
*
4
)]
mrc
p15
,
0
,
r1
,
c3
,
c0
,
0
str
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R3
*
4
)]
mrc
p15
,
0
,
r1
,
c5
,
c0
,
0
str
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R5
*
4
)]
mrc
p15
,
0
,
r1
,
c6
,
c0
,
0
str
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R6
*
4
)]
mrc
p15
,
0
,
r1
,
c13
,
c0
,
0
str
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R13
*
4
)]
@
clean
data
cache
and
invalidate
WB
@
clean
data
cache
and
invalidate
WB
bl
cpu_sa1100_cache_clean_invalidate_all
bl
cpu_sa1100_cache_clean_invalidate_all
...
@@ -79,25 +76,24 @@ ENTRY(sa1100_cpu_suspend)
...
@@ -79,25 +76,24 @@ ENTRY(sa1100_cpu_suspend)
mov
r0
,
#
90
mov
r0
,
#
90
bl
udelay
bl
udelay
/
*
/*
setup
up
register
contents
for
jump
to
page
containing
SA1110
SDRAM
controller
bug
fix
suspend
code
*
SA1110
SDRAM
controller
workaround
.
register
values
:
*
*
*
r0
points
to
MSC0
register
*
r0
=
&
MSC0
*
r1
points
to
MSC1
register
*
r1
=
&
MSC1
*
r2
points
to
MSC2
register
*
r2
=
&
MSC2
*
r3
is
MSC0
value
*
r3
=
MSC0
value
*
r4
is
MSC1
value
*
r4
=
MSC1
value
*
r5
is
MSC2
value
*
r5
=
MSC2
value
*
r6
points
to
MDREFR
register
*
r6
=
&
MDREFR
*
r7
is
first
MDREFR
value
*
r7
=
first
MDREFR
value
*
r8
is
second
MDREFR
value
*
r8
=
second
MDREFR
value
*
r9
is
pointer
to
MDCNFG
register
*
r9
=
&
MDCNFG
*
r10
is
MDCNFG
value
*
r10
=
MDCNFG
value
*
r11
is
third
MDREFR
value
*
r11
=
third
MDREFR
value
*
r12
is
pointer
to
PMCR
register
*
r12
=
&
PMCR
*
r13
is
PMCR
value
(
1
)
*
r13
=
PMCR
value
(
1
)
*
*/
*/
ldr
r0
,
=
MSC0
ldr
r0
,
=
MSC0
ldr
r1
,
=
MSC1
ldr
r1
,
=
MSC1
...
@@ -170,69 +166,49 @@ sa1110_sdram_controller_fix:
...
@@ -170,69 +166,49 @@ sa1110_sdram_controller_fix:
*
*
*
entry
point
from
bootloader
into
kernel
during
resume
*
entry
point
from
bootloader
into
kernel
during
resume
*
*
*
Note
:
Yes
,
part
of
the
following
code
is
located
into
the
.
data
section
.
*
This
is
to
allow
sleep_save_sp
to
be
accessed
with
a
relative
load
*
while
we
can
't rely on any MMU translation. We could have put
*
sleep_save_sp
in
the
.
text
section
as
well
,
but
some
setups
might
*
insist
on
it
to
be
truely
read
-
only
.
*/
*/
.
data
.
align
5
.
align
5
ENTRY
(
sa1100_cpu_resume
)
ENTRY
(
sa1100_cpu_resume
)
@
set
SVC
,
irqs
off
mov
r0
,
#
PSR_F_BIT
| PSR_I_BIT |
MODE_SVC
mov
r0
,
#
PSR_F_BIT
| PSR_I_BIT |
MODE_SVC
msr
cpsr_c
,
r0
msr
cpsr_c
,
r0
@
set
SVC
,
irqs
off
@
load
physical
address
of
sleep_save
ldr
r4
,
sleep_save_p
@
restore
cp15_r3
,
domain
id
ldr
r0
,
sleep_save_sp
@
stack
phys
addr
ldr
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R3
*
4
)]
ldr
r2
,
=
resume_after_mmu
@
its
absolute
virtual
address
mcr
p15
,
0
,
r1
,
c3
,
c0
,
0
ldmfd
r0
,
{
r4
-
r7
,
sp
}
@
CP
regs
+
virt
stack
ptr
@
restore
cp15_r2
,
translation
table
base
address
ldr
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R2
*
4
)]
mcr
p15
,
0
,
r1
,
c2
,
c0
,
0
mov
r1
,
#
0
mov
r1
,
#
0
mcr
p15
,
0
,
r1
,
c8
,
c7
,
0
@
flush
I
+
D
TLBs
mcr
p15
,
0
,
r1
,
c8
,
c7
,
0
@
flush
I
+
D
TLBs
mcr
p15
,
0
,
r1
,
c7
,
c7
,
0
@
flush
I
&D
cache
mcr
p15
,
0
,
r1
,
c7
,
c7
,
0
@
flush
I
&D
cache
mcr
p15
,
0
,
r1
,
c9
,
c0
,
0
@
invalidate
RB
mcr
p15
,
0
,
r1
,
c9
,
c0
,
5
@
allow
user
space
to
use
RB
@
get
saved
cp15
r1
(
control
register
)
mcr
p15
,
0
,
r4
,
c3
,
c0
,
0
@
domain
ID
ldr
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R1
*
4
)]
mcr
p15
,
0
,
r5
,
c2
,
c0
,
0
@
translation
table
base
addr
mcr
p15
,
0
,
r6
,
c13
,
c0
,
0
@
PID
@
get
address
to
jump
to
after
turning
on
MMU
b
resume_turn_on_mmu
@
cache
align
execution
ldr
r2
,
=
resume_after_mmu
cmp
r2
,
#
0
b
resume_turn_on_mmu
.
align
5
.
align
5
resume_turn_on_mmu
:
resume_turn_on_mmu
:
mcr
p15
,
0
,
r7
,
c1
,
c0
,
0
@
turn
on
MMU
,
caches
,
etc
.
@
turn
on
mmu
nop
mcr
p15
,
0
,
r1
,
c1
,
c0
,
0
mov
pc
,
r2
@
jump
to
virtual
addr
nop
@
jump
to
resume_after_mmu
mov
pc
,
r2
nop
nop
nop
nop
.
align
5
sleep_save_sp
:
resume_after_mmu
:
.
word
0
@
preserve
stack
phys
ptr
here
@
load
virtual
address
for
sleep_save
array
ldr
r4
,
sleep_save
@
restore
the
rest
of
CPU
state
ldr
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R13
*
4
)]
mcr
p15
,
0
,
r1
,
c13
,
c0
,
0
ldr
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R5
*
4
)]
mcr
p15
,
0
,
r1
,
c5
,
c0
,
0
ldr
r1
,
[
r4
,
#(
SLEEP_SAVE_CP15_R6
*
4
)]
mcr
p15
,
0
,
r1
,
c6
,
c0
,
0
@
restore
stack
pointer
ldr
sp
,
[
r4
,
#(
SLEEP_SAVE_SP
*
4
)]
@
return
to
caller
.
text
ldmfd
sp
!,
{
r4
-
r12
,
pc
}
resume_after_mmu
:
mcr
p15
,
0
,
r1
,
c15
,
c1
,
2
@
enable
clock
switching
ldmfd
sp
!,
{
r4
-
r12
,
pc
}
@
return
to
caller
arch/arm/mach-sa1100/sleep.h
deleted
100644 → 0
View file @
5fb4864a
/*
* Offsets for register values preserved in RAM while in sleep mode
*/
#define SLEEP_SAVE_OSCR 0
#define SLEEP_SAVE_OSMR0 1
#define SLEEP_SAVE_OSMR1 2
#define SLEEP_SAVE_OSMR2 3
#define SLEEP_SAVE_OSMR3 4
#define SLEEP_SAVE_OIER 5
#define SLEEP_SAVE_GPDR 6
#define SLEEP_SAVE_GRER 7
#define SLEEP_SAVE_GFER 8
#define SLEEP_SAVE_GAFR 9
#define SLEEP_SAVE_PPDR 10
#define SLEEP_SAVE_PPSR 11
#define SLEEP_SAVE_PPAR 12
#define SLEEP_SAVE_PSDR 13
#define SLEEP_SAVE_Ser1SDCR0 14
#define SLEEP_SAVE_ICMR 15
#define SLEEP_SAVE_SP 16
#define SLEEP_SAVE_CP15_R1 17
#define SLEEP_SAVE_CP15_R2 18
#define SLEEP_SAVE_CP15_R3 19
#define SLEEP_SAVE_CP15_R5 20
#define SLEEP_SAVE_CP15_R6 21
#define SLEEP_SAVE_CP15_R13 22
#define SLEEP_SAVE_SIZE 23
arch/arm/mach-sa1100/stork.c
View file @
ea1e2d62
...
@@ -304,19 +304,17 @@ stork_kbd_unexpected_up(unsigned char code)
...
@@ -304,19 +304,17 @@ stork_kbd_unexpected_up(unsigned char code)
struct
map_desc
stork_io_desc
[]
__initdata
=
{
struct
map_desc
stork_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xe8000000
,
0x00000000
,
0x02000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Flash bank 0 */
{
STORK_VM_BASE_CS1
,
STORK_VM_OFF_CS1
,
0x01000000
,
MT_DEVICE
},
/* EGPIO 0 */
{
STORK_VM_BASE_CS1
,
STORK_VM_OFF_CS1
,
0x01000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* EGPIO 0 */
{
0xf1000000
,
0x10000000
,
0x02800000
,
MT_DEVICE
},
/* static memory bank 2 */
{
0xf1000000
,
0x10000000
,
0x02800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* static memory bank 2 */
{
0xf3800000
,
0x40000000
,
0x00800000
,
MT_DEVICE
}
/* static memory bank 4 */
{
0xf3800000
,
0x40000000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* static memory bank 4 */
LAST_DESC
};
};
int
__init
int
__init
stork_map_io
(
void
)
stork_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
stork_io_desc
);
iotable_init
(
stork_io_desc
,
ARRAY_SIZE
(
stork_io_desc
)
);
sa1100_register_uart
(
0
,
1
);
/* com port */
sa1100_register_uart
(
0
,
1
);
/* com port */
sa1100_register_uart
(
1
,
2
);
sa1100_register_uart
(
1
,
2
);
...
...
arch/arm/mach-sa1100/system3.c
View file @
ea1e2d62
...
@@ -95,10 +95,9 @@ static void system3_backlight_power(int on);
...
@@ -95,10 +95,9 @@ static void system3_backlight_power(int on);
*/
*/
static
struct
map_desc
system3_io_desc
[]
__initdata
=
{
static
struct
map_desc
system3_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf3000000
,
PT_CPLD_BASE
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* System Registers */
{
0xf3000000
,
PT_CPLD_BASE
,
0x00100000
,
MT_DEVICE
},
/* System Registers */
{
0xf4000000
,
PT_SA1111_BASE
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA-1111 */
{
0xf4000000
,
PT_SA1111_BASE
,
0x00100000
,
MT_DEVICE
}
/* SA-1111 */
LAST_DESC
};
};
static
struct
sa1100_port_fns
system3_port_fns
__initdata
=
{
static
struct
sa1100_port_fns
system3_port_fns
__initdata
=
{
...
@@ -119,7 +118,7 @@ static void __init system3_map_io(void)
...
@@ -119,7 +118,7 @@ static void __init system3_map_io(void)
{
{
DPRINTK
(
"%s
\n
"
,
"START"
);
DPRINTK
(
"%s
\n
"
,
"START"
);
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
system3_io_desc
);
iotable_init
(
system3_io_desc
,
ARRAY_SIZE
(
system3_io_desc
)
);
sa1100_register_uart_fns
(
&
system3_port_fns
);
sa1100_register_uart_fns
(
&
system3_port_fns
);
sa1100_register_uart
(
0
,
1
);
/* com port */
sa1100_register_uart
(
0
,
1
);
/* com port */
...
...
arch/arm/mach-sa1100/xp860.c
View file @
ea1e2d62
...
@@ -57,17 +57,16 @@ static int __init xp860_init(void)
...
@@ -57,17 +57,16 @@ static int __init xp860_init(void)
__initcall
(
xp860_init
);
__initcall
(
xp860_init
);
static
struct
map_desc
xp860_io_desc
[]
__initdata
=
{
static
struct
map_desc
xp860_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xf0000000
,
0x10000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SCSI */
{
0xf0000000
,
0x10000000
,
0x00100000
,
MT_DEVICE
},
/* SCSI */
{
0xf1000000
,
0x18000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* LAN */
{
0xf1000000
,
0x18000000
,
0x00100000
,
MT_DEVICE
},
/* LAN */
{
0xf4000000
,
0x40000000
,
0x00800000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* SA-1111 */
{
0xf4000000
,
0x40000000
,
0x00800000
,
MT_DEVICE
}
/* SA-1111 */
LAST_DESC
};
};
static
void
__init
xp860_map_io
(
void
)
static
void
__init
xp860_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
xp860_io_desc
);
iotable_init
(
xp860_io_desc
,
ARRAY_SIZE
(
xp860_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
1
,
1
);
sa1100_register_uart
(
1
,
1
);
...
...
arch/arm/mach-sa1100/yopy.c
View file @
ea1e2d62
...
@@ -68,18 +68,15 @@ __initcall(yopy_hw_init);
...
@@ -68,18 +68,15 @@ __initcall(yopy_hw_init);
static
struct
map_desc
yopy_io_desc
[]
__initdata
=
{
static
struct
map_desc
yopy_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
/* virtual physical length type */
{
0xe8000000
,
0x00000000
,
0x04000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Flash 0 */
{
0xf0000000
,
0x48000000
,
0x00300000
,
MT_DEVICE
},
/* LCD */
{
0xec000000
,
0x08000000
,
0x04000000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* Flash 1 */
{
0xf1000000
,
0x10000000
,
0x00100000
,
MT_DEVICE
}
/* EGPIO */
{
0xf0000000
,
0x48000000
,
0x00300000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* LCD */
{
0xf1000000
,
0x10000000
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
/* EGPIO */
LAST_DESC
};
};
static
void
__init
yopy_map_io
(
void
)
static
void
__init
yopy_map_io
(
void
)
{
{
sa1100_map_io
();
sa1100_map_io
();
iotable_init
(
yopy_io_desc
);
iotable_init
(
yopy_io_desc
,
ARRAY_SIZE
(
yopy_io_desc
)
);
sa1100_register_uart
(
0
,
3
);
sa1100_register_uart
(
0
,
3
);
...
...
arch/arm/mach-shark/core.c
View file @
ea1e2d62
...
@@ -3,18 +3,11 @@
...
@@ -3,18 +3,11 @@
*
*
* Architecture specific stuff.
* Architecture specific stuff.
*/
*/
#include <linux/tty.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
#include <asm/elf.h>
#include <asm/setup.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/mach/map.h>
#include <asm/mach/map.h>
...
@@ -23,13 +16,12 @@
...
@@ -23,13 +16,12 @@
extern
void
shark_init_irq
(
void
);
extern
void
shark_init_irq
(
void
);
static
struct
map_desc
shark_io_desc
[]
__initdata
=
{
static
struct
map_desc
shark_io_desc
[]
__initdata
=
{
{
IO_BASE
,
IO_START
,
IO_SIZE
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
IO_BASE
,
IO_START
,
IO_SIZE
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
shark_map_io
(
void
)
static
void
__init
shark_map_io
(
void
)
{
{
iotable_init
(
shark_io_desc
);
iotable_init
(
shark_io_desc
,
ARRAY_SIZE
(
shark_io_desc
)
);
}
}
MACHINE_START
(
SHARK
,
"Shark"
)
MACHINE_START
(
SHARK
,
"Shark"
)
...
...
arch/arm/mach-tbox/core.c
View file @
ea1e2d62
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
*
*
* Extra MM routines for the Tbox architecture
* Extra MM routines for the Tbox architecture
*/
*/
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -57,13 +58,12 @@ static void tbox_init_irq(void)
...
@@ -57,13 +58,12 @@ static void tbox_init_irq(void)
static
struct
map_desc
tbox_io_desc
[]
__initdata
=
{
static
struct
map_desc
tbox_io_desc
[]
__initdata
=
{
/* See hardware.h for details */
/* See hardware.h for details */
{
IO_BASE
,
IO_START
,
0x00100000
,
DOMAIN_IO
,
0
,
1
,
0
,
0
},
{
IO_BASE
,
IO_START
,
0x00100000
,
MT_DEVICE
}
LAST_DESC
};
};
static
void
__init
tbox_map_io
(
void
)
static
void
__init
tbox_map_io
(
void
)
{
{
iotable_init
(
tbox_io_desc
);
iotable_init
(
tbox_io_desc
,
ARRAY_SIZE
(
tbox_io_desc
)
);
}
}
MACHINE_START
(
TBOX
,
"unknown-TBOX"
)
MACHINE_START
(
TBOX
,
"unknown-TBOX"
)
...
...
arch/arm/mm/mm-armv.c
View file @
ea1e2d62
...
@@ -220,16 +220,9 @@ static inline void clear_mapping(unsigned long virt)
...
@@ -220,16 +220,9 @@ static inline void clear_mapping(unsigned long virt)
static
void
__init
create_mapping
(
struct
map_desc
*
md
)
static
void
__init
create_mapping
(
struct
map_desc
*
md
)
{
{
unsigned
long
virt
,
length
;
unsigned
long
virt
,
length
;
int
prot_sect
,
prot_pte
;
int
prot_sect
,
prot_pte
,
domain
;
long
off
;
long
off
;
if
(
md
->
prot_read
&&
md
->
prot_write
&&
!
md
->
cacheable
&&
!
md
->
bufferable
)
{
printk
(
KERN_WARNING
"Security risk: creating user "
"accessible mapping for 0x%08lx at 0x%08lx
\n
"
,
md
->
physical
,
md
->
virtual
);
}
if
(
md
->
virtual
!=
vectors_base
()
&&
md
->
virtual
<
PAGE_OFFSET
)
{
if
(
md
->
virtual
!=
vectors_base
()
&&
md
->
virtual
<
PAGE_OFFSET
)
{
printk
(
KERN_WARNING
"MM: not creating mapping for "
printk
(
KERN_WARNING
"MM: not creating mapping for "
"0x%08lx at 0x%08lx in user region
\n
"
,
"0x%08lx at 0x%08lx in user region
\n
"
,
...
@@ -237,24 +230,49 @@ static void __init create_mapping(struct map_desc *md)
...
@@ -237,24 +230,49 @@ static void __init create_mapping(struct map_desc *md)
return
;
return
;
}
}
prot_pte
=
L_PTE_PRESENT
|
L_PTE_YOUNG
|
L_PTE_DIRTY
|
prot_pte
=
L_PTE_PRESENT
|
L_PTE_YOUNG
|
L_PTE_DIRTY
;
(
md
->
prot_read
?
L_PTE_USER
:
0
)
|
prot_sect
=
PMD_TYPE_SECT
;
(
md
->
prot_write
?
L_PTE_WRITE
:
0
)
|
(
md
->
cacheable
?
L_PTE_CACHEABLE
:
0
)
|
switch
(
md
->
type
)
{
(
md
->
bufferable
?
L_PTE_BUFFERABLE
:
0
);
case
MT_DEVICE
:
prot_pte
|=
L_PTE_WRITE
;
prot_sect
|=
PMD_SECT_AP_WRITE
;
domain
=
DOMAIN_IO
;
break
;
case
MT_CACHECLEAN
:
prot_pte
|=
L_PTE_CACHEABLE
|
L_PTE_BUFFERABLE
;
prot_sect
|=
PMD_SECT_CACHEABLE
|
PMD_SECT_BUFFERABLE
;
domain
=
DOMAIN_KERNEL
;
break
;
case
MT_MINICLEAN
:
prot_pte
|=
L_PTE_CACHEABLE
;
prot_sect
|=
PMD_SECT_CACHEABLE
;
domain
=
DOMAIN_KERNEL
;
break
;
case
MT_VECTORS
:
prot_pte
|=
L_PTE_EXEC
|
L_PTE_CACHEABLE
|
L_PTE_BUFFERABLE
;
prot_sect
|=
PMD_SECT_CACHEABLE
|
PMD_SECT_BUFFERABLE
;
domain
=
DOMAIN_USER
;
break
;
case
MT_MEMORY
:
prot_pte
|=
L_PTE_WRITE
|
L_PTE_EXEC
|
L_PTE_CACHEABLE
|
L_PTE_BUFFERABLE
;
prot_sect
|=
PMD_SECT_AP_WRITE
|
PMD_SECT_CACHEABLE
|
PMD_SECT_BUFFERABLE
;
domain
=
DOMAIN_KERNEL
;
break
;
}
prot_sect
=
PMD_TYPE_SECT
|
PMD_DOMAIN
(
md
->
domain
)
|
prot_sect
|=
PMD_DOMAIN
(
domain
);
(
md
->
prot_read
?
PMD_SECT_AP_READ
:
0
)
|
(
md
->
prot_write
?
PMD_SECT_AP_WRITE
:
0
)
|
(
md
->
cacheable
?
PMD_SECT_CACHEABLE
:
0
)
|
(
md
->
bufferable
?
PMD_SECT_BUFFERABLE
:
0
);
virt
=
md
->
virtual
;
virt
=
md
->
virtual
;
off
=
md
->
physical
-
virt
;
off
=
md
->
physical
-
virt
;
length
=
md
->
length
;
length
=
md
->
length
;
while
((
virt
&
0xfffff
||
(
virt
+
off
)
&
0xfffff
)
&&
length
>=
PAGE_SIZE
)
{
while
((
virt
&
0xfffff
||
(
virt
+
off
)
&
0xfffff
)
&&
length
>=
PAGE_SIZE
)
{
alloc_init_page
(
virt
,
virt
+
off
,
md
->
domain
,
prot_pte
);
alloc_init_page
(
virt
,
virt
+
off
,
domain
,
prot_pte
);
virt
+=
PAGE_SIZE
;
virt
+=
PAGE_SIZE
;
length
-=
PAGE_SIZE
;
length
-=
PAGE_SIZE
;
...
@@ -268,7 +286,7 @@ static void __init create_mapping(struct map_desc *md)
...
@@ -268,7 +286,7 @@ static void __init create_mapping(struct map_desc *md)
}
}
while
(
length
>=
PAGE_SIZE
)
{
while
(
length
>=
PAGE_SIZE
)
{
alloc_init_page
(
virt
,
virt
+
off
,
md
->
domain
,
prot_pte
);
alloc_init_page
(
virt
,
virt
+
off
,
domain
,
prot_pte
);
virt
+=
PAGE_SIZE
;
virt
+=
PAGE_SIZE
;
length
-=
PAGE_SIZE
;
length
-=
PAGE_SIZE
;
...
@@ -319,12 +337,7 @@ void __init memtable_init(struct meminfo *mi)
...
@@ -319,12 +337,7 @@ void __init memtable_init(struct meminfo *mi)
p
->
physical
=
mi
->
bank
[
i
].
start
;
p
->
physical
=
mi
->
bank
[
i
].
start
;
p
->
virtual
=
__phys_to_virt
(
p
->
physical
);
p
->
virtual
=
__phys_to_virt
(
p
->
physical
);
p
->
length
=
mi
->
bank
[
i
].
size
;
p
->
length
=
mi
->
bank
[
i
].
size
;
p
->
domain
=
DOMAIN_KERNEL
;
p
->
type
=
MT_MEMORY
;
p
->
prot_read
=
0
;
p
->
prot_write
=
1
;
p
->
cacheable
=
1
;
p
->
bufferable
=
1
;
p
++
;
p
++
;
}
}
...
@@ -332,12 +345,7 @@ void __init memtable_init(struct meminfo *mi)
...
@@ -332,12 +345,7 @@ void __init memtable_init(struct meminfo *mi)
p
->
physical
=
FLUSH_BASE_PHYS
;
p
->
physical
=
FLUSH_BASE_PHYS
;
p
->
virtual
=
FLUSH_BASE
;
p
->
virtual
=
FLUSH_BASE
;
p
->
length
=
PGDIR_SIZE
;
p
->
length
=
PGDIR_SIZE
;
p
->
domain
=
DOMAIN_KERNEL
;
p
->
type
=
MT_CACHECLEAN
;
p
->
prot_read
=
1
;
p
->
prot_write
=
0
;
p
->
cacheable
=
1
;
p
->
bufferable
=
1
;
p
++
;
p
++
;
#endif
#endif
...
@@ -345,12 +353,7 @@ void __init memtable_init(struct meminfo *mi)
...
@@ -345,12 +353,7 @@ void __init memtable_init(struct meminfo *mi)
p
->
physical
=
FLUSH_BASE_PHYS
+
PGDIR_SIZE
;
p
->
physical
=
FLUSH_BASE_PHYS
+
PGDIR_SIZE
;
p
->
virtual
=
FLUSH_BASE_MINICACHE
;
p
->
virtual
=
FLUSH_BASE_MINICACHE
;
p
->
length
=
PGDIR_SIZE
;
p
->
length
=
PGDIR_SIZE
;
p
->
domain
=
DOMAIN_KERNEL
;
p
->
type
=
MT_MINICLEAN
;
p
->
prot_read
=
1
;
p
->
prot_write
=
0
;
p
->
cacheable
=
1
;
p
->
bufferable
=
0
;
p
++
;
p
++
;
#endif
#endif
...
@@ -380,25 +383,22 @@ void __init memtable_init(struct meminfo *mi)
...
@@ -380,25 +383,22 @@ void __init memtable_init(struct meminfo *mi)
init_maps
->
physical
=
virt_to_phys
(
init_maps
);
init_maps
->
physical
=
virt_to_phys
(
init_maps
);
init_maps
->
virtual
=
vectors_base
();
init_maps
->
virtual
=
vectors_base
();
init_maps
->
length
=
PAGE_SIZE
;
init_maps
->
length
=
PAGE_SIZE
;
init_maps
->
domain
=
DOMAIN_USER
;
init_maps
->
type
=
MT_VECTORS
;
init_maps
->
prot_read
=
0
;
init_maps
->
prot_write
=
0
;
init_maps
->
cacheable
=
1
;
init_maps
->
bufferable
=
0
;
create_mapping
(
init_maps
);
create_mapping
(
init_maps
);
flush_cache_all
();
flush_cache_all
();
flush_tlb_all
();
}
}
/*
/*
* Create the architecture specific mappings
* Create the architecture specific mappings
*/
*/
void
__init
iotable_init
(
struct
map_desc
*
io_desc
)
void
__init
iotable_init
(
struct
map_desc
*
io_desc
,
int
nr
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
o_desc
[
i
].
last
==
0
;
i
++
)
for
(
i
=
0
;
i
<
nr
;
i
++
)
create_mapping
(
io_desc
+
i
);
create_mapping
(
io_desc
+
i
);
}
}
...
...
include/asm-arm/mach/map.h
View file @
ea1e2d62
...
@@ -13,20 +13,18 @@ struct map_desc {
...
@@ -13,20 +13,18 @@ struct map_desc {
unsigned
long
virtual
;
unsigned
long
virtual
;
unsigned
long
physical
;
unsigned
long
physical
;
unsigned
long
length
;
unsigned
long
length
;
int
domain
:
4
,
unsigned
int
type
;
prot_read:
1
,
prot_write:
1
,
cacheable:
1
,
bufferable:
1
,
last:
1
;
};
};
#define LAST_DESC \
{ last: 1 }
struct
meminfo
;
struct
meminfo
;
#define MT_DEVICE 0
#define MT_CACHECLEAN 1
#define MT_MINICLEAN 2
#define MT_VECTORS 3
#define MT_MEMORY 4
extern
void
create_memmap_holes
(
struct
meminfo
*
);
extern
void
create_memmap_holes
(
struct
meminfo
*
);
extern
void
memtable_init
(
struct
meminfo
*
);
extern
void
memtable_init
(
struct
meminfo
*
);
extern
void
iotable_init
(
struct
map_desc
*
);
extern
void
iotable_init
(
struct
map_desc
*
,
int
);
extern
void
setup_io_desc
(
void
);
extern
void
setup_io_desc
(
void
);
include/asm-arm/page.h
View file @
ea1e2d62
...
@@ -30,14 +30,14 @@ extern void __cpu_copy_user_page(void *to, const void *from,
...
@@ -30,14 +30,14 @@ extern void __cpu_copy_user_page(void *to, const void *from,
unsigned
long
user
);
unsigned
long
user
);
#endif
#endif
#define clear_user_page(addr,vaddr) \
#define clear_user_page(addr,vaddr
,pg
) \
do { \
do { \
preempt_disable(); \
preempt_disable(); \
__cpu_clear_user_page(addr, vaddr); \
__cpu_clear_user_page(addr, vaddr); \
preempt_enable(); \
preempt_enable(); \
} while (0)
} while (0)
#define copy_user_page(to,from,vaddr
)
\
#define copy_user_page(to,from,vaddr
,pg)
\
do { \
do { \
preempt_disable(); \
preempt_disable(); \
__cpu_copy_user_page(to, from, vaddr); \
__cpu_copy_user_page(to, from, vaddr); \
...
...
include/asm-arm/thread_info.h
View file @
ea1e2d62
...
@@ -86,8 +86,10 @@ extern void free_thread_info(struct thread_info *);
...
@@ -86,8 +86,10 @@ extern void free_thread_info(struct thread_info *);
#define get_thread_info(ti) get_task_struct((ti)->task)
#define get_thread_info(ti) get_task_struct((ti)->task)
#define put_thread_info(ti) put_task_struct((ti)->task)
#define put_thread_info(ti) put_task_struct((ti)->task)
#define thread_saved_pc(tsk) (pc_pointer((tsk)->thread_info->cpu_context.pc))
#define thread_saved_pc(tsk) \
#define thread_saved_fp(tsk) ((tsk)->thread_info->cpu_context.fp)
((unsigned long)(pc_pointer((tsk)->thread_info->cpu_context.pc)))
#define thread_saved_fp(tsk) \
((unsigned long)((tsk)->thread_info->cpu_context.fp))
#else
/* !__ASSEMBLY__ */
#else
/* !__ASSEMBLY__ */
...
...
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