[U-Boot] u-boot environment utilities and mmc device(calculate fw_env.config parameters)

MOHAMMAD RASIM mohammad.rasim96 at gmail.com
Wed Oct 11 16:43:12 UTC 2017


Hi,
How can i calculate the numbers to plug in the configuration file of 
uboot tools(fw_env.config)?
My device doesn't have mtd devices instead it uses mmc block device, 
here are some info about the device
####
*$*lsblk -o FSTYPE,NAME,SIZE,PHY-SEC,LOG-SEC,ALIGNMENT,TYPE
NAME          SIZE PHY-SEC LOG-SEC ALIGNMENT TYPE
mmcblk0boot0    4M     512     512         0 disk
mmcblk0boot1    4M     512     512         0 disk
mmcblk0           14.6G     512     512        0 disk
####
u-boot reports the following partition table:

#####
Partition table get from SPL is :
         name                        offset size              flag
===================================================================================
    0: bootloader                         0 400000                  0
    1: reserved                     2400000 4000000                  0
    2: cache                        6c00000 20000000                  2
    3: env                         27400000 800000                  0
    4: logo                        28400000 2000000                  1
    5: recovery                    2ac00000 2000000                  1
    6: rsv                         2d400000 800000                  1
    7: tee                         2e400000 800000                  1
    8: crypt                       2f400000 2000000                  1
    9: misc                        31c00000 2000000                  1
   10: instaboot                   34400000 20000000                  1
   11: boot                        54c00000 2000000                  1
   12: system                      57400000 40000000                  1
   13: data                        97c00000 30c200000                  4
mmc read lba=0x12000, blocks=0x2
mmc read lba=0x12002, blocks=0x2
mmc_read_partition_tbl: mmc read partition OK!
eMMC/TSD partition table have been checked OK!
mmc env offset: 0x27400000
######

So the env offset is 27400000 and size is 800000 but when i try to plug 
them in fw_env.config using /dev/mmcblk0 as a device I still get bad CRC 
error
using hexdump i can get the environment at position 677392

###
$hexdump -C -s 677392 -n 4384 /dev/mmcblk0
000a5610  62 6f 6f 74 63 6d 64 3d  72 75 6e 20 73 74 6f 72 |bootcmd=run 
stor|
000a5620  65 62 6f 6f 74 00 62 6f  6f 74 64 65 6c 61 79 3d 
|eboot.bootdelay=|
000a5630  31 00 62 61 75 64 72 61  74 65 3d 31 31 35 32 30 
|1.baudrate=11520|
000a5640  30 00 65 74 68 61 64 64  72 3d 30 30 3a 31 35 3a 
|0.ethaddr=00:15:|
000a5650  31 38 3a 30 31 3a 38 31  3a 33 31 00 69 70 61 64 
|18:01:81:31.ipad|
000a5660  64 72 3d 31 30 2e 31 38  2e 39 2e 39 37 00 73 65 
|dr=10.18.9.97.se|
000a5670  72 76 65 72 69 70 3d 31  30 2e 31 38 2e 39 2e 31 
|rverip=10.18.9.1|
000a5680  31 33 00 70 72 65 62 6f  6f 74 3d 72 75 6e 20 66 
|13.preboot=run f|
000a5690  61 63 74 6f 72 79 5f 72  65 73 65 74 5f 70 6f 77 
|actory_reset_pow|
000a56a0  65 72 6f 66 66 5f 70 72  6f 74 65 63 74 3b 72 75 
|eroff_protect;ru|
000a56b0  6e 20 75 70 67 72 61 64  65 5f 63 68 65 63 6b 3b  |n 
upgrade_check;|
000a56c0  72 75 6e 20 62 6f 6f 74  6d 6f 64 65 5f 63 68 65  |run 
bootmode_che|
000a56d0  63 6b 3b 72 75 6e 20 69  6e 69 74 5f 64 69 73 70  |ck;run 
init_disp|
000a56e0  6c 61 79 3b 72 75 6e 20  73 74 6f 72 65 61 72 67  |lay;run 
storearg|
000a56f0  73 3b 72 75 6e 20 75 70  64 61 74 65 5f 6b 65 79  |s;run 
update_key|
000a5700  3b 72 75 6e 20 69 72 72  65 6d 6f 74 65 5f 75 70  |;run 
irremote_up|
000a5710  64 61 74 65 3b 72 75 6e  20 73 77 69 74 63 68 5f |date;run 
switch_|
000a5720  62 6f 6f 74 6d 6f 64 65  3b 00 67 61 74 65 77 61 
|bootmode;.gatewa|
000a5730  79 69 70 3d 31 30 2e 31  38 2e 39 2e 31 00 6e 65 
|yip=10.18.9.1.ne|
000a5740  74 6d 61 73 6b 3d 32 35  35 2e 32 35 35 2e 32 35 
|tmask=255.255.25|
000a5750  35 2e 30 00 68 6f 73 74  6e 61 6d 65 3d 61 72 6d 
|5.0.hostname=arm|
000a5760  5f 67 78 62 62 00 66 69  72 73 74 62 6f 6f 74 3d 
|_gxbb.firstboot=|
000a5770  31 00 75 70 67 72 61 64  65 5f 73 74 65 70 3d 30 
|1.upgrade_step=0|
000a5780  00 6c 6f 61 64 61 64 64  72 3d 31 30 38 30 30 30 
|.loadaddr=108000|
000a5790  30 00 6f 75 74 70 75 74  6d 6f 64 65 3d 31 30 38 
|0.outputmode=108|
000a57a0  30 70 36 30 68 7a 00 68  64 6d 69 6d 6f 64 65 3d 
|0p60hz.hdmimode=|
000a57b0  31 30 38 30 70 36 30 68  7a 00 63 76 62 73 6d 6f 
|1080p60hz.cvbsmo|
000a57c0  64 65 3d 35 37 36 63 76  62 73 00 64 69 73 70 6c 
|de=576cvbs.displ|
000a57d0  61 79 5f 77 69 64 74 68  3d 31 39 32 30 00 64 69 
|ay_width=1920.di|
000a57e0  73 70 6c 61 79 5f 68 65  69 67 68 74 3d 31 30 38 
|splay_height=108|
000a57f0  30 00 64 69 73 70 6c 61  79 5f 62 70 70 3d 31 36 
|0.display_bpp=16|
000a5800  00 64 69 73 70 6c 61 79  5f 63 6f 6c 6f 72 5f 69 
|.display_color_i|
000a5810  6e 64 65 78 3d 31 36 00  64 69 73 70 6c 61 79 5f 
|ndex=16.display_|
000a5820  6c 61 79 65 72 3d 6f 73  64 31 00 64 69 73 70 6c 
|layer=osd1.displ|
000a5830  61 79 5f 63 6f 6c 6f 72  5f 66 67 3d 30 78 66 66 
|ay_color_fg=0xff|
000a5840  66 66 00 64 69 73 70 6c  61 79 5f 63 6f 6c 6f 72 
|ff.display_color|
000a5850  5f 62 67 3d 30 00 64 74  62 5f 6d 65 6d 5f 61 64 
|_bg=0.dtb_mem_ad|
000a5860  64 72 3d 30 78 31 30 30  30 30 30 30 00 66 62 5f 
|dr=0x1000000.fb_|
000a5870  61 64 64 72 3d 30 78 33  66 38 30 30 30 30 30 00 
|addr=0x3f800000.|
000a5880  66 62 5f 77 69 64 74 68  3d 31 39 32 30 00 66 62 
|fb_width=1920.fb|
000a5890  5f 68 65 69 67 68 74 3d  31 30 38 30 00 75 73 62 
|_height=1080.usb|
000a58a0  5f 62 75 72 6e 69 6e 67  3d 75 70 64 61 74 65 20 
|_burning=update |
000a58b0  31 30 30 30 00 66 64 74  5f 68 69 67 68 3d 30 78 
|1000.fdt_high=0x|
000a58c0  32 30 30 30 30 30 30 30  00 74 72 79 5f 61 75 74 
|20000000.try_aut|
000a58d0  6f 5f 62 75 72 6e 3d 75  70 64 61 74 65 20 37 30 
|o_burn=update 70|
000a58e0  30 20 37 35 30 3b 00 73  64 63 62 75 72 6e 63 66  |0 
750;.sdcburncf|
000a58f0  67 3d 61 6d 6c 5f 73 64  63 5f 62 75 72 6e 2e 69 
|g=aml_sdc_burn.i|
000a5900  6e 69 00 73 64 63 5f 62  75 72 6e 69 6e 67 3d 73 
|ni.sdc_burning=s|
000a5910  64 63 5f 62 75 72 6e 20  24 7b 73 64 63 62 75 72  |dc_burn 
${sdcbur|
000a5920  6e 63 66 67 7d 00 77 69  70 65 5f 64 61 74 61 3d 
|ncfg}.wipe_data=|
000a5930  73 75 63 63 65 73 73 66  75 6c 00 77 69 70 65 5f 
|successful.wipe_|
000a5940  63 61 63 68 65 3d 73 75  63 63 65 73 73 66 75 6c 
|cache=successful|
000a5950  00 69 6e 69 74 61 72 67  73 3d 72 6f 6f 74 66 73 
|.initargs=rootfs|
000a5960  74 79 70 65 3d 72 61 6d  66 73 20 69 6e 69 74 3d |type=ramfs 
init=|
000a5970  2f 69 6e 69 74 20 63 6f  6e 73 6f 6c 65 3d 74 74  |/init 
console=tt|
000a5980  79 53 30 2c 31 31 35 32  30 30 20 6e 6f 5f 63 6f |yS0,115200 
no_co|
000a5990  6e 73 6f 6c 65 5f 73 75  73 70 65 6e 64 20 65 61 
|nsole_suspend ea|
000a59a0  72 6c 79 70 72 69 6e 74  6b 3d 61 6d 6c 2d 75 61 
|rlyprintk=aml-ua|
000a59b0  72 74 2c 30 78 63 38 31  30 30 34 63 30 20 72 61 
|rt,0xc81004c0 ra|
000a59c0  6d 6f 6f 70 73 2e 6d 65  6d 5f 61 64 64 72 65 73 
|moops.mem_addres|
000a59d0  73 3d 30 78 32 30 30 30  30 30 30 30 20 72 61 6d |s=0x20000000 
ram|
000a59e0  6f 6f 70 73 2e 6d 65 6d  5f 73 69 7a 65 3d 30 78 
|oops.mem_size=0x|
000a59f0  31 30 30 30 30 30 20 72  61 6d 6f 6f 70 73 2e 72  |100000 
ramoops.r|
000a5a00  65 63 6f 72 64 5f 73 69  7a 65 3d 30 78 38 30 30 
|ecord_size=0x800|
000a5a10  30 20 72 61 6d 6f 6f 70  73 2e 63 6f 6e 73 6f 6c  |0 
ramoops.consol|
000a5a20  65 5f 73 69 7a 65 3d 30  78 34 30 30 30 20 61 6e 
|e_size=0x4000 an|
000a5a30  64 72 6f 69 64 62 6f 6f  74 2e 73 65 6c 69 6e 75 
|droidboot.selinu|
000a5a40  78 3d 70 65 72 6d 69 73  73 69 76 65 00 75 70 67 
|x=permissive.upg|
000a5a50  72 61 64 65 5f 63 68 65  63 6b 3d 65 63 68 6f 20 
|rade_check=echo |
000a5a60  75 70 67 72 61 64 65 5f  73 74 65 70 3d 24 7b 75 
|upgrade_step=${u|
000a5a70  70 67 72 61 64 65 5f 73  74 65 70 7d 3b 20 69 66 
|pgrade_step}; if|
000a5a80  20 69 74 65 73 74 20 24  7b 75 70 67 72 61 64 65  | itest 
${upgrade|
000a5a90  5f 73 74 65 70 7d 20 3d  3d 20 33 3b 20 74 68 65  |_step} == 
3; the|
000a5aa0  6e 20 72 75 6e 20 69 6e  69 74 5f 64 69 73 70 6c  |n run 
init_displ|
000a5ab0  61 79 3b 20 72 75 6e 20  73 74 6f 72 65 61 72 67  |ay; run 
storearg|
000a5ac0  73 3b 20 72 75 6e 20 75  70 64 61 74 65 3b 65 6c  |s; run 
update;el|
000a5ad0  73 65 20 69 66 20 69 74  65 73 74 20 24 7b 75 70  |se if itest 
${up|
000a5ae0  67 72 61 64 65 5f 73 74  65 70 7d 20 3d 3d 20 31 |grade_step} 
== 1|
000a5af0  3b 20 74 68 65 6e 20 64  65 66 65 6e 76 5f 72 65  |; then 
defenv_re|
000a5b00  73 65 72 76 3b 20 73 65  74 65 6e 76 20 75 70 67  |serv; 
setenv upg|
000a5b10  72 61 64 65 5f 73 74 65  70 20 32 3b 20 73 61 76 |rade_step 2; 
sav|
000a5b20  65 65 6e 76 3b 66 69 3b  66 69 3b 00 62 6f 6f 74 
|eenv;fi;fi;.boot|
000a5b30  6d 6f 64 65 5f 63 68 65  63 6b 3d 67 65 74 5f 72 
|mode_check=get_r|
000a5b40  65 62 6f 6f 74 6d 6f 64  65 3b 20 65 63 68 6f 20 |ebootmode; 
echo |
000a5b50  72 65 62 6f 6f 74 5f 6d  6f 64 65 3d 24 7b 72 65 
|reboot_mode=${re|
000a5b60  62 6f 6f 74 5f 6d 6f 64  65 7d 3b 69 66 20 74 65 
|boot_mode};if te|
000a5b70  73 74 20 24 7b 72 65 62  6f 6f 74 5f 6d 6f 64 65  |st 
${reboot_mode|
000a5b80  7d 20 3d 20 66 61 63 74  6f 72 79 5f 72 65 73 65  |} = 
factory_rese|
000a5b90  74 3b 20 74 68 65 6e 20  64 65 66 65 6e 76 5f 72  |t; then 
defenv_r|
000a5ba0  65 73 65 72 76 20 61 6d  6c 5f 64 74 3b 73 65 74  |eserv 
aml_dt;set|
000a5bb0  65 6e 76 20 75 70 67 72  61 64 65 5f 73 74 65 70  |env 
upgrade_step|
000a5bc0  20 32 3b 20 73 61 76 65  3b 66 69 3b 00 73 74 6f  | 2; 
save;fi;.sto|
000a5bd0  72 65 61 72 67 73 3d 73  65 74 65 6e 76 20 62 6f 
|reargs=setenv bo|
000a5be0  6f 74 61 72 67 73 20 24  7b 69 6e 69 74 61 72 67  |otargs 
${initarg|
000a5bf0  73 7d 20 6c 6f 67 6f 3d  24 7b 64 69 73 70 6c 61  |s} 
logo=${displa|
000a5c00  79 5f 6c 61 79 65 72 7d  2c 6c 6f 61 64 65 64 2c 
|y_layer},loaded,|
000a5c10  24 7b 66 62 5f 61 64 64  72 7d 2c 24 7b 6f 75 74 
|${fb_addr},${out|
000a5c20  70 75 74 6d 6f 64 65 7d  20 68 64 6d 69 6d 6f 64 |putmode} 
hdmimod|
000a5c30  65 3d 24 7b 68 64 6d 69  6d 6f 64 65 7d 20 63 76 
|e=${hdmimode} cv|
000a5c40  62 73 6d 6f 64 65 3d 24  7b 63 76 62 73 6d 6f 64 
|bsmode=${cvbsmod|
000a5c50  65 7d 20 68 64 6d 69 74  78 3d 24 7b 63 65 63 63  |e} 
hdmitx=${cecc|
000a5c60  6f 6e 66 69 67 7d 20 61  6e 64 72 6f 69 64 62 6f  |onfig} 
androidbo|
000a5c70  6f 74 2e 66 69 72 73 74  62 6f 6f 74 3d 24 7b 66 
|ot.firstboot=${f|
000a5c80  69 72 73 74 62 6f 6f 74  7d 3b 20 72 75 6e 20 63 |irstboot}; 
run c|
000a5c90  6d 64 6c 69 6e 65 5f 6b  65 79 73 3b 00 73 77 69 
|mdline_keys;.swi|
000a5ca0  74 63 68 5f 62 6f 6f 74  6d 6f 64 65 3d 67 65 74 
|tch_bootmode=get|
000a5cb0  5f 72 65 62 6f 6f 74 6d  6f 64 65 3b 69 66 20 74 
|_rebootmode;if t|
000a5cc0  65 73 74 20 24 7b 72 65  62 6f 6f 74 5f 6d 6f 64  |est 
${reboot_mod|
000a5cd0  65 7d 20 3d 20 66 61 63  74 6f 72 79 5f 72 65 73  |e} = 
factory_res|
000a5ce0  65 74 3b 20 74 68 65 6e  20 72 75 6e 20 72 65 63  |et; then 
run rec|
000a5cf0  6f 76 65 72 79 5f 66 72  6f 6d 5f 66 6c 61 73 68 
|overy_from_flash|
000a5d00  3b 65 6c 73 65 20 69 66  20 74 65 73 74 20 24 7b  |;else if 
test ${|
000a5d10  72 65 62 6f 6f 74 5f 6d  6f 64 65 7d 20 3d 20 75 |reboot_mode} 
= u|
000a5d20  70 64 61 74 65 3b 20 74  68 65 6e 20 72 75 6e 20  |pdate; then 
run |
000a5d30  75 70 64 61 74 65 3b 65  6c 73 65 20 69 66 20 74 |update;else 
if t|
000a5d40  65 73 74 20 24 7b 72 65  62 6f 6f 74 5f 6d 6f 64  |est 
${reboot_mod|
000a5d50  65 7d 20 3d 20 63 6f 6c  64 5f 62 6f 6f 74 3b 20  |e} = 
cold_boot; |
000a5d60  74 68 65 6e 20 72 75 6e  20 74 72 79 5f 61 75 74  |then run 
try_aut|
000a5d70  6f 5f 62 75 72 6e 3b 20  66 69 3b 66 69 3b 66 69  |o_burn; 
fi;fi;fi|
000a5d80  3b 00 73 74 6f 72 65 62  6f 6f 74 3d 69 66 20 69 
|;.storeboot=if i|
000a5d90  6d 67 72 65 61 64 20 6b  65 72 6e 65 6c 20 62 6f  |mgread 
kernel bo|
000a5da0  6f 74 20 24 7b 6c 6f 61  64 61 64 64 72 7d 3b 20  |ot 
${loadaddr}; |
000a5db0  74 68 65 6e 20 73 74 6f  72 65 20 64 74 62 20 72  |then store 
dtb r|
000a5dc0  65 61 64 20 24 64 74 62  5f 6d 65 6d 5f 61 64 64  |ead 
$dtb_mem_add|
000a5dd0  72 3b 20 62 6f 6f 74 6d  20 24 7b 6c 6f 61 64 61  |r; bootm 
${loada|
000a5de0  64 64 72 7d 3b 20 66 69  3b 72 75 6e 20 75 70 64  |ddr}; 
fi;run upd|
000a5df0  61 74 65 3b 00 66 61 63  74 6f 72 79 5f 72 65 73 
|ate;.factory_res|
000a5e00  65 74 5f 70 6f 77 65 72  6f 66 66 5f 70 72 6f 74 
|et_poweroff_prot|
000a5e10  65 63 74 3d 65 63 68 6f  20 77 69 70 65 5f 64 61 |ect=echo 
wipe_da|
000a5e20  74 61 3d 24 7b 77 69 70  65 5f 64 61 74 61 7d 3b 
|ta=${wipe_data};|
000a5e30  20 65 63 68 6f 20 77 69  70 65 5f 63 61 63 68 65  | echo 
wipe_cache|
000a5e40  3d 24 7b 77 69 70 65 5f  63 61 63 68 65 7d 3b 69 
|=${wipe_cache};i|
000a5e50  66 20 74 65 73 74 20 24  7b 77 69 70 65 5f 64 61  |f test 
${wipe_da|
000a5e60  74 61 7d 20 3d 20 66 61  69 6c 65 64 3b 20 74 68  |ta} = 
failed; th|
000a5e70  65 6e 20 72 75 6e 20 69  6e 69 74 5f 64 69 73 70  |en run 
init_disp|
000a5e80  6c 61 79 3b 20 72 75 6e  20 73 74 6f 72 65 61 72  |lay; run 
storear|
000a5e90  67 73 3b 69 66 20 6d 6d  63 69 6e 66 6f 3b 20 74  |gs;if 
mmcinfo; t|
000a5ea0  68 65 6e 20 72 75 6e 20  72 65 63 6f 76 65 72 79  |hen run 
recovery|
000a5eb0  5f 66 72 6f 6d 5f 73 64  63 61 72 64 3b 66 69 3b 
|_from_sdcard;fi;|
000a5ec0  69 66 20 75 73 62 20 73  74 61 72 74 20 30 3b 20  |if usb 
start 0; |
000a5ed0  74 68 65 6e 20 72 75 6e  20 72 65 63 6f 76 65 72  |then run 
recover|
000a5ee0  79 5f 66 72 6f 6d 5f 75  64 69 73 6b 3b 66 69 3b 
|y_from_udisk;fi;|
000a5ef0  72 75 6e 20 72 65 63 6f  76 65 72 79 5f 66 72 6f  |run 
recovery_fro|
000a5f00  6d 5f 66 6c 61 73 68 3b  66 69 3b 20 69 66 20 74 |m_flash;fi; 
if t|
000a5f10  65 73 74 20 24 7b 77 69  70 65 5f 63 61 63 68 65  |est 
${wipe_cache|
000a5f20  7d 20 3d 20 66 61 69 6c  65 64 3b 20 74 68 65 6e  |} = failed; 
then|
000a5f30  20 72 75 6e 20 69 6e 69  74 5f 64 69 73 70 6c 61  | run 
init_displa|
000a5f40  79 3b 20 72 75 6e 20 73  74 6f 72 65 61 72 67 73  |y; run 
storeargs|
000a5f50  3b 69 66 20 6d 6d 63 69  6e 66 6f 3b 20 74 68 65  |;if 
mmcinfo; the|
000a5f60  6e 20 72 75 6e 20 72 65  63 6f 76 65 72 79 5f 66  |n run 
recovery_f|
000a5f70  72 6f 6d 5f 73 64 63 61  72 64 3b 66 69 3b 69 66 
|rom_sdcard;fi;if|
000a5f80  20 75 73 62 20 73 74 61  72 74 20 30 3b 20 74 68  | usb start 
0; th|
000a5f90  65 6e 20 72 75 6e 20 72  65 63 6f 76 65 72 79 5f  |en run 
recovery_|
000a5fa0  66 72 6f 6d 5f 75 64 69  73 6b 3b 66 69 3b 72 75 
|from_udisk;fi;ru|
000a5fb0  6e 20 72 65 63 6f 76 65  72 79 5f 66 72 6f 6d 5f  |n 
recovery_from_|
000a5fc0  66 6c 61 73 68 3b 66 69  3b 20 00 75 70 64 61 74 |flash;fi; 
.updat|
000a5fd0  65 3d 72 75 6e 20 75 73  62 5f 62 75 72 6e 69 6e  |e=run 
usb_burnin|
000a5fe0  67 3b 20 72 75 6e 20 73  64 63 5f 62 75 72 6e 69  |g; run 
sdc_burni|
000a5ff0  6e 67 3b 20 69 66 20 6d  6d 63 69 6e 66 6f 3b 20  |ng; if 
mmcinfo; |
000a6000  74 68 65 6e 20 72 75 6e  20 72 65 63 6f 76 65 72  |then run 
recover|
000a6010  79 5f 66 72 6f 6d 5f 73  64 63 61 72 64 3b 66 69 
|y_from_sdcard;fi|
000a6020  3b 69 66 20 75 73 62 20  73 74 61 72 74 20 30 3b  |;if usb 
start 0;|
000a6030  20 74 68 65 6e 20 72 75  6e 20 72 65 63 6f 76 65  | then run 
recove|
000a6040  72 79 5f 66 72 6f 6d 5f  75 64 69 73 6b 3b 66 69 
|ry_from_udisk;fi|
000a6050  3b 72 75 6e 20 72 65 63  6f 76 65 72 79 5f 66 72  |;run 
recovery_fr|
000a6060  6f 6d 5f 66 6c 61 73 68  3b 00 75 70 64 61 74 65 
|om_flash;.update|
000a6070  5f 75 64 69 73 6b 3d 69  66 20 75 73 62 20 73 74 |_udisk=if 
usb st|
000a6080  61 72 74 20 30 3b 20 74  68 65 6e 20 72 75 6e 20  |art 0; then 
run |
000a6090  72 65 63 6f 76 65 72 79  5f 66 72 6f 6d 5f 75 64 
|recovery_from_ud|
000a60a0  69 73 6b 3b 66 69 3b 00  75 70 64 61 74 65 5f 73 
|isk;fi;.update_s|
000a60b0  64 63 61 72 64 3d 69 66  20 6d 6d 63 69 6e 66 6f |dcard=if 
mmcinfo|
000a60c0  3b 20 74 68 65 6e 20 72  75 6e 20 72 65 63 6f 76  |; then run 
recov|
000a60d0  65 72 79 5f 66 72 6f 6d  5f 73 64 63 61 72 64 3b 
|ery_from_sdcard;|
000a60e0  66 69 3b 00 72 65 63 6f  76 65 72 79 5f 66 72 6f 
|fi;.recovery_fro|
000a60f0  6d 5f 73 64 63 61 72 64  3d 69 66 20 66 61 74 6c |m_sdcard=if 
fatl|
000a6100  6f 61 64 20 6d 6d 63 20  30 20 24 7b 6c 6f 61 64  |oad mmc 0 
${load|
000a6110  61 64 64 72 7d 20 61 6d  6c 5f 61 75 74 6f 73 63  |addr} 
aml_autosc|
000a6120  72 69 70 74 3b 20 74 68  65 6e 20 61 75 74 6f 73  |ript; then 
autos|
000a6130  63 72 20 24 7b 6c 6f 61  64 61 64 64 72 7d 3b 20  |cr 
${loadaddr}; |
000a6140  66 69 3b 69 66 20 66 61  74 6c 6f 61 64 20 6d 6d  |fi;if 
fatload mm|
000a6150  63 20 30 20 24 7b 6c 6f  61 64 61 64 64 72 7d 20  |c 0 
${loadaddr} |
000a6160  72 65 63 6f 76 65 72 79  2e 69 6d 67 3b 20 74 68 
|recovery.img; th|
000a6170  65 6e 20 69 66 20 66 61  74 6c 6f 61 64 20 6d 6d  |en if 
fatload mm|
000a6180  63 20 30 20 24 7b 64 74  62 5f 6d 65 6d 5f 61 64  |c 0 
${dtb_mem_ad|
000a6190  64 72 7d 20 64 74 62 2e  69 6d 67 3b 20 74 68 65  |dr} 
dtb.img; the|
000a61a0  6e 20 65 63 68 6f 20 73  64 20 64 74 62 2e 69 6d  |n echo sd 
dtb.im|
000a61b0  67 20 6c 6f 61 64 65 64  3b 20 66 69 3b 62 6f 6f  |g loaded; 
fi;boo|
000a61c0  74 6d 20 24 7b 6c 6f 61  64 61 64 64 72 7d 3b 66  |tm 
${loadaddr};f|
000a61d0  69 3b 00 72 65 63 6f 76  65 72 79 5f 66 72 6f 6d 
|i;.recovery_from|
000a61e0  5f 75 64 69 73 6b 3d 69  66 20 66 61 74 6c 6f 61 |_udisk=if 
fatloa|
000a61f0  64 20 75 73 62 20 30 20  24 7b 6c 6f 61 64 61 64  |d usb 0 
${loadad|
000a6200  64 72 7d 20 61 6d 6c 5f  61 75 74 6f 73 63 72 69  |dr} 
aml_autoscri|
000a6210  70 74 3b 20 74 68 65 6e  20 61 75 74 6f 73 63 72  |pt; then 
autoscr|
000a6220  20 24 7b 6c 6f 61 64 61  64 64 72 7d 3b 20 66 69  | 
${loadaddr}; fi|
000a6230  3b 69 66 20 66 61 74 6c  6f 61 64 20 75 73 62 20  |;if fatload 
usb |
000a6240  30 20 24 7b 6c 6f 61 64  61 64 64 72 7d 20 72 65  |0 
${loadaddr} re|
000a6250  63 6f 76 65 72 79 2e 69  6d 67 3b 20 74 68 65 6e |covery.img; 
then|
000a6260  20 69 66 20 66 61 74 6c  6f 61 64 20 75 73 62 20  | if fatload 
usb |
000a6270  30 20 24 7b 64 74 62 5f  6d 65 6d 5f 61 64 64 72  |0 
${dtb_mem_addr|
000a6280  7d 20 64 74 62 2e 69 6d  67 3b 20 74 68 65 6e 20  |} dtb.img; 
then |
000a6290  65 63 68 6f 20 75 64 69  73 6b 20 64 74 62 2e 69  |echo udisk 
dtb.i|
000a62a0  6d 67 20 6c 6f 61 64 65  64 3b 20 66 69 3b 62 6f  |mg loaded; 
fi;bo|
000a62b0  6f 74 6d 20 24 7b 6c 6f  61 64 61 64 64 72 7d 3b  |otm 
${loadaddr};|
000a62c0  66 69 3b 00 72 65 63 6f  76 65 72 79 5f 66 72 6f 
|fi;.recovery_fro|
000a62d0  6d 5f 66 6c 61 73 68 3d  69 66 20 69 6d 67 72 65 |m_flash=if 
imgre|
000a62e0  61 64 20 6b 65 72 6e 65  6c 20 72 65 63 6f 76 65  |ad kernel 
recove|
000a62f0  72 79 20 24 7b 6c 6f 61  64 61 64 64 72 7d 3b 20  |ry 
${loadaddr}; |
000a6300  74 68 65 6e 20 62 6f 6f  74 6d 20 24 7b 6c 6f 61  |then bootm 
${loa|
000a6310  64 61 64 64 72 7d 3b 20  66 69 00 69 6e 69 74 5f  |daddr}; 
fi.init_|
000a6320  64 69 73 70 6c 61 79 3d  68 64 6d 69 74 78 20 68 
|display=hdmitx h|
000a6330  70 64 3b 6f 73 64 20 6f  70 65 6e 3b 6f 73 64 20  |pd;osd 
open;osd |
000a6340  63 6c 65 61 72 3b 76 6f  75 74 20 6f 75 74 70 75 |clear;vout 
outpu|
000a6350  74 20 24 7b 6f 75 74 70  75 74 6d 6f 64 65 7d 3b  |t 
${outputmode};|
000a6360  69 6d 67 72 65 61 64 20  70 69 63 20 6c 6f 67 6f  |imgread pic 
logo|
000a6370  20 62 6f 6f 74 75 70 20  24 6c 6f 61 64 61 64 64  | bootup 
$loadadd|
000a6380  72 3b 62 6d 70 20 64 69  73 70 6c 61 79 20 24 62  |r;bmp 
display $b|
000a6390  6f 6f 74 75 70 5f 6f 66  66 73 65 74 3b 62 6d 70 
|ootup_offset;bmp|
000a63a0  20 73 63 61 6c 65 00 63  6d 64 6c 69 6e 65 5f 6b  | 
scale.cmdline_k|
000a63b0  65 79 73 3d 69 66 20 6b  65 79 6d 61 6e 20 69 6e  |eys=if 
keyman in|
000a63c0  69 74 20 30 78 31 32 33  34 3b 20 74 68 65 6e 20  |it 0x1234; 
then |
000a63d0  69 66 20 6b 65 79 6d 61  6e 20 72 65 61 64 20 75  |if keyman 
read u|
000a63e0  73 69 64 20 24 7b 6c 6f  61 64 61 64 64 72 7d 20  |sid 
${loadaddr} |
000a63f0  73 74 72 3b 20 74 68 65  6e 20 73 65 74 65 6e 76  |str; then 
setenv|
000a6400  20 62 6f 6f 74 61 72 67  73 20 24 7b 62 6f 6f 74  | bootargs 
${boot|
000a6410  61 72 67 73 7d 20 61 6e  64 72 6f 69 64 62 6f 6f  |args} 
androidboo|
000a6420  74 2e 73 65 72 69 61 6c  6e 6f 3d 24 7b 75 73 69 
|t.serialno=${usi|
000a6430  64 7d 3b 66 69 3b 69 66  20 6b 65 79 6d 61 6e 20 |d};fi;if 
keyman |
000a6440  72 65 61 64 20 6d 61 63  20 24 7b 6c 6f 61 64 61  |read mac 
${loada|
000a6450  64 64 72 7d 20 73 74 72  3b 20 74 68 65 6e 20 73  |ddr} str; 
then s|
000a6460  65 74 65 6e 76 20 62 6f  6f 74 61 72 67 73 20 24  |etenv 
bootargs $|
000a6470  7b 62 6f 6f 74 61 72 67  73 7d 20 6d 61 63 3d 24 |{bootargs} 
mac=$|
000a6480  7b 6d 61 63 7d 20 61 6e  64 72 6f 69 64 62 6f 6f  |{mac} 
androidboo|
000a6490  74 2e 6d 61 63 3d 24 7b  6d 61 63 7d 3b 66 69 3b 
|t.mac=${mac};fi;|
000a64a0  69 66 20 6b 65 79 6d 61  6e 20 72 65 61 64 20 64  |if keyman 
read d|
000a64b0  65 76 69 63 65 69 64 20  24 7b 6c 6f 61 64 61 64  |eviceid 
${loadad|
000a64c0  64 72 7d 20 73 74 72 3b  20 74 68 65 6e 20 73 65  |dr} str; 
then se|
000a64d0  74 65 6e 76 20 62 6f 6f  74 61 72 67 73 20 24 7b  |tenv 
bootargs ${|
000a64e0  62 6f 6f 74 61 72 67 73  7d 20 61 6e 64 72 6f 69 |bootargs} 
androi|
000a64f0  64 62 6f 6f 74 2e 64 65  76 69 63 65 69 64 3d 24 
|dboot.deviceid=$|
000a6500  7b 64 65 76 69 63 65 69  64 7d 3b 66 69 3b 66 69 
|{deviceid};fi;fi|
000a6510  3b 00 75 70 67 72 61 64  65 5f 6b 65 79 3d 69 66 
|;.upgrade_key=if|
000a6520  20 67 70 69 6f 20 69 6e  70 75 74 20 47 50 49 4f  | gpio input 
GPIO|
000a6530  41 4f 5f 33 3b 20 74 68  65 6e 20 65 63 68 6f 20  |AO_3; then 
echo |
000a6540  64 65 74 65 63 74 20 75  70 67 72 61 64 65 20 6b  |detect 
upgrade k|
000a6550  65 79 3b 20 72 75 6e 20  75 70 64 61 74 65 3b 66  |ey; run 
update;f|
000a6560  69 3b 00 75 70 64 61 74  65 5f 6b 65 79 3d 73 61 
|i;.update_key=sa|
000a6570  72 61 64 63 20 6f 70 65  6e 20 30 3b 20 69 66 20  |radc open 
0; if |
000a6580  73 61 72 61 64 63 20 67  65 74 5f 69 6e 5f 72 61  |saradc 
get_in_ra|
000a6590  6e 67 65 20 30 20 30 78  35 30 3b 20 74 68 65 6e  |nge 0 0x50; 
then|
000a65a0  20 6d 73 6c 65 65 70 20  35 30 3b 20 69 66 20 73  | msleep 50; 
if s|
000a65b0  61 72 61 64 63 20 67 65  74 5f 69 6e 5f 72 61 6e  |aradc 
get_in_ran|
000a65c0  67 65 20 30 20 30 78 35  30 3b 20 74 68 65 6e 20  |ge 0 0x50; 
then |
000a65d0  65 63 68 6f 20 75 70 64  61 74 65 20 62 79 20 6b  |echo update 
by k|
000a65e0  65 79 2e 2e 2e 3b 20 72  75 6e 20 75 70 64 61 74  |ey...; run 
updat|
000a65f0  65 3b 20 66 69 3b 66 69  00 69 72 72 65 6d 6f 74  |e; 
fi;fi.irremot|
000a6600  65 5f 75 70 64 61 74 65  3d 69 72 6b 65 79 20 30 
|e_update=irkey 0|
000a6610  78 62 61 34 35 66 66 30  30 20 30 78 62 61 34 35 |xba45ff00 
0xba45|
000a6620  39 34 63 61 20 31 30 30  32 30 30 30 3b 69 66 20  |94ca 
1002000;if |
000a6630  74 65 73 74 20 24 7b 69  72 6b 65 79 5f 76 61 6c  |test 
${irkey_val|
000a6640  75 65 7d 20 3d 20 75 70  64 61 74 65 3b 20 74 68  |ue} = 
update; th|
000a6650  65 6e 20 72 75 6e 20 75  70 64 61 74 65 3b 65 6c  |en run 
update;el|
000a6660  73 65 20 69 66 20 74 65  73 74 20 24 7b 69 72 6b  |se if test 
${irk|
000a6670  65 79 5f 76 61 6c 75 65  7d 20 3d 20 75 70 64 61 |ey_value} = 
upda|
000a6680  74 65 5f 73 64 63 61 72  64 3b 20 74 68 65 6e 20 |te_sdcard; 
then |
000a6690  72 75 6e 20 75 70 64 61  74 65 5f 73 64 63 61 72  |run 
update_sdcar|
000a66a0  64 3b 65 6c 73 65 20 69  66 20 74 65 73 74 20 24  |d;else if 
test $|
000a66b0  7b 69 72 6b 65 79 5f 76  61 6c 75 65 7d 20 3d 20 
|{irkey_value} = |
000a66c0  75 73 62 5f 62 75 72 6e  69 6e 67 3b 20 74 68 65 |usb_burning; 
the|
000a66d0  6e 20 72 75 6e 20 75 73  62 5f 62 75 72 6e 69 6e  |n run 
usb_burnin|
000a66e0  67 3b 65 6c 73 65 20 69  66 20 74 65 73 74 20 24  |g;else if 
test $|
000a66f0  7b 69 72 6b 65 79 5f 76  61 6c 75 65 7d 20 3d 20 
|{irkey_value} = |
000a6700  75 70 64 61 74 65 5f 75  64 69 73 6b 3b 20 74 68 
|update_udisk; th|
000a6710  65 6e 20 72 75 6e 20 75  70 64 61 74 65 5f 75 64  |en run 
update_ud|
000a6720  69 73 6b 3b 66 69 3b 66  69 3b 66 69 3b 66 69 3b 
|isk;fi;fi;fi;fi;|
000a6730

###
So how can i get the right numbers for the config ?


More information about the U-Boot mailing list