mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 06:42:43 +00:00 
			
		
		
		
	Kernel: Add UART class for aarch64
This commit is contained in:
		
							parent
							
								
									44c787e88b
								
							
						
					
					
						commit
						54aabb07f9
					
				
					 4 changed files with 224 additions and 6 deletions
				
			
		|  | @ -5,21 +5,25 @@ | |||
|  */ | ||||
| 
 | ||||
| #include <AK/Types.h> | ||||
| #include <Kernel/Prekernel/Arch/aarch64/GPIO.h> | ||||
| #include <Kernel/Prekernel/Arch/aarch64/Mailbox.h> | ||||
| #include <Kernel/Prekernel/Arch/aarch64/UART.h> | ||||
| 
 | ||||
| extern "C" [[noreturn]] void halt(); | ||||
| 
 | ||||
| extern "C" [[noreturn]] void init(); | ||||
| extern "C" [[noreturn]] void init() | ||||
| { | ||||
|     auto& gpio = Prekernel::GPIO::the(); | ||||
|     gpio.set_pin_function(14, Prekernel::GPIO::PinFunction::Alternate0); | ||||
|     gpio.set_pin_function(15, Prekernel::GPIO::PinFunction::Alternate0); | ||||
|     auto& uart = Prekernel::UART::the(); | ||||
| 
 | ||||
|     gpio.set_pin_pull_up_down_state(Array { 14, 15 }, Prekernel::GPIO::PullUpDownState::Disable); | ||||
|     uart.print_str("\r\nWelcome to Serenity OS!\r\n"); | ||||
|     uart.print_str("Imagine this being your ideal operating system.\r\n"); | ||||
|     uart.print_str("Observed deviations from that ideal are shortcomings of your imagination.\r\n\r\n"); | ||||
| 
 | ||||
|     u32 firmware_version = Prekernel::Mailbox::query_firmware_version(); | ||||
|     uart.print_str("Firmware version: "); | ||||
|     uart.print_num(firmware_version); | ||||
|     uart.print_str("\r\n"); | ||||
| 
 | ||||
|     [[maybe_unused]] u32 firmware_version = Prekernel::Mailbox::query_firmware_version(); | ||||
|     halt(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nico Weber
						Nico Weber