yabel: Use X86_* instead of the more verbose M.x86.REG_*
Makes it more similar to what realmode looks like. Change-Id: I4407431f2d979c43dd186114d67ed11845907afe Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Reviewed-on: http://review.coreboot.org/1892 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
199b09cb7a
commit
3c84261e84
|
@ -40,17 +40,17 @@ static int int15_handler(void)
|
|||
#define BOOT_DISPLAY_LCD2 (1 << 7)
|
||||
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x5f35: /* Boot Display */
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = BOOT_DISPLAY_DEFAULT;
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = BOOT_DISPLAY_DEFAULT;
|
||||
break;
|
||||
case 0x5f40: /* Boot Panel Type */
|
||||
// M.x86.R_AX = 0x015f; // Supported but failed
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = 3; // Display ID
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = 3; // Display ID
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
|
|
|
@ -144,9 +144,9 @@ static int int15_handler(void)
|
|||
static int int15_handler(void)
|
||||
{
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x5f34:
|
||||
/*
|
||||
* Set Panel Fitting Hook:
|
||||
|
@ -154,8 +154,8 @@ static int int15_handler(void)
|
|||
* bit 1 = Text Stretching
|
||||
* bit 0 = Centering (do not set with bit1 or bit2)
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0x0001;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0x0001;
|
||||
break;
|
||||
case 0x5f35:
|
||||
/*
|
||||
|
@ -169,8 +169,8 @@ static int int15_handler(void)
|
|||
* bit 6 = EFP2 *
|
||||
* bit 7 = LFP2
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0x0000;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0x0000;
|
||||
break;
|
||||
case 0x5f51:
|
||||
/*
|
||||
|
@ -180,18 +180,18 @@ static int int15_handler(void)
|
|||
* 02h = SVDO-LVDS, LFP driven by SVDO decoder
|
||||
* 03h = eDP, LFP Driven by Int-DisplayPort encoder
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 3;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 3;
|
||||
break;
|
||||
case 0x5f70:
|
||||
/* Unknown */
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0;
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
printk(BIOS_DEBUG, "Unknown INT15 function: 0x%04x\n",
|
||||
M.x86.R_AX);
|
||||
X86_AX);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -41,17 +41,17 @@ static int int15_handler(void)
|
|||
#define BOOT_DISPLAY_LCD2 (1 << 7)
|
||||
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x5f35: /* Boot Display */
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = BOOT_DISPLAY_CRT;
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = BOOT_DISPLAY_CRT;
|
||||
break;
|
||||
case 0x5f40: /* Boot Panel Type */
|
||||
// M.x86.R_AX = 0x015f; // Supported but failed
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = 3; // Display ID
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = 3; // Display ID
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
|
|
|
@ -65,20 +65,20 @@ static int int15_handler(void)
|
|||
#define BOOT_DISPLAY_LCD2 (1 << 7)
|
||||
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x5f35: /* Boot Display */
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = BOOT_DISPLAY_DEFAULT;
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = BOOT_DISPLAY_DEFAULT;
|
||||
break;
|
||||
case 0x5f40: /* Boot Panel Type */
|
||||
/* LCD panel type is SIO GPIO40-43 */
|
||||
// display_id = inb(0x60f) & 0x0f;
|
||||
display_id = 3;
|
||||
// M.x86.R_AX = 0x015f; // Supported but failed
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = display_id;
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = display_id;
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
|
|
|
@ -151,9 +151,9 @@ static int int15_handler(void)
|
|||
static int int15_handler(void)
|
||||
{
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x5f34:
|
||||
/*
|
||||
* Set Panel Fitting Hook:
|
||||
|
@ -162,8 +162,8 @@ static int int15_handler(void)
|
|||
* bit 0 = Centering (do not set with bit1 or bit2)
|
||||
* 0 = video bios default
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CL = 0x00;
|
||||
X86_AX = 0x005f;
|
||||
X86_CL = 0x00;
|
||||
break;
|
||||
case 0x5f35:
|
||||
/*
|
||||
|
@ -177,8 +177,8 @@ static int int15_handler(void)
|
|||
* bit 6 = EFP2 *
|
||||
* bit 7 = LFP2
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0x0000;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0x0000;
|
||||
break;
|
||||
case 0x5f51:
|
||||
/*
|
||||
|
@ -188,40 +188,40 @@ static int int15_handler(void)
|
|||
* 02h = SVDO-LVDS, LFP driven by SVDO decoder
|
||||
* 03h = eDP, LFP Driven by Int-DisplayPort encoder
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 1;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 1;
|
||||
break;
|
||||
case 0x5f70:
|
||||
switch (M.x86.R_CH) {
|
||||
switch (X86_CH) {
|
||||
case 0:
|
||||
/* Get Mux */
|
||||
printk(BIOS_DEBUG, "Get Mux\n");
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CL = 0;
|
||||
X86_AX = 0x005f;
|
||||
X86_CL = 0;
|
||||
break;
|
||||
case 1:
|
||||
printk(BIOS_DEBUG, "Set Mux\n");
|
||||
/* Set Mux */
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0;
|
||||
break;
|
||||
case 2:
|
||||
printk(BIOS_DEBUG, "Get SG Mode\n");
|
||||
/* Get SG/Non-SG mode */
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0;
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
||||
M.x86.R_CH);
|
||||
X86_CH);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
printk(BIOS_DEBUG, "Unknown INT15 function: 0x%04x\n",
|
||||
M.x86.R_AX);
|
||||
X86_AX);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -144,9 +144,9 @@ static int int15_handler(void)
|
|||
static int int15_handler(void)
|
||||
{
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x5f34:
|
||||
/*
|
||||
* Set Panel Fitting Hook:
|
||||
|
@ -154,8 +154,8 @@ static int int15_handler(void)
|
|||
* bit 1 = Text Stretching
|
||||
* bit 0 = Centering (do not set with bit1 or bit2)
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0x0001;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0x0001;
|
||||
break;
|
||||
case 0x5f35:
|
||||
/*
|
||||
|
@ -169,8 +169,8 @@ static int int15_handler(void)
|
|||
* bit 6 = EFP2 *
|
||||
* bit 7 = LFP2
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0x0000;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0x0000;
|
||||
break;
|
||||
case 0x5f51:
|
||||
/*
|
||||
|
@ -180,18 +180,18 @@ static int int15_handler(void)
|
|||
* 02h = SVDO-LVDS, LFP driven by SVDO decoder
|
||||
* 03h = eDP, LFP Driven by Int-DisplayPort encoder
|
||||
*/
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 3;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 3;
|
||||
break;
|
||||
case 0x5f70:
|
||||
/* Unknown */
|
||||
M.x86.R_AX = 0x005f;
|
||||
M.x86.R_CX = 0;
|
||||
X86_AX = 0x005f;
|
||||
X86_CX = 0;
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
printk(BIOS_DEBUG, "Unknown INT15 function: 0x%04x\n",
|
||||
M.x86.R_AX);
|
||||
X86_AX);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -230,24 +230,24 @@ static int int15_handler(void)
|
|||
#define BOOT_DISPLAY_LCD2 (1 << 7)
|
||||
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x4e08: /* Boot Display */
|
||||
switch (M.x86.R_BX) {
|
||||
switch (X86_BX) {
|
||||
case 0x80:
|
||||
M.x86.R_AX &= ~(0xff); // Success
|
||||
M.x86.R_BX &= ~(0xff);
|
||||
X86_AX &= ~(0xff); // Success
|
||||
X86_BX &= ~(0xff);
|
||||
printk(BIOS_DEBUG, "Integrated System Information\n");
|
||||
break;
|
||||
case 0x00:
|
||||
M.x86.R_AX &= ~(0xff);
|
||||
M.x86.R_BX = 0x00;
|
||||
X86_AX &= ~(0xff);
|
||||
X86_BX = 0x00;
|
||||
printk(BIOS_DEBUG, "Panel ID = 0\n");
|
||||
break;
|
||||
case 0x05:
|
||||
M.x86.R_AX &= ~(0xff);
|
||||
M.x86.R_BX = 0xff;
|
||||
X86_AX &= ~(0xff);
|
||||
X86_BX = 0xff;
|
||||
printk(BIOS_DEBUG, "TV = off\n");
|
||||
break;
|
||||
default:
|
||||
|
@ -255,13 +255,13 @@ static int int15_handler(void)
|
|||
}
|
||||
break;
|
||||
case 0x5f35: /* Boot Display */
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = BOOT_DISPLAY_DEFAULT;
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = BOOT_DISPLAY_DEFAULT;
|
||||
break;
|
||||
case 0x5f40: /* Boot Panel Type */
|
||||
// M.x86.R_AX = 0x015f; // Supported but failed
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
M.x86.R_CL = 3; // Display ID
|
||||
X86_AX = 0x005f; // Success
|
||||
X86_CL = 3; // Display ID
|
||||
break;
|
||||
default:
|
||||
/* Interrupt was not handled */
|
||||
|
|
|
@ -100,13 +100,13 @@ static int int15_handler(void)
|
|||
#define BOOT_DISPLAY_LCD2 (1 << 7)
|
||||
|
||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||
__func__, M.x86.R_AX, M.x86.R_BX, M.x86.R_CX, M.x86.R_DX);
|
||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x5f35: /* Boot Display */
|
||||
M.x86.R_AX = 0x005f; // Success
|
||||
X86_AX = 0x005f; // Success
|
||||
//M.x86.R_CL = BOOT_DISPLAY_TV2;
|
||||
M.x86.R_CL = BOOT_DISPLAY_DEFAULT;
|
||||
X86_CL = BOOT_DISPLAY_DEFAULT;
|
||||
break;
|
||||
case 0x5f36: /* Boot TV Format Hook */
|
||||
printk(BIOS_DEBUG, "Boot TV Format Hook. TODO\n");
|
||||
|
|
|
@ -70,12 +70,12 @@ static void vga_init(device_t dev)
|
|||
#define PIPE_B_TV (1 << 10)
|
||||
printk(BIOS_DEBUG, "Enabling TV-Out\n");
|
||||
void runInt10(void);
|
||||
M.x86.R_AX = 0x5f64;
|
||||
M.x86.R_BX = 0x0001; // Set Display Device, force execution
|
||||
M.x86.R_CX = PIPE_A_CRT | PIPE_A_TV;
|
||||
X86_AX = 0x5f64;
|
||||
X86_BX = 0x0001; // Set Display Device, force execution
|
||||
X86_CX = PIPE_A_CRT | PIPE_A_TV;
|
||||
// M.x86.R_CX = PIPE_B_TV;
|
||||
runInt10();
|
||||
switch (M.x86.R_AX) {
|
||||
switch (X86_AX) {
|
||||
case 0x005f:
|
||||
printk(BIOS_DEBUG, "... failed.\n");
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue