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:
parent
a8eb477c2e
commit
85e9f28461
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue