On Mon, Jun 08, 2026 at 01:33:27PM +0300, Raz Ben Yehuda wrote:

> The UFS tool provides utilities for querying, displaying, and modifying
> UFS device configuration and descriptor information.

This still reads like you're adding a new command, which you aren't
anymore. Please reword all of this to make sense again given that it's
now part of the existing ufs command.

[snip]
> diff --git a/cmd/ufs.c b/cmd/ufs.c
> index 790dab50f18..203a58d6026 100644
> --- a/cmd/ufs.c
> +++ b/cmd/ufs.c
> @@ -3,12 +3,1191 @@
>   * ufs.c - UFS specific U-Boot commands
>   *
>   * Copyright (C) 2019 Texas Instruments Incorporated - https://www.ti.com
> - *
> + * Copyright (C) 2026 Mobileye Incorporated - https://www.mobileye.com
>   */
> +#include <asm/io.h>
> +#include <dm/devres.h>
> +#include <errno.h>
> +#include <limits.h>
> +#include <linux/bitops.h>
> +#include <linux/byteorder/little_endian.h>
> +#include <linux/compiler.h>
> +#include <linux/delay.h>
> +#include <linux/dma-mapping.h>
> +#include <linux/kernel.h>
> +#include <linux/types.h>
> +#include <malloc.h>
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <string.h>
> +#include <time.h>
> +#include <dm/uclass.h>
> +#include <dm/device.h>
>  #include <command.h>
> +
>  #include <ufs.h>
> -#include <vsprintf.h>
> -#include <linux/string.h>

Please audit this new big list of includes to make sure you're only
adding what's required.

[snip]
> +int ufshcd_query_desc_idn_power(struct ufs_hba *hba, int lun,
> +                             struct ufs_power_parameters_descriptor
> +                             *out_desc)
> +{
> +     unsigned char Space[QUERY_DESC_POWER_DEF_SIZE];

That's not a good variable name, and do we need to allocate this on the
stack like that?

> +#define CMD_HELP \
> +             "query:\n" \
> +             "\tDevice desc (0h)\n" \
> +             "\tGeometry desc(7h)\n" \
> +             "\tPower desc (8h)\n" \
> +             "\tUnit desc(2h)\n" \
> +             "\tConfig desc(1h)\n" \
> +             "****************************\n" \
> +             "\n\tset_lun [LUN] (parm)\n" \
> +             "\t\tlu_enable\n" \
> +             "\t\tboot_lun_id\n" \
> +             "\t\tlu_write_protect\n" \
> +             "\t\tmemory_type\n" \
> +             "\t\tdata_reliability\n" \
> +             "\t\tnum_allocunits\n" \
> +             "\t\tlogical_block_size\n" \
> +             "\t\tprovisioning_type\n" \
> +             "\t\tcontext_capabilities\n" \
> +             "\t\tlu_num_write_booster_buffer_allocunits\n\n" \
> +             "****************************\n" \
> +             "\n\tset_cfg_desc [parm] [value]\n" \
> +             "\t\tlength\n" \
> +             "\t\tdescriptor_idn\n" \
> +             "\t\tconf_desc_continue\n" \
> +             "\t\tboot_enable\n" \
> +             "\t\tdescr_access_en\n" \
> +             "\t\tinitpower_mode\n" \
> +             "\t\thigh_priority_lun\n" \
> +             "\t\tsecure_removal_type\n" \
> +             "\t\tinit_active_icc_level\n" \
> +             "\t\tperiodic_rtc_update\n" \
> +             "\t\treserved_HPB\n" \
> +             "\t\trpmb_region_enable\n" \
> +             "\t\trpmb_region1_size\n" \
> +             "\t\trpmb_region2_size\n" \
> +             "\t\trpmb_region3_size\n" \
> +             "\t\twrite_booster_buffer_preserve_user_space_en\n" \
> +             "\t\twrite_booster_buffer_type\n" \
> +             "\t\tnum_shared_write_booster_buffer_allocunits\n" \
> +             "****************************\n" \
> +             "\n\tgetflag [flag name]\n" \
> +             "\t\tdeviceinit\n" \
> +             "\t\tpermanent_wpe\n" \
> +             "\t\tpwr_on_wpe\n" \
> +             "\t\tbkops_en\n" \
> +             "\t\tlife_span_mode\n" \
> +             "\t\tpurge_enable\n" \
> +             "\t\tfphy_resource_removal\n" \
> +             "\t\tbusy_rtc\n" \
> +             "\t\tpermanently_disable_fw_update\n" \
> +             "\t\twrite_booster_en\n" \
> +             "\t\twb_buf_flush_en\n" \
> +             "\t\twb_buf_flush_h8\n" \
> +             "****************************\n" \
> +             "\texamples :\n" \
> +             "\n\nto write lun please\n" \
> +             "\tufs query 0 1\n" \
> +             "\tfix the luns, disable lu_enable\n" \
> +             "\tuse ufs set_lun [LUN] num_allocunits=xxx to set size\n" \
> +             "\tufs set_cfg_desc num_shared_write_booster_buffer_allocunits 
> 100000\n" \
> +             "\tufs set_cfg_desc write_booster_buffer_type 1\n" \
> +             "\tufs commit\n"
> +
> +void ufs_tool_help(void)
> +{
> +     puts(CMD_HELP);
> +}

Please integrate this, properly, to the existing command. It seems like
you just copy/pasted the previous ufs_tool.c file in to cmd/ufs.c
instead.

[snip]
> diff --git a/include/ufs.h b/include/ufs.h
> index f6e27d90e43..89fde263fcf 100644
> --- a/include/ufs.h
> +++ b/include/ufs.h
[snip]
> +int ufshcd_query_desc_idn_geometry(struct ufs_hba *hba,
> +                                struct ufs_geometry_descriptor *decs);
> +int ufshcd_query_desc_idn_config(struct ufs_hba *hba, struct 
> ufs_config_descriptor *cfg);
> +int ufshcd_query_desc_idn_device(struct ufs_hba *hba, struct 
> ufs_device_descriptor *desc);
> +int ufshcd_query_desc_idn_unit(struct ufs_hba *hba, int lun,
> +                            struct unit_descriptor *desc);
> +void ufshcd_print_idn_geometry_desc(struct ufs_geometry_descriptor *desc);
> +void ufshcd_print_device_descriptor(struct ufs_device_descriptor *desc);
> +void ufshcd_print_unit_descriptor(struct unit_descriptor *desc);
> +int ufshcd_query_desc_idn_power(struct ufs_hba *hba, int lun,
> +                             struct ufs_power_parameters_descriptor *desc);
> +void print_ufs_power_parameters(struct ufs_power_parameters_descriptor 
> *desc);
> +int ufshcd_query_user_flag(struct ufs_hba *hba, const char *flag_name);

These all need appropriate kernel-doc comments.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to