From 8dc3b2303d2b57c774b609ca0e7043ed8f9b88c1 Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Mon, 4 Feb 2008 14:10:01 +0100 Subject: Enable CODEC POST with CFG_POST_CODEC rather than with CFG_POST_DSP. Signed-off-by: Dmitry Rakhchev --- post/tests.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'post') diff --git a/post/tests.c b/post/tests.c index 698f85c98d..ed4ef2b509 100644 --- a/post/tests.c +++ b/post/tests.c @@ -225,7 +225,7 @@ struct post_test post_list[] = CFG_POST_DSP }, #endif -#if CONFIG_POST & CFG_POST_DSP +#if CONFIG_POST & CFG_POST_CODEC { "CODEC test", "codec", -- cgit v1.2.1 From 65b20dcefc89618193fa51947968dada91e4c778 Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Mon, 4 Feb 2008 14:10:42 +0100 Subject: The patch adds new POST tests for the Lwmon5 board. These are: * External Watchdog test; * dsPIC tests; * FPGA test; * GDC test; * Sysmon tests. Signed-off-by: Dmitry Rakhchev Signed-off-by: Yuri Tikhonov --- post/board/lwmon5/Makefile | 28 +++++ post/board/lwmon5/dsp.c | 58 ++++++++++ post/board/lwmon5/dspic.c | 109 ++++++++++++++++++ post/board/lwmon5/fpga.c | 104 +++++++++++++++++ post/board/lwmon5/gdc.c | 94 +++++++++++++++ post/board/lwmon5/sysmon.c | 265 +++++++++++++++++++++++++++++++++++++++++++ post/board/lwmon5/watchdog.c | 132 +++++++++++++++++++++ post/tests.c | 26 +++++ 8 files changed, 816 insertions(+) create mode 100644 post/board/lwmon5/Makefile create mode 100644 post/board/lwmon5/dsp.c create mode 100644 post/board/lwmon5/dspic.c create mode 100644 post/board/lwmon5/fpga.c create mode 100644 post/board/lwmon5/gdc.c create mode 100644 post/board/lwmon5/sysmon.c create mode 100644 post/board/lwmon5/watchdog.c (limited to 'post') diff --git a/post/board/lwmon5/Makefile b/post/board/lwmon5/Makefile new file mode 100644 index 0000000000..5a92d1ce73 --- /dev/null +++ b/post/board/lwmon5/Makefile @@ -0,0 +1,28 @@ +# +# (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com +# +# Developed for DENX Software Engineering GmbH +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA + +LIB = libpostlwmon5.a + +COBJS = sysmon.o watchdog.o dspic.o fpga.o dsp.o gdc.o + +include $(TOPDIR)/post/rules.mk diff --git a/post/board/lwmon5/dsp.c b/post/board/lwmon5/dsp.c new file mode 100644 index 0000000000..7b53af992d --- /dev/null +++ b/post/board/lwmon5/dsp.c @@ -0,0 +1,58 @@ +/* + * (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com + * + * Developed for DENX Software Engineering GmbH + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include + +#ifdef CONFIG_POST + +#include + + +#if CONFIG_POST & CFG_POST_DSP +#include + +/* This test verifies DSP status bits in FPGA */ + +DECLARE_GLOBAL_DATA_PTR; + +#define DSP_STATUS_REG 0xC4000008 + +int dsp_post_test(int flags) +{ + uint read_value; + int ret; + + ret = 0; + read_value = in_be32((void *)DSP_STATUS_REG) & 0x3; + if (read_value != 0x3) { + post_log("\nDSP status read %08X\n", read_value); + ret = 1; + } + + return ret; +} + +#endif /* CONFIG_POST & CFG_POST_DSP */ +#endif /* CONFIG_POST */ + diff --git a/post/board/lwmon5/dspic.c b/post/board/lwmon5/dspic.c new file mode 100644 index 0000000000..e8fed89ba4 --- /dev/null +++ b/post/board/lwmon5/dspic.c @@ -0,0 +1,109 @@ +/* + * (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com + * + * Developed for DENX Software Engineering GmbH + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include + +#ifdef CONFIG_POST + +/* There are two tests for dsPIC currently implemented: + * 1. dsPIC ready test. Done in board_early_init_f(). Only result verified here. + * 2. dsPIC POST result test. This test gets dsPIC POST codes and version. + */ + +#include + +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define DSPIC_POST_ERROR_REG 0x800 +#define DSPIC_SYS_ERROR_REG 0x802 +#define DSPIC_VERSION_REG 0x804 + +#if CONFIG_POST & CFG_POST_BSPEC1 + +/* Verify that dsPIC ready test done early at hw init passed ok */ +int dspic_init_post_test(int flags) +{ + if (in_be32((void *)CFG_DSPIC_TEST_ADDR) & CFG_DSPIC_TEST_MASK) { + post_log("dsPIC init test failed\n"); + return 1; + } + + return 0; +} + +#endif /* CONFIG_POST & CFG_POST_BSPEC1 */ + +#if CONFIG_POST & CFG_POST_BSPEC2 +/* Read a register from the dsPIC. */ +int dspic_read(ushort reg) +{ + uchar buf[2]; + + if (i2c_read(CFG_I2C_DSPIC_IO_ADDR, reg, 2, buf, 2)) + return -1; + + return (uint)((buf[0] << 8) | buf[1]); +} + +/* Verify error codes regs, display version */ +int dspic_post_test(int flags) +{ + int data; + int ret = 0; + + post_log("\n"); + data = dspic_read(DSPIC_VERSION_REG); + if (data == -1) { + post_log("dsPIC : failed read version\n"); + ret = 1; + } else { + post_log("dsPIC version: %u.%u\n", + (data >> 8) & 0xFF, data & 0xFF); + } + + data = dspic_read(DSPIC_POST_ERROR_REG); + if (data != 0) ret = 1; + if (data == -1) { + post_log("dsPIC : failed read POST code\n"); + } else { + post_log("dsPIC POST code 0x%04X\n", data); + } + + data = dspic_read(DSPIC_SYS_ERROR_REG); + if (data != 0) ret = 1; + if (data == -1) { + post_log("dsPIC : failed read system error\n"); + } else { + post_log("dsPIC SYS-ERROR code: 0x%04X\n", data); + } + + return ret; +} + +#endif /* CONFIG_POST & CFG_POST_BSPEC2 */ +#endif /* CONFIG_POST */ + diff --git a/post/board/lwmon5/fpga.c b/post/board/lwmon5/fpga.c new file mode 100644 index 0000000000..4e3f1d5cd4 --- /dev/null +++ b/post/board/lwmon5/fpga.c @@ -0,0 +1,104 @@ +/* + * (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com + * + * Developed for DENX Software Engineering GmbH + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#include + +#ifdef CONFIG_POST + +/* This test performs testing of FPGA SCRATCH register, + * gets FPGA version and run get_ram_size() on FPGA memory + */ + +#include + +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define FPGA_SCRATCH_REG 0xC4000050 +#define FPGA_VERSION_REG 0xC4000040 +#define FPGA_RAM_START 0xC4200000 +#define FPGA_RAM_END 0xC4203FFF + +#define FPGA_PWM_CTRL_REG 0xC4000020 +#define FPGA_PWM_TV_REG 0xC4000024 + +/* Turn on backlight, set brightness */ +void fpga_backlight_enable(int pwm) +{ + out_be16((void *)FPGA_PWM_CTRL_REG, 0x0701); + out_be16((void *)FPGA_PWM_TV_REG, pwm); +} + +#if CONFIG_POST & CFG_POST_BSPEC3 + +static int one_scratch_test(uint value) +{ + uint read_value; + int ret = 0; + + out_be32((void *)FPGA_SCRATCH_REG, value); + /* read other location (protect against data lines capacity) */ + ret = in_be16((void *)FPGA_VERSION_REG); + /* verify test pattern */ + read_value = in_be32((void *)FPGA_SCRATCH_REG); + if (read_value != value) { + post_log("FPGA SCRATCH test failed write %08X, read %08X\n", + value, read_value); + ret = 1; + } + + return ret; +} + +/* Verify FPGA, get version & memory size */ +int fpga_post_test(int flags) +{ + uint old_value; + ushort version; + uint read_value; + int ret = 0; + + post_log("\n"); + old_value = in_be32((void *)FPGA_SCRATCH_REG); + + if (one_scratch_test(0x55555555)) + ret = 1; + if (one_scratch_test(0xAAAAAAAA)) + ret = 1; + + out_be32((void *)FPGA_SCRATCH_REG, old_value); + + version = in_be16((void *)FPGA_VERSION_REG); + post_log("FPGA : version %u.%u\n", + (version >> 8) & 0xFF, version & 0xFF); + + read_value = get_ram_size((void *)CFG_FPGA_BASE_1, 0x4000); + post_log("FPGA RAM size: %d bytes\n", read_value); + + return ret; +} + +#endif /* CONFIG_POST & CFG_POST_BSPEC3 */ +#endif /* CONFIG_POST */ + diff --git a/post/board/lwmon5/gdc.c b/post/board/lwmon5/gdc.c new file mode 100644 index 0000000000..76e5dd62e3 --- /dev/null +++ b/post/board/lwmon5/gdc.c @@ -0,0 +1,94 @@ +/* + * (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com + * + * Developed for DENX Software Engineering GmbH + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#include + +#ifdef CONFIG_POST + +/* This test attempts to verify board GDC. A scratch register tested, then + * simple memory test (get_ram_size()) run over GDC memory. + */ + +#include + +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define GDC_SCRATCH_REG 0xC1FF8044 +#define GDC_VERSION_REG 0xC1FF8084 +#define GDC_RAM_START 0xC0000000 +#define GDC_RAM_END 0xC2000000 + +#if CONFIG_POST & CFG_POST_BSPEC4 + +static int gdc_test_reg_one(uint value) +{ + int ret = 0; + uint read_value; + + /* write test pattern */ + out_be32((void *)GDC_SCRATCH_REG, value); + /* read other location (protect against data lines capacity) */ + ret = in_be32((void *)GDC_RAM_START); + /* verify test pattern */ + read_value = in_be32((void *)GDC_SCRATCH_REG); + if (read_value != value) { + post_log("GDC SCRATCH test failed write %08X, read %08X\n", + value, read_value); + ret = 1; + } + + return ret; +} + +/* Verify GDC, get memory size */ +int gdc_post_test(int flags) +{ + uint old_value; + int ret = 0; + + post_log("\n"); + old_value = in_be32((void *)GDC_SCRATCH_REG); + + if (gdc_test_reg_one(0x55555555)) + ret = 1; + if (gdc_test_reg_one(0xAAAAAAAA)) + ret = 1; + + out_be32((void *)GDC_SCRATCH_REG, old_value); + + old_value = in_be32((void *)GDC_VERSION_REG); + post_log("GDC chip version %u.%u, year %04X\n", + (old_value >> 8) & 0xFF, old_value & 0xFF, + (old_value >> 16) & 0xFFFF); + + old_value = get_ram_size((void *)GDC_RAM_START, + GDC_RAM_END - GDC_RAM_START); + post_log("GDC RAM size: %d bytes\n", old_value); + + return ret; +} +#endif /* CONFIG_POST & CFG_POST_BSPEC4 */ +#endif /* CONFIG_POST */ + diff --git a/post/board/lwmon5/sysmon.c b/post/board/lwmon5/sysmon.c new file mode 100644 index 0000000000..0eae4c1515 --- /dev/null +++ b/post/board/lwmon5/sysmon.c @@ -0,0 +1,265 @@ +/* + * (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com + * + * Developed for DENX Software Engineering GmbH + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include +#include + +#ifdef CONFIG_POST + +/* + * SYSMON test + * + * This test performs the system hardware monitoring. + * The test passes when all the following voltages and temperatures + * are within allowed ranges: + * + * Temperature -40 .. +85 C + * +5V +4.75 .. +5.25 V + * +5V standby +4.75 .. +5.25 V + * + * LCD backlight is not enabled if temperature values are not within + * allowed ranges (-30 .. + 80). The brightness of backlite can be + * controlled by setting "brightness" enviroment variable. Default value is 50% + * + * See the list of all parameters in the sysmon_table below + */ + +#include +#include +#include + +#if CONFIG_POST & CFG_POST_SYSMON + +DECLARE_GLOBAL_DATA_PTR; + +#define DEFAULT_BRIGHTNESS 50 + +/* from dspic.c */ +extern int dspic_read(ushort reg); +/* from fpga.c */ +extern void fpga_backlight_enable(int v); + +static int sysmon_temp_invalid; + +#define RELOC(x) if (x != NULL) x = (void *) ((ulong) (x) + gd->reloc_off) + +typedef struct sysmon_s sysmon_t; +typedef struct sysmon_table_s sysmon_table_t; + +static void sysmon_dspic_init (sysmon_t * this); +static int sysmon_dspic_read (sysmon_t * this, uint addr); +static void sysmon_backlight_disable (sysmon_table_t * this); +static void sysmon_backlight_enable (sysmon_table_t * this); + +struct sysmon_s +{ + uchar chip; + void (*init)(sysmon_t *); + int (*read)(sysmon_t *, uint); +}; + +static sysmon_t sysmon_dspic = + {CFG_I2C_DSPIC_IO_ADDR, sysmon_dspic_init, sysmon_dspic_read}; + +static sysmon_t * sysmon_list[] = +{ + &sysmon_dspic, + NULL +}; + +struct sysmon_table_s +{ + char * name; + char * unit_name; + sysmon_t * sysmon; + void (*exec_before)(sysmon_table_t *); + void (*exec_after)(sysmon_table_t *); + + int unit_precision; + int unit_div; + int unit_min; + int unit_max; + uint val_mask; + uint val_min; + uint val_max; + int val_valid; + uint val_min_alt; + uint val_max_alt; + int val_valid_alt; + uint addr; +}; + +static sysmon_table_t sysmon_table[] = +{ + {"Temperature", " C", &sysmon_dspic, NULL, sysmon_backlight_disable, + 1, 1, -32768, 32767, 0xFFFF, 0x8000-40, 0x8000+85, 0, + 0x8000-30, 0x8000+80, 0, 0x12BC}, + + {"+ 5 V", "V", &sysmon_dspic, NULL, NULL, + 100, 1000, -0x8000, 0x7FFF, 0xFFFF, 0x8000+4750, 0x8000+5250, 0, + 0x8000+4750, 0x8000+5250, 0, 0x12CA}, + + {"+ 5 V standby", "V", &sysmon_dspic, NULL, sysmon_backlight_enable, + 100, 1000, -0x8000, 0x7FFF, 0xFFFF, 0x8000+4750, 0x8000+5250, 0, + 0x8000+4750, 0x8000+5250, 0, 0x12C6}, +}; +static int sysmon_table_size = sizeof(sysmon_table) / sizeof(sysmon_table[0]); + +int sysmon_init_f (void) +{ + sysmon_t ** l; + + for (l = sysmon_list; *l; l++) + (*l)->init(*l); + + return 0; +} + +void sysmon_reloc (void) +{ + sysmon_t ** l; + sysmon_table_t * t; + + for (l = sysmon_list; *l; l++) { + RELOC(*l); + RELOC((*l)->init); + RELOC((*l)->read); + } + + for (t = sysmon_table; t < sysmon_table + sysmon_table_size; t ++) { + RELOC(t->exec_before); + RELOC(t->exec_after); + RELOC(t->sysmon); + } +} + +static char *sysmon_unit_value (sysmon_table_t *s, uint val) +{ + static char buf[32]; + char *p, sign; + int decimal, frac; + int unit_val; + + unit_val = + s->unit_min + (s->unit_max - s->unit_min) * val / s->val_mask; + + if (val == -1) + return "I/O ERROR"; + + if (unit_val < 0) { + sign = '-'; + unit_val = -unit_val; + } else + sign = '+'; + + p = buf + sprintf(buf, "%c%2d", sign, unit_val / s->unit_div); + + + frac = unit_val % s->unit_div; + + frac /= (s->unit_div / s->unit_precision); + + decimal = s->unit_precision; + + if (decimal != 1) + *p++ = '.'; + for (decimal /= 10; decimal != 0; decimal /= 10) + *p++ = '0' + (frac / decimal) % 10; + strcpy(p, s->unit_name); + + return buf; +} + +static void sysmon_dspic_init (sysmon_t * this) +{ +} + +static int sysmon_dspic_read (sysmon_t * this, uint addr) +{ + int res = dspic_read(addr); + + /* To fit into the table range we should add 0x8000 */ + return (res == -1) ? -1 : (res + 0x8000); +} + +static void sysmon_backlight_disable (sysmon_table_t * this) +{ + if (!this->val_valid_alt) + sysmon_temp_invalid = 1; +} + +static void sysmon_backlight_enable (sysmon_table_t * this) +{ + char * param; + int rc; + + if (!sysmon_temp_invalid) { + param = getenv("brightness"); + rc = param ? simple_strtol(param, NULL, 10) : -1; + if (rc >= 0) + fpga_backlight_enable(rc); + else + fpga_backlight_enable(DEFAULT_BRIGHTNESS); + } +} + +int sysmon_post_test (int flags) +{ + int res = 0; + sysmon_table_t * t; + int val; + + for (t = sysmon_table; t < sysmon_table + sysmon_table_size; t ++) { + if (t->exec_before) + t->exec_before(t); + + val = t->sysmon->read(t->sysmon, t->addr); + if (val != -1) { + t->val_valid = val >= t->val_min && val <= t->val_max; + t->val_valid_alt = val >= t->val_min_alt && val <= t->val_max_alt; + } else { + t->val_valid = 0; + t->val_valid_alt = 0; + } + + if (t->exec_after) + t->exec_after(t); + + if ((!t->val_valid) || (flags & POST_MANUAL)) { + printf("%-17s = %-10s ", t->name, sysmon_unit_value(t, val)); + printf("allowed range"); + printf(" %-8s ..", sysmon_unit_value(t, t->val_min)); + printf(" %-8s", sysmon_unit_value(t, t->val_max)); + printf(" %s\n", t->val_valid ? "OK" : "FAIL"); + } + + if (!t->val_valid) + res = 1; + } + + return res; +} + +#endif /* CONFIG_POST & CFG_POST_SYSMON */ +#endif /* CONFIG_POST */ diff --git a/post/board/lwmon5/watchdog.c b/post/board/lwmon5/watchdog.c new file mode 100644 index 0000000000..ad9e6f384e --- /dev/null +++ b/post/board/lwmon5/watchdog.c @@ -0,0 +1,132 @@ +/* + * (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com + * + * Developed for DENX Software Engineering GmbH + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include + +/* This test verifies if the reason of last reset was an abnormal voltage + * condition, than it performs watchdog test, measuing time required to + * trigger watchdog reset. + */ + +#ifdef CONFIG_POST + +#include + +#if CONFIG_POST & CFG_POST_WATCHDOG + +#include +#include +#include + +static uint watchdog_magic_read(void) +{ + return in_be32((void *)CFG_WATCHDOG_FLAGS_ADDR) & + CFG_WATCHDOG_MAGIC_MASK; +} + +static void watchdog_magic_write(uint value) +{ + out_be32((void *)CFG_WATCHDOG_FLAGS_ADDR, value | + (in_be32((void *)CFG_WATCHDOG_FLAGS_ADDR) & + ~CFG_WATCHDOG_MAGIC_MASK)); +} + +int sysmon1_post_test(int flags) +{ + if (gpio_read_in_bit(CFG_GPIO_SYSMON_STATUS)) { + /* 3.1. GPIO62 is low + * Assuming system voltage failure. + */ + post_log("Abnormal voltage detected (GPIO62)\n"); + return 1; + } + + return 0; +} + +int lwmon5_watchdog_post_test(int flags) +{ + /* On each reset scratch register 1 should be tested, + * but first test GPIO62: + */ + if (!(flags & POST_MANUAL) && sysmon1_post_test(flags)) { + /* 3.1. GPIO62 is low + * Assuming system voltage failure. + */ + /* 3.1.1. Set scratch register 1 to 0x0000xxxx */ + watchdog_magic_write(0); + /* 3.1.2. Mark test as failed due to voltage?! */ + return 1; + } + + if (watchdog_magic_read() != CFG_WATCHDOG_MAGIC) { + /* 3.2. Scratch register 1 differs from magic value 0x1248xxxx + * Assuming PowerOn + */ + int ints; + ulong base; + ulong time; + + /* 3.2.1. Set magic value to scratch register */ + watchdog_magic_write(CFG_WATCHDOG_MAGIC); + + ints = disable_interrupts (); + /* 3.2.2. strobe watchdog once */ + WATCHDOG_RESET(); + out_be32((void *)CFG_WATCHDOG_TIME_ADDR, 0); + /* 3.2.3. save time of strobe in scratch register 2 */ + base = post_time_ms (0); + + /* 3.2.4. Wait for 150 ms (enough for reset to happen) */ + while ((time = post_time_ms (base)) < 150) + out_be32((void *)CFG_WATCHDOG_TIME_ADDR, time); + if (ints) + enable_interrupts (); + + /* 3.2.5. Reset didn't happen. - Set 0x0000xxxx + * into scratch register 1 + */ + watchdog_magic_write(0); + /* 3.2.6. Mark test as failed. */ + post_log("hw watchdog time : %u ms, failed ", time); + return 2; + } else { + /* 3.3. Scratch register matches magic value 0x1248xxxx + * Assume this is watchdog-initiated reset + */ + ulong time; + /* 3.3.1. So, the test succeed, save measured time to syslog. */ + time = in_be32((void *)CFG_WATCHDOG_TIME_ADDR); + post_log("hw watchdog time : %u ms, passed ", time); + /* 3.3.2. Set scratch register 1 to 0x0000xxxx */ + watchdog_magic_write(0); + return 0; + } + return -1; +} + + +#endif /* CONFIG_POST & CFG_POST_WATCHDOG */ +#endif /* CONFIG_POST */ + diff --git a/post/tests.c b/post/tests.c index ed4ef2b509..53d01e355e 100644 --- a/post/tests.c +++ b/post/tests.c @@ -48,6 +48,13 @@ extern int dsp_post_test (int flags); extern int codec_post_test (int flags); extern int ecc_post_test (int flags); +extern int dspic_init_post_test (int flags); +extern int dspic_post_test (int flags); +extern int gdc_post_test (int flags); +extern int fpga_post_test (int flags); +extern int lwmon5_watchdog_post_test(int flags); +extern int sysmon1_post_test(int flags); + extern int sysmon_init_f (void); extern void sysmon_reloc (void); @@ -68,6 +75,9 @@ struct post_test post_list[] = }, #endif #if CONFIG_POST & CFG_POST_WATCHDOG +#if defined(CONFIG_POST_WATCHDOG) + CONFIG_POST_WATCHDOG, +#else { "Watchdog timer test", "watchdog", @@ -79,6 +89,7 @@ struct post_test post_list[] = CFG_POST_WATCHDOG }, #endif +#endif #if CONFIG_POST & CFG_POST_I2C { "I2C test", @@ -249,6 +260,21 @@ struct post_test post_list[] = CFG_POST_ECC }, #endif +#if CONFIG_POST & CFG_POST_BSPEC1 + CONFIG_POST_BSPEC1, +#endif +#if CONFIG_POST & CFG_POST_BSPEC2 + CONFIG_POST_BSPEC2, +#endif +#if CONFIG_POST & CFG_POST_BSPEC3 + CONFIG_POST_BSPEC3, +#endif +#if CONFIG_POST & CFG_POST_BSPEC4 + CONFIG_POST_BSPEC4, +#endif +#if CONFIG_POST & CFG_POST_BSPEC4 + CONFIG_POST_BSPEC5, +#endif }; unsigned int post_list_size = sizeof (post_list) / sizeof (struct post_test); -- cgit v1.2.1 From e262efe35742c1ad4b0966ff501efc26f34a0aec Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Mon, 4 Feb 2008 14:11:03 +0100 Subject: The patch introduces the CRITICAL feature of POST tests. If the test marked as POST_CRITICAL fails then the alternative, post_critical, boot-command is used. If this command is not defined then U-Boot enters into interactive mode. Signed-off-by: Dmitry Rakhchev Signed-off-by: Yuri Tikhonov --- post/post.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'post') diff --git a/post/post.c b/post/post.c index 4ff75ee4b1..1df0657d8b 100644 --- a/post/post.c +++ b/post/post.c @@ -157,8 +157,10 @@ static void post_bootmode_test_off (void) static void post_get_flags (int *test_flags) { - int flag[] = { POST_POWERON, POST_NORMAL, POST_SLOWTEST }; - char *var[] = { "post_poweron", "post_normal", "post_slowtest" }; + int flag[] = { POST_POWERON, POST_NORMAL, POST_SLOWTEST, + POST_CRITICAL }; + char *var[] = { "post_poweron", "post_normal", "post_slowtest", + "post_critical" }; int varnum = sizeof (var) / sizeof (var[0]); char list[128]; /* long enough for POST list */ char *name; @@ -224,7 +226,9 @@ static int post_run_single (struct post_test *test, if (!(flags & POST_REBOOT)) { if ((test_flags & POST_REBOOT) && !(flags & POST_MANUAL)) { - post_bootmode_test_on (i); + post_bootmode_test_on ( + (gd->flags & GD_FLG_POSTFAIL) ? + POST_FAIL_SAVE | i : i); } if (test_flags & POST_PREREL) @@ -236,10 +240,14 @@ static int post_run_single (struct post_test *test, if (test_flags & POST_PREREL) { if ((*test->test) (flags) == 0) post_log_mark_succ ( test->testid ); + else if (test_flags & POST_CRITICAL) + gd->flags |= GD_FLG_POSTFAIL; } else { if ((*test->test) (flags) != 0) { post_log ("FAILED\n"); show_boot_progress (-32); + if (test_flags & POST_CRITICAL) + gd->flags |= GD_FLG_POSTFAIL; } else post_log ("PASSED\n"); @@ -266,6 +274,10 @@ int post_run (char *name, int flags) unsigned int last; if (post_bootmode_get (&last) & POST_POWERTEST) { + if (last & POST_FAIL_SAVE) { + last &= ~POST_FAIL_SAVE; + gd->flags |= GD_FLG_POSTFAIL; + } if (last < post_list_size && (flags & test_flags[last] & POST_ALWAYS) && (flags & test_flags[last] & POST_MEM)) { -- cgit v1.2.1 From 603f194e5ad81bb2ef42d6d8aaa74de175bcb411 Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Mon, 4 Feb 2008 17:09:55 +0100 Subject: Some fixes to dspic, fpga, and gdc post tests for lwmon5. Disable external watch-dog for now. Signed-off-by: Dmitry Rakhchev Signed-off-by: Yuri Tikhonov --- post/board/lwmon5/dspic.c | 2 +- post/board/lwmon5/fpga.c | 4 ++++ post/board/lwmon5/gdc.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'post') diff --git a/post/board/lwmon5/dspic.c b/post/board/lwmon5/dspic.c index e8fed89ba4..f1c9c153fb 100644 --- a/post/board/lwmon5/dspic.c +++ b/post/board/lwmon5/dspic.c @@ -94,9 +94,9 @@ int dspic_post_test(int flags) } data = dspic_read(DSPIC_SYS_ERROR_REG); - if (data != 0) ret = 1; if (data == -1) { post_log("dsPIC : failed read system error\n"); + ret = 1; } else { post_log("dsPIC SYS-ERROR code: 0x%04X\n", data); } diff --git a/post/board/lwmon5/fpga.c b/post/board/lwmon5/fpga.c index 4e3f1d5cd4..b87fc52c6a 100644 --- a/post/board/lwmon5/fpga.c +++ b/post/board/lwmon5/fpga.c @@ -39,6 +39,7 @@ DECLARE_GLOBAL_DATA_PTR; #define FPGA_VERSION_REG 0xC4000040 #define FPGA_RAM_START 0xC4200000 #define FPGA_RAM_END 0xC4203FFF +#define FPGA_STAT 0xC400000C #define FPGA_PWM_CTRL_REG 0xC4000020 #define FPGA_PWM_TV_REG 0xC4000024 @@ -93,6 +94,9 @@ int fpga_post_test(int flags) post_log("FPGA : version %u.%u\n", (version >> 8) & 0xFF, version & 0xFF); + /* Enable write to FPGA RAM */ + out_be32((void *)FPGA_STAT, in_be32((void *)FPGA_STAT) | 0x1000); + read_value = get_ram_size((void *)CFG_FPGA_BASE_1, 0x4000); post_log("FPGA RAM size: %d bytes\n", read_value); diff --git a/post/board/lwmon5/gdc.c b/post/board/lwmon5/gdc.c index 76e5dd62e3..0e4f0fd338 100644 --- a/post/board/lwmon5/gdc.c +++ b/post/board/lwmon5/gdc.c @@ -35,7 +35,7 @@ DECLARE_GLOBAL_DATA_PTR; -#define GDC_SCRATCH_REG 0xC1FF8044 +#define GDC_SCRATCH_REG 0xC1FF8008 #define GDC_VERSION_REG 0xC1FF8084 #define GDC_RAM_START 0xC0000000 #define GDC_RAM_END 0xC2000000 -- cgit v1.2.1 From 0f855a1f056a8c22116a2103a3900cbfb669df0b Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Tue, 18 Mar 2008 13:27:57 +0100 Subject: Fix backlight in the lwmon5 POST. Backlight was switcehd on even when temperature was too low. Signed-off-by: Dmitry Rakhchev Signed-off-by: Yuri Tikhonov --- post/board/lwmon5/fpga.c | 10 ---------- post/board/lwmon5/sysmon.c | 33 ++++++++------------------------- 2 files changed, 8 insertions(+), 35 deletions(-) (limited to 'post') diff --git a/post/board/lwmon5/fpga.c b/post/board/lwmon5/fpga.c index b87fc52c6a..162174c3ae 100644 --- a/post/board/lwmon5/fpga.c +++ b/post/board/lwmon5/fpga.c @@ -41,16 +41,6 @@ DECLARE_GLOBAL_DATA_PTR; #define FPGA_RAM_END 0xC4203FFF #define FPGA_STAT 0xC400000C -#define FPGA_PWM_CTRL_REG 0xC4000020 -#define FPGA_PWM_TV_REG 0xC4000024 - -/* Turn on backlight, set brightness */ -void fpga_backlight_enable(int pwm) -{ - out_be16((void *)FPGA_PWM_CTRL_REG, 0x0701); - out_be16((void *)FPGA_PWM_TV_REG, pwm); -} - #if CONFIG_POST & CFG_POST_BSPEC3 static int one_scratch_test(uint value) diff --git a/post/board/lwmon5/sysmon.c b/post/board/lwmon5/sysmon.c index 0eae4c1515..f7e51a3cfe 100644 --- a/post/board/lwmon5/sysmon.c +++ b/post/board/lwmon5/sysmon.c @@ -49,18 +49,16 @@ #include #include +#if defined(CONFIG_VIDEO) +#include +#endif + #if CONFIG_POST & CFG_POST_SYSMON DECLARE_GLOBAL_DATA_PTR; -#define DEFAULT_BRIGHTNESS 50 - /* from dspic.c */ extern int dspic_read(ushort reg); -/* from fpga.c */ -extern void fpga_backlight_enable(int v); - -static int sysmon_temp_invalid; #define RELOC(x) if (x != NULL) x = (void *) ((ulong) (x) + gd->reloc_off) @@ -70,7 +68,6 @@ typedef struct sysmon_table_s sysmon_table_t; static void sysmon_dspic_init (sysmon_t * this); static int sysmon_dspic_read (sysmon_t * this, uint addr); static void sysmon_backlight_disable (sysmon_table_t * this); -static void sysmon_backlight_enable (sysmon_table_t * this); struct sysmon_s { @@ -120,7 +117,7 @@ static sysmon_table_t sysmon_table[] = 100, 1000, -0x8000, 0x7FFF, 0xFFFF, 0x8000+4750, 0x8000+5250, 0, 0x8000+4750, 0x8000+5250, 0, 0x12CA}, - {"+ 5 V standby", "V", &sysmon_dspic, NULL, sysmon_backlight_enable, + {"+ 5 V standby", "V", &sysmon_dspic, NULL, NULL, 100, 1000, -0x8000, 0x7FFF, 0xFFFF, 0x8000+4750, 0x8000+5250, 0, 0x8000+4750, 0x8000+5250, 0, 0x12C6}, }; @@ -205,23 +202,9 @@ static int sysmon_dspic_read (sysmon_t * this, uint addr) static void sysmon_backlight_disable (sysmon_table_t * this) { - if (!this->val_valid_alt) - sysmon_temp_invalid = 1; -} - -static void sysmon_backlight_enable (sysmon_table_t * this) -{ - char * param; - int rc; - - if (!sysmon_temp_invalid) { - param = getenv("brightness"); - rc = param ? simple_strtol(param, NULL, 10) : -1; - if (rc >= 0) - fpga_backlight_enable(rc); - else - fpga_backlight_enable(DEFAULT_BRIGHTNESS); - } +#if defined(CONFIG_VIDEO) + board_backlight_switch(this->val_valid_alt); +#endif } int sysmon_post_test (int flags) -- cgit v1.2.1 From 3a5d1e7f1309998791702b2a559e3126781746b9 Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Tue, 18 Mar 2008 13:33:30 +0100 Subject: lwmon5: Fix register test logic to match the specific GDC h/w. Signed-off-by: Dmitry Rakhchev Signed-off-by: Yuri Tikhonov --- post/board/lwmon5/gdc.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'post') diff --git a/post/board/lwmon5/gdc.c b/post/board/lwmon5/gdc.c index 0e4f0fd338..aa1eee05fd 100644 --- a/post/board/lwmon5/gdc.c +++ b/post/board/lwmon5/gdc.c @@ -35,7 +35,7 @@ DECLARE_GLOBAL_DATA_PTR; -#define GDC_SCRATCH_REG 0xC1FF8008 +#define GDC_SCRATCH_REG 0xC1FF8044 #define GDC_VERSION_REG 0xC1FF8084 #define GDC_RAM_START 0xC0000000 #define GDC_RAM_END 0xC2000000 @@ -44,7 +44,7 @@ DECLARE_GLOBAL_DATA_PTR; static int gdc_test_reg_one(uint value) { - int ret = 0; + int ret; uint read_value; /* write test pattern */ @@ -56,10 +56,9 @@ static int gdc_test_reg_one(uint value) if (read_value != value) { post_log("GDC SCRATCH test failed write %08X, read %08X\n", value, read_value); - ret = 1; } - return ret; + return (read_value != value); } /* Verify GDC, get memory size */ @@ -71,9 +70,16 @@ int gdc_post_test(int flags) post_log("\n"); old_value = in_be32((void *)GDC_SCRATCH_REG); - if (gdc_test_reg_one(0x55555555)) + /* + * GPIOC2 register behaviour: the LIME graphics processor has a + * maximum of 5 GPIO ports that can be used in this hardware + * configuration. Thus only the bits for these 5 GPIOs can be + * activated in the GPIOC2 register. All other bits will always be + * read as zero. + */ + if (gdc_test_reg_one(0x00150015)) ret = 1; - if (gdc_test_reg_one(0xAAAAAAAA)) + if (gdc_test_reg_one(0x000A000A)) ret = 1; out_be32((void *)GDC_SCRATCH_REG, old_value); -- cgit v1.2.1 From 0a51e9248e2d27e0a02ef1e740c576ce90a39ee1 Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Mon, 31 Mar 2008 10:49:34 +0200 Subject: POST: preparations for moving CONFIG_POST to Makefiles Remove CONFIG_POST ifdefs from the post/ source files. Signed-off-by: Yuri Tikhonov Signed-off-by: Wolfgang Denk --- post/board/lwmon/sysmon.c | 3 --- post/board/lwmon5/dsp.c | 5 ----- post/board/lwmon5/dspic.c | 4 ---- post/board/lwmon5/fpga.c | 4 ---- post/board/lwmon5/gdc.c | 4 ---- post/board/lwmon5/sysmon.c | 3 --- post/board/lwmon5/watchdog.c | 4 ---- post/board/netta/codec.c | 3 --- post/board/netta/dsp.c | 3 --- post/cpu/mpc8xx/cache.c | 3 --- post/cpu/mpc8xx/cache_8xx.S | 2 -- post/cpu/mpc8xx/ether.c | 4 ---- post/cpu/mpc8xx/spr.c | 3 --- post/cpu/mpc8xx/uart.c | 4 ---- post/cpu/mpc8xx/usb.c | 4 ---- post/cpu/mpc8xx/watchdog.c | 3 --- post/cpu/ppc4xx/cache.c | 3 --- post/cpu/ppc4xx/cache_4xx.S | 3 --- post/cpu/ppc4xx/denali_ecc.c | 4 ++-- post/cpu/ppc4xx/ether.c | 3 --- post/cpu/ppc4xx/fpu.c | 2 -- post/cpu/ppc4xx/spr.c | 3 --- post/cpu/ppc4xx/uart.c | 3 --- post/cpu/ppc4xx/watchdog.c | 3 --- post/drivers/i2c.c | 3 --- post/drivers/memory.c | 3 --- post/drivers/rtc.c | 3 --- post/lib_ppc/andi.c | 3 --- post/lib_ppc/asm.S | 3 --- post/lib_ppc/b.c | 3 --- post/lib_ppc/cmp.c | 3 --- post/lib_ppc/cmpi.c | 3 --- post/lib_ppc/complex.c | 3 --- post/lib_ppc/cpu.c | 3 --- post/lib_ppc/cr.c | 3 --- post/lib_ppc/fpu/20001122-1.c | 3 --- post/lib_ppc/fpu/20010114-2.c | 3 --- post/lib_ppc/fpu/20010226-1.c | 3 --- post/lib_ppc/fpu/980619-1.c | 3 --- post/lib_ppc/fpu/acc1.c | 3 --- post/lib_ppc/fpu/compare-fp-1.c | 3 --- post/lib_ppc/fpu/fpu.c | 3 --- post/lib_ppc/fpu/mul-subnormal-single-1.c | 3 --- post/lib_ppc/load.c | 3 --- post/lib_ppc/multi.c | 3 --- post/lib_ppc/rlwimi.c | 3 --- post/lib_ppc/rlwinm.c | 3 --- post/lib_ppc/rlwnm.c | 3 --- post/lib_ppc/srawi.c | 3 --- post/lib_ppc/store.c | 3 --- post/lib_ppc/string.c | 3 --- post/lib_ppc/three.c | 3 --- post/lib_ppc/threei.c | 3 --- post/lib_ppc/threex.c | 3 --- post/lib_ppc/two.c | 3 --- post/lib_ppc/twox.c | 3 --- post/post.c | 4 ---- post/tests.c | 4 ---- 58 files changed, 2 insertions(+), 182 deletions(-) (limited to 'post') diff --git a/post/board/lwmon/sysmon.c b/post/board/lwmon/sysmon.c index f61d598244..ea8b5a9c66 100644 --- a/post/board/lwmon/sysmon.c +++ b/post/board/lwmon/sysmon.c @@ -24,8 +24,6 @@ #include #include -#ifdef CONFIG_POST - /* * SYSMON test * @@ -328,4 +326,3 @@ int sysmon_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_SYSMON */ -#endif /* CONFIG_POST */ diff --git a/post/board/lwmon5/dsp.c b/post/board/lwmon5/dsp.c index 7b53af992d..a96ac7d681 100644 --- a/post/board/lwmon5/dsp.c +++ b/post/board/lwmon5/dsp.c @@ -24,11 +24,8 @@ #include -#ifdef CONFIG_POST - #include - #if CONFIG_POST & CFG_POST_DSP #include @@ -54,5 +51,3 @@ int dsp_post_test(int flags) } #endif /* CONFIG_POST & CFG_POST_DSP */ -#endif /* CONFIG_POST */ - diff --git a/post/board/lwmon5/dspic.c b/post/board/lwmon5/dspic.c index f1c9c153fb..eb1c31ce30 100644 --- a/post/board/lwmon5/dspic.c +++ b/post/board/lwmon5/dspic.c @@ -24,8 +24,6 @@ #include -#ifdef CONFIG_POST - /* There are two tests for dsPIC currently implemented: * 1. dsPIC ready test. Done in board_early_init_f(). Only result verified here. * 2. dsPIC POST result test. This test gets dsPIC POST codes and version. @@ -105,5 +103,3 @@ int dspic_post_test(int flags) } #endif /* CONFIG_POST & CFG_POST_BSPEC2 */ -#endif /* CONFIG_POST */ - diff --git a/post/board/lwmon5/fpga.c b/post/board/lwmon5/fpga.c index 162174c3ae..b48390ba98 100644 --- a/post/board/lwmon5/fpga.c +++ b/post/board/lwmon5/fpga.c @@ -23,8 +23,6 @@ */ #include -#ifdef CONFIG_POST - /* This test performs testing of FPGA SCRATCH register, * gets FPGA version and run get_ram_size() on FPGA memory */ @@ -94,5 +92,3 @@ int fpga_post_test(int flags) } #endif /* CONFIG_POST & CFG_POST_BSPEC3 */ -#endif /* CONFIG_POST */ - diff --git a/post/board/lwmon5/gdc.c b/post/board/lwmon5/gdc.c index aa1eee05fd..bc166850f8 100644 --- a/post/board/lwmon5/gdc.c +++ b/post/board/lwmon5/gdc.c @@ -23,8 +23,6 @@ */ #include -#ifdef CONFIG_POST - /* This test attempts to verify board GDC. A scratch register tested, then * simple memory test (get_ram_size()) run over GDC memory. */ @@ -96,5 +94,3 @@ int gdc_post_test(int flags) return ret; } #endif /* CONFIG_POST & CFG_POST_BSPEC4 */ -#endif /* CONFIG_POST */ - diff --git a/post/board/lwmon5/sysmon.c b/post/board/lwmon5/sysmon.c index f7e51a3cfe..15661e3e08 100644 --- a/post/board/lwmon5/sysmon.c +++ b/post/board/lwmon5/sysmon.c @@ -25,8 +25,6 @@ #include #include -#ifdef CONFIG_POST - /* * SYSMON test * @@ -245,4 +243,3 @@ int sysmon_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_SYSMON */ -#endif /* CONFIG_POST */ diff --git a/post/board/lwmon5/watchdog.c b/post/board/lwmon5/watchdog.c index ad9e6f384e..699266bbfe 100644 --- a/post/board/lwmon5/watchdog.c +++ b/post/board/lwmon5/watchdog.c @@ -29,8 +29,6 @@ * trigger watchdog reset. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_WATCHDOG @@ -128,5 +126,3 @@ int lwmon5_watchdog_post_test(int flags) #endif /* CONFIG_POST & CFG_POST_WATCHDOG */ -#endif /* CONFIG_POST */ - diff --git a/post/board/netta/codec.c b/post/board/netta/codec.c index e8817520fc..115e331fdb 100644 --- a/post/board/netta/codec.c +++ b/post/board/netta/codec.c @@ -31,8 +31,6 @@ * in the board specific function. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_CODEC @@ -45,4 +43,3 @@ int codec_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_CODEC */ -#endif /* CONFIG_POST */ diff --git a/post/board/netta/dsp.c b/post/board/netta/dsp.c index 63531a2a4c..dcef4e821e 100644 --- a/post/board/netta/dsp.c +++ b/post/board/netta/dsp.c @@ -31,8 +31,6 @@ * in the board specific function. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_DSP @@ -45,4 +43,3 @@ int dsp_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_DSP */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/mpc8xx/cache.c b/post/cpu/mpc8xx/cache.c index 501465c06a..36965a1672 100644 --- a/post/cpu/mpc8xx/cache.c +++ b/post/cpu/mpc8xx/cache.c @@ -29,8 +29,6 @@ * several test scenarios. */ -#ifdef CONFIG_POST - #include #include @@ -78,4 +76,3 @@ int cache_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_CACHE */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/mpc8xx/cache_8xx.S b/post/cpu/mpc8xx/cache_8xx.S index 2d41b5566a..a3fc39bda1 100644 --- a/post/cpu/mpc8xx/cache_8xx.S +++ b/post/cpu/mpc8xx/cache_8xx.S @@ -22,7 +22,6 @@ #include -#ifdef CONFIG_POST #if defined(CONFIG_MPC823) || \ defined(CONFIG_MPC850) || \ defined(CONFIG_MPC855) || \ @@ -492,4 +491,3 @@ cache_post_test6_data: #endif /* CONFIG_MPC823 || MPC850 || MPC855 || MPC860 */ #endif /* CONFIG_POST & CFG_POST_CACHE */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/mpc8xx/ether.c b/post/cpu/mpc8xx/ether.c index 8c87b5927e..2fa5cf4ac9 100644 --- a/post/cpu/mpc8xx/ether.c +++ b/post/cpu/mpc8xx/ether.c @@ -35,8 +35,6 @@ * TEST_NUM - number of tests */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_ETHER #if defined(CONFIG_8xx) @@ -627,5 +625,3 @@ int ether_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_ETHER */ - -#endif /* CONFIG_POST */ diff --git a/post/cpu/mpc8xx/spr.c b/post/cpu/mpc8xx/spr.c index 330b977f1a..83f04da55d 100644 --- a/post/cpu/mpc8xx/spr.c +++ b/post/cpu/mpc8xx/spr.c @@ -33,8 +33,6 @@ * corresponding table value. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_SPR @@ -149,4 +147,3 @@ int spr_post_test (int flags) return ret; } #endif /* CONFIG_POST & CFG_POST_SPR */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/mpc8xx/uart.c b/post/cpu/mpc8xx/uart.c index fd97e3899e..635debe8d3 100644 --- a/post/cpu/mpc8xx/uart.c +++ b/post/cpu/mpc8xx/uart.c @@ -36,8 +36,6 @@ * TEST_NUM - number of tests */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_UART #if defined(CONFIG_8xx) @@ -556,5 +554,3 @@ int uart_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_UART */ - -#endif /* CONFIG_POST */ diff --git a/post/cpu/mpc8xx/usb.c b/post/cpu/mpc8xx/usb.c index 0c74cfa5da..58779812f6 100644 --- a/post/cpu/mpc8xx/usb.c +++ b/post/cpu/mpc8xx/usb.c @@ -34,8 +34,6 @@ * Initialization Example. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_USB @@ -265,5 +263,3 @@ int usb_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_USB */ - -#endif /* CONFIG_POST */ diff --git a/post/cpu/mpc8xx/watchdog.c b/post/cpu/mpc8xx/watchdog.c index 48c4282e1d..f94158aa6f 100644 --- a/post/cpu/mpc8xx/watchdog.c +++ b/post/cpu/mpc8xx/watchdog.c @@ -33,8 +33,6 @@ * reboots, on the second iteration the test routine reports a success. */ -#ifdef CONFIG_POST - #include #include @@ -75,4 +73,3 @@ int watchdog_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_WATCHDOG */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/ppc4xx/cache.c b/post/cpu/ppc4xx/cache.c index 466ca926b7..be6a2bf54c 100644 --- a/post/cpu/ppc4xx/cache.c +++ b/post/cpu/ppc4xx/cache.c @@ -31,8 +31,6 @@ * several test scenarios. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_CACHE @@ -122,4 +120,3 @@ int cache_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_CACHE */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/ppc4xx/cache_4xx.S b/post/cpu/ppc4xx/cache_4xx.S index d5cb075d6b..455ffa0726 100644 --- a/post/cpu/ppc4xx/cache_4xx.S +++ b/post/cpu/ppc4xx/cache_4xx.S @@ -25,8 +25,6 @@ #include -#ifdef CONFIG_POST - #include #include #include @@ -489,4 +487,3 @@ cache_post_test_inst: blr #endif /* CONFIG_POST & CFG_POST_CACHE */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/ppc4xx/denali_ecc.c b/post/cpu/ppc4xx/denali_ecc.c index 439f80d1f6..12a1bbfa87 100644 --- a/post/cpu/ppc4xx/denali_ecc.c +++ b/post/cpu/ppc4xx/denali_ecc.c @@ -31,7 +31,7 @@ #include #include -#if defined(CONFIG_POST) && (defined(CONFIG_440EPX) || defined(CONFIG_440GRX)) +#if defined(CONFIG_440EPX) || defined(CONFIG_440GRX) #include @@ -268,4 +268,4 @@ int ecc_post_test(int flags) return ret; } #endif /* CONFIG_POST & CFG_POST_ECC */ -#endif /* defined(CONFIG_POST) && ... */ +#endif /* defined(CONFIG_440EPX) || defined(CONFIG_440GRX) */ diff --git a/post/cpu/ppc4xx/ether.c b/post/cpu/ppc4xx/ether.c index 4ac7491343..ccbfcf91ae 100644 --- a/post/cpu/ppc4xx/ether.c +++ b/post/cpu/ppc4xx/ether.c @@ -37,8 +37,6 @@ * TEST_NUM - number of tests */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_ETHER @@ -430,4 +428,3 @@ out_free: } #endif /* CONFIG_POST & CFG_POST_ETHER */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/ppc4xx/fpu.c b/post/cpu/ppc4xx/fpu.c index 0c26fe00e4..fff4169976 100644 --- a/post/cpu/ppc4xx/fpu.c +++ b/post/cpu/ppc4xx/fpu.c @@ -25,7 +25,6 @@ #include -#ifdef CONFIG_POST #if defined(CONFIG_440EP) || \ defined(CONFIG_440EPX) @@ -56,4 +55,3 @@ void fpu_enable(void) } #endif -#endif /* CONFIG_POST */ diff --git a/post/cpu/ppc4xx/spr.c b/post/cpu/ppc4xx/spr.c index 37c95598f5..6152eb21a9 100644 --- a/post/cpu/ppc4xx/spr.c +++ b/post/cpu/ppc4xx/spr.c @@ -35,8 +35,6 @@ * corresponding table value. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_SPR @@ -199,4 +197,3 @@ int spr_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_SPR */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/ppc4xx/uart.c b/post/cpu/ppc4xx/uart.c index f47b48e9dc..27cfb91594 100644 --- a/post/cpu/ppc4xx/uart.c +++ b/post/cpu/ppc4xx/uart.c @@ -32,8 +32,6 @@ * characters are transmitted. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_UART @@ -389,4 +387,3 @@ int uart_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_UART */ -#endif /* CONFIG_POST */ diff --git a/post/cpu/ppc4xx/watchdog.c b/post/cpu/ppc4xx/watchdog.c index bd4f4c9856..7fdecb485c 100644 --- a/post/cpu/ppc4xx/watchdog.c +++ b/post/cpu/ppc4xx/watchdog.c @@ -35,8 +35,6 @@ * reboots, on the second iteration the test routine reports a success. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_WATCHDOG @@ -68,4 +66,3 @@ int watchdog_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_WATCHDOG */ -#endif /* CONFIG_POST */ diff --git a/post/drivers/i2c.c b/post/drivers/i2c.c index 1b2e64471b..f54fe9970a 100644 --- a/post/drivers/i2c.c +++ b/post/drivers/i2c.c @@ -23,8 +23,6 @@ #include -#ifdef CONFIG_POST - /* * I2C test * @@ -91,4 +89,3 @@ int i2c_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_I2C */ -#endif /* CONFIG_POST */ diff --git a/post/drivers/memory.c b/post/drivers/memory.c index fb969856bc..e94d92c08b 100644 --- a/post/drivers/memory.c +++ b/post/drivers/memory.c @@ -150,8 +150,6 @@ * the whole RAM. */ -#ifdef CONFIG_POST - #include #include @@ -483,4 +481,3 @@ int memory_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_MEMORY */ -#endif /* CONFIG_POST */ diff --git a/post/drivers/rtc.c b/post/drivers/rtc.c index 7d4f9b88ee..4afe8e67e7 100644 --- a/post/drivers/rtc.c +++ b/post/drivers/rtc.c @@ -38,8 +38,6 @@ * nonleap-years. */ -#ifdef CONFIG_POST - #include #include @@ -180,4 +178,3 @@ int rtc_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_RTC */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/andi.c b/post/lib_ppc/andi.c index 7ddf2ab2f3..e3315bf15e 100644 --- a/post/lib_ppc/andi.c +++ b/post/lib_ppc/andi.c @@ -32,8 +32,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -120,4 +118,3 @@ int cpu_post_test_andi (void) } #endif -#endif diff --git a/post/lib_ppc/asm.S b/post/lib_ppc/asm.S index 12791762ba..6220ed2bb1 100644 --- a/post/lib_ppc/asm.S +++ b/post/lib_ppc/asm.S @@ -22,8 +22,6 @@ #include -#ifdef CONFIG_POST - #include #include #include @@ -358,4 +356,3 @@ cpu_post_complex_2_loop: blr #endif -#endif diff --git a/post/lib_ppc/b.c b/post/lib_ppc/b.c index 6e276c48d5..45b9ff26e8 100644 --- a/post/lib_ppc/b.c +++ b/post/lib_ppc/b.c @@ -37,8 +37,6 @@ * linked in U-Boot at build time. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -194,4 +192,3 @@ int cpu_post_test_b (void) } #endif -#endif diff --git a/post/lib_ppc/cmp.c b/post/lib_ppc/cmp.c index 789a24cb7f..89f754a0b1 100644 --- a/post/lib_ppc/cmp.c +++ b/post/lib_ppc/cmp.c @@ -36,8 +36,6 @@ * the result in and the expected result. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -130,4 +128,3 @@ int cpu_post_test_cmp (void) } #endif -#endif diff --git a/post/lib_ppc/cmpi.c b/post/lib_ppc/cmpi.c index e0c2aaff82..0afdd71152 100644 --- a/post/lib_ppc/cmpi.c +++ b/post/lib_ppc/cmpi.c @@ -36,8 +36,6 @@ * the result in and the expected result. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -130,4 +128,3 @@ int cpu_post_test_cmpi (void) } #endif -#endif diff --git a/post/lib_ppc/complex.c b/post/lib_ppc/complex.c index 033584bec0..271392a0e8 100644 --- a/post/lib_ppc/complex.c +++ b/post/lib_ppc/complex.c @@ -31,8 +31,6 @@ * calculations, but probably under different timing conditions, etc. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -123,4 +121,3 @@ int cpu_post_test_complex (void) } #endif -#endif diff --git a/post/lib_ppc/cpu.c b/post/lib_ppc/cpu.c index 4ab6d2dc00..5c7f76191d 100644 --- a/post/lib_ppc/cpu.c +++ b/post/lib_ppc/cpu.c @@ -32,8 +32,6 @@ * For more details refer to post/cpu/ *.c files. */ -#ifdef CONFIG_POST - #include #include #include @@ -147,4 +145,3 @@ int cpu_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_CPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/cr.c b/post/lib_ppc/cr.c index da6ef3745d..0bd9e748f2 100644 --- a/post/lib_ppc/cr.c +++ b/post/lib_ppc/cr.c @@ -46,8 +46,6 @@ * expected one. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -353,4 +351,3 @@ int cpu_post_test_cr (void) } #endif -#endif diff --git a/post/lib_ppc/fpu/20001122-1.c b/post/lib_ppc/fpu/20001122-1.c index f689b8232f..dece614835 100644 --- a/post/lib_ppc/fpu/20001122-1.c +++ b/post/lib_ppc/fpu/20001122-1.c @@ -26,8 +26,6 @@ #include -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -59,4 +57,3 @@ int fpu_post_test_math1 (void) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/fpu/20010114-2.c b/post/lib_ppc/fpu/20010114-2.c index 6e60507f9c..8a172174c3 100644 --- a/post/lib_ppc/fpu/20010114-2.c +++ b/post/lib_ppc/fpu/20010114-2.c @@ -26,8 +26,6 @@ #include -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -63,4 +61,3 @@ int fpu_post_test_math2 (void) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/fpu/20010226-1.c b/post/lib_ppc/fpu/20010226-1.c index b2c47e3658..f366252e66 100644 --- a/post/lib_ppc/fpu/20010226-1.c +++ b/post/lib_ppc/fpu/20010226-1.c @@ -26,8 +26,6 @@ #include -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -51,4 +49,3 @@ int fpu_post_test_math3 (void) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/fpu/980619-1.c b/post/lib_ppc/fpu/980619-1.c index 990aa0c989..7f26482a57 100644 --- a/post/lib_ppc/fpu/980619-1.c +++ b/post/lib_ppc/fpu/980619-1.c @@ -26,8 +26,6 @@ #include -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -57,4 +55,3 @@ int fpu_post_test_math4 (void) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/fpu/acc1.c b/post/lib_ppc/fpu/acc1.c index 4cecbf6a4f..921282e8b6 100644 --- a/post/lib_ppc/fpu/acc1.c +++ b/post/lib_ppc/fpu/acc1.c @@ -26,8 +26,6 @@ #include -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -54,4 +52,3 @@ int fpu_post_test_math5 (void) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/fpu/compare-fp-1.c b/post/lib_ppc/fpu/compare-fp-1.c index d866ad5a36..be8f6208ac 100644 --- a/post/lib_ppc/fpu/compare-fp-1.c +++ b/post/lib_ppc/fpu/compare-fp-1.c @@ -28,8 +28,6 @@ #include -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -222,4 +220,3 @@ int fpu_post_test_math6 (void) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/fpu/fpu.c b/post/lib_ppc/fpu/fpu.c index 07dcba8cc9..9ddb67a21d 100644 --- a/post/lib_ppc/fpu/fpu.c +++ b/post/lib_ppc/fpu/fpu.c @@ -34,8 +34,6 @@ * For more details refer to post/cpu/ *.c files. */ -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -89,4 +87,3 @@ int fpu_post_test (int flags) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/fpu/mul-subnormal-single-1.c b/post/lib_ppc/fpu/mul-subnormal-single-1.c index 67f48da335..7e6fe87b01 100644 --- a/post/lib_ppc/fpu/mul-subnormal-single-1.c +++ b/post/lib_ppc/fpu/mul-subnormal-single-1.c @@ -28,8 +28,6 @@ #include -#ifdef CONFIG_POST - #include #if CONFIG_POST & CFG_POST_FPU @@ -100,4 +98,3 @@ int fpu_post_test_math7 (void) } #endif /* CONFIG_POST & CFG_POST_FPU */ -#endif /* CONFIG_POST */ diff --git a/post/lib_ppc/load.c b/post/lib_ppc/load.c index 393c56830d..86bc2234cf 100644 --- a/post/lib_ppc/load.c +++ b/post/lib_ppc/load.c @@ -41,8 +41,6 @@ * register (it must change for "load with update" instructions). */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -252,4 +250,3 @@ int cpu_post_test_load (void) } #endif -#endif diff --git a/post/lib_ppc/multi.c b/post/lib_ppc/multi.c index 872438478f..5d3f584281 100644 --- a/post/lib_ppc/multi.c +++ b/post/lib_ppc/multi.c @@ -33,8 +33,6 @@ * of the source and target buffers are then compared. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -78,4 +76,3 @@ int cpu_post_test_multi (void) } #endif -#endif diff --git a/post/lib_ppc/rlwimi.c b/post/lib_ppc/rlwimi.c index f65f79a8e8..1d8e61ec1f 100644 --- a/post/lib_ppc/rlwimi.c +++ b/post/lib_ppc/rlwimi.c @@ -32,8 +32,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -159,4 +157,3 @@ int cpu_post_test_rlwimi (void) } #endif -#endif diff --git a/post/lib_ppc/rlwinm.c b/post/lib_ppc/rlwinm.c index e240c41b1a..113e79d00a 100644 --- a/post/lib_ppc/rlwinm.c +++ b/post/lib_ppc/rlwinm.c @@ -32,8 +32,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -152,4 +150,3 @@ int cpu_post_test_rlwinm (void) } #endif -#endif diff --git a/post/lib_ppc/rlwnm.c b/post/lib_ppc/rlwnm.c index 523cf4da59..a6684bf60b 100644 --- a/post/lib_ppc/rlwnm.c +++ b/post/lib_ppc/rlwnm.c @@ -32,8 +32,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -162,4 +160,3 @@ int cpu_post_test_rlwnm (void) } #endif -#endif diff --git a/post/lib_ppc/srawi.c b/post/lib_ppc/srawi.c index 91c82c915f..8c70007c54 100644 --- a/post/lib_ppc/srawi.c +++ b/post/lib_ppc/srawi.c @@ -32,8 +32,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -153,4 +151,3 @@ int cpu_post_test_srawi (void) } #endif -#endif diff --git a/post/lib_ppc/store.c b/post/lib_ppc/store.c index f495bf2aab..09ec48554e 100644 --- a/post/lib_ppc/store.c +++ b/post/lib_ppc/store.c @@ -41,8 +41,6 @@ * with update" instructions). */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -232,4 +230,3 @@ int cpu_post_test_store (void) } #endif -#endif diff --git a/post/lib_ppc/string.c b/post/lib_ppc/string.c index bd83bd1362..b2daa88049 100644 --- a/post/lib_ppc/string.c +++ b/post/lib_ppc/string.c @@ -33,8 +33,6 @@ * of the source and target buffers are then compared. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -103,4 +101,3 @@ int cpu_post_test_string (void) } #endif -#endif diff --git a/post/lib_ppc/three.c b/post/lib_ppc/three.c index c2d7476047..a7f1a866fd 100644 --- a/post/lib_ppc/three.c +++ b/post/lib_ppc/three.c @@ -35,8 +35,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -256,4 +254,3 @@ int cpu_post_test_three (void) } #endif -#endif diff --git a/post/lib_ppc/threei.c b/post/lib_ppc/threei.c index 79f01789c0..bbb4f50b7a 100644 --- a/post/lib_ppc/threei.c +++ b/post/lib_ppc/threei.c @@ -34,8 +34,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -134,4 +132,3 @@ int cpu_post_test_threei (void) } #endif -#endif diff --git a/post/lib_ppc/threex.c b/post/lib_ppc/threex.c index 2c72063848..6aac937890 100644 --- a/post/lib_ppc/threex.c +++ b/post/lib_ppc/threex.c @@ -35,8 +35,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -226,4 +224,3 @@ int cpu_post_test_threex (void) } #endif -#endif diff --git a/post/lib_ppc/two.c b/post/lib_ppc/two.c index cfbac5e620..3d6b3c016c 100644 --- a/post/lib_ppc/two.c +++ b/post/lib_ppc/two.c @@ -35,8 +35,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -173,4 +171,3 @@ int cpu_post_test_two (void) } #endif -#endif diff --git a/post/lib_ppc/twox.c b/post/lib_ppc/twox.c index 48d9954ca4..7417a36808 100644 --- a/post/lib_ppc/twox.c +++ b/post/lib_ppc/twox.c @@ -35,8 +35,6 @@ * different sets of operand registers and result registers. */ -#ifdef CONFIG_POST - #include #include "cpu_asm.h" @@ -173,4 +171,3 @@ int cpu_post_test_twox (void) } #endif -#endif diff --git a/post/post.c b/post/post.c index 1df0657d8b..c016c3ae40 100644 --- a/post/post.c +++ b/post/post.c @@ -30,8 +30,6 @@ #include #endif -#ifdef CONFIG_POST - DECLARE_GLOBAL_DATA_PTR; #define POST_MAX_NUMBER 32 @@ -442,5 +440,3 @@ unsigned long post_time_ms (unsigned long base) return 0; /* Not implemented yet */ #endif } - -#endif /* CONFIG_POST */ diff --git a/post/tests.c b/post/tests.c index 53d01e355e..36473e311f 100644 --- a/post/tests.c +++ b/post/tests.c @@ -27,8 +27,6 @@ #include -#ifdef CONFIG_POST - #include extern int cache_post_test (int flags); @@ -278,5 +276,3 @@ struct post_test post_list[] = }; unsigned int post_list_size = sizeof (post_list) / sizeof (struct post_test); - -#endif /* CONFIG_POST */ -- cgit v1.2.1 From 2d2b994a30bb100774dc747ae9865b7f95285a88 Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Mon, 31 Mar 2008 10:51:37 +0200 Subject: POST: move CONFIG_POST to Makefiles Introduce the new logical option CONFIG_HAS_POST which is set when the platform has CONFIG_POST set. Use CONFIG_HAS_POST in the post/ Makefiles to determine should the POST libs be compiled for the selected target platform, or not. To avoid breaking u-boot linking process, the empty post/libpost.a file is created for platforms which do not have POSTs. Signed-off-by: Yuri Tikhonov Signed-off-by: Wolfgang Denk --- post/Makefile | 47 ++++++++++++++++++++++++++++++++++++++++++---- post/board/lwmon5/Makefile | 3 ++- post/cpu/ppc4xx/Makefile | 5 +++-- post/drivers/Makefile | 6 ++---- post/lib_ppc/Makefile | 11 +++++------ post/lib_ppc/fpu/Makefile | 6 +++--- post/rules.mk | 2 ++ 7 files changed, 60 insertions(+), 20 deletions(-) (limited to 'post') diff --git a/post/Makefile b/post/Makefile index f32af95162..02b51544c2 100644 --- a/post/Makefile +++ b/post/Makefile @@ -21,11 +21,50 @@ # MA 02111-1307 USA # +include $(TOPDIR)/include/autoconf.mk -SUBDIRS = drivers cpu lib_$(ARCH) board/$(BOARDDIR) +LIB = libpost.a +GPLIB-$(CONFIG_HAS_POST) += libgenpost.a +COBJS-$(CONFIG_HAS_POST) += post.o tests.o -LIB = libpost.a +SPLIB-$(CONFIG_HAS_POST) = drivers/libpostdrivers.a +SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d lib_$(ARCH) ]; then echo \ + "lib_$(ARCH)/libpost$(ARCH).a"; fi) +SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d lib_$(ARCH)/fpu ]; then echo \ + "lib_$(ARCH)/fpu/libpost$(ARCH)fpu.a"; fi) +SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d cpu/$(CPU) ]; then echo \ + "cpu/$(CPU)/libpost$(CPU).a"; fi) +SPLIB-$(CONFIG_HAS_POST) += $(shell if [ -d board/$(BOARD) ]; then echo \ + "board/$(BOARD)/libpost$(BOARD).a"; fi) -COBJS = post.o tests.o +GPLIB := $(GPLIB-y) +SPLIB := $(SPLIB-y) +COBJS := $(COBJS-y) +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +LIB := $(obj)$(LIB) -include $(TOPDIR)/post/rules.mk +all: $(LIB) + +# generic POST library +$(GPLIB): $(obj).depend $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +# specific POST libraries +$(SPLIB): $(obj).depend + $(MAKE) -C $(dir $(subst $(obj),,$@)) + +# the POST lib archive +$(LIB): $(GPLIB) $(SPLIB) + (echo create $(LIB); for lib in $(GPLIB) $(SPLIB) ; \ + do echo addlib $$lib; done; echo save) \ + | $(AR) -M + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/post/board/lwmon5/Makefile b/post/board/lwmon5/Makefile index 5a92d1ce73..3cb6426e4d 100644 --- a/post/board/lwmon5/Makefile +++ b/post/board/lwmon5/Makefile @@ -20,9 +20,10 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA +include $(TOPDIR)/include/autoconf.mk LIB = libpostlwmon5.a -COBJS = sysmon.o watchdog.o dspic.o fpga.o dsp.o gdc.o +COBJS-$(CONFIG_HAS_POST) += sysmon.o watchdog.o dspic.o fpga.o dsp.o gdc.o include $(TOPDIR)/post/rules.mk diff --git a/post/cpu/ppc4xx/Makefile b/post/cpu/ppc4xx/Makefile index e3f44b7774..7b13413b9d 100644 --- a/post/cpu/ppc4xx/Makefile +++ b/post/cpu/ppc4xx/Makefile @@ -20,10 +20,11 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # +include $(TOPDIR)/include/autoconf.mk LIB = libpostppc4xx.a -AOBJS = cache_4xx.o -COBJS = cache.o denali_ecc.o ether.o fpu.o spr.o uart.o watchdog.o +AOBJS-$(CONFIG_HAS_POST) += cache_4xx.o +COBJS-$(CONFIG_HAS_POST) += cache.o denali_ecc.o ether.o fpu.o spr.o uart.o watchdog.o include $(TOPDIR)/post/rules.mk diff --git a/post/drivers/Makefile b/post/drivers/Makefile index cb2f1deacd..0b6cdf58c9 100644 --- a/post/drivers/Makefile +++ b/post/drivers/Makefile @@ -20,12 +20,10 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # - - -SUBDIRS = +include $(TOPDIR)/config.mk LIB = libpostdrivers.a -COBJS = i2c.o memory.o rtc.o +COBJS-$(CONFIG_HAS_POST) += i2c.o memory.o rtc.o include $(TOPDIR)/post/rules.mk diff --git a/post/lib_ppc/Makefile b/post/lib_ppc/Makefile index 9f1b329d70..bd7a232992 100644 --- a/post/lib_ppc/Makefile +++ b/post/lib_ppc/Makefile @@ -20,14 +20,13 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # - -SUBDIRS = fpu +include $(TOPDIR)/config.mk LIB = libpostppc.a -AOBJS = asm.o -COBJS = cpu.o cmp.o cmpi.o two.o twox.o three.o threex.o -COBJS += threei.o andi.o srawi.o rlwnm.o rlwinm.o rlwimi.o -COBJS += store.o load.o cr.o b.o multi.o string.o complex.o +AOBJS-$(CONFIG_HAS_POST) += asm.o +COBJS-$(CONFIG_HAS_POST) += cpu.o cmp.o cmpi.o two.o twox.o three.o threex.o +COBJS-$(CONFIG_HAS_POST) += threei.o andi.o srawi.o rlwnm.o rlwinm.o rlwimi.o +COBJS-$(CONFIG_HAS_POST) += store.o load.o cr.o b.o multi.o string.o complex.o include $(TOPDIR)/post/rules.mk diff --git a/post/lib_ppc/fpu/Makefile b/post/lib_ppc/fpu/Makefile index 82646c80d6..db435931d8 100644 --- a/post/lib_ppc/fpu/Makefile +++ b/post/lib_ppc/fpu/Makefile @@ -20,12 +20,12 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # - +include $(TOPDIR)/config.mk LIB = libpostppcfpu.a -COBJS += fpu.o 20001122-1.o 20010114-2.o 20010226-1.o 980619-1.o -COBJS += acc1.o compare-fp-1.o mul-subnormal-single-1.o +COBJS-$(CONFIG_HAS_POST) += fpu.o 20001122-1.o 20010114-2.o 20010226-1.o 980619-1.o +COBJS-$(CONFIG_HAS_POST) += acc1.o compare-fp-1.o mul-subnormal-single-1.o include $(TOPDIR)/post/rules.mk diff --git a/post/rules.mk b/post/rules.mk index e2c73c6004..94e72bec62 100644 --- a/post/rules.mk +++ b/post/rules.mk @@ -23,6 +23,8 @@ include $(TOPDIR)/config.mk +COBJS := $(COBJS-y) +AOBJS := $(AOBJS-y) SRCS := $(AOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(AOBJS) $(COBJS)) LIB := $(obj)$(LIB) -- cgit v1.2.1