From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wolfgang Denk Date: Fri, 23 Oct 2009 20:03:49 +0200 Subject: [U-Boot] setting u-boot params based on serial number In-Reply-To: References: Message-ID: <20091023180349.6C3C1E398E1@gemini.denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear "David Collier", In message you wrote: > > I have a batch of boards in production. > > say serial numbers 1 to 50 > > I want to set the 2 mac address, and the ip address so that the last few > digits match the serial number. > > can I do this easily with some sort of u-boot script? Or can I run an app > I write myself in C or whatever, and get it to do setenv commands? You can do this using the "setexpr" command, with the restriction that you cannot easily get leading zeros in the strings to fill tem up for the requested length, but for the usage you mention it does not matter. Also, you cannot easily convert to hex number, if that would be needed. Example: => print serial# serial#=12851192 Extract last 2 digits into vatiable "tmp" (note: serial# must consist of digits only): => setex tmp ${serial#} % 100 => print tmp tmp=92 Set MAC and IP address as requested: => setenv ip_base 192.168.3. => setenv mac_base ce:94:6b:3a:db: => setenv ipaddr ${ip_base}${tmp} => print ipaddr ipxxx=192.168.3.92 => setenv ethaddr ${mac_base}${tmp} => print ethaddr ethaddr=ce:94:6b:3a:db:92 > AVR32, if it matters It does not matter. This works on all boards / architectures. You just have to enable CONFIG_CMD_SETEXPR in your board configuration. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "The good Christian should beware of mathematicians and all those who make empty prophecies. The danger already exists that mathematicians have made a covenant with the devil to darken the spirit and confine man in the bonds of Hell." - Saint Augustine