Magellan Linux

Annotation of /alx-src/trunk/kernel26-alx/linux/Documentation/arm/Porting

Parent Directory Parent Directory | Revision Log Revision Log


Revision 628 - (hide annotations) (download)
Wed Mar 4 10:48:58 2009 UTC (15 years, 2 months ago) by niro
File size: 4488 byte(s)
import linux sources based on 2.6.12-alx-r9:
 -using linux-2.6.12.6
 -using 2.6.12-ck6 patch set
 -using fbsplash-0.9.2-r3
 -using vesafb-tng-0.9-rc7
 -using squashfs-2.2
 -added cddvd-cmdfilter-drop.patch as ck dropped it
 -added via-epia-dri (cle266) patch
 -added zd1211-svn-32 wlan driver (http://zd1211.ath.cx/download/)
 -added debian patches to zd1211 for wep256 etc

1 niro 628 Taken from list archive at http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2001-July/004064.html
2    
3     Initial definitions
4     -------------------
5    
6     The following symbol definitions rely on you knowing the translation that
7     __virt_to_phys() does for your machine. This macro converts the passed
8     virtual address to a physical address. Normally, it is simply:
9    
10     phys = virt - PAGE_OFFSET + PHYS_OFFSET
11    
12    
13     Decompressor Symbols
14     --------------------
15    
16     ZTEXTADDR
17     Start address of decompressor. There's no point in talking about
18     virtual or physical addresses here, since the MMU will be off at
19     the time when you call the decompressor code. You normally call
20     the kernel at this address to start it booting. This doesn't have
21     to be located in RAM, it can be in flash or other read-only or
22     read-write addressable medium.
23    
24     ZBSSADDR
25     Start address of zero-initialised work area for the decompressor.
26     This must be pointing at RAM. The decompressor will zero initialise
27     this for you. Again, the MMU will be off.
28    
29     ZRELADDR
30     This is the address where the decompressed kernel will be written,
31     and eventually executed. The following constraint must be valid:
32    
33     __virt_to_phys(TEXTADDR) == ZRELADDR
34    
35     The initial part of the kernel is carefully coded to be position
36     independent.
37    
38     INITRD_PHYS
39     Physical address to place the initial RAM disk. Only relevant if
40     you are using the bootpImage stuff (which only works on the old
41     struct param_struct).
42    
43     INITRD_VIRT
44     Virtual address of the initial RAM disk. The following constraint
45     must be valid:
46    
47     __virt_to_phys(INITRD_VIRT) == INITRD_PHYS
48    
49     PARAMS_PHYS
50     Physical address of the struct param_struct or tag list, giving the
51     kernel various parameters about its execution environment.
52    
53    
54     Kernel Symbols
55     --------------
56    
57     PHYS_OFFSET
58     Physical start address of the first bank of RAM.
59    
60     PAGE_OFFSET
61     Virtual start address of the first bank of RAM. During the kernel
62     boot phase, virtual address PAGE_OFFSET will be mapped to physical
63     address PHYS_OFFSET, along with any other mappings you supply.
64     This should be the same value as TASK_SIZE.
65    
66     TASK_SIZE
67     The maximum size of a user process in bytes. Since user space
68     always starts at zero, this is the maximum address that a user
69     process can access+1. The user space stack grows down from this
70     address.
71    
72     Any virtual address below TASK_SIZE is deemed to be user process
73     area, and therefore managed dynamically on a process by process
74     basis by the kernel. I'll call this the user segment.
75    
76     Anything above TASK_SIZE is common to all processes. I'll call
77     this the kernel segment.
78    
79     (In other words, you can't put IO mappings below TASK_SIZE, and
80     hence PAGE_OFFSET).
81    
82     TEXTADDR
83     Virtual start address of kernel, normally PAGE_OFFSET + 0x8000.
84     This is where the kernel image ends up. With the latest kernels,
85     it must be located at 32768 bytes into a 128MB region. Previous
86     kernels placed a restriction of 256MB here.
87    
88     DATAADDR
89     Virtual address for the kernel data segment. Must not be defined
90     when using the decompressor.
91    
92     VMALLOC_START
93     VMALLOC_END
94     Virtual addresses bounding the vmalloc() area. There must not be
95     any static mappings in this area; vmalloc will overwrite them.
96     The addresses must also be in the kernel segment (see above).
97     Normally, the vmalloc() area starts VMALLOC_OFFSET bytes above the
98     last virtual RAM address (found using variable high_memory).
99    
100     VMALLOC_OFFSET
101     Offset normally incorporated into VMALLOC_START to provide a hole
102     between virtual RAM and the vmalloc area. We do this to allow
103     out of bounds memory accesses (eg, something writing off the end
104     of the mapped memory map) to be caught. Normally set to 8MB.
105    
106     Architecture Specific Macros
107     ----------------------------
108    
109     BOOT_MEM(pram,pio,vio)
110     `pram' specifies the physical start address of RAM. Must always
111     be present, and should be the same as PHYS_OFFSET.
112    
113     `pio' is the physical address of an 8MB region containing IO for
114     use with the debugging macros in arch/arm/kernel/debug-armv.S.
115    
116     `vio' is the virtual address of the 8MB debugging region.
117    
118     It is expected that the debugging region will be re-initialised
119     by the architecture specific code later in the code (via the
120     MAPIO function).
121    
122     BOOT_PARAMS
123     Same as, and see PARAMS_PHYS.
124    
125     FIXUP(func)
126     Machine specific fixups, run before memory subsystems have been
127     initialised.
128    
129     MAPIO(func)
130     Machine specific function to map IO areas (including the debug
131     region above).
132    
133     INITIRQ(func)
134     Machine specific function to initialise interrupts.
135