diff options
author | Tom Rini <trini@konsulko.com> | 2021-08-02 13:32:20 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-08-02 13:32:20 -0400 |
commit | 51aef405550e603ff702c034f0e2cd0f15bdf2bb (patch) | |
tree | 15216d11d6890cd497b6a97176c7aad4c4d63ecf | |
parent | 73994c452fc5a960114360a651201ac48b135e81 (diff) | |
parent | e6951139c0544116330b12e287fe45e30bbab11c (diff) |
Merge branch '2021-08-02-numeric-input-cleanups'
- Merge in a series that cleans up and makes more consistent how we deal
with numeric input on the CLI. This saves a few bytes in a lot of
places.
254 files changed, 1169 insertions, 948 deletions
@@ -3510,47 +3510,6 @@ The signature of the callback functions is: The return value is 0 if the variable change is accepted and 1 otherwise. -Command Line Parsing: -===================== - -There are two different command line parsers available with U-Boot: -the old "simple" one, and the much more powerful "hush" shell: - -Old, simple command line parser: --------------------------------- - -- supports environment variables (through setenv / saveenv commands) -- several commands on one line, separated by ';' -- variable substitution using "... ${name} ..." syntax -- special characters ('$', ';') can be escaped by prefixing with '\', - for example: - setenv bootcmd bootm \${address} -- You can also escape text by enclosing in single apostrophes, for example: - setenv addip 'setenv bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname::off' - -Hush shell: ------------ - -- similar to Bourne shell, with control structures like - if...then...else...fi, for...do...done; while...do...done, - until...do...done, ... -- supports environment ("global") variables (through setenv / saveenv - commands) and local shell variables (through standard shell syntax - "name=value"); only environment variables can be used with "run" - command - -General rules: --------------- - -(1) If a command line (or an environment variable executed by a "run" - command) contains several commands separated by semicolon, and - one of these commands fails, then the remaining commands will be - executed anyway. - -(2) If you execute several variables with one call to run (i. e. - calling run with a list of variables as arguments), any failing - command will cause "run" to terminate, i. e. the remaining - variables are not executed. Note for Redundant Ethernet Interfaces: ======================================= diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c index f1624ff30ae..6eb7f9c2148 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c @@ -565,28 +565,28 @@ void fdt_fixup_pfe_firmware(void *blob) if (!p) return; - pclassfw = (void *)simple_strtoul(p, NULL, 16); + pclassfw = (void *)hextoul(p, NULL); if (!pclassfw) return; p = env_get("class_elf_size"); if (!p) return; - len_class = simple_strtoul(p, NULL, 16); + len_class = hextoul(p, NULL); /* If the environment variable is not set, then exit silently */ p = env_get("tmu_elf_firmware"); if (!p) return; - ptmufw = (void *)simple_strtoul(p, NULL, 16); + ptmufw = (void *)hextoul(p, NULL); if (!ptmufw) return; p = env_get("tmu_elf_size"); if (!p) return; - len_tmu = simple_strtoul(p, NULL, 16); + len_tmu = hextoul(p, NULL); if (len_class == 0 || len_tmu == 0) { printf("PFE FW corrupted. CLASS FW size %d, TMU FW size %d\n", @@ -605,14 +605,14 @@ void fdt_fixup_pfe_firmware(void *blob) if (!p) return; - putilfw = (void *)simple_strtoul(p, NULL, 16); + putilfw = (void *)hextoul(p, NULL); if (!putilfw) return; p = env_get("util_elf_size"); if (!p) return; - len_util = simple_strtoul(p, NULL, 16); + len_util = hextoul(p, NULL); if (len_util) { printf("PFE Util PE firmware is not added to FDT.\n"); diff --git a/arch/arm/cpu/armv8/fsl-layerscape/soc.c b/arch/arm/cpu/armv8/fsl-layerscape/soc.c index 0562d287058..1641b657990 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/soc.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/soc.c @@ -277,7 +277,7 @@ static unsigned long get_internval_val_mhz(void) ulong interval_mhz = get_bus_freq(0) / (1000 * 1000); if (interval) - interval_mhz = simple_strtoul(interval, NULL, 10); + interval_mhz = dectoul(interval, NULL); return interval_mhz; } diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c index 904fddd6c04..9fd82459b24 100644 --- a/arch/arm/lib/semihosting.c +++ b/arch/arm/lib/semihosting.c @@ -191,7 +191,7 @@ static int do_smhload(struct cmd_tbl *cmdtp, int flag, int argc, int ret; char end_str[64]; - load_addr = simple_strtoul(argv[2], NULL, 16); + load_addr = hextoul(argv[2], NULL); if (!load_addr) return -1; diff --git a/arch/arm/mach-imx/cmd_dek.c b/arch/arm/mach-imx/cmd_dek.c index b10ead19426..1e3cfee4739 100644 --- a/arch/arm/mach-imx/cmd_dek.c +++ b/arch/arm/mach-imx/cmd_dek.c @@ -300,9 +300,9 @@ static int do_dek_blob(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 4) return CMD_RET_USAGE; - src_addr = simple_strtoul(argv[1], NULL, 16); - dst_addr = simple_strtoul(argv[2], NULL, 16); - len = simple_strtoul(argv[3], NULL, 10); + src_addr = hextoul(argv[1], NULL); + dst_addr = hextoul(argv[2], NULL); + len = dectoul(argv[3], NULL); return blob_encap_dek(src_addr, dst_addr, len); } diff --git a/arch/arm/mach-imx/cmd_mfgprot.c b/arch/arm/mach-imx/cmd_mfgprot.c index 1430f619098..1e866b76c8d 100644 --- a/arch/arm/mach-imx/cmd_mfgprot.c +++ b/arch/arm/mach-imx/cmd_mfgprot.c @@ -71,8 +71,8 @@ static int do_mfgprot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) if (argc != 4) return CMD_RET_USAGE; - m_addr = simple_strtoul(argv[2], NULL, 16); - m_size = simple_strtoul(argv[3], NULL, 10); + m_addr = hextoul(argv[2], NULL); + m_size = dectoul(argv[3], NULL); m_ptr = map_physmem(m_addr, m_size, MAP_NOCACHE); if (!m_ptr) return -ENOMEM; diff --git a/arch/arm/mach-imx/cmd_nandbcb.c b/arch/arm/mach-imx/cmd_nandbcb.c index 7157c9e9799..cd513445978 100644 --- a/arch/arm/mach-imx/cmd_nandbcb.c +++ b/arch/arm/mach-imx/cmd_nandbcb.c @@ -1083,13 +1083,13 @@ static int do_nandbcb_bcbonly(int argc, char *const argv[]) mtd = cfg.mtd; - cfg.boot_stream1_address = simple_strtoul(argv[2], NULL, 16); - cfg.boot_stream1_size = simple_strtoul(argv[3], NULL, 16); + cfg.boot_stream1_address = hextoul(argv[2], NULL); + cfg.boot_stream1_size = hextoul(argv[3], NULL); cfg.boot_stream1_size = ALIGN(cfg.boot_stream1_size, mtd->writesize); if (argc > 5) { - cfg.boot_stream2_address = simple_strtoul(argv[4], NULL, 16); - cfg.boot_stream2_size = simple_strtoul(argv[5], NULL, 16); + cfg.boot_stream2_address = hextoul(argv[4], NULL); + cfg.boot_stream2_size = hextoul(argv[5], NULL); cfg.boot_stream2_size = ALIGN(cfg.boot_stream2_size, mtd->writesize); } @@ -1450,7 +1450,7 @@ static int do_nandbcb_init(int argc, char * const argv[]) if (nandbcb_set_boot_config(argc, argv, &cfg)) return CMD_RET_FAILURE; - addr = simple_strtoul(argv[1], &endp, 16); + addr = hextoul(argv[1], &endp); if (*argv[1] == 0 || *endp != 0) return CMD_RET_FAILURE; diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c index 00bd157d0e0..cc39e6bf569 100644 --- a/arch/arm/mach-imx/hab.c +++ b/arch/arm/mach-imx/hab.c @@ -609,12 +609,12 @@ static int do_authenticate_image(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], NULL, 16); - length = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[1], NULL); + length = hextoul(argv[2], NULL); if (argc == 3) ivt_offset = get_image_ivt_offset(addr); else - ivt_offset = simple_strtoul(argv[3], NULL, 16); + ivt_offset = hextoul(argv[3], NULL); rcode = imx_hab_authenticate_image(addr, length, ivt_offset); if (rcode == 0) diff --git a/arch/arm/mach-imx/imx8/ahab.c b/arch/arm/mach-imx/imx8/ahab.c index 6392fe267a0..015267c8b2d 100644 --- a/arch/arm/mach-imx/imx8/ahab.c +++ b/arch/arm/mach-imx/imx8/ahab.c @@ -161,7 +161,7 @@ static int do_authenticate(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 2) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); printf("Authenticate OS container at 0x%lx\n", addr); diff --git a/arch/arm/mach-imx/imx8/snvs_security_sc.c b/arch/arm/mach-imx/imx8/snvs_security_sc.c index 6f9b1c99fcd..507b5b42314 100644 --- a/arch/arm/mach-imx/imx8/snvs_security_sc.c +++ b/arch/arm/mach-imx/imx8/snvs_security_sc.c @@ -638,24 +638,24 @@ static int do_snvs_cfg(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != (NB_REGISTERS + 1)) return CMD_RET_USAGE; - conf.hp.lock = simple_strtoul(argv[++idx], NULL, 16); - conf.hp.secvio_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.lock = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.secvio_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.tamper_filt_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.tamper_det_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.tamper_det_cfg2 = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.tamper_filt1_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.tamper_filt2_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper1_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper2_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper3_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper4_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper5_cfg = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper_clk_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper_routing_ctl1 = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.act_tamper_routing_ctl2 = simple_strtoul(argv[++idx], NULL, 16); + conf.hp.lock = hextoul(argv[++idx], NULL); + conf.hp.secvio_ctl = hextoul(argv[++idx], NULL); + conf.lp.lock = hextoul(argv[++idx], NULL); + conf.lp.secvio_ctl = hextoul(argv[++idx], NULL); + conf.lp.tamper_filt_cfg = hextoul(argv[++idx], NULL); + conf.lp.tamper_det_cfg = hextoul(argv[++idx], NULL); + conf.lp.tamper_det_cfg2 = hextoul(argv[++idx], NULL); + conf.lp.tamper_filt1_cfg = hextoul(argv[++idx], NULL); + conf.lp.tamper_filt2_cfg = hextoul(argv[++idx], NULL); + conf.lp.act_tamper1_cfg = hextoul(argv[++idx], NULL); + conf.lp.act_tamper2_cfg = hextoul(argv[++idx], NULL); + conf.lp.act_tamper3_cfg = hextoul(argv[++idx], NULL); + conf.lp.act_tamper4_cfg = hextoul(argv[++idx], NULL); + conf.lp.act_tamper5_cfg = hextoul(argv[++idx], NULL); + conf.lp.act_tamper_ctl = hextoul(argv[++idx], NULL); + conf.lp.act_tamper_clk_ctl = hextoul(argv[++idx], NULL); + conf.lp.act_tamper_routing_ctl1 = hextoul(argv[++idx], NULL); + conf.lp.act_tamper_routing_ctl2 = hextoul(argv[++idx], NULL); err = apply_snvs_config(&conf); @@ -690,12 +690,12 @@ static int do_snvs_dgo_cfg(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != (6 + 1)) return CMD_RET_USAGE; - conf.tamper_offset_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.tamper_pull_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.tamper_ana_test_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.tamper_sensor_trim_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.tamper_misc_ctl = simple_strtoul(argv[++idx], NULL, 16); - conf.tamper_core_volt_mon_ctl = simple_strtoul(argv[++idx], NULL, 16); + conf.tamper_offset_ctl = hextoul(argv[++idx], NULL); + conf.tamper_pull_ctl = hextoul(argv[++idx], NULL); + conf.tamper_ana_test_ctl = hextoul(argv[++idx], NULL); + conf.tamper_sensor_trim_ctl = hextoul(argv[++idx], NULL); + conf.tamper_misc_ctl = hextoul(argv[++idx], NULL); + conf.tamper_core_volt_mon_ctl = hextoul(argv[++idx], NULL); err = apply_snvs_dgo_config(&conf); @@ -726,8 +726,8 @@ static int do_tamper_pin_cfg(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != (2 + 1)) return CMD_RET_USAGE; - conf.pad = simple_strtoul(argv[++idx], NULL, 10); - conf.mux_conf = simple_strtoul(argv[++idx], NULL, 16); + conf.pad = dectoul(argv[++idx], NULL); + conf.mux_conf = hextoul(argv[++idx], NULL); err = apply_tamper_pin_list_config(&conf, 1); @@ -761,8 +761,8 @@ static int do_snvs_clear_status(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != (2 + 1)) return CMD_RET_USAGE; - conf.lp.status = simple_strtoul(argv[++idx], NULL, 16); - conf.lp.tamper_det_status = simple_strtoul(argv[++idx], NULL, 16); + conf.lp.status = hextoul(argv[++idx], NULL); + conf.lp.tamper_det_status = hextoul(argv[++idx], NULL); scierr = check_write_secvio_config(SC_CONF_OFFSET_OF(lp.status), &conf.lp.status, NULL, NULL, NULL, diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c index 30fb45d48c2..9ffe5ac6e34 100644 --- a/arch/arm/mach-imx/imx_bootaux.c +++ b/arch/arm/mach-imx/imx_bootaux.c @@ -180,7 +180,7 @@ static int do_bootaux(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_SUCCESS; } - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); if (!addr) return CMD_RET_FAILURE; diff --git a/arch/arm/mach-imx/mx6/mp.c b/arch/arm/mach-imx/mx6/mp.c index 2fdf070a08b..de9ace083ce 100644 --- a/arch/arm/mach-imx/mx6/mp.c +++ b/arch/arm/mach-imx/mx6/mp.c @@ -47,7 +47,7 @@ int cpu_release(u32 nr, int argc, char *const argv[]) { uint32_t boot_addr; - boot_addr = simple_strtoul(argv[0], NULL, 16); + boot_addr = hextoul(argv[0], NULL); switch (nr) { case 1: diff --git a/arch/arm/mach-keystone/cmd_clock.c b/arch/arm/mach-keystone/cmd_clock.c index 7165d666e5e..72dc394df5f 100644 --- a/arch/arm/mach-keystone/cmd_clock.c +++ b/arch/arm/mach-keystone/cmd_clock.c @@ -42,9 +42,9 @@ int do_pll_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) else goto pll_cmd_usage; - cmd_pll_data.pll_m = simple_strtoul(argv[2], NULL, 10); - cmd_pll_data.pll_d = simple_strtoul(argv[3], NULL, 10); - cmd_pll_data.pll_od = simple_strtoul(argv[4], NULL, 10); + cmd_pll_data.pll_m = dectoul(argv[2], NULL); + cmd_pll_data.pll_d = dectoul(argv[3], NULL); + cmd_pll_data.pll_od = dectoul(argv[4], NULL); printf("Trying to set pll %d; mult %d; div %d; OD %d\n", cmd_pll_data.pll, cmd_pll_data.pll_m, @@ -72,7 +72,7 @@ int do_getclk_cmd(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 2) goto getclk_cmd_usage; - clk = simple_strtoul(argv[1], NULL, 10); + clk = dectoul(argv[1], NULL); freq = ks_clk_get_rate(clk); if (freq) @@ -101,7 +101,7 @@ int do_psc_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc != 3) goto psc_cmd_usage; - psc_module = simple_strtoul(argv[1], NULL, 10); + psc_module = dectoul(argv[1], NULL); if (strcmp(argv[2], "en") == 0) { res = psc_enable_module(psc_module); printf("psc_enable_module(%d) - %s\n", psc_module, diff --git a/arch/arm/mach-keystone/cmd_mon.c b/arch/arm/mach-keystone/cmd_mon.c index 049d5734734..e26296b6da6 100644 --- a/arch/arm/mach-keystone/cmd_mon.c +++ b/arch/arm/mach-keystone/cmd_mon.c @@ -25,7 +25,7 @@ static int do_mon_install(struct cmd_tbl *cmdtp, int flag, int argc, freq = CONFIG_SYS_HZ_CLOCK; - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); header = (struct image_header *)addr; @@ -40,7 +40,7 @@ static int do_mon_install(struct cmd_tbl *cmdtp, int flag, int argc, size); if (argc >= 3) - ecrypt_bm_addr = simple_strtoul(argv[2], NULL, 16); + ecrypt_bm_addr = hextoul(argv[2], NULL); rcode = mon_install(load_addr, dpsc_base, freq, ecrypt_bm_addr); printf("## installed monitor @ 0x%x, freq [%d], status %d\n", @@ -76,8 +76,8 @@ int do_mon_power(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - core_id = simple_strtoul(argv[1], NULL, 16); - on = simple_strtoul(argv[2], NULL, 16); + core_id = hextoul(argv[1], NULL); + on = hextoul(argv[2], NULL); if (on) rcode = mon_power_on(core_id, fn); diff --git a/arch/arm/mach-kirkwood/cpu.c b/arch/arm/mach-kirkwood/cpu.c index 339ae7fd20d..3953aa9b9b5 100644 --- a/arch/arm/mach-kirkwood/cpu.c +++ b/arch/arm/mach-kirkwood/cpu.c @@ -125,7 +125,7 @@ static void kw_sysrst_check(void) return; /* read sysrstdelay value */ - sysrst_dly = (u32) simple_strtoul(s, NULL, 10); + sysrst_dly = (u32)dectoul(s, NULL); /* read SysRst Length counter register (bits 28:0) */ sysrst_cnt = (0x1fffffff & readl(KW_REG_SYSRST_CNT)); diff --git a/arch/arm/mach-nexell/clock.c b/arch/arm/mach-nexell/clock.c index d5b46a87a18..24fa204ccd2 100644 --- a/arch/arm/mach-nexell/clock.c +++ b/arch/arm/mach-nexell/clock.c @@ -592,7 +592,7 @@ struct clk *clk_get(const char *id) c = strrchr((const char *)str, (int)'.'); if (!c || !cdev->peri) break; - devid = simple_strtoul(++c, NULL, 10); + devid = dectoul(++c, NULL); if (cdev->peri->dev_id == devid) break; } diff --git a/arch/arm/mach-snapdragon/misc.c b/arch/arm/mach-snapdragon/misc.c index aaa561c2c68..985625a548e 100644 --- a/arch/arm/mach-snapdragon/misc.c +++ b/arch/arm/mach-snapdragon/misc.c @@ -47,7 +47,7 @@ void msm_generate_mac_addr(u8 *mac) mac[0] = 0x02; mac[1] = 00; for (i = 3; i >= 0; i--) { - mac[i + 2] = simple_strtoul(&sn[2 * i], NULL, 16); + mac[i + 2] = hextoul(&sn[2 * i], NULL); sn[2 * i] = 0; } } diff --git a/arch/arm/mach-socfpga/misc.c b/arch/arm/mach-socfpga/misc.c index 64a7c9d652c..f8d3d48ee89 100644 --- a/arch/arm/mach-socfpga/misc.c +++ b/arch/arm/mach-socfpga/misc.c @@ -191,7 +191,7 @@ static int do_bridge(struct cmd_tbl *cmdtp, int flag, int argc, argv++; if (argc == 3) - mask = simple_strtoul(argv[1], NULL, 16); + mask = hextoul(argv[1], NULL); switch (*argv[0]) { case 'e': /* Enable */ diff --git a/arch/arm/mach-socfpga/vab.c b/arch/arm/mach-socfpga/vab.c index 85b3f302111..e146f2c5290 100644 --- a/arch/arm/mach-socfpga/vab.c +++ b/arch/arm/mach-socfpga/vab.c @@ -17,8 +17,8 @@ static int do_vab(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], NULL, 16); - len = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[1], NULL); + len = hextoul(argv[2], NULL); if (socfpga_vendor_authentication((void *)&addr, (size_t *)&len) != 0) return CMD_RET_FAILURE; diff --git a/arch/arm/mach-stm32mp/cmd_stm32key.c b/arch/arm/mach-stm32mp/cmd_stm32key.c index 50840b0f38b..68f28922d1e 100644 --- a/arch/arm/mach-stm32mp/cmd_stm32key.c +++ b/arch/arm/mach-stm32mp/cmd_stm32key.c @@ -162,7 +162,7 @@ static int do_stm32key_read(struct cmd_tbl *cmdtp, int flag, int argc, char *con return CMD_RET_SUCCESS; } - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); if (!addr) return CMD_RET_USAGE; @@ -185,7 +185,7 @@ static int do_stm32key_fuse(struct cmd_tbl *cmdtp, int flag, int argc, char *con yes = true; } - addr = simple_strtoul(argv[argc - 1], NULL, 16); + addr = hextoul(argv[argc - 1], NULL); if (!addr) return CMD_RET_USAGE; diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c index 064f51b2c7f..be53a529772 100644 --- a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c @@ -59,17 +59,17 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; } - dev = (int)simple_strtoul(argv[2], NULL, 10); + dev = (int)dectoul(argv[2], NULL); addr = STM32_DDR_BASE; size = 0; if (argc > 3) { - addr = simple_strtoul(argv[3], NULL, 16); + addr = hextoul(argv[3], NULL); if (!addr) return CMD_RET_FAILURE; } if (argc > 4) - size = simple_strtoul(argv[4], NULL, 16); + size = hextoul(argv[4], NULL); /* check STM32IMAGE presence */ if (size == 0) { diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c index 96ebc6d9783..26fe8b654a7 100644 --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c @@ -253,7 +253,7 @@ static int parse_type(struct stm32prog_data *data, result = -EINVAL; else part->bin_nb = - simple_strtoul(&p[7], NULL, 10); + dectoul(&p[7], NULL); } } else if (!strcmp(p, "System")) { part->part_type = PART_SYSTEM; diff --git a/arch/arm/mach-uniphier/board_late_init.c b/arch/arm/mach-uniphier/board_late_init.c index b33c4b19389..b5356ed87e7 100644 --- a/arch/arm/mach-uniphier/board_late_init.c +++ b/arch/arm/mach-uniphier/board_late_init.c @@ -66,7 +66,7 @@ static void uniphier_set_env_addr(const char *env, const char *offset_env) if (!str) goto fail; - offset = simple_strtoul(str, &end, 16); + offset = hextoul(str, &end); if (*end) goto fail; } diff --git a/arch/arm/mach-zynqmp/mp.c b/arch/arm/mach-zynqmp/mp.c index 74783ae5a78..704520e7a3c 100644 --- a/arch/arm/mach-zynqmp/mp.c +++ b/arch/arm/mach-zynqmp/mp.c @@ -252,7 +252,7 @@ int cpu_release(u32 nr, int argc, char *const argv[]) return 1; } - u32 boot_addr = simple_strtoul(argv[0], NULL, 16); + u32 boot_addr = hextoul(argv[0], NULL); u32 boot_addr_uniq = 0; if (!(boot_addr == ZYNQMP_R5_LOVEC_ADDR || boot_addr == ZYNQMP_R5_HIVEC_ADDR)) { diff --git a/arch/mips/mach-octeon/bootoctlinux.c b/arch/mips/mach-octeon/bootoctlinux.c index c195dc28ad7..349da08da6d 100644 --- a/arch/mips/mach-octeon/bootoctlinux.c +++ b/arch/mips/mach-octeon/bootoctlinux.c @@ -281,8 +281,7 @@ int octeon_parse_bootopts(int argc, char *const argv[], } else if (!strncmp(argv[arg], "forceboot", 9)) { boot_args->forceboot = true; } else if (!strncmp(argv[arg], "nodemask=", 9)) { - boot_args->node_mask = simple_strtoul(argv[arg] + 9, - NULL, 16); + boot_args->node_mask = hextoul(argv[arg] + 9, NULL); } else if (!strncmp(argv[arg], "numcores=", 9)) { memset(node_values, 0, sizeof(node_values)); num_values = octeon_parse_nodes(node_values, @@ -383,7 +382,7 @@ int do_bootoctlinux(struct cmd_tbl *cmdtp, int flag, int argc, argv[1][1] == 'x' || argv[1][1] == 'X' || argv[1][1] == '\0'))) { - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); if (!addr) addr = CONFIG_SYS_LOAD_ADDR; arg_start++; diff --git a/arch/nds32/lib/bootm.c b/arch/nds32/lib/bootm.c index b3b8bc29037..4cb0f530ae1 100644 --- a/arch/nds32/lib/bootm.c +++ b/arch/nds32/lib/bootm.c @@ -64,7 +64,7 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) s = env_get("machid"); if (s) { - machid = simple_strtoul(s, NULL, 16); + machid = hextoul(s, NULL); printf("Using machid 0x%x from environment\n", machid); } diff --git a/arch/nios2/lib/bootm.c b/arch/nios2/lib/bootm.c index 2c8f9731c74..50374671515 100644 --- a/arch/nios2/lib/bootm.c +++ b/arch/nios2/lib/bootm.c @@ -27,7 +27,7 @@ int do_bootm_linux(int flag, int argc, char *const argv[], of_flat_tree = images->ft_addr; #endif if (!of_flat_tree && argc > 1) - of_flat_tree = (char *)simple_strtoul(argv[1], NULL, 16); + of_flat_tree = (char *)hextoul(argv[1], NULL); if (of_flat_tree) initrd_end = (ulong)of_flat_tree; diff --git a/arch/powerpc/cpu/mpc83xx/ecc.c b/arch/powerpc/cpu/mpc83xx/ecc.c index 1343dd3d3a3..7a8ec7f42f1 100644 --- a/arch/powerpc/cpu/mpc83xx/ecc.c +++ b/arch/powerpc/cpu/mpc83xx/ecc.c @@ -138,7 +138,7 @@ int do_ecc(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } if (argc == 3) { if (strcmp(argv[1], "sbecnt") == 0) { - val = simple_strtoul(argv[2], NULL, 10); + val = dectoul(argv[2], NULL); if (val > 255) { printf("Incorrect Counter value, " "should be 0..255\n"); @@ -151,7 +151,7 @@ int do_ecc(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) ddr->err_sbe = val; return 0; } else if (strcmp(argv[1], "sbethr") == 0) { - val = simple_strtoul(argv[2], NULL, 10); + val = dectoul(argv[2], NULL); if (val > 255) { printf("Incorrect Counter value, " "should be 0..255\n"); @@ -219,17 +219,17 @@ int do_ecc(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) ddr->err_detect = val; return 0; } else if (strcmp(argv[1], "injectdatahi") == 0) { - val = simple_strtoul(argv[2], NULL, 16); + val = hextoul(argv[2], NULL); ddr->data_err_inject_hi = val; return 0; } else if (strcmp(argv[1], "injectdatalo") == 0) { - val = simple_strtoul(argv[2], NULL, 16); + val = hextoul(argv[2], NULL); ddr->data_err_inject_lo = val; return 0; } else if (strcmp(argv[1], "injectecc") == 0) { - val = simple_strtoul(argv[2], NULL, 16); + val = hextoul(argv[2], NULL); if (val > 0xff) { printf("Incorrect ECC inject mask, " "should be 0x00..0xff\n"); @@ -269,8 +269,8 @@ int do_ecc(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } if (argc == 4) { if (strcmp(argv[1], "testdw") == 0) { - addr = (u64 *) simple_strtoul(argv[2], NULL, 16); - count = simple_strtoul(argv[3], NULL, 16); + addr = (u64 *)hextoul(argv[2], NULL); + count = hextoul(argv[3], NULL); if ((u32) addr % 8) { printf("Address not aligned on " @@ -308,8 +308,8 @@ int do_ecc(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 0; } if (strcmp(argv[1], "testword") == 0) { - addr = (u64 *) simple_strtoul(argv[2], NULL, 16); - count = simple_strtoul(argv[3], NULL, 16); + addr = (u64 *)hextoul(argv[2], NULL); + count = hextoul(argv[3], NULL); if ((u32) addr % 8) { printf("Address not aligned on " diff --git a/arch/powerpc/cpu/mpc85xx/mp.c b/arch/powerpc/cpu/mpc85xx/mp.c index 653efe09f93..b1b002c9002 100644 --- a/arch/powerpc/cpu/mpc85xx/mp.c +++ b/arch/powerpc/cpu/mpc85xx/mp.c @@ -167,7 +167,7 @@ int cpu_release(u32 nr, int argc, char *const argv[]) for (i = 1; i < 3; i++) { if (argv[i][0] != '-') { u8 entry = boot_entry_map[i]; - val = simple_strtoul(argv[i], NULL, 16); + val = hextoul(argv[i], NULL); table[entry] = val; } } diff --git a/arch/sh/lib/zimageboot.c b/arch/sh/lib/zimageboot.c index c38f0933f89..c2e285ff0f6 100644 --- a/arch/sh/lib/zimageboot.c +++ b/arch/sh/lib/zimageboot.c @@ -37,11 +37,12 @@ int do_sh_zimageboot(struct cmd_tbl *cmdtp, int flag, int argc, } if (s0) - zboot_entry = (ulong (*)(int, char * const []))simple_strtoul(s0, NULL, 16); + zboot_entry = (ulong (*)(int, char * const []))hextoul(s0, + NULL); /* empty_zero_page */ if (s1) - param = (unsigned char*)simple_strtoul(s1, NULL, 16); + param = (unsigned char *)hextoul(s1, NULL); /* Linux kernel command line */ cmdline = (char *)param + COMMAND_LINE; diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c index cf4210cd4ba..9938c80a42b 100644 --- a/arch/x86/lib/zimage.c +++ b/arch/x86/lib/zimage.c @@ -405,17 +405,17 @@ static int do_zboot_start(struct cmd_tbl *cmdtp, int flag, int argc, } if (s) - state.bzimage_addr = simple_strtoul(s, NULL, 16); + state.bzimage_addr = hextoul(s, NULL); if (argc >= 3) { /* argv[2] holds the size of the bzImage */ - state.bzimage_size = simple_strtoul(argv[2], NULL, 16); + state.bzimage_size = hextoul(argv[2], NULL); } if (argc >= 4) - state.initrd_addr = simple_strtoul(argv[3], NULL, 16); + state.initrd_addr = hextoul(argv[3], NULL); if (argc >= 5) - state.initrd_size = simple_strtoul(argv[4], NULL, 16); + state.initrd_size = hextoul(argv[4], NULL); if (argc >= 6) { /* * When the base_ptr is passed in, we assume that the image is @@ -428,7 +428,7 @@ static int do_zboot_start(struct cmd_tbl *cmdtp, int flag, int argc, * load address and set bzimage_addr to 0 so we know that it * cannot be proceesed (or processed again). */ - state.base_ptr = (void *)simple_strtoul(argv[5], NULL, 16); + state.base_ptr = (void *)hextoul(argv[5], NULL); state.load_address = state.bzimage_addr; state.bzimage_addr = 0; } @@ -702,7 +702,7 @@ static int do_zboot_dump(struct cmd_tbl *cmdtp, int flag, int argc, struct boot_params *base_ptr = state.base_ptr; if (argc > 1) - base_ptr = (void *)simple_strtoul(argv[1], NULL, 16); + base_ptr = (void *)hextoul(argv[1], NULL); if (!base_ptr) { printf("No zboot setup_base\n"); return CMD_RET_FAILURE; @@ -749,7 +749,7 @@ int do_zboot_parent(struct cmd_tbl *cmdtp, int flag, int argc, if (argc > 1) { char *endp; - simple_strtoul(argv[1], &endp, 16); + hextoul(argv[1], &endp); /* * endp pointing to nul means that argv[1] was just a valid * number, so pass it along to the normal processing diff --git a/board/Arcturus/ucp1020/ucp1020.c b/board/Arcturus/ucp1020/ucp1020.c index 24d1d57ec4b..ee8a9e0a5e4 100644 --- a/board/Arcturus/ucp1020/ucp1020.c +++ b/board/Arcturus/ucp1020/ucp1020.c @@ -52,7 +52,7 @@ void spi_set_speed(struct spi_slave *slave, uint hz) */ int name_to_gpio(const char *name) { - int gpio = 31 - simple_strtoul(name, NULL, 10); + int gpio = 31 - dectoul(name, NULL); if (gpio < 16) gpio = -1; diff --git a/board/BuS/eb_cpu5282/eb_cpu5282.c b/board/BuS/eb_cpu5282/eb_cpu5282.c index 144a08922b1..b739bc3ca6a 100644 --- a/board/BuS/eb_cpu5282/eb_cpu5282.c +++ b/board/BuS/eb_cpu5282/eb_cpu5282.c @@ -194,13 +194,13 @@ int drv_video_init(void) printf("Init Video as "); s = env_get("displaywidth"); if (s != NULL) - display_width = simple_strtoul(s, NULL, 10); + display_width = dectoul(s, NULL); else display_width = 256; s = env_get("displayheight"); if (s != NULL) - display_height = simple_strtoul(s, NULL, 10); + display_height = dectoul(s, NULL); else display_height = 256; @@ -214,7 +214,7 @@ int drv_video_init(void) #ifdef CONFIG_SPLASH_SCREEN s = env_get("splashimage"); if (s != NULL) { - splash = simple_strtoul(s, NULL, 16); + splash = hextoul(s, NULL); vcxk_acknowledge_wait(); video_display_bitmap(splash, 0, 0); } @@ -234,8 +234,8 @@ int do_brightness(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) switch (argc) { case 3: - side = simple_strtoul(argv[1], NULL, 10); - bright = simple_strtoul(argv[2], NULL, 10); + side = dectoul(argv[1], NULL); + bright = dectoul(argv[2], NULL); if ((side >= 0) && (side <= 3) && (bright >= 0) && (bright <= 1000)) { vcxk_setbrightness(side, bright); diff --git a/board/Marvell/octeontx2/board.c b/board/Marvell/octeontx2/board.c index 9b973a4aceb..4e8cb839f5e 100644 --- a/board/Marvell/octeontx2/board.c +++ b/board/Marvell/octeontx2/board.c @@ -230,7 +230,7 @@ static int do_go_uboot(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 2) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); fdt = board_fdt_blob_setup(); entry = (uboot_entry_t)addr; flush_cache((ulong)addr, 1 << 20); /* 1MiB should be enough */ diff --git a/board/amlogic/beelink-s922x/beelink-s922x.c b/board/amlogic/beelink-s922x/beelink-s922x.c index bb744262661..adae27fc7e7 100644 --- a/board/amlogic/beelink-s922x/beelink-s922x.c +++ b/board/amlogic/beelink-s922x/beelink-s922x.c @@ -39,7 +39,7 @@ int misc_init_r(void) tmp[0] = efuse_mac_addr[i * 2]; tmp[1] = efuse_mac_addr[i * 2 + 1]; tmp[2] = '\0'; - mac_addr[i] = simple_strtoul(tmp, NULL, 16); + mac_addr[i] = hextoul(tmp, NULL); } if (is_valid_ethaddr(mac_addr)) diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c index 88a60f34fe8..c37ea65417f 100644 --- a/board/amlogic/odroid-n2/odroid-n2.c +++ b/board/amlogic/odroid-n2/odroid-n2.c @@ -126,7 +126,7 @@ int misc_init_r(void) tmp[0] = efuse_mac_addr[i * 2]; tmp[1] = efuse_mac_addr[i * 2 + 1]; tmp[2] = '\0'; - mac_addr[i] = simple_strtoul(tmp, NULL, 16); + mac_addr[i] = hextoul(tmp, NULL); } if (is_valid_ethaddr(mac_addr)) diff --git a/board/amlogic/vim3/vim3.c b/board/amlogic/vim3/vim3.c index 18ef146218f..5d9ac6458d6 100644 --- a/board/amlogic/vim3/vim3.c +++ b/board/amlogic/vim3/vim3.c @@ -166,7 +166,7 @@ int misc_init_r(void) tmp[0] = efuse_mac_addr[i * 2]; tmp[1] = efuse_mac_addr[i * 2 + 1]; tmp[2] = '\0'; - mac_addr[i] = simple_strtoul(tmp, NULL, 16); + mac_addr[i] = hextoul(tmp, NULL); } if (is_valid_ethaddr(mac_addr)) diff --git a/board/atmel/common/board.c b/board/atmel/common/board.c index eee5c357bdc..c93c0e52e30 100644 --- a/board/atmel/common/board.c +++ b/board/atmel/common/board.c @@ -47,7 +47,7 @@ void at91_pda_detect(void) break; } } - pda = simple_strtoul((const char *)buf, NULL, 10); + pda = dectoul((const char *)buf, NULL); switch (pda) { case 7000: diff --git a/board/bluewater/gurnard/gurnard.c b/board/bluewater/gurnard/gurnard.c index e217b95b4f2..35c89850bef 100644 --- a/board/bluewater/gurnard/gurnard.c +++ b/board/bluewater/gurnard/gurnard.c @@ -376,7 +376,7 @@ int board_late_init(void) /* Parse MAC address */ for (i = 0; i < 6; i++) { env_enetaddr[i] = env_str ? - simple_strtoul(env_str, &end, 16) : 0; + hextoul(env_str, &end) : 0; if (env_str) env_str = (*end) ? end+1 : end; } diff --git a/board/cavium/thunderx/atf.c b/board/cavium/thunderx/atf.c index 64aa198765f..1a039c53c14 100644 --- a/board/cavium/thunderx/atf.c +++ b/board/cavium/thunderx/atf.c @@ -235,48 +235,48 @@ int do_atf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) char str[4 * sizeof(uint64_t)]; if ((argc == 5) && !strcmp(argv[1], "readmmc")) { - buffer = (void *)simple_strtoul(argv[2], NULL, 16); - offset = simple_strtoul(argv[3], NULL, 10); - size = simple_strtoul(argv[4], NULL, 10); + buffer = (void *)hextoul(argv[2], NULL); + offset = dectoul(argv[3], NULL); + size = dectoul(argv[4], NULL); ret = atf_read_mmc(offset, buffer, size); } else if ((argc == 5) && !strcmp(argv[1], "readnor")) { - buffer = (void *)simple_strtoul(argv[2], NULL, 16); - offset = simple_strtoul(argv[3], NULL, 10); - size = simple_strtoul(argv[4], NULL, 10); + buffer = (void *)hextoul(argv[2], NULL); + offset = dectoul(argv[3], NULL); + size = dectoul(argv[4], NULL); ret = atf_read_nor(offset, buffer, size); } else if ((argc == 5) && !strcmp(argv[1], "writemmc")) { - buffer = (void *)simple_strtoul(argv[2], NULL, 16); - offset = simple_strtoul(argv[3], NULL, 10); - size = simple_strtoul(argv[4], NULL, 10); + buffer = (void *)hextoul(argv[2], NULL); + offset = dectoul(argv[3], NULL); + size = dectoul(argv[4], NULL); ret = atf_write_mmc(offset, buffer, size); } else if ((argc == 5) && !strcmp(argv[1], "writenor")) { - buffer = (void *)simple_strtoul(argv[2], NULL, 16); - offset = simple_strtoul(argv[3], NULL, 10); - size = simple_strtoul(argv[4], NULL, 10); + buffer = (void *)hextoul(argv[2], NULL); + offset = dectoul(argv[3], NULL); + size = dectoul(argv[4], NULL); ret = atf_write_nor(offset, buffer, size); } else if ((argc == 2) && !strcmp(argv[1], "part")) { atf_print_part_table(); } else if ((argc == 4) && !strcmp(argv[1], "erasenor")) { - offset = simple_strtoul(argv[2], NULL, 10); - size = simple_strtoul(argv[3], NULL, 10); + offset = dectoul(argv[2], NULL); + size = dectoul(argv[3], NULL); ret = atf_erase_nor(offset, size); } else if ((argc == 2) && !strcmp(argv[1], "envcount")) { ret = atf_env_count(); printf("Number of environment strings: %zd\n", ret); } else if ((argc == 3) && !strcmp(argv[1], "envstring")) { - index = simple_strtoul(argv[2], NULL, 10); + index = dectoul(argv[2], NULL); ret = atf_env_string(index, str); if (ret > 0) printf("Environment string %d: %s\n", index, str); else printf("Return code: %zd\n", ret); } else if ((argc == 3) && !strcmp(argv[1], "dramsize")) { - node = simple_strtoul(argv[2], NULL, 10); + node = dectoul(argv[2], NULL); ret = atf_dram_size(node); printf("DRAM size: %zd Mbytes\n", ret >> 20); } else if ((argc == 2) && !strcmp(argv[1], "nodes")) { diff --git a/board/compulab/common/eeprom.c b/board/compulab/common/eeprom.c index 5206cf5c0ad..b41c64d2a32 100644 --- a/board/compulab/common/eeprom.c +++ b/board/compulab/common/eeprom.c @@ -153,7 +153,7 @@ u32 cl_eeprom_get_board_rev(uint eeprom_bus) */ if (cl_eeprom_layout == LAYOUT_LEGACY) { sprintf(str, "%x", board_rev); - board_rev = simple_strtoul(str, NULL, 10); + board_rev = dectoul(str, NULL); } return board_rev; diff --git a/board/compulab/common/omap3_display.c b/board/compulab/common/omap3_display.c index cb9ebae7f96..4ed3b9c00ac 100644 --- a/board/compulab/common/omap3_display.c +++ b/board/compulab/common/omap3_display.c @@ -244,7 +244,7 @@ static int parse_pixclock(char *pixclock) int divisor, pixclock_val; char *pixclk_start = pixclock; - pixclock_val = simple_strtoul(pixclock, &pixclock, 10); + pixclock_val = dectoul(pixclock, &pixclock); divisor = DIV_ROUND_UP(PIXEL_CLK_NUMERATOR, pixclock_val); /* 0 and 1 are illegal values for PCD */ if (divisor <= 1) diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c index 383a8617384..6c75231ddf7 100644 --- a/board/davinci/da8xxevm/da850evm.c +++ b/board/davinci/da8xxevm/da850evm.c @@ -284,7 +284,7 @@ u32 get_board_rev(void) s = env_get("maxcpuclk"); if (s) - maxcpuclk = simple_strtoul(s, NULL, 10); + maxcpuclk = dectoul(s, NULL); if (maxcpuclk >= 456000000) rev = 3; diff --git a/board/esd/meesc/meesc.c b/board/esd/meesc/meesc.c index eaa525eb004..a3eee63e375 100644 --- a/board/esd/meesc/meesc.c +++ b/board/esd/meesc/meesc.c @@ -208,7 +208,7 @@ void get_board_serial(struct tag_serialnr *serialnr) str = strchr(serial, '_'); if (str && (strlen(str) >= 4)) { serialnr->high = (*(str + 1) << 8) | *(str + 2); - serialnr->low = simple_strtoul(str + 3, NULL, 16); + serialnr->low = hextoul(str + 3, NULL); } } else { serialnr->high = 0; diff --git a/board/freescale/common/cmd_esbc_validate.c b/board/freescale/common/cmd_esbc_validate.c index 638aa3c19a4..6c096266b48 100644 --- a/board/freescale/common/cmd_esbc_validate.c +++ b/board/freescale/common/cmd_esbc_validate.c @@ -40,7 +40,7 @@ static int do_esbc_validate(struct cmd_tbl *cmdtp, int flag, int argc, hash_str = argv[2]; /* First argument - header address -32/64bit */ - haddr = (uintptr_t)simple_strtoul(argv[1], NULL, 16); + haddr = (uintptr_t)hextoul(argv[1], NULL); /* With esbc_validate command, Image address must be * part of header. So, the function is called diff --git a/board/freescale/common/fsl_validate.c b/board/freescale/common/fsl_validate.c index 564a8b3b54f..066aa9a7c37 100644 --- a/board/freescale/common/fsl_validate.c +++ b/board/freescale/common/fsl_validate.c @@ -767,7 +767,7 @@ static inline int str2longbe(const char *p, ulong *num) if (!p) { return 0; } else { - tmp = simple_strtoul(p, &endptr, 16); + tmp = hextoul(p, &endptr); if (sizeof(ulong) == 4) *num = cpu_to_be32(tmp); else diff --git a/board/freescale/common/pixis.c b/board/freescale/common/pixis.c index 4127fbc1396..6fdb11039e5 100644 --- a/board/freescale/common/pixis.c +++ b/board/freescale/common/pixis.c @@ -403,10 +403,10 @@ static unsigned long strfractoint(char *strptr) mulconst = 1; for (i = 0; i < j; i++) mulconst *= 10; - decval = simple_strtoul(decarr, NULL, 10); + decval = dectoul(decarr, NULL); } - intval = simple_strtoul(intarr, NULL, 10); + intval = dectoul(intarr, NULL); intval = intval * mulconst; return intval + decval; @@ -489,9 +489,9 @@ static int pixis_reset_cmd(struct cmd_tbl *cmdtp, int flag, int argc, unsigned long corepll; unsigned long mpxpll; - sysclk = simple_strtoul(p_cf_sysclk, NULL, 10); + sysclk = dectoul(p_cf_sysclk, NULL); corepll = strfractoint(p_cf_corepll); - mpxpll = simple_strtoul(p_cf_mpxpll, NULL, 10); + mpxpll = dectoul(p_cf_mpxpll, NULL); if (!(set_px_sysclk(sysclk) && set_px_corepll(corepll) diff --git a/board/freescale/common/sys_eeprom.c b/board/freescale/common/sys_eeprom.c index be0fda06381..35df8ba389e 100644 --- a/board/freescale/common/sys_eeprom.c +++ b/board/freescale/common/sys_eeprom.c @@ -378,7 +378,7 @@ static void set_mac_address(unsigned int index, const char *string) } for (i = 0; *p && (i < 6); i++) { - e.mac[index][i] = simple_strtoul(p, &p, 16); + e.mac[index][i] = hextoul(p, &p); if (*p == ':') p++; } @@ -452,11 +452,11 @@ int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) set_date(argv[2]); break; case 'p': /* MAC table size */ - e.mac_count = simple_strtoul(argv[2], NULL, 16); + e.mac_count = hextoul(argv[2], NULL); update_crc(); break; case '0' ... '9': /* "mac 0" through "mac 22" */ - set_mac_address(simple_strtoul(argv[1], NULL, 10), argv[2]); + set_mac_address(dectoul(argv[1], NULL), argv[2]); break; case 'h': /* help */ default: diff --git a/board/freescale/lx2160a/eth_lx2160aqds.c b/board/freescale/lx2160a/eth_lx2160aqds.c index 437f0bc4cf6..a2b6442b542 100644 --- a/board/freescale/lx2160a/eth_lx2160aqds.c +++ b/board/freescale/lx2160a/eth_lx2160aqds.c @@ -416,7 +416,7 @@ static inline void do_dpmac_config(int dpmac, const char *arg_dpmacid, env_dpmac, phy_num + 1, arg_dpmacid); else wriop_set_phy_address(dpmac, phy_num, - simple_strtoul(ret, NULL, 16)); + hextoul(ret, NULL)); } /*search mdio in dpmac arg*/ diff --git a/board/freescale/lx2160a/eth_lx2162aqds.c b/board/freescale/lx2160a/eth_lx2162aqds.c index b742c1ff528..3b04dea39cd 100644 --- a/board/freescale/lx2160a/eth_lx2162aqds.c +++ b/board/freescale/lx2160a/eth_lx2162aqds.c @@ -437,7 +437,7 @@ static inline void do_dpmac_config(int dpmac, const char *arg_dpmacid, env_dpmac, phy_num + 1, arg_dpmacid); else wriop_set_phy_address(dpmac, phy_num, - simple_strtoul(ret, NULL, 16)); + hextoul(ret, NULL)); } /*search mdio in dpmac arg*/ diff --git a/board/freescale/p1_p2_rdb_pc/p1_p2_rdb_pc.c b/board/freescale/p1_p2_rdb_pc/p1_p2_rdb_pc.c index 8273384f2d5..cf4d9c11b89 100644 --- a/board/freescale/p1_p2_rdb_pc/p1_p2_rdb_pc.c +++ b/board/freescale/p1_p2_rdb_pc/p1_p2_rdb_pc.c @@ -281,7 +281,7 @@ int board_early_init_r(void) /* If a VSC7385 microcode image is present, then upload it. */ tmp = env_get("vscfw_addr"); if (tmp) { - vscfw_addr = simple_strtoul(tmp, NULL, 16); + vscfw_addr = hextoul(tmp, NULL); printf("uploading VSC7385 microcode from %x\n", vscfw_addr); if (vsc7385_upload_firmware((void *)vscfw_addr, CONFIG_VSC7385_IMAGE_SIZE)) diff --git a/board/freescale/p2041rdb/cpld.c b/board/freescale/p2041rdb/cpld.c index b042fe3bcbc..a1908b8a571 100644 --- a/board/freescale/p2041rdb/cpld.c +++ b/board/freescale/p2041rdb/cpld.c @@ -100,8 +100,8 @@ int cpld_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) else cpld_set_defbank(); } else if (strcmp(argv[1], "lane_mux") == 0) { - u32 lane = simple_strtoul(argv[2], NULL, 16); - u8 val = (u8)simple_strtoul(argv[3], NULL, 16); + u32 lane = hextoul(argv[2], NULL); + u8 val = (u8)hextoul(argv[3], NULL); u8 reg = CPLD_READ(serdes_mux); switch (lane) { diff --git a/board/gateworks/gw_ventana/common.c b/board/gateworks/gw_ventana/common.c index c07eb627a21..4a15837473b 100644 --- a/board/gateworks/gw_ventana/common.c +++ b/board/gateworks/gw_ventana/common.c @@ -1502,7 +1502,7 @@ void setup_board_gpio(int board, struct ventana_board_info *info) continue; s = hwconfig_subarg(arg, "padctrl", &len); if (s) { - ctrl = MUX_PAD_CTRL(simple_strtoul(s, NULL, 16) + ctrl = MUX_PAD_CTRL(hextoul(s, NULL) & 0x1ffff) | MUX_MODE_SION; } if (hwconfig_subarg_cmp(arg, "mode", "gpio")) { diff --git a/board/gateworks/gw_ventana/gsc.c b/board/gateworks/gw_ventana/gsc.c index ffed6b5fc8b..59fd1b6939a 100644 --- a/board/gateworks/gw_ventana/gsc.c +++ b/board/gateworks/gw_ventana/gsc.c @@ -277,7 +277,7 @@ static int do_gsc_sleep(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 2) return CMD_RET_USAGE; - secs = simple_strtoul(argv[1], NULL, 10); + secs = dectoul(argv[1], NULL); printf("GSC Sleeping for %ld seconds\n", secs); i2c_set_bus_num(0); @@ -322,7 +322,7 @@ static int do_gsc_wd(struct cmd_tbl *cmdtp, int flag, int argc, int timeout = 0; if (argc > 2) - timeout = simple_strtoul(argv[2], NULL, 10); + timeout = dectoul(argv[2], NULL); i2c_set_bus_num(0); if (gsc_i2c_read(GSC_SC_ADDR, GSC_SC_CTRL1, 1, ®, 1)) return CMD_RET_FAILURE; diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c index 468fb093b7b..912075db884 100644 --- a/board/gateworks/gw_ventana/gw_ventana.c +++ b/board/gateworks/gw_ventana/gw_ventana.c @@ -471,7 +471,7 @@ void get_board_serial(struct tag_serialnr *serialnr) if (serial) { serialnr->high = 0; - serialnr->low = simple_strtoul(serial, NULL, 10); + serialnr->low = dectoul(serial, NULL); } else if (ventana_info.model[0]) { serialnr->high = 0; serialnr->low = ventana_info.serial; @@ -915,7 +915,7 @@ int fdt_fixup_sky2(void *blob, int np, struct pci_dev *dev) if (tmp) { for (j = 0; j < 6; j++) { mac_addr[j] = tmp ? - simple_strtoul(tmp, &end,16) : 0; + hextoul(tmp, &end) : 0; if (tmp) tmp = (*end) ? end+1 : end; } diff --git a/board/gateworks/venice/gsc.c b/board/gateworks/venice/gsc.c index c75bc6f8557..271bc8c2293 100644 --- a/board/gateworks/venice/gsc.c +++ b/board/gateworks/venice/gsc.c @@ -660,7 +660,7 @@ static int do_gsc(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[] if (strcasecmp(argv[1], "sleep") == 0) { if (argc < 3) return CMD_RET_USAGE; - if (!gsc_sleep(simple_strtoul(argv[2], NULL, 10))) + if (!gsc_sleep(dectoul(argv[2], NULL))) return CMD_RET_SUCCESS; } else if (strcasecmp(argv[1], "hwmon") == 0) { if (!gsc_hwmon()) diff --git a/board/gdsys/common/cmd_ioloop.c b/board/gdsys/common/cmd_ioloop.c index 658756d9842..1412421a021 100644 --- a/board/gdsys/common/cmd_ioloop.c +++ b/board/gdsys/common/cmd_ioloop.c @@ -275,13 +275,13 @@ int do_ioreflect(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 2) return CMD_RET_USAGE; - fpga = simple_strtoul(argv[1], NULL, 10); + fpga = dectoul(argv[1], NULL); /* * If another parameter, it is the report rate in packets. */ if (argc > 2) - rate = simple_strtoul(argv[2], NULL, 10); + rate = dectoul(argv[2], NULL); /* Enable receive path */ FPGA_SET_REG(fpga, ep.rx_tx_control, CTRL_PROC_RECEIVE_ENABLE); @@ -388,18 +388,18 @@ int do_ioloop(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) /* * FPGA is specified since argc > 2 */ - fpga = simple_strtoul(argv[1], NULL, 10); + fpga = dectoul(argv[1], NULL); /* * packet size is specified since argc > 2 */ - size = simple_strtoul(argv[2], NULL, 10); + size = dectoul(argv[2], NULL); /* * If another parameter, it is the test rate in packets per second. */ if (argc > 3) - rate = simple_strtoul(argv[3], NULL, 10); + rate = dectoul(argv[3], NULL); /* enable receive path */ FPGA_SET_REG(fpga, ep.rx_tx_control, CTRL_PROC_RECEIVE_ENABLE); @@ -463,13 +463,13 @@ int do_ioloop(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) /* * packet size is specified since argc > 1 */ - size = simple_strtoul(argv[2], NULL, 10); + size = dectoul(argv[2], NULL); /* * If another parameter, it is the test rate in packets per second. */ if (argc > 2) - rate = simple_strtoul(argv[3], NULL, 10); + rate = dectoul(argv[3], NULL); /* Enable receive path */ misc_set_enabled(dev, true); @@ -514,7 +514,7 @@ int do_iodev(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_FAILURE; if (argc > 1) { - int i = simple_strtoul(argv[1], NULL, 10); + int i = dectoul(argv[1], NULL); snprintf(name, sizeof(name), "ioep%d", i); diff --git a/board/gdsys/common/osd.c b/board/gdsys/common/osd.c index 679f8f30191..dc548efbc7a 100644 --- a/board/gdsys/common/osd.c +++ b/board/gdsys/common/osd.c @@ -284,9 +284,9 @@ static int osd_print(struct cmd_tbl *cmdtp, int flag, int argc, if (!(osd_screen_mask & (1 << screen))) continue; - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); - color = simple_strtoul(argv[3], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); + color = hextoul(argv[3], NULL); text = argv[4]; charcount = strlen(text); len = (charcount > bufsize) ? bufsize : charcount; @@ -416,13 +416,13 @@ int osd_write(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) char *rp; u16 *wp = buffer; unsigned count = (argc > 4) ? - simple_strtoul(argv[4], NULL, 16) : 1; + hextoul(argv[4], NULL) : 1; if (!(osd_screen_mask & (1 << screen))) continue; - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); rp = argv[3]; @@ -431,7 +431,7 @@ int osd_write(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) memcpy(substr, rp, 4); substr[4] = 0; - *wp = simple_strtoul(substr, NULL, 16); + *wp = hextoul(substr, NULL); rp += 4; wp++; @@ -463,8 +463,8 @@ int osd_size(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 1; } - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); if (!x || (x > 64) || (x > MAX_X_CHARS) || !y || (y > 32) || (y > MAX_Y_CHARS)) { diff --git a/board/gdsys/common/osd_cmd.c b/board/gdsys/common/osd_cmd.c index fe6249794e7..6a9c0b4c24f 100644 --- a/board/gdsys/common/osd_cmd.c +++ b/board/gdsys/common/osd_cmd.c @@ -30,10 +30,10 @@ static int do_osd_write(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 4 || (strlen(argv[3])) % 2) return CMD_RET_USAGE; - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); hexstr = argv[3]; - count = (argc > 4) ? simple_strtoul(argv[4], NULL, 16) : 1; + count = (argc > 4) ? hextoul(argv[4], NULL) : 1; buflen = strlen(hexstr) / 2; @@ -80,9 +80,9 @@ static int do_osd_print(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 5) return CMD_RET_USAGE; - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); - color = simple_strtoul(argv[3], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); + color = hextoul(argv[3], NULL); text = argv[4]; for (uclass_first_device(UCLASS_VIDEO_OSD, &dev); @@ -109,8 +109,8 @@ static int do_osd_size(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); for (uclass_first_device(UCLASS_VIDEO_OSD, &dev); dev; diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c index 016806a2a6c..ff07260194c 100644 --- a/board/keymile/common/common.c +++ b/board/keymile/common/common.c @@ -278,7 +278,7 @@ static int do_checkboardidhwk(struct cmd_tbl *cmdtp, int flag, int argc, * use simple_strtoul because we need &end and * we know we got non numeric char at the end */ - bid = simple_strtoul(rest, &endp, 16); + bid = hextoul(rest, &endp); /* BoardId and HWkey are separated with a "_" */ if (*endp == '_') { rest = endp + 1; @@ -286,7 +286,7 @@ static int do_checkboardidhwk(struct cmd_tbl *cmdtp, int flag, int argc, * use simple_strtoul because we need * &end */ - hwkey = simple_strtoul(rest, &endp, 16); + hwkey = hextoul(rest, &endp); rest = endp; while (*rest && !isxdigit(*rest)) rest++; diff --git a/board/kontron/sl28/cmds.c b/board/kontron/sl28/cmds.c index 046d3b4903f..08a22b5d01e 100644 --- a/board/kontron/sl28/cmds.c +++ b/board/kontron/sl28/cmds.c @@ -138,7 +138,7 @@ static int do_sl28_nvm(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_FAILURE; if (argc > 1) { - nvm = simple_strtoul(argv[1], &endp, 16); + nvm = hextoul(argv[1], &endp); if (*endp != '\0') { printf("ERROR: argument is not a valid number\n"); ret = -EINVAL; diff --git a/board/menlo/m53menlo/m53menlo.c b/board/menlo/m53menlo/m53menlo.c index c34baca602c..2b331b32df5 100644 --- a/board/menlo/m53menlo/m53menlo.c +++ b/board/menlo/m53menlo/m53menlo.c @@ -347,7 +347,7 @@ int board_late_init(void) if (!s) return 0; - addr = simple_strtoul(s, NULL, 16); + addr = hextoul(s, NULL); dst = malloc(CONFIG_SYS_VIDEO_LOGO_MAX_SIZE); if (!dst) return -ENOMEM; diff --git a/board/renesas/stout/cpld.c b/board/renesas/stout/cpld.c index ac8048c81c5..b7c75f5aa65 100644 --- a/board/renesas/stout/cpld.c +++ b/board/renesas/stout/cpld.c @@ -133,7 +133,7 @@ static int do_cpld(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); if (!(addr == CPLD_ADDR_VERSION || addr == CPLD_ADDR_MODE || addr == CPLD_ADDR_MUX || addr == CPLD_ADDR_HDMI || addr == CPLD_ADDR_DIPSW || addr == CPLD_ADDR_RESET)) { @@ -144,7 +144,7 @@ static int do_cpld(struct cmd_tbl *cmdtp, int flag, int argc, if (argc == 3 && strcmp(argv[1], "read") == 0) { printf("0x%x\n", cpld_read(addr)); } else if (argc == 4 && strcmp(argv[1], "write") == 0) { - val = simple_strtoul(argv[3], NULL, 16); + val = hextoul(argv[3], NULL); if (addr == CPLD_ADDR_MUX) { /* never mask SCIFA0 console */ val &= ~MUX_MSK_SCIFA0_USB; diff --git a/board/renesas/ulcb/cpld.c b/board/renesas/ulcb/cpld.c index ebb2d6f7420..0c060a5323d 100644 --- a/board/renesas/ulcb/cpld.c +++ b/board/renesas/ulcb/cpld.c @@ -111,7 +111,7 @@ static int do_cpld(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); if (!(addr == CPLD_ADDR_VERSION || addr == CPLD_ADDR_MODE || addr == CPLD_ADDR_MUX || addr == CPLD_ADDR_DIPSW6 || addr == CPLD_ADDR_RESET)) { @@ -122,7 +122,7 @@ static int do_cpld(struct cmd_tbl *cmdtp, int flag, int argc, if (argc == 3 && strcmp(argv[1], "read") == 0) { printf("0x%x\n", cpld_read(dev, addr)); } else if (argc == 4 && strcmp(argv[1], "write") == 0) { - val = simple_strtoul(argv[3], NULL, 16); + val = hextoul(argv[3], NULL); cpld_write(dev, addr, val); } diff --git a/board/samsung/common/exynos5-dt.c b/board/samsung/common/exynos5-dt.c index 1318ea716a5..0d77a57f808 100644 --- a/board/samsung/common/exynos5-dt.c +++ b/board/samsung/common/exynos5-dt.c @@ -169,7 +169,7 @@ char *get_dfu_alt_boot(char *interface, char *devstr) if (board_is_odroidxu4() || board_is_odroidhc1() || board_is_odroidhc2()) return info; - dev_num = simple_strtoul(devstr, NULL, 10); + dev_num = dectoul(devstr, NULL); mmc = find_mmc_device(dev_num); if (!mmc) diff --git a/board/samsung/odroid/odroid.c b/board/samsung/odroid/odroid.c index 90aab62d33b..35e4cee74f4 100644 --- a/board/samsung/odroid/odroid.c +++ b/board/samsung/odroid/odroid.c @@ -85,7 +85,7 @@ char *get_dfu_alt_boot(char *interface, char *devstr) char *alt_boot; int dev_num; - dev_num = simple_strtoul(devstr, NULL, 10); + dev_num = dectoul(devstr, NULL); mmc = find_mmc_device(dev_num); if (!mmc) diff --git a/board/siemens/common/factoryset.c b/board/siemens/common/factoryset.c index 2e3ae1a54da..fba678b4260 100644 --- a/board/siemens/common/factoryset.c +++ b/board/siemens/common/factoryset.c @@ -243,7 +243,7 @@ int factoryset_read_eeprom(int i2c_addr) buf, MAX_STRING_LENGTH); cp1 = buf; for (i = 0; i < 6; i++) { - factory_dat.mac[i] = simple_strtoul((char *)cp1, NULL, 16); + factory_dat.mac[i] = hextoul((char *)cp1, NULL); cp1 += 3; } @@ -254,8 +254,7 @@ int factoryset_read_eeprom(int i2c_addr) if (ret > 0) { cp1 = buf; for (i = 0; i < 6; i++) { - factory_dat.mac_wlan[i] = simple_strtoul((char *)cp1, - NULL, 16); + factory_dat.mac_wlan[i] = hextoul((char *)cp1, NULL); cp1 += 3; } } @@ -266,15 +265,13 @@ int factoryset_read_eeprom(int i2c_addr) if (0 <= get_factory_record_val(cp, size, (uchar *)"USBD1", (uchar *)"vid", buf, MAX_STRING_LENGTH)) { - factory_dat.usb_vendor_id = simple_strtoul((char *)buf, - NULL, 16); + factory_dat.usb_vendor_id = hextoul((char *)buf, NULL); } if (0 <= get_factory_record_val(cp, size, (uchar *)"USBD1", (uchar *)"pid", buf, MAX_STRING_LENGTH)) { - factory_dat.usb_product_id = simple_strtoul((char *)buf, - NULL, 16); + factory_dat.usb_product_id = hextoul((char *)buf, NULL); } printf("DFU USB: VID = 0x%4x, PID = 0x%4x\n", factory_dat.usb_vendor_id, factory_dat.usb_product_id); @@ -294,8 +291,7 @@ int factoryset_read_eeprom(int i2c_addr) if (0 <= get_factory_record_val(cp, size, (uchar *)"DEV", (uchar *)"ver", buf, MAX_STRING_LENGTH)) { - factory_dat.version = simple_strtoul((char *)buf, - NULL, 16); + factory_dat.version = hextoul((char *)buf, NULL); debug("version number: %d\n", factory_dat.version); } /* Get ASN from factory set if available */ diff --git a/board/siemens/taurus/taurus.c b/board/siemens/taurus/taurus.c index cad16f90656..dae064d4654 100644 --- a/board/siemens/taurus/taurus.c +++ b/board/siemens/taurus/taurus.c @@ -394,10 +394,9 @@ static int do_upgrade_available(struct cmd_tbl *cmdtp, int flag, int argc, unsigned long boot_retry = 0; char boot_buf[10]; - upgrade_available = simple_strtoul(env_get("upgrade_available"), NULL, - 10); + upgrade_available = dectoul(env_get("upgrade_available"), NULL); if (upgrade_available) { - boot_retry = simple_strtoul(env_get("boot_retries"), NULL, 10); + boot_retry = dectoul(env_get("boot_retries"), NULL); boot_retry++; sprintf(boot_buf, "%lx", boot_retry); env_set("boot_retries", boot_buf); diff --git a/board/sifive/unmatched/hifive-platform-i2c-eeprom.c b/board/sifive/unmatched/hifive-platform-i2c-eeprom.c index ad2f3155d07..2b985b9b228 100644 --- a/board/sifive/unmatched/hifive-platform-i2c-eeprom.c +++ b/board/sifive/unmatched/hifive-platform-i2c-eeprom.c @@ -281,7 +281,7 @@ static void set_mac_address(char *string) } for (i = 0; *string && (i < MAC_ADDR_BYTES); i++) { - e.mac_addr[i] = simple_strtoul(string, &string, 16); + e.mac_addr[i] = hextoul(string, &string); if (*string == ':') string++; } @@ -324,7 +324,7 @@ static void set_pcb_revision(char *string) { unsigned long p; - p = simple_strtoul(string, &string, 10); + p = dectoul(string, &string); if (p > U8_MAX) { printf("%s must not be greater than %d\n", "PCB revision", U8_MAX); @@ -366,7 +366,7 @@ static void set_bom_variant(char *string) { unsigned long p; - p = simple_strtoul(string, &string, 10); + p = dectoul(string, &string); if (p > U8_MAX) { printf("%s must not be greater than %d\n", "BOM variant", U8_MAX); @@ -389,7 +389,7 @@ static void set_product_id(char *string) { unsigned long p; - p = simple_strtoul(string, &string, 10); + p = dectoul(string, &string); if (p > U16_MAX) { printf("%s must not be greater than %d\n", "Product ID", U16_MAX); diff --git a/board/synopsys/hsdk/env-lib.c b/board/synopsys/hsdk/env-lib.c index 235f29565f9..fd54ac75f20 100644 --- a/board/synopsys/hsdk/env-lib.c +++ b/board/synopsys/hsdk/env-lib.c @@ -252,9 +252,9 @@ static int arg_read_set(const struct env_map_common *map, u32 i, int argc, char *endp = argv[1]; if (map[i].type == ENV_HEX) - map[i].val->val = simple_strtoul(argv[1], &endp, 16); + map[i].val->val = hextoul(argv[1], &endp); else - map[i].val->val = simple_strtoul(argv[1], &endp, 10); + map[i].val->val = dectoul(argv[1], &endp); map[i].val->set = true; diff --git a/board/ti/am64x/evm.c b/board/ti/am64x/evm.c index cdbb9a87bc4..21c58c76d67 100644 --- a/board/ti/am64x/evm.c +++ b/board/ti/am64x/evm.c @@ -120,7 +120,7 @@ static void setup_serial(void) if (env_get("serial#")) return; - board_serial = simple_strtoul(ep->serial, &endp, 16); + board_serial = hextoul(ep->serial, &endp); if (*endp != '\0') { pr_err("Error: Can't set serial# to %s\n", ep->serial); return; diff --git a/board/ti/j721e/evm.c b/board/ti/j721e/evm.c index 580f13c3ab1..077d83420c9 100644 --- a/board/ti/j721e/evm.c +++ b/board/ti/j721e/evm.c @@ -201,7 +201,7 @@ static void setup_serial(void) if (env_get("serial#")) return; - board_serial = simple_strtoul(ep->serial, &endp, 16); + board_serial = hextoul(ep->serial, &endp); if (*endp != '\0') { pr_err("Error: Can't set serial# to %s\n", ep->serial); return; diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 93eb20cf631..e4f9a0db914 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -548,7 +548,7 @@ static int get_cfgblock_interactive(void) len = cli_readline(message); } - tdx_serial = simple_strtoul(console_buffer, NULL, 10); + tdx_serial = dectoul(console_buffer, NULL); return 0; } @@ -566,14 +566,14 @@ static int get_cfgblock_barcode(char *barcode, struct toradex_hw *tag, /* Get hardware information from the first 8 digits */ tag->ver_major = barcode[4] - '0'; tag->ver_minor = barcode[5] - '0'; - tag->ver_assembly = simple_strtoul(revision, NULL, 10); + tag->ver_assembly = dectoul(revision, NULL); barcode[4] = '\0'; - tag->prodid = simple_strtoul(barcode, NULL, 10); + tag->prodid = dectoul(barcode, NULL); /* Parse second part of the barcode (serial number */ barcode += 8; - *serial = simple_strtoul(barcode, NULL, 10); + *serial = dectoul(barcode, NULL); return 0; } @@ -710,7 +710,7 @@ int try_migrate_tdx_cfg_block_carrier(void) tdx_car_hw_tag.ver_assembly = pid8[7] - '0'; pid8[4] = '\0'; - tdx_car_hw_tag.prodid = simple_strtoul(pid8, NULL, 10); + tdx_car_hw_tag.prodid = dectoul(pid8, NULL); /* Valid Tag */ write_tag(config_block, &offset, TAG_VALID, NULL, 0); @@ -754,7 +754,7 @@ static int get_cfgblock_carrier_interactive(void) sprintf(message, "Choose your carrier board (provide ID): "); len = cli_readline(message); - tdx_car_hw_tag.prodid = simple_strtoul(console_buffer, NULL, 10); + tdx_car_hw_tag.prodid = dectoul(console_buffer, NULL); do { sprintf(message, "Enter carrier board version (e.g. V1.1B): V"); @@ -770,7 +770,7 @@ static int get_cfgblock_carrier_interactive(void) len = cli_readline(message); } - tdx_car_serial = simple_strtoul(console_buffer, NULL, 10); + tdx_car_serial = dectoul(console_buffer, NULL); return 0; } diff --git a/board/varisys/common/sys_eeprom.c b/board/varisys/common/sys_eeprom.c index 251d9fd73e5..8f624e5e368 100644 --- a/board/varisys/common/sys_eeprom.c +++ b/board/varisys/common/sys_eeprom.c @@ -299,7 +299,7 @@ static void set_mac_address(unsigned int index, const char *string) } for (i = 0; *p && (i < 6); i++) { - e.mac[index][i] = simple_strtoul(p, &p, 16); + e.mac[index][i] = hextoul(p, &p); if (*p == ':') p++; } @@ -364,11 +364,11 @@ int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) set_date(argv[2]); break; case 'p': /* MAC table size */ - e.mac_count = simple_strtoul(argv[2], NULL, 16); + e.mac_count = hextoul(argv[2], NULL); update_crc(); break; case '0' ... '9': /* "mac 0" through "mac 22" */ - set_mac_address(simple_strtoul(argv[1], NULL, 10), argv[2]); + set_mac_address(dectoul(argv[1], NULL), argv[2]); break; case 'h': /* help */ default: diff --git a/board/work-microwave/work_92105/work_92105_display.c b/board/work-microwave/work_92105/work_92105_display.c index fecbbbdb584..e8e559ce1f9 100644 --- a/board/work-microwave/work_92105/work_92105_display.c +++ b/board/work-microwave/work_92105/work_92105_display.c @@ -233,8 +233,7 @@ void work_92105_display_init(void) /* set display contrast */ display_contrast_str = env_get("fwopt_dispcontrast"); if (display_contrast_str) - display_contrast = simple_strtoul(display_contrast_str, - NULL, 10); + display_contrast = dectoul(display_contrast_str, NULL); i2c_write(0x2c, 0x00, 1, &display_contrast, 1); /* request GPO_15 as an output initially set to 1 */ diff --git a/board/xilinx/common/fru.c b/board/xilinx/common/fru.c index ccf48723ff8..f6ca46c3cec 100644 --- a/board/xilinx/common/fru.c +++ b/board/xilinx/common/fru.c @@ -19,7 +19,7 @@ static int do_fru_capture(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < cmdtp->maxargs) return CMD_RET_USAGE; - addr = simple_strtoul(argv[2], &endp, 16); + addr = hextoul(argv[2], &endp); if (*argv[1] == 0 || *endp != 0) return -1; @@ -41,7 +41,7 @@ static int do_fru_generate(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < cmdtp->maxargs) return CMD_RET_USAGE; - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); return fru_generate(addr, argv[3], argv[4], argv[5], argv[6], argv[7]); } diff --git a/board/xilinx/versal/cmds.c b/board/xilinx/versal/cmds.c index f5735d0c62c..04d4cdb1411 100644 --- a/board/xilinx/versal/cmds.c +++ b/board/xilinx/versal/cmds.c @@ -32,7 +32,7 @@ static int do_versal_load_pdi(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; } - len = simple_strtoul(argv[3], NULL, 16); + len = hextoul(argv[3], NULL); if (!len) { debug("pdi_load: zero size\n"); return CMD_RET_USAGE; diff --git a/board/xilinx/zynq/cmds.c b/board/xilinx/zynq/cmds.c index 6c697caa625..024fac65f30 100644 --- a/board/xilinx/zynq/cmds.c +++ b/board/xilinx/zynq/cmds.c @@ -422,7 +422,7 @@ static int do_zynq_rsa(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != cmdtp->maxargs) return CMD_RET_FAILURE; - src_ptr = simple_strtoul(argv[2], &endp, 16); + src_ptr = hextoul(argv[2], &endp); if (*argv[2] == 0 || *endp != 0) return CMD_RET_USAGE; @@ -453,26 +453,26 @@ static int zynq_decrypt_image(struct cmd_tbl *cmdtp, int flag, int argc, else return CMD_RET_USAGE; - srcaddr = simple_strtoul(argv[3], &endp, 16); + srcaddr = hextoul(argv[3], &endp); if (*argv[3] == 0 || *endp != 0) return CMD_RET_USAGE; - srclen = simple_strtoul(argv[4], &endp, 16); + srclen = hextoul(argv[4], &endp); if (*argv[4] == 0 || *endp != 0) return CMD_RET_USAGE; dstaddr = 0xFFFFFFFF; dstlen = srclen; } else { - srcaddr = simple_strtoul(argv[2], &endp, 16); + srcaddr = hextoul(argv[2], &endp); if (*argv[2] == 0 || *endp != 0) return CMD_RET_USAGE; - srclen = simple_strtoul(argv[3], &endp, 16); + srclen = hextoul(argv[3], &endp); if (*argv[3] == 0 || *endp != 0) return CMD_RET_USAGE; - dstaddr = simple_strtoul(argv[4], &endp, 16); + dstaddr = hextoul(argv[4], &endp); if (*argv[4] == 0 || *endp != 0) return CMD_RET_USAGE; - dstlen = simple_strtoul(argv[5], &endp, 16); + dstlen = hextoul(argv[5], &endp); if (*argv[5] == 0 || *endp != 0) return CMD_RET_USAGE; } diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c index cf63ad97fab..b15c0f599bd 100644 --- a/board/xilinx/zynqmp/cmds.c +++ b/board/xilinx/zynqmp/cmds.c @@ -40,7 +40,7 @@ static int do_zynqmp_verify_secure(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; src_addr = simple_strtoull(argv[2], NULL, 16); - len = simple_strtoul(argv[3], NULL, 16); + len = hextoul(argv[3], NULL); if (argc == 5) key_ptr = (uint8_t *)(uintptr_t)simple_strtoull(argv[4], @@ -86,7 +86,7 @@ static int do_zynqmp_mmio_read(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != cmdtp->maxargs) return CMD_RET_USAGE; - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); ret = zynqmp_mmio_read(addr, &read_val); if (!ret) @@ -107,9 +107,9 @@ static int do_zynqmp_mmio_write(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != cmdtp->maxargs) return CMD_RET_USAGE; - addr = simple_strtoul(argv[2], NULL, 16); - mask = simple_strtoul(argv[3], NULL, 16); - val = simple_strtoul(argv[4], NULL, 16); + addr = hextoul(argv[2], NULL); + mask = hextoul(argv[3], NULL); + val = hextoul(argv[4], NULL); ret = zynqmp_mmio_write(addr, mask, val); if (ret != 0) @@ -135,12 +135,12 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < cmdtp->maxargs - 1) return CMD_RET_USAGE; - aes->srcaddr = simple_strtoul(argv[2], NULL, 16); - aes->ivaddr = simple_strtoul(argv[3], NULL, 16); - aes->len = simple_strtoul(argv[4], NULL, 16); - aes->op = simple_strtoul(argv[5], NULL, 16); - aes->keysrc = simple_strtoul(argv[6], NULL, 16); - aes->dstaddr = simple_strtoul(argv[7], NULL, 16); + aes->srcaddr = hextoul(argv[2], NULL); + aes->ivaddr = hextoul(argv[3], NULL); + aes->len = hextoul(argv[4], NULL); + aes->op = hextoul(argv[5], NULL); + aes->keysrc = hextoul(argv[6], NULL); + aes->dstaddr = hextoul(argv[7], NULL); flush_dcache_range((ulong)aes, (ulong)(aes) + roundup(sizeof(struct aes), ARCH_DMA_MINALIGN)); @@ -161,7 +161,7 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < cmdtp->maxargs) return CMD_RET_USAGE; - aes->keyaddr = simple_strtoul(argv[8], NULL, 16); + aes->keyaddr = hextoul(argv[8], NULL); if (aes->keyaddr) flush_dcache_range(aes->keyaddr, (aes->keyaddr + @@ -187,7 +187,7 @@ static int do_zynqmp_tcm_init(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != cmdtp->maxargs) return CMD_RET_USAGE; - mode = simple_strtoul(argv[2], NULL, 16); + mode = hextoul(argv[2], NULL); if (mode != TCM_LOCK && mode != TCM_SPLIT) { printf("Mode should be either 0(lock)/1(split)\n"); return CMD_RET_FAILURE; @@ -209,8 +209,8 @@ static int do_zynqmp_pmufw(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != cmdtp->maxargs) return CMD_RET_USAGE; - addr = simple_strtoul(argv[2], NULL, 16); - size = simple_strtoul(argv[3], NULL, 16); + addr = hextoul(argv[2], NULL); + size = hextoul(argv[3], NULL); flush_dcache_range((ulong)addr, (ulong)(addr + size)); zynqmp_pmufw_load_config_object((const void *)(uintptr_t)addr, @@ -236,16 +236,16 @@ static int do_zynqmp_rsa(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_FAILURE; } - srcaddr = simple_strtoul(argv[2], NULL, 16); - srclen = simple_strtoul(argv[3], NULL, 16); + srcaddr = hextoul(argv[2], NULL); + srclen = hextoul(argv[3], NULL); if (srclen != RSA_KEY_SIZE) { puts("ERR: srclen should be equal to 0x200(512 bytes)\n"); return CMD_RET_USAGE; } - mod = simple_strtoul(argv[4], NULL, 16); - exp = simple_strtoul(argv[5], NULL, 16); - rsaop = simple_strtoul(argv[6], NULL, 16); + mod = hextoul(argv[4], NULL); + exp = hextoul(argv[5], NULL); + rsaop = hextoul(argv[6], NULL); if (!(rsaop == 0 || rsaop == 1)) { puts("ERR: rsaop should be either 0 or 1\n"); return CMD_RET_USAGE; @@ -299,11 +299,11 @@ static int do_zynqmp_sha3(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; } - srcaddr = simple_strtoul(argv[2], NULL, 16); - srclen = simple_strtoul(argv[3], NULL, 16); + srcaddr = hextoul(argv[2], NULL); + srclen = hextoul(argv[3], NULL); if (argc == 5) { - hashaddr = simple_strtoul(argv[4], NULL, 16); + hashaddr = hextoul(argv[4], NULL); flush_dcache_range(hashaddr, hashaddr + roundup(ZYNQMP_SHA3_SIZE, ARCH_DMA_MINALIGN)); diff --git a/cmd/abootimg.c b/cmd/abootimg.c index 40e8978f152..f48a9dcb021 100644 --- a/cmd/abootimg.c +++ b/cmd/abootimg.c @@ -161,7 +161,7 @@ static int do_abootimg_addr(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 2) return CMD_RET_USAGE; - img_addr = simple_strtoul(argv[1], &endp, 16); + img_addr = hextoul(argv[1], &endp); if (*endp != '\0') { printf("Error: Wrong image address\n"); return CMD_RET_FAILURE; diff --git a/cmd/adtimg.c b/cmd/adtimg.c index aa943007f35..f4b5cbf35b9 100644 --- a/cmd/adtimg.c +++ b/cmd/adtimg.c @@ -27,7 +27,7 @@ static int do_adtimg_addr(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 2) return CMD_RET_USAGE; - hdr_addr = simple_strtoul(argv[1], &endp, 16); + hdr_addr = hextoul(argv[1], &endp); if (*endp != '\0') { printf("Error: Wrong image address '%s'\n", argv[1]); return CMD_RET_FAILURE; diff --git a/cmd/aes.c b/cmd/aes.c index 4c0dad99326..1936518824a 100644 --- a/cmd/aes.c +++ b/cmd/aes.c @@ -55,11 +55,11 @@ static int do_aes(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) else return CMD_RET_USAGE; - key_addr = simple_strtoul(argv[2], NULL, 16); - iv_addr = simple_strtoul(argv[3], NULL, 16); - src_addr = simple_strtoul(argv[4], NULL, 16); - dst_addr = simple_strtoul(argv[5], NULL, 16); - len = simple_strtoul(argv[6], NULL, 16); + key_addr = hextoul(argv[2], NULL); + iv_addr = hextoul(argv[3], NULL); + src_addr = hextoul(argv[4], NULL); + dst_addr = hextoul(argv[5], NULL); + len = hextoul(argv[6], NULL); key_ptr = (uint8_t *)map_sysmem(key_addr, key_len); iv_ptr = (uint8_t *)map_sysmem(iv_addr, 128 / 8); diff --git a/cmd/armflash.c b/cmd/armflash.c index 5e7315eb7cd..d1466f73aa4 100644 --- a/cmd/armflash.c +++ b/cmd/armflash.c @@ -280,7 +280,7 @@ static int do_afs(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } else if (argc == 4 && !strcmp(argv[1], "load")) { ulong load_addr; - load_addr = simple_strtoul(argv[3], NULL, 16); + load_addr = hextoul(argv[3], NULL); ret = load_image(argv[2], load_addr); } else { return CMD_RET_USAGE; diff --git a/cmd/avb.c b/cmd/avb.c index 88172a9ee67..783f51b8169 100644 --- a/cmd/avb.c +++ b/cmd/avb.c @@ -22,7 +22,7 @@ int do_avb_init(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc != 2) return CMD_RET_USAGE; - mmc_dev = simple_strtoul(argv[1], NULL, 16); + mmc_dev = hextoul(argv[1], NULL); if (avb_ops) avb_ops_free(avb_ops); @@ -53,9 +53,9 @@ int do_avb_read_part(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; part = argv[1]; - offset = simple_strtoul(argv[2], NULL, 16); - bytes = simple_strtoul(argv[3], NULL, 16); - buffer = (void *)simple_strtoul(argv[4], NULL, 16); + offset = hextoul(argv[2], NULL); + bytes = hextoul(argv[3], NULL); + buffer = (void *)hextoul(argv[4], NULL); if (avb_ops->read_from_partition(avb_ops, part, offset, bytes, buffer, &bytes_read) == @@ -86,8 +86,8 @@ int do_avb_read_part_hex(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; part = argv[1]; - offset = simple_strtoul(argv[2], NULL, 16); - bytes = simple_strtoul(argv[3], NULL, 16); + offset = hextoul(argv[2], NULL); + bytes = hextoul(argv[3], NULL); buffer = malloc(bytes); if (!buffer) { @@ -132,9 +132,9 @@ int do_avb_write_part(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; part = argv[1]; - offset = simple_strtoul(argv[2], NULL, 16); - bytes = simple_strtoul(argv[3], NULL, 16); - buffer = (void *)simple_strtoul(argv[4], NULL, 16); + offset = hextoul(argv[2], NULL); + bytes = hextoul(argv[3], NULL); + buffer = (void *)hextoul(argv[4], NULL); if (avb_ops->write_to_partition(avb_ops, part, offset, bytes, buffer) == AVB_IO_RESULT_OK) { @@ -161,7 +161,7 @@ int do_avb_read_rb(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 2) return CMD_RET_USAGE; - index = (size_t)simple_strtoul(argv[1], NULL, 16); + index = (size_t)hextoul(argv[1], NULL); if (avb_ops->read_rollback_index(avb_ops, index, &rb_idx) == AVB_IO_RESULT_OK) { @@ -188,8 +188,8 @@ int do_avb_write_rb(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 3) return CMD_RET_USAGE; - index = (size_t)simple_strtoul(argv[1], NULL, 16); - rb_idx = simple_strtoul(argv[2], NULL, 16); + index = (size_t)hextoul(argv[1], NULL); + rb_idx = hextoul(argv[2], NULL); if (avb_ops->write_rollback_index(avb_ops, index, rb_idx) == AVB_IO_RESULT_OK) @@ -366,7 +366,7 @@ int do_avb_read_pvalue(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; name = argv[1]; - bytes = simple_strtoul(argv[2], &endp, 10); + bytes = dectoul(argv[2], &endp); if (*endp && *endp != '\n') return CMD_RET_USAGE; diff --git a/cmd/axi.c b/cmd/axi.c index c72197ee82b..0c80fef0533 100644 --- a/cmd/axi.c +++ b/cmd/axi.c @@ -120,7 +120,7 @@ static int do_axi_show_bus(struct cmd_tbl *cmdtp, int flag, int argc, int i; /* show specific bus */ - i = simple_strtoul(argv[1], NULL, 10); + i = dectoul(argv[1], NULL); struct udevice *bus; int ret; @@ -153,7 +153,7 @@ static int do_axi_bus_num(struct cmd_tbl *cmdtp, int flag, int argc, printf("Current bus is %d\n", bus_no); } else { - bus_no = simple_strtoul(argv[1], NULL, 10); + bus_no = dectoul(argv[1], NULL); printf("Setting bus to %d\n", bus_no); ret = axi_set_cur_bus(bus_no); @@ -193,19 +193,19 @@ static int do_axi_md(struct cmd_tbl *cmdtp, int flag, int argc, } if ((flag & CMD_FLAG_REPEAT) == 0) { - size = simple_strtoul(argv[1], NULL, 10); + size = dectoul(argv[1], NULL); /* * Address is specified since argc >= 3 */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); /* * If there's another parameter, it is the length to display; * length is the number of objects, not number of bytes */ if (argc > 3) - length = simple_strtoul(argv[3], NULL, 16); + length = hextoul(argv[3], NULL); } switch (size) { @@ -273,7 +273,7 @@ static int do_axi_mw(struct cmd_tbl *cmdtp, int flag, int argc, if (argc <= 3 || argc >= 6) return CMD_RET_USAGE; - size = simple_strtoul(argv[1], NULL, 10); + size = dectoul(argv[1], NULL); switch (size) { case 8: @@ -291,14 +291,14 @@ static int do_axi_mw(struct cmd_tbl *cmdtp, int flag, int argc, }; /* Address is specified since argc > 4 */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); /* Get the value to write */ - writeval = simple_strtoul(argv[3], NULL, 16); + writeval = hextoul(argv[3], NULL); /* Count ? */ if (argc == 5) - count = simple_strtoul(argv[4], NULL, 16); + count = hextoul(argv[4], NULL); else count = 1; diff --git a/cmd/bedbug.c b/cmd/bedbug.c index bef617b6a4f..549c9056ddc 100644 --- a/cmd/bedbug.c +++ b/cmd/bedbug.c @@ -75,11 +75,11 @@ int do_bedbug_dis(struct cmd_tbl *cmdtp, int flag, int argc, if ((flag & CMD_FLAG_REPEAT) == 0) { /* New command */ - addr = simple_strtoul (argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); /* If an extra param is given then it is the length */ if (argc > 2) - len = simple_strtoul (argv[2], NULL, 16); + len = hextoul(argv[2], NULL); } /* Run the disassembler */ @@ -114,7 +114,7 @@ int do_bedbug_asm(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; printf ("\nEnter '.' when done\n"); - mem_addr = simple_strtoul (argv[1], NULL, 16); + mem_addr = hextoul(argv[1], NULL); while (1) { putc ('\n'); diff --git a/cmd/bind.c b/cmd/bind.c index af2f22cc4c3..07c629eff7c 100644 --- a/cmd/bind.c +++ b/cmd/bind.c @@ -218,13 +218,13 @@ static int do_bind_unbind(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; ret = unbind_by_node_path(argv[1]); } else if (!by_node && bind) { - int index = (argc > 2) ? simple_strtoul(argv[2], NULL, 10) : 0; + int index = (argc > 2) ? dectoul(argv[2], NULL) : 0; if (argc != 4) return CMD_RET_USAGE; ret = bind_by_class_index(argv[1], index, argv[3]); } else if (!by_node && !bind) { - int index = (argc > 2) ? simple_strtoul(argv[2], NULL, 10) : 0; + int index = (argc > 2) ? dectoul(argv[2], NULL) : 0; if (argc == 3) ret = unbind_by_class_index(argv[1], index); diff --git a/cmd/binop.c b/cmd/binop.c index c85cb51568d..592e9146901 100644 --- a/cmd/binop.c +++ b/cmd/binop.c @@ -58,7 +58,7 @@ void write_to_mem(char *varname, u8 *result, ulong len) ulong addr; u8 *buf; - addr = simple_strtoul(varname, NULL, 16); + addr = hextoul(varname, NULL); buf = map_sysmem(addr, len); memcpy(buf, result, len); unmap_sysmem(buf); @@ -89,18 +89,18 @@ static int do_binop(struct cmd_tbl *cmdtp, int flag, int argc, else return CMD_RET_USAGE; - len = simple_strtoul(lenarg, NULL, 10); + len = dectoul(lenarg, NULL); src1 = malloc(len); src2 = malloc(len); if (*src1arg == '*') - read_from_mem(simple_strtoul(src1arg + 1, NULL, 16), src1, len); + read_from_mem(hextoul(src1arg + 1, NULL), src1, len); else read_from_env_var(src1arg, src1); if (*src2arg == '*') - read_from_mem(simple_strtoul(src2arg + 1, NULL, 16), src2, len); + read_from_mem(hextoul(src2arg + 1, NULL), src2, len); else read_from_env_var(src2arg, src2); diff --git a/cmd/blk_common.c b/cmd/blk_common.c index 87f94b5abbf..4e442f2918b 100644 --- a/cmd/blk_common.c +++ b/cmd/blk_common.c @@ -40,7 +40,7 @@ int blk_common_cmd(int argc, char *const argv[], enum if_type if_type, return CMD_RET_USAGE; case 3: if (strncmp(argv[1], "dev", 3) == 0) { - int dev = (int)simple_strtoul(argv[2], NULL, 10); + int dev = (int)dectoul(argv[2], NULL); if (!blk_show_device(if_type, dev)) { *cur_devnump = dev; @@ -50,7 +50,7 @@ int blk_common_cmd(int argc, char *const argv[], enum if_type if_type, } return 0; } else if (strncmp(argv[1], "part", 4) == 0) { - int dev = (int)simple_strtoul(argv[2], NULL, 10); + int dev = (int)dectoul(argv[2], NULL); if (blk_print_part_devnum(if_type, dev)) { printf("\n%s device %d not available\n", @@ -63,9 +63,9 @@ int blk_common_cmd(int argc, char *const argv[], enum if_type if_type, default: /* at least 4 args */ if (strcmp(argv[1], "read") == 0) { - ulong addr = simple_strtoul(argv[2], NULL, 16); - lbaint_t blk = simple_strtoul(argv[3], NULL, 16); - ulong cnt = simple_strtoul(argv[4], NULL, 16); + ulong addr = hextoul(argv[2], NULL); + lbaint_t blk = hextoul(argv[3], NULL); + ulong cnt = hextoul(argv[4], NULL); ulong n; printf("\n%s read: device %d block # "LBAFU", count %lu ... ", @@ -78,9 +78,9 @@ int blk_common_cmd(int argc, char *const argv[], enum if_type if_type, n == cnt ? "OK" : "ERROR"); return n == cnt ? 0 : 1; } else if (strcmp(argv[1], "write") == 0) { - ulong addr = simple_strtoul(argv[2], NULL, 16); - lbaint_t blk = simple_strtoul(argv[3], NULL, 16); - ulong cnt = simple_strtoul(argv[4], NULL, 16); + ulong addr = hextoul(argv[2], NULL); + lbaint_t blk = hextoul(argv[3], NULL); + ulong cnt = hextoul(argv[4], NULL); ulong n; printf("\n%s write: device %d block # "LBAFU", count %lu ... ", diff --git a/cmd/blob.c b/cmd/blob.c index 887219cc079..e2efae7a115 100644 --- a/cmd/blob.c +++ b/cmd/blob.c @@ -70,10 +70,10 @@ static int do_blob(struct cmd_tbl *cmdtp, int flag, int argc, else return CMD_RET_USAGE; - src_addr = simple_strtoul(argv[2], NULL, 16); - dst_addr = simple_strtoul(argv[3], NULL, 16); - len = simple_strtoul(argv[4], NULL, 16); - key_addr = simple_strtoul(argv[5], NULL, 16); + src_addr = hextoul(argv[2], NULL); + dst_addr = hextoul(argv[3], NULL); + len = hextoul(argv[4], NULL); + key_addr = hextoul(argv[5], NULL); km_ptr = (uint8_t *)(uintptr_t)key_addr; src_ptr = (uint8_t *)(uintptr_t)src_addr; diff --git a/cmd/bmp.c b/cmd/bmp.c index 6040fa5d95d..071ba90b435 100644 --- a/cmd/bmp.c +++ b/cmd/bmp.c @@ -102,7 +102,7 @@ static int do_bmp_info(struct cmd_tbl *cmdtp, int flag, int argc, addr = image_load_addr; break; case 2: /* use argument */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); break; default: return CMD_RET_USAGE; @@ -124,18 +124,18 @@ static int do_bmp_display(struct cmd_tbl *cmdtp, int flag, int argc, addr = image_load_addr; break; case 2: /* use argument */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); break; case 4: - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); if (!strcmp(argv[2], "m")) x = BMP_ALIGN_CENTER; else - x = simple_strtoul(argv[2], NULL, 10); + x = dectoul(argv[2], NULL); if (!strcmp(argv[3], "m")) y = BMP_ALIGN_CENTER; else - y = simple_strtoul(argv[3], NULL, 10); + y = dectoul(argv[3], NULL); break; default: return CMD_RET_USAGE; diff --git a/cmd/boot.c b/cmd/boot.c index b84c0ed89ec..fab294e622b 100644 --- a/cmd/boot.c +++ b/cmd/boot.c @@ -29,7 +29,7 @@ static int do_go(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 2) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); printf ("## Starting application at 0x%08lX ...\n", addr); diff --git a/cmd/bootefi.c b/cmd/bootefi.c index cba81ffe75e..83eab0bd7f1 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -281,7 +281,7 @@ efi_status_t efi_install_fdt(void *fdt) return EFI_NOT_FOUND; } } - fdt_addr = simple_strtoul(fdt_opt, NULL, 16); + fdt_addr = hextoul(fdt_opt, NULL); if (!fdt_addr) { log_err("ERROR: invalid $fdt_addr or $fdtcontroladdr\n"); return EFI_LOAD_ERROR; @@ -628,7 +628,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc, if (argc > 2) { uintptr_t fdt_addr; - fdt_addr = simple_strtoul(argv[2], NULL, 16); + fdt_addr = hextoul(argv[2], NULL); fdt = map_sysmem(fdt_addr, 0); } else { fdt = EFI_FDT_USE_INTERNAL; diff --git a/cmd/booti.c b/cmd/booti.c index 3df70ea9caa..397d4b83236 100644 --- a/cmd/booti.c +++ b/cmd/booti.c @@ -43,7 +43,7 @@ static int booti_start(struct cmd_tbl *cmdtp, int flag, int argc, debug("* kernel: default image load address = 0x%08lx\n", image_load_addr); } else { - ld = simple_strtoul(argv[0], NULL, 16); + ld = hextoul(argv[0], NULL); debug("* kernel: cmdline image address = 0x%08lx\n", ld); } diff --git a/cmd/bootm.c b/cmd/bootm.c index 81c6b939781..92468d09a1f 100644 --- a/cmd/bootm.c +++ b/cmd/bootm.c @@ -112,7 +112,7 @@ int do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc > 0) { char *endp; - simple_strtoul(argv[0], &endp, 16); + hextoul(argv[0], &endp); /* endp pointing to NULL means that argv[0] was just a * valid number, pass it along to the normal bootm processing * @@ -240,7 +240,7 @@ static int do_iminfo(struct cmd_tbl *cmdtp, int flag, int argc, } for (arg = 1; arg < argc; ++arg) { - addr = simple_strtoul(argv[arg], NULL, 16); + addr = hextoul(argv[arg], NULL); if (image_info(addr) != 0) rcode = 1; } diff --git a/cmd/bootstage.c b/cmd/bootstage.c index 0e623f216b1..77a4bc66ff4 100644 --- a/cmd/bootstage.c +++ b/cmd/bootstage.c @@ -24,12 +24,12 @@ static int get_base_size(int argc, char *const argv[], ulong *basep, *sizep = CONFIG_BOOTSTAGE_STASH_SIZE; if (argc < 2) return 0; - *basep = simple_strtoul(argv[1], &endp, 16); + *basep = hextoul(argv[1], &endp); if (*argv[1] == 0 || *endp != 0) return -1; if (argc == 2) return 0; - *sizep = simple_strtoul(argv[2], &endp, 16); + *sizep = hextoul(argv[2], &endp); if (*argv[2] == 0 || *endp != 0) return -1; diff --git a/cmd/bootz.c b/cmd/bootz.c index 7556cd2752a..4f024bde5fe 100644 --- a/cmd/bootz.c +++ b/cmd/bootz.c @@ -39,7 +39,7 @@ static int bootz_start(struct cmd_tbl *cmdtp, int flag, int argc, debug("* kernel: default image load address = 0x%08lx\n", image_load_addr); } else { - images->ep = simple_strtoul(argv[0], NULL, 16); + images->ep = hextoul(argv[0], NULL); debug("* kernel: cmdline image address = 0x%08lx\n", images->ep); } diff --git a/cmd/broadcom/nitro_image_load.c b/cmd/broadcom/nitro_image_load.c index 4a36b300c43..93b5cb4cebe 100644 --- a/cmd/broadcom/nitro_image_load.c +++ b/cmd/broadcom/nitro_image_load.c @@ -53,13 +53,13 @@ static int do_spi_images_addr(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; /* convert command parameter to fastboot address (base 16), i.e. hex */ - images_load_addr = simple_strtoul(argv[1], NULL, 16); + images_load_addr = hextoul(argv[1], NULL); if (!images_load_addr) { pr_err("Invalid load address\n"); return CMD_RET_USAGE; } - spi_load_addr = simple_strtoul(argv[2], NULL, 16); + spi_load_addr = hextoul(argv[2], NULL); if (!spi_load_addr) { pr_err("Invalid spi load address\n"); return CMD_RET_USAGE; diff --git a/cmd/cbfs.c b/cmd/cbfs.c index 10c2c929c37..8a61f2c26f9 100644 --- a/cmd/cbfs.c +++ b/cmd/cbfs.c @@ -22,7 +22,7 @@ static int do_cbfs_init(struct cmd_tbl *cmdtp, int flag, int argc, return 0; } if (argc == 2) { - end_of_rom = simple_strtoul(argv[1], &ep, 16); + end_of_rom = hextoul(argv[1], &ep); if (*ep) { puts("\n** Invalid end of ROM **\n"); return 1; @@ -58,9 +58,9 @@ static int do_cbfs_fsload(struct cmd_tbl *cmdtp, int flag, int argc, } /* parse offset and count */ - offset = simple_strtoul(argv[1], NULL, 16); + offset = hextoul(argv[1], NULL); if (argc == 4) - count = simple_strtoul(argv[3], NULL, 16); + count = hextoul(argv[3], NULL); else count = 0; diff --git a/cmd/clk.c b/cmd/clk.c index 7ece2454e09..dbbdc31b35b 100644 --- a/cmd/clk.c +++ b/cmd/clk.c @@ -120,7 +120,7 @@ static int do_clk_setfreq(struct cmd_tbl *cmdtp, int flag, int argc, s32 freq; struct udevice *dev; - freq = simple_strtoul(argv[2], NULL, 10); + freq = dectoul(argv[2], NULL); dev = clk_lookup(argv[1]); diff --git a/cmd/clone.c b/cmd/clone.c index 32473a032c1..a9062077571 100644 --- a/cmd/clone.c +++ b/cmd/clone.c @@ -34,7 +34,7 @@ static int do_clone(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv printf("Unable to open destination device\n"); return 1; } - requested = simple_strtoul(argv[5], &unit, 10); + requested = dectoul(argv[5], &unit); srcbz = srcdesc->blksz; destbz = destdesc->blksz; diff --git a/cmd/cramfs.c b/cmd/cramfs.c index 1aeb56702ca..44c0818d5d4 100644 --- a/cmd/cramfs.c +++ b/cmd/cramfs.c @@ -107,7 +107,7 @@ int do_cramfs_load(struct cmd_tbl *cmdtp, int flag, int argc, struct mtdids id; ulong addr; - addr = simple_strtoul(env_get("cramfsaddr"), NULL, 16); + addr = hextoul(env_get("cramfsaddr"), NULL); /* hack! */ /* cramfs_* only supports NOR flash chips */ @@ -172,7 +172,7 @@ int do_cramfs_ls(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) struct mtdids id; ulong addr; - addr = simple_strtoul(env_get("cramfsaddr"), NULL, 16); + addr = hextoul(env_get("cramfsaddr"), NULL); /* hack! */ /* cramfs_* only supports NOR flash chips */ diff --git a/cmd/cros_ec.c b/cmd/cros_ec.c index eb5053d6424..a40f5898b52 100644 --- a/cmd/cros_ec.c +++ b/cmd/cros_ec.c @@ -65,11 +65,11 @@ static int do_read_write(struct udevice *dev, int is_write, int argc, return 1; if (argc < 4) return 1; - addr = simple_strtoul(argv[3], &endp, 16); + addr = hextoul(argv[3], &endp); if (*argv[3] == 0 || *endp != 0) return 1; if (argc > 4) { - size = simple_strtoul(argv[4], &endp, 16); + size = hextoul(argv[4], &endp); if (*argv[4] == 0 || *endp != 0) return 1; } @@ -501,11 +501,11 @@ static int do_cros_ec(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - index = simple_strtoul(argv[2], &endp, 10); + index = dectoul(argv[2], &endp); if (*argv[2] == 0 || *endp != 0) return CMD_RET_USAGE; if (argc > 3) { - state = simple_strtoul(argv[3], &endp, 10); + state = dectoul(argv[3], &endp); if (*argv[3] == 0 || *endp != 0) return CMD_RET_USAGE; ret = cros_ec_set_ldo(dev, index, state); diff --git a/cmd/demo.c b/cmd/demo.c index 78a55f72b60..571f562ec68 100644 --- a/cmd/demo.c +++ b/cmd/demo.c @@ -48,7 +48,7 @@ static int do_demo_light(struct cmd_tbl *cmdtp, int flag, int argc, int ret; if (argc) { - light = simple_strtoul(argv[0], NULL, 16); + light = hextoul(argv[0], NULL); ret = demo_set_light(demo_dev, light); } else { ret = demo_get_light(demo_dev); @@ -106,7 +106,7 @@ static int do_demo(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; if (argc) { - devnum = simple_strtoul(argv[0], NULL, 10); + devnum = dectoul(argv[0], NULL); ret = uclass_get_device(UCLASS_DEMO, devnum, &demo_dev); if (ret) return cmd_process_error(cmdtp, ret); diff --git a/cmd/disk.c b/cmd/disk.c index 2726115e855..cb3b990ba3a 100644 --- a/cmd/disk.c +++ b/cmd/disk.c @@ -36,7 +36,7 @@ int common_diskboot(struct cmd_tbl *cmdtp, const char *intf, int argc, bootstage_mark(BOOTSTAGE_ID_IDE_ADDR); if (argc > 1) - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); bootstage_mark(BOOTSTAGE_ID_IDE_BOOT_DEVICE); diff --git a/cmd/efidebug.c b/cmd/efidebug.c index 8211a589acf..67ab06aefc1 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -61,7 +61,7 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int flag, argv++; } - capsule = (typeof(capsule))simple_strtoul(argv[1], &endp, 16); + capsule = (typeof(capsule))hextoul(argv[1], &endp); if (endp == argv[1]) { printf("Invalid address: %s", argv[1]); return CMD_RET_FAILURE; @@ -117,7 +117,7 @@ static int do_efi_capsule_show(struct cmd_tbl *cmdtp, int flag, if (argc != 2) return CMD_RET_USAGE; - capsule = (typeof(capsule))simple_strtoul(argv[1], &endp, 16); + capsule = (typeof(capsule))hextoul(argv[1], &endp); if (endp == argv[1]) { printf("Invalid address: %s", argv[1]); return CMD_RET_FAILURE; @@ -256,7 +256,7 @@ static int do_efi_capsule_res(struct cmd_tbl *cmdtp, int flag, argc--; argv++; - capsule_id = simple_strtoul(argv[0], &endp, 16); + capsule_id = hextoul(argv[0], &endp); if (capsule_id < 0 || capsule_id > 0xffff) return CMD_RET_USAGE; @@ -983,7 +983,7 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag, r = CMD_RET_USAGE; goto out; } - id = (int)simple_strtoul(argv[1], &endp, 16); + id = (int)hextoul(argv[1], &endp); if (*endp != '\0' || id > 0xffff) return CMD_RET_USAGE; @@ -1113,7 +1113,7 @@ static int do_efi_boot_rm(struct cmd_tbl *cmdtp, int flag, guid = efi_global_variable_guid; for (i = 1; i < argc; i++, argv++) { - id = (int)simple_strtoul(argv[1], &endp, 16); + id = (int)hextoul(argv[1], &endp); if (*endp != '\0' || id > 0xffff) return CMD_RET_FAILURE; @@ -1410,7 +1410,7 @@ static int do_efi_boot_next(struct cmd_tbl *cmdtp, int flag, if (argc != 2) return CMD_RET_USAGE; - bootnext = (u16)simple_strtoul(argv[1], &endp, 16); + bootnext = (u16)hextoul(argv[1], &endp); if (*endp) { printf("invalid value: %s\n", argv[1]); r = CMD_RET_FAILURE; @@ -1469,7 +1469,7 @@ static int do_efi_boot_order(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; for (i = 0; i < argc; i++) { - id = (int)simple_strtoul(argv[i], &endp, 16); + id = (int)hextoul(argv[i], &endp); if (*endp != '\0' || id > 0xffff) { printf("invalid value: %s\n", argv[i]); r = CMD_RET_FAILURE; diff --git a/cmd/elf.c b/cmd/elf.c index d44b95d9033..d75b21461c2 100644 --- a/cmd/elf.c +++ b/cmd/elf.c @@ -115,7 +115,7 @@ int do_bootvx(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 2) addr = image_load_addr; else - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); #if defined(CONFIG_CMD_NET) /* @@ -200,7 +200,7 @@ int do_bootvx(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } if (!bootaddr) - bootaddr = simple_strtoul(tmp, NULL, 16); + bootaddr = hextoul(tmp, NULL); /* * Check to see if the bootline is defined in the 'bootargs' parameter. diff --git a/cmd/exit.c b/cmd/exit.c index 923f0870fbf..2c7132693ad 100644 --- a/cmd/exit.c +++ b/cmd/exit.c @@ -11,7 +11,7 @@ static int do_exit(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { if (argc > 1) - return simple_strtoul(argv[1], NULL, 10); + return dectoul(argv[1], NULL); return 0; } diff --git a/cmd/fastboot.c b/cmd/fastboot.c index ad5c0649118..033a2c95e8f 100644 --- a/cmd/fastboot.c +++ b/cmd/fastboot.c @@ -112,13 +112,13 @@ static int do_fastboot(struct cmd_tbl *cmdtp, int flag, int argc, case 'l': if (--argc <= 0) return CMD_RET_USAGE; - buf_addr = simple_strtoul(*++argv, NULL, 16); + buf_addr = hextoul(*++argv, NULL); goto NXTARG; case 's': if (--argc <= 0) return CMD_RET_USAGE; - buf_size = simple_strtoul(*++argv, NULL, 16); + buf_size = hextoul(*++argv, NULL); goto NXTARG; default: diff --git a/cmd/fdt.c b/cmd/fdt.c index baec05529ad..c42f1c79d49 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -143,7 +143,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 0; } - addr = simple_strtoul(argv[0], NULL, 16); + addr = hextoul(argv[0], NULL); blob = map_sysmem(addr, 0); if (!fdt_valid(&blob)) return 1; @@ -157,7 +157,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) int err; /* Optional new length */ - len = simple_strtoul(argv[1], NULL, 16); + len = hextoul(argv[1], NULL); if (len < fdt_totalsize(blob)) { printf("New length %d < existing length %d, ignoring\n", len, fdt_totalsize(blob)); @@ -195,11 +195,11 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) /* * Set the address and length of the fdt. */ - working_fdt = (struct fdt_header *)simple_strtoul(argv[2], NULL, 16); + working_fdt = (struct fdt_header *)hextoul(argv[2], NULL); if (!fdt_valid(&working_fdt)) return 1; - newaddr = (struct fdt_header *)simple_strtoul(argv[3],NULL,16); + newaddr = (struct fdt_header *)hextoul(argv[3], NULL); /* * If the user specifies a length, use that. Otherwise use the @@ -208,7 +208,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc <= 4) { len = fdt_totalsize(working_fdt); } else { - len = simple_strtoul(argv[4], NULL, 16); + len = hextoul(argv[4], NULL); if (len < fdt_totalsize(working_fdt)) { printf ("New length 0x%X < existing length " "0x%X, aborting.\n", @@ -364,21 +364,22 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } if (subcmd[0] == 'n' || (subcmd[0] == 's' && argc == 5)) { - int reqIndex = -1; + int req_index = -1; int startDepth = fdt_node_depth( working_fdt, nodeoffset); int curDepth = startDepth; - int curIndex = -1; + int cur_index = -1; int nextNodeOffset = fdt_next_node( working_fdt, nodeoffset, &curDepth); if (subcmd[0] == 'n') - reqIndex = simple_strtoul(argv[5], NULL, 16); + req_index = hextoul(argv[5], NULL); while (curDepth > startDepth) { if (curDepth == startDepth + 1) - curIndex++; - if (subcmd[0] == 'n' && curIndex == reqIndex) { + cur_index++; + if (subcmd[0] == 'n' && + cur_index == req_index) { const char *node_name; node_name = fdt_get_name(working_fdt, @@ -394,7 +395,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } if (subcmd[0] == 's') { /* get the num nodes at this level */ - env_set_ulong(var, curIndex + 1); + env_set_ulong(var, cur_index + 1); } else { /* node index not found */ printf("libfdt node not found\n"); @@ -548,7 +549,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) * Set boot cpu id */ } else if (strncmp(argv[1], "boo", 3) == 0) { - unsigned long tmp = simple_strtoul(argv[2], NULL, 16); + unsigned long tmp = hextoul(argv[2], NULL); fdt_set_boot_cpuid_phys(working_fdt, tmp); /* @@ -600,7 +601,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return err; } } else if (argv[2][0] == 'd') { - unsigned long idx = simple_strtoul(argv[3], NULL, 16); + unsigned long idx = hextoul(argv[3], NULL); int err = fdt_del_mem_rsv(working_fdt, idx); if (err < 0) { @@ -636,8 +637,8 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_USAGE; if (argc == 4) { - initrd_start = simple_strtoul(argv[2], NULL, 16); - initrd_end = simple_strtoul(argv[3], NULL, 16); + initrd_start = hextoul(argv[2], NULL); + initrd_end = hextoul(argv[3], NULL); } fdt_chosen(working_fdt); @@ -654,7 +655,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_FAILURE; if (argc > 2) { - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); blob = map_sysmem(addr, 0); } else { blob = (struct fdt_header *)gd->fdt_blob; @@ -691,7 +692,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (!working_fdt) return CMD_RET_FAILURE; - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); blob = map_sysmem(addr, 0); if (!fdt_valid(&blob)) return CMD_RET_FAILURE; @@ -706,7 +707,7 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) else if (strncmp(argv[1], "re", 2) == 0) { uint extrasize; if (argc > 2) - extrasize = simple_strtoul(argv[2], NULL, 16); + extrasize = hextoul(argv[2], NULL); else extrasize = 0; fdt_shrink_to_minimum(working_fdt, extrasize); @@ -797,7 +798,7 @@ static int fdt_parse_prop(char * const *newval, int count, char *data, int *len) } if (!isxdigit(*newp)) break; - tmp = simple_strtoul(newp, &newp, 16); + tmp = hextoul(newp, &newp); *data++ = tmp & 0xFF; *len = *len + 1; } @@ -883,7 +884,7 @@ static void print_data(const void *data, int len) env_max_dump = env_get("fdt_max_dump"); if (env_max_dump) - max_dump = simple_strtoul(env_max_dump, NULL, 16); + max_dump = hextoul(env_max_dump, NULL); /* * It is a string, but it may have multiple strings (embedded '\0's). diff --git a/cmd/flash.c b/cmd/flash.c index 240871e8089..819febc10ed 100644 --- a/cmd/flash.c +++ b/cmd/flash.c @@ -57,7 +57,7 @@ abbrev_spec (char *str, flash_info_t ** pinfo, int *psf, int *psl) return 0; *p++ = '\0'; - bank = simple_strtoul (str, &ep, 10); + bank = dectoul(str, &ep); if (ep == str || *ep != '\0' || bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS || (fp = &flash_info[bank - 1])->flash_id == FLASH_UNKNOWN) @@ -67,12 +67,12 @@ abbrev_spec (char *str, flash_info_t ** pinfo, int *psf, int *psl) if ((p = strchr (str, '-')) != NULL) *p++ = '\0'; - first = simple_strtoul (str, &ep, 10); + first = dectoul(str, &ep); if (ep == str || *ep != '\0' || first >= fp->sector_count) return -1; if (p != NULL) { - last = simple_strtoul (p, &ep, 10); + last = dectoul(p, &ep); if (ep == p || *ep != '\0' || last < first || last >= fp->sector_count) return -1; @@ -151,7 +151,7 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last) char *ep; char len_used; /* indicates if the "start +length" form used */ - *addr_first = simple_strtoul(arg1, &ep, 16); + *addr_first = hextoul(arg1, &ep); if (ep == arg1 || *ep != '\0') return -1; @@ -161,7 +161,7 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last) ++arg2; } - *addr_last = simple_strtoul(arg2, &ep, 16); + *addr_last = hextoul(arg2, &ep); if (ep == arg2 || *ep != '\0') return -1; @@ -287,7 +287,7 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc, return 0; } - bank = simple_strtoul(argv[1], NULL, 16); + bank = hextoul(argv[1], NULL); if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) { printf ("Only FLASH Banks # 1 ... # %d supported\n", CONFIG_SYS_MAX_FLASH_BANKS); @@ -366,7 +366,7 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; if (strcmp(argv[1], "bank") == 0) { - bank = simple_strtoul(argv[2], NULL, 16); + bank = hextoul(argv[2], NULL); if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) { printf ("Only FLASH Banks # 1 ... # %d supported\n", CONFIG_SYS_MAX_FLASH_BANKS); @@ -547,7 +547,7 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; if (strcmp(argv[2], "bank") == 0) { - bank = simple_strtoul(argv[3], NULL, 16); + bank = hextoul(argv[3], NULL); if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) { printf ("Only FLASH Banks # 1 ... # %d supported\n", CONFIG_SYS_MAX_FLASH_BANKS); diff --git a/cmd/fpga.c b/cmd/fpga.c index 51410a8e424..3fdd0b35e80 100644 --- a/cmd/fpga.c +++ b/cmd/fpga.c @@ -57,7 +57,7 @@ static int do_fpga_check_params(long *dev, long *fpga_data, size_t *data_size, } *fpga_data = local_fpga_data; - local_data_size = simple_strtoul(argv[2], NULL, 16); + local_data_size = hextoul(argv[2], NULL); if (!local_data_size) { debug("fpga: zero size\n"); return CMD_RET_USAGE; @@ -95,8 +95,8 @@ int do_fpga_loads(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) */ argc++; - fpga_sec_info.encflag = (u8)simple_strtoul(argv[4], NULL, 16); - fpga_sec_info.authflag = (u8)simple_strtoul(argv[3], NULL, 16); + fpga_sec_info.encflag = (u8)hextoul(argv[4], NULL); + fpga_sec_info.authflag = (u8)hextoul(argv[3], NULL); if (fpga_sec_info.authflag >= FPGA_NO_ENC_OR_NO_AUTH && fpga_sec_info.encflag >= FPGA_NO_ENC_OR_NO_AUTH) { @@ -134,7 +134,7 @@ static int do_fpga_loadfs(struct cmd_tbl *cmdtp, int flag, int argc, return ret; fpga_fsinfo.fstype = FS_TYPE_ANY; - fpga_fsinfo.blocksize = (unsigned int)simple_strtoul(argv[3], NULL, 16); + fpga_fsinfo.blocksize = (unsigned int)hextoul(argv[3], NULL); fpga_fsinfo.interface = argv[4]; fpga_fsinfo.dev_part = argv[5]; fpga_fsinfo.filename = argv[6]; @@ -274,7 +274,7 @@ static int do_fpga_loadmk(struct cmd_tbl *cmdtp, int flag, int argc, } else #endif { - fpga_data = (void *)simple_strtoul(datastr, NULL, 16); + fpga_data = (void *)hextoul(datastr, NULL); debug("* fpga: cmdline image address = 0x%08lx\n", (ulong)fpga_data); } diff --git a/cmd/fpgad.c b/cmd/fpgad.c index fb2fe63e78a..e65441bb76a 100644 --- a/cmd/fpgad.c +++ b/cmd/fpgad.c @@ -49,19 +49,19 @@ int do_fpga_md(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) /* * FPGA is specified since argc > 2 */ - fpga = simple_strtoul(argv[1], NULL, 16); + fpga = hextoul(argv[1], NULL); /* * Address is specified since argc > 2 */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); /* * If another parameter, it is the length to display. * Length is the number of objects, not number of bytes. */ if (argc > 3) - length = simple_strtoul(argv[3], NULL, 16); + length = hextoul(argv[3], NULL); } nbytes = length * sizeof(u16); diff --git a/cmd/gpio.c b/cmd/gpio.c index 4fdb3135fc1..4150024e628 100644 --- a/cmd/gpio.c +++ b/cmd/gpio.c @@ -17,7 +17,7 @@ __weak int name_to_gpio(const char *name) { - return simple_strtoul(name, NULL, 10); + return dectoul(name, NULL); } enum gpio_cmd { @@ -99,7 +99,7 @@ static int do_gpio_status(bool all, const char *gpio_name) p = gpio_name + banklen; if (gpio_name && *p) { - offset = simple_strtoul(p, NULL, 10); + offset = dectoul(p, NULL); gpio_get_description(dev, bank_name, offset, &flags, true); } else { diff --git a/cmd/gpt.c b/cmd/gpt.c index 17f2b839d72..f818fbb71fc 100644 --- a/cmd/gpt.c +++ b/cmd/gpt.c @@ -985,7 +985,7 @@ static int do_gpt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) #endif return CMD_RET_USAGE; - dev = (int)simple_strtoul(argv[3], &ep, 10); + dev = (int)dectoul(argv[3], &ep); if (!ep || ep[0] != '\0') { printf("'%s' is not a number\n", argv[3]); return CMD_RET_USAGE; diff --git a/cmd/host.c b/cmd/host.c index 6aa3d9167a4..2e998abbcdc 100644 --- a/cmd/host.c +++ b/cmd/host.c @@ -62,7 +62,7 @@ static int do_host_bind(struct cmd_tbl *cmdtp, int flag, int argc, if (argc > 2) return CMD_RET_USAGE; dev_str = argv[0]; - dev = simple_strtoul(dev_str, &ep, 16); + dev = hextoul(dev_str, &ep); if (*ep) { printf("** Bad device specification %s **\n", dev_str); return CMD_RET_USAGE; @@ -82,7 +82,7 @@ static int do_host_info(struct cmd_tbl *cmdtp, int flag, int argc, if (argc >= 2) { char *ep; char *dev_str = argv[1]; - int dev = simple_strtoul(dev_str, &ep, 16); + int dev = hextoul(dev_str, &ep); if (*ep) { printf("** Bad device specification %s **\n", dev_str); return CMD_RET_USAGE; @@ -139,7 +139,7 @@ static int do_host_dev(struct cmd_tbl *cmdtp, int flag, int argc, return 0; } - dev = simple_strtoul(argv[1], &ep, 16); + dev = hextoul(argv[1], &ep); if (*ep) { printf("** Bad device specification %s **\n", argv[2]); return CMD_RET_USAGE; diff --git a/cmd/i2c.c b/cmd/i2c.c index 0e1895ad65d..c7c08c4e32d 100644 --- a/cmd/i2c.c +++ b/cmd/i2c.c @@ -308,13 +308,13 @@ static int do_i2c_read(struct cmd_tbl *cmdtp, int flag, int argc, /* * I2C chip address */ - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); /* * I2C data address within the chip. This can be 1 or * 2 bytes long. Some day it might be 3 bytes long :-). */ - devaddr = simple_strtoul(argv[2], NULL, 16); + devaddr = hextoul(argv[2], NULL); alen = get_alen(argv[2], DEFAULT_ADDR_LEN); if (alen > 3) return CMD_RET_USAGE; @@ -322,12 +322,12 @@ static int do_i2c_read(struct cmd_tbl *cmdtp, int flag, int argc, /* * Length is the number of objects, not number of bytes. */ - length = simple_strtoul(argv[3], NULL, 16); + length = hextoul(argv[3], NULL); /* * memaddr is the address where to store things in memory */ - memaddr = (u_char *)simple_strtoul(argv[4], NULL, 16); + memaddr = (u_char *)hextoul(argv[4], NULL); #if CONFIG_IS_ENABLED(DM_I2C) ret = i2c_get_cur_bus_chip(chip, &dev); @@ -363,18 +363,18 @@ static int do_i2c_write(struct cmd_tbl *cmdtp, int flag, int argc, /* * memaddr is the address where to store things in memory */ - memaddr = (u_char *)simple_strtoul(argv[1], NULL, 16); + memaddr = (u_char *)hextoul(argv[1], NULL); /* * I2C chip address */ - chip = simple_strtoul(argv[2], NULL, 16); + chip = hextoul(argv[2], NULL); /* * I2C data address within the chip. This can be 1 or * 2 bytes long. Some day it might be 3 bytes long :-). */ - devaddr = simple_strtoul(argv[3], NULL, 16); + devaddr = hextoul(argv[3], NULL); alen = get_alen(argv[3], DEFAULT_ADDR_LEN); if (alen > 3) return cmd_usage(cmdtp); @@ -382,7 +382,7 @@ static int do_i2c_write(struct cmd_tbl *cmdtp, int flag, int argc, /* * Length is the number of bytes. */ - length = simple_strtoul(argv[4], NULL, 16); + length = hextoul(argv[4], NULL); #if CONFIG_IS_ENABLED(DM_I2C) ret = i2c_get_cur_bus_chip(chip, &dev); @@ -447,13 +447,13 @@ static int do_i2c_flags(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 2) return CMD_RET_USAGE; - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); ret = i2c_get_cur_bus_chip(chip, &dev); if (ret) return i2c_report_err(ret, I2C_ERR_READ); if (argc > 2) { - flags = simple_strtoul(argv[2], NULL, 16); + flags = hextoul(argv[2], NULL); ret = i2c_set_chip_flags(dev, flags); } else { ret = i2c_get_chip_flags(dev, &flags); @@ -477,13 +477,13 @@ static int do_i2c_olen(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 2) return CMD_RET_USAGE; - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); ret = i2c_get_cur_bus_chip(chip, &dev); if (ret) return i2c_report_err(ret, I2C_ERR_READ); if (argc > 2) { - olen = simple_strtoul(argv[2], NULL, 16); + olen = hextoul(argv[2], NULL); ret = i2c_set_chip_offset_len(dev, olen); } else { ret = i2c_get_chip_offset_len(dev); @@ -543,13 +543,13 @@ static int do_i2c_md(struct cmd_tbl *cmdtp, int flag, int argc, /* * I2C chip address */ - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); /* * I2C data address within the chip. This can be 1 or * 2 bytes long. Some day it might be 3 bytes long :-). */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); alen = get_alen(argv[2], DEFAULT_ADDR_LEN); if (alen > 3) return CMD_RET_USAGE; @@ -559,7 +559,7 @@ static int do_i2c_md(struct cmd_tbl *cmdtp, int flag, int argc, * Length is the number of objects, not number of bytes. */ if (argc > 3) - length = simple_strtoul(argv[3], NULL, 16); + length = hextoul(argv[3], NULL); } #if CONFIG_IS_ENABLED(DM_I2C) @@ -651,12 +651,12 @@ static int do_i2c_mw(struct cmd_tbl *cmdtp, int flag, int argc, /* * Chip is always specified. */ - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); /* * Address is always specified. */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); alen = get_alen(argv[2], DEFAULT_ADDR_LEN); if (alen > 3) return CMD_RET_USAGE; @@ -671,13 +671,13 @@ static int do_i2c_mw(struct cmd_tbl *cmdtp, int flag, int argc, /* * Value to write is always specified. */ - byte = simple_strtoul(argv[3], NULL, 16); + byte = hextoul(argv[3], NULL); /* * Optional count */ if (argc == 5) - count = simple_strtoul(argv[4], NULL, 16); + count = hextoul(argv[4], NULL); else count = 1; @@ -740,12 +740,12 @@ static int do_i2c_crc(struct cmd_tbl *cmdtp, int flag, int argc, /* * Chip is always specified. */ - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); /* * Address is always specified. */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); alen = get_alen(argv[2], DEFAULT_ADDR_LEN); if (alen > 3) return CMD_RET_USAGE; @@ -760,7 +760,7 @@ static int do_i2c_crc(struct cmd_tbl *cmdtp, int flag, int argc, /* * Count is always specified */ - count = simple_strtoul(argv[3], NULL, 16); + count = hextoul(argv[3], NULL); printf ("CRC32 for %08lx ... %08lx ==> ", addr, addr + count - 1); /* @@ -840,12 +840,12 @@ static int mod_i2c_mem(struct cmd_tbl *cmdtp, int incrflag, int flag, int argc, /* * Chip is always specified. */ - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); /* * Address is always specified. */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); alen = get_alen(argv[2], DEFAULT_ADDR_LEN); if (alen > 3) return CMD_RET_USAGE; @@ -900,7 +900,7 @@ static int mod_i2c_mem(struct cmd_tbl *cmdtp, int incrflag, int flag, int argc, else { char *endp; - data = simple_strtoul(console_buffer, &endp, 16); + data = hextoul(console_buffer, &endp); if (size == 1) data = data << 24; else if (size == 2) @@ -1049,12 +1049,12 @@ static int do_i2c_loop(struct cmd_tbl *cmdtp, int flag, int argc, /* * Chip is always specified. */ - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); /* * Address is always specified. */ - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); alen = get_alen(argv[2], DEFAULT_ADDR_LEN); if (alen > 3) return CMD_RET_USAGE; @@ -1070,7 +1070,7 @@ static int do_i2c_loop(struct cmd_tbl *cmdtp, int flag, int argc, * Length is the number of objects, not number of bytes. */ length = 1; - length = simple_strtoul(argv[3], NULL, 16); + length = hextoul(argv[3], NULL); if (length > sizeof(bytes)) length = sizeof(bytes); @@ -1079,7 +1079,7 @@ static int do_i2c_loop(struct cmd_tbl *cmdtp, int flag, int argc, */ delay = 1000; if (argc > 3) - delay = simple_strtoul(argv[4], NULL, 10); + delay = dectoul(argv[4], NULL); /* * Run the loop... */ @@ -1219,7 +1219,7 @@ static int do_sdram(struct cmd_tbl *cmdtp, int flag, int argc, /* * Chip is always specified. */ - chip = simple_strtoul (argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); #if CONFIG_IS_ENABLED(DM_I2C) ret = i2c_get_cur_bus_chip(chip, &dev); @@ -1673,7 +1673,7 @@ int do_edid(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 1; } - chip = simple_strtoul(argv[1], NULL, 16); + chip = hextoul(argv[1], NULL); #if CONFIG_IS_ENABLED(DM_I2C) ret = i2c_get_cur_bus_chip(chip, &dev); if (!ret) @@ -1765,7 +1765,7 @@ static int do_i2c_show_bus(struct cmd_tbl *cmdtp, int flag, int argc, int i; /* show specific bus */ - i = simple_strtoul(argv[1], NULL, 10); + i = dectoul(argv[1], NULL); #if CONFIG_IS_ENABLED(DM_I2C) struct udevice *bus; int ret; @@ -1833,7 +1833,7 @@ static int do_i2c_bus_num(struct cmd_tbl *cmdtp, int flag, int argc, #endif printf("Current bus is %d\n", bus_no); } else { - bus_no = simple_strtoul(argv[1], NULL, 10); + bus_no = dectoul(argv[1], NULL); #if defined(CONFIG_SYS_I2C_LEGACY) if (bus_no >= CONFIG_SYS_NUM_I2C_BUSES) { printf("Invalid bus %d\n", bus_no); @@ -1884,7 +1884,7 @@ static int do_i2c_bus_speed(struct cmd_tbl *cmdtp, int flag, int argc, /* querying current speed */ printf("Current bus speed=%d\n", speed); } else { - speed = simple_strtoul(argv[1], NULL, 10); + speed = dectoul(argv[1], NULL); printf("Setting bus speed to %d Hz\n", speed); #if CONFIG_IS_ENABLED(DM_I2C) ret = dm_i2c_set_bus_speed(bus, speed); diff --git a/cmd/ini.c b/cmd/ini.c index c075be623cc..81dfc4c4e83 100644 --- a/cmd/ini.c +++ b/cmd/ini.c @@ -236,10 +236,10 @@ static int do_ini(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_USAGE; section = argv[1]; - file_address = (char *)simple_strtoul( - argc < 3 ? env_get("loadaddr") : argv[2], NULL, 16); - file_size = (size_t)simple_strtoul( - argc < 4 ? env_get("filesize") : argv[3], NULL, 16); + file_address = (char *)hextoul(argc < 3 ? env_get("loadaddr") : argv[2], + NULL); + file_size = (size_t)hextoul(argc < 4 ? env_get("filesize") : argv[3], + NULL); return ini_parse(file_address, file_size, ini_handler, (void *)section); } @@ -51,7 +51,7 @@ int do_io_iod(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 1; /* Address is specified since argc > 1 */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); addr += base_address; /* @@ -59,7 +59,7 @@ int do_io_iod(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) * Length is the number of objects, not number of bytes. */ if (argc > 2) - length = simple_strtoul(argv[2], NULL, 16); + length = hextoul(argv[2], NULL); } bytes = size * length; @@ -102,8 +102,8 @@ int do_io_iow(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (size < 0) return 1; - addr = simple_strtoul(argv[1], NULL, 16); - val = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[1], NULL); + val = hextoul(argv[2], NULL); if (size == 4) outl((u32) val, addr); diff --git a/cmd/iotrace.c b/cmd/iotrace.c index 652ebefb89e..f28359e2875 100644 --- a/cmd/iotrace.c +++ b/cmd/iotrace.c @@ -60,8 +60,8 @@ static int do_set_buffer(int argc, char *const argv[]) ulong addr = 0, size = 0; if (argc == 2) { - addr = simple_strtoul(*argv++, NULL, 16); - size = simple_strtoul(*argv++, NULL, 16); + addr = hextoul(*argv++, NULL); + size = hextoul(*argv++, NULL); } else if (argc != 0) { return CMD_RET_USAGE; } @@ -76,8 +76,8 @@ static int do_set_region(int argc, char *const argv[]) ulong addr = 0, size = 0; if (argc == 2) { - addr = simple_strtoul(*argv++, NULL, 16); - size = simple_strtoul(*argv++, NULL, 16); + addr = hextoul(*argv++, NULL); + size = hextoul(*argv++, NULL); } else if (argc != 0) { return CMD_RET_USAGE; } diff --git a/cmd/itest.c b/cmd/itest.c index 9a441ce9b8a..74414cbdc4c 100644 --- a/cmd/itest.c +++ b/cmd/itest.c @@ -57,7 +57,7 @@ static long evalexp(char *s, int w) /* if the parameter starts with a * then assume is a pointer to the value we want */ if (s[0] == '*') { - addr = simple_strtoul(&s[1], NULL, 16); + addr = hextoul(&s[1], NULL); buf = map_physmem(addr, w, MAP_WRBACK); if (!buf && addr) { puts("Failed to map physical memory\n"); @@ -82,7 +82,7 @@ static long evalexp(char *s, int w) unmap_physmem(buf, w); return l; } else { - l = simple_strtoul(s, NULL, 16); + l = hextoul(s, NULL); } /* avoid overflow on mask calculus */ @@ -93,7 +93,7 @@ static char * evalstr(char *s) { /* if the parameter starts with a * then assume a string pointer else its a literal */ if (s[0] == '*') { - return (char *)simple_strtoul(&s[1], NULL, 16); + return (char *)hextoul(&s[1], NULL); } else if (s[0] == '$') { int i = 2; diff --git a/cmd/jffs2.c b/cmd/jffs2.c index 9540988e33e..63bd55263a2 100644 --- a/cmd/jffs2.c +++ b/cmd/jffs2.c @@ -491,7 +491,7 @@ int do_jffs2_fsload(struct cmd_tbl *cmdtp, int flag, int argc, filename = argv[1]; } if (argc == 3) { - offset = simple_strtoul(argv[1], NULL, 16); + offset = hextoul(argv[1], NULL); image_load_addr = offset; filename = argv[2]; } diff --git a/cmd/led.c b/cmd/led.c index aa7751933e1..48a02baf509 100644 --- a/cmd/led.c +++ b/cmd/led.c @@ -93,7 +93,7 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (cmd == LEDST_BLINK) { if (argc < 4) return CMD_RET_USAGE; - freq_ms = simple_strtoul(argv[3], NULL, 10); + freq_ms = dectoul(argv[3], NULL); } #endif ret = led_get_by_label(led_label, &dev); diff --git a/cmd/legacy_led.c b/cmd/legacy_led.c index 86cd969e407..5256255f052 100644 --- a/cmd/legacy_led.c +++ b/cmd/legacy_led.c @@ -129,7 +129,7 @@ int do_legacy_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc != 4) return CMD_RET_USAGE; - freq = simple_strtoul(argv[3], NULL, 10); + freq = dectoul(argv[3], NULL); __led_blink(led_commands[i].mask, freq); } /* Need to set only 1 led if led_name wasn't 'all' */ diff --git a/cmd/load.c b/cmd/load.c index b7894d7db02..381ed1b3e25 100644 --- a/cmd/load.c +++ b/cmd/load.c @@ -70,7 +70,7 @@ static int do_load_serial(struct cmd_tbl *cmdtp, int flag, int argc, offset = simple_strtol(argv[1], NULL, 16); } if (argc == 3) { - load_baudrate = (int)simple_strtoul(argv[2], NULL, 10); + load_baudrate = (int)dectoul(argv[2], NULL); /* default to current baudrate */ if (load_baudrate == 0) @@ -257,14 +257,14 @@ int do_save_serial(struct cmd_tbl *cmdtp, int flag, int argc, #endif if (argc >= 2) { - offset = simple_strtoul(argv[1], NULL, 16); + offset = hextoul(argv[1], NULL); } #ifdef CONFIG_SYS_LOADS_BAUD_CHANGE if (argc >= 3) { - size = simple_strtoul(argv[2], NULL, 16); + size = hextoul(argv[2], NULL); } if (argc == 4) { - save_baudrate = (int)simple_strtoul(argv[3], NULL, 10); + save_baudrate = (int)dectoul(argv[3], NULL); /* default to current baudrate */ if (save_baudrate == 0) @@ -284,7 +284,7 @@ int do_save_serial(struct cmd_tbl *cmdtp, int flag, int argc, } #else /* ! CONFIG_SYS_LOADS_BAUD_CHANGE */ if (argc == 3) { - size = simple_strtoul(argv[2], NULL, 16); + size = hextoul(argv[2], NULL); } #endif /* CONFIG_SYS_LOADS_BAUD_CHANGE */ @@ -438,15 +438,15 @@ static int do_load_serial_bin(struct cmd_tbl *cmdtp, int flag, int argc, /* pre-set offset from $loadaddr */ s = env_get("loadaddr"); if (s) - offset = simple_strtoul(s, NULL, 16); + offset = hextoul(s, NULL); load_baudrate = current_baudrate = gd->baudrate; if (argc >= 2) { - offset = simple_strtoul(argv[1], NULL, 16); + offset = hextoul(argv[1], NULL); } if (argc == 3) { - load_baudrate = (int)simple_strtoul(argv[2], NULL, 10); + load_baudrate = (int)dectoul(argv[2], NULL); /* default to current baudrate */ if (load_baudrate == 0) diff --git a/cmd/log.c b/cmd/log.c index 72380c5691c..c377aee85c5 100644 --- a/cmd/log.c +++ b/cmd/log.c @@ -352,7 +352,7 @@ static int do_log_rec(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 7) return CMD_RET_USAGE; cat = log_get_cat_by_name(argv[1]); - level = simple_strtoul(argv[2], &end, 10); + level = dectoul(argv[2], &end); if (end == argv[2]) { level = log_get_level_by_name(argv[2]); @@ -366,7 +366,7 @@ static int do_log_rec(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; } file = argv[3]; - line = simple_strtoul(argv[4], NULL, 10); + line = dectoul(argv[4], NULL); func = argv[5]; msg = argv[6]; if (_log(cat, level, file, line, func, "%s\n", msg)) diff --git a/cmd/lzmadec.c b/cmd/lzmadec.c index 3b8db0a8538..81924da4618 100644 --- a/cmd/lzmadec.c +++ b/cmd/lzmadec.c @@ -26,11 +26,11 @@ static int do_lzmadec(struct cmd_tbl *cmdtp, int flag, int argc, switch (argc) { case 4: - dst_len = simple_strtoul(argv[3], NULL, 16); + dst_len = hextoul(argv[3], NULL); /* fall through */ case 3: - src = simple_strtoul(argv[1], NULL, 16); - dst = simple_strtoul(argv[2], NULL, 16); + src = hextoul(argv[1], NULL); + dst = hextoul(argv[2], NULL); break; default: return CMD_RET_USAGE; diff --git a/cmd/mbr.c b/cmd/mbr.c index da2e3a4722b..e7e22980969 100644 --- a/cmd/mbr.c +++ b/cmd/mbr.c @@ -269,7 +269,7 @@ static int do_mbr(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc != 4 && argc != 5) return CMD_RET_USAGE; - dev = (int)simple_strtoul(argv[3], &ep, 10); + dev = (int)dectoul(argv[3], &ep); if (!ep || ep[0] != '\0') { printf("'%s' is not a number\n", argv[3]); return CMD_RET_USAGE; diff --git a/cmd/md5sum.c b/cmd/md5sum.c index 5ae3ddf85f8..0f0e1d3dd68 100644 --- a/cmd/md5sum.c +++ b/cmd/md5sum.c @@ -25,7 +25,7 @@ static void store_result(const u8 *sum, const char *dest) if (*dest == '*') { u8 *ptr; - ptr = (u8 *)simple_strtoul(dest + 1, NULL, 16); + ptr = (u8 *)hextoul(dest + 1, NULL); for (i = 0; i < 16; i++) *ptr++ = sum[i]; } else { @@ -46,7 +46,7 @@ static int parse_verify_sum(char *verify_str, u8 *vsum) if (*verify_str == '*') { u8 *ptr; - ptr = (u8 *)simple_strtoul(verify_str + 1, NULL, 16); + ptr = (u8 *)hextoul(verify_str + 1, NULL); memcpy(vsum, ptr, 16); } else { unsigned int i; @@ -66,7 +66,7 @@ static int parse_verify_sum(char *verify_str, u8 *vsum) *nullp = '\0'; *(u8 *)(vsum + i) = - simple_strtoul(vsum_str + (i * 2), NULL, 16); + hextoul(vsum_str + (i * 2), NULL); *nullp = end; } } @@ -97,8 +97,8 @@ int do_md5sum(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_USAGE; } - addr = simple_strtoul(*av++, NULL, 16); - len = simple_strtoul(*av++, NULL, 16); + addr = hextoul(*av++, NULL); + len = hextoul(*av++, NULL); buf = map_sysmem(addr, len); md5_wd(buf, len, output, CHUNKSZ_MD5); @@ -147,8 +147,8 @@ static int do_md5sum(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], NULL, 16); - len = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[1], NULL); + len = hextoul(argv[2], NULL); buf = map_sysmem(addr, len); md5_wd(buf, len, output, CHUNKSZ_MD5); diff --git a/cmd/mdio.c b/cmd/mdio.c index cfa45ad12a0..3c74326161e 100644 --- a/cmd/mdio.c +++ b/cmd/mdio.c @@ -254,7 +254,7 @@ static int do_mdio(struct cmd_tbl *cmdtp, int flag, int argc, switch (op[0]) { case 'w': if (pos > 1) - data = simple_strtoul(argv[pos--], NULL, 16); + data = hextoul(argv[pos--], NULL); /* Intentional fall-through - Get reg for read and write */ case 'r': if (pos > 1) diff --git a/cmd/mem.c b/cmd/mem.c index 1eb83b75703..b7511382d3a 100644 --- a/cmd/mem.c +++ b/cmd/mem.c @@ -89,14 +89,14 @@ static int do_mem_md(struct cmd_tbl *cmdtp, int flag, int argc, /* Address is specified since argc > 1 */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); addr += base_address; /* If another parameter, it is the length to display. * Length is the number of objects, not number of bytes. */ if (argc > 2) - length = simple_strtoul(argv[2], NULL, 16); + length = hextoul(argv[2], NULL); } bytes = size * length; @@ -144,7 +144,7 @@ static int do_mem_mw(struct cmd_tbl *cmdtp, int flag, int argc, /* Address is specified since argc > 1 */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); addr += base_address; /* Get the value to write. @@ -152,11 +152,11 @@ static int do_mem_mw(struct cmd_tbl *cmdtp, int flag, int argc, if (SUPPORT_64BIT_DATA) writeval = simple_strtoull(argv[2], NULL, 16); else - writeval = simple_strtoul(argv[2], NULL, 16); + writeval = hextoul(argv[2], NULL); /* Count ? */ if (argc == 4) { - count = simple_strtoul(argv[3], NULL, 16); + count = hextoul(argv[3], NULL); } else { count = 1; } @@ -189,7 +189,7 @@ static int do_mem_mdc(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 4) return CMD_RET_USAGE; - count = simple_strtoul(argv[3], NULL, 10); + count = dectoul(argv[3], NULL); for (;;) { do_mem_md (NULL, 0, 3, argv); @@ -217,7 +217,7 @@ static int do_mem_mwc(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 4) return CMD_RET_USAGE; - count = simple_strtoul(argv[3], NULL, 10); + count = dectoul(argv[3], NULL); for (;;) { do_mem_mw (NULL, 0, 3, argv); @@ -258,13 +258,13 @@ static int do_mem_cmp(struct cmd_tbl *cmdtp, int flag, int argc, size == 4 ? "word" : size == 2 ? "halfword" : "byte"; - addr1 = simple_strtoul(argv[1], NULL, 16); + addr1 = hextoul(argv[1], NULL); addr1 += base_address; - addr2 = simple_strtoul(argv[2], NULL, 16); + addr2 = hextoul(argv[2], NULL); addr2 += base_address; - count = simple_strtoul(argv[3], NULL, 16); + count = hextoul(argv[3], NULL); bytes = size * count; base = buf1 = map_sysmem(addr1, bytes); @@ -321,13 +321,13 @@ static int do_mem_cp(struct cmd_tbl *cmdtp, int flag, int argc, if ((size = cmd_get_data_size(argv[0], 4)) < 0) return 1; - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); addr += base_address; - dest = simple_strtoul(argv[2], NULL, 16); + dest = hextoul(argv[2], NULL); dest += base_address; - count = simple_strtoul(argv[3], NULL, 16); + count = hextoul(argv[3], NULL); if (count == 0) { puts ("Zero length ???\n"); @@ -405,7 +405,7 @@ static int do_mem_search(struct cmd_tbl *cmdtp, int flag, int argc, if (ch == 'q') quiet = true; else if (ch == 'l' && isxdigit(argv[0][2])) - limit = simple_strtoul(argv[0] + 2, NULL, 16); + limit = hextoul(argv[0] + 2, NULL); else return CMD_RET_USAGE; argc--; @@ -413,11 +413,11 @@ static int do_mem_search(struct cmd_tbl *cmdtp, int flag, int argc, } /* Address is specified since argc > 1 */ - addr = simple_strtoul(argv[0], NULL, 16); + addr = hextoul(argv[0], NULL); addr += base_address; /* Length is the number of objects, not number of bytes */ - length = simple_strtoul(argv[1], NULL, 16); + length = hextoul(argv[1], NULL); /* Read the bytes to search for */ end = search_buf + sizeof(search_buf); @@ -434,7 +434,7 @@ static int do_mem_search(struct cmd_tbl *cmdtp, int flag, int argc, ptr += len; continue; } else { - u32 val = simple_strtoul(argv[i], NULL, 16); + u32 val = hextoul(argv[i], NULL); switch (size) { case 1: @@ -512,7 +512,7 @@ static int do_mem_base(struct cmd_tbl *cmdtp, int flag, int argc, if (argc > 1) { /* Set new base address. */ - base_address = simple_strtoul(argv[1], NULL, 16); + base_address = hextoul(argv[1], NULL); } /* Print the current base address. */ @@ -543,11 +543,11 @@ static int do_mem_loop(struct cmd_tbl *cmdtp, int flag, int argc, /* Address is always specified. */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); /* Length is the number of objects, not number of bytes. */ - length = simple_strtoul(argv[2], NULL, 16); + length = hextoul(argv[2], NULL); bytes = size * length; buf = map_sysmem(addr, bytes); @@ -636,17 +636,17 @@ static int do_mem_loopw(struct cmd_tbl *cmdtp, int flag, int argc, /* Address is always specified. */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); /* Length is the number of objects, not number of bytes. */ - length = simple_strtoul(argv[2], NULL, 16); + length = hextoul(argv[2], NULL); /* data to write */ if (SUPPORT_64BIT_DATA) data = simple_strtoull(argv[3], NULL, 16); else - data = simple_strtoul(argv[3], NULL, 16); + data = hextoul(argv[3], NULL); bytes = size * length; buf = map_sysmem(addr, bytes); @@ -1175,7 +1175,7 @@ mod_mem(struct cmd_tbl *cmdtp, int incrflag, int flag, int argc, /* Address is specified since argc > 1 */ - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); addr += base_address; } @@ -1215,7 +1215,7 @@ mod_mem(struct cmd_tbl *cmdtp, int incrflag, int flag, int argc, if (SUPPORT_64BIT_DATA) i = simple_strtoull(console_buffer, &endp, 16); else - i = simple_strtoul(console_buffer, &endp, 16); + i = hextoul(console_buffer, &endp); nbytes = endp - console_buffer; if (nbytes) { /* good enough to not time out @@ -1282,11 +1282,11 @@ static int do_random(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3 || argc > 4) return CMD_RET_USAGE; - len = simple_strtoul(argv[2], NULL, 16); - addr = simple_strtoul(argv[1], NULL, 16); + len = hextoul(argv[2], NULL); + addr = hextoul(argv[1], NULL); if (argc == 4) { - seed = simple_strtoul(argv[3], NULL, 16); + seed = hextoul(argv[3], NULL); if (seed == 0) { printf("The seed cannot be 0. Using 0xDEADBEEF.\n"); seed = 0xDEADBEEF; diff --git a/cmd/mfsl.c b/cmd/mfsl.c index 31f5b36ade0..0c78720ec46 100644 --- a/cmd/mfsl.c +++ b/cmd/mfsl.c @@ -23,8 +23,8 @@ int do_frd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 2) return CMD_RET_USAGE; - fslnum = (unsigned int)simple_strtoul (argv[1], NULL, 16); - blocking = (unsigned int)simple_strtoul (argv[2], NULL, 16); + fslnum = (unsigned int)hextoul(argv[1], NULL); + blocking = (unsigned int)hextoul(argv[2], NULL); if (fslnum < 0 || fslnum >= XILINX_FSL_NUMBER) { puts ("Bad number of FSL\n"); return CMD_RET_USAGE; @@ -178,9 +178,9 @@ int do_fwr(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 3) return CMD_RET_USAGE; - fslnum = (unsigned int)simple_strtoul (argv[1], NULL, 16); - num = (unsigned int)simple_strtoul (argv[2], NULL, 16); - blocking = (unsigned int)simple_strtoul (argv[3], NULL, 16); + fslnum = (unsigned int)hextoul(argv[1], NULL); + num = (unsigned int)hextoul(argv[2], NULL); + blocking = (unsigned int)hextoul(argv[3], NULL); if (fslnum < 0 || fslnum >= XILINX_FSL_NUMBER) return CMD_RET_USAGE; @@ -332,8 +332,8 @@ int do_rspr(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 2) return CMD_RET_USAGE; - reg = (unsigned int)simple_strtoul (argv[1], NULL, 16); - val = (unsigned int)simple_strtoul (argv[2], NULL, 16); + reg = (unsigned int)hextoul(argv[1], NULL); + val = (unsigned int)hextoul(argv[2], NULL); switch (reg) { case 0x1: if (argc > 2) { diff --git a/cmd/mii.c b/cmd/mii.c index fe8602eb7c8..fab420ee29e 100644 --- a/cmd/mii.c +++ b/cmd/mii.c @@ -267,10 +267,10 @@ static void extract_range( unsigned char * phi) { char * end; - *plo = simple_strtoul(input, &end, 16); + *plo = hextoul(input, &end); if (*end == '-') { end++; - *phi = simple_strtoul(end, NULL, 16); + *phi = hextoul(end, NULL); } else { *phi = *plo; @@ -319,9 +319,9 @@ static int do_mii(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc >= 4) extract_range(argv[3], ®lo, ®hi); if (argc >= 5) - data = simple_strtoul(argv[4], NULL, 16); + data = hextoul(argv[4], NULL); if (argc >= 6) - mask = simple_strtoul(argv[5], NULL, 16); + mask = hextoul(argv[5], NULL); } if (addrhi > 31 && strncmp(op, "de", 2)) { diff --git a/cmd/misc.c b/cmd/misc.c index ef540e836f2..bcd8d960ee0 100644 --- a/cmd/misc.c +++ b/cmd/misc.c @@ -57,9 +57,9 @@ static int do_misc_op(struct cmd_tbl *cmdtp, int flag, return ret; } - offset = simple_strtoul(argv[1], NULL, 16); - buf = (void *)simple_strtoul(argv[2], NULL, 16); - size = simple_strtoul(argv[3], NULL, 16); + offset = hextoul(argv[1], NULL); + buf = (void *)hextoul(argv[2], NULL); + size = hextoul(argv[3], NULL); if (op == MISC_OP_READ) misc_op = misc_read; diff --git a/cmd/mmc.c b/cmd/mmc.c index b942576b58a..c67ad762422 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -189,7 +189,7 @@ static int do_mmcrpmb_key(struct cmd_tbl *cmdtp, int flag, if (argc != 2) return CMD_RET_USAGE; - key_addr = (void *)simple_strtoul(argv[1], NULL, 16); + key_addr = (void *)hextoul(argv[1], NULL); if (!confirm_key_prog()) return CMD_RET_FAILURE; if (mmc_rpmb_set_key(mmc, key_addr)) { @@ -211,12 +211,12 @@ static int do_mmcrpmb_read(struct cmd_tbl *cmdtp, int flag, if (argc < 4) return CMD_RET_USAGE; - addr = (void *)simple_strtoul(argv[1], NULL, 16); - blk = simple_strtoul(argv[2], NULL, 16); - cnt = simple_strtoul(argv[3], NULL, 16); + addr = (void *)hextoul(argv[1], NULL); + blk = hextoul(argv[2], NULL); + cnt = hextoul(argv[3], NULL); if (argc == 5) - key_addr = (void *)simple_strtoul(argv[4], NULL, 16); + key_addr = (void *)hextoul(argv[4], NULL); printf("\nMMC RPMB read: dev # %d, block # %d, count %d ... ", curr_device, blk, cnt); @@ -240,10 +240,10 @@ static int do_mmcrpmb_write(struct cmd_tbl *cmdtp, int flag, if (argc != 5) return CMD_RET_USAGE; - addr = (void *)simple_strtoul(argv[1], NULL, 16); - blk = simple_strtoul(argv[2], NULL, 16); - cnt = simple_strtoul(argv[3], NULL, 16); - key_addr = (void *)simple_strtoul(argv[4], NULL, 16); + addr = (void *)hextoul(argv[1], NULL); + blk = hextoul(argv[2], NULL); + cnt = hextoul(argv[3], NULL); + key_addr = (void *)hextoul(argv[4], NULL); printf("\nMMC RPMB write: dev # %d, block # %d, count %d ... ", curr_device, blk, cnt); @@ -334,9 +334,9 @@ static int do_mmc_read(struct cmd_tbl *cmdtp, int flag, if (argc != 4) return CMD_RET_USAGE; - addr = (void *)simple_strtoul(argv[1], NULL, 16); - blk = simple_strtoul(argv[2], NULL, 16); - cnt = simple_strtoul(argv[3], NULL, 16); + addr = (void *)hextoul(argv[1], NULL); + blk = hextoul(argv[2], NULL); + cnt = hextoul(argv[3], NULL); mmc = init_mmc_device(curr_device, false); if (!mmc) @@ -379,8 +379,8 @@ static int do_mmc_sparse_write(struct cmd_tbl *cmdtp, int flag, if (argc != 3) return CMD_RET_USAGE; - addr = (void *)simple_strtoul(argv[1], NULL, 16); - blk = simple_strtoul(argv[2], NULL, 16); + addr = (void *)hextoul(argv[1], NULL); + blk = hextoul(argv[2], NULL); if (!is_sparse_image(addr)) { printf("Not a sparse image\n"); @@ -427,9 +427,9 @@ static int do_mmc_write(struct cmd_tbl *cmdtp, int flag, if (argc != 4) return CMD_RET_USAGE; - addr = (void *)simple_strtoul(argv[1], NULL, 16); - blk = simple_strtoul(argv[2], NULL, 16); - cnt = simple_strtoul(argv[3], NULL, 16); + addr = (void *)hextoul(argv[1], NULL); + blk = hextoul(argv[2], NULL); + cnt = hextoul(argv[3], NULL); mmc = init_mmc_device(curr_device, false); if (!mmc) @@ -457,8 +457,8 @@ static int do_mmc_erase(struct cmd_tbl *cmdtp, int flag, if (argc != 3) return CMD_RET_USAGE; - blk = simple_strtoul(argv[1], NULL, 16); - cnt = simple_strtoul(argv[2], NULL, 16); + blk = hextoul(argv[1], NULL); + cnt = hextoul(argv[2], NULL); mmc = init_mmc_device(curr_device, false); if (!mmc) @@ -519,10 +519,10 @@ static int do_mmc_dev(struct cmd_tbl *cmdtp, int flag, if (argc == 1) { dev = curr_device; } else if (argc == 2) { - dev = simple_strtoul(argv[1], NULL, 10); + dev = dectoul(argv[1], NULL); } else if (argc == 3) { - dev = (int)simple_strtoul(argv[1], NULL, 10); - part = (int)simple_strtoul(argv[2], NULL, 10); + dev = (int)dectoul(argv[1], NULL); + part = (int)dectoul(argv[2], NULL); if (part > PART_ACCESS_MASK) { printf("#part_num shouldn't be larger than %d\n", PART_ACCESS_MASK); @@ -572,9 +572,9 @@ static int parse_hwpart_user(struct mmc_hwpart_conf *pconf, if (i + 2 >= argc) return -1; pconf->user.enh_start = - simple_strtoul(argv[i+1], NULL, 10); + dectoul(argv[i + 1], NULL); pconf->user.enh_size = - simple_strtoul(argv[i+2], NULL, 10); + dectoul(argv[i + 2], NULL); i += 3; } else if (!strcmp(argv[i], "wrrel")) { if (i + 1 >= argc) @@ -603,7 +603,7 @@ static int parse_hwpart_gp(struct mmc_hwpart_conf *pconf, int pidx, if (1 >= argc) return -1; - pconf->gp_part[pidx].size = simple_strtoul(argv[0], NULL, 10); + pconf->gp_part[pidx].size = dectoul(argv[0], NULL); i = 1; while (i < argc) { @@ -721,10 +721,10 @@ static int do_mmc_bootbus(struct cmd_tbl *cmdtp, int flag, if (argc != 5) return CMD_RET_USAGE; - dev = simple_strtoul(argv[1], NULL, 10); - width = simple_strtoul(argv[2], NULL, 10); - reset = simple_strtoul(argv[3], NULL, 10); - mode = simple_strtoul(argv[4], NULL, 10); + dev = dectoul(argv[1], NULL); + width = dectoul(argv[2], NULL); + reset = dectoul(argv[3], NULL); + mode = dectoul(argv[4], NULL); mmc = init_mmc_device(dev, false); if (!mmc) @@ -785,9 +785,9 @@ static int do_mmc_boot_resize(struct cmd_tbl *cmdtp, int flag, if (argc != 4) return CMD_RET_USAGE; - dev = simple_strtoul(argv[1], NULL, 10); - bootsize = simple_strtoul(argv[2], NULL, 10); - rpmbsize = simple_strtoul(argv[3], NULL, 10); + dev = dectoul(argv[1], NULL); + bootsize = dectoul(argv[2], NULL); + rpmbsize = dectoul(argv[3], NULL); mmc = init_mmc_device(dev, false); if (!mmc) @@ -842,7 +842,7 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, if (argc != 2 && argc != 3 && argc != 5) return CMD_RET_USAGE; - dev = simple_strtoul(argv[1], NULL, 10); + dev = dectoul(argv[1], NULL); mmc = init_mmc_device(dev, false); if (!mmc) @@ -856,9 +856,9 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, if (argc == 2 || argc == 3) return mmc_partconf_print(mmc, argc == 3 ? argv[2] : NULL); - ack = simple_strtoul(argv[2], NULL, 10); - part_num = simple_strtoul(argv[3], NULL, 10); - access = simple_strtoul(argv[4], NULL, 10); + ack = dectoul(argv[2], NULL); + part_num = dectoul(argv[3], NULL); + access = dectoul(argv[4], NULL); /* acknowledge to be sent during boot operation */ return mmc_set_part_conf(mmc, ack, part_num, access); @@ -879,8 +879,8 @@ static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, if (argc != 3) return CMD_RET_USAGE; - dev = simple_strtoul(argv[1], NULL, 10); - enable = simple_strtoul(argv[2], NULL, 10); + dev = dectoul(argv[1], NULL); + enable = dectoul(argv[2], NULL); if (enable > 2) { puts("Invalid RST_n_ENABLE value\n"); @@ -908,7 +908,7 @@ static int do_mmc_setdsr(struct cmd_tbl *cmdtp, int flag, if (argc != 2) return CMD_RET_USAGE; - val = simple_strtoul(argv[1], NULL, 16); + val = hextoul(argv[1], NULL); mmc = find_mmc_device(curr_device); if (!mmc) { @@ -937,7 +937,7 @@ static int do_mmc_bkops_enable(struct cmd_tbl *cmdtp, int flag, if (argc != 2) return CMD_RET_USAGE; - dev = simple_strtoul(argv[1], NULL, 10); + dev = dectoul(argv[1], NULL); mmc = init_mmc_device(dev, false); if (!mmc) @@ -36,7 +36,7 @@ cpu_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 3) return CMD_RET_USAGE; - cpuid = simple_strtoul(argv[1], NULL, 10); + cpuid = dectoul(argv[1], NULL); if (!is_core_valid(cpuid)) { printf ("Core num: %lu is not valid\n", cpuid); return 1; diff --git a/cmd/mtd.c b/cmd/mtd.c index c22478c1527..ad5cc9827d5 100644 --- a/cmd/mtd.c +++ b/cmd/mtd.c @@ -285,12 +285,12 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int argc, goto out_put_mtd; } - user_addr = simple_strtoul(argv[0], NULL, 16); + user_addr = hextoul(argv[0], NULL); argc--; argv++; } - start_off = argc > 0 ? simple_strtoul(argv[0], NULL, 16) : 0; + start_off = argc > 0 ? hextoul(argv[0], NULL) : 0; if (!mtd_is_aligned_with_min_io_size(mtd, start_off)) { printf("Offset not aligned with a page (0x%x)\n", mtd->writesize); @@ -299,7 +299,7 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int argc, } default_len = dump ? mtd->writesize : mtd->size; - len = argc > 1 ? simple_strtoul(argv[1], NULL, 16) : default_len; + len = argc > 1 ? hextoul(argv[1], NULL) : default_len; if (!mtd_is_aligned_with_min_io_size(mtd, len)) { len = round_up(len, mtd->writesize); printf("Size not on a page boundary (0x%x), rounding to 0x%llx\n", @@ -411,8 +411,8 @@ static int do_mtd_erase(struct cmd_tbl *cmdtp, int flag, int argc, argc -= 2; argv += 2; - off = argc > 0 ? simple_strtoul(argv[0], NULL, 16) : 0; - len = argc > 1 ? simple_strtoul(argv[1], NULL, 16) : mtd->size; + off = argc > 0 ? hextoul(argv[0], NULL) : 0; + len = argc > 1 ? hextoul(argv[1], NULL) : mtd->size; if (!mtd_is_aligned_with_block_size(mtd, off)) { printf("Offset not aligned with a block (0x%x)\n", diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c index 5cd520e46bb..d4f381b6ad9 100644 --- a/cmd/mvebu/bubt.c +++ b/cmd/mvebu/bubt.c @@ -137,7 +137,7 @@ static ulong get_load_addr(void) addr_str = env_get("loadaddr"); if (addr_str) - addr = simple_strtoul(addr_str, NULL, 16); + addr = hextoul(addr_str, NULL); else addr = CONFIG_SYS_LOAD_ADDR; diff --git a/cmd/mvebu/comphy_rx_training.c b/cmd/mvebu/comphy_rx_training.c index 0798decfae1..25a9e153de8 100644 --- a/cmd/mvebu/comphy_rx_training.c +++ b/cmd/mvebu/comphy_rx_training.c @@ -25,8 +25,8 @@ int mvebu_comphy_rx_training_cmd(struct cmd_tbl *cmdtp, int flag, int argc, return -1; } - cp_index = simple_strtoul(argv[1], NULL, 16); - comphy_index = simple_strtoul(argv[2], NULL, 16); + cp_index = hextoul(argv[1], NULL); + comphy_index = hextoul(argv[2], NULL); ret = uclass_get(UCLASS_MISC, &uc); if (ret) { diff --git a/cmd/nand.c b/cmd/nand.c index 97e117a979a..d381053c6ac 100644 --- a/cmd/nand.c +++ b/cmd/nand.c @@ -424,7 +424,7 @@ static int do_nand(struct cmd_tbl *cmdtp, int flag, int argc, return 0; } - dev = (int)simple_strtoul(argv[2], NULL, 10); + dev = (int)dectoul(argv[2], NULL); set_dev(dev); return 0; @@ -543,7 +543,7 @@ static int do_nand(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) goto usage; - off = (int)simple_strtoul(argv[2], NULL, 16); + off = (int)hextoul(argv[2], NULL); ret = nand_dump(mtd, off, !strcmp(&cmd[4], ".oob"), repeat); return ret == 0 ? 1 : 0; @@ -559,7 +559,7 @@ static int do_nand(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 4) goto usage; - addr = (ulong)simple_strtoul(argv[2], NULL, 16); + addr = (ulong)hextoul(argv[2], NULL); read = strncmp(cmd, "read", 4) == 0; /* 1 = read, 0 = write */ printf("\nNAND %s: ", read ? "read" : "write"); @@ -713,7 +713,7 @@ static int do_nand(struct cmd_tbl *cmdtp, int flag, int argc, goto usage; while (argc > 0) { - addr = simple_strtoul(*argv, NULL, 16); + addr = hextoul(*argv, NULL); if (mtd_block_markbad(mtd, addr)) { printf("block 0x%08lx NOT marked " @@ -957,7 +957,7 @@ static int do_nandboot(struct cmd_tbl *cmdtp, int flag, int argc, if (argc > 3) goto usage; if (argc == 3) - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); else addr = CONFIG_SYS_LOAD_ADDR; @@ -975,17 +975,17 @@ static int do_nandboot(struct cmd_tbl *cmdtp, int flag, int argc, boot_device = env_get("bootdevice"); break; case 2: - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); boot_device = env_get("bootdevice"); break; case 3: - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); boot_device = argv[2]; break; case 4: - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); boot_device = argv[2]; - offset = simple_strtoul(argv[3], NULL, 16); + offset = hextoul(argv[3], NULL); break; default: #if defined(CONFIG_CMD_MTDPARTS) @@ -1003,7 +1003,7 @@ usage: } bootstage_mark(BOOTSTAGE_ID_NAND_BOOT_DEVICE); - idx = simple_strtoul(boot_device, NULL, 16); + idx = hextoul(boot_device, NULL); mtd = get_nand_dev_by_index(idx); if (!mtd) { diff --git a/cmd/net.c b/cmd/net.c index 76c7e751250..651c1411f4d 100644 --- a/cmd/net.c +++ b/cmd/net.c @@ -205,7 +205,7 @@ static int netboot_common(enum proto_t proto, struct cmd_tbl *cmdtp, int argc, /* pre-set image_load_addr */ s = env_get("loadaddr"); if (s != NULL) - image_load_addr = simple_strtoul(s, NULL, 16); + image_load_addr = hextoul(s, NULL); switch (argc) { case 1: @@ -220,7 +220,7 @@ static int netboot_common(enum proto_t proto, struct cmd_tbl *cmdtp, int argc, * form must be written in a format which can not be * mis-interpreted as a valid number. */ - addr = simple_strtoul(argv[1], &end, 16); + addr = hextoul(argv[1], &end); if (end == (argv[1] + strlen(argv[1]))) { image_load_addr = addr; /* refresh bootfile name from env */ @@ -234,7 +234,7 @@ static int netboot_common(enum proto_t proto, struct cmd_tbl *cmdtp, int argc, break; case 3: - image_load_addr = simple_strtoul(argv[1], NULL, 16); + image_load_addr = hextoul(argv[1], NULL); net_boot_file_name_explicit = true; copy_filename(net_boot_file_name, argv[2], sizeof(net_boot_file_name)); diff --git a/cmd/nvedit.c b/cmd/nvedit.c index d14ba10cefa..ddc715b4f91 100644 --- a/cmd/nvedit.c +++ b/cmd/nvedit.c @@ -358,7 +358,7 @@ ulong env_get_hex(const char *varname, ulong default_val) s = env_get(varname); if (s) - value = simple_strtoul(s, &endp, 16); + value = hextoul(s, &endp); if (!s || endp == s) return default_val; @@ -423,7 +423,7 @@ int do_env_ask(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) * the size. Otherwise we echo it as part of the * message. */ - i = simple_strtoul(argv[argc - 1], &endptr, 10); + i = dectoul(argv[argc - 1], &endptr); if (*endptr != '\0') { /* no size */ size = CONFIG_SYS_CBSIZE - 1; } else { /* size given */ @@ -984,7 +984,7 @@ static int do_env_export(struct cmd_tbl *cmdtp, int flag, case 's': /* size given */ if (--argc <= 0) return cmd_usage(cmdtp); - size = simple_strtoul(*++argv, NULL, 16); + size = hextoul(*++argv, NULL); goto NXTARG; case 't': /* text format */ if (fmt++) @@ -1001,7 +1001,7 @@ NXTARG: ; if (argc < 1) return CMD_RET_USAGE; - addr = simple_strtoul(argv[0], NULL, 16); + addr = hextoul(argv[0], NULL); ptr = map_sysmem(addr, size); if (size) @@ -1140,11 +1140,11 @@ static int do_env_import(struct cmd_tbl *cmdtp, int flag, if (sep != '\n' && crlf_is_lf ) crlf_is_lf = 0; - addr = simple_strtoul(argv[0], NULL, 16); + addr = hextoul(argv[0], NULL); ptr = map_sysmem(addr, 0); if (argc >= 2 && strcmp(argv[1], "-")) { - size = simple_strtoul(argv[1], NULL, 16); + size = hextoul(argv[1], NULL); } else if (chk) { puts("## Error: external checksum format must pass size\n"); return CMD_RET_FAILURE; diff --git a/cmd/nvedit_efi.c b/cmd/nvedit_efi.c index d5e93827e45..676bbda950d 100644 --- a/cmd/nvedit_efi.c +++ b/cmd/nvedit_efi.c @@ -471,12 +471,12 @@ int do_env_set_efi(struct cmd_tbl *cmdtp, int flag, int argc, argc--; argv++; - addr = simple_strtoul(argv[0], &ep, 16); + addr = hextoul(argv[0], &ep); if (*ep != ':') return CMD_RET_USAGE; /* 0 should be allowed for delete */ - size = simple_strtoul(++ep, NULL, 16); + size = hextoul(++ep, NULL); value_on_memory = true; } else if (!strcmp(argv[0], "-v")) { diff --git a/cmd/onenand.c b/cmd/onenand.c index 216458bb474..852ed5c7b21 100644 --- a/cmd/onenand.c +++ b/cmd/onenand.c @@ -398,7 +398,7 @@ static int do_onenand_read(struct cmd_tbl *cmdtp, int flag, int argc, if ((s != NULL) && (!strcmp(s, ".oob"))) oob = 1; - addr = (ulong)simple_strtoul(argv[1], NULL, 16); + addr = (ulong)hextoul(argv[1], NULL); printf("\nOneNAND read: "); if (arg_off_size_onenand(argc - 2, argv + 2, &ofs, &len) != 0) @@ -425,7 +425,7 @@ static int do_onenand_write(struct cmd_tbl *cmdtp, int flag, int argc, if (strncmp(argv[0] + 6, "yaffs", 5) == 0) withoob = 1; - addr = (ulong)simple_strtoul(argv[1], NULL, 16); + addr = (ulong)hextoul(argv[1], NULL); printf("\nOneNAND write: "); if (arg_off_size_onenand(argc - 2, argv + 2, &ofs, &len) != 0) @@ -512,7 +512,7 @@ static int do_onenand_dump(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; s = strchr(argv[0], '.'); - ofs = (int)simple_strtoul(argv[1], NULL, 16); + ofs = (int)hextoul(argv[1], NULL); if (s != NULL && strcmp(s, ".oob") == 0) ret = onenand_dump(mtd, ofs, 1); @@ -535,7 +535,7 @@ static int do_onenand_markbad(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; while (argc > 0) { - addr = simple_strtoul(*argv, NULL, 16); + addr = hextoul(*argv, NULL); if (mtd_block_markbad(mtd, addr)) { printf("block 0x%08lx NOT marked " diff --git a/cmd/optee_rpmb.c b/cmd/optee_rpmb.c index 0d6b1cb1d83..e0e44bbed04 100644 --- a/cmd/optee_rpmb.c +++ b/cmd/optee_rpmb.c @@ -195,7 +195,7 @@ int do_optee_rpmb_read(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; name = argv[1]; - bytes = simple_strtoul(argv[2], &endp, 10); + bytes = dectoul(argv[2], &endp); if (*endp && *endp != '\n') return CMD_RET_USAGE; diff --git a/cmd/osd.c b/cmd/osd.c index 703d640b04e..c8c62d4a2ab 100644 --- a/cmd/osd.c +++ b/cmd/osd.c @@ -99,10 +99,10 @@ static int do_osd_write(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_FAILURE; } - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); hexstr = argv[3]; - count = (argc > 4) ? simple_strtoul(argv[4], NULL, 16) : 1; + count = (argc > 4) ? hextoul(argv[4], NULL) : 1; buflen = strlen(hexstr) / 2; @@ -148,9 +148,9 @@ static int do_osd_print(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_FAILURE; } - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); - color = simple_strtoul(argv[3], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); + color = hextoul(argv[3], NULL); text = argv[4]; res = video_osd_print(osd_cur, x, y, color, text); @@ -176,8 +176,8 @@ static int do_osd_size(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_FAILURE; } - x = simple_strtoul(argv[1], NULL, 16); - y = simple_strtoul(argv[2], NULL, 16); + x = hextoul(argv[1], NULL); + y = hextoul(argv[2], NULL); res = video_osd_set_size(osd_cur, x, y); if (res) { @@ -211,7 +211,7 @@ static int do_show_osd(struct cmd_tbl *cmdtp, int flag, int argc, int i, res; /* show specific OSD */ - i = simple_strtoul(argv[1], NULL, 10); + i = dectoul(argv[1], NULL); res = uclass_get_device_by_seq(UCLASS_VIDEO_OSD, i, &osd); if (res) { @@ -240,7 +240,7 @@ static int do_osd_num(struct cmd_tbl *cmdtp, int flag, int argc, osd_no = -1; printf("Current osd is %d\n", osd_no); } else { - osd_no = simple_strtoul(argv[1], NULL, 10); + osd_no = dectoul(argv[1], NULL); printf("Setting osd to %d\n", osd_no); res = cmd_osd_set_osd_num(osd_no); diff --git a/cmd/pcap.c b/cmd/pcap.c index d0172f3fffc..ab5c1a7e873 100644 --- a/cmd/pcap.c +++ b/cmd/pcap.c @@ -18,8 +18,8 @@ static int do_pcap_init(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 3) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], NULL, 16); - size = simple_strtoul(argv[2], NULL, 10); + addr = hextoul(argv[1], NULL); + size = dectoul(argv[2], NULL); return pcap_init(addr, size) ? CMD_RET_FAILURE : CMD_RET_SUCCESS; } diff --git a/cmd/pci.c b/cmd/pci.c index e53b7c858c6..22de9426c9b 100644 --- a/cmd/pci.c +++ b/cmd/pci.c @@ -470,14 +470,14 @@ static pci_dev_t get_pci_dev(char *name) if (name[i] == '.') { memcpy(cnum, &name[iold], i - iold); cnum[i - iold] = '\0'; - bdfs[n++] = simple_strtoul(cnum, NULL, 16); + bdfs[n++] = hextoul(cnum, NULL); iold = i + 1; } } strcpy(cnum, &name[iold]); if (n == 0) n = 1; - bdfs[n] = simple_strtoul(cnum, NULL, 16); + bdfs[n] = hextoul(cnum, NULL); return PCI_BDF(bdfs[0], bdfs[1], bdfs[2]); } @@ -588,7 +588,7 @@ static int pci_cfg_modify(pci_dev_t bdf, ulong addr, ulong size, ulong value, #endif else { char *endp; - i = simple_strtoul(console_buffer, &endp, 16); + i = hextoul(console_buffer, &endp); nbytes = endp - console_buffer; if (nbytes) { /* good enough to not time out @@ -683,9 +683,9 @@ static int do_pci(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) cmd_size = cmd_get_data_size(argv[1], 4); size = (cmd_size == 4) ? PCI_SIZE_32 : cmd_size - 1; if (argc > 3) - addr = simple_strtoul(argv[3], NULL, 16); + addr = hextoul(argv[3], NULL); if (argc > 4) - value = simple_strtoul(argv[4], NULL, 16); + value = hextoul(argv[4], NULL); case 'h': /* header */ #ifdef CONFIG_DM_PCI case 'b': /* bars */ @@ -709,7 +709,7 @@ static int do_pci(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) argc--; } if (argc > 1) - busnum = simple_strtoul(argv[1], NULL, 16); + busnum = hextoul(argv[1], NULL); } #ifdef CONFIG_DM_PCI ret = uclass_get_device_by_seq(UCLASS_PCI, busnum, &bus); diff --git a/cmd/pstore.c b/cmd/pstore.c index 5656bae6d3e..9fac8c7218f 100644 --- a/cmd/pstore.c +++ b/cmd/pstore.c @@ -172,26 +172,26 @@ static int pstore_set(struct cmd_tbl *cmdtp, int flag, int argc, /* Address is specified since argc > 2 */ - pstore_addr = simple_strtoul(argv[1], NULL, 16); + pstore_addr = hextoul(argv[1], NULL); /* Length is specified since argc > 2 */ - pstore_length = simple_strtoul(argv[2], NULL, 16); + pstore_length = hextoul(argv[2], NULL); if (argc > 3) - pstore_record_size = simple_strtoul(argv[3], NULL, 16); + pstore_record_size = hextoul(argv[3], NULL); if (argc > 4) - pstore_console_size = simple_strtoul(argv[4], NULL, 16); + pstore_console_size = hextoul(argv[4], NULL); if (argc > 5) - pstore_ftrace_size = simple_strtoul(argv[5], NULL, 16); + pstore_ftrace_size = hextoul(argv[5], NULL); if (argc > 6) - pstore_pmsg_size = simple_strtoul(argv[6], NULL, 16); + pstore_pmsg_size = hextoul(argv[6], NULL); if (argc > 7) - pstore_ecc_size = simple_strtoul(argv[7], NULL, 16); + pstore_ecc_size = hextoul(argv[7], NULL); if (pstore_length < (pstore_record_size + pstore_console_size + pstore_ftrace_size + pstore_pmsg_size)) { @@ -279,7 +279,7 @@ static int pstore_display(struct cmd_tbl *cmdtp, int flag, int argc, - pstore_ftrace_size - pstore_console_size; if (argc > 2) { - ptr += simple_strtoul(argv[2], NULL, 10) + ptr += dectoul(argv[2], NULL) * pstore_record_size; ptr_end = ptr + pstore_record_size; } diff --git a/cmd/pwm.c b/cmd/pwm.c index e1f97c759d2..87d840a2b9b 100644 --- a/cmd/pwm.c +++ b/cmd/pwm.c @@ -66,7 +66,7 @@ static int do_pwm(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; } - pwm_dev = simple_strtoul(str_pwm, NULL, 10); + pwm_dev = dectoul(str_pwm, NULL); ret = uclass_get_device(UCLASS_PWM, pwm_dev, &dev); if (ret) { printf("pwm: '%s' not found\n", str_pwm); @@ -74,22 +74,22 @@ static int do_pwm(struct cmd_tbl *cmdtp, int flag, int argc, } str_channel = *argv; - channel = simple_strtoul(str_channel, NULL, 10); + channel = dectoul(str_channel, NULL); argc--; argv++; if (sub_cmd == PWM_SET_INVERT) { str_enable = *argv; - pwm_enable = simple_strtoul(str_enable, NULL, 10); + pwm_enable = dectoul(str_enable, NULL); ret = pwm_set_invert(dev, channel, pwm_enable); } else if (sub_cmd == PWM_SET_CONFIG) { str_period = *argv; argc--; argv++; - period_ns = simple_strtoul(str_period, NULL, 10); + period_ns = dectoul(str_period, NULL); str_duty = *argv; - duty_ns = simple_strtoul(str_duty, NULL, 10); + duty_ns = dectoul(str_duty, NULL); ret = pwm_set_config(dev, channel, period_ns, duty_ns); } else if (sub_cmd == PWM_SET_ENABLE) { diff --git a/cmd/pxe_utils.c b/cmd/pxe_utils.c index 9a30629e26e..067c24e5ff4 100644 --- a/cmd/pxe_utils.c +++ b/cmd/pxe_utils.c @@ -351,7 +351,7 @@ static void label_boot_fdtoverlay(struct cmd_tbl *cmdtp, struct pxe_label *label int err; /* Get the main fdt and map it */ - fdt_addr = simple_strtoul(env_get("fdt_addr_r"), NULL, 16); + fdt_addr = hextoul(env_get("fdt_addr_r"), NULL); working_fdt = map_sysmem(fdt_addr, 0); err = fdt_check_header(working_fdt); if (err) @@ -364,7 +364,7 @@ static void label_boot_fdtoverlay(struct cmd_tbl *cmdtp, struct pxe_label *label return; } - fdtoverlay_addr = simple_strtoul(fdtoverlay_addr_env, NULL, 16); + fdtoverlay_addr = hextoul(fdtoverlay_addr_env, NULL); /* Cycle over the overlay files and apply them in order */ do { diff --git a/cmd/qfw.c b/cmd/qfw.c index e6a9fdb2af1..eb6a552f6fa 100644 --- a/cmd/qfw.c +++ b/cmd/qfw.c @@ -120,7 +120,7 @@ static int qemu_fwcfg_do_load(struct cmd_tbl *cmdtp, int flag, env = env_get("loadaddr"); load_addr = env ? - (void *)simple_strtoul(env, NULL, 16) : + (void *)hextoul(env, NULL) : #ifdef CONFIG_LOADADDR (void *)CONFIG_LOADADDR; #else @@ -129,7 +129,7 @@ static int qemu_fwcfg_do_load(struct cmd_tbl *cmdtp, int flag, env = env_get("ramdiskaddr"); initrd_addr = env ? - (void *)simple_strtoul(env, NULL, 16) : + (void *)hextoul(env, NULL) : #ifdef CONFIG_RAMDISK_ADDR (void *)CONFIG_RAMDISK_ADDR; #else @@ -137,10 +137,10 @@ static int qemu_fwcfg_do_load(struct cmd_tbl *cmdtp, int flag, #endif if (argc == 2) { - load_addr = (void *)simple_strtoul(argv[0], NULL, 16); - initrd_addr = (void *)simple_strtoul(argv[1], NULL, 16); + load_addr = (void *)hextoul(argv[0], NULL); + initrd_addr = (void *)hextoul(argv[1], NULL); } else if (argc == 1) { - load_addr = (void *)simple_strtoul(argv[0], NULL, 16); + load_addr = (void *)hextoul(argv[0], NULL); } if (!load_addr || !initrd_addr) { diff --git a/cmd/read.c b/cmd/read.c index 34f53f9a292..99c7e3854e1 100644 --- a/cmd/read.c +++ b/cmd/read.c @@ -30,13 +30,13 @@ int do_read(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 1; } - dev = (int)simple_strtoul(argv[2], &ep, 16); + dev = (int)hextoul(argv[2], &ep); if (*ep) { if (*ep != ':') { printf("Invalid block device %s\n", argv[2]); return 1; } - part = (int)simple_strtoul(++ep, NULL, 16); + part = (int)hextoul(++ep, NULL); } dev_desc = blk_get_dev(argv[1], dev); @@ -45,9 +45,9 @@ int do_read(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 1; } - addr = (void *)simple_strtoul(argv[3], NULL, 16); - blk = simple_strtoul(argv[4], NULL, 16); - cnt = simple_strtoul(argv[5], NULL, 16); + addr = (void *)hextoul(argv[3], NULL); + blk = hextoul(argv[4], NULL); + cnt = hextoul(argv[5], NULL); if (part != 0) { if (part_get_info(dev_desc, part, &part_info)) { diff --git a/cmd/reiser.c b/cmd/reiser.c index 3db926f8064..707167fcd59 100644 --- a/cmd/reiser.c +++ b/cmd/reiser.c @@ -90,7 +90,7 @@ int do_reiserload(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) case 3: addr_str = env_get("loadaddr"); if (addr_str != NULL) { - addr = simple_strtoul (addr_str, NULL, 16); + addr = hextoul(addr_str, NULL); } else { addr = CONFIG_SYS_LOAD_ADDR; } @@ -98,19 +98,19 @@ int do_reiserload(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) count = 0; break; case 4: - addr = simple_strtoul (argv[3], NULL, 16); + addr = hextoul(argv[3], NULL); filename = env_get("bootfile"); count = 0; break; case 5: - addr = simple_strtoul (argv[3], NULL, 16); + addr = hextoul(argv[3], NULL); filename = argv[4]; count = 0; break; case 6: - addr = simple_strtoul (argv[3], NULL, 16); + addr = hextoul(argv[3], NULL); filename = argv[4]; - count = simple_strtoul (argv[5], NULL, 16); + count = hextoul(argv[5], NULL); break; default: diff --git a/cmd/remoteproc.c b/cmd/remoteproc.c index b3ddcebe314..ca3b436242a 100644 --- a/cmd/remoteproc.c +++ b/cmd/remoteproc.c @@ -84,7 +84,7 @@ static int do_rproc_init(struct cmd_tbl *cmdtp, int flag, int argc, return 0; printf("Few Remote Processors failed to be initialized\n"); } else if (argc == 2) { - id = (int)simple_strtoul(argv[1], NULL, 10); + id = (int)dectoul(argv[1], NULL); if (!rproc_dev_init(id)) return 0; printf("Remote Processor %d failed to be initialized\n", id); @@ -129,10 +129,10 @@ static int do_remoteproc_load(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 4) return CMD_RET_USAGE; - id = (int)simple_strtoul(argv[1], NULL, 10); - addr = simple_strtoul(argv[2], NULL, 16); + id = (int)dectoul(argv[1], NULL); + addr = hextoul(argv[2], NULL); - size = simple_strtoul(argv[3], NULL, 16); + size = hextoul(argv[3], NULL); if (!size) { printf("\t Expect some size??\n"); @@ -167,7 +167,7 @@ static int do_remoteproc_wrapper(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 2) return CMD_RET_USAGE; - id = (int)simple_strtoul(argv[1], NULL, 10); + id = (int)dectoul(argv[1], NULL); if (!strcmp(argv[0], "start")) { ret = rproc_start(id); diff --git a/cmd/rng.c b/cmd/rng.c index 9747c11be46..1ad5a096c0b 100644 --- a/cmd/rng.c +++ b/cmd/rng.c @@ -24,7 +24,7 @@ static int do_rng(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } if (argc >= 2) - n = simple_strtoul(argv[1], NULL, 16); + n = hextoul(argv[1], NULL); buf = malloc(n); if (!buf) { diff --git a/cmd/rtc.c b/cmd/rtc.c index b4f61b2e835..75d4b64d688 100644 --- a/cmd/rtc.c +++ b/cmd/rtc.c @@ -18,13 +18,13 @@ static int do_rtc_read(struct udevice *dev, int argc, char * const argv[]) if (argc < 2 || argc > 3) return CMD_RET_USAGE; - reg = simple_strtoul(argv[0], NULL, 16); - len = simple_strtoul(argv[1], NULL, 16); + reg = hextoul(argv[0], NULL); + len = hextoul(argv[1], NULL); if (argc == 3) { u8 *addr; - addr = map_sysmem(simple_strtoul(argv[2], NULL, 16), len); + addr = map_sysmem(hextoul(argv[2], NULL), len); ret = dm_rtc_read(dev, reg, addr, len); unmap_sysmem(addr); if (ret) { @@ -59,13 +59,13 @@ static int do_rtc_write(struct udevice *dev, int argc, char * const argv[]) if (argc < 2 || argc > 3) return CMD_RET_USAGE; - reg = simple_strtoul(argv[0], NULL, 16); + reg = hextoul(argv[0], NULL); if (argc == 3) { u8 *addr; - len = simple_strtoul(argv[1], NULL, 16); - addr = map_sysmem(simple_strtoul(argv[2], NULL, 16), len); + len = hextoul(argv[1], NULL); + addr = map_sysmem(hextoul(argv[2], NULL), len); ret = dm_rtc_write(dev, reg, addr, len); unmap_sysmem(addr); if (ret) { @@ -130,7 +130,7 @@ int do_rtc(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]) idx = curr_rtc; if (!strcmp(argv[0], "dev") && argc >= 2) - idx = simple_strtoul(argv[1], NULL, 10); + idx = dectoul(argv[1], NULL); ret = uclass_get_device(UCLASS_RTC, idx, &dev); if (ret) { diff --git a/cmd/sata.c b/cmd/sata.c index aa396c1bbdf..76da1906b7f 100644 --- a/cmd/sata.c +++ b/cmd/sata.c @@ -88,7 +88,7 @@ static int do_sata(struct cmd_tbl *cmdtp, int flag, int argc, int devnum = 0; if (argc == 3) - devnum = (int)simple_strtoul(argv[2], NULL, 10); + devnum = (int)dectoul(argv[2], NULL); if (!strcmp(argv[1], "stop")) return sata_remove(devnum); diff --git a/cmd/setexpr.c b/cmd/setexpr.c index 1eb67e2effb..05d655809b0 100644 --- a/cmd/setexpr.c +++ b/cmd/setexpr.c @@ -49,7 +49,7 @@ static int get_arg(char *s, int w, struct expr_arg *argp) int len; char *str; - addr = simple_strtoul(&s[1], NULL, 16); + addr = hextoul(&s[1], NULL); switch (w) { case 1: p = map_sysmem(addr, sizeof(uchar)); @@ -94,7 +94,7 @@ static int get_arg(char *s, int w, struct expr_arg *argp) } else { if (w == CMD_DATA_SIZE_STR) return -EINVAL; - arg.ival = simple_strtoul(s, NULL, 16); + arg.ival = hextoul(s, NULL); } *argp = arg; @@ -54,7 +54,7 @@ static int sf_parse_len_arg(char *arg, ulong *len) ++arg; } - len_arg = simple_strtoul(arg, &ep, 16); + len_arg = hextoul(arg, &ep); if (ep == arg || *ep != '\0') return -1; @@ -119,7 +119,7 @@ static int do_spi_flash_probe(int argc, char *const argv[]) return -1; } if (argc >= 4) { - mode = simple_strtoul(argv[3], &endp, 16); + mode = hextoul(argv[3], &endp); if (*argv[3] == 0 || *endp != 0) return -1; } @@ -272,7 +272,7 @@ static int do_spi_flash_read_write(int argc, char *const argv[]) if (argc < 3) return -1; - addr = simple_strtoul(argv[1], &endp, 16); + addr = hextoul(argv[1], &endp); if (*argv[1] == 0 || *endp != 0) return -1; @@ -517,10 +517,10 @@ static int do_spi_flash_test(int argc, char *const argv[]) if (argc < 3) return -1; - offset = simple_strtoul(argv[1], &endp, 16); + offset = hextoul(argv[1], &endp); if (*argv[1] == 0 || *endp != 0) return -1; - len = simple_strtoul(argv[2], &endp, 16); + len = hextoul(argv[2], &endp); if (*argv[2] == 0 || *endp != 0) return -1; diff --git a/cmd/sleep.c b/cmd/sleep.c index 1fff400c791..c741b4aa029 100644 --- a/cmd/sleep.c +++ b/cmd/sleep.c @@ -20,7 +20,7 @@ static int do_sleep(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 2) return CMD_RET_USAGE; - delay = simple_strtoul(argv[1], NULL, 10) * CONFIG_SYS_HZ; + delay = dectoul(argv[1], NULL) * CONFIG_SYS_HZ; frpart = strchr(argv[1], '.'); diff --git a/cmd/smccc.c b/cmd/smccc.c index 0ff9a080217..f5271817729 100644 --- a/cmd/smccc.c +++ b/cmd/smccc.c @@ -28,15 +28,15 @@ static int do_call(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 2) return CMD_RET_USAGE; - fid = simple_strtoul(argv[1], NULL, 16); + fid = hextoul(argv[1], NULL); - a1 = argc > 2 ? simple_strtoul(argv[2], NULL, 16) : 0; - a2 = argc > 3 ? simple_strtoul(argv[3], NULL, 16) : 0; - a3 = argc > 4 ? simple_strtoul(argv[4], NULL, 16) : 0; - a4 = argc > 5 ? simple_strtoul(argv[5], NULL, 16) : 0; - a5 = argc > 6 ? simple_strtoul(argv[6], NULL, 16) : 0; - a6 = argc > 7 ? simple_strtoul(argv[7], NULL, 16) : 0; - a7 = argc > 8 ? simple_strtoul(argv[8], NULL, 16) : 0; + a1 = argc > 2 ? hextoul(argv[2], NULL) : 0; + a2 = argc > 3 ? hextoul(argv[3], NULL) : 0; + a3 = argc > 4 ? hextoul(argv[4], NULL) : 0; + a4 = argc > 5 ? hextoul(argv[5], NULL) : 0; + a5 = argc > 6 ? hextoul(argv[6], NULL) : 0; + a6 = argc > 7 ? hextoul(argv[7], NULL) : 0; + a7 = argc > 8 ? hextoul(argv[8], NULL) : 0; if (!strcmp(argv[0], "smc")) arm_smccc_smc(fid, a1, a2, a3, a4, a5, a6, a7, &res); diff --git a/cmd/sound.c b/cmd/sound.c index fdcde365339..f82f2aa6708 100644 --- a/cmd/sound.c +++ b/cmd/sound.c @@ -41,9 +41,9 @@ static int do_play(struct cmd_tbl *cmdtp, int flag, int argc, int freq = 400; if (argc > 1) - msec = simple_strtoul(argv[1], NULL, 10); + msec = dectoul(argv[1], NULL); if (argc > 2) - freq = simple_strtoul(argv[2], NULL, 10); + freq = dectoul(argv[2], NULL); ret = uclass_first_device_err(UCLASS_SOUND, &dev); if (!ret) diff --git a/cmd/source.c b/cmd/source.c index 71f71528ad2..81e015b64ef 100644 --- a/cmd/source.c +++ b/cmd/source.c @@ -179,7 +179,7 @@ static int do_source(struct cmd_tbl *cmdtp, int flag, int argc, fit_uname, addr); #endif } else { - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); debug("* source: cmdline image address = 0x%08lx\n", addr); } diff --git a/cmd/spi.c b/cmd/spi.c index 4aea1914129..bdbdbacecd9 100644 --- a/cmd/spi.c +++ b/cmd/spi.c @@ -114,20 +114,20 @@ int do_spi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { if (argc >= 2) { mode = CONFIG_DEFAULT_SPI_MODE; - bus = simple_strtoul(argv[1], &cp, 10); + bus = dectoul(argv[1], &cp); if (*cp == ':') { - cs = simple_strtoul(cp+1, &cp, 10); + cs = dectoul(cp + 1, &cp); } else { cs = bus; bus = CONFIG_DEFAULT_SPI_BUS; } if (*cp == '.') - mode = simple_strtoul(cp+1, &cp, 10); + mode = dectoul(cp + 1, &cp); if (*cp == '@') - freq = simple_strtoul(cp+1, &cp, 10); + freq = dectoul(cp + 1, &cp); } if (argc >= 3) - bitlen = simple_strtoul(argv[2], NULL, 10); + bitlen = dectoul(argv[2], NULL); if (argc >= 4) { cp = argv[3]; for(j = 0; *cp; j++, cp++) { diff --git a/cmd/strings.c b/cmd/strings.c index 85fdc34f08f..bf348afce81 100644 --- a/cmd/strings.c +++ b/cmd/strings.c @@ -18,9 +18,9 @@ int do_strings(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_USAGE; if ((flag & CMD_FLAG_REPEAT) == 0) { - start_addr = (char *)simple_strtoul(argv[1], NULL, 16); + start_addr = (char *)hextoul(argv[1], NULL); if (argc > 2) - last_addr = (char *)simple_strtoul(argv[2], NULL, 16); + last_addr = (char *)hextoul(argv[2], NULL); else last_addr = (char *)-1; } diff --git a/cmd/ti/ddr3.c b/cmd/ti/ddr3.c index 6b43a738683..be937a7531d 100644 --- a/cmd/ti/ddr3.c +++ b/cmd/ti/ddr3.c @@ -290,8 +290,8 @@ static int do_ddr_test(struct cmd_tbl *cmdtp, return CMD_RET_FAILURE; } - start_addr = simple_strtoul(argv[2], NULL, 16); - ecc_err = simple_strtoul(argv[3], NULL, 16); + start_addr = hextoul(argv[2], NULL); + ecc_err = hextoul(argv[3], NULL); if (!is_addr_valid(start_addr)) { puts("Invalid address. Please enter ECC supported address!\n"); @@ -306,8 +306,8 @@ static int do_ddr_test(struct cmd_tbl *cmdtp, ((argc == 5) && (strncmp(argv[1], "compare", 8) == 0)))) return cmd_usage(cmdtp); - start_addr = simple_strtoul(argv[2], NULL, 16); - end_addr = simple_strtoul(argv[3], NULL, 16); + start_addr = hextoul(argv[2], NULL); + end_addr = hextoul(argv[3], NULL); if ((start_addr < CONFIG_SYS_SDRAM_BASE) || (start_addr > (CONFIG_SYS_SDRAM_BASE + @@ -321,7 +321,7 @@ static int do_ddr_test(struct cmd_tbl *cmdtp, puts("Please wait ...\n"); if (argc == 5) { - size = simple_strtoul(argv[4], NULL, 16); + size = hextoul(argv[4], NULL); ddr_memory_compare(start_addr, end_addr, size); } else { ddr_memory_test(start_addr, end_addr, 0); diff --git a/cmd/ti/pd.c b/cmd/ti/pd.c index 9e820b84ca3..008668fd903 100644 --- a/cmd/ti/pd.c +++ b/cmd/ti/pd.c @@ -119,8 +119,8 @@ static int do_pd_endis(int argc, char *const argv[], u8 state) if (!data) return CMD_RET_FAILURE; - psc_id = simple_strtoul(argv[1], NULL, 10); - lpsc_id = simple_strtoul(argv[2], NULL, 10); + psc_id = dectoul(argv[1], NULL); + lpsc_id = dectoul(argv[2], NULL); for (i = 0; i < data->num_lpsc; i++) { lpsc = &data->lpsc[i]; diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c index 5099cbdd95e..2b643f9587c 100644 --- a/cmd/tlv_eeprom.c +++ b/cmd/tlv_eeprom.c @@ -751,7 +751,7 @@ static int set_mac(char *buf, const char *string) /* Convert string to binary */ for (i = 0, p = (char *)string; i < 6; i++) { - buf[i] = p ? simple_strtoul(p, &end, 16) : 0; + buf[i] = p ? hextoul(p, &end) : 0; if (p) p = (*end) ? end + 1 : end; } diff --git a/cmd/tpm-common.c b/cmd/tpm-common.c index 88c9e08e318..1d5442c06f6 100644 --- a/cmd/tpm-common.c +++ b/cmd/tpm-common.c @@ -68,7 +68,7 @@ void *parse_byte_string(char *bytes, u8 *data, size_t *count_ptr) for (i = 0; i < length; i += 2) { byte[0] = bytes[i]; byte[1] = bytes[i + 1]; - data[i / 2] = (u8)simple_strtoul(byte, NULL, 16); + data[i / 2] = (u8)hextoul(byte, NULL); } if (count_ptr) @@ -302,7 +302,7 @@ int do_tpm_device(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) int rc; if (argc == 2) { - num = simple_strtoul(argv[1], NULL, 10); + num = dectoul(argv[1], NULL); rc = tpm_set_device(num); if (rc) diff --git a/cmd/trace.c b/cmd/trace.c index 4ce47c76276..2e3ee1d3ba2 100644 --- a/cmd/trace.c +++ b/cmd/trace.c @@ -21,8 +21,8 @@ static int get_args(int argc, char *const argv[], char **buff, *buff_size); *buff_ptr = env_get_ulong("profoffset", 16, 0); } else { - *buff_size = simple_strtoul(argv[3], NULL, 16); - *buff = map_sysmem(simple_strtoul(argv[2], NULL, 16), + *buff_size = hextoul(argv[3], NULL); + *buff = map_sysmem(hextoul(argv[2], NULL), *buff_size); *buff_ptr = 0; }; diff --git a/cmd/tsi148.c b/cmd/tsi148.c index 2eae14f87f1..0d849d9979e 100644 --- a/cmd/tsi148.c +++ b/cmd/tsi148.c @@ -392,15 +392,15 @@ int do_tsi148(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc > 1) cmd = argv[1][0]; if (argc > 2) - addr1 = simple_strtoul(argv[2], NULL, 16); + addr1 = hextoul(argv[2], NULL); if (argc > 3) - addr2 = simple_strtoul(argv[3], NULL, 16); + addr2 = hextoul(argv[3], NULL); if (argc > 4) - size = simple_strtoul(argv[4], NULL, 16); + size = hextoul(argv[4], NULL); if (argc > 5) - vam = simple_strtoul(argv[5], NULL, 16); + vam = hextoul(argv[5], NULL); if (argc > 6) - vdw = simple_strtoul(argv[6], NULL, 16); + vdw = hextoul(argv[6], NULL); switch (cmd) { case 'c': diff --git a/cmd/ubi.c b/cmd/ubi.c index cb14e3e1e79..fe8ac58bac0 100644 --- a/cmd/ubi.c +++ b/cmd/ubi.c @@ -661,8 +661,8 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 1; } - addr = simple_strtoul(argv[2], NULL, 16); - size = simple_strtoul(argv[4], NULL, 16); + addr = hextoul(argv[2], NULL); + size = hextoul(argv[4], NULL); if (strlen(argv[1]) == 10 && strncmp(argv[1] + 5, ".part", 5) == 0) { @@ -671,7 +671,7 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) (void *)addr, size); } else { size_t full_size; - full_size = simple_strtoul(argv[5], NULL, 16); + full_size = hextoul(argv[5], NULL); ret = ubi_volume_begin_write(argv[3], (void *)addr, size, full_size); } @@ -691,13 +691,13 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) /* E.g., read volume size */ if (argc == 5) { - size = simple_strtoul(argv[4], NULL, 16); + size = hextoul(argv[4], NULL); argc--; } /* E.g., read volume */ if (argc == 4) { - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); argc--; } diff --git a/cmd/ubifs.c b/cmd/ubifs.c index a26b653d61e..7a620c5e21d 100644 --- a/cmd/ubifs.c +++ b/cmd/ubifs.c @@ -122,14 +122,14 @@ static int do_ubifs_load(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 3) return CMD_RET_USAGE; - addr = simple_strtoul(argv[1], &endp, 16); + addr = hextoul(argv[1], &endp); if (endp == argv[1]) return CMD_RET_USAGE; filename = argv[2]; if (argc == 4) { - size = simple_strtoul(argv[3], &endp, 16); + size = hextoul(argv[3], &endp); if (endp == argv[3]) return CMD_RET_USAGE; } diff --git a/cmd/ufs.c b/cmd/ufs.c index 858cd49b597..d4a1e66c1bd 100644 --- a/cmd/ufs.c +++ b/cmd/ufs.c @@ -16,7 +16,7 @@ static int do_ufs(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc >= 2) { if (!strcmp(argv[1], "init")) { if (argc == 3) { - dev = simple_strtoul(argv[2], NULL, 10); + dev = dectoul(argv[2], NULL); ret = ufs_probe_dev(dev); if (ret) return CMD_RET_FAILURE; diff --git a/cmd/universe.c b/cmd/universe.c index 5ff47dde4fb..fb3a32d4d5a 100644 --- a/cmd/universe.c +++ b/cmd/universe.c @@ -307,17 +307,17 @@ int do_universe(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc > 1) cmd = argv[1][0]; if (argc > 2) - addr1 = simple_strtoul(argv[2], NULL, 16); + addr1 = hextoul(argv[2], NULL); if (argc > 3) - addr2 = simple_strtoul(argv[3], NULL, 16); + addr2 = hextoul(argv[3], NULL); if (argc > 4) - size = simple_strtoul(argv[4], NULL, 16); + size = hextoul(argv[4], NULL); if (argc > 5) - vam = simple_strtoul(argv[5], NULL, 16); + vam = hextoul(argv[5], NULL); if (argc > 6) - pms = simple_strtoul(argv[6], NULL, 16); + pms = hextoul(argv[6], NULL); if (argc > 7) - vdw = simple_strtoul(argv[7], NULL, 16); + vdw = hextoul(argv[7], NULL); switch (cmd) { case 'i': /* init */ diff --git a/cmd/unlz4.c b/cmd/unlz4.c index 4ae7f34d36e..323ab467173 100644 --- a/cmd/unlz4.c +++ b/cmd/unlz4.c @@ -18,9 +18,9 @@ static int do_unlz4(struct cmd_tbl *cmdtp, int flag, int argc, switch (argc) { case 4: - src = simple_strtoul(argv[1], NULL, 16); - dst = simple_strtoul(argv[2], NULL, 16); - dst_len = simple_strtoul(argv[3], NULL, 16); + src = hextoul(argv[1], NULL); + dst = hextoul(argv[2], NULL); + dst_len = hextoul(argv[3], NULL); break; default: return CMD_RET_USAGE; diff --git a/cmd/unzip.c b/cmd/unzip.c index 9b28328a1d7..3d1f5f3ac10 100644 --- a/cmd/unzip.c +++ b/cmd/unzip.c @@ -18,11 +18,11 @@ static int do_unzip(struct cmd_tbl *cmdtp, int flag, int argc, switch (argc) { case 4: - dst_len = simple_strtoul(argv[3], NULL, 16); + dst_len = hextoul(argv[3], NULL); /* fall through */ case 3: - src = simple_strtoul(argv[1], NULL, 16); - dst = simple_strtoul(argv[2], NULL, 16); + src = hextoul(argv[1], NULL); + dst = hextoul(argv[2], NULL); break; default: return CMD_RET_USAGE; @@ -60,11 +60,11 @@ static int do_gzwrite(struct cmd_tbl *cmdtp, int flag, if (ret < 0) return CMD_RET_FAILURE; - addr = (unsigned char *)simple_strtoul(argv[3], NULL, 16); - length = simple_strtoul(argv[4], NULL, 16); + addr = (unsigned char *)hextoul(argv[3], NULL); + length = hextoul(argv[4], NULL); if (5 < argc) { - writebuf = simple_strtoul(argv[5], NULL, 16); + writebuf = hextoul(argv[5], NULL); if (6 < argc) { startoffs = simple_strtoull(argv[6], NULL, 16); if (7 < argc) diff --git a/cmd/usb.c b/cmd/usb.c index b9ec29a8457..3d873765250 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -690,7 +690,7 @@ static int do_usb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) * have multiple controllers and the device numbering * starts at 1 on each bus. */ - i = simple_strtoul(argv[2], NULL, 10); + i = dectoul(argv[2], NULL); printf("config for device %d\n", i); udev = usb_find_device(i); if (udev == NULL) { @@ -706,13 +706,13 @@ static int do_usb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (strncmp(argv[1], "test", 4) == 0) { if (argc < 5) return CMD_RET_USAGE; - i = simple_strtoul(argv[2], NULL, 10); + i = dectoul(argv[2], NULL); udev = usb_find_device(i); if (udev == NULL) { printf("Device %d does not exist.\n", i); return 1; } - i = simple_strtoul(argv[3], NULL, 10); + i = dectoul(argv[3], NULL); return usb_test(udev, i, argv[4]); } #ifdef CONFIG_USB_STORAGE @@ -51,16 +51,16 @@ static int w1_read(int argc, char *const argv[]) u8 buf[512]; if (argc > 2) - bus_n = simple_strtoul(argv[2], NULL, 10); + bus_n = dectoul(argv[2], NULL); if (argc > 3) - dev_n = simple_strtoul(argv[3], NULL, 10); + dev_n = dectoul(argv[3], NULL); if (argc > 4) - offset = simple_strtoul(argv[4], NULL, 10); + offset = dectoul(argv[4], NULL); if (argc > 5) - len = simple_strtoul(argv[5], NULL, 10); + len = dectoul(argv[5], NULL); if (len > 512) { printf("len needs to be <= 512\n"); diff --git a/cmd/x86/mtrr.c b/cmd/x86/mtrr.c index fc61a549b02..b213a942fde 100644 --- a/cmd/x86/mtrr.c +++ b/cmd/x86/mtrr.c @@ -78,8 +78,8 @@ static int do_mtrr_set(int cpu_select, uint reg, int argc, char *const argv[]) printf("Invalid type name %s\n", typename); return CMD_RET_USAGE; } - start = simple_strtoul(argv[1], NULL, 16); - size = simple_strtoul(argv[2], NULL, 16); + start = hextoul(argv[1], NULL); + size = hextoul(argv[2], NULL); base = start | type; valid = native_read_msr(MTRR_PHYS_MASK_MSR(reg)) & MTRR_PHYS_MASK_VALID; @@ -126,7 +126,7 @@ static int do_mtrr(struct cmd_tbl *cmdtp, int flag, int argc, if (cmd != 'l') { if (argc < 2) return CMD_RET_USAGE; - reg = simple_strtoul(argv[1], NULL, 16); + reg = hextoul(argv[1], NULL); if (reg >= reg_count) { printf("Invalid register number\n"); return CMD_RET_USAGE; diff --git a/cmd/ximg.c b/cmd/ximg.c index ef738ebfa2f..65ba41320a0 100644 --- a/cmd/ximg.c +++ b/cmd/ximg.c @@ -59,16 +59,16 @@ do_imgextract(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) verify = env_get_yesno("verify"); if (argc > 1) { - addr = simple_strtoul(argv[1], NULL, 16); + addr = hextoul(argv[1], NULL); } if (argc > 2) { - part = simple_strtoul(argv[2], NULL, 16); + part = hextoul(argv[2], NULL); #if defined(CONFIG_FIT) uname = argv[2]; #endif } if (argc > 3) { - dest = simple_strtoul(argv[3], NULL, 16); + dest = hextoul(argv[3], NULL); } switch (genimg_get_format((void *)addr)) { diff --git a/cmd/yaffs2.c b/cmd/yaffs2.c index f29ebcc026e..27fbd1be8f7 100644 --- a/cmd/yaffs2.c +++ b/cmd/yaffs2.c @@ -165,8 +165,8 @@ int do_ywr(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } filename = argv[1]; - value = simple_strtoul(argv[2], NULL, 16); - numValues = simple_strtoul(argv[3], NULL, 16); + value = hextoul(argv[2], NULL); + numValues = hextoul(argv[3], NULL); printf("Writing value (%lx) %lx times to %s... ", value, numValues, filename); @@ -188,7 +188,7 @@ int do_yrdm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } filename = argv[1]; - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); cmd_yaffs_mread_file(filename, (char *)addr); @@ -207,8 +207,8 @@ int do_ywrm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) } filename = argv[1]; - addr = simple_strtoul(argv[2], NULL, 16); - size = simple_strtoul(argv[3], NULL, 16); + addr = hextoul(argv[2], NULL); + size = hextoul(argv[3], NULL); cmd_yaffs_mwrite_file(filename, (char *)addr, size); diff --git a/cmd/zfs.c b/cmd/zfs.c index e429ac88d73..6ef1b56ab10 100644 --- a/cmd/zfs.c +++ b/cmd/zfs.c @@ -50,13 +50,13 @@ static int do_zfs_load(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; count = 0; - addr = simple_strtoul(argv[3], NULL, 16); + addr = hextoul(argv[3], NULL); filename = env_get("bootfile"); switch (argc) { case 3: addr_str = env_get("loadaddr"); if (addr_str != NULL) - addr = simple_strtoul(addr_str, NULL, 16); + addr = hextoul(addr_str, NULL); else addr = CONFIG_SYS_LOAD_ADDR; @@ -68,7 +68,7 @@ static int do_zfs_load(struct cmd_tbl *cmdtp, int flag, int argc, break; case 6: filename = argv[4]; - count = simple_strtoul(argv[5], NULL, 16); + count = hextoul(argv[5], NULL); break; default: diff --git a/cmd/zip.c b/cmd/zip.c index 8ad37684647..08afd62b973 100644 --- a/cmd/zip.c +++ b/cmd/zip.c @@ -16,12 +16,12 @@ static int do_zip(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) switch (argc) { case 5: - dst_len = simple_strtoul(argv[4], NULL, 16); + dst_len = hextoul(argv[4], NULL); /* fall through */ case 4: - src = simple_strtoul(argv[1], NULL, 16); - src_len = simple_strtoul(argv[2], NULL, 16); - dst = simple_strtoul(argv[3], NULL, 16); + src = hextoul(argv[1], NULL); + src_len = hextoul(argv[2], NULL); + dst = hextoul(argv[3], NULL); break; default: return cmd_usage(cmdtp); diff --git a/common/bedbug.c b/common/bedbug.c index 18a35ca23ef..c76fa4898c8 100644 --- a/common/bedbug.c +++ b/common/bedbug.c @@ -1005,9 +1005,9 @@ long read_number (char *txt) } if (txt[0] == '0' && (txt[1] == 'x' || txt[1] == 'X')) /* hex */ - val = simple_strtoul (&txt[2], NULL, 16); + val = hextoul(&txt[2], NULL); else /* decimal */ - val = simple_strtoul (txt, NULL, 10); + val = dectoul(txt, NULL); if (is_neg) val = -val; diff --git a/common/bootm_os.c b/common/bootm_os.c index 0b6325db660..d635037064a 100644 --- a/common/bootm_os.c +++ b/common/bootm_os.c @@ -238,7 +238,7 @@ static int do_bootm_plan9(int flag, int argc, char *const argv[], /* See README.plan9 */ s = env_get("confaddr"); if (s != NULL) { - char *confaddr = (char *)simple_strtoul(s, NULL, 16); + char *confaddr = (char *)hextoul(s, NULL); if (argc > 0) { copy_args(confaddr, argc, argv, '\n'); @@ -360,8 +360,7 @@ int do_bootm_vxworks(int flag, int argc, char *const argv[], /* find f=0xnumber flag */ if ((bootargs[pos] == '=') && (pos >= 1) && (bootargs[pos - 1] == 'f')) { - vxflags = simple_strtoul(&bootargs[pos + 1], - NULL, 16); + vxflags = hextoul(&bootargs[pos + 1], NULL); if (vxflags & VXWORKS_SYSFLG_STD_DTB) std_dtb = true; } diff --git a/common/fdt_support.c b/common/fdt_support.c index 240f1e57d13..4341d84bd5e 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -579,7 +579,7 @@ void fdt_fixup_ethernet(void *fdt) for (j = 0; j < 6; j++) { mac_addr[j] = tmp ? - simple_strtoul(tmp, &end, 16) : 0; + hextoul(tmp, &end) : 0; if (tmp) tmp = (*end) ? end + 1 : end; } diff --git a/common/hash.c b/common/hash.c index 90cf46bcba5..dca23635abe 100644 --- a/common/hash.c +++ b/common/hash.c @@ -396,8 +396,8 @@ int hash_parse_string(const char *algo_name, const char *str, uint8_t *result) for (i = 0; i < algo->digest_size; i++) { char chr[3]; - strncpy(chr, &str[i * 2], 2); - result[i] = simple_strtoul(chr, NULL, 16); + strlcpy(chr, &str[i * 2], 3); + result[i] = hextoul(chr, NULL); } return 0; @@ -470,7 +470,7 @@ static void store_result(struct hash_algo *algo, const uint8_t *sum, ulong addr; void *buf; - addr = simple_strtoul(dest, NULL, 16); + addr = hextoul(dest, NULL); buf = map_sysmem(addr, algo->digest_size); memcpy(buf, sum, algo->digest_size); unmap_sysmem(buf); @@ -510,7 +510,7 @@ static int parse_verify_sum(struct hash_algo *algo, char *verify_str, ulong addr; void *buf; - addr = simple_strtoul(verify_str, NULL, 16); + addr = hextoul(verify_str, NULL); buf = map_sysmem(addr, algo->digest_size); memcpy(vsum, buf, algo->digest_size); } else { @@ -555,8 +555,8 @@ int hash_command(const char *algo_name, int flags, struct cmd_tbl *cmdtp, if ((argc < 2) || ((flags & HASH_FLAG_VERIFY) && (argc < 3))) return CMD_RET_USAGE; - addr = simple_strtoul(*argv++, NULL, 16); - len = simple_strtoul(*argv++, NULL, 16); + addr = hextoul(*argv++, NULL); + len = hextoul(*argv++, NULL); if (multi_hash()) { struct hash_algo *algo; @@ -628,7 +628,7 @@ int hash_command(const char *algo_name, int flags, struct cmd_tbl *cmdtp, addr, addr + len - 1, crc); if (argc >= 3) { - ptr = (ulong *)simple_strtoul(argv[0], NULL, 16); + ptr = (ulong *)hextoul(argv[0], NULL); *ptr = crc; } } diff --git a/common/image-fdt.c b/common/image-fdt.c index 06dce92a28a..9441e63a3d4 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -186,7 +186,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size) /* If fdt_high is set use it to select the relocation address */ fdt_high = env_get("fdt_high"); if (fdt_high) { - void *desired_addr = (void *)simple_strtoul(fdt_high, NULL, 16); + void *desired_addr = (void *)hextoul(fdt_high, NULL); if (((ulong) desired_addr) == ~0UL) { /* All ones means use fdt in place */ @@ -297,7 +297,7 @@ int boot_get_fdt(int flag, int argc, char *const argv[], uint8_t arch, *of_size = 0; img_addr = (argc == 0) ? image_load_addr : - simple_strtoul(argv[0], NULL, 16); + hextoul(argv[0], NULL); buf = map_sysmem(img_addr, 0); if (argc > 2) @@ -329,7 +329,7 @@ int boot_get_fdt(int flag, int argc, char *const argv[], uint8_t arch, } else #endif { - fdt_addr = simple_strtoul(select, NULL, 16); + fdt_addr = hextoul(select, NULL); debug("* fdt: cmdline image address = 0x%08lx\n", fdt_addr); } diff --git a/common/image-fit.c b/common/image-fit.c index d6b2c3c7eca..aff4670be35 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -53,7 +53,7 @@ static int fit_parse_spec(const char *spec, char sepc, ulong addr_curr, sep = strchr(spec, sepc); if (sep) { if (sep - spec > 0) - *addr = simple_strtoul(spec, NULL, 16); + *addr = hextoul(spec, NULL); *name = sep + 1; return 1; diff --git a/common/image.c b/common/image.c index 51854aae5dd..59c52a1f9ad 100644 --- a/common/image.c +++ b/common/image.c @@ -662,7 +662,7 @@ static int on_loadaddr(const char *name, const char *value, enum env_op op, switch (op) { case env_op_create: case env_op_overwrite: - image_load_addr = simple_strtoul(value, NULL, 16); + image_load_addr = hextoul(value, NULL); break; default: break; @@ -676,7 +676,7 @@ ulong env_get_bootm_low(void) { char *s = env_get("bootm_low"); if (s) { - ulong tmp = simple_strtoul(s, NULL, 16); + ulong tmp = hextoul(s, NULL); return tmp; } @@ -1060,7 +1060,7 @@ ulong genimg_get_kernel_addr_fit(char * const img_addr, *fit_uname_kernel, kernel_addr); #endif } else { - kernel_addr = simple_strtoul(img_addr, NULL, 16); + kernel_addr = hextoul(img_addr, NULL); debug("* kernel: cmdline image address = 0x%08lx\n", kernel_addr); } @@ -1227,7 +1227,7 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images, } else #endif { - rd_addr = simple_strtoul(select, NULL, 16); + rd_addr = hextoul(select, NULL); debug("* ramdisk: cmdline image address = " "0x%08lx\n", rd_addr); @@ -1301,7 +1301,7 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images, if (select) end = strchr(select, ':'); if (end) { - rd_len = simple_strtoul(++end, NULL, 16); + rd_len = hextoul(++end, NULL); rd_data = rd_addr; } else #endif @@ -1379,7 +1379,7 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len, /* a value of "no" or a similar string will act like 0, * turning the "load high" feature off. This is intentional. */ - initrd_high = simple_strtoul(s, NULL, 16); + initrd_high = hextoul(s, NULL); if (initrd_high == ~0) initrd_copy_to_ram = 0; } else { diff --git a/common/kallsyms.c b/common/kallsyms.c index ce42a932bb8..13344e634b9 100644 --- a/common/kallsyms.c +++ b/common/kallsyms.c @@ -31,7 +31,7 @@ const char *symbol_lookup(unsigned long addr, unsigned long *caddr) *caddr = 0; while (*sym) { - sym_addr = simple_strtoul(sym, &esym, 16); + sym_addr = hextoul(sym, &esym); sym = esym; if (sym_addr > addr) break; diff --git a/common/lcd.c b/common/lcd.c index ab5614ad0e3..16a0a7cea8f 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -747,7 +747,7 @@ static int on_splashimage(const char *name, const char *value, enum env_op op, if (op == env_op_delete) return 0; - addr = simple_strtoul(value, NULL, 16); + addr = hextoul(value, NULL); /* See README.displaying-bmps */ aligned = (addr % 4 == 2); if (!aligned) { diff --git a/common/lcd_console.c b/common/lcd_console.c index 1a246c492ce..9c0ff4480eb 100644 --- a/common/lcd_console.c +++ b/common/lcd_console.c @@ -229,8 +229,8 @@ static int do_lcd_setcursor(struct cmd_tbl *cmdtp, int flag, int argc, if (argc != 3) return CMD_RET_USAGE; - col = simple_strtoul(argv[1], NULL, 10); - row = simple_strtoul(argv[2], NULL, 10); + col = dectoul(argv[1], NULL); + row = dectoul(argv[2], NULL); lcd_position_cursor(col, row); return 0; diff --git a/common/splash.c b/common/splash.c index 2b9313e03f1..de720df9f58 100644 --- a/common/splash.c +++ b/common/splash.c @@ -65,7 +65,7 @@ static int splash_video_logo_load(void) if (!splashimage) return -ENOENT; - bmp_load_addr = simple_strtoul(splashimage, 0, 16); + bmp_load_addr = hextoul(splashimage, 0); if (!bmp_load_addr) { printf("Error: bad 'splashimage' address\n"); return -EFAULT; @@ -162,7 +162,7 @@ int splash_display(void) if (!s) return -EINVAL; - addr = simple_strtoul(s, NULL, 16); + addr = hextoul(s, NULL); ret = splash_screen_prepare(); if (ret) return ret; diff --git a/common/splash_source.c b/common/splash_source.c index 3cf926d91a0..d05670f5ee8 100644 --- a/common/splash_source.c +++ b/common/splash_source.c @@ -414,7 +414,7 @@ int splash_source_load(struct splash_location *locations, uint size) if (env_splashimage_value == NULL) return -ENOENT; - bmp_load_addr = simple_strtoul(env_splashimage_value, 0, 16); + bmp_load_addr = hextoul(env_splashimage_value, 0); if (bmp_load_addr == 0) { printf("Error: bad splashimage address specified\n"); return -EFAULT; diff --git a/common/update.c b/common/update.c index f0848954e5d..f5c8684f1b2 100644 --- a/common/update.c +++ b/common/update.c @@ -272,7 +272,7 @@ int update_tftp(ulong addr, char *interface, char *devstring) /* get load address of downloaded update file */ env_addr = env_get("loadaddr"); if (env_addr) - addr = simple_strtoul(env_addr, NULL, 16); + addr = hextoul(env_addr, NULL); else addr = CONFIG_UPDATE_LOAD_ADDR; diff --git a/disk/part.c b/disk/part.c index 086da84b7f0..a6a8f7052bd 100644 --- a/disk/part.c +++ b/disk/part.c @@ -396,7 +396,7 @@ int blk_get_device_by_str(const char *ifname, const char *dev_hwpart_str, hwpart = 0; } - dev = simple_strtoul(dev_str, &ep, 16); + dev = hextoul(dev_str, &ep); if (*ep) { printf("** Bad device specification %s %s **\n", ifname, dev_str); @@ -405,7 +405,7 @@ int blk_get_device_by_str(const char *ifname, const char *dev_hwpart_str, } if (hwpart_str) { - hwpart = simple_strtoul(hwpart_str, &ep, 16); + hwpart = hextoul(hwpart_str, &ep); if (*ep) { printf("** Bad HW partition specification %s %s **\n", ifname, hwpart_str); @@ -534,7 +534,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str, part = PART_AUTO; } else { /* Something specified -> use exactly that */ - part = (int)simple_strtoul(part_str, &ep, 16); + part = (int)hextoul(part_str, &ep); /* * Less than whole string converted, * or request for whole device, but caller requires partition. diff --git a/disk/part_amiga.c b/disk/part_amiga.c index 7eea60b564d..ac7ada54781 100644 --- a/disk/part_amiga.c +++ b/disk/part_amiga.c @@ -135,7 +135,7 @@ struct rigid_disk_block *get_rdisk(struct blk_desc *dev_desc) s = env_get("amiga_scanlimit"); if (s) - limit = simple_strtoul(s, NULL, 10); + limit = dectoul(s, NULL); else limit = AMIGA_BLOCK_LIMIT; @@ -175,7 +175,7 @@ struct bootcode_block *get_bootcode(struct blk_desc *dev_desc) s = env_get("amiga_scanlimit"); if (s) - limit = simple_strtoul(s, NULL, 10); + limit = dectoul(s, NULL); else limit = AMIGA_BLOCK_LIMIT; diff --git a/doc/usage/cmdline.rst b/doc/usage/cmdline.rst new file mode 100644 index 00000000000..88f18c974c8 --- /dev/null +++ b/doc/usage/cmdline.rst @@ -0,0 +1,93 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +Command-line Parsing +==================== + +The command line is available in U-Boot proper, enabled by CONFIG_CMDLINE which +is on by default. It is not enabled in SPL. + +There are two different command-line parsers available with U-Boot: +the old "simple" one, and the much more powerful "hush" shell: + +Simple command-line parser +-------------------------- + +This takes very little code space and offers only basic features: + +- supports environment variables (through setenv / saveenv commands) +- several commands on one line, separated by ';' +- variable substitution using "... ${name} ..." syntax +- special characters ('$', ';') can be escaped by prefixing with '\', + for example:: + + setenv bootcmd bootm \${address} + +- You can also escape text by enclosing in single apostrophes, for example:: + + setenv addip 'setenv bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname::off' + +Hush shell +---------- + +This is similar to Bourne shell, with control structures like: + +- `if`... `then` ... `else`... `fi` +- `for`... `do` ... `done` +- `while` ... `do` ... `done` +- `until` ... `do` ... `done` + +Hush supports environment ("global") variables (through setenv / saveenv +commands) and local shell variables (through standard shell syntax +`name=value`); only environment variables can be used with the "run" command + +The Hush shell is enabled with `CONFIG_HUSH_PARSER`. + +General rules +------------- + +#. If a command line (or an environment variable executed by a "run" + command) contains several commands separated by semicolon, and + one of these commands fails, then the remaining commands will be + executed anyway. + +#. If you execute several variables with one call to run (i. e. + calling run with a list of variables as arguments), any failing + command will cause "run" to terminate, i. e. the remaining + variables are not executed. + +Representing numbers +-------------------- + +Most U-Boot commands use hexadecimal (hex) as the default base, for convenient +use of addresses, for example:: + + => md 1000 6 + 00001000: 2c786f62 00697073 03000000 0c000000 box,spi......... + 00001010: 67020000 00000000 ...g.... + +There is no need to add a `0x` prefix to the arguments and the output is shown +in hex also, without any prefixes. This helps to avoid clutter. + +Some commands use decimal where it is more natural:: + + => i2c dev 0 + Setting bus to 0 + => i2c speed + Current bus speed=400000 + => i2c speed 100000 + Setting bus speed to 100000 Hz + +In some cases the default is decimal but it is possible to use octal if that is +useful:: + + pmic dev pmic@41 + dev: 1 @ pmic@41 + => pmic write 2 0177 + => pmic read 2 + 0x02: 0x00007f + +It is possible to use a `0x` prefix to use a hex value if that is more +convenient:: + + => i2c speed 0x30000 + Setting bus speed to 196608 Hz diff --git a/doc/usage/index.rst b/doc/usage/index.rst index 719b2c90b9d..356f2a56181 100644 --- a/doc/usage/index.rst +++ b/doc/usage/index.rst @@ -9,6 +9,7 @@ Use U-Boot fit netconsole partitions + cmdline Shell commands -------------- diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c index e63fa84ce4f..3dab5a5f633 100644 --- a/drivers/dfu/dfu_mmc.c +++ b/drivers/dfu/dfu_mmc.c @@ -348,7 +348,7 @@ int dfu_fill_entity_mmc(struct dfu_entity *dfu, char *devstr, char *s) const char *argv[3]; const char **parg = argv; - dfu->data.mmc.dev_num = simple_strtoul(devstr, NULL, 10); + dfu->data.mmc.dev_num = dectoul(devstr, NULL); for (; parg < argv + sizeof(argv) / sizeof(*argv); ++parg) { *parg = strsep(&s, " "); diff --git a/drivers/dfu/dfu_mtd.c b/drivers/dfu/dfu_mtd.c index 894b5708753..0b7f17761fd 100644 --- a/drivers/dfu/dfu_mtd.c +++ b/drivers/dfu/dfu_mtd.c @@ -268,9 +268,9 @@ int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr, char *s) st = strsep(&s, " "); if (!strcmp(st, "raw")) { dfu->layout = DFU_RAW_ADDR; - dfu->data.mtd.start = simple_strtoul(s, &s, 16); + dfu->data.mtd.start = hextoul(s, &s); s++; - dfu->data.mtd.size = simple_strtoul(s, &s, 16); + dfu->data.mtd.size = hextoul(s, &s); } else if ((!strcmp(st, "part")) || (!strcmp(st, "partubi"))) { char mtd_id[32]; struct mtd_device *mtd_dev; @@ -279,7 +279,7 @@ int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr, char *s) dfu->layout = DFU_RAW_ADDR; - part = simple_strtoul(s, &s, 10); + part = dectoul(s, &s); sprintf(mtd_id, "%s,%d", devstr, part - 1); printf("using id '%s'\n", mtd_id); diff --git a/drivers/dfu/dfu_nand.c b/drivers/dfu/dfu_nand.c index b8d24d203be..e53b35e42b8 100644 --- a/drivers/dfu/dfu_nand.c +++ b/drivers/dfu/dfu_nand.c @@ -204,9 +204,9 @@ int dfu_fill_entity_nand(struct dfu_entity *dfu, char *devstr, char *s) st = strsep(&s, " "); if (!strcmp(st, "raw")) { dfu->layout = DFU_RAW_ADDR; - dfu->data.nand.start = simple_strtoul(s, &s, 16); + dfu->data.nand.start = hextoul(s, &s); s++; - dfu->data.nand.size = simple_strtoul(s, &s, 16); + dfu->data.nand.size = hextoul(s, &s); } else if ((!strcmp(st, "part")) || (!strcmp(st, "partubi"))) { char mtd_id[32]; struct mtd_device *mtd_dev; @@ -215,9 +215,9 @@ int dfu_fill_entity_nand(struct dfu_entity *dfu, char *devstr, char *s) dfu->layout = DFU_RAW_ADDR; - dev = simple_strtoul(s, &s, 10); + dev = dectoul(s, &s); s++; - part = simple_strtoul(s, &s, 10); + part = dectoul(s, &s); sprintf(mtd_id, "%s%d,%d", "nand", dev, part - 1); debug("using id '%s'\n", mtd_id); diff --git a/drivers/dfu/dfu_ram.c b/drivers/dfu/dfu_ram.c index ab0ce9e6fa9..cc7e45ba335 100644 --- a/drivers/dfu/dfu_ram.c +++ b/drivers/dfu/dfu_ram.c @@ -74,8 +74,8 @@ int dfu_fill_entity_ram(struct dfu_entity *dfu, char *devstr, char *s) } dfu->layout = DFU_RAM_ADDR; - dfu->data.ram.start = simple_strtoul(argv[1], NULL, 16); - dfu->data.ram.size = simple_strtoul(argv[2], NULL, 16); + dfu->data.ram.start = hextoul(argv[1], NULL); + dfu->data.ram.size = hextoul(argv[2], NULL); dfu->write_medium = dfu_write_medium_ram; dfu->get_medium_size = dfu_get_medium_size_ram; diff --git a/drivers/dfu/dfu_sf.c b/drivers/dfu/dfu_sf.c index 8f8c4259772..7e64ab772f0 100644 --- a/drivers/dfu/dfu_sf.c +++ b/drivers/dfu/dfu_sf.c @@ -171,9 +171,9 @@ int dfu_fill_entity_sf(struct dfu_entity *dfu, char *devstr, char *s) st = strsep(&s, " "); if (!strcmp(st, "raw")) { dfu->layout = DFU_RAW_ADDR; - dfu->data.sf.start = simple_strtoul(s, &s, 16); + dfu->data.sf.start = hextoul(s, &s); s++; - dfu->data.sf.size = simple_strtoul(s, &s, 16); + dfu->data.sf.size = hextoul(s, &s); } else if (CONFIG_IS_ENABLED(DFU_SF_PART) && (!strcmp(st, "part") || !strcmp(st, "partubi"))) { char mtd_id[32]; @@ -184,9 +184,9 @@ int dfu_fill_entity_sf(struct dfu_entity *dfu, char *devstr, char *s) dfu->layout = DFU_RAW_ADDR; - dev = simple_strtoul(s, &s, 10); + dev = dectoul(s, &s); s++; - part = simple_strtoul(s, &s, 10); + part = dectoul(s, &s); sprintf(mtd_id, "%s%d,%d", "nor", dev, part - 1); printf("using id '%s'\n", mtd_id); diff --git a/drivers/dfu/dfu_virt.c b/drivers/dfu/dfu_virt.c index 62605bcde50..80c99cb06e3 100644 --- a/drivers/dfu/dfu_virt.c +++ b/drivers/dfu/dfu_virt.c @@ -38,7 +38,7 @@ int dfu_fill_entity_virt(struct dfu_entity *dfu, char *devstr, char *s) dfu->dev_type = DFU_DEV_VIRT; dfu->layout = DFU_RAW_ADDR; - dfu->data.virt.dev_num = simple_strtoul(devstr, NULL, 10); + dfu->data.virt.dev_num = dectoul(devstr, NULL); dfu->write_medium = dfu_write_medium_virt; dfu->get_medium_size = dfu_get_medium_size_virt; diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c index 3a5db5b08fc..98eccc34556 100644 --- a/drivers/fastboot/fb_command.c +++ b/drivers/fastboot/fb_command.c @@ -208,7 +208,7 @@ static void download(char *cmd_parameter, char *response) return; } fastboot_bytes_received = 0; - fastboot_bytes_expected = simple_strtoul(cmd_parameter, &tmp, 16); + fastboot_bytes_expected = hextoul(cmd_parameter, &tmp); if (fastboot_bytes_expected == 0) { fastboot_fail("Expected nonzero image size", response); return; diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c index 131099cc176..8c77777dbe3 100644 --- a/drivers/gpio/gpio-uclass.c +++ b/drivers/gpio/gpio-uclass.c @@ -122,7 +122,7 @@ int dm_gpio_lookup_name(const char *name, struct gpio_desc *desc) int numeric; int ret; - numeric = isdigit(*name) ? simple_strtoul(name, NULL, 10) : -1; + numeric = isdigit(*name) ? dectoul(name, NULL) : -1; for (ret = uclass_first_device(UCLASS_GPIO, &dev); dev; ret = uclass_next_device(&dev)) { diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c index 5775a22abd4..7b9d88a8a75 100644 --- a/drivers/gpio/mxs_gpio.c +++ b/drivers/gpio/mxs_gpio.c @@ -123,12 +123,12 @@ int name_to_gpio(const char *name) unsigned bank, pin; char *end; - bank = simple_strtoul(name, &end, 10); + bank = dectoul(name, &end); if (!*end || *end != ':') return bank; - pin = simple_strtoul(end + 1, NULL, 10); + pin = dectoul(end + 1, NULL); return (bank << MXS_PAD_BANK_SHIFT) | (pin << MXS_PAD_PIN_SHIFT); } diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c index 4ab8cee2d18..2fd2996798c 100644 --- a/drivers/gpio/pca953x.c +++ b/drivers/gpio/pca953x.c @@ -221,11 +221,11 @@ static int do_pca953x(struct cmd_tbl *cmdtp, int flag, int argc, /* arg2 used as chip number or pin number */ if (argc > 2) - ul_arg2 = simple_strtoul(argv[2], NULL, 16); + ul_arg2 = hextoul(argv[2], NULL); /* arg3 used as pin or invert value */ if (argc > 3) - ul_arg3 = simple_strtoul(argv[3], NULL, 16) & 0x1; + ul_arg3 = hextoul(argv[3], NULL) & 0x1; switch ((long)c->cmd) { case PCA953X_CMD_INFO: diff --git a/drivers/gpio/tca642x.c b/drivers/gpio/tca642x.c index 7007c7a0027..7f67f96b0ec 100644 --- a/drivers/gpio/tca642x.c +++ b/drivers/gpio/tca642x.c @@ -262,11 +262,11 @@ static int do_tca642x(struct cmd_tbl *cmdtp, int flag, int argc, /* arg2 used as chip number or pin number */ if (argc > 2) - ul_arg2 = simple_strtoul(argv[2], NULL, 10); + ul_arg2 = dectoul(argv[2], NULL); /* arg3 used as pin or invert value */ if (argc > 3) - ul_arg3 = simple_strtoul(argv[3], NULL, 10) & 0x1; + ul_arg3 = dectoul(argv[3], NULL) & 0x1; switch ((int)c->cmd) { case TCA642X_CMD_INFO: diff --git a/drivers/misc/ds4510.c b/drivers/misc/ds4510.c index a2a52915654..9340596f2c6 100644 --- a/drivers/misc/ds4510.c +++ b/drivers/misc/ds4510.c @@ -271,11 +271,11 @@ int do_ds4510(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) /* arg2 used as chip addr and pin number */ if (argc > 2) - ul_arg2 = simple_strtoul(argv[2], NULL, 16); + ul_arg2 = hextoul(argv[2], NULL); /* arg3 used as output/pullup value */ if (argc > 3) - ul_arg3 = simple_strtoul(argv[3], NULL, 16); + ul_arg3 = hextoul(argv[3], NULL); switch ((int)c->cmd) { case DS4510_CMD_DEVICE: @@ -337,9 +337,9 @@ int do_ds4510(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) else return cmd_usage(cmdtp); - addr = simple_strtoul(argv[3], NULL, 16); - off += simple_strtoul(argv[4], NULL, 16); - cnt = simple_strtoul(argv[5], NULL, 16); + addr = hextoul(argv[3], NULL); + off += hextoul(argv[4], NULL); + cnt = hextoul(argv[5], NULL); if ((off + cnt) > end) { printf("ERROR: invalid len\n"); diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 60613b7df07..5bdcede8f14 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -5796,7 +5796,7 @@ static int do_e1000(struct cmd_tbl *cmdtp, int flag, int argc, } /* Make sure we can find the requested e1000 card */ - cardnum = simple_strtoul(argv[1], NULL, 10); + cardnum = dectoul(argv[1], NULL); #ifdef CONFIG_DM_ETH e1000_name(name, cardnum); ret = uclass_get_device_by_name(UCLASS_ETH, name, &dev); diff --git a/drivers/net/e1000_spi.c b/drivers/net/e1000_spi.c index 4fcc65d9782..69adf282c73 100644 --- a/drivers/net/e1000_spi.c +++ b/drivers/net/e1000_spi.c @@ -399,7 +399,7 @@ static int do_e1000_spi_dump(struct cmd_tbl *cmdtp, struct e1000_hw *hw, } /* Parse the arguments */ - dest = (void *)simple_strtoul(argv[0], NULL, 16); + dest = (void *)hextoul(argv[0], NULL); offset = simple_strtoul(argv[1], NULL, 0); length = simple_strtoul(argv[2], NULL, 0); @@ -444,7 +444,7 @@ static int do_e1000_spi_program(struct cmd_tbl *cmdtp, struct e1000_hw *hw, } /* Parse the arguments */ - source = (const void *)simple_strtoul(argv[0], NULL, 16); + source = (const void *)hextoul(argv[0], NULL); offset = simple_strtoul(argv[1], NULL, 0); length = simple_strtoul(argv[2], NULL, 0); diff --git a/drivers/net/fm/fdt.c b/drivers/net/fm/fdt.c index 242d27a34ea..3855d7d58fa 100644 --- a/drivers/net/fm/fdt.c +++ b/drivers/net/fm/fdt.c @@ -42,7 +42,7 @@ void fdt_fixup_fman_firmware(void *blob) if (!p) return; - fmanfw = (struct qe_firmware *)simple_strtoul(p, NULL, 16); + fmanfw = (struct qe_firmware *)hextoul(p, NULL); if (!fmanfw) return; diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c index 914ec001ec6..d52c986d4bd 100644 --- a/drivers/net/fsl-mc/mc.c +++ b/drivers/net/fsl-mc/mc.c @@ -642,7 +642,7 @@ static unsigned long get_mc_boot_timeout_ms(void) char *timeout_ms_env_var = env_get(MC_BOOT_TIMEOUT_ENV_VAR); if (timeout_ms_env_var) { - timeout_ms = simple_strtoul(timeout_ms_env_var, NULL, 10); + timeout_ms = dectoul(timeout_ms_env_var, NULL); if (timeout_ms == 0) { printf("fsl-mc: WARNING: Invalid value for \'" MC_BOOT_TIMEOUT_ENV_VAR @@ -956,8 +956,7 @@ unsigned long mc_get_dram_block_size(void) char *dram_block_size_env_var = env_get(MC_MEM_SIZE_ENV_VAR); if (dram_block_size_env_var) { - dram_block_size = simple_strtoul(dram_block_size_env_var, NULL, - 16); + dram_block_size = hextoul(dram_block_size_env_var, NULL); if (dram_block_size < CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE) { printf("fsl-mc: WARNING: Invalid value for \'" diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index f1d0630d020..cec96c57150 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -87,7 +87,7 @@ static int refresh_settings_from_env(void) return -1; /* ncip is 0.0.0.0 */ p = strchr(env_get("ncip"), ':'); if (p != NULL) { - nc_out_port = simple_strtoul(p + 1, NULL, 10); + nc_out_port = dectoul(p + 1, NULL); nc_in_port = nc_out_port; } } else { @@ -96,10 +96,10 @@ static int refresh_settings_from_env(void) p = env_get("ncoutport"); if (p != NULL) - nc_out_port = simple_strtoul(p, NULL, 10); + nc_out_port = dectoul(p, NULL); p = env_get("ncinport"); if (p != NULL) - nc_in_port = simple_strtoul(p, NULL, 10); + nc_in_port = dectoul(p, NULL); if (is_broadcast(nc_ip)) /* broadcast MAC address */ diff --git a/drivers/net/pfe_eth/pfe_cmd.c b/drivers/net/pfe_eth/pfe_cmd.c index 364750f65c7..2fe0db0fe71 100644 --- a/drivers/net/pfe_eth/pfe_cmd.c +++ b/drivers/net/pfe_eth/pfe_cmd.c @@ -41,7 +41,7 @@ static void pfe_command_pe(int argc, char *const argv[]) } id = simple_strtoul(argv[4], NULL, 0); - addr = simple_strtoul(argv[5], NULL, 16); + addr = hextoul(argv[5], NULL); size = 4; for (i = 0; i < num; i++, addr += 4) { @@ -75,7 +75,7 @@ static void pfe_command_pe(int argc, char *const argv[]) } id = simple_strtoul(argv[4], NULL, 0); - addr = simple_strtoul(argv[5], NULL, 16); + addr = hextoul(argv[5], NULL); size = 4; for (i = 0; i < num; i++, addr += 4) { @@ -99,9 +99,9 @@ static void pfe_command_pe(int argc, char *const argv[]) } id = simple_strtoul(argv[4], NULL, 0); - val = simple_strtoul(argv[5], NULL, 16); + val = hextoul(argv[5], NULL); val = cpu_to_be32(val); - addr = simple_strtoul(argv[6], NULL, 16); + addr = hextoul(argv[6], NULL); size = 4; pe_dmem_write(id, val, addr, size); } else { @@ -123,7 +123,7 @@ static void pfe_command_pe(int argc, char *const argv[]) return; } - offset = simple_strtoul(argv[4], NULL, 16); + offset = hextoul(argv[4], NULL); for (i = 0; i < num; i++, offset += 4) { pe_lmem_read(&val, 4, offset); @@ -141,9 +141,9 @@ static void pfe_command_pe(int argc, char *const argv[]) return; } - val = simple_strtoul(argv[4], NULL, 16); + val = hextoul(argv[4], NULL); val = cpu_to_be32(val); - offset = simple_strtoul(argv[5], NULL, 16); + offset = hextoul(argv[5], NULL); pe_lmem_write(&val, 4, offset); } else { printf("Usage: pfe pe lmem [read | write] <parameters>\n"); diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c index ac86e33c550..ad5bc3c8624 100644 --- a/drivers/net/pfe_eth/pfe_firmware.c +++ b/drivers/net/pfe_eth/pfe_firmware.c @@ -298,7 +298,7 @@ int pfe_firmware_init(void) if (!p) { max_fw_count = 2; } else { - max_fw_count = simple_strtoul(p, NULL, 10); + max_fw_count = dectoul(p, NULL); if (max_fw_count) max_fw_count = 3; else diff --git a/drivers/net/phy/b53.c b/drivers/net/phy/b53.c index 21da53c7e5b..c706e2b9bde 100644 --- a/drivers/net/phy/b53.c +++ b/drivers/net/phy/b53.c @@ -646,9 +646,9 @@ int do_b53_reg_read(const char *name, int argc, char *const argv[]) return ret; } - page = simple_strtoul(argv[1], NULL, 16); - offset = simple_strtoul(argv[2], NULL, 16); - width = simple_strtoul(argv[3], NULL, 10); + page = hextoul(argv[1], NULL); + offset = hextoul(argv[2], NULL); + width = dectoul(argv[3], NULL); switch (width) { case 8: @@ -698,13 +698,13 @@ int do_b53_reg_write(const char *name, int argc, char *const argv[]) return ret; } - page = simple_strtoul(argv[1], NULL, 16); - offset = simple_strtoul(argv[2], NULL, 16); - width = simple_strtoul(argv[3], NULL, 10); + page = hextoul(argv[1], NULL); + offset = hextoul(argv[2], NULL); + width = dectoul(argv[3], NULL); if (width == 48 || width == 64) value64 = simple_strtoull(argv[4], NULL, 16); else - value = simple_strtoul(argv[4], NULL, 16); + value = hextoul(argv[4], NULL); switch (width) { case 8: diff --git a/drivers/net/phy/mv88e6352.c b/drivers/net/phy/mv88e6352.c index 62a7f192149..56060762d85 100644 --- a/drivers/net/phy/mv88e6352.c +++ b/drivers/net/phy/mv88e6352.c @@ -238,9 +238,9 @@ int do_mvsw_reg_read(const char *name, int argc, char *const argv[]) u16 value = 0, phyaddr, reg, port; int ret; - phyaddr = simple_strtoul(argv[1], NULL, 10); - port = simple_strtoul(argv[2], NULL, 10); - reg = simple_strtoul(argv[3], NULL, 10); + phyaddr = dectoul(argv[1], NULL); + port = dectoul(argv[2], NULL); + reg = dectoul(argv[3], NULL); ret = sw_reg_read(name, phyaddr, port, reg, &value); printf("%#x\n", value); @@ -253,10 +253,10 @@ int do_mvsw_reg_write(const char *name, int argc, char *const argv[]) u16 value = 0, phyaddr, reg, port; int ret; - phyaddr = simple_strtoul(argv[1], NULL, 10); - port = simple_strtoul(argv[2], NULL, 10); - reg = simple_strtoul(argv[3], NULL, 10); - value = simple_strtoul(argv[4], NULL, 16); + phyaddr = dectoul(argv[1], NULL); + port = dectoul(argv[2], NULL); + reg = dectoul(argv[3], NULL); + value = hextoul(argv[4], NULL); ret = sw_reg_write(name, phyaddr, port, reg, value); diff --git a/drivers/net/qe/dm_qe_uec.c b/drivers/net/qe/dm_qe_uec.c index eb0501bc5a8..a12c8cd2ac5 100644 --- a/drivers/net/qe/dm_qe_uec.c +++ b/drivers/net/qe/dm_qe_uec.c @@ -938,7 +938,7 @@ enum qe_clock qe_clock_source(const char *source) return QE_CLK_NONE; if (strncasecmp(source, "brg", 3) == 0) { - i = simple_strtoul(source + 3, NULL, 10); + i = dectoul(source + 3, NULL); if (i >= 1 && i <= 16) return (QE_BRG1 - 1) + i; else @@ -946,7 +946,7 @@ enum qe_clock qe_clock_source(const char *source) } if (strncasecmp(source, "clk", 3) == 0) { - i = simple_strtoul(source + 3, NULL, 10); + i = dectoul(source + 3, NULL); if (i >= 1 && i <= 24) return (QE_CLK1 - 1) + i; else diff --git a/drivers/pinctrl/nexell/pinctrl-nexell.c b/drivers/pinctrl/nexell/pinctrl-nexell.c index 6b01f47657c..20497a746d2 100644 --- a/drivers/pinctrl/nexell/pinctrl-nexell.c +++ b/drivers/pinctrl/nexell/pinctrl-nexell.c @@ -34,7 +34,7 @@ unsigned long pin_to_bank_base(struct udevice *dev, const char *pin_name, idx++; } bank[idx] = '\0'; - *pin = (u32)simple_strtoul(&pin_name[++idx], NULL, 10); + *pin = (u32)dectoul(&pin_name[++idx], NULL); /* lookup the pin bank data using the pin bank name */ for (idx = 0; idx < nr_banks; idx++) diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index ea7275ca004..dfe60b6dadb 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -69,7 +69,7 @@ static int pinctrl_select_state_full(struct udevice *dev, const char *statename) * If statename is not found in "pinctrl-names", * assume statename is just the integer state ID. */ - state = simple_strtoul(statename, &end, 10); + state = dectoul(statename, &end); if (*end) return -EINVAL; } diff --git a/drivers/power/power_core.c b/drivers/power/power_core.c index eeed8e24a90..4f7ba099cd9 100644 --- a/drivers/power/power_core.c +++ b/drivers/power/power_core.c @@ -159,7 +159,7 @@ static int do_pmic(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 4) return CMD_RET_USAGE; - reg = simple_strtoul(argv[3], NULL, 16); + reg = hextoul(argv[3], NULL); ret = pmic_reg_read(p, reg, &val); if (ret) @@ -174,8 +174,8 @@ static int do_pmic(struct cmd_tbl *cmdtp, int flag, int argc, if (argc < 5) return CMD_RET_USAGE; - reg = simple_strtoul(argv[3], NULL, 16); - val = simple_strtoul(argv[4], NULL, 16); + reg = hextoul(argv[3], NULL); + val = hextoul(argv[4], NULL); pmic_reg_write(p, reg, val); return CMD_RET_SUCCESS; diff --git a/drivers/qe/qe.c b/drivers/qe/qe.c index 97883ffc879..bd0a10c9d21 100644 --- a/drivers/qe/qe.c +++ b/drivers/qe/qe.c @@ -794,7 +794,7 @@ static int qe_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return cmd_usage(cmdtp); if (strcmp(argv[1], "fw") == 0) { - addr = simple_strtoul(argv[2], NULL, 16); + addr = hextoul(argv[2], NULL); if (!addr) { printf("Invalid address\n"); @@ -807,7 +807,7 @@ static int qe_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) */ if (argc > 3) { - ulong length = simple_strtoul(argv[3], NULL, 16); + ulong length = hextoul(argv[3], NULL); struct qe_firmware *firmware = (void *)addr; if (length != be32_to_cpu(firmware->header.length)) { diff --git a/drivers/ram/octeon/octeon_ddr.c b/drivers/ram/octeon/octeon_ddr.c index e7b61d39f5c..42daf068668 100644 --- a/drivers/ram/octeon/octeon_ddr.c +++ b/drivers/ram/octeon/octeon_ddr.c @@ -2544,7 +2544,7 @@ try_again: eptr = env_get("limit_dram_mbytes"); if (eptr) { - unsigned int mbytes = simple_strtoul(eptr, NULL, 10); + unsigned int mbytes = dectoul(eptr, NULL); if (mbytes > 0) { memsize_mbytes = mbytes; diff --git a/drivers/rtc/m41t60.c b/drivers/rtc/m41t60.c index 692042b9351..b8ad33e0125 100644 --- a/drivers/rtc/m41t60.c +++ b/drivers/rtc/m41t60.c @@ -214,7 +214,7 @@ void rtc_reset(void) * the M41T60 documentation for further details. */ if (s) { - unsigned long const l = simple_strtoul(s, 0, 16); + unsigned long const l = hextoul(s, 0); if (l <= 0x3F) { if ((data[RTC_CTRL] & 0x3F) != l) { diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c index 2b4feace53a..8171b17faf8 100644 --- a/drivers/serial/serial-uclass.c +++ b/drivers/serial/serial-uclass.c @@ -395,7 +395,7 @@ static int on_baudrate(const char *name, const char *value, enum env_op op, /* * Switch to new baudrate if new baudrate is supported */ - baudrate = simple_strtoul(value, NULL, 10); + baudrate = dectoul(value, NULL); /* Not actually changing */ if (gd->baudrate == baudrate) diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c index dea25a049c8..ebbd21916d7 100644 --- a/drivers/serial/serial.c +++ b/drivers/serial/serial.c @@ -61,7 +61,7 @@ static int on_baudrate(const char *name, const char *value, enum env_op op, /* * Switch to new baudrate if new baudrate is supported */ - baudrate = simple_strtoul(value, NULL, 10); + baudrate = dectoul(value, NULL); /* Not actually changing */ if (gd->baudrate == baudrate) diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c index 83dbb5a103d..fcaeab9cc1d 100644 --- a/drivers/usb/cdns3/gadget.c +++ b/drivers/usb/cdns3/gadget.c @@ -1659,7 +1659,7 @@ cdns3_endpoint *cdns3_find_available_ep(struct cdns3_device *priv_dev, /* ep name pattern likes epXin or epXout */ char c[2] = {ep->name[2], '\0'}; - num = simple_strtoul(c, NULL, 10); + num = dectoul(c, NULL); priv_ep = ep_to_cdns3_ep(ep); if (cdns3_ep_dir_is_correct(desc, priv_ep)) { diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c index 7da334f5d31..01337d6511b 100644 --- a/drivers/usb/gadget/epautoconf.c +++ b/drivers/usb/gadget/epautoconf.c @@ -144,7 +144,7 @@ static int ep_matches( /* report address */ if (isdigit(ep->name[2])) { - u8 num = simple_strtoul(&ep->name[2], NULL, 10); + u8 num = dectoul(&ep->name[2], NULL); desc->bEndpointAddress |= num; #ifdef MANY_ENDPOINTS } else if (desc->bEndpointAddress & USB_DIR_IN) { diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c index 16922ff15c6..43073286572 100644 --- a/drivers/usb/gadget/ether.c +++ b/drivers/usb/gadget/ether.c @@ -2401,8 +2401,7 @@ static int _usb_eth_init(struct ether_priv *priv) usb_gadget_connect(gadget); if (env_get("cdc_connect_timeout")) - timeout = simple_strtoul(env_get("cdc_connect_timeout"), - NULL, 10) * CONFIG_SYS_HZ; + timeout = dectoul(env_get("cdc_connect_timeout"), NULL) * CONFIG_SYS_HZ; ts = get_timer(0); while (!dev->network_started) { /* Handle control-c and timeouts */ diff --git a/drivers/video/ati_radeon_fb.c b/drivers/video/ati_radeon_fb.c index c4da2e3ae7f..383666781cc 100644 --- a/drivers/video/ati_radeon_fb.c +++ b/drivers/video/ati_radeon_fb.c @@ -642,7 +642,7 @@ void *video_hw_init(void) if (penv) { /* deceide if it is a string */ if (penv[0] <= '9') { - videomode = (int) simple_strtoul (penv, NULL, 16); + videomode = (int)hextoul(penv, NULL); tmp = 1; } } else { diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c index 1f491a48d6a..5e1ee061e8e 100644 --- a/drivers/video/cfb_console.c +++ b/drivers/video/cfb_console.c @@ -1857,7 +1857,7 @@ static void *video_logo(void) ret = splash_screen_prepare(); if (ret < 0) return video_fb_address; - addr = simple_strtoul(s, NULL, 16); + addr = hextoul(s, NULL); if (video_display_bitmap(addr, video_logo_xpos, diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c index 9b42ca8d03f..e6dd2b83c6f 100644 --- a/drivers/video/mx3fb.c +++ b/drivers/video/mx3fb.c @@ -820,7 +820,7 @@ void *video_hw_init(void) if (penv) { /* decide if it is a string */ if (penv[0] <= '9') { - videomode = (int) simple_strtoul(penv, NULL, 16); + videomode = (int)hextoul(penv, NULL); tmp = 1; } } else { diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c index 8f7d987cdd2..8132efa55a3 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c @@ -692,8 +692,8 @@ static int do_video_setcursor(struct cmd_tbl *cmdtp, int flag, int argc, if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev)) return CMD_RET_FAILURE; - col = simple_strtoul(argv[1], NULL, 10); - row = simple_strtoul(argv[2], NULL, 10); + col = dectoul(argv[1], NULL); + row = dectoul(argv[2], NULL); vidconsole_position_cursor(dev, col, row); return 0; diff --git a/examples/standalone/atmel_df_pow2.c b/examples/standalone/atmel_df_pow2.c index 9c74f4994b9..dcb25da9498 100644 --- a/examples/standalone/atmel_df_pow2.c +++ b/examples/standalone/atmel_df_pow2.c @@ -141,11 +141,12 @@ int atmel_df_pow2(int argc, char *const argv[]) if (line[0] == '\0') continue; - bus = cs = simple_strtoul(line, &p, 10); + bus = dectoul(line, &p); + cs = bus; if (*p) { if (*p == ':') { ++p; - cs = simple_strtoul(p, &p, 10); + cs = dectoul(p, &p); } if (*p) { puts("invalid format, please try again\n"); @@ -717,13 +717,13 @@ int do_load(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[], } if (argc >= 4) { - addr = simple_strtoul(argv[3], &ep, 16); + addr = hextoul(argv[3], &ep); if (ep == argv[3] || *ep != '\0') return CMD_RET_USAGE; } else { addr_str = env_get("loadaddr"); if (addr_str != NULL) - addr = simple_strtoul(addr_str, NULL, 16); + addr = hextoul(addr_str, NULL); else addr = CONFIG_SYS_LOAD_ADDR; } @@ -737,11 +737,11 @@ int do_load(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[], } } if (argc >= 6) - bytes = simple_strtoul(argv[5], NULL, 16); + bytes = hextoul(argv[5], NULL); else bytes = 0; if (argc >= 7) - pos = simple_strtoul(argv[6], NULL, 16); + pos = hextoul(argv[6], NULL); else pos = 0; @@ -815,11 +815,11 @@ int do_save(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[], if (fs_set_blk_dev(argv[1], argv[2], fstype)) return 1; - addr = simple_strtoul(argv[3], NULL, 16); + addr = hextoul(argv[3], NULL); filename = argv[4]; - bytes = simple_strtoul(argv[5], NULL, 16); + bytes = hextoul(argv[5], NULL); if (argc >= 7) - pos = simple_strtoul(argv[6], NULL, 16); + pos = hextoul(argv[6], NULL); else pos = 0; diff --git a/include/vsprintf.h b/include/vsprintf.h index 4016de6677a..83d187e53d4 100644 --- a/include/vsprintf.h +++ b/include/vsprintf.h @@ -10,12 +10,57 @@ #include <stdarg.h> #include <linux/types.h> +/** + * simple_strtoul - convert a string to an unsigned long + * + * @param cp The string to be converted + * @param endp Updated to point to the first character not converted + * @param base The number base to use (0 for the default) + * @return value decoded from string (0 if invalid) + * + * Converts a string to an unsigned long. If there are invalid characters at + * the end these are ignored. In the worst case, if all characters are invalid, + * 0 is returned + * + * A hex prefix is supported (e.g. 0x123) regardless of the value of @base. + * If found, the base is set to hex (16). + * + * If @base is 0: + * - an octal '0' prefix (e.g. 0777) sets the base to octal (8). + * - otherwise the base defaults to decimal (10). + */ ulong simple_strtoul(const char *cp, char **endp, unsigned int base); /** + * hex_strtoul - convert a string in hex to an unsigned long + * + * @param cp The string to be converted + * @param endp Updated to point to the first character not converted + * @return value decoded from string (0 if invalid) + * + * Converts a hex string to an unsigned long. If there are invalid characters at + * the end these are ignored. In the worst case, if all characters are invalid, + * 0 is returned + */ +unsigned long hextoul(const char *cp, char **endp); + +/** + * dec_strtoul - convert a string in decimal to an unsigned long + * + * @param cp The string to be converted + * @param endp Updated to point to the first character not converted + * @return value decoded from string (0 if invalid) + * + * Converts a decimal string to an unsigned long. If there are invalid + * characters at the end these are ignored. In the worst case, if all characters + * are invalid, 0 is returned + */ +unsigned long dectoul(const char *cp, char **endp); + +/** * strict_strtoul - convert a string to an unsigned long strictly * @param cp The string to be converted - * @param base The number base to use + * @param base The number base to use (0 for the default) * @param res The converted result value * @return 0 if conversion is successful and *res is set to the converted * value, otherwise it returns -EINVAL and *res is set to 0. @@ -30,8 +75,12 @@ ulong simple_strtoul(const char *cp, char **endp, unsigned int base); * * echo will append a newline to the tail. * - * simple_strtoul just ignores the successive invalid characters and - * return the converted value of prefix part of the string. + * A hex prefix is supported (e.g. 0x123) regardless of the value of @base. + * If found, the base is set to hex (16). + * + * If @base is 0: + * - an octal '0' prefix (e.g. 0777) sets the base to octal (8). + * - otherwise the base defaults to decimal (10). * * Copied this function from Linux 2.6.38 commit ID: * 521cb40b0c44418a4fd36dc633f575813d59a43d diff --git a/lib/dhry/cmd_dhry.c b/lib/dhry/cmd_dhry.c index d55ab54df97..77b52a23003 100644 --- a/lib/dhry/cmd_dhry.c +++ b/lib/dhry/cmd_dhry.c @@ -16,7 +16,7 @@ static int do_dhry(struct cmd_tbl *cmdtp, int flag, int argc, int iterations = 1000000; if (argc > 1) - iterations = simple_strtoul(argv[1], NULL, 10); + iterations = dectoul(argv[1], NULL); start = get_timer(0); dhry(iterations); diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 4b097fb588e..07c7ebe74d8 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -405,7 +405,7 @@ int fdtdec_add_aliases_for_id(const void *blob, const char *name, continue; /* Get the alias number */ - number = simple_strtoul(path + name_len, NULL, 10); + number = dectoul(path + name_len, NULL); if (number < 0 || number >= maxcount) { debug("%s: warning: alias '%s' is out of range\n", __func__, path); diff --git a/lib/net_utils.c b/lib/net_utils.c index 0a8a557319c..72a3b098a70 100644 --- a/lib/net_utils.c +++ b/lib/net_utils.c @@ -23,7 +23,7 @@ struct in_addr string_to_ip(const char *s) return addr; for (addr.s_addr = 0, i = 0; i < 4; ++i) { - ulong val = s ? simple_strtoul(s, &e, 10) : 0; + ulong val = s ? dectoul(s, &e) : 0; if (val > 255) { addr.s_addr = 0; return addr; @@ -52,7 +52,7 @@ void string_to_enetaddr(const char *addr, uint8_t *enetaddr) return; for (i = 0; i < 6; ++i) { - enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0; + enetaddr[i] = addr ? hextoul(addr, &end) : 0; if (addr) addr = (*end) ? end + 1 : end; } diff --git a/lib/strto.c b/lib/strto.c index f8b53d846b3..7bba1e3e549 100644 --- a/lib/strto.c +++ b/lib/strto.c @@ -14,33 +14,55 @@ #include <linux/ctype.h> /* from lib/kstrtox.c */ -static const char *_parse_integer_fixup_radix(const char *s, unsigned int *base) +static const char *_parse_integer_fixup_radix(const char *s, uint *basep) { - if (*base == 0) { - if (s[0] == '0') { - if (tolower(s[1]) == 'x' && isxdigit(s[2])) - *base = 16; - else - *base = 8; - } else - *base = 10; + /* Look for a 0x prefix */ + if (s[0] == '0') { + int ch = tolower(s[1]); + + if (ch == 'x') { + *basep = 16; + s += 2; + } else if (!*basep) { + /* Only select octal if we don't have a base */ + *basep = 8; + } } - if (*base == 16 && s[0] == '0' && tolower(s[1]) == 'x') - s += 2; + + /* Use decimal by default */ + if (!*basep) + *basep = 10; + return s; } -unsigned long simple_strtoul(const char *cp, char **endp, - unsigned int base) +/** + * decode_digit() - Decode a single character into its numeric digit value + * + * This ignore case + * + * @ch: Character to convert (expects '0'..'9', 'a'..'f' or 'A'..'F') + * @return value of digit (0..0xf) or 255 if the character is invalid + */ +static uint decode_digit(int ch) +{ + if (!isxdigit(ch)) + return 256; + + ch = tolower(ch); + + return ch <= '9' ? ch - '0' : ch - 'a' + 0xa; +} + +ulong simple_strtoul(const char *cp, char **endp, uint base) { - unsigned long result = 0; - unsigned long value; + ulong result = 0; + uint value; cp = _parse_integer_fixup_radix(cp, &base); - while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp) - ? toupper(*cp) : *cp)-'A'+10) < base) { - result = result*base + value; + while (value = decode_digit(*cp), value < base) { + result = result * base + value; cp++; } @@ -50,6 +72,16 @@ unsigned long simple_strtoul(const char *cp, char **endp, return result; } +ulong hextoul(const char *cp, char **endp) +{ + return simple_strtoul(cp, endp, 16); +} + +ulong dectoul(const char *cp, char **endp) +{ + return simple_strtoul(cp, endp, 10); +} + int strict_strtoul(const char *cp, unsigned int base, unsigned long *res) { char *tail; @@ -127,12 +159,12 @@ unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base) unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base) { - unsigned long long result = 0, value; + unsigned long long result = 0; + uint value; cp = _parse_integer_fixup_radix(cp, &base); - while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp - '0' - : (islower(*cp) ? toupper(*cp) : *cp) - 'A' + 10) < base) { + while (value = decode_digit(*cp), value < base) { result = result * base + value; cp++; } @@ -160,7 +192,7 @@ long trailing_strtoln(const char *str, const char *end) if (isdigit(end[-1])) { for (p = end - 1; p > str; p--) { if (!isdigit(*p)) - return simple_strtoul(p + 1, NULL, 10); + return dectoul(p + 1, NULL); } } diff --git a/lib/uuid.c b/lib/uuid.c index 5bc68674d02..67267c66a3c 100644 --- a/lib/uuid.c +++ b/lib/uuid.c @@ -164,26 +164,26 @@ int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin, } if (str_format == UUID_STR_FORMAT_STD) { - tmp32 = cpu_to_be32(simple_strtoul(uuid_str, NULL, 16)); + tmp32 = cpu_to_be32(hextoul(uuid_str, NULL)); memcpy(uuid_bin, &tmp32, 4); - tmp16 = cpu_to_be16(simple_strtoul(uuid_str + 9, NULL, 16)); + tmp16 = cpu_to_be16(hextoul(uuid_str + 9, NULL)); memcpy(uuid_bin + 4, &tmp16, 2); - tmp16 = cpu_to_be16(simple_strtoul(uuid_str + 14, NULL, 16)); + tmp16 = cpu_to_be16(hextoul(uuid_str + 14, NULL)); memcpy(uuid_bin + 6, &tmp16, 2); } else { - tmp32 = cpu_to_le32(simple_strtoul(uuid_str, NULL, 16)); + tmp32 = cpu_to_le32(hextoul(uuid_str, NULL)); memcpy(uuid_bin, &tmp32, 4); - tmp16 = cpu_to_le16(simple_strtoul(uuid_str + 9, NULL, 16)); + tmp16 = cpu_to_le16(hextoul(uuid_str + 9, NULL)); memcpy(uuid_bin + 4, &tmp16, 2); - tmp16 = cpu_to_le16(simple_strtoul(uuid_str + 14, NULL, 16)); + tmp16 = cpu_to_le16(hextoul(uuid_str + 14, NULL)); memcpy(uuid_bin + 6, &tmp16, 2); } - tmp16 = cpu_to_be16(simple_strtoul(uuid_str + 19, NULL, 16)); + tmp16 = cpu_to_be16(hextoul(uuid_str + 19, NULL)); memcpy(uuid_bin + 8, &tmp16, 2); tmp64 = cpu_to_be64(simple_strtoull(uuid_str + 24, NULL, 16)); diff --git a/lib/vsprintf.c b/lib/vsprintf.c index c14176dd393..d7ee35b4773 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -858,7 +858,7 @@ bool str2long(const char *p, ulong *num) { char *endptr; - *num = simple_strtoul(p, &endptr, 16); + *num = hextoul(p, &endptr); return *p != '\0' && *endptr == '\0'; } diff --git a/net/bootp.c b/net/bootp.c index 163af41e926..655b9cceb66 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -740,7 +740,7 @@ void bootp_request(void) ep = env_get("bootpretryperiod"); if (ep != NULL) - time_taken_max = simple_strtoul(ep, NULL, 10); + time_taken_max = dectoul(ep, NULL); else time_taken_max = TIMEOUT_MS; diff --git a/net/eth-uclass.c b/net/eth-uclass.c index c2a97d723a0..0da0e85be03 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -128,7 +128,7 @@ struct udevice *eth_get_dev_by_name(const char *devname) /* Must be longer than 3 to be an alias */ if (!strncmp(devname, "eth", len) && strlen(devname) > len) { startp = devname + len; - seq = simple_strtoul(startp, &endp, 10); + seq = dectoul(startp, &endp); } ret = uclass_get(UCLASS_ETH, &uc); @@ -241,7 +241,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op, struct udevice *dev; /* look for an index after "eth" */ - index = simple_strtoul(name + 3, NULL, 10); + index = dectoul(name + 3, NULL); retval = uclass_find_device_by_seq(UCLASS_ETH, index, &dev); if (!retval) { diff --git a/net/eth_legacy.c b/net/eth_legacy.c index 96ed5a47202..f383ccce0b9 100644 --- a/net/eth_legacy.c +++ b/net/eth_legacy.c @@ -114,7 +114,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op, return 0; /* look for an index after "eth" */ - index = simple_strtoul(name + 3, NULL, 10); + index = dectoul(name + 3, NULL); dev = eth_devices; do { diff --git a/net/net.c b/net/net.c index b58f3062b20..c2992a0908b 100644 --- a/net/net.c +++ b/net/net.c @@ -1591,7 +1591,7 @@ ushort string_to_vlan(const char *s) if (*s < '0' || *s > '9') id = VLAN_NONE; else - id = (ushort)simple_strtoul(s, NULL, 10); + id = (ushort)dectoul(s, NULL); return htons(id); } diff --git a/net/tftp.c b/net/tftp.c index 00ab7ca0b3c..5baf528f4ec 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -554,8 +554,7 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, for (i = 0; i+8 < len; i++) { if (strcasecmp((char *)pkt + i, "blksize") == 0) { tftp_block_size = (unsigned short) - simple_strtoul((char *)pkt + i + 8, - NULL, 10); + dectoul((char *)pkt + i + 8, NULL); debug("Blocksize oack: %s, %d\n", (char *)pkt + i + 8, tftp_block_size); if (tftp_block_size > tftp_block_size_option) { @@ -566,8 +565,7 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, } if (strcasecmp((char *)pkt + i, "timeout") == 0) { timeout_val_rcvd = (unsigned short) - simple_strtoul((char *)pkt + i + 8, - NULL, 10); + dectoul((char *)pkt + i + 8, NULL); debug("Timeout oack: %s, %d\n", (char *)pkt + i + 8, timeout_val_rcvd); if (timeout_val_rcvd != (timeout_ms / 1000)) { @@ -578,16 +576,15 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, } #ifdef CONFIG_TFTP_TSIZE if (strcasecmp((char *)pkt + i, "tsize") == 0) { - tftp_tsize = simple_strtoul((char *)pkt + i + 6, - NULL, 10); + tftp_tsize = dectoul((char *)pkt + i + 6, + NULL); debug("size = %s, %d\n", (char *)pkt + i + 6, tftp_tsize); } #endif if (strcasecmp((char *)pkt + i, "windowsize") == 0) { tftp_windowsize = - simple_strtoul((char *)pkt + i + 11, - NULL, 10); + dectoul((char *)pkt + i + 11, NULL); debug("windowsize = %s, %d\n", (char *)pkt + i + 11, tftp_windowsize); } diff --git a/test/str_ut.c b/test/str_ut.c index 359d7d4ea1f..d2840d51524 100644 --- a/test/str_ut.c +++ b/test/str_ut.c @@ -15,6 +15,10 @@ static const char str1[] = "I'm sorry I'm late."; static const char str2[] = "1099abNo, don't bother apologising."; static const char str3[] = "0xbI'm sorry you're alive."; +static const char str4[] = "1234567890123 I lost closer friends"; +static const char str5[] = "0x9876543210the last time I was deloused"; +static const char str6[] = "0778octal is seldom used"; +static const char str7[] = "707it is a piece of computing history"; /* Declare a new str test */ #define STR_TEST(_name, _flags) UNIT_TEST(_name, _flags, str_test) @@ -84,6 +88,12 @@ static int str_simple_strtoul(struct unit_test_state *uts) /* Base 10 and base 16 */ ut_assertok(run_strtoul(uts, str2, 10, 1099, 4, upper)); ut_assertok(run_strtoul(uts, str2, 16, 0x1099ab, 6, upper)); + ut_assertok(run_strtoul(uts, str3, 16, 0xb, 3, upper)); + ut_assertok(run_strtoul(uts, str3, 10, 0xb, 3, upper)); + + /* Octal */ + ut_assertok(run_strtoul(uts, str6, 0, 63, 3, upper)); + ut_assertok(run_strtoul(uts, str7, 8, 0x1c7, 3, upper)); /* Invalid string */ ut_assertok(run_strtoul(uts, str1, 10, 0, 0, upper)); @@ -105,6 +115,93 @@ static int str_simple_strtoul(struct unit_test_state *uts) } STR_TEST(str_simple_strtoul, 0); +static int run_strtoull(struct unit_test_state *uts, const char *str, int base, + unsigned long long expect_val, int expect_endp_offset, + bool upper) +{ + char out[TEST_STR_SIZE]; + char *endp; + unsigned long long val; + + strcpy(out, str); + if (upper) + str_to_upper(out, out, -1); + + val = simple_strtoull(out, &endp, base); + ut_asserteq(expect_val, val); + ut_asserteq(expect_endp_offset, endp - out); + + return 0; +} + +static int str_simple_strtoull(struct unit_test_state *uts) +{ + int upper; + + /* Check that it is case-insentive */ + for (upper = 0; upper < 2; upper++) { + /* Base 10 and base 16 */ + ut_assertok(run_strtoull(uts, str2, 10, 1099, 4, upper)); + ut_assertok(run_strtoull(uts, str2, 16, 0x1099ab, 6, upper)); + ut_assertok(run_strtoull(uts, str3, 16, 0xb, 3, upper)); + ut_assertok(run_strtoull(uts, str3, 10, 0xb, 3, upper)); + + /* Octal */ + ut_assertok(run_strtoull(uts, str6, 0, 63, 3, upper)); + ut_assertok(run_strtoull(uts, str7, 8, 0x1c7, 3, upper)); + + /* Large values */ + ut_assertok(run_strtoull(uts, str4, 10, 1234567890123, 13, + upper)); + ut_assertok(run_strtoull(uts, str4, 16, 0x1234567890123, 13, + upper)); + ut_assertok(run_strtoull(uts, str5, 0, 0x9876543210, 12, + upper)); + + /* Invalid string */ + ut_assertok(run_strtoull(uts, str1, 10, 0, 0, upper)); + + /* Base 0 */ + ut_assertok(run_strtoull(uts, str1, 0, 0, 0, upper)); + ut_assertok(run_strtoull(uts, str2, 0, 1099, 4, upper)); + ut_assertok(run_strtoull(uts, str3, 0, 0xb, 3, upper)); + + /* Base 2 */ + ut_assertok(run_strtoull(uts, str1, 2, 0, 0, upper)); + ut_assertok(run_strtoull(uts, str2, 2, 2, 2, upper)); + } + + /* Check endp being NULL */ + ut_asserteq(1099, simple_strtoull(str2, NULL, 0)); + + return 0; +} +STR_TEST(str_simple_strtoull, 0); + +static int str_hextoul(struct unit_test_state *uts) +{ + char *endp; + + /* Just a simple test, since we know this uses simple_strtoul() */ + ut_asserteq(0x1099ab, hextoul(str2, &endp)); + ut_asserteq(6, endp - str2); + + return 0; +} +STR_TEST(str_hextoul, 0); + +static int str_dectoul(struct unit_test_state *uts) +{ + char *endp; + + /* Just a simple test, since we know this uses simple_strtoul() */ + ut_asserteq(1099, dectoul(str2, &endp)); + ut_asserteq(4, endp - str2); + + return 0; +} +STR_TEST(str_dectoul, 0); + int do_ut_str(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { struct unit_test *tests = UNIT_TEST_SUITE_START(str_test); |