master u-boot broken for HiFive Unleashed
Pragnesh Patel
pragnesh.patel at sifive.com
Tue Aug 4 16:25:11 CEST 2020
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 at 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 at atishpatra.org>
>Sent: 30 July 2020 03:13
>To: U-Boot Mailing List <u-boot at lists.denx.de>; Bin Meng
><bmeng.cn at gmail.com>; Rick Chen <rick at andestech.com>
>Cc: Anup Patel <anup at brainfault.org>; Lukas Auer
><lukas.auer at aisec.fraunhofer.de>; Pragnesh Patel <pragnesh.patel at 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
More information about the U-Boot
mailing list