uboot/post/tests.c
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2002
   3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   4 *
   5 * SPDX-License-Identifier:     GPL-2.0+
   6 *
   7 * Be sure to mark tests to be run before relocation as such with the
   8 * CONFIG_SYS_POST_PREREL flag so that logging is done correctly if the
   9 * logbuffer support is enabled.
  10 */
  11
  12#include <common.h>
  13
  14#include <post.h>
  15
  16extern int ocm_post_test (int flags);
  17extern int cache_post_test (int flags);
  18extern int watchdog_post_test (int flags);
  19extern int i2c_post_test (int flags);
  20extern int rtc_post_test (int flags);
  21extern int memory_post_test (int flags);
  22extern int cpu_post_test (int flags);
  23extern int fpu_post_test (int flags);
  24extern int uart_post_test (int flags);
  25extern int ether_post_test (int flags);
  26extern int spi_post_test (int flags);
  27extern int usb_post_test (int flags);
  28extern int spr_post_test (int flags);
  29extern int sysmon_post_test (int flags);
  30extern int dsp_post_test (int flags);
  31extern int codec_post_test (int flags);
  32extern int ecc_post_test (int flags);
  33extern int flash_post_test(int flags);
  34
  35extern int dspic_init_post_test (int flags);
  36extern int dspic_post_test (int flags);
  37extern int gdc_post_test (int flags);
  38extern int fpga_post_test (int flags);
  39extern int lwmon5_watchdog_post_test(int flags);
  40extern int sysmon1_post_test(int flags);
  41extern int coprocessor_post_test(int flags);
  42extern int led_post_test(int flags);
  43extern int button_post_test(int flags);
  44extern int memory_regions_post_test(int flags);
  45
  46extern int sysmon_init_f (void);
  47
  48extern void sysmon_reloc (void);
  49
  50
  51struct post_test post_list[] =
  52{
  53#if CONFIG_POST & CONFIG_SYS_POST_OCM
  54    {
  55        "OCM test",
  56        "ocm",
  57        "This test checks on chip memory (OCM).",
  58        POST_ROM | POST_ALWAYS | POST_PREREL | POST_CRITICAL | POST_STOP,
  59        &ocm_post_test,
  60        NULL,
  61        NULL,
  62        CONFIG_SYS_POST_OCM
  63    },
  64#endif
  65#if CONFIG_POST & CONFIG_SYS_POST_CACHE
  66    {
  67        "Cache test",
  68        "cache",
  69        "This test verifies the CPU cache operation.",
  70        POST_RAM | POST_ALWAYS,
  71        &cache_post_test,
  72        NULL,
  73        NULL,
  74        CONFIG_SYS_POST_CACHE
  75    },
  76#endif
  77#if CONFIG_POST & CONFIG_SYS_POST_WATCHDOG
  78#if defined(CONFIG_POST_WATCHDOG)
  79        CONFIG_POST_WATCHDOG,
  80#else
  81    {
  82        "Watchdog timer test",
  83        "watchdog",
  84        "This test checks the watchdog timer.",
  85        POST_RAM | POST_POWERON | POST_SLOWTEST | POST_MANUAL | POST_REBOOT,
  86        &watchdog_post_test,
  87        NULL,
  88        NULL,
  89        CONFIG_SYS_POST_WATCHDOG
  90    },
  91#endif
  92#endif
  93#if CONFIG_POST & CONFIG_SYS_POST_I2C
  94    {
  95        "I2C test",
  96        "i2c",
  97        "This test verifies the I2C operation.",
  98        POST_RAM | POST_ALWAYS,
  99        &i2c_post_test,
 100        NULL,
 101        NULL,
 102        CONFIG_SYS_POST_I2C
 103    },
 104#endif
 105#if CONFIG_POST & CONFIG_SYS_POST_RTC
 106    {
 107        "RTC test",
 108        "rtc",
 109        "This test verifies the RTC operation.",
 110        POST_RAM | POST_SLOWTEST | POST_MANUAL,
 111        &rtc_post_test,
 112        NULL,
 113        NULL,
 114        CONFIG_SYS_POST_RTC
 115    },
 116#endif
 117#if CONFIG_POST & CONFIG_SYS_POST_MEMORY
 118    {
 119        "Memory test",
 120        "memory",
 121        "This test checks RAM.",
 122        POST_ROM | POST_POWERON | POST_SLOWTEST | POST_PREREL,
 123        &memory_post_test,
 124        NULL,
 125        NULL,
 126        CONFIG_SYS_POST_MEMORY
 127    },
 128#endif
 129#if CONFIG_POST & CONFIG_SYS_POST_CPU
 130    {
 131        "CPU test",
 132        "cpu",
 133        "This test verifies the arithmetic logic unit of"
 134        " CPU.",
 135        POST_RAM | POST_ALWAYS,
 136        &cpu_post_test,
 137        NULL,
 138        NULL,
 139        CONFIG_SYS_POST_CPU
 140    },
 141#endif
 142#if CONFIG_POST & CONFIG_SYS_POST_FPU
 143    {
 144        "FPU test",
 145        "fpu",
 146        "This test verifies the arithmetic logic unit of"
 147        " FPU.",
 148        POST_RAM | POST_ALWAYS,
 149        &fpu_post_test,
 150        NULL,
 151        NULL,
 152        CONFIG_SYS_POST_FPU
 153    },
 154#endif
 155#if CONFIG_POST & CONFIG_SYS_POST_UART
 156#if defined(CONFIG_POST_UART)
 157        CONFIG_POST_UART,
 158#else
 159    {
 160        "UART test",
 161        "uart",
 162        "This test verifies the UART operation.",
 163        POST_RAM | POST_SLOWTEST | POST_MANUAL,
 164        &uart_post_test,
 165        NULL,
 166        NULL,
 167        CONFIG_SYS_POST_UART
 168    },
 169#endif /* CONFIG_POST_UART */
 170#endif
 171#if CONFIG_POST & CONFIG_SYS_POST_ETHER
 172    {
 173        "ETHERNET test",
 174        "ethernet",
 175        "This test verifies the ETHERNET operation.",
 176        POST_RAM | POST_ALWAYS,
 177        &ether_post_test,
 178        NULL,
 179        NULL,
 180        CONFIG_SYS_POST_ETHER
 181    },
 182#endif
 183#if CONFIG_POST & CONFIG_SYS_POST_SPI
 184    {
 185        "SPI test",
 186        "spi",
 187        "This test verifies the SPI operation.",
 188        POST_RAM | POST_ALWAYS,
 189        &spi_post_test,
 190        NULL,
 191        NULL,
 192        CONFIG_SYS_POST_SPI
 193    },
 194#endif
 195#if CONFIG_POST & CONFIG_SYS_POST_USB
 196    {
 197        "USB test",
 198        "usb",
 199        "This test verifies the USB operation.",
 200        POST_RAM | POST_ALWAYS,
 201        &usb_post_test,
 202        NULL,
 203        NULL,
 204        CONFIG_SYS_POST_USB
 205    },
 206#endif
 207#if CONFIG_POST & CONFIG_SYS_POST_SPR
 208    {
 209        "SPR test",
 210        "spr",
 211        "This test checks SPR contents.",
 212        POST_RAM | POST_ALWAYS,
 213        &spr_post_test,
 214        NULL,
 215        NULL,
 216        CONFIG_SYS_POST_SPR
 217    },
 218#endif
 219#if CONFIG_POST & CONFIG_SYS_POST_SYSMON
 220    {
 221        "SYSMON test",
 222        "sysmon",
 223        "This test monitors system hardware.",
 224        POST_RAM | POST_ALWAYS,
 225        &sysmon_post_test,
 226        &sysmon_init_f,
 227        &sysmon_reloc,
 228        CONFIG_SYS_POST_SYSMON
 229    },
 230#endif
 231#if CONFIG_POST & CONFIG_SYS_POST_DSP
 232    {
 233        "DSP test",
 234        "dsp",
 235        "This test checks any connected DSP(s).",
 236        POST_RAM | POST_ALWAYS,
 237        &dsp_post_test,
 238        NULL,
 239        NULL,
 240        CONFIG_SYS_POST_DSP
 241    },
 242#endif
 243#if CONFIG_POST & CONFIG_SYS_POST_CODEC
 244    {
 245        "CODEC test",
 246        "codec",
 247        "This test checks any connected codec(s).",
 248        POST_RAM | POST_MANUAL,
 249        &codec_post_test,
 250        NULL,
 251        NULL,
 252        CONFIG_SYS_POST_CODEC
 253    },
 254#endif
 255#if CONFIG_POST & CONFIG_SYS_POST_ECC
 256    {
 257        "ECC test",
 258        "ecc",
 259        "This test checks the ECC facility of memory.",
 260        POST_ROM | POST_ALWAYS | POST_PREREL,
 261        &ecc_post_test,
 262        NULL,
 263        NULL,
 264        CONFIG_SYS_POST_ECC
 265    },
 266#endif
 267#if CONFIG_POST & CONFIG_SYS_POST_BSPEC1
 268        CONFIG_POST_BSPEC1,
 269#endif
 270#if CONFIG_POST & CONFIG_SYS_POST_BSPEC2
 271        CONFIG_POST_BSPEC2,
 272#endif
 273#if CONFIG_POST & CONFIG_SYS_POST_BSPEC3
 274        CONFIG_POST_BSPEC3,
 275#endif
 276#if CONFIG_POST & CONFIG_SYS_POST_BSPEC4
 277        CONFIG_POST_BSPEC4,
 278#endif
 279#if CONFIG_POST & CONFIG_SYS_POST_BSPEC5
 280        CONFIG_POST_BSPEC5,
 281#endif
 282#if CONFIG_POST & CONFIG_SYS_POST_COPROC
 283    {
 284        "Coprocessors communication test",
 285        "coproc_com",
 286        "This test checks communication with coprocessors.",
 287        POST_RAM | POST_ALWAYS | POST_CRITICAL,
 288        &coprocessor_post_test,
 289        NULL,
 290        NULL,
 291        CONFIG_SYS_POST_COPROC
 292    },
 293#endif
 294#if CONFIG_POST & CONFIG_SYS_POST_FLASH
 295    {
 296        "Parallel NOR flash test",
 297        "flash",
 298        "This test verifies parallel flash operations.",
 299        POST_RAM | POST_SLOWTEST | POST_MANUAL,
 300        &flash_post_test,
 301        NULL,
 302        NULL,
 303        CONFIG_SYS_POST_FLASH
 304    },
 305#endif
 306#if CONFIG_POST & CONFIG_SYS_POST_MEM_REGIONS
 307    {
 308        "Memory regions test",
 309        "mem_regions",
 310        "This test checks regularly placed regions of the RAM.",
 311        POST_ROM | POST_SLOWTEST | POST_PREREL,
 312        &memory_regions_post_test,
 313        NULL,
 314        NULL,
 315        CONFIG_SYS_POST_MEM_REGIONS
 316    },
 317#endif
 318};
 319
 320unsigned int post_list_size = ARRAY_SIZE(post_list);
 321