[1819] 2008-08-18 Robert Millan <[email protected]>

Robert Millan <[email protected]>
Newsgroups gmane.comp.boot-loaders.grub.cvs
Message-ID <[email protected]>
Revision: 1819
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1819
Author:   robertmh
Date:     2008-08-18 13:01:01 +0000 (Mon, 18 Aug 2008)

Log Message:
-----------
2008-08-18  Robert Millan  <[email protected]>

        * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
        (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
        (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
        (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
        (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
        New macros.
        (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
        * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
        (GRUB_LINUX_CL_END_OFFSET): ... to here.
        * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
        (GRUB_LINUX_CL_OFFSET): ... this.  Update all users.
        (GRUB_EFI_CL_END_OFFSET): Rename to ...
        (GRUB_LINUX_CL_END_OFFSET): ... this.  Update all users.
        (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
        Initialize `params->video_cursor_x' and `params->video_cursor_y'
        portably using grub_getxy().
        Replace `-EFI' with `-bzImage' in boot message.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/include/grub/i386/linux.h
    trunk/grub2/loader/i386/efi/linux.c
    trunk/grub2/loader/i386/pc/linux.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog	2008-08-17 20:28:00 UTC (rev 1818)
+++ trunk/grub2/ChangeLog	2008-08-18 13:01:01 UTC (rev 1819)
@@ -1,3 +1,23 @@
+2008-08-18  Robert Millan  <[email protected]>
+
+	* include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
+	(LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
+	(LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
+	(LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
+	(LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
+	New macros.
+	(GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
+	* loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
+	(GRUB_LINUX_CL_END_OFFSET): ... to here.
+	* loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
+	(GRUB_LINUX_CL_OFFSET): ... this.  Update all users.
+	(GRUB_EFI_CL_END_OFFSET): Rename to ...
+	(GRUB_LINUX_CL_END_OFFSET): ... this.  Update all users.
+	(grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
+	Initialize `params->video_cursor_x' and `params->video_cursor_y'
+	portably using grub_getxy().
+	Replace `-EFI' with `-bzImage' in boot message.
+
 2008-08-17  Robert Millan  <[email protected]>
 
 	* include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).

Modified: trunk/grub2/include/grub/i386/linux.h
===================================================================
--- trunk/grub2/include/grub/i386/linux.h	2008-08-17 20:28:00 UTC (rev 1818)
+++ trunk/grub2/include/grub/i386/linux.h	2008-08-18 13:01:01 UTC (rev 1819)
@@ -39,8 +39,6 @@
 #define GRUB_LINUX_VID_MODE_EXTENDED	0xFFFE
 #define GRUB_LINUX_VID_MODE_ASK		0xFFFD
 
-#define GRUB_LINUX_CL_OFFSET		0x9000
-#define GRUB_LINUX_CL_END_OFFSET	0x90FF
 #define GRUB_LINUX_SETUP_MOVE_SIZE	0x9100
 #define GRUB_LINUX_CL_MAGIC		0xA33F
 
@@ -104,6 +102,17 @@
   grub_uint16_t start_sys;		/* The load-low segment (obsolete) */
   grub_uint16_t kernel_version;		/* Points to kernel version string */
   grub_uint8_t type_of_loader;		/* Boot loader identifier */
+#define LINUX_LOADER_ID_LILO		0x0
+#define LINUX_LOADER_ID_LOADLIN		0x1
+#define LINUX_LOADER_ID_BOOTSECT	0x2
+#define LINUX_LOADER_ID_SYSLINUX	0x3
+#define LINUX_LOADER_ID_ETHERBOOT	0x4
+#define LINUX_LOADER_ID_ELILO		0x5
+#define LINUX_LOADER_ID_GRUB		0x7
+#define LINUX_LOADER_ID_UBOOT		0x8
+#define LINUX_LOADER_ID_XEN		0x9
+#define LINUX_LOADER_ID_GUJIN		0xa
+#define LINUX_LOADER_ID_QEMU		0xb
   grub_uint8_t loadflags;		/* Boot protocol option flags */
   grub_uint16_t setup_move_size;	/* Move to high memory size */
   grub_uint32_t code32_start;		/* Boot loader hook */

Modified: trunk/grub2/loader/i386/efi/linux.c
===================================================================
--- trunk/grub2/loader/i386/efi/linux.c	2008-08-17 20:28:00 UTC (rev 1818)
+++ trunk/grub2/loader/i386/efi/linux.c	2008-08-18 13:01:01 UTC (rev 1819)
@@ -1,6 +1,6 @@
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2006,2007  Free Software Foundation, Inc.
+ *  Copyright (C) 2006,2007,2008  Free Software Foundation, Inc.
  *
  *  GRUB is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -33,8 +33,8 @@
 #include <grub/efi/uga_draw.h>
 #include <grub/pci.h>
 
-#define GRUB_EFI_CL_OFFSET	0x1000
-#define GRUB_EFI_CL_END_OFFSET	0x2000
+#define GRUB_LINUX_CL_OFFSET		0x1000
+#define GRUB_LINUX_CL_END_OFFSET	0x2000
 
 #define NEXT_MEMORY_DESCRIPTOR(desc, size)      \
   ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
@@ -166,7 +166,7 @@
   grub_size_t real_size;
   
   /* Make sure that each size is aligned to a page boundary.  */
-  real_size = GRUB_EFI_CL_END_OFFSET;
+  real_size = GRUB_LINUX_CL_END_OFFSET;
   prot_size = page_align (prot_size);
   mmap_size = find_mmap_size ();
 
@@ -634,7 +634,7 @@
     goto fail;
   
   params = (struct linux_kernel_params *) real_mode_mem;
-  grub_memset (params, 0, GRUB_EFI_CL_END_OFFSET);
+  grub_memset (params, 0, GRUB_LINUX_CL_END_OFFSET);
   grub_memcpy (&params->setup_sects, &lh.setup_sects, sizeof (lh) - 0x1F1);
 
   params->ps_mouse = params->padding10 =  0;
@@ -647,7 +647,7 @@
     }
 
   /* XXX Linux assumes that only elilo can boot Linux on EFI!!!  */
-  params->type_of_loader = 0x50;
+  params->type_of_loader = (LINUX_LOADER_ID_ELILO << 4);
 
   params->cl_magic = GRUB_LINUX_CL_MAGIC;
   params->cl_offset = 0x1000;
@@ -664,8 +664,8 @@
   params->ext_mem = ((32 * 0x100000) >> 10);
   params->alt_mem = ((32 * 0x100000) >> 10);
   
-  params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column;
-  params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row;
+  params->video_cursor_x = grub_getxy () >> 8;
+  params->video_cursor_y = grub_getxy () & 0xff;
   params->video_page = 0; /* ??? */
   params->video_mode = grub_efi_system_table->con_out->mode->mode;
   params->video_width = (grub_getwh () >> 8);
@@ -758,7 +758,7 @@
   grub_file_seek (file, real_size + GRUB_DISK_SECTOR_SIZE);
 
   /* XXX there is no way to know if the kernel really supports EFI.  */
-  grub_printf ("   [Linux-EFI, setup=0x%x, size=0x%x]\n",
+  grub_printf ("   [Linux-bzImage, setup=0x%x, size=0x%x]\n",
 	       (unsigned) real_size, (unsigned) prot_size);
 
   /* Detect explicitly specified memory size, if any.  */
@@ -814,7 +814,7 @@
     }
 
   /* Specify the boot file.  */
-  dest = grub_stpcpy ((char *) real_mode_mem + GRUB_EFI_CL_OFFSET,
+  dest = grub_stpcpy ((char *) real_mode_mem + GRUB_LINUX_CL_OFFSET,
 		      "BOOT_IMAGE=");
   dest = grub_stpcpy (dest, argv[0]);
   
@@ -822,7 +822,7 @@
   for (i = 1;
        i < argc
 	 && dest + grub_strlen (argv[i]) + 1 < ((char *) real_mode_mem
-						+ GRUB_EFI_CL_END_OFFSET);
+						+ GRUB_LINUX_CL_END_OFFSET);
        i++)
     {
       *dest++ = ' ';

Modified: trunk/grub2/loader/i386/pc/linux.c
===================================================================
--- trunk/grub2/loader/i386/pc/linux.c	2008-08-17 20:28:00 UTC (rev 1818)
+++ trunk/grub2/loader/i386/pc/linux.c	2008-08-18 13:01:01 UTC (rev 1819)
@@ -31,6 +31,9 @@
 #include <grub/dl.h>
 #include <grub/cpu/linux.h>
 
+#define GRUB_LINUX_CL_OFFSET		0x9000
+#define GRUB_LINUX_CL_END_OFFSET	0x90FF
+
 static grub_dl_t my_mod;
 
 static grub_size_t linux_mem_size;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.