src: Remove some romcc workarounds

Now that romcc is gone, move cmos_post_init() into post.c, and remove
some preprocessor workarounds.

Change-Id: I0ee4551e476cdd1102e86e7efc74d5909f64a37b
Signed-off-by: Jacob Garber <jgarber1@ualberta.ca>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37950
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr>
This commit is contained in:
Jacob Garber 2019-12-27 14:18:32 -07:00 committed by Patrick Georgi
parent d225834220
commit 4a216475f5
4 changed files with 27 additions and 32 deletions

View File

@ -82,6 +82,30 @@ void cmos_post_log(void)
} }
} }
void cmos_post_init(void)
{
u8 magic = CMOS_POST_BANK_0_MAGIC;
/* Switch to the other bank */
switch (cmos_read(CMOS_POST_BANK_OFFSET)) {
case CMOS_POST_BANK_1_MAGIC:
break;
case CMOS_POST_BANK_0_MAGIC:
magic = CMOS_POST_BANK_1_MAGIC;
break;
default:
/* Initialize to zero */
cmos_write(0, CMOS_POST_BANK_0_OFFSET);
cmos_write(0, CMOS_POST_BANK_1_OFFSET);
#if CONFIG(CMOS_POST_EXTRA)
cmos_write32(CMOS_POST_BANK_0_EXTRA, 0);
cmos_write32(CMOS_POST_BANK_1_EXTRA, 0);
#endif
}
cmos_write(magic, CMOS_POST_BANK_OFFSET);
}
#if CONFIG(CMOS_POST_EXTRA) #if CONFIG(CMOS_POST_EXTRA)
void post_log_extra(u32 value) void post_log_extra(u32 value)
{ {

View File

@ -223,32 +223,7 @@ int do_normal_boot(void);
#define CMOS_POST_EXTRA_DEV_PATH 0x01 #define CMOS_POST_EXTRA_DEV_PATH 0x01
void cmos_post_log(void); void cmos_post_log(void);
void cmos_post_init(void);
/* cmos_post_init() is exposed in this manner because it also needs to be called
* by bootblock code compiled by romcc. */
static inline void cmos_post_init(void)
{
u8 magic = CMOS_POST_BANK_0_MAGIC;
/* Switch to the other bank */
switch (cmos_read(CMOS_POST_BANK_OFFSET)) {
case CMOS_POST_BANK_1_MAGIC:
break;
case CMOS_POST_BANK_0_MAGIC:
magic = CMOS_POST_BANK_1_MAGIC;
break;
default:
/* Initialize to zero */
cmos_write(0, CMOS_POST_BANK_0_OFFSET);
cmos_write(0, CMOS_POST_BANK_1_OFFSET);
#if CONFIG(CMOS_POST_EXTRA)
cmos_write32(CMOS_POST_BANK_0_EXTRA, 0);
cmos_write32(CMOS_POST_BANK_1_EXTRA, 0);
#endif
}
cmos_write(magic, CMOS_POST_BANK_OFFSET);
}
#else #else
static inline void cmos_post_log(void) {} static inline void cmos_post_log(void) {}
static inline void cmos_post_init(void) {} static inline void cmos_post_init(void) {}

View File

@ -14,9 +14,7 @@
#include <arch/bootblock.h> #include <arch/bootblock.h>
#include <device/pci_ops.h> #include <device/pci_ops.h>
/* Just re-define these instead of including gm45.h. It blows up romcc. */ #include "gm45.h"
#define D0F0_PCIEXBAR_LO 0x60
#define D0F0_PCIEXBAR_HI 0x64
void bootblock_early_northbridge_init(void) void bootblock_early_northbridge_init(void)
{ {

View File

@ -31,9 +31,7 @@
#define PC87417_RTC 0x10 #define PC87417_RTC 0x10
#define PC87417_GPIO_DEV PNP_DEV(0x2e, PC87417_GPIO) #define PC87417_GPIO_DEV PNP_DEV(0x2e, PC87417_GPIO)
/* This is to get around a romcc bug */ #define PC87417_XBUS_DEV PNP_DEV(0x2e, PC87417_XBUS)
/* #define PC87417_XBUS_DEV PNP_DEV(0x2e, PC87417_XBUS) */
#define PC87417_XBUS_DEV PNP_DEV(0x2e, 0x0f)
#define PC87417_GPSEL 0xf0 #define PC87417_GPSEL 0xf0
#define PC87417_GPCFG1 0xf1 #define PC87417_GPCFG1 0xf1