Aaron Durbin (adurbin(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4885
-gerrit
commit 2c390e24897123928b1e7c0bfca8454588721a45
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Wed Oct 16 09:21:55 2013 -0700
rambi: disable internal pullups on ram_id[2:0]
The ram_id[2:0] signals have stuffing options for pull up/down
with values of 10K. However, the default pulldown values for these
pads are 20K. Therefore, one can't read a high value because of
the high voltage threshold is 0.65 * Vref. Therefore the high
signals are marginal at best.
Fix this issue by disabling the internal pull for the pads connected
to ram_id[2:0].
BUG=chrome-os-partner:23350
BRANCH=None
TEST=Built and checked that ram_id[2:0] is properly read now.
Change-Id: Ib414d5798b472574337d1b71b87a4cf92f40c762
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/173211
Reviewed-by: Shawn Nematbakhsh <shawnn(a)chromium.org>
Reviewed-by: Bernie Thompson <bhthompson(a)chromium.org>
---
src/mainboard/google/rambi/romstage.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/mainboard/google/rambi/romstage.c b/src/mainboard/google/rambi/romstage.c
index d15a21d..369ebad 100644
--- a/src/mainboard/google/rambi/romstage.c
+++ b/src/mainboard/google/rambi/romstage.c
@@ -37,14 +37,29 @@
#define GPIO_SSUS_38_PAD 50
#define GPIO_SSUS_39_PAD 58
+static inline void disable_internal_pull(int pad)
+{
+ const int pull_mask = ~(0xf << 7);
+ write32(ssus_pconf0(pad), read32(ssus_pconf0(pad)) & pull_mask);
+}
+
static void *get_spd_pointer(char *spd_file_content, int total_spds)
{
int ram_id = 0;
+ /* The ram_id[2:0] pullups on rambi are too large for the default 20K
+ * pulldown on the pad. Therefore, disable the internal pull resistor to
+ * read high values correctly. */
+ disable_internal_pull(GPIO_SSUS_37_PAD);
+ disable_internal_pull(GPIO_SSUS_38_PAD);
+ disable_internal_pull(GPIO_SSUS_39_PAD);
+
ram_id |= (ssus_get_gpio(GPIO_SSUS_37_PAD) << 0);
ram_id |= (ssus_get_gpio(GPIO_SSUS_38_PAD) << 1);
ram_id |= (ssus_get_gpio(GPIO_SSUS_39_PAD) << 2);
+ printk(BIOS_DEBUG, "ram_id=%d, total_spds: %d\n", ram_id, total_spds);
+
if (ram_id >= total_spds)
return NULL;
Aaron Durbin (adurbin(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4887
-gerrit
commit 17134b469662a2264938db3af1c4c8c2efdf38f0
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Mon Oct 21 12:11:17 2013 -0500
rambi: add BSP lapic device
There's some baked in assumptions internal to coreboot
that the BSP's cpu device exists in the device tree. Therefore
provide one in the device tree.
BUG=chrome-os-partner:22862
BRANCH=None
TEST=Compiled and booted with other changes.
Change-Id: I22ba10964760ee8efbc5bbd5d4ce65daf31b3839
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/173702
---
src/mainboard/google/rambi/devicetree.cb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/mainboard/google/rambi/devicetree.cb b/src/mainboard/google/rambi/devicetree.cb
index 376aab6..c6ea97c 100644
--- a/src/mainboard/google/rambi/devicetree.cb
+++ b/src/mainboard/google/rambi/devicetree.cb
@@ -1,5 +1,7 @@
chip soc/intel/baytrail
- device cpu_cluster 0 on end
+ device cpu_cluster 0 on
+ device lapic 0 on end
+ end
device domain 0 on
device pci 00.0 on end # SoC router
device pci 02.0 on end # GFX