ports/sysutils/u-boot-cubieboard/files/patch-common_cmd__elf.c
Luiz Otavio O Souza ae95160278 Adds the U-Boot loader for Banana pi, Cubieboard and Cubieboard2.
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
2015-07-06 19:50:03 +00:00

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;
}