summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/baytrail/baytrail/mrc_wrapper.h7
-rw-r--r--src/soc/intel/baytrail/romstage/raminit.c7
2 files changed, 11 insertions, 3 deletions
diff --git a/src/soc/intel/baytrail/baytrail/mrc_wrapper.h b/src/soc/intel/baytrail/baytrail/mrc_wrapper.h
index 556746bb53..858aab887c 100644
--- a/src/soc/intel/baytrail/baytrail/mrc_wrapper.h
+++ b/src/soc/intel/baytrail/baytrail/mrc_wrapper.h
@@ -32,6 +32,9 @@
#define NUM_CHANNELS 2
+/* Provide generic x86 calling conventions. */
+#define ABI_X86 __attribute((regparm(0)))
+
enum {
DRAM_INFO_SPD_SMBUS, /* Use the typical SPD smbus access. */
DRAM_INFO_SPD_MEM, /* SPD info in memory. */
@@ -67,7 +70,7 @@ struct mrc_params {
struct mrc_mainboard_params mainboard;
- void (*console_out)(unsigned char byte);
+ void ABI_X86 (*console_out)(unsigned char byte);
int prev_sleep_state;
@@ -83,6 +86,6 @@ struct mrc_params {
} __attribute__((packed));
/* 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_ */
diff --git a/src/soc/intel/baytrail/romstage/raminit.c b/src/soc/intel/baytrail/romstage/raminit.c
index 68836d3ada..cf9ccfd1d6 100644
--- a/src/soc/intel/baytrail/romstage/raminit.c
+++ b/src/soc/intel/baytrail/romstage/raminit.c
@@ -52,6 +52,11 @@ static void enable_smbus(void)
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)
{
int ret;
@@ -60,7 +65,7 @@ void raminit(struct mrc_params *mp, int prev_sleep_state)
/* Fill in default entries. */
mp->version = MRC_PARAMS_VER;
- mp->console_out = &console_tx_byte;
+ mp->console_out = &send_to_console;
mp->prev_sleep_state = prev_sleep_state;
if (!mrc_cache_get_current(&cache)) {