+
+int do_cantest(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ ulong addr;
+ volatile uchar *ptr;
+ volatile uchar val;
+ int i;
+
+ addr = simple_strtol (argv[1], NULL, 16) + 0x16;
+
+ i = 0;
+ for (;;) {
+ ptr = (uchar *)addr;
+ for (i=0; i<8; i++) {
+ *ptr = i;
+ val = *ptr;
+
+ if (val != i) {
+ printf("ERROR: addr=%p write=0x%02X, read=0x%02X\n", ptr, i, val);
+ return 0;
+ }
+
+ /* Abort if ctrl-c was pressed */
+ if (ctrlc()) {
+ puts("\nAbort\n");
+ return 0;
+ }
+
+ ptr++;
+ }
+ }
+
+ return 0;
+}
+U_BOOT_CMD(
+ cantest, 3, 1, do_cantest,
+ "cantest - Test CAN controller",
+ NULL
+ );