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 <zhongfu.luo@amlogic.com>
This commit is contained in:
Zhongfu Luo
2019-01-30 13:58:10 +08:00
committed by Jianxin Pan
parent 5821d68318
commit 7c4855385c

View File

@@ -36,12 +36,13 @@
#include <asm/cacheflush.h>
#include "securekey.h"
#include <linux/memblock.h>
#include <linux/random.h>
#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;
}