From 7d07b3ae8ddad407913c5301877e694430a3263f Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 23 Nov 2023 08:24:31 +0000
Subject: [PATCH] add build kerneldeb
---
u-boot/cmd/mtd.c | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/u-boot/cmd/mtd.c b/u-boot/cmd/mtd.c
index 31ef7be..1f7542e 100644
--- a/u-boot/cmd/mtd.c
+++ b/u-boot/cmd/mtd.c
@@ -13,6 +13,10 @@
#include <mapmem.h>
#include <mtd.h>
+#define DEV_NAME_MAX_LENGTH 0x40
+static char g_devname[DEV_NAME_MAX_LENGTH];
+static struct mtd_info *g_mtd;
+
static uint mtd_len_to_pages(struct mtd_info *mtd, u64 len)
{
do_div(len, mtd->writesize);
@@ -244,14 +248,20 @@
return CMD_RET_USAGE;
mtd_name = argv[2];
- mtd_probe_devices();
- mtd = get_mtd_device_nm(mtd_name);
- if (IS_ERR_OR_NULL(mtd)) {
- printf("MTD device %s not found, ret %ld\n",
- mtd_name, PTR_ERR(mtd));
- return CMD_RET_FAILURE;
+ if (!strncmp(mtd_name, g_devname, strlen(mtd_name)) && g_mtd) {
+ mtd = g_mtd;
+ } else {
+ mtd_probe_devices();
+ mtd = get_mtd_device_nm(mtd_name);
+ if (IS_ERR_OR_NULL(mtd)) {
+ printf("MTD device %s not found, ret %ld\n",
+ mtd_name, PTR_ERR(mtd));
+ return CMD_RET_FAILURE;
+ }
+ put_mtd_device(mtd);
+ g_mtd = mtd;
+ strncpy(g_devname, mtd_name, strlen(mtd_name));
}
- put_mtd_device(mtd);
argc -= 3;
argv += 3;
--
Gitblit v1.6.2