soc/amd/common: Don't use CAR_GLOBAL

All platforms using this code have NO_CAR_GLOBAL_MIGRATION.

Change-Id: I422d5637caa1b55fa6bad30d25f5e34cbba40851
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/30509
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
Arthur Heymans 2018-12-29 13:58:40 +01:00 committed by Kyösti Mälkki
parent a8eb477c2e
commit 85e9f28461
2 changed files with 12 additions and 22 deletions

View File

@ -14,7 +14,6 @@
* GNU General Public License for more details.
*/
#include <arch/early_variables.h>
#include <arch/acpi.h>
#include <cpu/x86/mtrr.h>
#include <cbfs.h>
@ -613,23 +612,20 @@ const void *agesawrapper_locate_module(const char name[8])
return (AMD_MODULE_HEADER *)image->ModuleInfoOffset;
}
static MODULE_ENTRY agesa_dispatcher CAR_GLOBAL;
static MODULE_ENTRY agesa_dispatcher;
MODULE_ENTRY agesa_get_dispatcher(void)
{
const AMD_MODULE_HEADER *module;
static const char id[8] = AGESA_ID;
MODULE_ENTRY val = car_get_var(agesa_dispatcher);
if (val != NULL)
return val;
if (agesa_dispatcher != NULL)
return agesa_dispatcher;
module = agesawrapper_locate_module(id);
if (!module)
return NULL;
val = module->ModuleDispatcher;
car_set_var(agesa_dispatcher, val);
return val;
agesa_dispatcher = module->ModuleDispatcher;
return agesa_dispatcher;
}

View File

@ -17,7 +17,6 @@
#include <stdlib.h>
#include <string.h>
#include <arch/io.h>
#include <arch/early_variables.h>
#include <lib.h>
#include <timer.h>
#include <console/console.h>
@ -32,36 +31,31 @@
#define SPI_DEBUG_DRIVER IS_ENABLED(CONFIG_DEBUG_SPI_FLASH)
static uintptr_t spibar CAR_GLOBAL;
static uintptr_t get_spibase(void)
{
return car_get_var(spibar);
}
static uintptr_t spibar;
static void set_spibar(uintptr_t base)
{
car_set_var(spibar, base);
spibar = base;
}
static inline uint8_t spi_read8(uint8_t reg)
{
return read8((void *)(get_spibase() + reg));
return read8((void *)(spibar + reg));
}
static inline uint32_t spi_read32(uint8_t reg)
{
return read32((void *)(get_spibase() + reg));
return read32((void *)(spibar + reg));
}
static inline void spi_write8(uint8_t reg, uint8_t val)
{
write8((void *)(get_spibase() + reg), val);
write8((void *)(spibar + reg), val);
}
static inline void spi_write32(uint8_t reg, uint32_t val)
{
write32((void *)(get_spibase() + reg), val);
write32((void *)(spibar + reg), val);
}
static void dump_state(const char *str)
@ -75,7 +69,7 @@ static void dump_state(const char *str)
printk(BIOS_DEBUG, "TxByteCount: %x\n", spi_read8(SPI_TX_BYTE_COUNT));
printk(BIOS_DEBUG, "RxByteCount: %x\n", spi_read8(SPI_RX_BYTE_COUNT));
printk(BIOS_DEBUG, "CmdCode: %x\n", spi_read8(SPI_CMD_CODE));
hexdump((void *)(get_spibase() + SPI_FIFO), SPI_FIFO_DEPTH);
hexdump((void *)(spibar + SPI_FIFO), SPI_FIFO_DEPTH);
}
static int wait_for_ready(void)