diff options
author | ian <ian@FreeBSD.org> | 2014-03-01 19:02:00 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-03-01 19:02:00 +0000 |
commit | 3cccc93a2647c00f24f62d4f88919ee60433d0bf (patch) | |
tree | 9c4d28d096e50543af30416154bce899de088f2b /sys/boot/uboot/lib/module.c | |
parent | c980900e52d22edcb779ce36a512c64a293c35ea (diff) | |
download | FreeBSD-src-3cccc93a2647c00f24f62d4f88919ee60433d0bf.zip FreeBSD-src-3cccc93a2647c00f24f62d4f88919ee60433d0bf.tar.gz |
Prevent fdt data loaded from a file from overwriting the kernel environment,
by having uboot_autoload() do the fdt setup (which may load a file) rather
than waiting until we're actually in the process of launching the kernel.
As part of making this happen...
- Define LOADER_FDT_SUPPORT on the uboot/lib compile command line when
MK_FDT is set.
- Make fdt_setup_fdtb() public.
- Declare public fdt_whatever() functions in a header instead of using
scattered extern decls in .c files.
Diffstat (limited to 'sys/boot/uboot/lib/module.c')
-rw-r--r-- | sys/boot/uboot/lib/module.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/boot/uboot/lib/module.c b/sys/boot/uboot/lib/module.c index f03d644..d9b3dc0 100644 --- a/sys/boot/uboot/lib/module.c +++ b/sys/boot/uboot/lib/module.c @@ -29,19 +29,23 @@ __FBSDID("$FreeBSD$"); /* * U-Boot-specific module functionality. - * - * XXX not much for now... - * */ #include <stand.h> #include <string.h> #include "bootstrap.h" +#include "libuboot.h" int uboot_autoload(void) { +#if defined(LOADER_FDT_SUPPORT) + int err; + + if ((err = fdt_setup_fdtp()) != 0) + return (err); +#endif return(0); } |