Code: Select all
DRAM: mbox: Timeout waiting for send space
bcm2835: Could not query ARM memory size
initcall sequence 00000000000d1a18 failed at call 0000000000083214 (err=-1)
### ERROR ### Please RESET the board ###
Code: Select all
DRAM: mbox: Timeout waiting for send space
bcm2835: Could not query ARM memory size
initcall sequence 00000000000d1a18 failed at call 0000000000083214 (err=-1)
### ERROR ### Please RESET the board ###
Hi. I'm currently stuck a little and I think I will be needing a hardware debugger from here on. Currently I have logs on the serial but uboot hangs as soon as MMU is enabled (again this is only in 64bit, I haven't tried it on 32). I pushed a branch in github (https://github.com/agherzan/u-boot/tree/ag/rpi4). If you guys have any ideas, feel free to send patches on top of the branch - I do have some more local changed but not cleaned up to be pushed. It would be nice if we could centralize the effort to add this support and as soon as we have something useful, I can push them upstream (obviously keeping the authoring). I will most probably resume debugging on Monday.jens.maus wrote: ↑Sat Jul 06, 2019 9:02 pmSorry, but I just stumbled over your post here and I actually wonder if you have any working u-boot version at hand now that actually boots correctly with a raspberrypi4? Could you please share some information with us or point us at the right position where we could find a u-boot version for the raspberrypi4? Thanks.
Thanks for the link and info. This indeed looks promising. However, have you also seen the following resources/discussions about getting u-boot working for a raspberrypi4?agherzan wrote: ↑Sat Jul 06, 2019 11:52 pmHi. I'm currently stuck a little and I think I will be needing a hardware debugger from here on. Currently I have logs on the serial but uboot hangs as soon as MMU is enabled (again this is only in 64bit, I haven't tried it on 32). I pushed a branch in github (https://github.com/agherzan/u-boot/tree/ag/rpi4). If you guys have any ideas, feel free to send patches on top of the branch - I do have some more local changed but not cleaned up to be pushed. It would be nice if we could centralize the effort to add this support and as soon as we have something useful, I can push them upstream (obviously keeping the authoring). I will most probably resume debugging on Monday.
That is one bit missing. We don't have a PICe driver at this point.neoXite wrote: ↑Tue Aug 20, 2019 3:52 pmExcellent job, agherzan! Can't wait to test this on my lab RPi4 and eventually seeing it upstreamed!
I'm primarily interested in using U-Boot to netboot a kernel/initrd via Ethernet, with just U-Boot and the firmware blobs residing on the SD card, this already works beautifully on RPi2/3.
I understand the RPi4 has a completely new Ethernet setup with the PHY now hooked up directly via PCIe rather than USB.
Do any usable Ethernet driver bits exist in U-boot yet? Thank you for any insight!
No. The new USB chip on the Pi 4B uses the PCIe channel.
Code: Select all
U-MMC: emmc2@7e340000: 0, mmcnr@7e300000: 1
Loading Environment from FAT... OK
In: serial
Out: serial
Err: serial
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
U-Boot> bdinfo
arch_number = 0x0000000000000000
boot_params = 0x0000000000000100
DRAM bank = 0x0000000000000000
-> start = 0x0000000000000000
-> size = 0x000000003b400000
current eth = unknown
ip_addr = <NULL>
baudrate = 115200 bps
TLB addr = 0x000000003b3f0000
relocaddr = 0x000000003b369000
reloc off = 0x000000003b2e9000
irq_sp = 0x000000003af59b50
sp start = 0x000000003af59b50
FB base = 0x0000000000000000
Early malloc usage: 420 / 2000
fdt_blob = 0x000000003af59b60
What is your aim? As standard the Pi does NOT use Uboot so is there a specific need you have for Uboot?rpinewbie01 wrote: ↑Tue Sep 17, 2019 11:15 amHello All,
I am a newbie in raspberry pi world but some background on windows desktop driver development, just got hold of a rpi4b.
Read few posts and found that it is good to learn by doing everything from scratch!!!
I found that there is a bootloader called uboot which is booted after power on, I guess something called firmware stored in board flash (not on sd card) is booted prior to that.
Hoping to do everything from scratch need help from the forum for guidance / steps
- How to compile uboot for rpi4.
- Which device description/configutation tree to use for kernel
- How to partition and program the SD card. where to put uboot binary and linux binary and distribution compressed image and the dts.
Also Need some pointers to
- Is there a reference manual of the board, where I can get details of interrupt controller / memory map
- I read that bcm2711 does support PCIe, but it is not exposed on the board,
any idea if a rpi4 hat cab be used somehow....
-Thanks
ben
I am working on a small microkernel which boots off uboot.jamesh wrote: ↑Thu Sep 19, 2019 8:54 amWhat is your aim? As standard the Pi does NOT use Uboot so is there a specific need you have for Uboot?rpinewbie01 wrote: ↑Tue Sep 17, 2019 11:15 amHello All,
I am a newbie in raspberry pi world but some background on windows desktop driver development, just got hold of a rpi4b.
Read few posts and found that it is good to learn by doing everything from scratch!!!
I found that there is a bootloader called uboot which is booted after power on, I guess something called firmware stored in board flash (not on sd card) is booted prior to that.
Hoping to do everything from scratch need help from the forum for guidance / steps
- How to compile uboot for rpi4.
- Which device description/configutation tree to use for kernel
- How to partition and program the SD card. where to put uboot binary and linux binary and distribution compressed image and the dts.
Also Need some pointers to
- Is there a reference manual of the board, where I can get details of interrupt controller / memory map
- I read that bcm2711 does support PCIe, but it is not exposed on the board,
any idea if a rpi4 hat cab be used somehow....
-Thanks
ben
DDR init is done by the Pi bootloader. This gets loaded by the first stage loader (<Pi4, baked in to SoC, Pi4, in EEPROM), sets up the SoC, loads the GPU firmware, runs that, then that loads and runs the Linux kernel. I believe that a Uboot system replaces the kernel with Uboot, in effect adding that extra stage.rpinewbie01 wrote: ↑Thu Sep 19, 2019 12:13 pmI am working on a small microkernel which boots off uboot.jamesh wrote: ↑Thu Sep 19, 2019 8:54 amWhat is your aim? As standard the Pi does NOT use Uboot so is there a specific need you have for Uboot?rpinewbie01 wrote: ↑Tue Sep 17, 2019 11:15 amHello All,
I am a newbie in raspberry pi world but some background on windows desktop driver development, just got hold of a rpi4b.
Read few posts and found that it is good to learn by doing everything from scratch!!!
I found that there is a bootloader called uboot which is booted after power on, I guess something called firmware stored in board flash (not on sd card) is booted prior to that.
Hoping to do everything from scratch need help from the forum for guidance / steps
- How to compile uboot for rpi4.
- Which device description/configutation tree to use for kernel
- How to partition and program the SD card. where to put uboot binary and linux binary and distribution compressed image and the dts.
Also Need some pointers to
- Is there a reference manual of the board, where I can get details of interrupt controller / memory map
- I read that bcm2711 does support PCIe, but it is not exposed on the board,
any idea if a rpi4 hat cab be used somehow....
-Thanks
ben
if DDR init is done in uboot, I have to add less code in microkernel.
Thanks, I think I can totally do away with uboot then.jamesh wrote: ↑Thu Sep 19, 2019 1:00 pmDDR init is done by the Pi bootloader. This gets loaded by the first stage loader (<Pi4, baked in to SoC, Pi4, in EEPROM), sets up the SoC, loads the GPU firmware, runs that, then that loads and runs the Linux kernel. I believe that a Uboot system replaces the kernel with Uboot, in effect adding that extra stage.rpinewbie01 wrote: ↑Thu Sep 19, 2019 12:13 pmI am working on a small microkernel which boots off uboot.
if DDR init is done in uboot, I have to add less code in microkernel.
However, if you just want to run a microkernel, you could just make it look like a Linux kernel image and drop it in there instead rather than using Uboot.
You should probably be reading the bare metal forum for information on all this.
Almost one year later there still doesn't seem to be PCIe support in U-Boot for the RaspberryPi4, hence no USB2/USB3 support yet and thus the new raspberrypi bootloader USB mass storage boot support cannot be used for systems that use U-Boot as a second level bootloader. Do you have any progress on that or do you know if someone is working on getting PCIe support for the RaspberryPi4 integrated in U-Boot?agherzan wrote: ↑Tue Aug 20, 2019 4:01 pmThat is one bit missing. We don't have a PICe driver at this point.neoXite wrote: ↑Tue Aug 20, 2019 3:52 pmExcellent job, agherzan! Can't wait to test this on my lab RPi4 and eventually seeing it upstreamed!
I'm primarily interested in using U-Boot to netboot a kernel/initrd via Ethernet, with just U-Boot and the firmware blobs residing on the SD card, this already works beautifully on RPi2/3.
I understand the RPi4 has a completely new Ethernet setup with the PHY now hooked up directly via PCIe rather than USB.
Do any usable Ethernet driver bits exist in U-boot yet? Thank you for any insight!