All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zatkovský Dušan" <msk.conf@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] "Embedding" default script with uboot image
Date: Fri, 2 Oct 2015 11:55:03 +0200	[thread overview]
Message-ID: <560E5477.8070108@gmail.com> (raw)
In-Reply-To: <560E33BF.1030904@samsung.com>

Hi,

thx for answer.

My colleague found a way that he:

- converts txt script to u-boot form (by mkimage)
- converts uboot script to .o object ($(OBJCOPY) -I binary -O 
elf32-littlearm -B arm --rename-section .data=.rodata   boot_script 
boot_script.o)
- then:
     extern unsigned char _binary_boot_script_start;
     setenv_hex("boot_script_addr", (ulong)&_binary_boot_script_start);
     run_command_list("source ${boot_script_addr}", -1, 0);

Seems it works OK. Thx you and also him :D

bye

--
Dusan

D?a 2. 10. 2015 o 9:35 Przemyslaw Marczak nap?sal(a):
> Hi,
>
> On 09/30/2015 10:06 AM, Zatkovsk? Du?an wrote:
>> Really nobody?
>>
>> -- 
>> Dusan
>>
>> D?a 22. 9. 2015 o 14:20 Zatkovsk? Du?an nap?sal(a):
>>> Hi all,
>>>
>>> Excuse my question if it was solved somewhere in forum, but I didn't
>>> found an answer yet (maybe I can't find the right keywords).
>>>
>>> I am building the uboot with yocto for imx6 board. I have started with
>>> some freescale defaults,
>>> edited environment for my needs, saved environment etc ... Now I want
>>> to create a custom
>>> "default" boot script, that will do some "heurestics", such as "look
>>> if usb stick is present, then boot from it, else boot from emmc, 
>>> etc...".
>>> Currently I am storing that script on first partition on emmc and
>>> loading it with ext2load.
>>>
>>> But it has drawbacks:
>>> - user should delete that file -> brick
>>> - user should broke entire filesystem -> brick
>>>
>>> I want this script to be "embedded" somehow with uboot image (which is
>>> placed outside partition table on device), but I didn't found any doc
>>> how to do that.
>>> Currently I use CONFIG_EXTRA_ENV_SETTINGS for some basic stuffbut it
>>> is unmaintainable for bigger scripts.
>>>
>>> Any suggestions?
>>>
>>> Thank you.
>>> -- 
>>> Dusan
>>>
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>
> The ELCE is coming, so probably people are busy.
>
> Please check those few suggestions, which can help you:
> - you can "cat" the binaries of U-Boot and your script into one binary
> - you can get the address of your script in the code with few lines:
>
> unsigned long *ptr = (unsigned long *)&_end; - start address of your DTB
>
> ptr += fdt_totalsize(ptr) >> 2; - start address of your script
>
> - you can add some header with "magic code" before your script binary
>
> - check the size limit of your u-boot binary, because your script can 
> be broken if the output binary exceeds the size, which can be loaded 
> to RAM by SPL.
>
> - also check if your bigger binary will not overwrite something on the 
> flash layout
>
> - to execute the script at every boot, you can modify same late 
> function, like autoboot_command in common/autoboot.c ?
>
> - so at this point, you can check your script's magic code - if added
>
> - run script with:
>
> char cmd[64];
>
> sprintf(cmd, "source %p", ptr);
> run_command(cmd, 0);
>
> If you add some logic for checking if the script is valid (e.g. header 
> with size and crc ?), then I think you can be sure, that it will work.
>
> Best regards,

      reply	other threads:[~2015-10-02  9:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22 12:20 [U-Boot] "Embedding" default script with uboot image Zatkovský Dušan
2015-09-30  8:06 ` Zatkovský Dušan
2015-10-02  7:35   ` Przemyslaw Marczak
2015-10-02  9:55     ` Zatkovský Dušan [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=560E5477.8070108@gmail.com \
    --to=msk.conf@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.