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 <ati...@atishpatra.org> >Sent: 30 July 2020 03:13 >To: U-Boot Mailing List <u-boot@lists.denx.de>; Bin Meng ><bmeng...@gmail.com>; Rick Chen <r...@andestech.com> >Cc: Anup Patel <a...@brainfault.org>; Lukas Auer ><lukas.a...@aisec.fraunhofer.de>; Pragnesh Patel <pragnesh.pa...@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