[PATCH] m68knommu: create configurable RAM setup
Greg Ungerer [Mon, 26 Jun 2006 06:32:59 +0000 (16:32 +1000)]
Reworked the way RAM regions are defined. Instead of coding all the
variations for each board type we now just configure RAM base and size
in the usual Kconfig setup. This much simplifies the code, and makes it
a lot more flexible when setting up new boards or board varients.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

arch/m68knommu/Kconfig

index 6c6980b..8b6e723 100644 (file)
@@ -472,38 +472,46 @@ config 4KSTACKS
          running more threads on a system and also reduces the pressure
          on the VM subsystem for higher order allocations.
 
-choice
-       prompt "RAM size"
-       default AUTO
-
-config RAMAUTO
-       bool "AUTO"
-       ---help---
-         Configure the RAM size on your platform. Many platforms can auto
-         detect this, on those choose the AUTO option. Otherwise set the
-         RAM size you intend using.
-
-config RAM4MB
-       bool "4MiB"
-       help
-         Set RAM size to be 4MiB.
-
-config RAM8MB
-       bool "8MiB"
-       help
-         Set RAM size to be 8MiB.
-
-config RAM16MB
-       bool "16MiB"
-       help
-         Set RAM size to be 16MiB.
-
-config RAM32MB
-       bool "32MiB"
-       help
-         Set RAM size to be 32MiB.
-
-endchoice
+comment "RAM configuration"
+
+config RAMBASE
+       hex "Address of the base of RAM"
+       default "0"
+       help
+         Define the address that RAM starts at. On many platforms this is
+         0, the base of the address space. And this is the default. Some
+         platforms choose to setup their RAM at other addresses within the
+         processor address space.
+
+config RAMSIZE
+       hex "Size of RAM (in bytes)"
+       default "0x400000"
+       help
+         Define the size of the system RAM. If you select 0 then the
+         kernel will try to probe the RAM size at runtime. This is not
+         supported on all CPU types.
+
+config VECTORBASE
+       hex "Address of the base of system vectors"
+       default "0"
+       help
+         Define the address of the the system vectors. Commonly this is
+         put at the start of RAM, but it doesn't have to be. On ColdFire
+         platforms this address is programmed into the VBR register, thus
+         actually setting the address to use.
+
+config KERNELBASE
+       hex "Address of the base of kernel code"
+       default "0x400"
+       help
+         Typically on m68k systems the kernel will not start at the base
+         of RAM, but usually some small offset from it. Define the start
+         address of the kernel here. The most common setup will have the
+         processor vectors at the base of RAM and then the start of the
+         kernel. On some platforms some RAM is reserved for boot loaders
+         and the kernel starts after that. The 0x400 default was based on
+         a system with the RAM based at address 0, and leaving enough room
+         for the theoretical maximum number of 256 vectors.
 
 choice
        prompt "RAM bus width"
@@ -511,7 +519,7 @@ choice
 
 config RAMAUTOBIT
        bool "AUTO"
-       ---help---
+       help
          Select the physical RAM data bus size. Not needed on most platforms,
          so you can generally choose AUTO.
 
@@ -545,7 +553,9 @@ config RAMKERNEL
 config ROMKERNEL
        bool "ROM"
        help
-         The kernel will be resident in FLASH/ROM when running.
+         The kernel will be resident in FLASH/ROM when running. This is
+         often referred to as Execute-in-Place (XIP), since the kernel
+         code executes from the position it is stored in the FLASH/ROM.
 
 endchoice