2 * Copyright (C) 2008 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
4 * SPDX-License-Identifier: GPL-2.0+
10 #include <asm/processor.h>
13 #if defined(CONFIG_CPU_32BIT)
14 #define NOCACHE_OFFSET 0x00000000
16 #define NOCACHE_OFFSET 0xa0000000
18 #define PLD_LEDCR (0x04000008 + NOCACHE_OFFSET)
19 #define PLD_SWSR (0x0400000a + NOCACHE_OFFSET)
20 #define PLD_VERSR (0x0400000c + NOCACHE_OFFSET)
22 #define SM107_DEVICEID (0x13e00060 + NOCACHE_OFFSET)
24 static void test_pld(void)
26 printf("PLD version = %04x\n", readb(PLD_VERSR));
29 static void test_sm107(void)
31 printf("SM107 device ID = %04x\n", readl(SM107_DEVICEID));
34 static void test_led(void)
36 printf("turn on LEDs 3, 5, 7, 9\n");
37 writeb(0x55, PLD_LEDCR);
39 printf("turn on LEDs 4, 6, 8, 10\n");
40 writeb(0xaa, PLD_LEDCR);
42 writeb(0x00, PLD_LEDCR);
45 static void test_dipsw(void)
47 printf("Please DIPSW set = B'0101\n");
48 while (readb(PLD_SWSR) != 0x05) {
52 printf("Please DIPSW set = B'1010\n");
53 while (readb(PLD_SWSR) != 0x0A) {
60 static void test_net(void)
64 writel(0x80000000, 0xfe0401c0);
65 data = readl(0xfe040220);
66 if (data == 0x816910ec)
67 printf("Ethernet OK\n");
69 printf("Ethernet NG, data = %08x\n", (unsigned int)data);
72 static void test_sata(void)
76 writel(0x80000800, 0xfe0401c0);
77 data = readl(0xfe040220);
78 if (data == 0x35121095)
81 printf("SATA NG, data = %08x\n", (unsigned int)data);
84 static void test_pci(void)
86 writel(0x80001800, 0xfe0401c0);
87 printf("PCI CN1 ID = %08x\n", readl(0xfe040220));
89 writel(0x80001000, 0xfe0401c0);
90 printf("PCI CN2 ID = %08x\n", readl(0xfe040220));
93 int do_hw_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
98 return cmd_usage(cmdtp);
111 case 'p': /* pld or pci */
120 case 'd': /* dipsw */
123 case 's': /* sm107 or sata */
133 return cmd_usage(cmdtp);
140 hwtest, 2, 1, do_hw_test,
141 "hardware test for R0P7785LC0011RL board",
143 "hwtest all - test all hardware\n"
144 "hwtest pld - output PLD version\n"
145 "hwtest led - turn on LEDs\n"
146 "hwtest dipsw - test DIP switch\n"
147 "hwtest sm107 - output SM107 version\n"
148 "hwtest net - check RTL8110 ID\n"
149 "hwtest sata - check SiI3512 ID\n"
150 "hwtest pci - output PCI slot device ID"