drivers/vpd/vpd.c: Drop CAR_GLOBAL_MIGRATION support
Change-Id: Idf522a822ddd54ee8b48312bed762c29783a2e45 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37039 Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr> Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
95b3f286a8
commit
7c2fd97c05
@ -4,7 +4,6 @@
|
|||||||
* found in the LICENSE file.
|
* found in the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <arch/early_variables.h>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
@ -24,7 +23,7 @@ struct vpd_gets_arg {
|
|||||||
int matched;
|
int matched;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vpd_blob g_vpd_blob CAR_GLOBAL = {0};
|
struct vpd_blob g_vpd_blob;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* returns the size of data in a VPD 2.0 formatted fmap region, or 0.
|
* returns the size of data in a VPD 2.0 formatted fmap region, or 0.
|
||||||
@ -86,13 +85,10 @@ static void vpd_get_blob(void)
|
|||||||
if (ro_vpd_size == 0 && rw_vpd_size == 0)
|
if (ro_vpd_size == 0 && rw_vpd_size == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
struct vpd_blob *blob = car_get_var_ptr(&g_vpd_blob);
|
g_vpd_blob.ro_base = NULL;
|
||||||
if (!blob)
|
g_vpd_blob.ro_size = 0;
|
||||||
return;
|
g_vpd_blob.rw_base = NULL;
|
||||||
blob->ro_base = NULL;
|
g_vpd_blob.rw_size = 0;
|
||||||
blob->ro_size = 0;
|
|
||||||
blob->rw_base = NULL;
|
|
||||||
blob->rw_size = 0;
|
|
||||||
|
|
||||||
struct region_device vpd;
|
struct region_device vpd;
|
||||||
|
|
||||||
@ -105,9 +101,9 @@ static void vpd_get_blob(void)
|
|||||||
}
|
}
|
||||||
rdev_chain(&vpd, &vpd, GOOGLE_VPD_2_0_OFFSET,
|
rdev_chain(&vpd, &vpd, GOOGLE_VPD_2_0_OFFSET,
|
||||||
region_device_sz(&vpd) - GOOGLE_VPD_2_0_OFFSET);
|
region_device_sz(&vpd) - GOOGLE_VPD_2_0_OFFSET);
|
||||||
blob->ro_base = (uint8_t *)(rdev_mmap_full(&vpd) +
|
g_vpd_blob.ro_base = (uint8_t *)(rdev_mmap_full(&vpd) +
|
||||||
sizeof(struct google_vpd_info));
|
sizeof(struct google_vpd_info));
|
||||||
blob->ro_size = ro_vpd_size;
|
g_vpd_blob.ro_size = ro_vpd_size;
|
||||||
}
|
}
|
||||||
if (rw_vpd_size) {
|
if (rw_vpd_size) {
|
||||||
if (fmap_locate_area_as_rdev("RW_VPD", &vpd)) {
|
if (fmap_locate_area_as_rdev("RW_VPD", &vpd)) {
|
||||||
@ -118,23 +114,19 @@ static void vpd_get_blob(void)
|
|||||||
}
|
}
|
||||||
rdev_chain(&vpd, &vpd, GOOGLE_VPD_2_0_OFFSET,
|
rdev_chain(&vpd, &vpd, GOOGLE_VPD_2_0_OFFSET,
|
||||||
region_device_sz(&vpd) - GOOGLE_VPD_2_0_OFFSET);
|
region_device_sz(&vpd) - GOOGLE_VPD_2_0_OFFSET);
|
||||||
blob->rw_base = (uint8_t *)(rdev_mmap_full(&vpd) +
|
g_vpd_blob.rw_base = (uint8_t *)(rdev_mmap_full(&vpd) +
|
||||||
sizeof(struct google_vpd_info));
|
sizeof(struct google_vpd_info));
|
||||||
blob->rw_size = rw_vpd_size;
|
g_vpd_blob.rw_size = rw_vpd_size;
|
||||||
}
|
}
|
||||||
blob->initialized = true;
|
g_vpd_blob.initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct vpd_blob *vpd_load_blob(void)
|
const struct vpd_blob *vpd_load_blob(void)
|
||||||
{
|
{
|
||||||
struct vpd_blob *blob = NULL;
|
if (g_vpd_blob.initialized == false)
|
||||||
|
|
||||||
blob = car_get_var_ptr(&g_vpd_blob);
|
|
||||||
|
|
||||||
if (blob && blob->initialized == false)
|
|
||||||
vpd_get_blob();
|
vpd_get_blob();
|
||||||
|
|
||||||
return blob;
|
return &g_vpd_blob;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int vpd_gets_callback(const uint8_t *key, uint32_t key_len,
|
static int vpd_gets_callback(const uint8_t *key, uint32_t key_len,
|
||||||
|
@ -28,7 +28,7 @@ struct vpd_blob {
|
|||||||
extern struct vpd_blob g_vpd_blob;
|
extern struct vpd_blob g_vpd_blob;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function loads g_vpd_blob CAR_GLOBAL variable.
|
* This function loads g_vpd_blob global variable.
|
||||||
* The variable is initialized if it was not.
|
* The variable is initialized if it was not.
|
||||||
*/
|
*/
|
||||||
const struct vpd_blob *vpd_load_blob(void);
|
const struct vpd_blob *vpd_load_blob(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user