forked from Mirrors/opensbi
		
	lib: sbi: fix number of PMP entries detection
CSR_PMPADDRn lower bits may read all-0 or all-1, depending on the configuration. For TOR it is all-0, for NAPOT - all-1. Thus if PMP entry was pre-configured as NAPOT, original code would stop scanning because value read back not equal to the written one. Mask lower bits before comparison to fix this Signed-off-by: Vladimir Kondratiev <vladimir.kondratiev@mobileye.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							62447cd7aa
						
					
				
				
					commit
					1a2e507d23
				
			@@ -825,7 +825,7 @@ static int hart_detect_features(struct sbi_scratch *scratch)
 | 
			
		||||
		} else {						\
 | 
			
		||||
			csr_write_allowed(__csr, &trap, __wrval);	\
 | 
			
		||||
			if (!trap.cause) {				\
 | 
			
		||||
				if (csr_swap(__csr, oldval) == __wrval)	\
 | 
			
		||||
				if ((csr_swap(__csr, oldval) & __wrval) == __wrval)	\
 | 
			
		||||
					(hfeatures->__field)++;		\
 | 
			
		||||
				else					\
 | 
			
		||||
					goto __skip;			\
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user