diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2009-09-23 18:51:03 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2009-09-23 18:51:03 +0000 |
commit | c13093b1484565382bd5e00722149442e46635ee (patch) | |
tree | a819bd3d19560221155eeb5a8cb58149737131be /src/lib/generic_sdram.c | |
parent | a946214ea09d4ca89a575525d0ae0469526e7dcc (diff) | |
download | coreboot-staging-c13093b1484565382bd5e00722149442e46635ee.zip coreboot-staging-c13093b1484565382bd5e00722149442e46635ee.tar.gz |
simplify source tree hierarchy: move files from sdram/ and ram/ to lib/
It's only three files. Also fix up all the paths (Gotta love included C files)
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4661 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/lib/generic_sdram.c')
-rw-r--r-- | src/lib/generic_sdram.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/lib/generic_sdram.c b/src/lib/generic_sdram.c new file mode 100644 index 0000000..cdb06cd --- /dev/null +++ b/src/lib/generic_sdram.c @@ -0,0 +1,67 @@ + +#ifndef RAMINIT_SYSINFO + #define RAMINIT_SYSINFO 0 +#endif + +static inline void print_debug_sdram_8(const char *strval, uint32_t val) +{ +#if CONFIG_USE_INIT + printk_debug("%s%02x\r\n", strval, val); +#else + print_debug(strval); print_debug_hex8(val); print_debug("\r\n"); +#endif +} + +void sdram_no_memory(void) +{ + print_err("No memory!!\r\n"); + while(1) { + hlt(); + } +} + +/* Setup SDRAM */ +#if RAMINIT_SYSINFO == 1 +void sdram_initialize(int controllers, const struct mem_controller *ctrl, void *sysinfo) +#else +void sdram_initialize(int controllers, const struct mem_controller *ctrl) +#endif +{ + int i; + /* Set the registers we can set once to reasonable values */ + for(i = 0; i < controllers; i++) { + print_debug_sdram_8("Ram1.",i); + + #if RAMINIT_SYSINFO == 1 + sdram_set_registers(ctrl + i , sysinfo); + #else + sdram_set_registers(ctrl + i); + #endif + } + + /* Now setup those things we can auto detect */ + for(i = 0; i < controllers; i++) { + print_debug_sdram_8("Ram2.",i); + + #if RAMINIT_SYSINFO == 1 + sdram_set_spd_registers(ctrl + i , sysinfo); + #else + sdram_set_spd_registers(ctrl + i); + #endif + + } + + /* Now that everything is setup enable the SDRAM. + * Some chipsets do the work for us while on others + * we need to it by hand. + */ + print_debug("Ram3\r\n"); + + #if RAMINIT_SYSINFO == 1 + sdram_enable(controllers, ctrl, sysinfo); + #else + sdram_enable(controllers, ctrl); + #endif + + print_debug("Ram4\r\n"); +} |