Add high table support to via vt8454c.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Myles Watson <mylesgw@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4222 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
55faef348a
commit
d107593691
|
@ -25,6 +25,9 @@ uses IRQ_SLOT_COUNT
|
||||||
uses HAVE_ACPI_TABLES
|
uses HAVE_ACPI_TABLES
|
||||||
uses HAVE_OPTION_TABLE
|
uses HAVE_OPTION_TABLE
|
||||||
uses USE_OPTION_TABLE
|
uses USE_OPTION_TABLE
|
||||||
|
uses HAVE_LOW_TABLES
|
||||||
|
uses HAVE_HIGH_TABLES
|
||||||
|
uses HAVE_MAINBOARD_RESOURCES
|
||||||
|
|
||||||
uses USE_FALLBACK_IMAGE
|
uses USE_FALLBACK_IMAGE
|
||||||
uses HAVE_FALLBACK_BOOT
|
uses HAVE_FALLBACK_BOOT
|
||||||
|
@ -139,6 +142,13 @@ default HAVE_ACPI_TABLES=1
|
||||||
##
|
##
|
||||||
default HAVE_OPTION_TABLE=1
|
default HAVE_OPTION_TABLE=1
|
||||||
|
|
||||||
|
##
|
||||||
|
## Build code to fill in tables both in low and high memory
|
||||||
|
##
|
||||||
|
default HAVE_LOW_TABLES=1
|
||||||
|
default HAVE_HIGH_TABLES=1
|
||||||
|
default HAVE_MAINBOARD_RESOURCES=1
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## Build code to setup a generic IOAPIC
|
## Build code to setup a generic IOAPIC
|
||||||
|
|
|
@ -20,8 +20,23 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
|
#include <boot/tables.h>
|
||||||
|
#include <console/console.h>
|
||||||
#include "chip.h"
|
#include "chip.h"
|
||||||
|
|
||||||
|
/* in arch/i386/boot/tables.c */
|
||||||
|
extern uint64_t high_tables_base, high_tables_size;
|
||||||
|
|
||||||
|
int add_mainboard_resources(struct lb_memory *mem)
|
||||||
|
{
|
||||||
|
#if HAVE_HIGH_TABLES == 1
|
||||||
|
printk_debug("Adding high table area\n");
|
||||||
|
lb_add_memory_range(mem, LB_MEM_TABLE,
|
||||||
|
high_tables_base, high_tables_size);
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
CHIP_NAME("VIA VT8454c Mainboard")
|
CHIP_NAME("VIA VT8454c Mainboard")
|
||||||
};
|
};
|
||||||
|
|
|
@ -87,6 +87,12 @@ static u32 find_pci_tolm(struct bus *bus)
|
||||||
return tolm;
|
return tolm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if HAVE_HIGH_TABLES==1
|
||||||
|
/* maximum size of high tables in KB */
|
||||||
|
#define HIGH_TABLES_SIZE 64
|
||||||
|
extern uint64_t high_tables_base, high_tables_size;
|
||||||
|
#endif
|
||||||
|
|
||||||
static void pci_domain_set_resources(device_t dev)
|
static void pci_domain_set_resources(device_t dev)
|
||||||
{
|
{
|
||||||
device_t mc_dev;
|
device_t mc_dev;
|
||||||
|
@ -117,6 +123,12 @@ static void pci_domain_set_resources(device_t dev)
|
||||||
else
|
else
|
||||||
tomk = (((rambits << 6) - (4 << reg) - 1) * 1024);
|
tomk = (((rambits << 6) - (4 << reg) - 1) * 1024);
|
||||||
|
|
||||||
|
#if HAVE_HIGH_TABLES == 1
|
||||||
|
high_tables_base = (tomk - HIGH_TABLES_SIZE) * 1024;
|
||||||
|
high_tables_size = HIGH_TABLES_SIZE* 1024;
|
||||||
|
printk_debug("tom: %lx, high_tables_base: %llx, high_tables_size: %llx\n", tomk*1024, high_tables_base, high_tables_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Compute the top of Low memory */
|
/* Compute the top of Low memory */
|
||||||
tolmk = pci_tolm >> 10;
|
tolmk = pci_tolm >> 10;
|
||||||
if (tolmk >= tomk) {
|
if (tolmk >= tomk) {
|
||||||
|
|
Loading…
Reference in New Issue