Re: [PATCH 12/12] i386 boot: Add an ELF header to bzImage

Eric W. Biederman
2006-10-05T15:36:57Z

"H. Peter Anvin" <hpa@zytor.com> writes:

> Andrew Morton wrote:
>> On Thu, 05 Oct 2006 00:13:12 -0600
>> ebiederm@xmission.com (Eric W. Biederman) wrote:
>>
>>> Do things work better if you don't specify a vga=xxx mode?
>> yes, without vga=0x263 it boots.
>
> vga= actually patches a specific offset in the boot sector. We don't actually
> have 512 bytes, we have some 500-ish bytes plus a small patch area at the end.

>From video.S
It uses offset 0 in the boot sector. We have 497 bytes that can be used,
before we call setup.S after that setup.S considers the entire bootsector
it's own.

/* Positions of various video parameters passed to the kernel */
/* (see also include/linux/tty.h) */
#define PARAM_CURSOR_POS 0x00
#define PARAM_VIDEO_PAGE 0x04
#define PARAM_VIDEO_MODE 0x06
#define PARAM_VIDEO_COLS 0x07
#define PARAM_VIDEO_EGA_BX 0x0a
#define PARAM_VIDEO_LINES 0x0e
#define PARAM_HAVE_VGA 0x0f
#define PARAM_FONT_POINTS 0x10

#define PARAM_LFB_WIDTH 0x12
#define PARAM_LFB_HEIGHT 0x14
#define PARAM_LFB_DEPTH 0x16
#define PARAM_LFB_BASE 0x18
#define PARAM_LFB_SIZE 0x1c
#define PARAM_LFB_LINELENGTH 0x24
#define PARAM_LFB_COLORS 0x26
#define PARAM_VESAPM_SEG 0x2e
#define PARAM_VESAPM_OFF 0x30
#define PARAM_LFB_PAGES 0x32
#define PARAM_VESA_ATTRIB 0x34
#define PARAM_CAPABILITIES 0x36

Eric