spring: update board revision info for DVT2
Including DVT2 in board revision IDs.
The board revision read from the GPIOs is encoded in ternary
(Z=0, LO=1, HI=2), so use the same encoding in the software and
re-order the id map to follow that ternary order.
BRANCH=spring
BUG=chrome-os-partner:19926
TEST=on Spring EVT, run "mosys platform version" and
"mosys memory spd print id"
Original-Change-Id: Ie65362af85f0ef0623c7916cb5853276a25366d4
Reviewed-on: https://gerrit.chromium.org/gerrit/57943
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
(cherry picked from commit 15ca0620dcbff067b2f3f3405e51221b8702fab3)
Change-Id: I85dc2f0f37f68e7307f794c4e3a4d907c1018bc9
Reviewed-on: https://gerrit.chromium.org/gerrit/57985
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
diff --git a/include/drivers/gpio.h b/include/drivers/gpio.h
index a98dfe7..3a413d7 100644
--- a/include/drivers/gpio.h
+++ b/include/drivers/gpio.h
@@ -55,9 +55,9 @@
* 1 | 1 | 1
*/
enum mvl3 {
+ LOGIC_Z, /* high impedance / tri-stated / floating */
LOGIC_0,
LOGIC_1,
- LOGIC_Z, /* high impedence / tri-stated / floating */
};
struct gpio_map {
diff --git a/platform/experimental/spring/memory.c b/platform/experimental/spring/memory.c
index 5b7fc8f..80bf2b1 100644
--- a/platform/experimental/spring/memory.c
+++ b/platform/experimental/spring/memory.c
@@ -229,16 +229,16 @@
rc = len;
break;
case SPRING_CONFIG_EVT_MICRON:
- case SPRING_CONFIG_DVT_MICRON:
+ case SPRING_CONFIG_DVT1_MICRON:
+ case SPRING_CONFIG_DVT2_MICRON:
case SPRING_CONFIG_PVT_MICRON:
- case SPRING_CONFIG_MP_MICRON:
memcpy(buf, µn_ddr3_1600_spd[reg], len);
rc = len;
break;
case SPRING_CONFIG_EVT_NANYA:
- case SPRING_CONFIG_DVT_NANYA:
+ case SPRING_CONFIG_DVT1_NANYA:
+ case SPRING_CONFIG_DVT2_NANYA:
case SPRING_CONFIG_PVT_NANYA:
- case SPRING_CONFIG_MP_NANYA:
memcpy(buf, &nanya_ddr3_1600_spd[reg], len);
rc = len;
break;
diff --git a/platform/experimental/spring/spring.c b/platform/experimental/spring/spring.c
index 52b675a..bc3a370 100644
--- a/platform/experimental/spring/spring.c
+++ b/platform/experimental/spring/spring.c
@@ -138,39 +138,38 @@
return status;
}
-/* TODO: implement board ID map when assignments are finalized */
struct {
enum mvl3 v0, v1, v2;
enum spring_board_config config;
} spring_id_map[] = {
- /* REV0 REV1 REV2 config */
- { LOGIC_0, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
- { LOGIC_0, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_0, LOGIC_0, LOGIC_Z, SPRING_CONFIG_PROTO },
- { LOGIC_0, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
- { LOGIC_0, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_0, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT_NANYA },
- { LOGIC_0, LOGIC_Z, LOGIC_0, SPRING_CONFIG_PVT_MICRON },
- { LOGIC_0, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_0, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
- { LOGIC_1, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
- { LOGIC_1, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_1, LOGIC_0, LOGIC_Z, SPRING_CONFIG_EVT_NANYA },
- { LOGIC_1, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
- { LOGIC_1, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_1, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT_MICRON },
- { LOGIC_1, LOGIC_Z, LOGIC_0, SPRING_CONFIG_MP_NANYA },
- { LOGIC_1, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_1, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
- { LOGIC_Z, LOGIC_0, LOGIC_0, SPRING_CONFIG_MP_MICRON },
- { LOGIC_Z, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_Z, LOGIC_0, LOGIC_Z, SPRING_CONFIG_RSVD },
- { LOGIC_Z, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
- { LOGIC_Z, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_Z, LOGIC_1, LOGIC_Z, SPRING_CONFIG_EVT_MICRON },
- { LOGIC_Z, LOGIC_Z, LOGIC_0, SPRING_CONFIG_PVT_NANYA },
- { LOGIC_Z, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
- { LOGIC_Z, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+ /* REV0 REV1 REV2 config */
+ { LOGIC_Z, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+ { LOGIC_0, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+ { LOGIC_1, LOGIC_Z, LOGIC_Z, SPRING_CONFIG_RSVD },
+ { LOGIC_Z, LOGIC_0, LOGIC_Z, SPRING_CONFIG_RSVD },
+/* rev 4 */ { LOGIC_0, LOGIC_0, LOGIC_Z, SPRING_CONFIG_PROTO },
+/* rev 5 */ { LOGIC_1, LOGIC_0, LOGIC_Z, SPRING_CONFIG_EVT_NANYA },
+/* rev 6 */ { LOGIC_Z, LOGIC_1, LOGIC_Z, SPRING_CONFIG_EVT_MICRON },
+/* rev 7 */ { LOGIC_0, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT1_NANYA },
+/* rev 8 */ { LOGIC_1, LOGIC_1, LOGIC_Z, SPRING_CONFIG_DVT1_MICRON },
+/* rev 9 */ { LOGIC_Z, LOGIC_Z, LOGIC_0, SPRING_CONFIG_DVT2_NANYA },
+/* rev 10 */ { LOGIC_0, LOGIC_Z, LOGIC_0, SPRING_CONFIG_DVT2_MICRON },
+/* rev 11 */ { LOGIC_1, LOGIC_Z, LOGIC_0, SPRING_CONFIG_PVT_NANYA },
+/* rev 12 */ { LOGIC_Z, LOGIC_0, LOGIC_0, SPRING_CONFIG_PVT_MICRON },
+ { LOGIC_0, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
+ { LOGIC_1, LOGIC_0, LOGIC_0, SPRING_CONFIG_RSVD },
+ { LOGIC_Z, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
+ { LOGIC_0, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
+ { LOGIC_1, LOGIC_1, LOGIC_0, SPRING_CONFIG_RSVD },
+ { LOGIC_Z, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_0, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_1, LOGIC_Z, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_Z, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_0, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_1, LOGIC_0, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_Z, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_0, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
+ { LOGIC_1, LOGIC_1, LOGIC_1, SPRING_CONFIG_RSVD },
};
static int spring_get_board_config(struct platform_intf *intf)
@@ -192,8 +191,8 @@
v0 = exynos5_read_gpio_mvl(intf, rev0);
v1 = exynos5_read_gpio_mvl(intf, rev1);
v2 = exynos5_read_gpio_mvl(intf, rev2);
- lprintf(LOG_DEBUG, "%s: v0: %u, v1: %u, v2: %u\n",
- __func__, v0, v1, v2);
+ lprintf(LOG_DEBUG, "%s: v0: %u, v1: %u, v2: %u => rev %u\n",
+ __func__, v0, v1, v2, v0 + v1 * 3 + v2 * 9);
for (i = 0; i < ARRAY_SIZE(spring_id_map); i++)
if ((v0 == spring_id_map[i].v0) &&
diff --git a/platform/experimental/spring/spring.h b/platform/experimental/spring/spring.h
index 95e6d84..20c97ba 100644
--- a/platform/experimental/spring/spring.h
+++ b/platform/experimental/spring/spring.h
@@ -45,12 +45,12 @@
SPRING_CONFIG_PROTO,
SPRING_CONFIG_EVT_MICRON,
SPRING_CONFIG_EVT_NANYA,
- SPRING_CONFIG_DVT_MICRON,
- SPRING_CONFIG_DVT_NANYA,
+ SPRING_CONFIG_DVT1_MICRON,
+ SPRING_CONFIG_DVT1_NANYA,
+ SPRING_CONFIG_DVT2_MICRON,
+ SPRING_CONFIG_DVT2_NANYA,
SPRING_CONFIG_PVT_MICRON,
SPRING_CONFIG_PVT_NANYA,
- SPRING_CONFIG_MP_MICRON,
- SPRING_CONFIG_MP_NANYA,
SPRING_CONFIG_RSVD,
};
diff --git a/platform/experimental/spring/sys.c b/platform/experimental/spring/sys.c
index 92049d4..e499b37 100644
--- a/platform/experimental/spring/sys.c
+++ b/platform/experimental/spring/sys.c
@@ -69,18 +69,18 @@
case SPRING_CONFIG_EVT_MICRON:
ret = mosys_strdup("EVT");
break;
- case SPRING_CONFIG_DVT_NANYA:
- case SPRING_CONFIG_DVT_MICRON:
- ret = mosys_strdup("DVT");
+ case SPRING_CONFIG_DVT1_NANYA:
+ case SPRING_CONFIG_DVT1_MICRON:
+ ret = mosys_strdup("DVT1");
+ break;
+ case SPRING_CONFIG_DVT2_NANYA:
+ case SPRING_CONFIG_DVT2_MICRON:
+ ret = mosys_strdup("DVT2");
break;
case SPRING_CONFIG_PVT_NANYA:
case SPRING_CONFIG_PVT_MICRON:
ret = mosys_strdup("PVT");
break;
- case SPRING_CONFIG_MP_NANYA:
- case SPRING_CONFIG_MP_MICRON:
- ret = mosys_strdup("MP");
- break;
case SPRING_CONFIG_RSVD:
ret = mosys_strdup("RSVD");
break;