@@ -76,7 +76,7 @@ fn main_inner(image: Handle, mut st: SystemTable<Boot>) -> Status {
7676
7777 let kernel = load_kernel ( image, & mut st) ;
7878
79- let ( framebuffer_addr , framebuffer_info ) = init_logger ( & st, kernel. config ) ;
79+ let framebuffer = init_logger ( & st, kernel. config ) ;
8080
8181 // we no longer need the system table for printing panics
8282 unsafe {
@@ -85,7 +85,9 @@ fn main_inner(image: Handle, mut st: SystemTable<Boot>) -> Status {
8585
8686 log:: info!( "UEFI bootloader started" ) ;
8787 log:: info!( "Reading kernel and configuration from disk was successful" ) ;
88- log:: info!( "Using framebuffer at {:#x}" , framebuffer_addr) ;
88+ if let Some ( framebuffer) = framebuffer {
89+ log:: info!( "Using framebuffer at {:#x}" , framebuffer. addr) ;
90+ }
8991
9092 let mmap_storage = {
9193 let max_mmap_size =
@@ -107,10 +109,7 @@ fn main_inner(image: Handle, mut st: SystemTable<Boot>) -> Status {
107109 let page_tables = create_page_tables ( & mut frame_allocator) ;
108110
109111 let system_info = SystemInfo {
110- framebuffer : Some ( RawFrameBufferInfo {
111- addr : framebuffer_addr,
112- info : framebuffer_info,
113- } ) ,
112+ framebuffer,
114113 rsdp_addr : {
115114 use uefi:: table:: cfg;
116115 let mut config_entries = system_table. config_table ( ) . iter ( ) ;
@@ -366,11 +365,11 @@ fn create_page_tables(
366365 }
367366}
368367
369- fn init_logger ( st : & SystemTable < Boot > , config : BootloaderConfig ) -> ( PhysAddr , FrameBufferInfo ) {
368+ fn init_logger ( st : & SystemTable < Boot > , config : BootloaderConfig ) -> Option < RawFrameBufferInfo > {
370369 let gop = st
371370 . boot_services ( )
372371 . locate_protocol :: < GraphicsOutput > ( )
373- . expect ( "failed to locate gop" ) ;
372+ . ok ( ) ? ;
374373 let gop = unsafe { & mut * gop. get ( ) } ;
375374
376375 let mode = {
@@ -423,7 +422,10 @@ fn init_logger(st: &SystemTable<Boot>, config: BootloaderConfig) -> (PhysAddr, F
423422
424423 bootloader_x86_64_common:: init_logger ( slice, info) ;
425424
426- ( PhysAddr :: new ( framebuffer. as_mut_ptr ( ) as u64 ) , info)
425+ Some ( RawFrameBufferInfo {
426+ addr : PhysAddr :: new ( framebuffer. as_mut_ptr ( ) as u64 ) ,
427+ info,
428+ } )
427429}
428430
429431#[ panic_handler]
0 commit comments