[coreboot-gerrit] Change in coreboot[master]: vx900: skip remap of high memory ranges if unnecessary

Lubomir Rintel (Code Review) gerrit at coreboot.org
Wed Nov 1 07:50:19 CET 2017


Lubomir Rintel has uploaded this change for review. ( https://review.coreboot.org/22271


Change subject: vx900: skip remap of high memory ranges if unnecessary
......................................................................

vx900: skip remap of high memory ranges if unnecessary

If the DRAM does *not* actually overlap the PCI space, the remap code
notices it is the case, but for some reason proceeds with the remapping,
attempting to remap a negatively sized chunk. Bummer.

With a single 1024M (two ranks of 512M) module:

  Nothing to remap
  Mem remapping enabled
  Remapstart 5120(MB)
  Remapend   6144(MB)
  Top of RAM 1024MB
  New top of RAM 2560MB
  Wrote remap map a0101
  Mem remapping enabled
  Remapstart 4096(MB)
  Remapend   2560(MB)
  New top of memory is at 2560MB

Needless to say, subsequent ram_resource() ruins the memory map for the
OS -- Linux won't boot without a mem= argument and memtest quickly.

TEST=memtest and Linux boot on HP t5550 with 1024M of memory

Change-Id: Ic221723a26c5d1a03bf34c7722b0abe115f456ba
Signed-off-by: Lubomir Rintel <lkundrak at v3.sk>
---
M src/northbridge/via/vx900/northbridge.c
1 file changed, 3 insertions(+), 1 deletion(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/71/22271/1

diff --git a/src/northbridge/via/vx900/northbridge.c b/src/northbridge/via/vx900/northbridge.c
index 3638293..774f744 100644
--- a/src/northbridge/via/vx900/northbridge.c
+++ b/src/northbridge/via/vx900/northbridge.c
@@ -120,6 +120,7 @@
 	 */
 	if (tolm >= vx900_get_top_of_ram(mcu)) {
 		printk(BIOS_DEBUG, "Nothing to remap\n");
+		return 0;
 	}
 
 	/* This is how the Vendor BIOS. Keep it for comparison for now */
@@ -275,7 +276,8 @@
 	       uma_memory_size >> 20);
 	/* FIXME: How do we handle remapping above 4G? */
 	u64 tor = vx900_remap_above_4g(mcu, pci_tolm);
-	ram_resource(dev, idx++, RAM_4GB >> 10, (tor - RAM_4GB) >> 10);
+	if (tor)
+		ram_resource(dev, idx++, RAM_4GB >> 10, (tor - RAM_4GB) >> 10);
 
 	set_late_cbmem_top(tolmk << 10);
 

-- 
To view, visit https://review.coreboot.org/22271
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic221723a26c5d1a03bf34c7722b0abe115f456ba
Gerrit-Change-Number: 22271
Gerrit-PatchSet: 1
Gerrit-Owner: Lubomir Rintel <lkundrak at v3.sk>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20171101/79828fa2/attachment.html>


More information about the coreboot-gerrit mailing list