0

I am trying to boot my Raspberry Pi 3B (not plus) using network boot (without any SD card). So in order to setup the required OTP bit, I added program_usb_boot_mode=1 to my config.txt file and rebooted the board. I now can see :

$ vcgencmd otp_dump | grep 17:
17:3020000a 

Then I removed the SD card and rebooted the Pi, with ethernet cable plugged in. I can see that my DHCP server is receiving requests :

Jan 31 21:41:38 lab dhcpd[1697]: DHCPDISCOVER from b8:27:eb:64:24:7d via eno1
Jan 31 21:41:38 lab dhcpd[1697]: DHCPOFFER on 10.0.0.100 to b8:27:eb:64:24:7d via eno1
Jan 31 21:41:43 lab dhcpd[1697]: DHCPDISCOVER from b8:27:eb:64:24:7d via eno1
Jan 31 21:41:43 lab dhcpd[1697]: DHCPOFFER on 10.0.0.100 to b8:27:eb:64:24:7d via eno1
Jan 31 21:41:48 lab dhcpd[1697]: DHCPDISCOVER from b8:27:eb:64:24:7d via eno1
Jan 31 21:41:48 lab dhcpd[1697]: DHCPOFFER on 10.0.0.100 to b8:27:eb:64:24:7d via eno1
Jan 31 21:43:42 lab kernel: [ 4993.736580] device eno1 left promiscuous mode

I added the tcpdump monitoring and can see :

$ sudo tcpdump 'ether host b8:27:eb:64:24:7d' -i eno1 -vv
tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
21:41:28.357155 IP (tos 0x0, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 350)
    0.0.0.0.bootpc > 255.255.255.255.bootps: [no cksum] BOOTP/DHCP, Request from b8:27:eb:64:24:7d (oui Unknown), length 322, xid 0x26f30339, Flags [none] (0x0000)
      Client-Ethernet-Address b8:27:eb:64:24:7d (oui Unknown)
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Discover
        Parameter-Request Option 55, length 14:
          Vendor-Option, Vendor-Class, BF, Option 128
          Option 129, Option 130, Option 131, Option 132
          Option 133, Option 134, Option 135, TFTP
          Subnet-Mask, Default-Gateway
        ARCH Option 93, length 2: 0
        NDI Option 94, length 3: 1.2.1
        GUID Option 97, length 17: 0.125.36.100.85.125.36.100.85.125.36.100.85.125.36.100.85
        Vendor-Class Option 60, length 32: "PXEClient:Arch:00000:UNDI:002001"
21:41:29.357640 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    lab.bootps > 10.0.0.100.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x26f30339, Flags [none] (0x0000)
      Your-IP 10.0.0.100
      Server-IP lab
      Client-Ethernet-Address b8:27:eb:64:24:7d (oui Unknown)
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Offer
        Server-ID Option 54, length 4: lab
        Lease-Time Option 51, length 4: 600
        Subnet-Mask Option 1, length 4: 255.255.255.0
        Default-Gateway Option 3, length 4: lab

The red Led on Pi , blinks once after around 5 seconds of power-on, but nothing else happens, no output on serial. I have following files in my tftpserver, copied from a working raspbian SD card. I removed all kernel*img files and copied a working 64-bit u-boot.bin as kernel8.img. I have also set BOOT_UART=1 in my bootcode.bin

naveen@lab:~/tftpboot/tftpboot-rpi3$ ls ..
COPYING.linux           bcm2708-rpi-b-rev1.dtb  bcm2708-rpi-zero.dtb      bcm2710-rpi-3-b.dtb  bcm2711-rpi-cm4.dtb  fixup.dat     fixup4x.dat   issue.txt    start.elf     start4x.elf   tftpboot-rpi3
LICENCE.broadcom        bcm2708-rpi-b.dtb       bcm2709-rpi-2-b.dtb       bcm2710-rpi-cm3.dtb  bootcode.bin         fixup4.dat    fixup_cd.dat  kernel8.img  start4.elf    start_cd.elf
backup                  bcm2708-rpi-cm.dtb      bcm2710-rpi-2-b.dtb       bcm2711-rpi-4-b.dtb  cmdline.txt          fixup4cd.dat  fixup_db.dat  overlays     start4cd.elf  start_db.elf
bcm2708-rpi-b-plus.dtb  bcm2708-rpi-zero-w.dtb  bcm2710-rpi-3-b-plus.dtb  bcm2711-rpi-400.dtb  config.txt           fixup4db.dat  fixup_x.dat   rpi3.uimg    start4db.elf  start_x.elf 

(few files/folders might be extra and can be ignored, if they impact in anyway please correct me)

On my UART serial console, I do not see any ouput. Nothing happens. Everything stays as-is after power-on, except the red LED blinks once after around 5 seconds of power-on. What's going wrong here. (The serial connection is proper, because when I use SD card, I get linux shell on same console). I do not get any logs from tftp server in /var/log/syslog. I expected some logs from bootcode.bin over the UART console, but even those are not coming.

To verify the setup, I put u-boot on SD card and was able to load the linux kernel over tftp and rootfs over NFS server. So the setup installations, setting and connections can be relied as well.

EDIT

I am using Pins 6,8,10 for my UART connection.

0

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.