From 73ec4e0398125f41aa20c70f6316416e96a4e8d2 Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Mon, 6 Jan 2020 19:28:36 +0800 Subject: [PATCH] cmd: move "rkimgtest" to individual file The command is used for all image type, it should not depend on bootrkp.c Signed-off-by: Joseph Chen Change-Id: I8d27318485c7e7ffb8c4e06112396fa18e8b2dc0 --- cmd/Makefile | 2 ++ cmd/bootrkp.c | 52 ---------------------------------------- cmd/rkimgtest.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 52 deletions(-) mode change 100755 => 100644 cmd/bootrkp.c create mode 100644 cmd/rkimgtest.c diff --git a/cmd/Makefile b/cmd/Makefile index b35c28c638..26b9aeddfc 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -168,6 +168,8 @@ obj-$(CONFIG_CMD_REGULATOR) += regulator.o obj-$(CONFIG_CMD_DVFS) += dvfs.o obj-$(CONFIG_CMD_BLOB) += blob.o + +obj-$(CONFIG_ARCH_ROCKCHIP) += rkimgtest.o endif # !CONFIG_SPL_BUILD # core command diff --git a/cmd/bootrkp.c b/cmd/bootrkp.c old mode 100755 new mode 100644 index 121bb80579..0dc6a817b9 --- a/cmd/bootrkp.c +++ b/cmd/bootrkp.c @@ -79,55 +79,3 @@ U_BOOT_CMD( "boot.img: ramdisk\n" "resource.img: dtb, u-boot logo, kernel logo" ); - -static int do_rkimg_test(cmd_tbl_t *cmdtp, int flag, int argc, - char *const argv[]) -{ - struct blk_desc *dev_desc; - u32 *buffer; - int ret; - - dev_desc = blk_get_dev(argv[1], simple_strtoul(argv[2], NULL, 16)); - if (!dev_desc) { - printf("%s: dev_desc is NULL!\n", __func__); - return CMD_RET_FAILURE; - } - - /* Read one block from beginning of IDB data */ - buffer = memalign(ARCH_DMA_MINALIGN, 1024); - ret = blk_dread(dev_desc, 64, 2, buffer); - if (ret != 2) { - printf("%s: Fail to read data from IDB\n", __func__); - free(buffer); - return CMD_RET_FAILURE; - } - - if (buffer[0] == 0xFCDC8C3B) { - ret = CMD_RET_SUCCESS; - - if (!strcmp("mmc", argv[1])) - printf("Found IDB in SDcard\n"); - else - printf("Found IDB in U-disk\n"); - - /* TAG in IDB */ - if (0 == buffer[128 + 104 / 4]) { - if (!strcmp("mmc", argv[1])) - env_update("bootargs", "sdfwupdate"); - else - env_update("bootargs", "usbfwupdate"); - } - } else { - ret = CMD_RET_FAILURE; - } - - free(buffer); - - return ret; -} - -U_BOOT_CMD( - rkimgtest, 3, 0, do_rkimg_test, - "Test if storage media have rockchip image", - "" -); diff --git a/cmd/rkimgtest.c b/cmd/rkimgtest.c new file mode 100644 index 0000000000..0e6fe3d171 --- /dev/null +++ b/cmd/rkimgtest.c @@ -0,0 +1,63 @@ +/* + * (C) Copyright 2019 Rockchip Electronics Co., Ltd + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include + +static int do_rkimg_test(cmd_tbl_t *cmdtp, int flag, + int argc, char *const argv[]) +{ + struct blk_desc *dev_desc; + u32 *buffer; + int ret; + + if (argc != 3) + return CMD_RET_USAGE; + + dev_desc = blk_get_dev(argv[1], simple_strtoul(argv[2], NULL, 16)); + if (!dev_desc) { + printf("%s: dev_desc is NULL!\n", __func__); + return CMD_RET_FAILURE; + } + + /* read one block from beginning of IDB data */ + buffer = memalign(ARCH_DMA_MINALIGN, 1024); + ret = blk_dread(dev_desc, 64, 2, buffer); + if (ret != 2) { + printf("%s: Failed to read data from IDB\n", __func__); + free(buffer); + return CMD_RET_FAILURE; + } + + if (buffer[0] == 0xFCDC8C3B) { + ret = CMD_RET_SUCCESS; + + if (!strcmp("mmc", argv[1])) + printf("Found IDB in SDcard\n"); + else + printf("Found IDB in U-disk\n"); + + /* TAG in IDB */ + if (0 == buffer[128 + 104 / 4]) { + if (!strcmp("mmc", argv[1])) + env_update("bootargs", "sdfwupdate"); + else + env_update("bootargs", "usbfwupdate"); + } + } else { + ret = CMD_RET_FAILURE; + } + + free(buffer); + + return ret; +} + +U_BOOT_CMD( + rkimgtest, 3, 0, do_rkimg_test, + "Test if storage media have rockchip image", + " " +);