aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorMarc Singer <elf@com.rmk.(none)>2004-06-15 17:50:19 +0100
committerRussell King <rmk@flint.arm.linux.org.uk>2004-06-15 17:50:19 +0100
commit1d4e3016585d5c042e5393b974d16107eebd3a06 (patch)
tree2f4f6fa725c4fcb30172cf1ba8a1fb014f0dcfc0 /Documentation
parenta2ecd1a8b835ffd585bd3800660dba54878473e1 (diff)
downloadhistory-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/SDRAM51
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.