AMD binaryPI: Drop ramtop via nvram
If HAVE_ACPI_RESUME gets implemented, EARLY_CBMEM_INIT is required too. Change-Id: I8c7932297e0938eff629d1e46081ccf3e7690aea Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/8185 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
This commit is contained in:
parent
7a846e7acc
commit
2320cbebc6
|
@ -123,34 +123,4 @@ int s3_load_nvram_early(int size, u32 *old_dword, int nvram_pos)
|
||||||
return nvram_pos;
|
return nvram_pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
int acpi_get_sleep_type(void)
|
|
||||||
{
|
|
||||||
u16 tmp = inw(ACPI_PM1_CNT_BLK);
|
|
||||||
tmp = ((tmp & (7 << 10)) >> 10);
|
|
||||||
/* printk(BIOS_DEBUG, "SLP_TYP type was %x\n", tmp); */
|
|
||||||
return (int)tmp;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
int acpi_is_wakeup_early(void)
|
|
||||||
{
|
|
||||||
return (acpi_get_sleep_type() == 3);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
unsigned long get_top_of_ram(void)
|
|
||||||
{
|
|
||||||
uint32_t xdata = 0;
|
|
||||||
int xnvram_pos = 0xf8, xi;
|
|
||||||
for (xi = 0; xi<4; xi++) {
|
|
||||||
outb(xnvram_pos, BIOSRAM_INDEX);
|
|
||||||
xdata &= ~(0xff << (xi * 8));
|
|
||||||
xdata |= inb(BIOSRAM_DATA) << (xi *8);
|
|
||||||
xnvram_pos++;
|
|
||||||
}
|
|
||||||
return (unsigned long) xdata;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -38,28 +38,12 @@
|
||||||
#define PM_MMIO_BASE 0xfed80300
|
#define PM_MMIO_BASE 0xfed80300
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
int acpi_get_sleep_type(void)
|
int acpi_get_sleep_type(void)
|
||||||
{
|
{
|
||||||
u16 tmp = inw(ACPI_PM1_CNT_BLK);
|
u16 tmp = inw(ACPI_PM1_CNT_BLK);
|
||||||
tmp = ((tmp & (7 << 10)) >> 10);
|
tmp = ((tmp & (7 << 10)) >> 10);
|
||||||
/* printk(BIOS_DEBUG, "SLP_TYP type was %x\n", tmp); */
|
|
||||||
return (int)tmp;
|
return (int)tmp;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void backup_top_of_ram(uint64_t ramtop)
|
|
||||||
{
|
|
||||||
u32 dword = (u32) ramtop;
|
|
||||||
int nvram_pos = 0xf8, i; /* temp */
|
|
||||||
/* printk(BIOS_DEBUG, "dword=%x\n", dword); */
|
|
||||||
for (i = 0; i<4; i++) {
|
|
||||||
/* printk(BIOS_DEBUG, "nvram_pos=%x, dword>>(8*i)=%x\n", nvram_pos, (dword >>(8 * i)) & 0xff); */
|
|
||||||
outb(nvram_pos, BIOSRAM_INDEX);
|
|
||||||
outb((dword >>(8 * i)) & 0xff , BIOSRAM_DATA);
|
|
||||||
nvram_pos++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void pm_write8(u8 reg, u8 value)
|
void pm_write8(u8 reg, u8 value)
|
||||||
{
|
{
|
||||||
|
@ -113,23 +97,6 @@ void hudson_enable(device_t dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
|
||||||
unsigned long get_top_of_ram(void)
|
|
||||||
{
|
|
||||||
uint32_t xdata = 0;
|
|
||||||
int xnvram_pos = 0xf8, xi;
|
|
||||||
if (acpi_get_sleep_type() != 3)
|
|
||||||
return 0;
|
|
||||||
for (xi = 0; xi<4; xi++) {
|
|
||||||
outb(xnvram_pos, BIOSRAM_INDEX);
|
|
||||||
xdata &= ~(0xff << (xi * 8));
|
|
||||||
xdata |= inb(BIOSRAM_DATA) << (xi *8);
|
|
||||||
xnvram_pos++;
|
|
||||||
}
|
|
||||||
return (unsigned long) xdata;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void hudson_init_acpi_ports(void)
|
static void hudson_init_acpi_ports(void)
|
||||||
{
|
{
|
||||||
/* We use some of these ports in SMM regardless of whether or not
|
/* We use some of these ports in SMM regardless of whether or not
|
||||||
|
|
Loading…
Reference in New Issue