commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[1819] 2008-08-18 Robert Millan <address@hidden>


From: Robert Millan
Subject: [1819] 2008-08-18 Robert Millan <address@hidden>
Date: Mon, 18 Aug 2008 13:01:02 +0000

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  <address@hidden>

        * 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  <address@hidden>
+
+       * 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  <address@hidden>
 
        * 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;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]