Boot code
#1
Can anybody tell me what exactly
Does this sentence mean?

booti  ${kernel_addr_r}  - ${fdt_addr_r};
  Reply
#2
https://u-boot.readthedocs.io/en/latest/...booti.html
  Reply
#3
(03-17-2022, 03:12 AM)wibble Wrote: https://u-boot.readthedocs.io/en/latest/...booti.html

Dear professor
I asked the question after reading the boot and the pages you send me
I only write the last code but this is the
Whole one 

if load  ${devtype}  ${devnum}:${distro_bootpart}  ${ramdisk_addr_r}  /initramfs-linux.img;  then 
    gpio set  157   
  booti  ${kernel_addr_r}  ${ramdisk_addr_r}:${filesize}  ${fdt_addr_r};  
  else  
    gpio set  158     
booti  ${kernel_addr_r}  - ${fdt_addr_r}; 
   fi;
And what I understand is that if the if statement goes well load the kernel otherwise what?
exit the boot? Remove some code loaded?
  Reply
#4
If loading the initramfs from file succeeds then boot the kernel with the initramfs and device tree, otherwise only boot the kernel with the device tree. I don't know what the gpio set is doing - I'd guess the LED but it could be something else.
  Reply
#5
(03-17-2022, 11:45 AM)wibble Wrote: If loading the initramfs from file succeeds then boot the kernel with the initramfs and device tree, otherwise only boot the kernel with the device tree.  I don't know what the gpio set is doing - I'd guess the LED but it could be something else.

Could you explain the full boot file for us to understand,?
  Reply
#6
I've got the PinePhone not the Pro, and haven't looked into the uboot details, but if you post the file or a link to it I'll have a go. I last looked at uboot configs in detail back in the openmoko days, but it looks like the concepts haven't changed much.
  Reply
#7
(03-19-2022, 05:14 AM)wibble Wrote: I've got the PinePhone not the Pro, and haven't looked into the uboot details, but if you post the file or a link to it I'll have a go. I last looked at uboot configs in detail back in the openmoko days, but it looks like the concepts haven't changed much.

Thanks. I inserted de SD card in my laptop and enter de fat partition and copied
The boot to my desktop. I will copy it here in my android smartphone and paste it here.

#
# /boot/boot.txt
# After modifying, run "ppp-uboot-mkscr" to re-generate the U-Boot boot script.
#

#
# This is the description of the GPIO lines used in this boot script:
#
# GPIO #105 is GPIO3_B1, or RK3399 ball C27, which controls the vibrator motor
# GPIO #154 is GPIO4_D2, or RK3399 ball AH3, which controls the red part of the multicolor LED
# GPIO #157 is GPIO4_D5, or RK3399 ball AJ3, which controls the green part of the multicolor LED
# GPIO #158 is GPIO4_D6, or RK3399 ball AG4, which controls the blue part of the multicolor LED
#

gpio set 105
gpio set 154

# Set root partition to the second partition of boot device
part uuid ${devtype} ${devnum}:1 uuid_boot
part uuid ${devtype} ${devnum}:2 uuid_root

setenv bootargs loglevel=4 console=tty0 console=${console} earlycon=uart8250,mmio32,0xff1a0000 consoleblank=0 boot=PARTUUID=${uuid_boot} root=PARTUUID=${uuid_root} rw rootwait quiet audit=0 bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash

if load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} /Image; then
gpio clear 105
if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} /dtbs/${fdtfile}; then
if load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /initramfs-linux.img; then
gpio set 157
booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r};
else
gpio set 158
booti ${kernel_addr_r} - ${fdt_addr_r};
fi;
fi;
fi

# EOF

_-----
The gpios are clear. First you hear the sound of motor and inmedistely there's a red led and then
The sound of motor stops and the led become green. Of course if the "if" statements are ok. And
It is these if statements the I would like to understand. I Imagine that
Are variables containing values given by the ROM boot loader
  Reply
#8
The environment docs cover several of the variables like the ram addresses for kernel, ramdisk and devicetree. For the others you'll have to check for a separate environment variable file, or check the source for the default values for those variables.
https://u-boot.readthedocs.io/en/latest/...nment.html
It's a fair guess that ${devtype} and ${devnum} are the type and number of the device uboot started from, but they might be in an environment file. If you wanted to use the uboot on the emmc to load from a partition on the uSD, or a different partition on the same device, you could specify different values here. tow-boot will be doing something similar to boot from different devices based on button presses.

The 'part' command doesn't seem to be fully documented - it's in an example on the page about partitions, but its operation isn't explained. From the context I suspect it is being used to read the uuid of the boot and root partitions and set the variables uuid_boot and uuid_root respectively. These are then used in setting the bootargs that will be sent to the kernel when it gets booted later. It's curious that the boot partition is hardcoded as 1 here rather than using ${distro_bootpart} which we'll see used a bit later.
https://u-boot.readthedocs.io/en/latest/...tions.html

I hope the kernel bootargs don't need explaining here - they're fairly normal, apart from perhaps the console and earlycon bit.

Now we get to the nested ifs which are about trying to load in turn the kernel, the devicetree and the initramfs. If the kernel load fails then there's nothing more to do, and you 'll be stuck with a red light and a vibrating phone. If the kernel load succeeds then the vibration stops and the devicetree load is attempted. If that succeeds then we're at the previous explanation, but if it fails we're stuck as both the kernel and the devicetree are needed to boot.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Tow-Boot, a new U-Boot option for Pinephone Pro and other devices Ulfnic 60 43,564 02-13-2024, 02:54 PM
Last Post: fxc
Brick Recovery without Tow Boot b34ux 10 1,075 02-02-2024, 07:07 PM
Last Post: reky
  What to do if your PinePhone Pro does not boot fxc 19 18,761 09-10-2023, 03:19 AM
Last Post: fxc
  Pine Phone won't boot into recovery mode ninjapig26@gmail.com 3 1,674 02-18-2023, 06:14 PM
Last Post: fxc
  tow-boot installation problem techariah 2 1,408 02-16-2023, 02:50 PM
Last Post: techariah
  create tow boot .img fox95 6 2,921 10-21-2022, 11:40 AM
Last Post: fox95
  No display on early boot after Manjaro update robocone 0 806 07-07-2022, 05:47 AM
Last Post: robocone
  Latest Manjaro-Phosh and Arch-Phosh won't boot grinzie 6 3,683 07-01-2022, 02:01 PM
Last Post: Chief
  Manjaro update, no boot, just noise. wilmarcdw 2 1,592 05-09-2022, 07:24 AM
Last Post: wilmarcdw
  Can't boot from a microSD card WhyNotHugo 5 2,999 04-10-2022, 09:15 AM
Last Post: WhyNotHugo

Forum Jump:


Users browsing this thread: 1 Guest(s)