setenv("meminfo", meminfo);
}
-#ifdef CONFIG_RAMOOPS
+#ifdef CONFIG_CMD_RAMOOPS
static void show_dump_msg(void)
{
int ret;
- ret = ramoops_show_msg(samsung_get_base_modem());
+ ret = ramoops_init(samsung_get_base_modem());
if (!ret)
setenv("bootdelay", "-1");
int misc_init_r(void)
{
check_reset_status();
-#ifdef CONFIG_RAMOOPS
+#ifdef CONFIG_CMD_RAMOOPS
show_dump_msg();
#endif
}
}
-#ifdef CONFIG_RAMOOPS
+#ifdef CONFIG_CMD_RAMOOPS
static void show_dump_msg(void)
{
struct s5pc210_clock *clk =
int ret;
unsigned int reg;
- ret = ramoops_show_msg(samsung_get_base_modem());
+ ret = ramoops_init(samsung_get_base_modem());
if (!ret)
setenv("bootdelay", "-1");
int misc_init_r(void)
{
check_reset_status();
-#ifdef CONFIG_RAMOOPS
+#ifdef CONFIG_CMD_RAMOOPS
show_dump_msg();
#endif
check_auto_burn();
COBJS-$(CONFIG_STATUS_LED) += status_led.o
COBJS-$(CONFIG_TWL4030_LED) += twl4030_led.o
COBJS-$(CONFIG_FSL_PMIC) += fsl_pmic.o
-COBJS-$(CONFIG_RAMOOPS) += ramoops.o
+COBJS-$(CONFIG_CMD_RAMOOPS) += ramoops.o
COBJS := $(COBJS-y)
SRCS := $(COBJS:.o=.c)
#include <common.h>
#include <ramoops.h>
-int ramoops_show_msg(unsigned int base)
+static char msg[RAMOOPS_SIZE];
+static int dumped;
+
+static void ramoops_show(void)
{
- unsigned int *msg_header = (unsigned int *)base;
- char msg[RAMOOPS_SIZE];
int i;
- if (*msg_header != RAMOOPS_HEADER)
- return -1;
-
- memcpy(msg, (void *)base, RAMOOPS_SIZE);
+ if (!dumped) {
+ puts("No Messages\n");
+ return;
+ }
printf("\n\n");
- for (i = 0; i < RAMOOPS_SIZE; i++) {
+ for (i = 0; i < RAMOOPS_SIZE; i++)
printf("%c", msg[i]);
- }
printf("\n\n");
+}
+
+int ramoops_init(unsigned int base)
+{
+ unsigned int *msg_header = (unsigned int *)base;
+
+ dumped = 0;
+ if (*msg_header != RAMOOPS_HEADER)
+ return -1;
+
+ memcpy(msg, (void *)base, RAMOOPS_SIZE);
memset((void *)base, 0x0, RAMOOPS_SIZE);
+ dumped = 1;
+
+ ramoops_show();
+
return 0;
}
+
+static int do_ramoops(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+{
+ switch (argc) {
+ case 2:
+ if (strncmp(argv[1], "show", 2) == 0) {
+ ramoops_show();
+ } else {
+ cmd_usage(cmdtp);
+ return 1;
+ }
+ break;
+ default:
+ cmd_usage(cmdtp);
+ return 1;
+ }
+
+ return 0;
+}
+
+U_BOOT_CMD(
+ ramoops, CONFIG_SYS_MAXARGS, 1, do_ramoops,
+ "RAM Oops/Panic Logger",
+ "show - show messages\n"
+);
#define CONFIG_CMD_PMIC
#define CONFIG_CMD_DEVICE_POWER
#define CONFIG_CMD_FAT
+#define CONFIG_CMD_RAMOOPS
/* disabled commands */
//#define CONFIG_CMD_GPIO
#define CONFIG_SYS_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000)
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SP_ADDR - CONFIG_SYS_GBL_DATA_SIZE)
-#define CONFIG_RAMOOPS
-
#endif /* __CONFIG_H */
#define CONFIG_CMD_PMIC
#define CONFIG_CMD_DEVICE_POWER
#define CONFIG_CMD_FAT
+#define CONFIG_CMD_RAMOOPS
/* disabled commands */
//#define CONFIG_CMD_GPIO
#define CONFIG_SYS_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000)
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SP_ADDR - CONFIG_SYS_GBL_DATA_SIZE)
-#define CONFIG_RAMOOPS
-
#define CONFIG_TEST_BOOTTIME
#define CONFIG_TEST_BOOTFAIL
#define RAMOOPS_SIZE 0x1000
#define RAMOOPS_HEADER 0x3d3d3d3d
-int ramoops_show_msg(unsigned int base);
+int ramoops_init(unsigned int base);