Hi, > ACPI PciWindow32: Base=0xA0000000 End=0xFEEFFFFF Length=0x5EF00000
> begin32=c0000000 end32=fec00000 begin64=0 end64=0 qemu & seabios pick a 32bit window size which allows to cover it with a single mtrr entry. Size must be a power of two for that to work. [root@fedora ~]# cat /proc/mtrr reg00: base=0x080000000 ( 2048MB), size= 2048MB, count=1: uncachable So we have three cases for piix (as you've figured in the source code already). Start at 0x80000000 (2G window), 0xc0000000 (1G window) and 0xe0000000 (512M window). btw: q35 has a fixed 1G window, max low ram addr is 0xb000000, the remaining address space (0xb0000000 -> 0xc0000000) is used for mmconfig. > I guess the range starting at 0xc0000000 is somehow "incompatible" with > the EFI memory map. (I can't actually explain this idea because, again, > this second range is a proper subset of the former, and its size is > still 1004MB.) Probably efi places the gfx memory bar somewhere between 0xa0000000 and 0xc0000000. Sets up efifb accordingly. Then the linux kernel loads and figures "Oh, that bar is outside the 0xc0000000+ window" and goes remap it -> efifb writes go into nowhere. cheers, Gerd