arch/riscv: trap handler: Print load/store access width in bits
This is easier to read than the raw shift amount that's extracted from load/store instructions. Change-Id: Ia16ab9fbaf55345b654ea65e65267ed900eb29e1 Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Reviewed-on: https://review.coreboot.org/21654 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Martin Roth
						Martin Roth
					
				
			
			
				
	
			
			
			
						parent
						
							7090377a87
						
					
				
				
					commit
					5a01d6a152
				
			| @@ -245,7 +245,7 @@ void handle_misaligned_load(trapframe *tf) { | |||||||
| 	insn_t memWidth = (faultingInstruction & widthMask) >> 12; | 	insn_t memWidth = (faultingInstruction & widthMask) >> 12; | ||||||
| 	insn_t destMask = 0xF80; | 	insn_t destMask = 0xF80; | ||||||
| 	insn_t destRegister = (faultingInstruction & destMask) >> 7; | 	insn_t destRegister = (faultingInstruction & destMask) >> 7; | ||||||
| 	printk(BIOS_DEBUG, "Width: 0x%x\n", memWidth); | 	printk(BIOS_DEBUG, "Width:              %d bits\n", (1 << memWidth) * 8); | ||||||
| 	if (memWidth == 3) { | 	if (memWidth == 3) { | ||||||
| 		// load double, handle the issue | 		// load double, handle the issue | ||||||
| 		void* badAddress = (void*) tf->badvaddr; | 		void* badAddress = (void*) tf->badvaddr; | ||||||
| @@ -274,7 +274,7 @@ void handle_misaligned_store(trapframe *tf) { | |||||||
| 	insn_t memWidth = (faultingInstruction & widthMask) >> 12; | 	insn_t memWidth = (faultingInstruction & widthMask) >> 12; | ||||||
| 	insn_t srcMask = 0x1F00000; | 	insn_t srcMask = 0x1F00000; | ||||||
| 	insn_t srcRegister = (faultingInstruction & srcMask) >> 20; | 	insn_t srcRegister = (faultingInstruction & srcMask) >> 20; | ||||||
| 	printk(BIOS_DEBUG, "Width: 0x%x\n", memWidth); | 	printk(BIOS_DEBUG, "Width:              %d bits\n", (1 << memWidth) * 8); | ||||||
| 	if (memWidth == 3) { | 	if (memWidth == 3) { | ||||||
| 		// store double, handle the issue | 		// store double, handle the issue | ||||||
| 		void* badAddress = (void*) tf->badvaddr; | 		void* badAddress = (void*) tf->badvaddr; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user