svn commit: r281526 - in head/sys: arm64/include boot boot/arm64 boot/arm64/libarm64 boot/common boot/efi boot/efi/boot1 boot/efi/include/arm64 boot/efi/loader boot/efi/loader/arch/arm64

2015-04-14 Thread Andrew Turner
Author: andrew
Date: Tue Apr 14 13:55:01 2015
New Revision: 281526
URL: https://svnweb.freebsd.org/changeset/base/281526

Log:
  Add support for arm64 to loader.efi and boot1.efi
  
  Reviewed by:  emaste
  Sponsored by: The FreeBSD Foundation

Added:
  head/sys/arm64/include/psl.h   (contents, props changed)
  head/sys/boot/Makefile.arm64   (contents, props changed)
  head/sys/boot/arm64/
  head/sys/boot/arm64/Makefile   (contents, props changed)
  head/sys/boot/arm64/libarm64/
  head/sys/boot/arm64/libarm64/cache.c   (contents, props changed)
  head/sys/boot/arm64/libarm64/cache.h   (contents, props changed)
  head/sys/boot/efi/boot1/fat-arm64.tmpl.bz2.uu   (contents, props changed)
  head/sys/boot/efi/include/arm64/
  head/sys/boot/efi/include/arm64/efibind.h   (contents, props changed)
  head/sys/boot/efi/loader/arch/arm64/
  head/sys/boot/efi/loader/arch/arm64/Makefile.inc   (contents, props changed)
  head/sys/boot/efi/loader/arch/arm64/exec.c   (contents, props changed)
  head/sys/boot/efi/loader/arch/arm64/ldscript.arm64   (contents, props changed)
  head/sys/boot/efi/loader/arch/arm64/start.S   (contents, props changed)
Modified:
  head/sys/boot/common/Makefile.inc
  head/sys/boot/efi/Makefile
  head/sys/boot/efi/boot1/generate-fat.sh
  head/sys/boot/efi/loader/Makefile
  head/sys/boot/efi/loader/copy.c

Added: head/sys/arm64/include/psl.h
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/arm64/include/psl.hTue Apr 14 13:55:01 2015
(r281526)
@@ -0,0 +1 @@
+/* $FreeBSD$ */

Added: head/sys/boot/Makefile.arm64
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/boot/Makefile.arm64Tue Apr 14 13:55:01 2015
(r281526)
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+.if ${MK_FDT} != no
+SUBDIR+=   fdt
+.endif
+
+SUBDIR+=   efi

Added: head/sys/boot/arm64/Makefile
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/boot/arm64/MakefileTue Apr 14 13:55:01 2015
(r281526)
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+.include bsd.subdir.mk

Added: head/sys/boot/arm64/libarm64/cache.c
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/boot/arm64/libarm64/cache.cTue Apr 14 13:55:01 2015
(r281526)
@@ -0,0 +1,95 @@
+/*-
+ * Copyright (c) 2014 The FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software was developed by Semihalf under
+ * the sponsorship of the FreeBSD Foundation.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include sys/cdefs.h
+__FBSDID($FreeBSD$);
+
+#include sys/param.h
+
+#include machine/armreg.h
+
+#include stand.h
+#include efi.h
+
+#include cache.h
+
+static unsigned int
+get_dcache_line_size(void)
+{
+   uint64_t ctr;
+   unsigned int dcl_size;
+
+   /* Accessible from all security levels */
+   ctr = READ_SPECIALREG(ctr_el0);
+
+   /*
+* Relevant field [19:16] is LOG2
+* of the number of words in DCache line
+*/
+   dcl_size = CTR_DLINE_SIZE(ctr);
+
+   /* Size of word shifted by cache line size */
+   return (sizeof(int)  dcl_size);
+}
+
+void
+cpu_flush_dcache(const void *ptr, size_t len)
+{
+
+   uint64_t cl_size;
+   vm_offset_t addr, end;
+
+   cl_size = get_dcache_line_size();
+
+   /* Calculate end address to clean */
+   end = (vm_offset_t)(ptr + len);
+   /* Align start 

Re: svn commit: r281526 - in head/sys: arm64/include boot boot/arm64 boot/arm64/libarm64 boot/common boot/efi boot/efi/boot1 boot/efi/include/arm64 boot/efi/loader boot/efi/loader/arch/arm64

2015-04-14 Thread Andrew Turner
On Tue, 14 Apr 2015 13:55:02 + (UTC)
Andrew Turner and...@freebsd.org wrote:

 Author: andrew
 Date: Tue Apr 14 13:55:01 2015
 New Revision: 281526
 URL: https://svnweb.freebsd.org/changeset/base/281526
 
 Log:
   Add support for arm64 to loader.efi and boot1.efi
   
   Reviewed by:emaste
   Sponsored by:   The FreeBSD Foundation

Differential Revision: https://reviews.freebsd.org/D2288

Andrew
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org