zmatt

beagleboard.org 2020-04-06 image u-boot (2019.04-00002-g07d5700e21) boot script summary

Dec 9th, 2021
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 15.35 KB | None | 0 0
  1. bootcmd() {
  2.     # ...
  3.     run findfdt
  4.     run init_console
  5.     # ...
  6.     run distro_bootcmd
  7. }
  8.  
  9. findfdt() {
  10.     echo board_name=[$board_name] ...
  11.     if test $board_name = A335BLGC; then
  12.         setenv fdtfile am335x-beaglelogic.dtb
  13.     fi
  14.     if test $board_name = A335BONE; then
  15.         setenv fdtfile am335x-bone.dtb
  16.     fi
  17.     if test $board_name = A335BNLT; then
  18.         echo board_rev=[$board_rev] ...
  19.         if test $board_rev = GH01; then
  20.             setenv fdtfile am335x-boneblack.dtb
  21.         elif test $board_rev = BBG1; then
  22.             setenv fdtfile am335x-bonegreen.dtb
  23.         elif test $board_rev = BP00; then
  24.             setenv fdtfile am335x-pocketbone.dtb
  25.         elif test $board_rev = GW1A; then
  26.             setenv fdtfile am335x-bonegreen-wireless.dtb
  27.         elif test $board_rev = GG1A; then
  28.             setenv fdtfile am335x-bonegreen-gateway.dtb
  29.         elif test $board_rev = AIA0; then
  30.             setenv fdtfile am335x-abbbi.dtb
  31.         elif test $board_rev = EIA0; then
  32.             setenv fdtfile am335x-boneblack.dtb
  33.         elif test $board_rev = ME06; then
  34.             setenv fdtfile am335x-bonegreen.dtb
  35.         elif test $board_rev = OS00; then
  36.             setenv fdtfile am335x-osd3358-sm-red.dtb
  37.         else
  38.             setenv fdtfile am335x-boneblack.dtb
  39.         fi
  40.     fi
  41.     if test $board_name = A335PBGL; then
  42.         setenv fdtfile am335x-pocketbeagle.dtb
  43.     fi
  44.     if test $board_name = BBBW; then
  45.         setenv fdtfile am335x-boneblack-wireless.dtb
  46.     fi
  47.     if test $board_name = BBG1; then
  48.         setenv fdtfile am335x-bonegreen.dtb
  49.     fi
  50.     if test $board_name = BBGW; then
  51.         setenv fdtfile am335x-bonegreen-wireless.dtb
  52.     fi
  53.     if test $board_name = BBGG; then
  54.         setenv fdtfile am335x-bonegreen-gateway.dtb
  55.     fi
  56.     if test $board_name = BBBL; then
  57.         setenv fdtfile am335x-boneblue.dtb
  58.     fi
  59.     if test $board_name = BBEN; then
  60.         setenv fdtfile am335x-sancloud-bbe.dtb
  61.     fi
  62.     if test $board_name = OS00; then
  63.         setenv fdtfile am335x-osd3358-sm-red.dtb
  64.     fi
  65.     if test $board_name = A33515BB; then
  66.         setenv fdtfile am335x-evm.dtb
  67.     fi
  68.     if test $board_name = A335X_SK; then
  69.         setenv fdtfile am335x-evmsk.dtb
  70.     fi
  71.     if test $board_name = A335_ICE; then
  72.         setenv fdtfile am335x-icev2.dtb
  73.     fi
  74.     if test $fdtfile = undefined; then
  75.         setenv board_name A335BNLT
  76.         setenv board_rev EMMC
  77.         setenv fdtfile am335x-bonegreen.dtb
  78.     fi
  79. }
  80.  
  81. init_console() {
  82.     if test $board_name = A335_ICE; then
  83.         setenv console ttyO3,115200n8
  84.     elif test $board_name = A335BLGC; then
  85.         setenv console ttyO4,115200n8
  86.     else
  87.         setenv console ttyO0,115200n8
  88.     fi
  89. }
  90.  
  91. boot_targets=... legacy_mmc0 ... legacy_mmc1 ...
  92.  
  93. distro_bootcmd() {
  94.     for target in ${boot_targets}; do
  95.         run bootcmd_${target}
  96.     done
  97. }
  98.  
  99. bootcmd_legacy_mmc0() {
  100.     gpio clear 56
  101.     gpio clear 55
  102.     gpio clear 54
  103.     gpio set 53
  104.     setenv devtype mmc
  105.     setenv mmcdev 0
  106.     setenv bootpart 0:1
  107.     run boot
  108. }
  109.  
  110. bootcmd_legacy_mmc1() {
  111.     gpio clear 56
  112.     gpio clear 55
  113.     gpio clear 54
  114.     gpio set 53
  115.     setenv devtype mmc
  116.     setenv mmcdev 1
  117.     setenv bootpart 1:1
  118.     run boot
  119. }
  120.  
  121. boot() {
  122.     ${devtype} dev ${mmcdev}
  123.     if ${devtype} rescan; then
  124.         gpio set 54
  125.         setenv bootpart ${mmcdev}:1
  126.         if test -e ${devtype} ${bootpart} /etc/fstab; then
  127.             setenv mmcpart 1
  128.         fi
  129.         echo Checking for: /uEnv.txt ...
  130.         # ...
  131.         echo Checking for: /${script} ...
  132.         # ...
  133.         echo Checking for: /boot/${script} ...
  134.         # ...
  135.         echo Checking for: /boot/uEnv.txt ...
  136.         for i in 1 2 3 4 5 6 7 ; do
  137.             setenv mmcpart ${i}
  138.             setenv bootpart ${mmcdev}:${mmcpart}
  139.             if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then
  140.                 gpio set 55
  141.                 load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt
  142.                 env import -t ${loadaddr} ${filesize}
  143.                 echo Loaded environment from /boot/uEnv.txt
  144.                 if test -n ${dtb}; then
  145.                     echo debug: [dtb=${dtb}] ...
  146.                     setenv fdtfile ${dtb}
  147.                     echo Using: dtb=${fdtfile} ...
  148.                 fi
  149.                 echo Checking if uname_r is set in /boot/uEnv.txt...
  150.                 if test -n ${uname_r}; then
  151.                     gpio set 56
  152.                     setenv oldroot /dev/mmcblk${mmcdev}p${mmcpart}
  153.                     echo Running uname_boot ...
  154.                     run uname_boot
  155.                 fi
  156.             fi
  157.         done
  158.     fi
  159. }
  160.  
  161. uname_boot() {
  162.     setenv bootdir /boot
  163.     setenv bootfile vmlinuz-${uname_r}
  164.     if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then
  165.         echo loading ${bootdir}/${bootfile} ...
  166.         run loadimage
  167.         setenv fdtdir /boot/dtbs/${uname_r}
  168.         echo debug: [enable_uboot_overlays=${enable_uboot_overlays}] ...
  169.         if test -n ${enable_uboot_overlays}; then
  170.             echo debug: [enable_uboot_cape_universal=${enable_uboot_cape_universal}] ...
  171.             if test -n ${enable_uboot_cape_universal}; then
  172.                 echo debug: [uboot_base_dtb_univ=${uboot_base_dtb_univ}] ...
  173.                 if test -n ${uboot_base_dtb_univ}; then
  174.                     echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb_univ}] ...
  175.                     if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb_univ}; then
  176.                         setenv fdtfile ${uboot_base_dtb_univ}
  177.                         echo uboot_overlays: Switching too: dtb=${fdtfile} ...
  178.                         if test -n ${uboot_try_cape_universal}; then
  179.                             env delete -f uboot_try_cape_universal
  180.                         fi
  181.                         setenv cape_uboot bone_capemgr.uboot_capemgr_enabled=1
  182.                     else
  183.                         echo debug: unable to find [${uboot_base_dtb_univ}] using [${uboot_base_dtb}] instead ...
  184.                         echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ...
  185.                         if test -n ${uboot_base_dtb}; then
  186.                             echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ...
  187.                             if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb}; then
  188.                                 setenv fdtfile ${uboot_base_dtb}
  189.                                 echo uboot_overlays: Switching too: dtb=${fdtfile} ...
  190.                             fi
  191.                         fi
  192.                     fi
  193.                 fi
  194.             else
  195.                 echo debug: [uboot_base_dtb_univ=${uboot_base_dtb}] ...
  196.                 if test -n ${uboot_base_dtb}; then
  197.                     echo uboot_overlays: [uboot_base_dtb=${uboot_base_dtb}] ...
  198.                     if test -e ${devtype} ${bootpart} ${fdtdir}/${uboot_base_dtb}; then
  199.                         setenv fdtfile ${uboot_base_dtb}
  200.                         echo uboot_overlays: Switching too: dtb=${fdtfile} ...
  201.                     fi
  202.                 fi
  203.             fi
  204.         fi
  205.         if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then
  206.             run loadfdt
  207.         else
  208.             setenv fdtdir /usr/lib/linux-image-${uname_r}
  209.             if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then
  210.                 run loadfdt
  211.             else
  212.                 setenv fdtdir /lib/firmware/${uname_r}/device-tree
  213.                 if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then
  214.                     run loadfdt
  215.                 else
  216.                     setenv fdtdir /boot/dtb-${uname_r}
  217.                     if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then
  218.                         run loadfdt
  219.                     else
  220.                         setenv fdtdir /boot/dtbs
  221.                         if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then
  222.                             run loadfdt
  223.                         else
  224.                             setenv fdtdir /boot/dtb
  225.                             if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then
  226.                                 run loadfdt
  227.                             else
  228.                                 setenv fdtdir /boot
  229.                                 if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then
  230.                                     run loadfdt
  231.                                 else
  232.                                     if test -e ${devtype} ${bootpart} ${fdtfile}; then
  233.                                     run loadfdt
  234.                                 else
  235.                                     echo
  236.                                     echo unable to find [dtb=${fdtfile}] did you name it correctly? ...
  237.                                     run failumsboot
  238.                                 fi
  239.                                 fi
  240.                             fi
  241.                         fi
  242.                     fi
  243.                 fi
  244.             fi
  245.         fi
  246.         if test -n ${enable_uboot_overlays}; then
  247.             setenv fdt_buffer 0x60000
  248.             if test -n ${uboot_fdt_buffer}; then
  249.                 setenv fdt_buffer ${uboot_fdt_buffer}
  250.             fi
  251.             echo uboot_overlays: [fdt_buffer=${fdt_buffer}] ...
  252.             if test -n ${uboot_silicon}; then
  253.                 setenv uboot_overlay ${uboot_silicon}
  254.                 run virtualloadoverlay
  255.             fi
  256.             if test -n ${uboot_model}; then
  257.                 setenv uboot_overlay ${uboot_model}
  258.                 run virtualloadoverlay
  259.             fi
  260.             if test -n ${disable_uboot_overlay_adc}; then
  261.                 echo uboot_overlays: uboot loading of [/lib/firmware/BB-ADC-00A0.dtbo] disabled by /boot/uEnv.txt [disable_uboot_overlay_adc=1]...
  262.             else
  263.                 setenv uboot_overlay /lib/firmware/BB-ADC-00A0.dtbo
  264.                 run virtualloadoverlay
  265.             fi
  266.             if test -n ${uboot_overlay_addr0}; then
  267.                 if test -n ${disable_uboot_overlay_addr0}; then
  268.                     echo uboot_overlays: uboot loading of [${uboot_overlay_addr0}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr0=1]...
  269.                 else
  270.                     setenv uboot_overlay ${uboot_overlay_addr0}
  271.                     run capeloadoverlay
  272.                 fi
  273.             fi
  274.             if test -n ${uboot_overlay_addr1}; then
  275.                 if test -n ${disable_uboot_overlay_addr1}; then
  276.                     echo uboot_overlays: uboot loading of [${uboot_overlay_addr1}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr1=1]...
  277.                 else
  278.                     setenv uboot_overlay ${uboot_overlay_addr1}
  279.                     run capeloadoverlay
  280.                 fi
  281.             fi
  282.             if test -n ${uboot_overlay_addr2}; then
  283.                 if test -n ${disable_uboot_overlay_addr2}; then
  284.                     echo uboot_overlays: uboot loading of [${uboot_overlay_addr2}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr2=1]...
  285.                 else
  286.                     setenv uboot_overlay ${uboot_overlay_addr2}
  287.                     run capeloadoverlay
  288.                 fi
  289.             fi
  290.             if test -n ${uboot_overlay_addr3}; then
  291.                 if test -n ${disable_uboot_overlay_addr3}; then
  292.                     echo uboot_overlays: uboot loading of [${uboot_overlay_addr3}] disabled by /boot/uEnv.txt [disable_uboot_overlay_addr3=1]...
  293.                 else
  294.                     setenv uboot_overlay ${uboot_overlay_addr3}
  295.                     run capeloadoverlay
  296.                 fi
  297.             fi
  298.             if test -n ${uboot_overlay_addr4}; then
  299.                 setenv uboot_overlay ${uboot_overlay_addr4}
  300.                 run capeloadoverlay
  301.             fi
  302.             if test -n ${uboot_overlay_addr5}; then
  303.                 setenv uboot_overlay ${uboot_overlay_addr5}
  304.                 run capeloadoverlay
  305.             fi
  306.             if test -n ${uboot_overlay_addr6}; then
  307.                 setenv uboot_overlay ${uboot_overlay_addr6}
  308.                 run capeloadoverlay
  309.             fi
  310.             if test -n ${uboot_overlay_addr7}; then
  311.                 setenv uboot_overlay ${uboot_overlay_addr7}
  312.                 run capeloadoverlay
  313.             fi
  314.             if test -n ${uboot_emmc}; then
  315.                 if test -n ${disable_uboot_overlay_emmc}; then
  316.                     echo uboot_overlays: uboot loading of [${uboot_emmc}] disabled by /boot/uEnv.txt [disable_uboot_overlay_emmc=1]...
  317.                 else
  318.                     setenv uboot_overlay ${uboot_emmc}
  319.                     run virtualloadoverlay
  320.                 fi
  321.             fi
  322.             if test -n ${uboot_video}; then
  323.                 if test -n ${disable_uboot_overlay_video}; then
  324.                     echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...
  325.                 else
  326.                     if test -n ${disable_uboot_overlay_audio}; then
  327.                         echo uboot_overlays: uboot loading of [${uboot_video}] disabled by /boot/uEnv.txt [disable_uboot_overlay_audio=1]...
  328.                         setenv uboot_overlay ${uboot_video_naudio}
  329.                         run virtualloadoverlay
  330.                     else
  331.                         setenv uboot_overlay ${uboot_video}
  332.                         run virtualloadoverlay
  333.                     fi
  334.                 fi
  335.             fi
  336.             if test -n ${uboot_wireless}; then
  337.                 if test -n ${disable_uboot_overlay_wireless}; then
  338.                     echo uboot_overlays: uboot loading of [${uboot_wireless}] disabled by /boot/uEnv.txt [disable_uboot_overlay_wireless=1]...
  339.                 else
  340.                     setenv uboot_overlay ${uboot_wireless}
  341.                     run virtualloadoverlay
  342.                 fi
  343.             fi
  344.             if test -n ${uboot_overlay_pru}; then
  345.                 setenv uboot_overlay ${uboot_overlay_pru}
  346.                 run virtualloadoverlay
  347.             fi
  348.             if test -n ${uboot_overlay_pru_add}; then
  349.                 setenv uboot_overlay ${uboot_overlay_pru_add}
  350.                 run virtualloadoverlay
  351.             fi
  352.             if test -n ${dtb_overlay}; then
  353.                 setenv uboot_overlay ${dtb_overlay}
  354.                 echo uboot_overlays: [dtb_overlay=${uboot_overlay}] ...
  355.                 run capeloadoverlay
  356.             fi
  357.             if test -n ${uboot_detected_capes}; then
  358.                 echo uboot_overlays: [uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3}] ...
  359.                 setenv uboot_detected_capes uboot_detected_capes=${uboot_detected_capes_addr0}${uboot_detected_capes_addr1}${uboot_detected_capes_addr2}${uboot_detected_capes_addr3}
  360.             fi
  361.             if test -n ${uboot_try_cape_universal}; then
  362.                 if test -n ${enable_uboot_cape_universal}; then
  363.                     if test -n ${cape_uboot}; then
  364.                         echo uboot_overlays: cape universal disabled, external cape enabled or detected...
  365.                     else
  366.                         if test -n ${uboot_cape_universal_bbb}; then
  367.                             if test -n ${disable_uboot_overlay_emmc}; then
  368.                                 if test -n ${disable_uboot_overlay_video}; then
  369.                                     setenv uboot_overlay /lib/firmware/univ-bbb-xxx-00A0.dtbo
  370.                                 else
  371.                                     if test -n ${disable_uboot_overlay_audio}; then
  372.                                         setenv uboot_overlay /lib/firmware/univ-bbb-xVx-00A0.dtbo
  373.                                     else
  374.                                         setenv uboot_overlay /lib/firmware/univ-bbb-xVA-00A0.dtbo
  375.                                     fi
  376.                                 fi
  377.                             else
  378.                                 if test -n ${disable_uboot_overlay_video}; then
  379.                                     setenv uboot_overlay /lib/firmware/univ-bbb-Exx-00A0.dtbo
  380.                                 else
  381.                                     if test -n ${disable_uboot_overlay_audio}; then
  382.                                         setenv uboot_overlay /lib/firmware/univ-bbb-EVx-00A0.dtbo
  383.                                     else
  384.                                         setenv uboot_overlay /lib/firmware/univ-bbb-EVA-00A0.dtbo
  385.                                     fi
  386.                                 fi
  387.                             fi
  388.                             run capeloadoverlay
  389.                         fi
  390.                         if test -n ${uboot_cape_universal_bbg}; then
  391.                             if test -n ${disable_uboot_overlay_emmc}; then
  392.                                 setenv uboot_overlay /lib/firmware/univ-bbb-xxx-00A0.dtbo
  393.                             else
  394.                                 setenv uboot_overlay /lib/firmware/univ-bbb-Exx-00A0.dtbo
  395.                             fi
  396.                             run capeloadoverlay
  397.                         fi
  398.                         if test -n ${uboot_cape_universal_bbgw}; then
  399.                             if test -n ${disable_uboot_overlay_emmc}; then
  400.                                 if test -n ${disable_uboot_overlay_wireless}; then
  401.                                     setenv uboot_overlay /lib/firmware/univ-bbgw-xx-00A0.dtbo
  402.                                 else
  403.                                     setenv uboot_overlay /lib/firmware/univ-bbgw-xW-00A0.dtbo
  404.                                 fi
  405.                             else
  406.                                 if test -n ${disable_uboot_overlay_wireless}; then
  407.                                     setenv uboot_overlay /lib/firmware/univ-bbgw-Ex-00A0.dtbo
  408.                                 else
  409.                                     setenv uboot_overlay /lib/firmware/univ-bbgw-EW-00A0.dtbo
  410.                                 fi
  411.                             fi
  412.                             run capeloadoverlay
  413.                         fi
  414.                     fi
  415.                 else
  416.                     echo uboot_overlays: add [enable_uboot_cape_universal=1] to /boot/uEnv.txt to enable...
  417.                 fi
  418.             fi
  419.         else
  420.             echo uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable...
  421.         fi
  422.         setenv rdfile initrd.img-${uname_r}
  423.         if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then
  424.             echo loading ${bootdir}/${rdfile} ...
  425.             run loadrd
  426.             # ...
  427.             run args_mmc_old
  428.             echo debug: [${bootargs}] ...
  429.             echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ...
  430.             bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}
  431.         else
  432.             # ...
  433.             run args_mmc_old
  434.             echo debug: [${bootargs}] ...
  435.             echo debug: [bootz ${loadaddr} - ${fdtaddr}] ...
  436.             bootz ${loadaddr} - ${fdtaddr}
  437.         fi
  438.     fi
  439. }
  440.  
  441.  
  442. loadimage() {
  443.     load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile};
  444. }
  445.  
  446. loadfdt() {
  447.     echo loading ${fdtdir}/${fdtfile} ...
  448.     load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}
  449. }
  450.  
  451. loadrd() {
  452.     load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}
  453.     setenv rdsize ${filesize}
  454. }
  455.  
  456.  
  457. virtualloadoverlay() {
  458.     if test -e ${devtype} ${bootpart} ${uboot_overlay}; then
  459.         run loadoverlay
  460.     else
  461.         echo uboot_overlays: unable to find [${devtype} ${bootpart} ${uboot_overlay}]...
  462.     fi
  463. }
  464.  
  465. capeloadoverlay() {
  466.     if test -e ${devtype} ${bootpart} ${uboot_overlay}; then
  467.         run loadoverlay
  468.         setenv cape_uboot bone_capemgr.uboot_capemgr_enabled=1
  469.     else
  470.         echo uboot_overlays: unable to find [${devtype} ${bootpart} ${uboot_overlay}]...
  471.     fi
  472. }
  473.  
  474. loadoverlay() {
  475.     echo uboot_overlays: loading ${uboot_overlay} ...
  476.     load ${devtype} ${bootpart} ${rdaddr} ${uboot_overlay}
  477.     fdt addr ${fdtaddr}
  478.     fdt resize ${fdt_buffer}
  479.     fdt apply ${rdaddr}
  480.     fdt resize ${fdt_buffer}
  481. }
  482.  
  483.  
  484. args_mmc_old() {
  485.     setenv bootargs console=${console} ${optargs} ${cape_disable} ${cape_enable} ${cape_uboot} root=${oldroot} ro rootfstype=${mmcrootfstype} ${uboot_detected_capes} ${cmdline}
  486. }
Advertisement
Add Comment
Please, Sign In to add comment