From 7c4855385cfaba678568da6df059c1d69ea8779a Mon Sep 17 00:00:00 2001 From: Zhongfu Luo Date: Wed, 30 Jan 2019 13:58:10 +0800 Subject: [PATCH] defendkey: TL1: support secure upgrade check [4/4] PD#SWPL-5002 Problem: TL1 need to support defendkey secure upgrade check Solution: 1.modify the way of get random Verify: TL1 skt board verify pass Change-Id: I76b29800de787c5e5b18e023d84c1161c9b1643a Signed-off-by: Zhongfu Luo --- drivers/amlogic/defendkey/defendkey.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/amlogic/defendkey/defendkey.c b/drivers/amlogic/defendkey/defendkey.c index 1ee1a1c4a1b5..a82f49d4949d 100644 --- a/drivers/amlogic/defendkey/defendkey.c +++ b/drivers/amlogic/defendkey/defendkey.c @@ -36,12 +36,13 @@ #include #include "securekey.h" #include +#include #define DEFENDKEY_DEVICE_NAME "defendkey" #define DEFENDKEY_CLASS_NAME "defendkey" void __iomem *mem_base_virt; unsigned long mem_size; -unsigned long random_virt; +//unsigned long random_virt; struct defendkey_mem { unsigned long base; @@ -201,7 +202,7 @@ static ssize_t defendkey_write(struct file *file, pr_info("defendkey: mem_base_phy:%lx mem_size:%lx mem_base_virt:%p\n", mem_base_phy, mem_size, mem_base_virt); - random = readl((void *)random_virt); + random = get_random_long(); #ifdef CONFIG_ARM64_A32 option_random = (random << 8); @@ -400,7 +401,6 @@ static int aml_defendkey_probe(struct platform_device *pdev) { int ret = -1; u64 val64; - struct resource *res; struct device *devp; @@ -421,19 +421,7 @@ static int aml_defendkey_probe(struct platform_device *pdev) mem_size = val64; if (mem_size > defendkey_rmem.size) { dev_err(&pdev->dev, "Reserved memory is not enough!\n"); - return -EINVAL; - } - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (IS_ERR(res)) { - dev_err(&pdev->dev, "reg: cannot obtain I/O memory region"); - ret = PTR_ERR(res); - goto error1; - } - - random_virt = (unsigned long)devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR((void *)random_virt)) { - ret = PTR_ERR((void *)random_virt); + ret = -EINVAL; goto error1; }