mirror of
https://git.freebsd.org/ports.git
synced 2025-06-07 22:00:31 -04:00
This version is patched so that: * ELF and API features are enabled. * The default environment is trimmed to just what's needed to boot. * The saveenv command writes to the file u-boot.env on the FAT partition. * The DTB file name is chosen based on the board model and passed to ubldr using the fdtfile env variable. ubldr loads the DTB from /boot/dtb/ on the FreeBSD partition. * By default, it loads ELF ubldr from file ubldr on the FAT partition to address 0x42000000, and launches it. For information about running FreeBSD on Allwinner SoCs, see https://wiki.freebsd.org/FreeBSD/arm/Allwinner Differential Revision: https://reviews.freebsd.org/D2874 Reviewed by: garga Approved by: garga
29 lines
792 B
C
29 lines
792 B
C
--- common/cmd_elf.c.orig 2015-04-13 14:53:03 UTC
|
|
+++ common/cmd_elf.c
|
|
@@ -35,22 +35,12 @@ static unsigned long do_bootelf_exec(ulo
|
|
unsigned long ret;
|
|
|
|
/*
|
|
- * QNX images require the data cache is disabled.
|
|
- * Data cache is already flushed, so just turn it off.
|
|
- */
|
|
- int dcache = dcache_status();
|
|
- if (dcache)
|
|
- dcache_disable();
|
|
-
|
|
- /*
|
|
- * pass address parameter as argv[0] (aka command name),
|
|
- * and all remaining args
|
|
+ * FreeBSD wants the caches enabled while ubldr runs, and as of r276397
|
|
+ * the kernel can tolerate being entered with internal (but not external
|
|
+ * PL310) caches enabled on armv6/7 systems. So don't disable caches
|
|
+ * here, just launch the program directly.
|
|
*/
|
|
ret = entry(argc, argv);
|
|
-
|
|
- if (dcache)
|
|
- dcache_enable();
|
|
-
|
|
return ret;
|
|
}
|
|
|