sifive/fu540: correct cbmem support

Return correct memory location for cbmem instead of incorrectly returning memory size.

Change-Id: If7f490a46edebb04c2280bf317d1adacef08f30d
Signed-off-by: Philipp Hug <philipp@hug.cx>
Reviewed-on: https://review.coreboot.org/29197
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Xiang Wang <wxjstz@126.com>
Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
diff --git a/src/soc/sifive/fu540/cbmem.c b/src/soc/sifive/fu540/cbmem.c
index 8648370..1c68de8 100644
--- a/src/soc/sifive/fu540/cbmem.c
+++ b/src/soc/sifive/fu540/cbmem.c
@@ -14,9 +14,13 @@
  */
 
 #include <cbmem.h>
+#include <soc/addressmap.h>
+#include <soc/sdram.h>
+#include <stdlib.h>
+#include <symbols.h>
 
 void *cbmem_top(void)
 {
-	/* dummy value */
-	return (void *)(4ULL * GiB);
+	return (void *)min((uintptr_t)_dram + sdram_size_mb() * MiB,
+			   FU540_MAXDRAM);
 }