x86: Add mrccache support for a 'variable' cache
authorSimon Glass <sjg@chromium.org>
Sat, 7 Dec 2019 04:42:08 +0000 (21:42 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Sun, 15 Dec 2019 03:44:14 +0000 (11:44 +0800)
Add support for a second cache type, for Apollo Lake.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/include/asm/mrccache.h
arch/x86/lib/mrccache.c

index b81e2b2fb6a527676614344c92554ce86e4aa8a3..0917cf2470419503e04a506773472f57d90d1640 100644 (file)
@@ -30,6 +30,7 @@ struct mrc_region {
 /* Types of MRC data */
 enum mrc_type_t {
        MRC_TYPE_NORMAL,
+       MRC_TYPE_VAR,
 
        MRC_TYPE_COUNT,
 };
index 1278737ce453bdd0b78bd0fb41b8fd0211d2349d..10949d249e529b5e8c2d715a4c4ea5c1713e2ea5 100644 (file)
@@ -241,7 +241,8 @@ int mrccache_get_region(enum mrc_type_t type, struct udevice **devp,
        }
 
        /* Find the place where we put the MRC cache */
-       mrc_node = dev_read_subnode(dev, "rw-mrc-cache");
+       mrc_node = dev_read_subnode(dev, type == MRC_TYPE_NORMAL ?
+                                   "rw-mrc-cache" : "rw-var-mrc-cache");
        if (!ofnode_valid(mrc_node))
                return log_msg_ret("Cannot find node", -EPERM);