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

View File

@ -17,7 +17,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <arch/io.h> #include <arch/io.h>
#include <arch/early_variables.h>
#include <lib.h> #include <lib.h>
#include <timer.h> #include <timer.h>
#include <console/console.h> #include <console/console.h>
@ -32,36 +31,31 @@
#define SPI_DEBUG_DRIVER IS_ENABLED(CONFIG_DEBUG_SPI_FLASH) #define SPI_DEBUG_DRIVER IS_ENABLED(CONFIG_DEBUG_SPI_FLASH)
static uintptr_t spibar CAR_GLOBAL; static uintptr_t spibar;
static uintptr_t get_spibase(void)
{
return car_get_var(spibar);
}
static void set_spibar(uintptr_t base) static void set_spibar(uintptr_t base)
{ {
car_set_var(spibar, base); spibar = base;
} }
static inline uint8_t spi_read8(uint8_t reg) 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) 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) 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) 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) 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, "TxByteCount: %x\n", spi_read8(SPI_TX_BYTE_COUNT));
printk(BIOS_DEBUG, "RxByteCount: %x\n", spi_read8(SPI_RX_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)); 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) static int wait_for_ready(void)