Updates to u-boot script for Raspberry Pi 4b devices

Message ID 9170af89-a308-429a-a56a-f0db65dd7ae4@setera.org
State New
Headers
Series Updates to u-boot script for Raspberry Pi 4b devices |

Commit Message

Craig Setera May 16, 2024, 12:17 a.m. UTC
  Updates to u-boot script for Raspberry Pi 4b devices to
properly configure the serial console and to choose the proper boot address
to be used on newer board revisions. With these changes in place, I'm able
to fully boot into a serial console in u-boot.
The serial console configuration was derived from the Grub configuration,
while the boot address changes were taken from the IPFire Raspberry 4b
documentation page: https://www.ipfire.org/docs/hardware/arm/rpi/four
Per the conversation in the forums, I don't know why the boot
address changes are required. I was simply trying to automate those
changes such that downloaded builds will work out of the box.
https://community.ipfire.org/t/hang-with-kernel-starting-on-raspberry-pi/11558/37
NOTE: The use of the different parameter options to the test
command to minimize the need for deeply nested conditionals. I did
try more bash-shell like syntax, but u-boot didn't seem to like that.
The operators used here were found in the u-boot source.
Tested-by: Craig Setera <craigjunk@setera.org>
Signed-off-by: Craig Setera <craigjunk@setera.org>
---
config/u-boot/boot.cmd | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
+++ b/config/u-boot/boot.cmd
@@-51,7 +51,11 @@if test "${SERIAL-CONSOLE}" = "ON"; then
if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b.dtb"; then
setenv console ttyS1,115200n8;
else
-setenv console ttyAMA0,115200n8;
+if test "${fdtfile}" = "broadcom/bcm2711-rpi-4-b.dtb"; then
+setenv console ttyS0,115200n8;
+else
+setenv console ttyAMA0,115200n8;
+fi;
fi;
fi;
else
@@-95,11 +99,28 @@else
setenv ramdisk_addr -;
fi;
+#
+# Handle Raspberry Pi 4 address differences
+# https://www.ipfire.org/docs/hardware/arm/rpi/four
+#
+setenv booti_fdt_addr ${fdt_addr_r};
+if test "${board}" -eq "rpi" -a ${cpu} -eq "armv8" -a "${fdtfile}" -eq 
"broadcom/bcm2711-rpi-4-b.dtb"; then
+# Hardware revision 1.4
+if test ${board_revision} -eq 0xB03114 -o ${board_revision} -eq 
0xC03114 -o ${board_revision} -eq 0xD03114; then
+setenv booti_fdt_addr ${fdt_addr};
+fi
+
+# Hardware revision 1.5
+if test ${board_revision} -eq 0xB03115 -o ${board_revision} -eq 
0xC03115 -o ${board_revision} -eq 0xD03115; then
+setenv booti_fdt_addr ${fdt_addr};
+fi
+fi;
+
bootz ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
-booti ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
+booti ${kernel_addr_r} ${ramdisk_addr} ${booti_fdt_addr};
bootz ${kernel_addr_r} - ${fdt_addr_r};
-booti ${kernel_addr_r} - ${fdt_addr_r};
+booti ${kernel_addr_r} - ${booti_fdt_addr};
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
  

Comments

Craig Setera May 16, 2024, 5:38 p.m. UTC | #1
Apologies.  I just realized that I forgot to prefix the subject with 
[Patch].  Should I resend with a new subject or can this be considered 
without that step?

On 5/15/24 7:17 PM, Craig Setera wrote:
> Updates to u-boot script for Raspberry Pi 4b devices to
> properly configure the serial console and to choose the proper boot 
> address
> to be used on newer board revisions. With these changes in place, I'm 
> able
> to fully boot into a serial console in u-boot.
> The serial console configuration was derived from the Grub configuration,
> while the boot address changes were taken from the IPFire Raspberry 4b
> documentation page: https://www.ipfire.org/docs/hardware/arm/rpi/four
> Per the conversation in the forums, I don't know why the boot
> address changes are required. I was simply trying to automate those
> changes such that downloaded builds will work out of the box.
> https://community.ipfire.org/t/hang-with-kernel-starting-on-raspberry-pi/11558/37 
>
> NOTE: The use of the different parameter options to the test
> command to minimize the need for deeply nested conditionals. I did
> try more bash-shell like syntax, but u-boot didn't seem to like that.
> The operators used here were found in the u-boot source.
> Tested-by: Craig Setera <craigjunk@setera.org>
> Signed-off-by: Craig Setera <craigjunk@setera.org>
> ---
> config/u-boot/boot.cmd | 27 ++++++++++++++++++++++++---
> 1 file changed, 24 insertions(+), 3 deletions(-)
> diff --git a/config/u-boot/boot.cmd b/config/u-boot/boot.cmd
> index a27996780..eedd5776d 100644
> --- a/config/u-boot/boot.cmd
> +++ b/config/u-boot/boot.cmd
> @@-51,7 +51,11 @@if test "${SERIAL-CONSOLE}" = "ON"; then
> if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b.dtb"; then
> setenv console ttyS1,115200n8;
> else
> -setenv console ttyAMA0,115200n8;
> +if test "${fdtfile}" = "broadcom/bcm2711-rpi-4-b.dtb"; then
> +setenv console ttyS0,115200n8;
> +else
> +setenv console ttyAMA0,115200n8;
> +fi;
> fi;
> fi;
> else
> @@-95,11 +99,28 @@else
> setenv ramdisk_addr -;
> fi;
> +#
> +# Handle Raspberry Pi 4 address differences
> +# https://www.ipfire.org/docs/hardware/arm/rpi/four
> +#
> +setenv booti_fdt_addr ${fdt_addr_r};
> +if test "${board}" -eq "rpi" -a ${cpu} -eq "armv8" -a "${fdtfile}" 
> -eq "broadcom/bcm2711-rpi-4-b.dtb"; then
> +# Hardware revision 1.4
> +if test ${board_revision} -eq 0xB03114 -o ${board_revision} -eq 
> 0xC03114 -o ${board_revision} -eq 0xD03114; then
> +setenv booti_fdt_addr ${fdt_addr};
> +fi
> +
> +# Hardware revision 1.5
> +if test ${board_revision} -eq 0xB03115 -o ${board_revision} -eq 
> 0xC03115 -o ${board_revision} -eq 0xD03115; then
> +setenv booti_fdt_addr ${fdt_addr};
> +fi
> +fi;
> +
> bootz ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
> -booti ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
> +booti ${kernel_addr_r} ${ramdisk_addr} ${booti_fdt_addr};
> bootz ${kernel_addr_r} - ${fdt_addr_r};
> -booti ${kernel_addr_r} - ${fdt_addr_r};
> +booti ${kernel_addr_r} - ${booti_fdt_addr};
> # Recompile with:
> # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
  
Michael Tremer May 17, 2024, 9:27 a.m. UTC | #2
Hello Craig,

Thanks again for the patch. The tag in the subject line isn’t that important, but the email you sent has again removed all whitespace which makes it impossible to read or apply the patch.

-Michael

> On 16 May 2024, at 18:38, Craig Setera <craigjunk@setera.org> wrote:
> 
> Apologies.  I just realized that I forgot to prefix the subject with [Patch].  Should I resend with a new subject or can this be considered without that step?
> 
> On 5/15/24 7:17 PM, Craig Setera wrote:
>> Updates to u-boot script for Raspberry Pi 4b devices to
>> properly configure the serial console and to choose the proper boot address
>> to be used on newer board revisions. With these changes in place, I'm able
>> to fully boot into a serial console in u-boot.
>> The serial console configuration was derived from the Grub configuration,
>> while the boot address changes were taken from the IPFire Raspberry 4b
>> documentation page: https://www.ipfire.org/docs/hardware/arm/rpi/four
>> Per the conversation in the forums, I don't know why the boot
>> address changes are required. I was simply trying to automate those
>> changes such that downloaded builds will work out of the box.
>> https://community.ipfire.org/t/hang-with-kernel-starting-on-raspberry-pi/11558/37 
>> NOTE: The use of the different parameter options to the test
>> command to minimize the need for deeply nested conditionals. I did
>> try more bash-shell like syntax, but u-boot didn't seem to like that.
>> The operators used here were found in the u-boot source.
>> Tested-by: Craig Setera <craigjunk@setera.org>
>> Signed-off-by: Craig Setera <craigjunk@setera.org>
>> ---
>> config/u-boot/boot.cmd | 27 ++++++++++++++++++++++++---
>> 1 file changed, 24 insertions(+), 3 deletions(-)
>> diff --git a/config/u-boot/boot.cmd b/config/u-boot/boot.cmd
>> index a27996780..eedd5776d 100644
>> --- a/config/u-boot/boot.cmd
>> +++ b/config/u-boot/boot.cmd
>> @@-51,7 +51,11 @@if test "${SERIAL-CONSOLE}" = "ON"; then
>> if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b.dtb"; then
>> setenv console ttyS1,115200n8;
>> else
>> -setenv console ttyAMA0,115200n8;
>> +if test "${fdtfile}" = "broadcom/bcm2711-rpi-4-b.dtb"; then
>> +setenv console ttyS0,115200n8;
>> +else
>> +setenv console ttyAMA0,115200n8;
>> +fi;
>> fi;
>> fi;
>> else
>> @@-95,11 +99,28 @@else
>> setenv ramdisk_addr -;
>> fi;
>> +#
>> +# Handle Raspberry Pi 4 address differences
>> +# https://www.ipfire.org/docs/hardware/arm/rpi/four
>> +#
>> +setenv booti_fdt_addr ${fdt_addr_r};
>> +if test "${board}" -eq "rpi" -a ${cpu} -eq "armv8" -a "${fdtfile}" -eq "broadcom/bcm2711-rpi-4-b.dtb"; then
>> +# Hardware revision 1.4
>> +if test ${board_revision} -eq 0xB03114 -o ${board_revision} -eq 0xC03114 -o ${board_revision} -eq 0xD03114; then
>> +setenv booti_fdt_addr ${fdt_addr};
>> +fi
>> +
>> +# Hardware revision 1.5
>> +if test ${board_revision} -eq 0xB03115 -o ${board_revision} -eq 0xC03115 -o ${board_revision} -eq 0xD03115; then
>> +setenv booti_fdt_addr ${fdt_addr};
>> +fi
>> +fi;
>> +
>> bootz ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>> -booti ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>> +booti ${kernel_addr_r} ${ramdisk_addr} ${booti_fdt_addr};
>> bootz ${kernel_addr_r} - ${fdt_addr_r};
>> -booti ${kernel_addr_r} - ${fdt_addr_r};
>> +booti ${kernel_addr_r} - ${booti_fdt_addr};
>> # Recompile with:
>> # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
  
Craig Setera May 17, 2024, 11:48 a.m. UTC | #3
Thanks Michael

I will try to find time this weekend to try again.  I may have to see if 
I can get this done outside of Thunderbird.

To make sure I'm understanding the issue.  It seems like the patch 
contents are probably ok, but everything up to the contents of the patch 
are smashed together?

Craig

On 5/17/24 4:27 AM, Michael Tremer wrote:
> Hello Craig,
>
> Thanks again for the patch. The tag in the subject line isn’t that important, but the email you sent has again removed all whitespace which makes it impossible to read or apply the patch.
>
> -Michael
>
>> On 16 May 2024, at 18:38, Craig Setera <craigjunk@setera.org> wrote:
>>
>> Apologies.  I just realized that I forgot to prefix the subject with [Patch].  Should I resend with a new subject or can this be considered without that step?
>>
>> On 5/15/24 7:17 PM, Craig Setera wrote:
>>> Updates to u-boot script for Raspberry Pi 4b devices to
>>> properly configure the serial console and to choose the proper boot address
>>> to be used on newer board revisions. With these changes in place, I'm ablemay
>>> to fully boot into a serial console in u-boot.
>>> The serial console configuration was derived from the Grub configuration,
>>> while the boot address changes were taken from the IPFire Raspberry 4b
>>> documentation page: https://www.ipfire.org/docs/hardware/arm/rpi/four
>>> Per the conversation in the forums, I don't know why the boot
>>> address changes are required. I was simply trying to automate those
>>> changes such that downloaded builds will work out of the box.
>>> https://community.ipfire.org/t/hang-with-kernel-starting-on-raspberry-pi/11558/37
>>> NOTE: The use of the different parameter options to the test
>>> command to minimize the need for deeply nested conditionals. I did
>>> try more bash-shell like syntax, but u-boot didn't seem to like that.
>>> The operators used here were found in the u-boot source.
>>> Tested-by: Craig Setera <craigjunk@setera.org>
>>> Signed-off-by: Craig Setera <craigjunk@setera.org>
>>> ---
>>> config/u-boot/boot.cmd | 27 ++++++++++++++++++++++++---
>>> 1 file changed, 24 insertions(+), 3 deletions(-)
>>> diff --git a/config/u-boot/boot.cmd b/config/u-boot/boot.cmd
>>> index a27996780..eedd5776d 100644
>>> --- a/config/u-boot/boot.cmd
>>> +++ b/config/u-boot/boot.cmd
>>> @@-51,7 +51,11 @@if test "${SERIAL-CONSOLE}" = "ON"; then
>>> if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b.dtb"; then
>>> setenv console ttyS1,115200n8;
>>> else
>>> -setenv console ttyAMA0,115200n8;
>>> +if test "${fdtfile}" = "broadcom/bcm2711-rpi-4-b.dtb"; then
>>> +setenv console ttyS0,115200n8;
>>> +else
>>> +setenv console ttyAMA0,115200n8;
>>> +fi;
>>> fi;
>>> fi;
>>> else
>>> @@-95,11 +99,28 @@else
>>> setenv ramdisk_addr -;
>>> fi;
>>> +#
>>> +# Handle Raspberry Pi 4 address differences
>>> +# https://www.ipfire.org/docs/hardware/arm/rpi/four
>>> +#
>>> +setenv booti_fdt_addr ${fdt_addr_r};
>>> +if test "${board}" -eq "rpi" -a ${cpu} -eq "armv8" -a "${fdtfile}" -eq "broadcom/bcm2711-rpi-4-b.dtb"; then
>>> +# Hardware revision 1.4
>>> +if test ${board_revision} -eq 0xB03114 -o ${board_revision} -eq 0xC03114 -o ${board_revision} -eq 0xD03114; then
>>> +setenv booti_fdt_addr ${fdt_addr};
>>> +fi
>>> +
>>> +# Hardware revision 1.5
>>> +if test ${board_revision} -eq 0xB03115 -o ${board_revision} -eq 0xC03115 -o ${board_revision} -eq 0xD03115; then
>>> +setenv booti_fdt_addr ${fdt_addr};
>>> +fi
>>> +fi;
>>> +
>>> bootz ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>>> -booti ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>>> +booti ${kernel_addr_r} ${ramdisk_addr} ${booti_fdt_addr};
>>> bootz ${kernel_addr_r} - ${fdt_addr_r};
>>> -booti ${kernel_addr_r} - ${fdt_addr_r};
>>> +booti ${kernel_addr_r} - ${booti_fdt_addr};
>>> # Recompile with:
>>> # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
  
jon May 17, 2024, 3:54 p.m. UTC | #4
Craig,

I believe Michael is referring to the leading white space or the indents. 

Take a look at the existing code and that is easy to read with the indents.

Here is the existing code below:



I am guessing he has not looked at the content yet because the patch is difficult to read.

Jon



> On May 17, 2024, at 6:48 AM, Craig Setera <craigjunk@setera.org> wrote:
> 
> Thanks Michael
> 
> I will try to find time this weekend to try again.  I may have to see if I can get this done outside of Thunderbird.
> 
> To make sure I'm understanding the issue.  It seems like the patch contents are probably ok, but everything up to the contents of the patch are smashed together?
> 
> Craig
> 
> On 5/17/24 4:27 AM, Michael Tremer wrote:
>> Hello Craig,
>> 
>> Thanks again for the patch. The tag in the subject line isn’t that important, but the email you sent has again removed all whitespace which makes it impossible to read or apply the patch.
>> 
>> -Michael
>> 
>>> On 16 May 2024, at 18:38, Craig Setera <craigjunk@setera.org> wrote:
>>> 
>>> Apologies.  I just realized that I forgot to prefix the subject with [Patch].  Should I resend with a new subject or can this be considered without that step?
>>> 
>>> On 5/15/24 7:17 PM, Craig Setera wrote:
>>>> Updates to u-boot script for Raspberry Pi 4b devices to
>>>> properly configure the serial console and to choose the proper boot address
>>>> to be used on newer board revisions. With these changes in place, I'm ablemay
>>>> to fully boot into a serial console in u-boot.
>>>> The serial console configuration was derived from the Grub configuration,
>>>> while the boot address changes were taken from the IPFire Raspberry 4b
>>>> documentation page: https://www.ipfire.org/docs/hardware/arm/rpi/four
>>>> Per the conversation in the forums, I don't know why the boot
>>>> address changes are required. I was simply trying to automate those
>>>> changes such that downloaded builds will work out of the box.
>>>> https://community.ipfire.org/t/hang-with-kernel-starting-on-raspberry-pi/11558/37
>>>> NOTE: The use of the different parameter options to the test
>>>> command to minimize the need for deeply nested conditionals. I did
>>>> try more bash-shell like syntax, but u-boot didn't seem to like that.
>>>> The operators used here were found in the u-boot source.
>>>> Tested-by: Craig Setera <craigjunk@setera.org>
>>>> Signed-off-by: Craig Setera <craigjunk@setera.org>
>>>> ---
>>>> config/u-boot/boot.cmd | 27 ++++++++++++++++++++++++---
>>>> 1 file changed, 24 insertions(+), 3 deletions(-)
>>>> diff --git a/config/u-boot/boot.cmd b/config/u-boot/boot.cmd
>>>> index a27996780..eedd5776d 100644
>>>> --- a/config/u-boot/boot.cmd
>>>> +++ b/config/u-boot/boot.cmd
>>>> @@-51,7 +51,11 @@if test "${SERIAL-CONSOLE}" = "ON"; then
>>>> if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b.dtb"; then
>>>> setenv console ttyS1,115200n8;
>>>> else
>>>> -setenv console ttyAMA0,115200n8;
>>>> +if test "${fdtfile}" = "broadcom/bcm2711-rpi-4-b.dtb"; then
>>>> +setenv console ttyS0,115200n8;
>>>> +else
>>>> +setenv console ttyAMA0,115200n8;
>>>> +fi;
>>>> fi;
>>>> fi;
>>>> else
>>>> @@-95,11 +99,28 @@else
>>>> setenv ramdisk_addr -;
>>>> fi;
>>>> +#
>>>> +# Handle Raspberry Pi 4 address differences
>>>> +# https://www.ipfire.org/docs/hardware/arm/rpi/four
>>>> +#
>>>> +setenv booti_fdt_addr ${fdt_addr_r};
>>>> +if test "${board}" -eq "rpi" -a ${cpu} -eq "armv8" -a "${fdtfile}" -eq "broadcom/bcm2711-rpi-4-b.dtb"; then
>>>> +# Hardware revision 1.4
>>>> +if test ${board_revision} -eq 0xB03114 -o ${board_revision} -eq 0xC03114 -o ${board_revision} -eq 0xD03114; then
>>>> +setenv booti_fdt_addr ${fdt_addr};
>>>> +fi
>>>> +
>>>> +# Hardware revision 1.5
>>>> +if test ${board_revision} -eq 0xB03115 -o ${board_revision} -eq 0xC03115 -o ${board_revision} -eq 0xD03115; then
>>>> +setenv booti_fdt_addr ${fdt_addr};
>>>> +fi
>>>> +fi;
>>>> +
>>>> bootz ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>>>> -booti ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>>>> +booti ${kernel_addr_r} ${ramdisk_addr} ${booti_fdt_addr};
>>>> bootz ${kernel_addr_r} - ${fdt_addr_r};
>>>> -booti ${kernel_addr_r} - ${fdt_addr_r};
>>>> +booti ${kernel_addr_r} - ${booti_fdt_addr};
>>>> # Recompile with:
>>>> # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
  
Craig Setera May 17, 2024, 5:39 p.m. UTC | #5
Makes sense.  Not sure how it ended up that way because I definitely had 
it formatted correctly in my local source.  I will need to try to get a 
better patch out of Git.

Thanks for the clarification!

On 5/17/24 10:54 AM, jon wrote:
> Craig,
>
> I believe Michael is referring to the leading white space or the indents.
>
> Take a look at the existing code and that is easy to read with the 
> indents.
>
> Here is the existing code below:
>
>
> I am guessing he has not looked at the content yet because the patch 
> is difficult to read.
>
> Jon
>
>
>
>> On May 17, 2024, at 6:48 AM, Craig Setera <craigjunk@setera.org> wrote:
>>
>> Thanks Michael
>>
>> I will try to find time this weekend to try again.  I may have to see 
>> if I can get this done outside of Thunderbird.
>>
>> To make sure I'm understanding the issue.  It seems like the patch 
>> contents are probably ok, but everything up to the contents of the 
>> patch are smashed together?
>>
>> Craig
>>
>> On 5/17/24 4:27 AM, Michael Tremer wrote:
>>> Hello Craig,
>>>
>>> Thanks again for the patch. The tag in the subject line isn’t that 
>>> important, but the email you sent has again removed all whitespace 
>>> which makes it impossible to read or apply the patch.
>>>
>>> -Michael
>>>
>>>> On 16 May 2024, at 18:38, Craig Setera <craigjunk@setera.org> wrote:
>>>>
>>>> Apologies.  I just realized that I forgot to prefix the subject 
>>>> with [Patch].  Should I resend with a new subject or can this be 
>>>> considered without that step?
>>>>
>>>> On 5/15/24 7:17 PM, Craig Setera wrote:
>>>>> Updates to u-boot script for Raspberry Pi 4b devices to
>>>>> properly configure the serial console and to choose the proper 
>>>>> boot address
>>>>> to be used on newer board revisions. With these changes in place, 
>>>>> I'm ablemay
>>>>> to fully boot into a serial console in u-boot.
>>>>> The serial console configuration was derived from the Grub 
>>>>> configuration,
>>>>> while the boot address changes were taken from the IPFire Raspberry 4b
>>>>> documentation page: https://www.ipfire.org/docs/hardware/arm/rpi/four
>>>>> Per the conversation in the forums, I don't know why the boot
>>>>> address changes are required. I was simply trying to automate those
>>>>> changes such that downloaded builds will work out of the box.
>>>>> https://community.ipfire.org/t/hang-with-kernel-starting-on-raspberry-pi/11558/37
>>>>> NOTE: The use of the different parameter options to the test
>>>>> command to minimize the need for deeply nested conditionals. I did
>>>>> try more bash-shell like syntax, but u-boot didn't seem to like that.
>>>>> The operators used here were found in the u-boot source.
>>>>> Tested-by: Craig Setera <craigjunk@setera.org>
>>>>> Signed-off-by: Craig Setera <craigjunk@setera.org>
>>>>> ---
>>>>> config/u-boot/boot.cmd | 27 ++++++++++++++++++++++++---
>>>>> 1 file changed, 24 insertions(+), 3 deletions(-)
>>>>> diff --git a/config/u-boot/boot.cmd b/config/u-boot/boot.cmd
>>>>> index a27996780..eedd5776d 100644
>>>>> --- a/config/u-boot/boot.cmd
>>>>> +++ b/config/u-boot/boot.cmd
>>>>> @@-51,7 +51,11 @@if test "${SERIAL-CONSOLE}" = "ON"; then
>>>>> if test "${fdtfile}" = "broadcom/bcm2837-rpi-3-b.dtb"; then
>>>>> setenv console ttyS1,115200n8;
>>>>> else
>>>>> -setenv console ttyAMA0,115200n8;
>>>>> +if test "${fdtfile}" = "broadcom/bcm2711-rpi-4-b.dtb"; then
>>>>> +setenv console ttyS0,115200n8;
>>>>> +else
>>>>> +setenv console ttyAMA0,115200n8;
>>>>> +fi;
>>>>> fi;
>>>>> fi;
>>>>> else
>>>>> @@-95,11 +99,28 @@else
>>>>> setenv ramdisk_addr -;
>>>>> fi;
>>>>> +#
>>>>> +# Handle Raspberry Pi 4 address differences
>>>>> +# https://www.ipfire.org/docs/hardware/arm/rpi/four
>>>>> +#
>>>>> +setenv booti_fdt_addr ${fdt_addr_r};
>>>>> +if test "${board}" -eq "rpi" -a ${cpu} -eq "armv8" -a 
>>>>> "${fdtfile}" -eq "broadcom/bcm2711-rpi-4-b.dtb"; then
>>>>> +# Hardware revision 1.4
>>>>> +if test ${board_revision} -eq 0xB03114 -o ${board_revision} -eq 
>>>>> 0xC03114 -o ${board_revision} -eq 0xD03114; then
>>>>> +setenv booti_fdt_addr ${fdt_addr};
>>>>> +fi
>>>>> +
>>>>> +# Hardware revision 1.5
>>>>> +if test ${board_revision} -eq 0xB03115 -o ${board_revision} -eq 
>>>>> 0xC03115 -o ${board_revision} -eq 0xD03115; then
>>>>> +setenv booti_fdt_addr ${fdt_addr};
>>>>> +fi
>>>>> +fi;
>>>>> +
>>>>> bootz ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>>>>> -booti ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r};
>>>>> +booti ${kernel_addr_r} ${ramdisk_addr} ${booti_fdt_addr};
>>>>> bootz ${kernel_addr_r} - ${fdt_addr_r};
>>>>> -booti ${kernel_addr_r} - ${fdt_addr_r};
>>>>> +booti ${kernel_addr_r} - ${booti_fdt_addr};
>>>>> # Recompile with:
>>>>> # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
>
  

Patch

diff --git a/config/u-boot/boot.cmd b/config/u-boot/boot.cmd
index a27996780..eedd5776d 100644
--- a/config/u-boot/boot.cmd