Forum Discussion

tlang15's avatar
tlang15
Icon for New Contributor rankNew Contributor
6 years ago

Does U-boot socfpga_v2019.04 really support LPDDR2?

I cannot build cyclone V SPL using LPDDR2 with EDS 19.1.

Does U-boot socfpga_v2019.04 really support LPDDR2?

Longer version:

I have a custom cyclone V board with LPDDR2 HPS memory and so far

I've been using SPL based on U-boot branch socfpga_v2013.01.01.

According to:

https://rocketboards.org/foswiki/Documentation/BuildingBootloader#Cyclone_V_SoC_45_Boot_from_SD_Card

it seems that I have to upgrade U-boot to socfpga_v2019.04 when using EDS 19.1

but SPL does not compile when using LPDDR2 HPS memory due to missing defines.

The missing ones all seem to be related to DDR3 (e.g. RW_MGR_MRS1).

I tried building new projects containing nothing but a HPS block:

When using default SDRAM (DDR3), SPL builds fine. The defines my build was

missing all exist in hps_isw_handoff/*/sequencer_auto.h

When using Micron LPDDR2 SDRAM, SPL does not build due to missing defines.

hps_isw_handoff/*/sequencer_auto.h does not contain the missing defines.

See build log below.

Looking at code in u-boot-socfpga/drivers/ddr/altera I find no evidence

of LPDDR2 support, e.g. LPDDRDIS is hardcoded to '1' in sequencer.c

So it seems that socfpga_v2019.04 does not support LPDDR2?

/Thomas

k7:~/altera/pl/c5_test_lpddr2/software/bootloader/u-boot-socfpga$ make -j8

CHK include/config/uboot.release

CHK include/generated/timestamp_autogenerated.h

UPD include/generated/timestamp_autogenerated.h

CHK include/generated/version_autogenerated.h

CHK include/generated/generic-asm-offsets.h

CHK include/generated/asm-offsets.h

HOSTCC tools/mkenvimage.o

HOSTCC tools/fit_image.o

HOSTCC tools/image-host.o

HOSTCC tools/dumpimage.o

HOSTCC tools/mkimage.o

HOSTLD tools/mkenvimage

HOSTLD tools/dumpimage

HOSTLD tools/mkimage

CC arch/arm/mach-socfpga/wrap_pll_config.o

CC common/main.o

CC cmd/version.o

LD arch/arm/mach-socfpga/built-in.o

LD common/built-in.o

LD cmd/built-in.o

CC lib/smbios.o

CC lib/display_options.o

CC lib/efi_loader/helloworld.o

CC lib/efi_loader/efi_reloc.o

CC lib/efi_loader/efi_freestanding.o

LD lib/efi_loader/helloworld_efi.so

OBJCOPY lib/efi_loader/helloworld.efi

LD lib/built-in.o

LD u-boot

OBJCOPY u-boot.srec

OBJCOPY u-boot-nodtb.bin

SYM u-boot.sym

CAT u-boot-dtb.bin

COPY u-boot.bin

MKIMAGE u-boot.img

MKIMAGE u-boot-dtb.img

CC spl/common/spl/spl.o

CC spl/arch/arm/mach-socfpga/wrap_pll_config.o

CC spl/arch/arm/mach-socfpga/wrap_iocsr_config.o

CC spl/arch/arm/mach-socfpga/wrap_pinmux_config.o

CC spl/arch/arm/mach-socfpga/wrap_sdram_config.o

CC spl/lib/display_options.o

arch/arm/mach-socfpga/wrap_sdram_config.c:205:25: error: ‘RW_MGR_INIT_RESET_0_CKE_0’ undeclared here (not in a function); did you mean ‘RW_MGR_ACTIVATE_0_AND_1’?

.init_reset_0_cke_0 = RW_MGR_INIT_RESET_0_CKE_0,

^~~~~~~~~~~~~~~~~~~~~~~~~

RW_MGR_ACTIVATE_0_AND_1

arch/arm/mach-socfpga/wrap_sdram_config.c:206:25: error: ‘RW_MGR_INIT_RESET_1_CKE_0’ undeclared here (not in a function); did you mean ‘RW_MGR_INIT_RESET_0_CKE_0’?

.init_reset_1_cke_0 = RW_MGR_INIT_RESET_1_CKE_0,

^~~~~~~~~~~~~~~~~~~~~~~~~

RW_MGR_INIT_RESET_0_CKE_0

arch/arm/mach-socfpga/wrap_sdram_config.c:219:22: error: ‘RW_MGR_MRS0_DLL_RESET’ undeclared here (not in a function); did you mean ‘RW_MGR_SGLE_READ’?

.mrs0_dll_reset = RW_MGR_MRS0_DLL_RESET,

^~~~~~~~~~~~~~~~~~~~~

RW_MGR_SGLE_READ

arch/arm/mach-socfpga/wrap_sdram_config.c:220:26: error: ‘RW_MGR_MRS0_DLL_RESET_MIRR’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS0_DLL_RESET’?

.mrs0_dll_reset_mirr = RW_MGR_MRS0_DLL_RESET_MIRR,

^~~~~~~~~~~~~~~~~~~~~~~~~~

RW_MGR_MRS0_DLL_RESET

arch/arm/mach-socfpga/wrap_sdram_config.c:221:17: error: ‘RW_MGR_MRS0_USER’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS0_DLL_RESET’?

.mrs0_user = RW_MGR_MRS0_USER,

^~~~~~~~~~~~~~~~

RW_MGR_MRS0_DLL_RESET

arch/arm/mach-socfpga/wrap_sdram_config.c:222:22: error: ‘RW_MGR_MRS0_USER_MIRR’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS0_USER’?

.mrs0_user_mirr = RW_MGR_MRS0_USER_MIRR,

^~~~~~~~~~~~~~~~~~~~~

RW_MGR_MRS0_USER

arch/arm/mach-socfpga/wrap_sdram_config.c:223:13: error: ‘RW_MGR_MRS1’ undeclared here (not in a function); did you mean ‘RW_MGR_IDLE’?

.mrs1 = RW_MGR_MRS1,

^~~~~~~~~~~

RW_MGR_IDLE

arch/arm/mach-socfpga/wrap_sdram_config.c:224:17: error: ‘RW_MGR_MRS1_MIRR’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS0_USER’?

.mrs1_mirr = RW_MGR_MRS1_MIRR,

^~~~~~~~~~~~~~~~

RW_MGR_MRS0_USER

arch/arm/mach-socfpga/wrap_sdram_config.c:225:13: error: ‘RW_MGR_MRS2’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS1’?

.mrs2 = RW_MGR_MRS2,

^~~~~~~~~~~

RW_MGR_MRS1

arch/arm/mach-socfpga/wrap_sdram_config.c:226:17: error: ‘RW_MGR_MRS2_MIRR’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS1_MIRR’?

.mrs2_mirr = RW_MGR_MRS2_MIRR,

^~~~~~~~~~~~~~~~

RW_MGR_MRS1_MIRR

arch/arm/mach-socfpga/wrap_sdram_config.c:227:13: error: ‘RW_MGR_MRS3’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS2’?

.mrs3 = RW_MGR_MRS3,

^~~~~~~~~~~

RW_MGR_MRS2

arch/arm/mach-socfpga/wrap_sdram_config.c:228:17: error: ‘RW_MGR_MRS3_MIRR’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS2_MIRR’?

.mrs3_mirr = RW_MGR_MRS3_MIRR,

^~~~~~~~~~~~~~~~

RW_MGR_MRS2_MIRR

arch/arm/mach-socfpga/wrap_sdram_config.c:234:15: error: ‘RW_MGR_RETURN’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS3’?

.rreturn = RW_MGR_RETURN,

^~~~~~~~~~~~~

RW_MGR_MRS3

arch/arm/mach-socfpga/wrap_sdram_config.c:236:13: error: ‘RW_MGR_ZQCL’ undeclared here (not in a function); did you mean ‘RW_MGR_MRS3’?

.zqcl = RW_MGR_ZQCL,

^~~~~~~~~~~

RW_MGR_MRS3

scripts/Makefile.build:278: recipe for target 'spl/arch/arm/mach-socfpga/wrap_sdram_config.o' failed

make[2]: *** [spl/arch/arm/mach-socfpga/wrap_sdram_config.o] Error 1

scripts/Makefile.spl:398: recipe for target 'spl/arch/arm/mach-socfpga' failed

make[1]: *** [spl/arch/arm/mach-socfpga] Error 2

make[1]: *** Waiting for unfinished jobs....

LD spl/common/spl/built-in.o

LD spl/lib/built-in.o

Makefile:1664: recipe for target 'spl/u-boot-spl' failed

make: *** [spl/u-boot-spl] Error 2

6 Replies