Working changes for the technoloand sbc 710. MTRRs can now be configured as

either ROM starting at 0xc0000 or starting at 0xf0000. For the 0xf0000 case,
0xc0000 to 0xeffff is configured as FB, i.e. non-cacheable.
This commit is contained in:
Ronald G. Minnich 2001-10-24 19:13:21 +00:00
parent 71022a5661
commit fc135688be
2 changed files with 43 additions and 0 deletions

View file

@ -68,6 +68,47 @@ static unsigned int mtrr_msr[] = {
#define ROM MTRR_TYPE_RAM
#endif /* MEMORY_HOLE */
#ifdef MTRR_ONLY_TOP_64K_FLASH
// This is for boards that only support flash in low memory at 0xf0000
// and above, such as the technoland sbc 710. This type of board
// is so common that we put it here instead of in the sbc710 mainboard.c
static unsigned char fixed_mtrr_values[][4] = {
/* MTRRfix64K_00000_MSR, defines memory range from 0KB to 512 KB, each byte cover 64KB area */
{RAM, RAM, RAM, RAM}, {RAM, RAM, RAM, RAM},
/* MTRRfix16K_80000_MSR, defines memory range from 512KB to 640KB, each byte cover 16KB area */
{RAM, RAM, RAM, RAM}, {RAM, RAM, RAM, RAM},
/* MTRRfix16K_A0000_MSR, defines memory range from A0000 to C0000, each byte cover 16KB area */
{FB, FB, FB, FB}, {FB, FB, FB, FB},
/* MTRRfix4K_C0000_MSR, defines memory range from C0000 to C8000, each byte cover 4KB area */
{FB, FB, FB, FB}, {FB, FB, FB, FB},
/* MTRRfix4K_C8000_MSR, defines memory range from C8000 to D0000, each byte cover 4KB area */
{FB, FB, FB, FB}, {FB, FB, FB, FB},
/* MTRRfix4K_D0000_MSR, defines memory range from D0000 to D8000, each byte cover 4KB area */
{FB, FB, FB, FB}, {FB, FB, FB, FB},
/* MTRRfix4K_D8000_MSR, defines memory range from D8000 to E0000, each byte cover 4KB area */
{FB, FB, FB, FB}, {FB, FB, FB, FB},
/* MTRRfix4K_E0000_MSR, defines memory range from E0000 to E8000, each byte cover 4KB area */
{FB, FB, FB, FB}, {FB, FB, FB, FB},
/* MTRRfix4K_E8000_MSR, defines memory range from E8000 to F0000, each byte cover 4KB area */
{FB, FB, FB, FB}, {FB, FB, FB, FB},
/* MTRRfix4K_F0000_MSR, defines memory range from F0000 to F8000, each byte cover 4KB area */
{ROM, ROM, ROM, ROM}, {ROM, ROM, ROM, ROM},
/* MTRRfix4K_F8000_MSR, defines memory range from F8000 to 100000, each byte cover 4KB area */
{ROM, ROM, ROM, ROM}, {ROM, ROM, ROM, ROM},
};
#else
static unsigned char fixed_mtrr_values[][4] = {
/* MTRRfix64K_00000_MSR, defines memory range from 0KB to 512 KB, each byte cover 64KB area */
{RAM, RAM, RAM, RAM}, {RAM, RAM, RAM, RAM},
@ -102,6 +143,7 @@ static unsigned char fixed_mtrr_values[][4] = {
/* MTRRfix4K_F8000_MSR, defines memory range from F8000 to 100000, each byte cover 4KB area */
{ROM, ROM, ROM, ROM}, {ROM, ROM, ROM, ROM},
};
#endif
#undef FB
#undef RAM

View file

@ -17,6 +17,7 @@ nsuperio winbond/w83977ef keyboard=1
nsuperio winbond/w83877tf
option ENABLE_FIXED_AND_VARIABLE_MTRRS
option MTRR_ONLY_TOP_64K_FLASH
option PIIX4_DEVFN=0x38
option NO_KEYBOARD
option HAVE_PIRQ_TABLE