as part of porting coreboot to the HiFive Unleashed board, I would like to initialize the DDR RAM controller directly, rather than calling into FSBL. Section 20.3 of the FU540-C000 manual describes the sequence of that need to be performed, but it leaves out the values for the configuration registers at 0x100B0000-0x100B0424, 0x100B5200-0x100B52F8, and 0x100B4000-0x100B51FC, asking to “contact SiFive directly to determine the complete register settings for your application.”
I would like to know a set of register values that work on the HiFive Unleashed board, or a redistributable C/header file with these values, that could be included in a free software project such as coreboot.
I’m not quite sure how the advent of a free and open ISA plus implementations, gave way to an expectation that suddenly all the IP blocks you might require to build a practically useful SoC would be similarly free/open.
I saw a few posts on the internet, which misrepresented what I was expressing. I never suggested reverse engineering our partner’s IP!
SiFive is committed to supporting the open-source community. We are pleased to report that after discussions with our IP partners, we are now able to make available all the source code required to initialize the HiFive Unleashed board. The board’s boot sequence is described in the manual. The assembly code in the initial reset ROM is listed in the manual Chapter 6.1 “Reset Vector”. The firmware in the ZSBL mask ROM is directly readable by software on the chip, and we will be making the full source code available shortly. The source code for FSBL including the DDR initialization will also be available shortly. We can attest there is no other firmware run by the system during boot.