|
@@ -278,6 +278,7 @@ Commands:\n\
|
|
|
#elif defined(CONFIG_44x) || defined(CONFIG_PPC_BOOK3E)
|
|
|
" u dump TLB\n"
|
|
|
#endif
|
|
|
+" U show uptime information\n"
|
|
|
" ? help\n"
|
|
|
" # n limit output to n lines per page (for dp, dpa, dl)\n"
|
|
|
" zr reboot\n\
|
|
@@ -905,6 +906,26 @@ static void remove_cpu_bpts(void)
|
|
|
write_ciabr(0);
|
|
|
}
|
|
|
|
|
|
+/* Based on uptime_proc_show(). */
|
|
|
+static void
|
|
|
+show_uptime(void)
|
|
|
+{
|
|
|
+ struct timespec uptime;
|
|
|
+
|
|
|
+ if (setjmp(bus_error_jmp) == 0) {
|
|
|
+ catch_memory_errors = 1;
|
|
|
+ sync();
|
|
|
+
|
|
|
+ get_monotonic_boottime(&uptime);
|
|
|
+ printf("Uptime: %lu.%.2lu seconds\n", (unsigned long)uptime.tv_sec,
|
|
|
+ ((unsigned long)uptime.tv_nsec / (NSEC_PER_SEC/100)));
|
|
|
+
|
|
|
+ sync();
|
|
|
+ __delay(200); \
|
|
|
+ }
|
|
|
+ catch_memory_errors = 0;
|
|
|
+}
|
|
|
+
|
|
|
static void set_lpp_cmd(void)
|
|
|
{
|
|
|
unsigned long lpp;
|
|
@@ -1040,6 +1061,9 @@ cmds(struct pt_regs *excp)
|
|
|
dump_tlb_book3e();
|
|
|
break;
|
|
|
#endif
|
|
|
+ case 'U':
|
|
|
+ show_uptime();
|
|
|
+ break;
|
|
|
default:
|
|
|
printf("Unrecognized command: ");
|
|
|
do {
|