From 3f2546b2ef55b661fd8dd69682b38992225e86f6 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Mon, 29 Apr 2019 01:17:54 +0100 Subject: Initial import of qemu-2.4.1 --- roms/u-boot/post/board/lwmon5/dsp.c | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 roms/u-boot/post/board/lwmon5/dsp.c (limited to 'roms/u-boot/post/board/lwmon5/dsp.c') diff --git a/roms/u-boot/post/board/lwmon5/dsp.c b/roms/u-boot/post/board/lwmon5/dsp.c new file mode 100644 index 00000000..2f55f01c --- /dev/null +++ b/roms/u-boot/post/board/lwmon5/dsp.c @@ -0,0 +1,54 @@ +/* + * (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com + * + * Developed for DENX Software Engineering GmbH + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include + +#include + +#if CONFIG_POST & CONFIG_SYS_POST_DSP +#include + +/* This test verifies DSP status bits in FPGA */ + +DECLARE_GLOBAL_DATA_PTR; + +#define DSP_STATUS_REG 0xC4000008 +#define FPGA_STATUS_REG 0xC400000C + +int dsp_post_test(int flags) +{ + uint old_value; + uint read_value; + int ret; + + /* momorize fpga status */ + old_value = in_be32((void *)FPGA_STATUS_REG); + /* enable outputs */ + out_be32((void *)FPGA_STATUS_REG, 0x30); + + /* generate sync signal */ + out_be32((void *)DSP_STATUS_REG, 0x300); + udelay(5); + out_be32((void *)DSP_STATUS_REG, 0); + udelay(500); + + /* read status */ + ret = 0; + read_value = in_be32((void *)DSP_STATUS_REG) & 0x3; + if (read_value != 0x03) { + post_log("\nDSP status read %08X\n", read_value); + ret = 1; + } + + /* restore fpga status */ + out_be32((void *)FPGA_STATUS_REG, old_value); + + return ret; +} + +#endif /* CONFIG_POST & CONFIG_SYS_POST_DSP */ -- cgit v1.2.3