NoiZe  
              
                  
                    April 20, 2018,  1:20pm
                   
                  13 
               
             
            
              Hello Frank-w,
uboot is also much code if you don’t know where to begin search ;(
 
I think the file you are looking for is u-boot-mt/include/configs/mt7623_evb.h. On line 445 the U-Boot Environment is defined. If you add your 2 new menu lines there and recompile u-boot it should work.
#define ENV_BOOT_MENU \
    "bootmenu_0=1. System Load Linux to SDRAM via TFTP.=run boot0\0" \
    "bootmenu_1=2. System Load Linux Kernel then write to Flash via TFTP.=run boot1\0" \
    "bootmenu_2=3. Boot Linux from SD.=run boot10\0" \
    "bootmenu_3=4. System Load Boot Loader then write to Flash via TFTP.=run boot3\0" \
    "bootmenu_4=5. System Load Linux Kernel then write to Flash via Serial.=run boot4\0" \
    "bootmenu_5=6. System Load Boot Loader then write to Flash via Serial.=run boot5\0" \
    "bootmenu_6=7. Boot system code via Flash.=run boot2\0" \
    "bpiver=1\0" \
    "bpi=bananapi\0" \
    "board=bpi-r2\0" \
    "chip=MT7623N\0" \
    "service=linux\0" \
    "scriptaddr=0x83000000\0" \
    "device=mmc\0" \
    "partition=1:1\0" \
    "kernel=uImage\0" \
    "root=/dev/mmcblk0p2\0" \
    "debug=7\0" \
    "bootenv=uEnv.txt\0" \
    "checksd=fatinfo ${device} 1:1\0" \
    "loadbootenv=fatload ${device} ${partition} ${scriptaddr} ${bpi}/${board}/${service}/${bootenv} || fatload ${device} ${partition} ${scriptaddr} ${bootenv}\0" \
    "boot_normal=if run checksd; then echo Boot from SD ; setenv partition 1:1; else echo Boot from eMMC ; mmc init 0 ; setenv partition 0:1 ; fi; if run loadbootenv; then echo Loaded environment from ${bootenv}; env import -t ${scriptaddr} ${filesize}; fi; run uenvcmd; fatload mmc 0:1 ${loadaddr} ${bpi}/${board}/${service}/${kernel}; bootm\0" \
    "bootmenu_delay=30\0" \
    "" 
            
              1 Like 
            
            
                
           
          
            
              
                frank-w  
              
                  
                    April 20, 2018,  5:16pm
                   
                  14 
               
             
            
              I will try that, in my case it will help.
but that solves not the problem with not loading environment from uEnv.txt before displaying menu.So uboot is not really configurable without recompilation/reinstall
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    April 22, 2018,  7:01pm
                   
                  15 
               
             
            
              Basicly it works…i try to optimize vars and then push it to my repo
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    April 23, 2018,  6:32pm
                   
                  16 
               
             
            
              optimizing vars seems not to work…here is what i tried:
"bootmenu_9=10. Boot Kernel 4.16.=run boot416\0" \
"boot416=run newloadenv; setenv kernel ${kernel416}; run newboot\0" \
"kernel416=uImage_4.16\0" \
"newloadenv=mmc init; if run checksd; then echo Boot from SD ; setenv partition 1:1; else echo Boot from eMMC ; mmc init 0 ; setenv partition 0:1 ; fi; if run loadbootenv; then echo Loaded environment  from ${bootenv}; env import -t ${scriptaddr} ${filesize}; fi; run uenvcmd\0" \
"newboot=fatload mmc ${partition} ${loadaddr} ${bpi}/${board}/${service}/${kernel}; bootm\0" \
the steps should be
load environment from uEnv.txt 
set var “kernel” to the content of env-var kernel416 
boot with new “kernel” var 
 
instead the old kernel-var (kernel=uImage) is used (overwrite it seems not to work, also build-in content is not used)
any idea?
             
            
              
            
                
           
          
            
              
                Jackzeng  
              
                  
                    April 24, 2018, 12:01pm
                   
                  17 
               
             
            
              Did you mean after you set uEnv.txt, but  it doesn’t execute when board boot?
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    April 24, 2018, 12:18pm
                   
                  18 
               
             
            
              i modified uEnv.txt, but it is not loaded in my construct for kernel 4.16 or at least my var-setting does not work
             
            
              
            
                
                
           
          
            
              
                frank-w  
              
                  
                    April 25, 2018,  3:13pm
                   
                  19 
               
             
            
              btw. here is my bootlog:
dev_num = 1                                                                     
***size=4096, offset=1577059840, blk_start=3080195, blk_cnt=8                   
*** Warning - bad CRC, using default environment                                
                                                                                
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
Boot From SD(id:1)                                                              
                                                                                
dev_num = 1                                                                     
***size=4096, offset=1577059840, blk_start=3080195, blk_cnt=8                   
*** Warning - bad CRC, using default environment                                
                                                                                
bootargs = board=bpi-r2 earlyprintk console=tty1 fbcon=map:0 console=ttyS0,1152t
Net:   mtk_eth                                                                  
Uip activated                                                                   
  *** U-Boot Boot Menu ***
     1. System Load Linux to SDRAM via TFTP.
     2. System Load Linux Kernel then write to Flash via TFTP.
     3. Boot Linux from SD.
     4. System Load Boot Loader then write to Flash via TFTP.
     5. System Load Linux Kernel then write to Flash via Serial.
     6. System Load Boot Loader then write to Flash via Serial.
     7. Boot system code via Flash.
     8. Boot Kernel 4.4.
     9. Boot Kernel 4.9.
     10. Boot Kernel 4.16.
     U-Boot console
BPI: SD/eMMC SD=1 eMMC=0 id = 1 (drivers/mmc/mediatek/mtk_mmc.c)
__mmc_init ret = 0
ret2 = 1
ret2 = 1
BPI: g_mtk_mmc_block.dev = 1
<= [mmc1 block 0] =>
[0x00000000] 53 44 4d 4d 43 5f 42 4f
[0x00000008] 4f 54 00 00 01 00 00 00
[0x00000010] 00 02 00 00 ff ff ff ff
[0x00000018] ff ff ff ff ff ff ff ff
[0x00000020] ff ff ff ff ff ff ff ff
[0x00000028] ff ff ff ff ff ff ff ff
[0x00000030] ff ff ff ff ff ff ff ff
[0x00000038] ff ff ff ff ff ff ff ff
[0x00000040] ff ff ff ff ff ff ff ff
[0x00000048] ff ff ff ff ff ff ff ff
[0x00000050] ff ff ff ff ff ff ff ff
[0x00000058] ff ff ff ff ff ff ff ff
[0x00000060] ff ff ff ff ff ff ff ff
[0x00000068] ff ff ff ff ff ff ff ff
[0x00000070] ff ff ff ff ff ff ff ff
[0x00000078] ff ff ff ff ff ff ff ff
[0x00000080] ff ff ff ff ff ff ff ff
[0x00000088] ff ff ff ff ff ff ff ff                                            
[0x00000090] ff ff ff ff ff ff ff ff                                            
[0x00000098] ff ff ff ff ff ff ff ff                                            
[0x000000a0] ff ff ff ff ff ff ff ff                                            
[0x000000a8] ff ff ff ff ff ff ff ff                                            
[0x000000b0] ff ff ff ff ff ff ff ff                                            
[0x000000b8] ff ff ff ff ff ff ff ff                                            
[0x000000c0] ff ff ff ff ff ff ff ff                                            
[0x000000c8] ff ff ff ff ff ff ff ff                                            
[0x000000d0] ff ff ff ff ff ff ff ff                                            
[0x000000d8] ff ff ff ff ff ff ff ff                                            
[0x000000e0] ff ff ff ff ff ff ff ff                                            
[0x000000e8] ff ff ff ff ff ff ff ff                                            
[0x000000f0] ff ff ff ff ff ff ff ff                                            
[0x000000f8] ff ff ff ff ff ff ff ff                                            
[0x00000100] ff ff ff ff ff ff ff ff                                            
[0x00000108] ff ff ff ff ff ff ff ff                                            
[0x00000110] ff ff ff ff ff ff ff ff                                            
[0x00000118] ff ff ff ff ff ff ff ff                                            
[0x00000120] ff ff ff ff ff ff ff ff                                            
[0x00000128] ff ff ff ff ff ff ff ff                                            
[0x00000130] ff ff ff ff ff ff ff ff                                            
[0x00000138] ff ff ff ff ff ff ff ff                                            
[0x00000140] ff ff ff ff ff ff ff ff                                            
[0x00000148] ff ff ff ff ff ff ff ff                                            
[0x00000150] ff ff ff ff ff ff ff ff                                            
[0x00000158] ff ff ff ff ff ff ff ff                                            
[0x00000160] ff ff ff ff ff ff ff ff                                            
[0x00000168] ff ff ff ff ff ff ff ff                                            
[0x00000170] ff ff ff ff ff ff ff ff                                            
[0x00000178] ff ff ff ff ff ff ff ff                                            
[0x00000180] ff ff ff ff ff ff ff ff                                            
[0x00000188] ff ff ff ff ff ff ff ff                                            
[0x00000190] ff ff ff ff ff ff ff ff                                            
[0x00000198] ff ff ff ff ff ff ff ff                                            
[0x000001a0] ff ff ff ff ff ff ff ff                                            
[0x000001a8] ff ff ff ff ff ff ff ff                                            
[0x000001b0] ff ff ff ff ff ff ff ff                                            
[0x000001b8] cd d6 0e 00 00 00 00 be                                            
[0x000001c0] 33 0c 0c 61 34 2d 00 20                                            
[0x000001c8] 03 00 00 00 08 00 00 61                                            
[0x000001d0] 35 2d 83 81 cb b6 00 20                                            
[0x000001d8] 0b 00 00 e0 dd 00 00 00                                            
[0x000001e0] 00 00 00 00 00 00 00 00                                            
[0x000001e8] 00 00 00 00 00 00 00 00                                            
[0x000001f0] 00 00 00 00 00 00 00 00                                            
[0x000001f8] 00 00 00 00 00 00 55 aa                                            
                                                                                
Partition Map for MMC device 1  --   Partition Type: DOS                        
                                                                                
Part    Start Sector    Num Sectors     UUID            Type                    
  1     204800          524288          000ed6cd-01     0c                      
  2     729088          14540800        000ed6cd-02     83                      
mmc1 is available                                                               
Interface:  MMC                                                                 
  Device 1: Vendor: Man 000003 Snr 8a0e0900 Rev: 13.10 Prod: SL32G0             
            Type: Removable Hard Disk                                           
            Capacity: 29664.0 MB = 28.9 GB (60751872 x 512)                     
Filesystem: FAT16 "BPI-BOOT   "                                                 
Boot from SD                                                                    
reading bananapi/bpi-r2/linux/uEnv.txt                                          
1190 bytes read in 10 ms (116.2 KiB/s)                                          
Loaded environment from uEnv.txt                                                
Banana Pi bpi-r2 chip: mt7623n Service: linux                                   
reading bananapi/bpi-r2/linux/uImage                                            
6096565 bytes read in 803 ms (7.2 MiB/s)                                        
reading bananapi/berryboot.img                                                  
** Unable to read file bananapi/berryboot.img **                                
bootm flag=0, states=70f                                                        
## Booting kernel from Legacy Image at 84000000 ...                             
   Image Name:   Linux Kernel 4.14.35-main                                      
   Image Type:   ARM Linux Kernel Image (uncompressed)                          
   Data Size:    6096501 Bytes = 5.8 MiB                                        
   Load Address: 80008000                                                       
   Entry Point:  80008000                                                       
   Verifying Checksum ... OK                                                    
   Loading Kernel Image ... OK                                                  
                                                                                
Starting kernel ...              
i modified boot416 like this:
"boot416=run newloadenv; setenv kernel ${kernel416}; printenv; run newboot\0" \
i choose “10. kernel 4.16” but default uImage is loaded…printenv is also not executed
really strange behaviour…
making the steps manually:
BPI-IoT> mmc init
BPI: SD/eMMC SD=1 eMMC=0 id = 1 (drivers/mmc/mediatek/mtk_mmc.c)
__mmc_init ret = 0
ret2 = 1
ret2 = 1
BPI: g_mtk_mmc_block.dev = 1
<= [mmc1 block 0] =>
[0x00000000] 53 44 4d 4d 43 5f 42 4f
[0x00000008] 4f 54 00 00 01 00 00 00
[0x00000010] 00 02 00 00 ff ff ff ff
[0x00000018] ff ff ff ff ff ff ff ff
[0x00000020] ff ff ff ff ff ff ff ff
[0x00000028] ff ff ff ff ff ff ff ff
[0x00000030] ff ff ff ff ff ff ff ff
[0x00000038] ff ff ff ff ff ff ff ff
[0x00000040] ff ff ff ff ff ff ff ff
[0x00000048] ff ff ff ff ff ff ff ff
[0x00000050] ff ff ff ff ff ff ff ff
[0x00000058] ff ff ff ff ff ff ff ff
[0x00000060] ff ff ff ff ff ff ff ff
[0x00000068] ff ff ff ff ff ff ff ff
[0x00000070] ff ff ff ff ff ff ff ff
[0x00000078] ff ff ff ff ff ff ff ff
[0x00000080] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000088] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000090] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000098] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000a0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000a8] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000b0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000b8] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000c0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000c8] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000d0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000d8] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000e0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000e8] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000f0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000000f8] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000100] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000108] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000110] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000118] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000120] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000128] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000130] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000138] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000140] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000148] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000150] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000158] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000160] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000168] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000170] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000178] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000180] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000188] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000190] ff ff ff ff ff ff ff ff                                                                                                                        
[0x00000198] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000001a0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000001a8] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000001b0] ff ff ff ff ff ff ff ff                                                                                                                        
[0x000001b8] cd d6 0e 00 00 00 00 be                                                                                                                        
[0x000001c0] 33 0c 0c 61 34 2d 00 20                                                                                                                        
[0x000001c8] 03 00 00 00 08 00 00 61                                                                                                                        
[0x000001d0] 35 2d 83 81 cb b6 00 20                                                                                                                        
[0x000001d8] 0b 00 00 e0 dd 00 00 00                                                                                                                        
[0x000001e0] 00 00 00 00 00 00 00 00                                                                                                                        
[0x000001e8] 00 00 00 00 00 00 00 00                                                                                                                        
[0x000001f0] 00 00 00 00 00 00 00 00                                                                                                                        
[0x000001f8] 00 00 00 00 00 00 55 aa                                                                                                                        
                                                                                                                                                            
Partition Map for MMC device 1  --   Partition Type: DOS                                                                                                    
                                                                                                                                                            
Part    Start Sector    Num Sectors     UUID            Type                                                                                                
  1     204800          524288          000ed6cd-01     0c                                                                                                  
  2     729088          14540800        000ed6cd-02     83                                                                                                  
mmc1 is available                                                                                                                                           
BPI-IoT> printenv partition                                                                                                                                 
partition=1:1                                                                                                                                               
BPI-IoT> run loadbootenv                                                                                                                                    
reading bananapi/bpi-r2/linux/uEnv.txt                                                                                                                      
1270 bytes read in 10 ms (124 KiB/s)                                                                                                                        
BPI-IoT> env import -t ${scriptaddr} ${filesize}                                                                                                            
BPI-IoT> printenv boot16                                                                                                                                    
## Error: "boot16" not defined                                                                                                                              
BPI-IoT> printenv boot416                                                                                                                                   
boot416=run newloadenv; setenv kernel ${kernel416}; printenv; run newboot                                                                                   
BPI-IoT> printenv kernel416                                                                                                                                 
kernel416=uImage_4.16.4                                                                                                                                     
BPI-IoT> setenv kernel ${kernel416}                                                                                                                         
BPI-IoT> printenv kernel                                                                                                                                    
kernel=uImage_4.16.4                                                                                                                                        
BPI-IoT> run newboot                                                                                                                                        
reading bananapi/bpi-r2/linux/uImage_4.16.4                                                                                                                 
5087956 bytes read in 670 ms (7.2 MiB/s)                                                                                                                    
bootm flag=0, states=70f                                                                                                                                    
## Booting kernel from Legacy Image at 84000000 ...                                                                                                         
   Image Name:   Linux Kernel 4.16.4-main                                                                                                                   
   Image Type:   ARM Linux Kernel Image (uncompressed)                                                                                                      
   Data Size:    5087892 Bytes = 4.9 MiB                                                                                                                    
   Load Address: 80008000                                                                                                                                   
   Entry Point:  80008000                                                                                                                                   
   Verifying Checksum ... OK                                                                                                                                
   Loading Kernel Image ... OK 
            
              
            
                
           
          
            
            
              
Maybe you miss “env import -t ${scriptaddr} ${filesize}”.
Did you check item10,will it run “env import -t ${scriptaddr} ${filesize}”?
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    April 26, 2018, 11:29am
                   
                  21 
               
             
            
              
newloadenv contains the “env import …”, but had some tests without the “run uenvcmd” and the checksd-part there, seems to work, but have to do some more tests
see https://github.com/frank-w/BPI-R2-4.4/commit/200b8f358a9ad087ac929ba5be60b280abefe04e 
but anyway it will be nice if environment is loaded before menu is displayed so uboot can be controlled via uEnv.txt without modifying the code and permanently flash it
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    May 25, 2018, 12:56pm
                   
                  22 
               
             
            
              @Jackzeng  have you looked into it to load uenv.txt before displaying menu?
it is very annoying to patch uboot or using the uboot-console when switching between kernels
             
            
              
            
                
           
          
            
            
              Hello, frank, I have looked it before but not deeply, so what do you mean annoying  when switching kernels? I probably could work this with you lately.
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    May 26, 2018,  5:20am
                   
                  24 
               
             
            
              i have multiple kernels installed in my system and patched uboot to have multiple entries, see commit posted above my last posting.
now i switching between 2 4.16-kernels (wlan/hdmi)…
one defined by using kernel-directive (default entry), one using my kernel416-entry
it would be nice setting the names of bootmenu entries via uEnv.txt, so i have not to reflash uboot when doing these things…
any chance getting a newer uboot to work? maybe with hdmi-support? current uboot give only a purple screen…
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    May 26, 2018,  3:14pm
                   
                  25 
               
             
            
              tried to modify it again…seems i bricked my card…(same with my current github-state)
[PART] load "UBOOT" from 0x0000000000050000 (dev) to 0x81E00000 (mem) [SUCCESS]            
[PART] load speed: 5978KB/s, 300000 bytes, 49ms                                            
[BT_SD_PG] device info 0x8590 0x8A00 0xCB01 0x102                                          
0:dram_rank_size:80000000                                                                  
[PLFM] md_type[0] = 0                                                                      
[PLFM] md_type[1] = 0                                                                      
                                                                                           
[PLFM] boot reason: 0                                                                      
[PLFM] boot mode: 0                                                                        
[PLFM] META COM0: 0                                                                        
[PLFM] <0xFFB7CC10>: 0x0                                                                   
[PLFM] boot time: 1893ms                                                                   
[PLFM] DDR reserve mode: enable = 0, success = 0                                           
                                                                                           
[BLDR] jump to 0x81E00000                                                                  
[BLDR] <0x81E00000>=0xEA00000F                                                             
[BLDR] <0x81E00004>=0xE59FF014
this seems to be a compile-issue…multiple compilations in ubuntu 18.4 (gcc6) failed to boot…compiling in 14.4 works on the first try…
             
            
              
            
                
                
           
          
            
              
                frank-w  
              
                  
                    May 27, 2018,  4:49am
                   
                  26 
               
             
            
              here my logs from build.sh
build_14-4.log  (13,7 KB)
build_18-4.log  (18,6 KB)
in ubuntu 14.4 it works with gcc 4.8.4
in ubuntu 18.4 it does not work…gcc ist 7.3 and arm-linux-gnueabihf-gcc is set to /usr/bin/arm-linux-gnueabihf-gcc-5
i do not work if crosscompiler is really used for uboot…i think it should be
:~$ update-alternatives --config arm-linux-gnueabihf-gcc
There are 2 choices for the alternative arm-linux-gnueabihf-gcc (providing /usr/bin/arm-linux-gnueabihf-gcc).
  Selection    Path                                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/arm-linux-gnueabihf-gcc-5   100       auto mode
  1            /usr/bin/arm-linux-gnueabihf-gcc-5   100       manual mode
  2            /usr/bin/arm-linux-gnueabihf-gcc-7   50        manual mode
i tried to make a manual diff (automatic shows to much differences due to different message formats): diff.txt  (5,3 KB)
any idea why uboot compiled in 18.4 fails to boot? @garywang 
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    May 27, 2018,  5:35pm
                   
                  27 
               
             
            
              my uboot-menu looks now like this:
 *** U-Boot Boot Menu ***
     1. Reload Bootmenu.
     2. Load Environment.
     3. Boot Linux from SD.
     4. Boot Kernel 4.4.
     5. Boot Kernel 4.9.
     6. Boot Kernel 4.14.
     7. Boot Kernel 4.16.
     U-Boot console
  Press UP/DOWN to move, ENTER to select
all entries except the 3rd (default, not changed) loading env from sd first.
definitions:
BPI-IoT>  printenv                                                                                                                                           
arch=arm                                                                                                                                                     
baudrate=115200                                                                                                                                              
board=bpi-r2                                                                                                                                                 
board_name=mt7623_evb                                                                                                                                        
boot0=tftpboot; bootm                                                                                                                                        
boot1=tftpboot;run boot_wr_img;run boot_rd_img;bootm                                                                                                         
boot10=mmc init; run boot_normal; bootm                                                                                                                      
boot2=run boot_rd_img;run rescue;bootm                                                                                                                       
boot3=tftpboot ${loadaddr} u-boot-mtk.bin;run wr_uboot                                                                                                       
boot4=loadb;run boot_wr_img;run boot_rd_img;bootm                                                                                                            
boot414=run newloadenv; setenv kernel ${kernel414}; printenv; run newboot                                                                                    
boot416=run newloadenv; setenv kernel ${kernel416}; printenv; run newboot                                                                                    
boot44=run newloadenv; setenv kernel ${kernel44}; printenv; run newboot                                                                                      
boot49=run newloadenv; setenv kernel ${kernel49}; printenv; run newboot                                                                                      
boot5=loadb;run wr_uboot                                                                                                                                     
boot6=usb start;run boot_wr_img;bootm                                                                                                                        
boot7=http_upgrade 10.10.10.3;run boot_wr_img;run boot_rd_img;bootm                                                                                          
boot8=mmc init; fatload mmc 0:1 ${loadaddr} "root_uImage";run boot_wr_img; bootm                                                                             
boot9=mmc init; fatload mmc 0:1 ${loadaddr} ${bpi}/${board}/${service}/${kernel}; bootm                                                                      
boot_normal=if run checksd; then echo Boot from SD ; setenv partition 1:1; else echo Boot from eMMC ; mmc init 0 ; setenv partition 0:1 ; fi; if run loadboom
boot_rd_img=mmc device 0;mmc read ${loadaddr} 0xA00 1;image_blks 512;mmc read ${loadaddr} 0xA00 ${img_blks}                                                  
boot_rd_sec_img=mmc device 0;mmc read ${loadaddr} 0x10A00 1;image_blks 512;mmc read ${loadaddr} 0x10A00 ${img_blks}                                          
boot_wr_img=image_check; if test ${img_result} = good; then image_blks 512 ${filesize};mmc device 0;mmc write ${loadaddr} 0xA00 ${img_blks}; fi              
boot_wr_sec_img=image_check; if test ${img_result} = good; then image_blks 512 ${filesize};mmc device 0;mmc write ${loadaddr} 0x10A00 ${img_blks}; fi        
bootargs=board=bpi-r2 earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200 vmalloc=496M debug=7 initcall_debug=0 root=/dev/mmcblk0p2 rootfstype=ext4 rot
bootcmd=No                                                                                                                                                   
bootdelay=3                                                                                                                                                  
bootenv=uEnv.txt                                                                                                                                             
bootfile=iverson_uImage                                                                                                                                      
bootmenu_0=1. Reload Bootmenu.=run reloadmenu                                                                                                                
bootmenu_1=2. Load Environment.=run newloadenv                                                                                                               
bootmenu_2=3. Boot Linux from SD.=run boot10                                                                                                                 
bootmenu_3=4. Boot Kernel 4.4.=run boot44                                                                                                                    
bootmenu_4=5. Boot Kernel 4.9.=run boot49                                                                                                                    
bootmenu_5=6. Boot Kernel 4.14.=run boot414                                                                                                                  
bootmenu_6=7. Boot Kernel 4.16.=run boot416                                                                                                                  
bootmenu_delay=30                                                                                                                                            
bpi=bananapi                                                                                                                                                 
bpiver=1                                                                                                                                                     
checksd=fatinfo ${device} 1:1                                                                                                                                
chip=MT7623N                                                                                                                                                 
cpu=armv7                                                                                                                                                    
debug=7                                                                                                                                                      
device=mmc                                                                                                                                                   
duimage_backup=mmc device 0;mmc read ${loadaddr} 0x10A00 1;image_check; if test ${img_result} = bad;then run boot_rd_img; serious_image_check; if test ${imgi
duimage_recovery=serious_image_check; if test ${img_result} = bad; then run boot_rd_sec_img;serious_image_check; if test ${img_result} = good; then reco_mesi
ethact=mtk_eth                                                                                                                                               
ethaddr=00:0C:E7:11:22:33                                                                                                                                    
ipaddr=10.10.10.254                                                                                                                                          
kernel=uImage                                                                                                                                                
kernel414=uImage_4.14                                                                                                                                        
kernel416=uImage_4.16                                                                                                                                        
kernel44=uImage_4.4                                                                                                                                          
kernel49=uImage_4.9                                                                                                                                          
loadaddr=0x84000000                                                                                                                                          
loadbootenv=fatload ${device} ${partition} ${scriptaddr} ${bpi}/${board}/${service}/${bootenv} || fatload ${device} ${partition} ${scriptaddr} ${bootenv}    
newboot=fatload mmc ${partition} ${loadaddr} ${bpi}/${board}/${service}/${kernel}; bootm                                                                     
newchecksd=if run checksd; then echo Boot from SD ; setenv partition 1:1; else echo Boot from eMMC ; mmc init 0 ; setenv partition 0:1 ; fi;                 
newloadenv=mmc init; run loadbootenv; env import -t ${scriptaddr} ${filesize};                                                                               
partition=1:1                                                                                                                                                
reloadmenu=run newloadenv;bootmenu                                                                                                         
rescue=serious_image_check;                                                                                                                                  
root=/dev/mmcblk0p2                                                                                                                                          
scriptaddr=0x83000000                                                                                                                                        
serverip=10.10.10.3                                                                                                                                          
service=linux                                                                                                                                                
soc=mt7623                                                                                                                                                   
stderr=serial                                                                                                                                                
stdin=serial                                                                                                                                                 
stdout=serial                                                                                                                                                
vendor=mediatek                                                                                                                                              
wr_uboot=uboot_check;if test ${uboot_result} = good; then mmc device 0;mmc write ${loadaddr} 0x200 0x200;reset; fi                                           
                                                                                                                                                             
Environment size: 3937/4092 bytes 
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    June 2, 2018,  8:37am
                   
                  28 
               
             
            
              Uboot does not work if i compile it in ubuntu 18.4 using linaeo gcc arm-gnueabihf 5.5. Any idea why?
Kernel with wifi-driver cannot be compiled with gcc7
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    June 23, 2018,  7:55am
                   
                  29 
               
             
            
              is it possible to set the default entry via an environment-variable from uEnv.txt?
@Jackzeng 
             
            
              
            
                
           
          
            
            
              what do you mean default entry?
entry what process?
             
            
              
            
                
           
          
            
              
                frank-w  
              
                  
                    June 28, 2018, 10:55am
                   
                  31 
               
             
            
              the numer that is selected in the bootmenu…currently it is always the 3rd
imho in code it is done via a const:
but imho there should be a way to set this via uenv.txt
maybe we can modify this to use a env-variable:
  
  
    
	int len; 
	char *sep; 
	struct bootmenu_entry *entry; 
 
	menu = malloc(sizeof(struct bootmenu_data)); 
	if (!menu) 
		return NULL; 
 
	menu->delay = delay; 
#if defined(CONFIG_MENU_ACTIVE_ENTRY) 
menu->active = CONFIG_MENU_ACTIVE_ENTRY; 
#else 
	menu->active = 0; 
#endif 
	menu->first = NULL; 
 
	while ((option = bootmenu_getoption(i))) { 
		sep = strchr(option, '='); 
		if (!sep) { 
			printf("Invalid bootmenu entry: %s\n", option); 
			break; 
  
  
    
    
  
  
 
currently i don’t know how to access env-vars here, bit the code should look like this:
#if defined(CONFIG_MENU_ACTIVE_ENTRY)
	menu->active = CONFIG_MENU_ACTIVE_ENTRY;
#else
	menu->active = 0;
#endif
if (ENV_MENU_ACTIVE_ENTRY) {menu->active = ENV_MENU_ACTIVE_ENTRY;}
this seems to be the key:
  
  
    
	int delay = 10; 
 
#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) 
	delay = CONFIG_BOOTDELAY; 
#endif 
 
	if (argc >= 2) 
		delay_str = argv[1]; 
 
	if (!delay_str) 
		delay_str = getenv("bootmenu_delay"); 
 
	if (delay_str) 
		delay = (int)simple_strtol(delay_str, NULL, 10); 
 
	bootmenu_show(delay); 
	return 0; 
} 
 
U_BOOT_CMD( 
	bootmenu, 2, 1, do_bootmenu, 
  
  
    
    
  
  
 
i can add a new env-var like it’s done for bootmenu-delay…maybe i have to change the header of bootmenu_create and bootmenu_show to pass the new var like delay
             
            
              
            
                
           
          
            
            
              Hello, frank, after I checked, I will post you.