rust-osdev / bootloader

An experimental pure-Rust x86 bootloader

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

minimum_framebuffer_width/height does not seem to work

interstellarfrog opened this issue · comments

I am using QEMU to boot, I am using BIOS disk builder everything runs fine no errors or warnings but when I try to set the minimum screen size nothing new happens I have tested low and high resolutions

    let mut boot_config = BootConfig::default();

    let _ = boot_config.frame_buffer.minimum_framebuffer_width.insert(1920);
    let _ = boot_config.frame_buffer.minimum_framebuffer_height.insert(1080);

Is this just a problem with me or is this not fully implemented yet?

log:

  INFO : Framebuffer info: FrameBufferInfo { byte_len: 2764800, width: 1280, height: 720, pixel_format: Bgr, bytes_per_pixel: 3, stride: 1280 }
  
  INFO : 4th Stage
  
  INFO : BiosInfo { stage_4: Region { start: 130000, len: 2b2f8 }, kernel: Region { start: 1000000, len: 223ad0 }, ramdisk: Region { start: 1224000, len: 104 }, config_file: Region { start: 1224104, len: d2 }, last_used_addr: 12241d5, framebuffer: BiosFramebufferInfo { region: Region { start: fd000000, len: 2a3000 }, width: 500, height: 2d0, bytes_per_pixel: 3, stride: 500, pixel_format: Bgr }, memory_map_addr: ed38, memory_map_len: 7 }

  INFO : BIOS boot
  
  INFO : Elf file loaded at 0x0000000001000000
  
  INFO : virtual_address_offset: 0x8000000000
  
  INFO : Handling Segment: Ph64(ProgramHeader64 { type_: Ok(Load), flags: Flags(4), offset: 0, virtual_addr: 0, physical_addr: 0, file_size: 2380c, mem_size: 2380c, align: 1000 })
  
  INFO : Handling Segment: Ph64(ProgramHeader64 { type_: Ok(Load), flags: Flags(5), offset: 23810, virtual_addr: 24810, physical_addr: 24810, file_size: 6314c, mem_size: 6314c, align: 1000 })
  
  INFO : Handling Segment: Ph64(ProgramHeader64 { type_: Ok(Load), flags: Flags(6), offset: 86960, virtual_addr: 88960, physical_addr: 88960, file_size: dd58, mem_size: dd58, align: 1000 })
  
  INFO : Handling Segment: Ph64(ProgramHeader64 { type_: Ok(Load), flags: Flags(6), offset: 94700, virtual_addr: 97700, physical_addr: 97700, file_size: 880, mem_size: 15d60, align: 1000 })
  
  INFO : Mapping bss section
  
  INFO : Entry point at: 0x8000029a10
  
  INFO : Creating GDT at PhysAddr(0x1269000)
  
  INFO : Map framebuffer
  
  INFO : Map physical memory
  
  INFO : Allocate bootinfo
  
  INFO : Create Memory Map
  
  INFO : Create bootinfo
  
  INFO : Jumping to kernel entry point at VirtAddr(0x8000029a10)

after more testing this only seems to work for UEFI