Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Jul 2014 13:49:53 +0000 (UTC)
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r268312 - projects/arm64/sys/arm64/arm64
Message-ID:  <201407061349.s66Dnrg1007057@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andrew
Date: Sun Jul  6 13:49:53 2014
New Revision: 268312
URL: http://svnweb.freebsd.org/changeset/base/268312

Log:
  Load the exception vector on boot. We can now use brk to signal mi_startup
  returned as it should never happen.
  
  While here clean the stye a little.

Modified:
  projects/arm64/sys/arm64/arm64/locore.S

Modified: projects/arm64/sys/arm64/arm64/locore.S
==============================================================================
--- projects/arm64/sys/arm64/arm64/locore.S	Sun Jul  6 13:48:15 2014	(r268311)
+++ projects/arm64/sys/arm64/arm64/locore.S	Sun Jul  6 13:49:53 2014	(r268312)
@@ -115,8 +115,8 @@ virtdone:
 	bl	initarm
 	bl	mi_startup
 
-3:	wfi
-	b	3b
+	/* We should not get here */
+	brk	0
 
 	.align 3
 .Lvirtdone:
@@ -177,8 +177,8 @@ drop_to_el1:
 	.quad SCTLR_RES1
 
 #define	VECT_EMPTY	\
-    .align 7;		\
-    1:	b	1b
+	.align 7;	\
+	1:	b	1b
 
 	.align 11
 hyp_vectors:
@@ -406,6 +406,15 @@ build_block_pagetable:
 start_mmu:
 	dsb	sy
 
+	/* Load the exception vectors */
+	/*
+	 * TODO: We should use ldr x2, =exception_vectors here
+	 * when clang supports it.
+	 */
+	adr	x2, _exception_vectors
+	ldr	x2, [x2]
+	msr	vbar_el1, x2
+
 	/* Load ttbr0 and ttbr1 */
 	msr	ttbr0_el1, x27
 	msr	ttbr1_el1, x26
@@ -436,6 +445,8 @@ start_mmu:
 	ret
 
 	.align 3
+_exception_vectors:
+	.quad	exception_vectors
 mair:
 	.quad	MAIR(0x00, 0) |	MAIR(0x44, 1) |	MAIR(0xff, 2)
 tcr:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407061349.s66Dnrg1007057>