Add support to run SMM handler in TSEG instead of ASEG
Traditionally coreboot's SMM handler runs in ASEG (0xa0000), "behind" the graphics memory. This approach has two issues: - It limits the possible size of the SMM handler (and the number of CPUs supported in a system) - It's not considered a supported path anymore in newer CPUs. Change-Id: I9f2877e46873ab2ea8f1157ead4bc644a50be19e Signed-off-by: Duncan Laurie <dlaurie@google.com> Acked-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/842 Reviewed-by: Peter Stuge <peter@stuge.se> Tested-by: build bot (Jenkins)
This commit is contained in:
committed by
Peter Stuge
parent
6efbebdb58
commit
3aa067f595
@ -6,6 +6,7 @@
|
||||
|
||||
#include <string.h>
|
||||
#include <div64.h>
|
||||
#include <console/console.h>
|
||||
#include <console/vtxprintf.h>
|
||||
|
||||
/* haha, don't need ctype.c */
|
||||
@ -115,6 +116,11 @@ int vtxprintf(void (*tx_byte)(unsigned char byte), const char *fmt, va_list args
|
||||
|
||||
int count;
|
||||
|
||||
#if defined(__SMM__) && CONFIG_SMM_TSEG
|
||||
/* Fix pointer in TSEG */
|
||||
tx_byte = console_tx_byte;
|
||||
#endif
|
||||
|
||||
for (count=0; *fmt ; ++fmt) {
|
||||
if (*fmt != '%') {
|
||||
tx_byte(*fmt), count++;
|
||||
|
Reference in New Issue
Block a user