
Dear community,
I own a rock-pi-3a board with 8G ram. Right now, radxa's u-boot is capable of detecting the whole amount during boot. Upstream u-boot shows 1G of dram installed.
I've started with evb-rk3568_defconfig.
What I would like to achieve is that u-boot load grub-efi, to finally boot the operating system. Howewer, with radxa uboot, and using grub-efi, the kernel sees 4G only. If I boot the kernel image directly from radxa u-boot, the whole 8G is visible. I assume that efi is broken somehow, as I get multiple warnings from kernel regarding EFI firmware.
Reading radxa's u-boot, it seems that it uses ATAGs do detect memory size. Am I in the right way?
Would it be beneficial to port some of that code to upstream u-boot, or are there other solutions to detect correct memory size?
Thanks in advance, Richard

Hi Richard,
The ATAGs to pass the parameters is not available on the mainline U-Boot, and only use os_regs for the ram size for now, it do have the limitation for max 4GB now.
There is a fix for this on the list, you can try it:
https://patchwork.ozlabs.org/project/uboot/patch/20220222013131.3114990-12-p...
Thanks,
- Kever
On 2022/4/8 15:44, Richard Kojedzinszky wrote:
Dear community,
I own a rock-pi-3a board with 8G ram. Right now, radxa's u-boot is capable of detecting the whole amount during boot. Upstream u-boot shows 1G of dram installed.
I've started with evb-rk3568_defconfig.
What I would like to achieve is that u-boot load grub-efi, to finally boot the operating system. Howewer, with radxa uboot, and using grub-efi, the kernel sees 4G only. If I boot the kernel image directly from radxa u-boot, the whole 8G is visible. I assume that efi is broken somehow, as I get multiple warnings from kernel regarding EFI firmware.
Reading radxa's u-boot, it seems that it uses ATAGs do detect memory size. Am I in the right way?
Would it be beneficial to port some of that code to upstream u-boot, or are there other solutions to detect correct memory size?
Thanks in advance, Richard

Hi Kever,
Thanks for your reply! I greatly appreciate your work, really. Additionally, can you please provide me sources of documentations, on which you base your work? I am totally blind in this area, and I would be interested in reading such kind of documentation of the SoCs.
Many thanks, Richard
2022-04-09 04:28 időpontban Kever Yang ezt írta:
Hi Richard,
The ATAGs to pass the parameters is not available on the mainline U-Boot, and only use os_regs for the ram size for now, it do have the limitation for max 4GB now.
There is a fix for this on the list, you can try it:
https://patchwork.ozlabs.org/project/uboot/patch/20220222013131.3114990-12-p...
Thanks,
- Kever
On 2022/4/8 15:44, Richard Kojedzinszky wrote:
Dear community,
I own a rock-pi-3a board with 8G ram. Right now, radxa's u-boot is capable of detecting the whole amount during boot. Upstream u-boot shows 1G of dram installed.
I've started with evb-rk3568_defconfig.
What I would like to achieve is that u-boot load grub-efi, to finally boot the operating system. Howewer, with radxa uboot, and using grub-efi, the kernel sees 4G only. If I boot the kernel image directly from radxa u-boot, the whole 8G is visible. I assume that efi is broken somehow, as I get multiple warnings from kernel regarding EFI firmware.
Reading radxa's u-boot, it seems that it uses ATAGs do detect memory size. Am I in the right way?
Would it be beneficial to port some of that code to upstream u-boot, or are there other solutions to detect correct memory size?
Thanks in advance, Richard

Dear Kever,
I've tried the patch, and now U-Boot sees the whole 8G. It can boot linux directly, that works now. Great!
Howewer, booting linux through grub-efi (/boot/efi/EFI/debian/grubaa64.efi) does not work. Grub itself starts, shows the menu, but booting linux stops. Booting from console looks like:
grub> linux (hd0,gpt2)/boot/vmlinuz-5.15.32 grub> linux (hd0,gpt2)/boot/vmlinuz-5.15.32 root=/dev/mmcblk1p2 console=ttyS2,1500000 rootwait grub> initrd (hd0,gpt2)/boot/initrd.img-5.15.32 grub> boot EFI stub: Booting Linux Kernel... EFI stub: Using DTB from configuration table EFI stub: Exiting boot services...
These are the last lines. I see no sign of the kernel booting. For example, ethernet leds are not turned on.
This u-boot+efi setup works on other boards, and also it worked before the patch, with 1G visible ram only.
Thanks in advance, Richard
2022-04-09 06:56 időpontban Richard Kojedzinszky ezt írta:
Hi Kever,
Thanks for your reply! I greatly appreciate your work, really. Additionally, can you please provide me sources of documentations, on which you base your work? I am totally blind in this area, and I would be interested in reading such kind of documentation of the SoCs.
Many thanks, Richard
2022-04-09 04:28 időpontban Kever Yang ezt írta:
Hi Richard,
The ATAGs to pass the parameters is not available on the mainline U-Boot, and only use os_regs for the ram size for now, it do have the limitation for max 4GB now.
There is a fix for this on the list, you can try it:
https://patchwork.ozlabs.org/project/uboot/patch/20220222013131.3114990-12-p...
Thanks,
- Kever
On 2022/4/8 15:44, Richard Kojedzinszky wrote:
Dear community,
I own a rock-pi-3a board with 8G ram. Right now, radxa's u-boot is capable of detecting the whole amount during boot. Upstream u-boot shows 1G of dram installed.
I've started with evb-rk3568_defconfig.
What I would like to achieve is that u-boot load grub-efi, to finally boot the operating system. Howewer, with radxa uboot, and using grub-efi, the kernel sees 4G only. If I boot the kernel image directly from radxa u-boot, the whole 8G is visible. I assume that efi is broken somehow, as I get multiple warnings from kernel regarding EFI firmware.
Reading radxa's u-boot, it seems that it uses ATAGs do detect memory size. Am I in the right way?
Would it be beneficial to port some of that code to upstream u-boot, or are there other solutions to detect correct memory size?
Thanks in advance, Richard
participants (2)
-
Kever Yang
-
Richard Kojedzinszky