From e636c8d336489bf3eed5878299e6cc045bbad077 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 20 Feb 2024 01:17:29 +0000
Subject: [PATCH] debug lk
---
u-boot/arch/arm/mach-rockchip/vendor.c | 32 ++++++++++++++++++++++++++++++--
1 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/u-boot/arch/arm/mach-rockchip/vendor.c b/u-boot/arch/arm/mach-rockchip/vendor.c
index fce520d..2a146b7 100644
--- a/u-boot/arch/arm/mach-rockchip/vendor.c
+++ b/u-boot/arch/arm/mach-rockchip/vendor.c
@@ -10,6 +10,7 @@
#include <boot_rkimg.h>
#include <nand.h>
#include <part.h>
+#include <fdt_support.h>
/* tag for vendor check */
#define VENDOR_TAG 0x524B5644
@@ -20,6 +21,9 @@
/* align to 64 bytes */
#define VENDOR_BTYE_ALIGN 0x3F
#define VENDOR_BLOCK_SIZE 512
+
+#define PAGE_ALGIN_SIZE (4096uL)
+#define PAGE_ALGIN_MASK (~(PAGE_ALGIN_SIZE - 1))
/* --- Emmc define --- */
/* Starting address of the Vendor in memory. */
@@ -493,13 +497,14 @@
/* Initialize */
bootdev_type = dev_desc->if_type;
- /* Always use, no need to release */
- buffer = (u8 *)malloc(size);
+ /* Always use, no need to release, align to page size for kerenl reserved memory */
+ buffer = (u8 *)memalign(PAGE_ALGIN_SIZE, size);
if (!buffer) {
printf("[Vendor ERROR]:Malloc failed!\n");
ret = -ENOMEM;
goto out;
}
+
/* Pointer initialization */
vendor_info.hdr = (struct vendor_hdr *)buffer;
vendor_info.item = (struct vendor_item *)(buffer + sizeof(struct vendor_hdr));
@@ -566,6 +571,29 @@
return ret;
}
+void vendor_storage_fixup(void *blob)
+{
+ unsigned long size;
+ unsigned long start;
+ ulong offset;
+
+ /* init vendor storage */
+ if (!bootdev_type) {
+ if (vendor_storage_init() < 0)
+ return;
+ }
+
+ offset = fdt_node_offset_by_compatible(blob, 0, "rockchip,vendor-storage-rm");
+ if (offset >= 0) {
+ start = (unsigned long)vendor_info.hdr;
+ size = (unsigned long)((void *)vendor_info.version2 - (void *)vendor_info.hdr);
+ size += 4;
+ fdt_update_reserved_memory(blob, "rockchip,vendor-storage-rm",
+ (u64)start,
+ (u64)size);
+ }
+}
+
/*
* @id: item id, first 4 id is occupied:
* VENDOR_SN_ID
--
Gitblit v1.6.2