[wip] Enable aarch64 exceptions
This commit is contained in:
		
							parent
							
								
									cb8932d68e
								
							
						
					
					
						commit
						185f6916ac
					
				| 
						 | 
					@ -0,0 +1,44 @@
 | 
				
			||||||
 | 
					// Interrupt handling
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// The base address is given by VBAR_ELn and each entry has a defined offset from this
 | 
				
			||||||
 | 
					// base address. Each table has 16 entries, with each entry being 128 bytes (32 instructions)
 | 
				
			||||||
 | 
					// in size. The table effectively consists of 4 sets of 4 entries.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VBAR_EL1, VBAR_EL2, VBAR_EL3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CurrentEL with SP0: +0x0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Synchronous
 | 
				
			||||||
 | 
					    IRQ/vIRQ
 | 
				
			||||||
 | 
					    FIQ
 | 
				
			||||||
 | 
					    SError/vSError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CurrentEL with SPx: +0x200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Synchronous
 | 
				
			||||||
 | 
					    IRQ/vIRQ
 | 
				
			||||||
 | 
					    FIQ
 | 
				
			||||||
 | 
					    SError/vSError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Lower EL using AArch64: +0x400
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Synchronous
 | 
				
			||||||
 | 
					    IRQ/vIRQ
 | 
				
			||||||
 | 
					    FIQ
 | 
				
			||||||
 | 
					    SError/vSError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Lower EL using AArch32: +0x600
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Synchronous
 | 
				
			||||||
 | 
					    IRQ/vIRQ
 | 
				
			||||||
 | 
					    FIQ
 | 
				
			||||||
 | 
					    SError/vSError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// When the processor takes an exception to AArch64 execution state,
 | 
				
			||||||
 | 
					// all of the PSTATE interrupt masks is set automatically. This means
 | 
				
			||||||
 | 
					// that further exceptions are disabled. If software is to support
 | 
				
			||||||
 | 
					// nested exceptions, for example, to allow a higher priority interrupt
 | 
				
			||||||
 | 
					// to interrupt the handling of a lower priority source, then software needs
 | 
				
			||||||
 | 
					// to explicitly re-enable interrupts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue