fork of 9front i guess
Find a file
cinap_lenrek 6cc223ee56 pc/pc64: fix faulty mtrr slot reuse (thanks Fulton)
The change 3306:c5cf77167bfe made the code reuse MTRR slots
of the default memory type.

But this did not take overlapping ranges into account!

If two or more variable-range MTRRs overlap, the following rules apply:

a.	If the memory types are identical, then that memory type is used.
b.	If at least one of the memory types is UC, then UC memory type is used.
c.	If at least of of the memory types is WT. and the only other memory type
	is WB, then th WT memory type is used.
d.	If the combination of memory types is not listed above,
	then the memory type used in undefined.

It so happend that on a Dell Latitude E7450 that the BIOS defines
the default type as UC. and the first slot defines a 16GB range
of type WB. Then the rest of the ranges mark the PCI space back
as UC, but overlapping the first WB range! This works because
of rule (B) above.

When trying to make the framebuffer write-combining, we would
falsely reuse one of the UC sub-ranges and making the UC memory
into WB as a side effect.

Thanks to Fulton for his patience and providing debug logs and
doing experiments for us to narrow the problem down.
2020-11-04 23:08:52 +01:00
386 add va_copy macro, conforming to c99 7.15.1.2 2020-03-22 17:31:39 -07:00
68000 add signed fixed size integer typedefs 2018-05-12 19:19:52 +02:00
68020 add va_copy macro, conforming to c99 7.15.1.2 2020-03-22 17:31:39 -07:00
acme win: fix window recreation command 2020-09-16 12:41:24 +02:00
adm/timezone timezones: change DST timezone string for South Australia 2019-11-20 11:49:16 +10:30
amd64 turn ptrdiff_t into a 64 bit type 2020-03-24 14:45:15 -07:00
arm add va_copy macro, conforming to c99 7.15.1.2 2020-03-22 17:31:39 -07:00
arm64 turn ptrdiff_t into a 64 bit type 2020-03-24 14:45:15 -07:00
lib aux/vga: eepc igfx support (thanks p.kosyh) 2020-09-26 20:47:17 -07:00
mips add va_copy macro, conforming to c99 7.15.1.2 2020-03-22 17:31:39 -07:00
power add va_copy macro, conforming to c99 7.15.1.2 2020-03-22 17:31:39 -07:00
power64 add signed fixed size integer typedefs 2018-05-12 19:19:52 +02:00
rc window: fix error exit with the -m flag 2020-09-16 13:12:13 +02:00
sparc ape: floating point improvements (thanks spew) 2018-05-24 13:40:44 +01:00
sparc64 add va_copy macro, conforming to c99 7.15.1.2 2020-03-22 17:31:39 -07:00
spim add signed fixed size integer typedefs 2018-05-12 19:19:52 +02:00
sys pc/pc64: fix faulty mtrr slot reuse (thanks Fulton) 2020-11-04 23:08:52 +01:00
.hgignore hgignore: ignore section 9 manpage indices, ignore init, kernels and bootloader binaries 2020-03-07 12:28:49 +01:00