Compile cbmem.c instead of including it in romstage,
and do that only if resume is done. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6174 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
c4369536da
commit
475916ddbf
|
@ -49,8 +49,9 @@ void *cbmem_find(u32 id);
|
||||||
void cbmem_list(void);
|
void cbmem_list(void);
|
||||||
void cbmem_arch_init(void);
|
void cbmem_arch_init(void);
|
||||||
|
|
||||||
|
extern struct cbmem_entry *get_cbmem_toc(void);
|
||||||
|
|
||||||
#ifndef __PRE_RAM__
|
#ifndef __PRE_RAM__
|
||||||
struct cbmem_entry *get_cbmem_toc(void);
|
|
||||||
void set_cbmem_toc(struct cbmem_entry *);
|
void set_cbmem_toc(struct cbmem_entry *);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -15,6 +15,7 @@ ramstage-y += lzma.c
|
||||||
ramstage-y += gcc.c
|
ramstage-y += gcc.c
|
||||||
ramstage-y += cbmem.c
|
ramstage-y += cbmem.c
|
||||||
|
|
||||||
|
romstage-$(CONFIG_HAVE_ACPI_RESUME) += cbmem.c
|
||||||
romstage-y += uart8250.c
|
romstage-y += uart8250.c
|
||||||
romstage-y += memset.c
|
romstage-y += memset.c
|
||||||
romstage-y += memcpy.c
|
romstage-y += memcpy.c
|
||||||
|
|
|
@ -48,6 +48,13 @@ void __attribute__((weak)) set_cbmem_toc(struct cbmem_entry * x)
|
||||||
{
|
{
|
||||||
/* do nothing, this should be called by chipset to save TOC in NVRAM */
|
/* do nothing, this should be called by chipset to save TOC in NVRAM */
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
|
struct cbmem_entry *__attribute__((weak)) get_cbmem_toc(void)
|
||||||
|
{
|
||||||
|
printk(BIOS_WARNING, "WARNING: you need to define get_cbmem_toc() for your chipset\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -74,15 +74,6 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
||||||
|
|
||||||
#define SB_VFSMAF 0
|
#define SB_VFSMAF 0
|
||||||
|
|
||||||
|
|
||||||
// Now, this needs to be included because it relies on the symbol
|
|
||||||
// __PRE_RAM__ being set during CAR stage (in order to compile the
|
|
||||||
// BSS free versions of the functions). Either rewrite the code
|
|
||||||
// to be always BSS free, or invent a flag that's better suited than
|
|
||||||
// __PRE_RAM__ to determine whether we're in ram init stage (stage 1)
|
|
||||||
//
|
|
||||||
#include "lib/cbmem.c"
|
|
||||||
|
|
||||||
/* this function might fail on some K8 CPUs with errata #181 */
|
/* this function might fail on some K8 CPUs with errata #181 */
|
||||||
static void ldtstop_sb(void)
|
static void ldtstop_sb(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -73,15 +73,6 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
||||||
#include "cpu/amd/dualcore/dualcore.c"
|
#include "cpu/amd/dualcore/dualcore.c"
|
||||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||||
#include "cpu/amd/model_fxx/init_cpus.c"
|
#include "cpu/amd/model_fxx/init_cpus.c"
|
||||||
|
|
||||||
// Now, this needs to be included because it relies on the symbol
|
|
||||||
// __PRE_RAM__ being set during CAR stage (in order to compile the
|
|
||||||
// BSS free versions of the functions). Either rewrite the code
|
|
||||||
// to be always BSS free, or invent a flag that's better suited than
|
|
||||||
// __PRE_RAM__ to determine whether we're in ram init stage (stage 1)
|
|
||||||
//
|
|
||||||
#include "lib/cbmem.c"
|
|
||||||
|
|
||||||
#include "cpu/amd/model_fxx/fidvid.c"
|
#include "cpu/amd/model_fxx/fidvid.c"
|
||||||
#include "northbridge/amd/amdk8/resourcemap.c"
|
#include "northbridge/amd/amdk8/resourcemap.c"
|
||||||
|
|
||||||
|
|
|
@ -262,14 +262,6 @@ static void early_ich7_init(void)
|
||||||
|
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
|
|
||||||
// Now, this needs to be included because it relies on the symbol
|
|
||||||
// __PRE_RAM_ being set during CAR stage (in order to compile the
|
|
||||||
// BSS free versions of the functions). Either rewrite the code
|
|
||||||
// to be always BSS free, or invent a flag that's better suited than
|
|
||||||
// __PRE_RAM__ to determine whether we're in ram init stage (stage 1)
|
|
||||||
//
|
|
||||||
#include "lib/cbmem.c"
|
|
||||||
|
|
||||||
void main(unsigned long bist)
|
void main(unsigned long bist)
|
||||||
{
|
{
|
||||||
u32 reg32;
|
u32 reg32;
|
||||||
|
|
|
@ -225,14 +225,6 @@ static void early_ich7_init(void)
|
||||||
|
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
|
|
||||||
// Now, this needs to be included because it relies on the symbol
|
|
||||||
// __PRE_RAM__ being set during CAR stage (in order to compile the
|
|
||||||
// BSS free versions of the functions). Either rewrite the code
|
|
||||||
// to be always BSS free, or invent a flag that's better suited than
|
|
||||||
// __PRE_RAM__ to determine whether we're in ram init stage (stage 1)
|
|
||||||
//
|
|
||||||
#include "lib/cbmem.c"
|
|
||||||
|
|
||||||
void main(unsigned long bist)
|
void main(unsigned long bist)
|
||||||
{
|
{
|
||||||
u32 reg32;
|
u32 reg32;
|
||||||
|
|
|
@ -186,14 +186,6 @@ static void early_ich7_init(void)
|
||||||
|
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
|
|
||||||
// Now, this needs to be included because it relies on the symbol
|
|
||||||
// __PRE_RAM__ being set during CAR stage (in order to compile the
|
|
||||||
// BSS free versions of the functions). Either rewrite the code
|
|
||||||
// to be always BSS free, or invent a flag that's better suited than
|
|
||||||
// __PRE_RAM__ to determine whether we're in ram init stage (stage 1)
|
|
||||||
//
|
|
||||||
#include "lib/cbmem.c"
|
|
||||||
|
|
||||||
void main(unsigned long bist)
|
void main(unsigned long bist)
|
||||||
{
|
{
|
||||||
u32 reg32;
|
u32 reg32;
|
||||||
|
|
|
@ -314,14 +314,6 @@ static void early_ich7_init(void)
|
||||||
|
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
|
|
||||||
// Now, this needs to be included because it relies on the symbol
|
|
||||||
// __PRE_RAM__ being set during CAR stage (in order to compile the
|
|
||||||
// BSS free versions of the functions). Either rewrite the code
|
|
||||||
// to be always BSS free, or invent a flag that's better suited than
|
|
||||||
// __PRE_RAM__ to determine whether we're in ram init stage (stage 1)
|
|
||||||
//
|
|
||||||
#include "lib/cbmem.c"
|
|
||||||
|
|
||||||
void main(unsigned long bist)
|
void main(unsigned long bist)
|
||||||
{
|
{
|
||||||
u32 reg32;
|
u32 reg32;
|
||||||
|
|
|
@ -235,14 +235,6 @@ static void init_artec_dongle(void)
|
||||||
|
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
|
|
||||||
// Now, this needs to be included because it relies on the symbol
|
|
||||||
// __PRE_RAM__ being set during CAR stage (in order to compile the
|
|
||||||
// BSS free versions of the functions). Either rewrite the code
|
|
||||||
// to be always BSS free, or invent a flag that's better suited than
|
|
||||||
// __PRE_RAM__ to determine whether we're in ram init stage (stage 1)
|
|
||||||
//
|
|
||||||
#include "lib/cbmem.c"
|
|
||||||
|
|
||||||
void main(unsigned long bist)
|
void main(unsigned long bist)
|
||||||
{
|
{
|
||||||
u32 reg32;
|
u32 reg32;
|
||||||
|
|
Loading…
Reference in New Issue