summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/common/mma.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/common/mma.c')
-rw-r--r--src/soc/intel/common/mma.c42
1 files changed, 12 insertions, 30 deletions
diff --git a/src/soc/intel/common/mma.c b/src/soc/intel/common/mma.c
index e015567a6974..04d766dc81d5 100644
--- a/src/soc/intel/common/mma.c
+++ b/src/soc/intel/common/mma.c
@@ -14,7 +14,6 @@
#define TEST_PARAM_MAX_SIZE 100
#define MMA_DATA_SIGNATURE (('M' << 0) | ('M' << 8) | \
('A' << 16) | ('D' << 24))
-#define MMA_CBFS_REGION "COREBOOT"
struct mma_data_container {
uint32_t mma_signature; /* "MMAD" */
@@ -99,31 +98,20 @@ static int label_value(const char *haystack, size_t haystack_sz,
return 0;
}
-int mma_locate_param(struct mma_config_param *mma_cfg)
+int mma_map_param(struct mma_config_param *mma_cfg)
{
void *mma_test_metadata;
size_t mma_test_metadata_file_len;
char test_filename[TEST_NAME_MAX_SIZE],
test_param_filename[TEST_PARAM_MAX_SIZE];
- struct cbfsf metadata_fh, test_content_fh, test_param_fh;
- uint32_t mma_type = CBFS_TYPE_MMA;
- uint32_t efi_type = CBFS_TYPE_EFI;
bool metadata_parse_flag = true;
printk(BIOS_DEBUG, "MMA: Entry %s\n", __func__);
- if (cbfs_locate_file_in_region(&metadata_fh, MMA_CBFS_REGION,
- MMA_TEST_METADATA_FILENAME)) {
- printk(BIOS_DEBUG, "MMA: Failed to locate %s\n",
- MMA_TEST_METADATA_FILENAME);
- return -1;
- }
-
- mma_test_metadata = rdev_mmap_full(&metadata_fh.data);
- mma_test_metadata_file_len = region_device_sz(&metadata_fh.data);
-
- if (!mma_test_metadata || !mma_test_metadata_file_len) {
- printk(BIOS_DEBUG, "MMA: Failed to read %s\n",
+ mma_test_metadata = cbfs_ro_map(MMA_TEST_METADATA_FILENAME,
+ &mma_test_metadata_file_len);
+ if (!mma_test_metadata) {
+ printk(BIOS_DEBUG, "MMA: Failed to map %s\n",
MMA_TEST_METADATA_FILENAME);
return -1;
}
@@ -145,7 +133,7 @@ int mma_locate_param(struct mma_config_param *mma_cfg)
metadata_parse_flag = false;
}
- rdev_munmap(&metadata_fh.data, mma_test_metadata);
+ cbfs_unmap(mma_test_metadata);
if (!metadata_parse_flag)
return -1;
@@ -153,24 +141,18 @@ int mma_locate_param(struct mma_config_param *mma_cfg)
printk(BIOS_DEBUG, "MMA: Got MMA_TEST_NAME=%s MMA_TEST_PARAM=%s\n",
test_filename, test_param_filename);
- if (cbfs_locate_file_in_region(&test_content_fh, MMA_CBFS_REGION,
- test_filename)) {
- printk(BIOS_DEBUG, "MMA: Failed to locate %s\n",
- test_filename);
+ mma_cfg->test_content = cbfs_ro_map(test_filename, &mma_cfg->test_content_size);
+ if (!mma_cfg->test_content) {
+ printk(BIOS_DEBUG, "MMA: Failed to map %s\n", test_filename);
return -1;
}
- cbfs_file_data(&mma_cfg->test_content, &test_content_fh);
-
- if (cbfs_locate_file_in_region(&test_param_fh, MMA_CBFS_REGION,
- test_param_filename)) {
- printk(BIOS_DEBUG, "MMA: Failed to locate %s\n",
- test_param_filename);
+ mma_cfg->test_param = cbfs_ro_map(test_param_filename, &mma_cfg->test_param_size);
+ if (!mma_cfg->test_param) {
+ printk(BIOS_DEBUG, "MMA: Failed to map %s\n", test_param);
return -1;
}
- cbfs_file_data(&mma_cfg->test_param, &test_param_fh);
-
printk(BIOS_DEBUG, "MMA: %s exit success\n", __func__);
return 0;