Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
1. Your screenshot would suggest you are in VGA text mode, in which case you do not have a framebuffer.
2. Why do you think your framebuffer is at 0xFE000000? Your screenshot shows the BGA device having a BAR0 value of 0xFD000008 which indicates its framebuffer memory is at 0xFD000000.
klange wrote:1. Your screenshot would suggest you are in VGA text mode, in which case you do not have a framebuffer.
2. Why do you think your framebuffer is at 0xFE000000? Your screenshot shows the BGA device having a BAR0 value of 0xFD000008 which indicates its framebuffer memory is at 0xFD000000.
klange wrote:1. Your screenshot would suggest you are in VGA text mode, in which case you do not have a framebuffer.
2. Why do you think your framebuffer is at 0xFE000000? Your screenshot shows the BGA device having a BAR0 value of 0xFD000008 which indicates its framebuffer memory is at 0xFD000000.
Multiboot VBE
i got the vbe framebuffer address in someway. and i just use vga text mode to display messages because once i enabled vbe i can't use vga text mode anymore.
klange wrote:1. Your screenshot would suggest you are in VGA text mode, in which case you do not have a framebuffer.
2. Why do you think your framebuffer is at 0xFE000000? Your screenshot shows the BGA device having a BAR0 value of 0xFD000008 which indicates its framebuffer memory is at 0xFD000000.
and i found that it access any address except 0xC0000000 - 0xFFFFFFFF even though i've already mapped it
Multiboot does not put the framebuffer in a specific place, you need to get the address from the multiboot info struct passed to your kernel and it will definitely change in different environments. Further, if you are running QEMU with the "-kernel" option it doesn't support framebuffer mode setting for Multiboot.
Multiboot does not put the framebuffer in a specific place, you need to get the address from the multiboot info struct passed to your kernel and it will definitely change in different environments. Further, if you are running QEMU with the "-kernel" option it doesn't support framebuffer mode setting for Multiboot.
forget about that. the real problem is it can't access 0xC0000000 - 0xFFFFFFFF. i wonder is that a problem of paging.cs?
nifanfa wrote:i got the vbe framebuffer address in someway. and i just use vga text mode to display messages because once i enabled vbe i can't use vga text mode anymore.
If you're testing video things, you should probably be using something else to print debug output, like a serial port.
nifanfa wrote:i got the vbe framebuffer address in someway. and i just use vga text mode to display messages because once i enabled vbe i can't use vga text mode anymore.
If you're testing video things, you should probably be using something else to print debug output, like a serial port.
but i wonder if i use Bochs VBE Extension. as the wiki said the framebuffer was fixed at 0xE0000000.
and i also tried to map 0xE0000000 and write 0xFF to that address it doesn't work neither.
*((byte*)0xE0000000) is zero. i tried to use pmemsave 0xE0000000 1024 dump.bin to make a memory dump. and i opened the dump.bin and the value is zero too
Last edited by nifanfa on Sun Jan 09, 2022 1:55 am, edited 1 time in total.
nifanfa wrote:but i wonder if i use Bochs VBE Extension. as the wiki said the framebuffer was fixed at 0xE0000000.
but i also tried to map 0xE0000000 it doesn't work neither
QEMU is not Bochs; its implementation of the virtual display device has a number of differences and improvements, and I'm also not sure that the fixed framebuffer address is still true of bochs.
nifanfa wrote:but i wonder if i use Bochs VBE Extension. as the wiki said the framebuffer was fixed at 0xE0000000.
but i also tried to map 0xE0000000 it doesn't work neither
QEMU is not Bochs; its implementation of the virtual display device has a number of differences and improvements, and I'm also not sure that the fixed framebuffer address is still true of bochs.
nifanfa wrote:but i wonder if i use Bochs VBE Extension. as the wiki said the framebuffer was fixed at 0xE0000000.
but i also tried to map 0xE0000000 it doesn't work neither
QEMU is not Bochs; its implementation of the virtual display device has a number of differences and improvements, and I'm also not sure that the fixed framebuffer address is still true of bochs.