[U-Boot] [PATCH 12/17] CHECKPATCH: arch/x86/lib/*
Simon Glass
sjg at chromium.org
Wed Jan 4 06:47:26 CET 2012
Hi Graeme,
On Sun, Jan 1, 2012 at 8:09 PM, Graeme Russ <graeme.russ at gmail.com> wrote:
>
> Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
Acked-by: Simon Glass <sjg at chromium.org>
Thanks for the x86 assembler lesson :-)
Regards,
Simon
> ---
> arch/x86/lib/bios.S | 134 +++++++++++++++++++++++++--------------
> arch/x86/lib/realmode_switch.S | 61 +++++++++++--------
> 2 files changed, 122 insertions(+), 73 deletions(-)
>
> diff --git a/arch/x86/lib/bios.S b/arch/x86/lib/bios.S
> index ce8deb5..239aaa9 100644
> --- a/arch/x86/lib/bios.S
> +++ b/arch/x86/lib/bios.S
> @@ -246,11 +246,9 @@ rm_int1f:
> rm_def_int:
> iret
>
> -
> /*
> - * All interrupt jumptable entries jump to here
> - * after pushing the interrupt vector number onto the
> - * stack.
> + * All interrupt jumptable entries jump to here after pushing the
> + * interrupt vector number onto the stack.
> */
> any_interrupt16:
> MAKE_BIOS_STACK
> @@ -272,7 +270,8 @@ gs movw OFFS_VECTOR(%bp), %ax
> je Lint_1ah
> movw $0xffff, %ax
> jmp Lout
> -Lint_10h: /* VGA BIOS services */
> +Lint_10h:
> + /* VGA BIOS services */
> call bios_10h
> jmp Lout
> Lint_11h:
> @@ -281,35 +280,42 @@ Lint_11h:
> Lint_12h:
> call bios_12h
> jmp Lout
> -Lint_13h: /* BIOS disk services */
> +Lint_13h:
> + /* BIOS disk services */
> call bios_13h
> jmp Lout
> -Lint_15h: /* Misc. BIOS services */
> +Lint_15h:
> + /* Misc. BIOS services */
> call bios_15h
> jmp Lout
> -Lint_16h: /* keyboard services */
> +Lint_16h:
> + /* keyboard services */
> call bios_16h
> jmp Lout
> -Lint_1ah: /* PCI bios */
> +Lint_1ah:
> + /* PCI bios */
> call bios_1ah
> jmp Lout
> Lout:
> cmpw $0, %ax
> je Lhandeled
>
> - /* Insert code for unhandeled INTs here.
> + /*
> + * Insert code for unhandeled INTs here.
> *
> - * ROLO prints a message to the console
> - * (we could do that but then we're in 16bit mode
> - * so we'll have to get back into 32bit mode
> - * to use the console I/O routines (if we do this
> - * we shuls make int 0x10 and int 0x16 work as well))
> + * ROLO prints a message to the console we could do that but then
> + * we're in 16bit mode so we'll have to get back into 32bit mode
> + * to use the console I/O routines (if we do this we should make
> + * int 0x10 and int 0x16 work as well)
> */
> Lhandeled:
> RESTORE_CALLERS_STACK
> - addw $2,%sp /* dump vector number */
> - iret /* return from interrupt */
>
> + /* dump vector number */
> + addw $2,%sp
> +
> + /* return from interrupt */
> + iret
>
> /*
> ************************************************************
> @@ -327,22 +333,24 @@ gs movw OFFS_AX(%bp), %ax
> je Lvid_cfg
> movw $0xffff, %ax
> ret
> -Lcur_pos: /* Read Cursor Position and Size */
> +Lcur_pos:
> + /* Read Cursor Position and Size */
> gs movw $0, OFFS_CX(%bp)
> gs movw $0, OFFS_DX(%bp)
> xorw %ax, %ax
> ret
> -Lvid_state: /* Get Video State */
> -gs movw $(80 << 8|0x03), OFFS_AX(%bp) /* 80 columns, 80x25, 16 colors */
> +Lvid_state:
> + /* Get Video State - 80 columns, 80x25, 16 colors */
> +gs movw $(80 << 8|0x03), OFFS_AX(%bp)
> gs movw $0, OFFS_BX(%bp)
> xorw %ax, %ax
> ret
> -Lvid_cfg: /* Video Subsystem Configuration (EGA/VGA) */
> -gs movw $0x10, OFFS_BX(%bp) /* indicate CGA/MDA/HGA */
> +Lvid_cfg:
> + /* Video Subsystem Configuration (EGA/VGA) - indicate CGA/MDA/HGA */
> +gs movw $0x10, OFFS_BX(%bp)
> xorw %ax, %ax
> ret
>
> -
> /*
> ************************************************************
> * BIOS interrupt 11h -- Equipment determination
> @@ -355,7 +363,6 @@ gs movw %ax, OFFS_AX(%bp)
> xorw %ax, %ax
> ret
>
> -
> /*
> ************************************************************
> * BIOS interrupt 12h -- Get Memory Size
> @@ -370,16 +377,18 @@ cs movw ram_in_64kb_chunks, %ax
> b12_more_than_640k:
> movw $0x280, %ax
> b12_return:
> -gs movw %ax, OFFS_AX(%bp) /* return number of kilobytes in ax */
> + /* return number of kilobytes in ax */
> +gs movw %ax, OFFS_AX(%bp)
>
> gs movw OFFS_FLAGS(%bp), %ax
> - andw $0xfffe, %ax /* clear carry -- function succeeded */
> +
> + /* clear carry -- function succeeded */
> + andw $0xfffe, %ax
> gs movw %ax, OFFS_FLAGS(%bp)
>
> xorw %ax, %ax
> ret
>
> -
> /*
> ************************************************************
> * BIOS interrupt 13h -- Disk services
> @@ -394,12 +403,13 @@ gs movw OFFS_AX(%bp), %ax
> ret
> Lfunc_15h:
> gs movw OFFS_AX(%bp), %ax
> - andw $0xff, %ax /* return AH=0->drive not present */
> +
> + /* return AH=0->drive not present */
> + andw $0x00ff, %ax
> gs movw %ax, OFFS_AX(%bp)
> xorw %ax, %ax
> ret
>
> -
> /*
> ***********************************************************
> * BIOS interrupt 15h -- Miscellaneous services
> @@ -417,9 +427,12 @@ gs movw OFFS_AX(%bp), %ax
> movw $0xffff, %ax
> ret
>
> -Lfunc_c0h: /* Return System Configuration Parameters (PS2 only) */
> +Lfunc_c0h:
> + /* Return System Configuration Parameters (PS2 only) */
> gs movw OFFS_FLAGS(%bp), %ax
> - orw $1, %ax /* return carry -- function not supported */
> +
> + /* return carry -- function not supported */
> + orw $1, %ax
> gs movw %ax, OFFS_FLAGS(%bp)
> xorw %ax, %ax
> ret
> @@ -430,38 +443,56 @@ gs movw OFFS_AX(%bp), %ax
> cmpw $1, %ax
> je Lfunc_e801h
> gs movw OFFS_FLAGS(%bp), %ax
> - orw $1, %ax /* return carry -- function not supported */
> +
> + /* return carry -- function not supported */
> + orw $1, %ax
> gs movw %ax, OFFS_FLAGS(%bp)
> xorw %ax, %ax
> ret
>
> -Lfunc_e801h: /* Get memory size for >64M Configurations */
> +Lfunc_e801h:
> + /* Get memory size for >64M Configurations */
> cs movw ram_in_64kb_chunks, %ax
> cmpw $0x100, %ax
> ja e801_more_than_16mb
> - shlw $6, %ax /* multiply by 64 */
> - subw $0x400, %ax /* 1st meg does not count */
>
> -gs movw %ax, OFFS_AX(%bp) /* return memory size between 1M and 16M in 1kb chunks in AX and CX */
> + /* multiply by 64 */
> + shlw $6, %ax
> +
> + /* 1st meg does not count */
> + subw $0x400, %ax
> +
> + /* return memory size between 1M and 16M in 1kb chunks in AX and CX */
> +gs movw %ax, OFFS_AX(%bp)
> gs movw %ax, OFFS_CX(%bp)
> -gs movw $0, OFFS_BX(%bp) /* set BX and DX to 0*/
> +
> + /* set BX and DX to 0*/
> +gs movw $0, OFFS_BX(%bp)
> gs movw $0, OFFS_DX(%bp)
> gs movw OFFS_FLAGS(%bp), %ax
> - andw $0xfffe, %ax /* clear carry -- function succeeded */
> +
> + /* clear carry -- function succeeded */
> + andw $0xfffe, %ax
> gs movw %ax, OFFS_FLAGS(%bp)
> xorw %ax, %ax
> ret
>
> e801_more_than_16mb:
> - subw $0x100, %ax /* subtract 16MB */
> + /* subtract 16MB */
> + subw $0x100, %ax
>
> -gs movw $0x3c00, OFFS_AX(%bp) /* return 0x3c00 (16MB-1MB) in AX and CX */
> + /* return 0x3c00 (16MB-1MB) in AX and CX */
> +gs movw $0x3c00, OFFS_AX(%bp)
> gs movw $0x3c00, OFFS_CX(%bp)
> -gs movw %ax, OFFS_BX(%bp) /* set BX and DX to number of 64kb chunks above 16MB */
> +
> + /* set BX and DX to number of 64kb chunks above 16MB */
> +gs movw %ax, OFFS_BX(%bp)
> gs movw %ax, OFFS_DX(%bp)
>
> gs movw OFFS_FLAGS(%bp), %ax
> - andw $0xfffe, %ax /* clear carry -- function succeeded */
> +
> + /* clear carry -- function succeeded */
> + andw $0xfffe, %ax
> gs movw %ax, OFFS_FLAGS(%bp)
> xorw %ax, %ax
> ret
> @@ -473,18 +504,22 @@ cs movw ram_in_64kb_chunks, %ax
> movw $0x100, %ax
> b88_not_more_than16:
> shlw $6, %ax
> - subw $0x400, %ax /* 1st meg does not count */
>
> -gs movw %ax, OFFS_AX(%bp) /* return number of kilobytes between 16MB and 16MB in ax */
> + /* 1st meg does not count */
> + subw $0x400, %ax
> +
> + /* return number of kilobytes between 16MB and 16MB in ax */
> +gs movw %ax, OFFS_AX(%bp)
>
> gs movw OFFS_FLAGS(%bp), %ax
> - andw $0xfffe, %ax /* clear carry -- function succeeded */
> +
> + /* clear carry -- function succeeded */
> + andw $0xfffe, %ax
> gs movw %ax, OFFS_FLAGS(%bp)
>
> xorw %ax, %ax
> ret
>
> -
> /*
> ************************************************************
> * BIOS interrupt 16h -- keyboard services
> @@ -498,7 +533,8 @@ gs movw OFFS_AX(%bp), %ax
> movw $0xffff, %ax
> ret
> Lfunc_03h:
> - xorw %ax, %ax /* do nothing -- function not supported */
> + /* do nothing -- function not supported */
> + xorw %ax, %ax
> ret
>
> /*
> @@ -514,7 +550,9 @@ gs movw OFFS_AX(%bp), %ax
> ret
> Lfunc_b1h:
> call realmode_pci_bios
> - xorw %ax, %ax /* do nothing -- function not supported */
> +
> + /* do nothing -- function not supported */
> + xorw %ax, %ax
> ret
>
>
> diff --git a/arch/x86/lib/realmode_switch.S b/arch/x86/lib/realmode_switch.S
> index 7ee709a..c4c4c43 100644
> --- a/arch/x86/lib/realmode_switch.S
> +++ b/arch/x86/lib/realmode_switch.S
> @@ -44,12 +44,13 @@
> * e40 ss;
> */
>
> -#define a32 .byte 0x67; /* address size prefix 32 */
> -#define o32 .byte 0x66; /* operand size prefix 32 */
> +#define a32 .byte 0x67; /* address size prefix 32 */
> +#define o32 .byte 0x66; /* operand size prefix 32 */
>
> .section .realmode, "ax"
> .code16
> - /* 16bit protected mode code here */
> +
> + /* 16bit protected mode code here */
> .globl realmode_enter
> realmode_enter:
> o32 pusha
> @@ -69,20 +70,23 @@ o32 pushf
> movw %ax, %gs
>
> lidt realmode_idt_ptr
> - movl %cr0, %eax /* Go back into real mode by */
> - andl $0x7ffffffe, %eax /* clearing PE to 0 */
> + /* Go back into real mode by clearing PE to 0 */
> + movl %cr0, %eax
> + andl $0x7ffffffe, %eax
> movl %eax, %cr0
> - ljmp $0x0,$do_realmode /* switch to real mode */
>
> -do_realmode: /* realmode code from here */
> + /* switch to real mode */
> + ljmp $0x0,$do_realmode
> +
> +do_realmode:
> + /* realmode code from here */
> movw %cs,%ax
> movw %ax,%ds
> movw %ax,%es
> movw %ax,%fs
> movw %ax,%gs
>
> - /* create a temporary stack */
> -
> + /* create a temporary stack */
> movw $0xc0, %ax
> movw %ax, %ss
> movw $0x200, %ax
> @@ -114,26 +118,29 @@ o32 popf
> popw %ss
> movl %eax, %esp
> cs movl temp_eax, %eax
> - wbinvd /* self-modifying code,
> - * better flush the cache */
> +
> + /* self-modifying code, better flush the cache */
> + wbinvd
>
> .byte 0x9a /* lcall */
> temp_ip:
> .word 0 /* new ip */
> temp_cs:
> .word 0 /* new cs */
> +
> realmode_ret:
> - /* save eax, esp and ss */
> + /* save eax, esp and ss */
> cs movl %eax, saved_eax
> movl %esp, %eax
> cs movl %eax, saved_esp
> movw %ss, %ax
> cs movw %ax, saved_ss
>
> - /* restore the stack, note that we set sp to 0x244;
> + /*
> + * restore the stack, note that we set sp to 0x244;
> * pt_regs is 0x44 bytes long and we push the structure
> - * backwards on to the stack, bottom first */
> -
> + * backwards on to the stack, bottom first
> + */
> movw $0xc0, %ax
> movw %ax, %ss
> movw $0x244, %ax
> @@ -169,12 +176,15 @@ cs movw temp_ip, %ax
> pushl %ebx
>
> o32 cs lidt saved_idt
> -o32 cs lgdt saved_gdt /* Set GDTR */
> +o32 cs lgdt saved_gdt
>
> - movl %cr0, %eax /* Go back into protected mode */
> - orl $1,%eax /* reset PE to 1 */
> + /* Go back into protected mode reset PE to 1 */
> + movl %cr0, %eax
> + orl $1,%eax
> movl %eax, %cr0
> - jmp next_line /* flush prefetch queue */
> +
> + /* flush prefetch queue */
> + jmp next_line
> next_line:
> movw $return_ptr, %ax
> movw %ax,%bp
> @@ -182,12 +192,13 @@ o32 cs ljmp *(%bp)
>
> .code32
> protected_mode:
> - movl $0x18,%eax /* reload GDT[3] */
> - movw %ax,%fs /* reset FS */
> - movw %ax,%ds /* reset DS */
> - movw %ax,%gs /* reset GS */
> - movw %ax,%es /* reset ES */
> - movw %ax,%ss /* reset SS */
> + /* Reload segment registers */
> + movl $0x18, %eax
> + movw %ax, %fs
> + movw %ax, %ds
> + movw %ax, %gs
> + movw %ax, %es
> + movw %ax, %ss
> movl saved_protected_mode_esp, %eax
> movl %eax, %esp
> popf
> --
> 1.7.5.2.317.g391b14
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
More information about the U-Boot
mailing list