• B
    hw/riscv: sifive_u: Add a dummy DDR memory controller device · 3eaea6eb
    Bin Meng 提交于
    It is enough to simply map the SiFive FU540 DDR memory controller
    into the MMIO space using create_unimplemented_device(), to make
    the upstream U-Boot v2020.07 DDR memory initialization codes happy.
    
    Note we do not generate device tree fragment for the DDR memory
    controller. Since the controller data in device tree consumes a
    very large space (see fu540-hifive-unleashed-a00-ddr.dtsi in the
    U-Boot source), and it is only needed by U-Boot SPL but not any
    operating system, we choose not to generate the fragment here.
    This also means when testing with U-Boot SPL, the device tree has
    to come from U-Boot SPL itself, but not the one generated by QEMU
    on the fly. The memory has to be set to 8GiB to match the real
    HiFive Unleashed board when invoking QEMU (-m 8G).
    
    With this commit, QEMU can boot U-Boot SPL built for SiFive FU540
    all the way up to loading U-Boot proper from MMC:
    
    $ qemu-system-riscv64 -nographic -M sifive_u,msel=6 -m 8G -bios u-boot-spl.bin
    
    U-Boot SPL 2020.07-rc3-00208-g88bd5b1 (Jun 08 2020 - 20:16:10 +0800)
    Trying to boot from MMC1
    Unhandled exception: Load access fault
    EPC: 0000000008009be6 TVAL: 0000000010050014
    
    The above exception is expected because QSPI is unsupported yet.
    Signed-off-by: NBin Meng <bin.meng@windriver.com>
    Reviewed-by: NAlistair Francis <alistair.francis@wdc.com>
    Message-id: 1592268641-7478-6-git-send-email-bmeng.cn@gmail.com
    Message-Id: <1592268641-7478-6-git-send-email-bmeng.cn@gmail.com>
    Signed-off-by: NAlistair Francis <alistair.francis@wdc.com>
    3eaea6eb
sifive_u.h 3.3 KB