source: mainline/kernel/arch/ia32/src/boot/vesa_prot.inc@ 3bacee1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 3bacee1 was f1380b7, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 8 years ago

style: Remove trailing whitespace on _all_ lines, including empty ones, remaining files.

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[421c833]1#ifdef CONFIG_FB
[b6dfc32]2
3#define MBINFO_BIT_CMDLINE 2
4#define MBINFO_OFFSET_CMDLINE 16
5
[873c681]6 /* Copy real mode VESA initialization code */
[f1380b7]7
[873c681]8 pm_status $status_vesa_copy
[f1380b7]9
[421c833]10 mov $vesa_init, %esi
11 mov $VESA_INIT_SEGMENT << 4, %edi
12 mov $e_vesa_init - vesa_init, %ecx
13 rep movsb
[f1380b7]14
[1f5c9c96]15 /* Check for multiboot command line */
[f1380b7]16
[1f5c9c96]17 pm_status $status_multiboot_cmdline
[f1380b7]18
[1f5c9c96]19 mov multiboot_eax, %eax
[b6dfc32]20 cmp $MULTIBOOT_LOADER_MAGIC, %eax
21 jne no_cmdline
[f1380b7]22
[1f5c9c96]23 mov multiboot_ebx, %ebx
[b6dfc32]24 mov (%ebx), %eax
25 bt $MBINFO_BIT_CMDLINE, %eax
26 jnc no_cmdline
[f1380b7]27
[873c681]28 /* Skip the kernel path in command line */
[f1380b7]29
[b6dfc32]30 mov MBINFO_OFFSET_CMDLINE(%ebx), %esi
[f1380b7]31
[b6dfc32]32 skip_loop:
33 lodsb
[f1380b7]34
[b6dfc32]35 cmp $0, %al
36 je no_cmdline
[f1380b7]37
[b6dfc32]38 cmp $' ', %al
39 je skip_loop_done
[f1380b7]40
[b6dfc32]41 jmp skip_loop
42 skip_loop_done:
[f1380b7]43
[e749794]44 space_loop:
45 mov (%esi), %al
[f1380b7]46
[e749794]47 cmp $0, %al
48 je no_cmdline
[f1380b7]49
[e749794]50 cmp $' ', %al
51 jne space_loop_done
[f1380b7]52
[e749794]53 inc %esi
54 jmp space_loop
55 space_loop_done:
[f1380b7]56
[873c681]57 /* Copy at most 23 characters from command line */
[f1380b7]58
[b6dfc32]59 mov $VESA_INIT_SEGMENT << 4, %edi
60 add $default_mode - vesa_init, %edi
61 mov $23, %ecx
[f1380b7]62
[b6dfc32]63 cmd_loop:
64 lodsb
65 stosb
[f1380b7]66
[b6dfc32]67 cmp $0, %al
68 je cmd_loop_done
[f1380b7]69
[b6dfc32]70 loop cmd_loop
71 cmd_loop_done:
[f1380b7]72
[873c681]73 /* Zero termination */
[f1380b7]74
[b6dfc32]75 xor %eax, %eax
76 stosb
[f1380b7]77
[b6dfc32]78 no_cmdline:
[f1380b7]79
[873c681]80 /* Jump to the real mode */
[f1380b7]81
[873c681]82 pm_status $status_vesa_real
[f1380b7]83
[421c833]84 mov $VESA_INIT_SEGMENT << 4, %edi
85 jmpl *%edi
[f1380b7]86
[421c833]87 vesa_meeting_point:
[873c681]88 /* Returned back to protected mode */
[f1380b7]89
[f66c203d]90 /*
91 * Initialize Global Descriptor Table and
92 * Interrupt Descriptor Table registers
93 */
94 lgdtl bootstrap_gdtr
95 lidtl bootstrap_idtr
[f1380b7]96
[1f5c9c96]97 movzx %ax, %ecx
98 mov %ecx, KA2PA(bfb_scanline)
[f1380b7]99
[1496f87]100 shr $16, %eax
[1f5c9c96]101 mov %ax, KA2PA(bfb_bpp)
[f1380b7]102
[1f5c9c96]103 movzx %bx, %ecx
104 mov %ecx, KA2PA(bfb_height)
[f1380b7]105
[421c833]106 shr $16, %ebx
[1f5c9c96]107 mov %ebx, KA2PA(bfb_width)
[f1380b7]108
[1f5c9c96]109 mov %dl, KA2PA(bfb_green_pos)
[f1380b7]110
[1496f87]111 shr $8, %edx
[1f5c9c96]112 mov %dl, KA2PA(bfb_green_size)
[f1380b7]113
[1496f87]114 shr $8, %edx
[1f5c9c96]115 mov %dl, KA2PA(bfb_red_pos)
[f1380b7]116
[1496f87]117 shr $8, %edx
[1f5c9c96]118 mov %dl, KA2PA(bfb_red_size)
[f1380b7]119
[1496f87]120 mov %esi, %edx
[1f5c9c96]121 mov %dl, KA2PA(bfb_blue_pos)
[f1380b7]122
[1496f87]123 shr $8, %edx
[1f5c9c96]124 mov %dl, KA2PA(bfb_blue_size)
[f1380b7]125
[1f5c9c96]126 mov %edi, KA2PA(bfb_addr)
[421c833]127#endif
Note: See TracBrowser for help on using the repository browser.