baytrail: import and use updated mrc_wrapper.h

The mrc_wrapper.h was changed to protect against ABI differences
between the two sets of compilers and flags used. This requires
a prope shim for the console output funciton.

BUG=chrome-os-partner:23048
BRANCH=None
TEST=Built and booted successfully.

Change-Id: I976e692e66dcfc0eacadae6173abfd9b81e31137
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/171580
Reviewed-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: http://review.coreboot.org/4858
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Aaron Durbin 2013-10-02 11:06:31 -05:00 committed by Aaron Durbin
parent c04e171467
commit 833ff353b7
2 changed files with 11 additions and 3 deletions

View File

@ -32,6 +32,9 @@
#define NUM_CHANNELS 2 #define NUM_CHANNELS 2
/* Provide generic x86 calling conventions. */
#define ABI_X86 __attribute((regparm(0)))
enum { enum {
DRAM_INFO_SPD_SMBUS, /* Use the typical SPD smbus access. */ DRAM_INFO_SPD_SMBUS, /* Use the typical SPD smbus access. */
DRAM_INFO_SPD_MEM, /* SPD info in memory. */ DRAM_INFO_SPD_MEM, /* SPD info in memory. */
@ -67,7 +70,7 @@ struct mrc_params {
struct mrc_mainboard_params mainboard; struct mrc_mainboard_params mainboard;
void (*console_out)(unsigned char byte); void ABI_X86 (*console_out)(unsigned char byte);
int prev_sleep_state; int prev_sleep_state;
@ -83,6 +86,6 @@ struct mrc_params {
} __attribute__((packed)); } __attribute__((packed));
/* Call into wrapper. */ /* Call into wrapper. */
typedef int (*mrc_wrapper_entry_t)(struct mrc_params *); typedef int ABI_X86 (*mrc_wrapper_entry_t)(struct mrc_params *);
#endif /* _MRC_WRAPPER_H_ */ #endif /* _MRC_WRAPPER_H_ */

View File

@ -52,6 +52,11 @@ static void enable_smbus(void)
score_select_func(PCU_SMB_DATA_PAD, 1); score_select_func(PCU_SMB_DATA_PAD, 1);
} }
static void ABI_X86 send_to_console(unsigned char b)
{
console_tx_byte(b);
}
void raminit(struct mrc_params *mp, int prev_sleep_state) void raminit(struct mrc_params *mp, int prev_sleep_state)
{ {
int ret; int ret;
@ -60,7 +65,7 @@ void raminit(struct mrc_params *mp, int prev_sleep_state)
/* Fill in default entries. */ /* Fill in default entries. */
mp->version = MRC_PARAMS_VER; mp->version = MRC_PARAMS_VER;
mp->console_out = &console_tx_byte; mp->console_out = &send_to_console;
mp->prev_sleep_state = prev_sleep_state; mp->prev_sleep_state = prev_sleep_state;
if (!mrc_cache_get_current(&cache)) { if (!mrc_cache_get_current(&cache)) {