summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/sandbox/sandbox.c9
-rw-r--r--configs/sandbox_defconfig1
-rw-r--r--include/addr_map.h2
-rw-r--r--lib/addr_map.c5
-rw-r--r--test/cmd/addrmap.c5
5 files changed, 17 insertions, 5 deletions
diff --git a/board/sandbox/sandbox.c b/board/sandbox/sandbox.c
index e054f300c4..ca9a2ca5b1 100644
--- a/board/sandbox/sandbox.c
+++ b/board/sandbox/sandbox.c
@@ -4,6 +4,7 @@
*/
#include <common.h>
+#include <addr_map.h>
#include <cpu_func.h>
#include <cros_ec.h>
#include <dm.h>
@@ -155,3 +156,11 @@ int board_late_init(void)
return 0;
}
#endif
+
+int init_addr_map(void)
+{
+ if (IS_ENABLED(CONFIG_ADDR_MAP))
+ addrmap_set_entry(0, 0, CONFIG_SYS_SDRAM_SIZE, 0);
+
+ return 0;
+}
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index d50ce91cd1..eba7bcbb48 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -315,6 +315,7 @@ CONFIG_WDT_GPIO=y
CONFIG_WDT_SANDBOX=y
CONFIG_FS_CBFS=y
CONFIG_FS_CRAMFS=y
+CONFIG_ADDR_MAP=y
CONFIG_CMD_DHRYSTONE=y
CONFIG_ECDSA=y
CONFIG_ECDSA_VERIFY=y
diff --git a/include/addr_map.h b/include/addr_map.h
index 55d3a6a165..db3712b5d3 100644
--- a/include/addr_map.h
+++ b/include/addr_map.h
@@ -14,7 +14,9 @@ struct addrmap {
unsigned long vaddr;
};
+#ifdef CONFIG_ADDR_MAP
extern struct addrmap address_map[CONFIG_SYS_NUM_ADDR_MAP];
+#endif
phys_addr_t addrmap_virt_to_phys(void *vaddr);
void *addrmap_phys_to_virt(phys_addr_t paddr);
diff --git a/lib/addr_map.c b/lib/addr_map.c
index fb2ef40007..9b3e0a544e 100644
--- a/lib/addr_map.c
+++ b/lib/addr_map.c
@@ -5,6 +5,7 @@
#include <common.h>
#include <addr_map.h>
+#include <mapmem.h>
struct addrmap address_map[CONFIG_SYS_NUM_ADDR_MAP];
@@ -18,7 +19,7 @@ phys_addr_t addrmap_virt_to_phys(void * vaddr)
if (address_map[i].size == 0)
continue;
- addr = (u64)((u32)vaddr);
+ addr = map_to_sysmem(vaddr);
base = (u64)(address_map[i].vaddr);
upper = (u64)(address_map[i].size) + base - 1;
@@ -48,7 +49,7 @@ void *addrmap_phys_to_virt(phys_addr_t paddr)
offset = address_map[i].paddr - address_map[i].vaddr;
- return (void *)(unsigned long)(paddr - offset);
+ return map_sysmem(paddr - offset, 0);
}
}
diff --git a/test/cmd/addrmap.c b/test/cmd/addrmap.c
index fb744485bb..1eb5955db1 100644
--- a/test/cmd/addrmap.c
+++ b/test/cmd/addrmap.c
@@ -29,9 +29,8 @@ ADDRMAP_TEST(addrmap_test_basic, UT_TESTF_CONSOLE_REC);
int do_ut_addrmap(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
- struct unit_test *tests = ll_entry_start(struct unit_test,
- addrmap_test);
- const int n_ents = ll_entry_count(struct unit_test, addrmap_test);
+ struct unit_test *tests = UNIT_TEST_SUITE_START(addrmap_test);
+ const int n_ents = UNIT_TEST_SUITE_COUNT(addrmap_test);
return cmd_ut_category("cmd_addrmap", "cmd_addrmap_", tests, n_ents,
argc, argv);