1 |
1275 |
phoenix |
/*
|
2 |
|
|
* linux/arch/arm/mach-clps711x/mm.c
|
3 |
|
|
*
|
4 |
|
|
* Extra MM routines for the EDB7211 board
|
5 |
|
|
*
|
6 |
|
|
* Copyright (C) 2000, 2001 Blue Mug, Inc. All Rights Reserved.
|
7 |
|
|
*
|
8 |
|
|
* This program is free software; you can redistribute it and/or modify
|
9 |
|
|
* it under the terms of the GNU General Public License as published by
|
10 |
|
|
* the Free Software Foundation; either version 2 of the License, or
|
11 |
|
|
* (at your option) any later version.
|
12 |
|
|
*
|
13 |
|
|
* This program is distributed in the hope that it will be useful,
|
14 |
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15 |
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16 |
|
|
* GNU General Public License for more details.
|
17 |
|
|
*
|
18 |
|
|
* You should have received a copy of the GNU General Public License
|
19 |
|
|
* along with this program; if not, write to the Free Software
|
20 |
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
21 |
|
|
*/
|
22 |
|
|
#include <linux/sched.h>
|
23 |
|
|
#include <linux/mm.h>
|
24 |
|
|
#include <linux/init.h>
|
25 |
|
|
|
26 |
|
|
#include <asm/hardware.h>
|
27 |
|
|
#include <asm/pgtable.h>
|
28 |
|
|
#include <asm/page.h>
|
29 |
|
|
|
30 |
|
|
#include <asm/mach/map.h>
|
31 |
|
|
|
32 |
|
|
#define MB1 1048576 /* one megabyte == size of an MMU section */
|
33 |
|
|
|
34 |
|
|
extern void clps711x_map_io(void);
|
35 |
|
|
|
36 |
|
|
/*
|
37 |
|
|
* The on-chip registers are given a size of 1MB so that a section can
|
38 |
|
|
* be used to map them; this saves a page table. This is the place to
|
39 |
|
|
* add mappings for ROM, expansion memory, PCMCIA, etc. (if static
|
40 |
|
|
* mappings are chosen for those areas).
|
41 |
|
|
*
|
42 |
|
|
* Here is a physical memory map (to be fleshed out later):
|
43 |
|
|
*
|
44 |
|
|
* Physical Address Size Description
|
45 |
|
|
* ----------------- ----- ---------------------------------
|
46 |
|
|
* c0000000-c001ffff 128KB reserved for video RAM [1]
|
47 |
|
|
* c0020000-c0023fff 16KB parameters (see Documentation/arm/Setup)
|
48 |
|
|
* c0024000-c0027fff 16KB swapper_pg_dir (task 0 page directory)
|
49 |
|
|
* c0028000-... kernel image (TEXTADDR)
|
50 |
|
|
*
|
51 |
|
|
* [1] Unused pages should be given back to the VM; they are not yet.
|
52 |
|
|
* The parameter block should also be released (not sure if this
|
53 |
|
|
* happens).
|
54 |
|
|
*/
|
55 |
|
|
static struct map_desc edb7211_io_desc[] __initdata = {
|
56 |
|
|
/* virtual, physical, length, domain, r, w, c, b */
|
57 |
|
|
|
58 |
|
|
/* memory-mapped extra keyboard row and CS8900A Ethernet chip */
|
59 |
|
|
{ EP7211_VIRT_EXTKBD, EP7211_PHYS_EXTKBD, MB1, DOMAIN_IO, 1, 1, 0, 0 },
|
60 |
|
|
{ EP7211_VIRT_CS8900A, EP7211_PHYS_CS8900A, MB1, DOMAIN_IO, 1, 1, 0, 0 },
|
61 |
|
|
|
62 |
|
|
/* flash banks */
|
63 |
|
|
{ EP7211_VIRT_FLASH1, EP7211_PHYS_FLASH1, MB1 * 8, DOMAIN_KERNEL, 1, 1, 0, 0 },
|
64 |
|
|
{ EP7211_VIRT_FLASH2, EP7211_PHYS_FLASH2, MB1 * 8, DOMAIN_KERNEL, 1, 1, 0, 0 },
|
65 |
|
|
|
66 |
|
|
LAST_DESC
|
67 |
|
|
};
|
68 |
|
|
|
69 |
|
|
void __init edb7211_map_io(void)
|
70 |
|
|
{
|
71 |
|
|
clps711x_map_io();
|
72 |
|
|
iotable_init(edb7211_io_desc);
|
73 |
|
|
}
|
74 |
|
|
|