#include <watchdog.h>
#include <post.h>
+#ifdef CONFIG_SYS_POST_HOTKEYS_GPIO
+#include <asm/gpio.h>
+#endif
+
#ifdef CONFIG_LOGBUFFER
#include <logbuff.h>
#endif
*/
int __post_hotkeys_pressed(void)
{
+#ifdef CONFIG_SYS_POST_HOTKEYS_GPIO
+ int ret;
+ unsigned gpio = CONFIG_SYS_POST_HOTKEYS_GPIO;
+
+ ret = gpio_request(gpio, "hotkeys");
+ if (ret) {
+ printf("POST: gpio hotkey request failed\n");
+ return 0;
+ }
+
+ gpio_direction_input(gpio);
+ ret = gpio_get_value(gpio);
+ gpio_free(gpio);
+
+ return ret;
+#endif
+
return 0; /* No hotkeys supported */
}
int post_hotkeys_pressed(void)
POST_CRITICAL };
char *var[] = { "post_poweron", "post_normal", "post_slowtest",
"post_critical" };
- int varnum = sizeof (var) / sizeof (var[0]);
+ int varnum = ARRAY_SIZE(var);
char list[128]; /* long enough for POST list */
char *name;
char *s;
}
for (i = 0; i < varnum; i++) {
- if (getenv_r (var[i], list, sizeof (list)) <= 0)
+ if (getenv_f(var[i], list, sizeof (list)) <= 0)
continue;
for (j = 0; j < post_list_size; j++) {
gd->flags |= GD_FLG_POSTSTOP;
}
} else {
- if ((*test->test) (flags) != 0) {
- post_log ("FAILED\n");
- show_boot_progress (-32);
- show_post_progress(i, POST_AFTER, POST_FAILED);
- if (test_flags & POST_CRITICAL)
- gd->flags |= GD_FLG_POSTFAIL;
- if (test_flags & POST_STOP)
- gd->flags |= GD_FLG_POSTSTOP;
- }
- else
- post_log ("PASSED\n");
- show_post_progress(i, POST_AFTER, POST_PASSED);
+ if ((*test->test)(flags) != 0) {
+ post_log("FAILED\n");
+ show_boot_progress(-32);
+ show_post_progress(i, POST_AFTER, POST_FAILED);
+ if (test_flags & POST_CRITICAL)
+ gd->flags |= GD_FLG_POSTFAIL;
+ if (test_flags & POST_STOP)
+ gd->flags |= GD_FLG_POSTSTOP;
+ } else {
+ post_log("PASSED\n");
+ show_post_progress(i, POST_AFTER, POST_PASSED);
+ }
}
if ((test_flags & POST_REBOOT) && !(flags & POST_MANUAL)) {
return 0;
}
-#ifndef CONFIG_RELOC_FIXUP_WORKS
+#ifdef CONFIG_NEEDS_MANUAL_RELOC
void post_reloc (void)
{
unsigned int i;