Basic support for arm64 is enabled in libpayload. Features added: 1) mem* operations in assembly. 2) Basic exception handling and support for testing exceptions. 3) Caching support. Tested with arm64-generic board compilation. BUG=None BRANCH=None TEST=Compilation successful Original-Change-Id: I4e86301f9c6383abc078e2b70071fb84bd6e4741 Original-Signed-off-by: Furquan Shaikh <furquan@google.com> Original-Reviewed-on: https://chromium-review.googlesource.com/187067 Original-Tested-by: Furquan Shaikh <furquan@chromium.org> Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org> (cherry picked from commit a70d13f3d225535843ab352290eab2e1ec7a9b4b) Signed-off-by: Marc Jones <marc.jones@se-eng.com> Change-Id: Ie3affe6a2bdd4fed3058de739d4c6aa573e5b251 Reviewed-on: http://review.coreboot.org/8063 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
		
			
				
	
	
		
			30 lines
		
	
	
		
			437 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			437 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * This file is part of the coreboot project.
 | 
						|
 *
 | 
						|
 * Copyright 2013 Google Inc.
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __ARM64_ASM_H
 | 
						|
#define __ARM64_ASM_H
 | 
						|
 | 
						|
#  define ARM64(x...)	x
 | 
						|
#  define W(instr)	instr
 | 
						|
 | 
						|
#define ALIGN .align 2
 | 
						|
 | 
						|
#define ENDPROC(name) \
 | 
						|
	.type name, %function; \
 | 
						|
	END(name)
 | 
						|
 | 
						|
#define ENTRY(name) \
 | 
						|
	.section .text.name, "ax", %progbits; \
 | 
						|
	.global name; \
 | 
						|
	ALIGN; \
 | 
						|
	name:
 | 
						|
 | 
						|
#define END(name) \
 | 
						|
	.size name, .-name
 | 
						|
 | 
						|
#endif	/* __ARM64_ASM_H */
 |