For all targets, into this new file move TARGET_LONG_BITS, TARGET_PAGE_BITS, TARGET_PHYS_ADDR_SPACE_BITS, TARGET_VIRT_ADDR_SPACE_BITS, and NB_MMU_MODES. Include this new file from exec/cpu-defs.h. This now removes the somewhat odd requirement that target/arch/cpu.h defines TARGET_LONG_BITS before including exec/cpu-defs.h, so push the bulk of the includes within target/arch/cpu.h to the top. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
		
			
				
	
	
		
			24 lines
		
	
	
		
			594 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			594 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * RISC-V cpu parameters for qemu.
 | 
						|
 *
 | 
						|
 * Copyright (c) 2017-2018 SiFive, Inc.
 | 
						|
 * SPDX-License-Identifier: GPL-2.0+
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef RISCV_CPU_PARAM_H
 | 
						|
#define RISCV_CPU_PARAM_H 1
 | 
						|
 | 
						|
#if defined(TARGET_RISCV64)
 | 
						|
# define TARGET_LONG_BITS 64
 | 
						|
# define TARGET_PHYS_ADDR_SPACE_BITS 56 /* 44-bit PPN */
 | 
						|
# define TARGET_VIRT_ADDR_SPACE_BITS 48 /* sv48 */
 | 
						|
#elif defined(TARGET_RISCV32)
 | 
						|
# define TARGET_LONG_BITS 32
 | 
						|
# define TARGET_PHYS_ADDR_SPACE_BITS 34 /* 22-bit PPN */
 | 
						|
# define TARGET_VIRT_ADDR_SPACE_BITS 32 /* sv32 */
 | 
						|
#endif
 | 
						|
#define TARGET_PAGE_BITS 12 /* 4 KiB Pages */
 | 
						|
#define NB_MMU_MODES 4
 | 
						|
 | 
						|
#endif
 |