diff options
author | Marc Singer <elf@com.rmk.(none)> | 2004-06-15 17:50:19 +0100 |
---|---|---|
committer | Russell King <rmk@flint.arm.linux.org.uk> | 2004-06-15 17:50:19 +0100 |
commit | 1d4e3016585d5c042e5393b974d16107eebd3a06 (patch) | |
tree | 2f4f6fa725c4fcb30172cf1ba8a1fb014f0dcfc0 /Documentation | |
parent | a2ecd1a8b835ffd585bd3800660dba54878473e1 (diff) | |
download | history-1d4e3016585d5c042e5393b974d16107eebd3a06.tar.gz |
[ARM PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM
Patch from Marc Singer
[if's replaced by ifdef's.]
While the BLOB boot loader doesn't support it, there are two others,
UBOOT and Logic's LOLO, that will initialize the SDRAM controller such
that the memory appears as a contiguous region. This layout to be
required for WinCE and, thus, is the default for these loaders. The
memory organization had been optimized for discontiguous blocks. Now,
it supports a default mode that is compatible with all of the
bootloaders as well as options to optimize for either contiguous or
discontiguous models.
Withing, there is also a slight change to the way that the DEBUG_LL
macros select the UART address. Now it uses immediate constants
exclusively.
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/arm/Sharp-LH/SDRAM | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Documentation/arm/Sharp-LH/SDRAM b/Documentation/arm/Sharp-LH/SDRAM new file mode 100644 index 00000000000000..93ddc23c2faa52 --- /dev/null +++ b/Documentation/arm/Sharp-LH/SDRAM @@ -0,0 +1,51 @@ +README on the SDRAM Controller for the LH7a40X +============================================== + +The standard configuration for the SDRAM controller generates a sparse +memory array. The precise layout is determined by the SDRAM chips. A +default kernel configuration assembles the discontiguous memory +regions into separate memory nodes via the NUMA (Non-Uniform Memory +Architecture) facilities. In this default configuration, the kernel +is forgiving about the precise layout. As long as it is given an +accurate picture of available memory by the bootloader the kernel will +execute correctly. + +The SDRC supports a mode where some of the chip select lines are +swapped in order to make SDRAM look like a synchronous ROM. Setting +this bit means that the RAM will present as a contiguous array. Some +programmers prefer this to the discontiguous layout. Be aware that +may be a penalty for this feature where some some configurations of +memory are significantly reduced; i.e. 64MiB of RAM appears as only 32 +MiB. + +There are a couple of configuration options to override the default +behavior. When the SROMLL bit is set and memory appears as a +contiguous array, there is no reason to support NUMA. +CONFIG_LH7A40X_CONTIGMEM disables NUMA support. When physical memory +is discontiguous, the memory tables are organized such that there are +two banks per nodes with a small gap between them. This layout wastes +some kernel memory for page tables representing non-existent memory. +CONFIG_LH7A40X_ONE_BANK_PER_NODE optimizes the node tables such that +there are no gaps. These options control the low level organization +of the memory management tables in ways that may prevent the kernel +from booting or may cause the kernel to allocated excessively large +page tables. Be warned. Only change these options if you know what +you are doing. The default behavior is a reasonable compromise that +will suit all users. + +-- + +A typical 32MiB system with the default configuration options will +find physical memory managed as follows. + + node 0: 0xc0000000 4MiB + 0xc1000000 4MiB + node 1: 0xc4000000 4MiB + 0xc5000000 4MiB + node 2: 0xc8000000 4MiB + 0xc9000000 4MiB + node 3: 0xcc000000 4MiB + 0xcd000000 4MiB + +Setting CONFIG_LH7A40X_ONE_BANK_PER_NODE will put each bank into a +separate node. |