svn commit: r247377 - projects/uefi/sys/boot/i386/efi

Benno Rice benno at FreeBSD.org
Wed Feb 27 04:44:50 UTC 2013


Author: benno
Date: Wed Feb 27 04:44:48 2013
New Revision: 247377
URL: http://svnweb.freebsd.org/changeset/base/247377

Log:
  Remove all bootinfo support as amd64 doesn't use it.

Modified:
  projects/uefi/sys/boot/i386/efi/bootinfo.c
  projects/uefi/sys/boot/i386/efi/bootinfo64.c
  projects/uefi/sys/boot/i386/efi/efimd.c
  projects/uefi/sys/boot/i386/efi/elf64_freebsd.c

Modified: projects/uefi/sys/boot/i386/efi/bootinfo.c
==============================================================================
--- projects/uefi/sys/boot/i386/efi/bootinfo.c	Wed Feb 27 04:42:30 2013	(r247376)
+++ projects/uefi/sys/boot/i386/efi/bootinfo.c	Wed Feb 27 04:44:48 2013	(r247377)
@@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$");
 
 #include "bootstrap.h"
 #include "libi386.h"
-#include <machine/bootinfo.h>
 
 #include "x86_efi_copy.h"
 
@@ -143,157 +142,3 @@ bi_copyenv(vm_offset_t start)
 		last = start;
 	return(last);
 }
-
-/*
- * Copy module-related data into the load area, where it can be
- * used as a directory for loaded modules.
- *
- * Module data is presented in a self-describing format.  Each datum
- * is preceded by a 32-bit identifier and a 32-bit size field.
- *
- * Currently, the following data are saved:
- *
- * MOD_NAME	(variable)		module name (string)
- * MOD_TYPE	(variable)		module type (string)
- * MOD_ARGS	(variable)		module parameters (string)
- * MOD_ADDR	sizeof(vm_offset_t)	module load address
- * MOD_SIZE	sizeof(size_t)		module size
- * MOD_METADATA	(variable)		type-specific metadata
- */
-#define COPY32(v, a) {				\
-    u_int32_t	x = (v);			\
-    x86_efi_copyin(&x, a, sizeof(x));		\
-    a += sizeof(x);				\
-}
-
-#define MOD_STR(t, a, s) {			\
-    COPY32(t, a);				\
-    COPY32(strlen(s) + 1, a);			\
-    x86_efi_copyin(s, a, strlen(s) + 1);		\
-    a += roundup(strlen(s) + 1, sizeof(u_int64_t));\
-}
-
-#define MOD_NAME(a, s)	MOD_STR(MODINFO_NAME, a, s)
-#define MOD_TYPE(a, s)	MOD_STR(MODINFO_TYPE, a, s)
-#define MOD_ARGS(a, s)	MOD_STR(MODINFO_ARGS, a, s)
-
-#define MOD_VAR(t, a, s) {			\
-    COPY32(t, a);				\
-    COPY32(sizeof(s), a);			\
-    x86_efi_copyin(&s, a, sizeof(s));		\
-    a += roundup(sizeof(s), sizeof(u_int64_t));	\
-}
-
-#define MOD_ADDR(a, s)	MOD_VAR(MODINFO_ADDR, a, s)
-#define MOD_SIZE(a, s)	MOD_VAR(MODINFO_SIZE, a, s)
-
-#define MOD_METADATA(a, mm) {			\
-    COPY32(MODINFO_METADATA | mm->md_type, a);	\
-    COPY32(mm->md_size, a);			\
-    x86_efi_copyin(mm->md_data, a, mm->md_size);	\
-    a += roundup(mm->md_size, sizeof(u_int64_t));\
-}
-
-#define MOD_END(a) {				\
-    COPY32(MODINFO_END, a);			\
-    COPY32(0, a);				\
-}
-
-vm_offset_t
-bi_copymodules(vm_offset_t addr)
-{
-	struct preloaded_file *fp;
-	struct file_metadata *md;
-
-	/* Start with the first module on the list, should be the kernel. */
-	for (fp = file_findfile(NULL, NULL); fp != NULL; fp = fp->f_next) {
-		/* The name field must come first. */
-		MOD_NAME(addr, fp->f_name);
-		MOD_TYPE(addr, fp->f_type);
-		if (fp->f_args)
-			MOD_ARGS(addr, fp->f_args);
-		MOD_ADDR(addr, fp->f_addr);
-		MOD_SIZE(addr, fp->f_size);
-		for (md = fp->f_metadata; md != NULL; md = md->md_next) {
-			if (!(md->md_type & MODINFOMD_NOCOPY))
-				MOD_METADATA(addr, md);
-		}
-	}
-	MOD_END(addr);
-	return(addr);
-}
-
-/*
- * Load the information expected by the kernel.
- *
- * - The kernel environment is copied into kernel space.
- * - Module metadata are formatted and placed in kernel space.
- */
-int
-bi_load(struct preloaded_file *fp, uint64_t *bi_addr)
-{
-	struct bootinfo bi;
-	struct preloaded_file *xp;
-	struct file_metadata *md;
-	struct devdesc *rootdev;
-	char *rootdevname;
-	vm_offset_t addr, ssym, esym;
-
-	bzero(&bi, sizeof(struct bootinfo));
-	bi.bi_version = 1;
-//	bi.bi_boothowto = bi_getboothowto(fp->f_args);
-
-	/* 
-	 * Allow the environment variable 'rootdev' to override the supplied
-	 * device. This should perhaps go to MI code and/or have $rootdev
-	 * tested/set by MI code before launching the kernel.
-	 */
-	rootdevname = getenv("rootdev");
-	i386_getdev((void**)&rootdev, rootdevname, NULL);
-	if (rootdev != NULL) {
-		/* Try reading /etc/fstab to select the root device. */
-		getrootmount(i386_fmtdev(rootdev));
-		free(rootdev);
-	}
-
-	md = file_findmetadata(fp, MODINFOMD_SSYM);
-	ssym = (md != NULL) ? *((vm_offset_t *)&(md->md_data)) : 0;
-	md = file_findmetadata(fp, MODINFOMD_ESYM);
-	esym = (md != NULL) ? *((vm_offset_t *)&(md->md_data)) : 0;
-	if (ssym != 0 && esym != 0) {
-		bi.bi_symtab = ssym;
-		bi.bi_esymtab = esym;
-	}
-
-	/* Find the last module in the chain. */
-	addr = 0;
-	for (xp = file_findfile(NULL, NULL); xp != NULL; xp = xp->f_next) {
-		if (addr < (xp->f_addr + xp->f_size))
-			addr = xp->f_addr + xp->f_size;
-	}
-
-	addr = (addr + 15) & ~15;
-
-	/* Copy module list and metadata. */
-	bi.bi_modulep = addr;
-	addr = bi_copymodules(addr);
-	if (addr <= bi.bi_modulep) {
-		addr = bi.bi_modulep;
-		bi.bi_modulep = 0;
-	}
-
-	addr = (addr + 15) & ~15;
-
-	/* Copy our environment. */
-	bi.bi_envp = addr;
-	addr = bi_copyenv(addr);
-	if (addr <= bi.bi_envp) {
-		addr = bi.bi_envp;
-		bi.bi_envp = 0;
-	}
-
-	addr = (addr + PAGE_MASK) & ~PAGE_MASK;
-	bi.bi_kernend = addr;
-
-	return (ldr_bootinfo(&bi, bi_addr));
-}

Modified: projects/uefi/sys/boot/i386/efi/bootinfo64.c
==============================================================================
--- projects/uefi/sys/boot/i386/efi/bootinfo64.c	Wed Feb 27 04:42:30 2013	(r247376)
+++ projects/uefi/sys/boot/i386/efi/bootinfo64.c	Wed Feb 27 04:44:48 2013	(r247377)
@@ -31,7 +31,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/linker.h>
-#include <machine/bootinfo.h>
 #include <machine/cpufunc.h>
 #include <machine/psl.h>
 #include <machine/specialreg.h>

Modified: projects/uefi/sys/boot/i386/efi/efimd.c
==============================================================================
--- projects/uefi/sys/boot/i386/efi/efimd.c	Wed Feb 27 04:42:30 2013	(r247376)
+++ projects/uefi/sys/boot/i386/efi/efimd.c	Wed Feb 27 04:44:48 2013	(r247377)
@@ -32,7 +32,6 @@ __FBSDID("$FreeBSD$");
 #include <efi.h>
 #include <efilib.h>
 
-#include <machine/bootinfo.h>
 #include <machine/efi.h>
 #include <machine/metadata.h>
 

Modified: projects/uefi/sys/boot/i386/efi/elf64_freebsd.c
==============================================================================
--- projects/uefi/sys/boot/i386/efi/elf64_freebsd.c	Wed Feb 27 04:42:30 2013	(r247376)
+++ projects/uefi/sys/boot/i386/efi/elf64_freebsd.c	Wed Feb 27 04:44:48 2013	(r247377)
@@ -32,7 +32,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/exec.h>
 #include <sys/linker.h>
 #include <string.h>
-#include <machine/bootinfo.h>
 #include <machine/elf.h>
 #include <stand.h>
 


More information about the svn-src-projects mailing list