diff --git a/src/soc/nvidia/tegra132/addressmap.c b/src/soc/nvidia/tegra132/addressmap.c
index d7ade2f..3df15b7 100644
--- a/src/soc/nvidia/tegra132/addressmap.c
+++ b/src/soc/nvidia/tegra132/addressmap.c
@@ -22,7 +22,6 @@
 #include <stdlib.h>
 #include <console/console.h>
 #include <soc/addressmap.h>
-#include <soc/display.h>
 #include <soc/id.h>
 #include "mc.h"
 #include "sdram.h"
@@ -166,20 +165,6 @@
 	memory_in_range(base_mib, end_mib, 0);
 }
 
-uintptr_t framebuffer_attributes(size_t *size_mib)
-{
-	uintptr_t begin;
-	uintptr_t end;
-
-	/* Place the framebuffer just below the 32-bit addressable limit. */
-	memory_in_range_below_4gb(&begin, &end);
-
-	*size_mib = FB_SIZE_MB;
-	end -= *size_mib;
-
-	return end;
-}
-
 void trustzone_region_init(void)
 {
 	struct tegra_mc_regs * const mc = (void *)(uintptr_t)TEGRA_MC_BASE;
diff --git a/src/soc/nvidia/tegra132/cbmem.c b/src/soc/nvidia/tegra132/cbmem.c
index da08520..e371298 100644
--- a/src/soc/nvidia/tegra132/cbmem.c
+++ b/src/soc/nvidia/tegra132/cbmem.c
@@ -23,18 +23,18 @@
 void *cbmem_top(void)
 {
 	static uintptr_t addr;
-	size_t fb_size;
 
-	/*
-	 * FIXME(adurbin): The TZ registers are not accessible to the AVP.
-	 * Therefore, if there is a TZ carveout then it needs to be handled
-	 * here while executing on the AVP in order to properly place the
-	 * CBMEM region.
-	 */
+	if (addr == 0) {
+		uintptr_t begin_mib;
+		uintptr_t end_mib;
 
-	/* CBMEM starts downwards from the framebuffer. */
-	if (addr == 0)
-		addr = framebuffer_attributes(&fb_size);
+		memory_in_range_below_4gb(&begin_mib, &end_mib);
+		/* Make sure we consume everything up to 4GiB. */
+		if (end_mib == 4096)
+			addr = ~(uint32_t)0;
+		else
+			addr = end_mib << 20;
+	}
 
-	return (void *)(addr << 20UL);
+	return (void *)addr;
 }
diff --git a/src/soc/nvidia/tegra132/include/soc/addressmap.h b/src/soc/nvidia/tegra132/include/soc/addressmap.h
index ebe50f5..dc8ba61 100644
--- a/src/soc/nvidia/tegra132/include/soc/addressmap.h
+++ b/src/soc/nvidia/tegra132/include/soc/addressmap.h
@@ -130,7 +130,4 @@
  */
 void trustzone_region_init(void);
 
-/* Return pointer and size in 1MiB units. */
-uintptr_t framebuffer_attributes(size_t *size_mib);
-
 #endif /* __SOC_NVIDIA_TEGRA132_INCLUDE_SOC_ADDRESS_MAP_H__ */
diff --git a/src/soc/nvidia/tegra132/include/soc/display.h b/src/soc/nvidia/tegra132/include/soc/display.h
index 2c21292..a6cd1a4 100644
--- a/src/soc/nvidia/tegra132/include/soc/display.h
+++ b/src/soc/nvidia/tegra132/include/soc/display.h
@@ -197,6 +197,4 @@
 		     u32 lane_count, u32 enhanced_framing, u32 panel_edp,
 		     u32 pclkfreq, u32 linkfreq);
 
-#define FB_SIZE_MB (32)
-
 #endif /* __SOC_NVIDIA_TEGRA132_INCLUDE_SOC_DISPLAY_H__ */
diff --git a/src/soc/nvidia/tegra132/soc.c b/src/soc/nvidia/tegra132/soc.c
index 2c03db7..25a8e7e 100644
--- a/src/soc/nvidia/tegra132/soc.c
+++ b/src/soc/nvidia/tegra132/soc.c
@@ -47,12 +47,6 @@
 		reserved_ram_resource(dev, index++, begin * KiB, size * KiB);
 	}
 
-	/*
-	 * TODO: Frame buffer needs to handled as a carveout from the below_4G
-	 * uintptr_t framebuffer_begin = framebuffer_attributes(&framebuffer_size);
-	 */
-
-
 	memory_in_range_below_4gb(&begin, &end);
 	size = end - begin;
 	ram_resource(dev, index++, begin * KiB, size * KiB);
