On Wed, Nov 20, 2019 at 02:50:53PM -0800, Vladimir Olovyannikov wrote: > Hi Tom, > > > -----Original Message----- > > From: Tom Rini [mailto:tr...@konsulko.com] > > Sent: Tuesday, November 19, 2019 12:38 PM > > To: Vladimir Olovyannikov <vladimir.olovyanni...@broadcom.com> > > Cc: u-boot@lists.denx.de; Suji Velupiallai > <suji.velupil...@broadcom.com>; > > Heinrich Schuchardt <xypron.g...@gmx.de> > > Subject: Re: [U-Boot] [PATCH v1 1/1] cmd: adding malloc, math, and > strcmp > > commands to u-boot > > > > On Mon, Nov 18, 2019 at 04:26:30PM -0800, Vladimir Olovyannikov wrote: > > > > > cmd: adding malloc, math, and strcmp u-boot commands. > > > - malloc supports allocation of heap memory and free allocated memory > > > via u-boot command line. > > > > Can you expand on how this is used in a script? I'm not sure I see that > > exactly. > I am upstreaming the new bcm platform. Here is an excerpt from the script > which uses > these: > #define SD_UPDATE \ > "sd_update="\ > "if malloc tmp 2000; then "\ > "else "\ > "echo [sd_update] malloc 2000 bytes ** FAILED **;"\ > "exit;"\ > "fi;"\ > "if fatload mmc ${sd_device_number} ${tmp} "\ > "${sd_update_prefix}.sd-update; then "\ > "else "\ > "echo [sd_update] fatload ${sd_update_prefix}.sd-update "\ > "** FAILED **;"\ > "exit;"\ > "fi;"\ > "if source ${tmp}; then "\ > "else "\ > "echo [sd_update] Executing script ** FAILED **;"\ > "exit;"\ > "fi;"\ > "if free tmp; then "\ > "else " \ > "echo [sd_update] free 2000 bytes ** FAILED **;"\ > "exit;"\ > "fi \0" > ; > "if math add filesize filesize 1FF; then "\ > "else "\ > "echo [mmc_flash_image_rsa] math add command ** FAILED > **;"\ > "exit;"\ > "fi;"\ > "if math div fileblocks filesize 200; then "\ > "else "\ > "echo [mmc_flash_image_rsa] math div command ** FAILED > **;"\ > "exit;"\ > "fi;"\
Ah, interesting. So you're malloc'ing the memory location that you load in to rather than the usual method of using known variables and locations for the SoC. I would discourage this as we generally do not have a large malloc pool available. > > Also: > > > +config CMD_MALLOC > > > + bool "malloc" > > > + default y > > > + help > > > + Supports allocation of heap memory and free allocated memory > > commands. > > > + These commands are used by u-boot scripts. > > > + > > > +config CMD_MATH > > > + bool "math" > > > + default y > > > + help > > > + Provides math commands such as add, sub, mul, div, shift, > > > + convert decimal to hex functionalities to be available in the > script. > > > > First, why do we need this, rather than using setexpr ? > I agree, the platform needs to use setexpr as it contains all math > operations. > > > > > + > > > config CMD_SOURCE > > > bool "source" > > > default y > > > @@ -1301,6 +1315,13 @@ config CMD_SETEXPR > > > Also supports loading the value at a memory location into a > variable. > > > If CONFIG_REGEX is enabled, setexpr also supports a gsub > function. > > > > > > +config CMD_STRCMP > > > + bool "strcmp" > > > + default y > > > + help > > > + Provides string compare command feature to u-boot scripts. > > > > Second, new commands must not default to y, but they should be enabled > > on sandbox and new test.py tests added for them. Thanks! > OK, thank you. > Is there an example/doc on how to enable these on sandbox and to provide > tests? Unfortunately there is not (but would be greatly appreciated). There are a lot of examples under test/py/ however. Thanks! -- Tom
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot