Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1077)

Unified Diff: processor_enable.c

Issue 6731011: Add Tegra2 SPI controller. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/flashrom.git@master
Patch Set: refine comments Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: processor_enable.c
diff --git a/processor_enable.c b/processor_enable.c
index b14cd3381543cc684c88bfadb1746aa5b44d2b06..7c64e946d535505afb9541e8658b7a721dedeb8a 100644
--- a/processor_enable.c
+++ b/processor_enable.c
@@ -81,6 +81,45 @@ static int is_loongson(void)
}
#endif
+#if defined(__arm__)
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+static int is_tegra2(void)
+{
+ FILE *cpuinfo;
+ uint32_t impl = 0, architecture = 0, variant = 0, part = 0;
+
+ cpuinfo = fopen("/proc/cpuinfo", "rb");
+ if (!cpuinfo)
+ return 0;
+ while (!feof(cpuinfo)) {
+ char line[512], *ptr;
+ if (fgets(line, sizeof(line), cpuinfo) == NULL)
+ break;
+ ptr = line;
+ while (*ptr && isspace((unsigned char)*ptr))
+ ptr++;
+ if (strncmp(ptr, "CPU part", sizeof("CPU part") - 1) == 0)
+ ptr += sizeof("CPU part") - 1;
+ while (*ptr && isspace((unsigned char)*ptr))
+ ptr++;
+ if (*ptr != ':')
+ continue;
+
+ fclose(cpuinfo);
+ ptr++;
+ while (*ptr && isspace((unsigned char)*ptr))
+ ptr++;
+ return (strncmp(ptr, "0xc09",
+ sizeof("0xc09") - 1) == 0);
+ }
+ fclose(cpuinfo);
+ return 0;
+}
+#endif
+
int processor_flash_enable(void)
{
/* FIXME: detect loongson on FreeBSD and OpenBSD as well. */
@@ -90,6 +129,12 @@ int processor_flash_enable(void)
return 0;
}
#endif
+#if defined (__arm__)
+ if (is_tegra2()) {
+ msg_pinfo("Detected NVIDIA Tegra 2.\n");
+ return tegra2_spi_init();
+ }
+#endif
/* Not implemented yet. Oh well. */
return 1;
}

Powered by Google App Engine
This is Rietveld 408576698