master u-boot broken for HiFive Unleashed

Hi, The latest master (423e08cb7701 (origin/master, origin/HEAD) Merge branch '2020-07-28-misc-soc-improvements') seems to be broken for HiFive Unleashed.
It already has Bin's fix for unleashed.
a0018fc8209c riscv: Make SiFive HiFive Unleashed board boot again
dram start and size is corrupted for some reason. I have verified that it was initialized properly during DT parsing. However, it shows random values in the U-Boot console.
=> bdinfo boot_params = 0x0000000000000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff84000 reloc off = 0x000000007fd84000 Build = 64-bit
=> bdinfo boot_params = 0x9a26a361c16aa601 DRAM bank = 0x0000000000000000 -> start = 0x974515c3bda965ef -> size = 0x79b6f0fb37923036 memstart = 0x574587c7f00570f9 memsize = 0xCFD8C0F4D42668AB flashstart = 0x67f9fbb06586658b flashsize = 0xf91aed913c99b9e1 flashoffset = 0x9ddbf00d69e870fa baudrate = 115200 bps
v2020.07 seems to work fine. I couldn't bisect between those two as the number of commits didn't compile.

Hi Atish,
On Thu, Jul 30, 2020 at 5:43 AM Atish Patra atishp@atishpatra.org wrote:
Hi, The latest master (423e08cb7701 (origin/master, origin/HEAD) Merge branch '2020-07-28-misc-soc-improvements') seems to be broken for HiFive Unleashed.
It already has Bin's fix for unleashed.
a0018fc8209c riscv: Make SiFive HiFive Unleashed board boot again
dram start and size is corrupted for some reason. I have verified that it was initialized properly during DT parsing. However, it shows random values in the U-Boot console.
=> bdinfo boot_params = 0x0000000000000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff84000 reloc off = 0x000000007fd84000 Build = 64-bit
=> bdinfo boot_params = 0x9a26a361c16aa601 DRAM bank = 0x0000000000000000 -> start = 0x974515c3bda965ef -> size = 0x79b6f0fb37923036 memstart = 0x574587c7f00570f9 memsize = 0xCFD8C0F4D42668AB flashstart = 0x67f9fbb06586658b flashsize = 0xf91aed913c99b9e1 flashoffset = 0x9ddbf00d69e870fa baudrate = 115200 bps
v2020.07 seems to work fine. I couldn't bisect between those two as the number of commits didn't compile.
I cannot reproduce this. See below log:
U-Boot SPL 2020.10-rc1-00172-ga2d051e (Aug 03 2020 - 12:22:07 +0800) Trying to boot from MMC1
U-Boot 2020.10-rc1-00172-ga2d051e (Aug 03 2020 - 12:22:07 +0800)
CPU: rv64imafdc Model: SiFive HiFive Unleashed A00 DRAM: 8 GiB MMC: spi@10050000:mmc@0: 0 Loading Environment from SPIFlash... SF: Detected is25wp256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB OK In: serial@10010000 Out: serial@10010000 Err: serial@10010000 Net: eth0: ethernet@10090000 Hit any key to stop autoboot: 0 => => bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000200000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff83000 reloc off = 0x000000007fd83000 Build = 64-bit current eth = ethernet@10090000 ethaddr = 70:b3:d5:92:f2:51 IP addr = 128.224.159.129 fdt_blob = 0x00000000ff75c4a0 new_fdt = 0x00000000ff75c4a0 fdt_size = 0x0000000000006980
=>
I built U-Boot from the latest u-boot/master:
commit a2d051e7b6a8f87add1067d936bb0c805a47b0df Merge: 719f421 db82015 Author: Tom Rini trini@konsulko.com Date: Fri Jul 31 10:13:07 2020 -0400
Merge branch '2020-07-31-more-env-updates'
- Fix EFI selftest to not force setting serial# environment (and also get the U-Boot prompt dynamically). - Support for append only environment and other related features. - Improved ext4 environment support - Fix the case of fw_setenv being used on flash devices that were not already locked.
Regards, Bin

On Sun, Aug 2, 2020 at 9:26 PM Bin Meng bmeng.cn@gmail.com wrote:
Hi Atish,
On Thu, Jul 30, 2020 at 5:43 AM Atish Patra atishp@atishpatra.org wrote:
Hi, The latest master (423e08cb7701 (origin/master, origin/HEAD) Merge branch '2020-07-28-misc-soc-improvements') seems to be broken for HiFive Unleashed.
It already has Bin's fix for unleashed.
a0018fc8209c riscv: Make SiFive HiFive Unleashed board boot again
dram start and size is corrupted for some reason. I have verified that it was initialized properly during DT parsing. However, it shows random values in the U-Boot console.
=> bdinfo boot_params = 0x0000000000000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff84000 reloc off = 0x000000007fd84000 Build = 64-bit
=> bdinfo boot_params = 0x9a26a361c16aa601 DRAM bank = 0x0000000000000000 -> start = 0x974515c3bda965ef -> size = 0x79b6f0fb37923036 memstart = 0x574587c7f00570f9 memsize = 0xCFD8C0F4D42668AB flashstart = 0x67f9fbb06586658b flashsize = 0xf91aed913c99b9e1 flashoffset = 0x9ddbf00d69e870fa baudrate = 115200 bps
v2020.07 seems to work fine. I couldn't bisect between those two as the number of commits didn't compile.
I cannot reproduce this. See below log:
U-Boot SPL 2020.10-rc1-00172-ga2d051e (Aug 03 2020 - 12:22:07 +0800) Trying to boot from MMC1
Thanks for testing. I was using FSBL. Let me try with U-Boot SPL.
U-Boot 2020.10-rc1-00172-ga2d051e (Aug 03 2020 - 12:22:07 +0800)
CPU: rv64imafdc Model: SiFive HiFive Unleashed A00 DRAM: 8 GiB MMC: spi@10050000:mmc@0: 0 Loading Environment from SPIFlash... SF: Detected is25wp256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB OK In: serial@10010000 Out: serial@10010000 Err: serial@10010000 Net: eth0: ethernet@10090000 Hit any key to stop autoboot: 0 => => bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000200000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff83000 reloc off = 0x000000007fd83000 Build = 64-bit current eth = ethernet@10090000 ethaddr = 70:b3:d5:92:f2:51 IP addr = 128.224.159.129 fdt_blob = 0x00000000ff75c4a0 new_fdt = 0x00000000ff75c4a0 fdt_size = 0x0000000000006980
=>
I built U-Boot from the latest u-boot/master:
commit a2d051e7b6a8f87add1067d936bb0c805a47b0df Merge: 719f421 db82015 Author: Tom Rini trini@konsulko.com Date: Fri Jul 31 10:13:07 2020 -0400
Merge branch '2020-07-31-more-env-updates' - Fix EFI selftest to not force setting serial# environment (and also get the U-Boot prompt dynamically). - Support for append only environment and other related features. - Improved ext4 environment support - Fix the case of fw_setenv being used on flash devices that were not already locked.
Regards, Bin

Hi Atish,
I tried to debug this and find something interesting.
With FSBL, I am able to reproduce the same and found that if I will disable CONFIG_OF_BOARD_FIXUP and then print the bdinfo shows expected result.
=> bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000200000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff83000 reloc off = 0x000000007fd83000 Build = 64-bit current eth = ethernet@10090000 ethaddr = (not set) IP addr = <NULL> fdt_blob = 0x00000000ff75e680 new_fdt = 0x00000000ff75e680 fdt_size = 0x00000000000047a0 =>
With CONFIG_OF_BOARD_FIXUP, following functions gets called fix_fdt() ("common/board_f.c") -> board_fix_fdt() ("arch/riscv/lib/fdt_fixup.c") and in this we will increase the fdt_blob size for PMP regions
/* * Extend the FDT by the following estimated size: * * Each PMP memory region entry occupies 64 bytes. * With 16 PMP memory regions we need 64 * 16 = 1024 bytes. */ err = fdt_open_into(dst, dst, fdt_totalsize(dst) + 1024);
I suspect this will overwrite the global data (gd) and that creates the problem.
Surprisingly With U-Boot SPL, Latest U-Boot master branch works fine and shows expected results.
-----Original Message----- From: Atish Patra atishp@atishpatra.org Sent: 30 July 2020 03:13 To: U-Boot Mailing List u-boot@lists.denx.de; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; Pragnesh Patel pragnesh.patel@sifive.com Subject: master u-boot broken for HiFive Unleashed
[External Email] Do not click links or attachments unless you recognize the sender and know the content is safe
Hi, The latest master (423e08cb7701 (origin/master, origin/HEAD) Merge branch '2020-07-28-misc-soc-improvements') seems to be broken for HiFive Unleashed.
It already has Bin's fix for unleashed.
a0018fc8209c riscv: Make SiFive HiFive Unleashed board boot again
dram start and size is corrupted for some reason. I have verified that it was initialized properly during DT parsing. However, it shows random values in the U- Boot console.
=> bdinfo boot_params = 0x0000000000000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff84000 reloc off = 0x000000007fd84000 Build = 64-bit
=> bdinfo boot_params = 0x9a26a361c16aa601 DRAM bank = 0x0000000000000000 -> start = 0x974515c3bda965ef -> size = 0x79b6f0fb37923036 memstart = 0x574587c7f00570f9 memsize = 0xCFD8C0F4D42668AB flashstart = 0x67f9fbb06586658b flashsize = 0xf91aed913c99b9e1 flashoffset = 0x9ddbf00d69e870fa baudrate = 115200 bps
v2020.07 seems to work fine. I couldn't bisect between those two as the number of commits didn't compile.
-- Regards, Atish

Hi Atish,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pragnesh Patel Sent: 04 August 2020 19:55 To: Atish Patra atishp@atishpatra.org; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; U-Boot Mailing List u-boot@lists.denx.de Subject: RE: master u-boot broken for HiFive Unleashed
Hi Atish,
I tried to debug this and find something interesting.
With FSBL, I am able to reproduce the same and found that if I will disable CONFIG_OF_BOARD_FIXUP and then print the bdinfo shows expected result.
=> bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000200000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff83000 reloc off = 0x000000007fd83000 Build = 64-bit current eth = ethernet@10090000 ethaddr = (not set) IP addr = <NULL> fdt_blob = 0x00000000ff75e680 new_fdt = 0x00000000ff75e680 fdt_size = 0x00000000000047a0 =>
With CONFIG_OF_BOARD_FIXUP, following functions gets called fix_fdt() ("common/board_f.c") -> board_fix_fdt() ("arch/riscv/lib/fdt_fixup.c") and in this we will increase the fdt_blob size for PMP regions
/* * Extend the FDT by the following estimated size: * * Each PMP memory region entry occupies 64 bytes. * With 16 PMP memory regions we need 64 * 16 = 1024 bytes. */ err = fdt_open_into(dst, dst, fdt_totalsize(dst) + 1024);
I suspect this will overwrite the global data (gd) and that creates the problem.
Surprisingly With U-Boot SPL, Latest U-Boot master branch works fine and shows expected results.
With U-Boot SPL it works because in riscv_board_reserved_mem_fixup() ("arch/riscv/lib/fdt_fixup.c")
riscv_board_reserved_mem_fixup() { /* avoid the copy if we are using the same device tree */ if (src_fdt_addr == fdt) return 0;
riscv_fdt_copy_resv_mem_node(); }
OpenSBI and U-Boot both are using the same device tree (U-Boot SPL sends U-Boot device tree address in a1 register to OpenSBI), so riscv_fdt_copy_resv_mem_node() never gets called.
With FSBL, OpenSBI and U-Boot uses different device tree so riscv_board_reserved_mem_fixup() ("arch/riscv/lib/fdt_fixup.c"), so riscv_fdt_copy_resv_mem_node() getting called and tried to increase the fdt_blob size which will overwrite the global data (gd).
-----Original Message----- From: Atish Patra atishp@atishpatra.org Sent: 30 July 2020 03:13 To: U-Boot Mailing List u-boot@lists.denx.de; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; Pragnesh Patel pragnesh.patel@sifive.com Subject: master u-boot broken for HiFive Unleashed
[External Email] Do not click links or attachments unless you recognize the sender and know the content is safe
Hi, The latest master (423e08cb7701 (origin/master, origin/HEAD) Merge branch '2020-07-28-misc-soc-improvements') seems to be broken for HiFive
Unleashed.
It already has Bin's fix for unleashed.
a0018fc8209c riscv: Make SiFive HiFive Unleashed board boot again
dram start and size is corrupted for some reason. I have verified that it was initialized properly during DT parsing. However, it shows random values in the U- Boot console.
=> bdinfo boot_params = 0x0000000000000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff84000 reloc off = 0x000000007fd84000 Build = 64-bit
=> bdinfo boot_params = 0x9a26a361c16aa601 DRAM bank = 0x0000000000000000 -> start = 0x974515c3bda965ef -> size = 0x79b6f0fb37923036 memstart = 0x574587c7f00570f9 memsize = 0xCFD8C0F4D42668AB flashstart = 0x67f9fbb06586658b flashsize = 0xf91aed913c99b9e1 flashoffset = 0x9ddbf00d69e870fa baudrate = 115200 bps
v2020.07 seems to work fine. I couldn't bisect between those two as the number of commits didn't compile.
-- Regards, Atish

Hi Atish,
I just sent a patch to solve this issue. https://patchwork.ozlabs.org/project/uboot/patch/20200805090053.11805-1-prag...
Thanks, Pragnesh
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pragnesh Patel Sent: 04 August 2020 20:03 To: Atish Patra atishp@atishpatra.org; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; U-Boot Mailing List u-boot@lists.denx.de Subject: RE: master u-boot broken for HiFive Unleashed
Hi Atish,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pragnesh Patel Sent: 04 August 2020 19:55 To: Atish Patra atishp@atishpatra.org; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; U-Boot Mailing List u-boot@lists.denx.de Subject: RE: master u-boot broken for HiFive Unleashed
Hi Atish,
I tried to debug this and find something interesting.
With FSBL, I am able to reproduce the same and found that if I will disable CONFIG_OF_BOARD_FIXUP and then print the bdinfo shows expected result.
=> bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000200000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff83000 reloc off = 0x000000007fd83000 Build = 64-bit current eth = ethernet@10090000 ethaddr = (not set) IP addr = <NULL> fdt_blob = 0x00000000ff75e680 new_fdt = 0x00000000ff75e680 fdt_size = 0x00000000000047a0 =>
With CONFIG_OF_BOARD_FIXUP, following functions gets called fix_fdt() ("common/board_f.c") -> board_fix_fdt() ("arch/riscv/lib/fdt_fixup.c") and in this we will increase the fdt_blob size for PMP regions
/* * Extend the FDT by the following estimated size: * * Each PMP memory region entry occupies 64 bytes. * With 16 PMP memory regions we need 64 * 16 = 1024 bytes. */ err = fdt_open_into(dst, dst, fdt_totalsize(dst) + 1024);
I suspect this will overwrite the global data (gd) and that creates the problem.
Surprisingly With U-Boot SPL, Latest U-Boot master branch works fine and shows expected results.
With U-Boot SPL it works because in riscv_board_reserved_mem_fixup() ("arch/riscv/lib/fdt_fixup.c")
riscv_board_reserved_mem_fixup() { /* avoid the copy if we are using the same device tree */ if (src_fdt_addr == fdt) return 0;
riscv_fdt_copy_resv_mem_node(); }
OpenSBI and U-Boot both are using the same device tree (U-Boot SPL sends U- Boot device tree address in a1 register to OpenSBI), so riscv_fdt_copy_resv_mem_node() never gets called.
With FSBL, OpenSBI and U-Boot uses different device tree so riscv_board_reserved_mem_fixup() ("arch/riscv/lib/fdt_fixup.c"), so riscv_fdt_copy_resv_mem_node() getting called and tried to increase the fdt_blob size which will overwrite the global data (gd).
-----Original Message----- From: Atish Patra atishp@atishpatra.org Sent: 30 July 2020 03:13 To: U-Boot Mailing List u-boot@lists.denx.de; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; Pragnesh Patel pragnesh.patel@sifive.com Subject: master u-boot broken for HiFive Unleashed
[External Email] Do not click links or attachments unless you recognize the sender and know the content is safe
Hi, The latest master (423e08cb7701 (origin/master, origin/HEAD) Merge branch '2020-07-28-misc-soc-improvements') seems to be broken for HiFive
Unleashed.
It already has Bin's fix for unleashed.
a0018fc8209c riscv: Make SiFive HiFive Unleashed board boot again
dram start and size is corrupted for some reason. I have verified that it was initialized properly during DT parsing. However, it shows random values in the U- Boot console.
=> bdinfo boot_params = 0x0000000000000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff84000 reloc off = 0x000000007fd84000 Build = 64-bit
=> bdinfo boot_params = 0x9a26a361c16aa601 DRAM bank = 0x0000000000000000 -> start = 0x974515c3bda965ef -> size = 0x79b6f0fb37923036 memstart = 0x574587c7f00570f9 memsize = 0xCFD8C0F4D42668AB flashstart = 0x67f9fbb06586658b flashsize = 0xf91aed913c99b9e1 flashoffset = 0x9ddbf00d69e870fa baudrate = 115200 bps
v2020.07 seems to work fine. I couldn't bisect between those two as the number of commits didn't compile.
-- Regards, Atish

On Tue, Aug 4, 2020 at 7:33 AM Pragnesh Patel pragnesh.patel@sifive.com wrote:
Hi Atish,
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Pragnesh Patel Sent: 04 August 2020 19:55 To: Atish Patra atishp@atishpatra.org; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; U-Boot Mailing List u-boot@lists.denx.de Subject: RE: master u-boot broken for HiFive Unleashed
Hi Atish,
I tried to debug this and find something interesting.
With FSBL, I am able to reproduce the same and found that if I will disable CONFIG_OF_BOARD_FIXUP and then print the bdinfo shows expected result.
=> bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080000000 -> size = 0x0000000200000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff83000 reloc off = 0x000000007fd83000 Build = 64-bit current eth = ethernet@10090000 ethaddr = (not set) IP addr = <NULL> fdt_blob = 0x00000000ff75e680 new_fdt = 0x00000000ff75e680 fdt_size = 0x00000000000047a0 =>
With CONFIG_OF_BOARD_FIXUP, following functions gets called fix_fdt() ("common/board_f.c") -> board_fix_fdt() ("arch/riscv/lib/fdt_fixup.c") and in this we will increase the fdt_blob size for PMP regions
/* * Extend the FDT by the following estimated size: * * Each PMP memory region entry occupies 64 bytes. * With 16 PMP memory regions we need 64 * 16 = 1024 bytes. */ err = fdt_open_into(dst, dst, fdt_totalsize(dst) + 1024);
I suspect this will overwrite the global data (gd) and that creates the problem.
Surprisingly With U-Boot SPL, Latest U-Boot master branch works fine and shows expected results.
With U-Boot SPL it works because in riscv_board_reserved_mem_fixup() ("arch/riscv/lib/fdt_fixup.c")
riscv_board_reserved_mem_fixup() { /* avoid the copy if we are using the same device tree */ if (src_fdt_addr == fdt) return 0;
riscv_fdt_copy_resv_mem_node();
}
OpenSBI and U-Boot both are using the same device tree (U-Boot SPL sends U-Boot device tree address in a1 register to OpenSBI), so riscv_fdt_copy_resv_mem_node() never gets called.
With FSBL, OpenSBI and U-Boot uses different device tree so riscv_board_reserved_mem_fixup() ("arch/riscv/lib/fdt_fixup.c"), so riscv_fdt_copy_resv_mem_node() getting called and tried to increase the fdt_blob size which will overwrite the global data (gd).
Thanks for root causing the issue. Apologies for not replying earlier.
-----Original Message----- From: Atish Patra atishp@atishpatra.org Sent: 30 July 2020 03:13 To: U-Boot Mailing List u-boot@lists.denx.de; Bin Meng bmeng.cn@gmail.com; Rick Chen rick@andestech.com Cc: Anup Patel anup@brainfault.org; Lukas Auer lukas.auer@aisec.fraunhofer.de; Pragnesh Patel pragnesh.patel@sifive.com Subject: master u-boot broken for HiFive Unleashed
[External Email] Do not click links or attachments unless you recognize the sender and know the content is safe
Hi, The latest master (423e08cb7701 (origin/master, origin/HEAD) Merge branch '2020-07-28-misc-soc-improvements') seems to be broken for HiFive
Unleashed.
It already has Bin's fix for unleashed.
a0018fc8209c riscv: Make SiFive HiFive Unleashed board boot again
dram start and size is corrupted for some reason. I have verified that it was initialized properly during DT parsing. However, it shows random values in the U- Boot console.
=> bdinfo boot_params = 0x0000000000000000 memstart = 0x0000000000000000 memsize = 0x00000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x00000000fff84000 reloc off = 0x000000007fd84000 Build = 64-bit
=> bdinfo boot_params = 0x9a26a361c16aa601 DRAM bank = 0x0000000000000000 -> start = 0x974515c3bda965ef -> size = 0x79b6f0fb37923036 memstart = 0x574587c7f00570f9 memsize = 0xCFD8C0F4D42668AB flashstart = 0x67f9fbb06586658b flashsize = 0xf91aed913c99b9e1 flashoffset = 0x9ddbf00d69e870fa baudrate = 115200 bps
v2020.07 seems to work fine. I couldn't bisect between those two as the number of commits didn't compile.
-- Regards, Atish
participants (3)
-
Atish Patra
-
Bin Meng
-
Pragnesh Patel