X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=qemu%2Froms%2Fu-boot%2Fpost%2Fboard%2Flwmon5%2Fdsp.c;fp=qemu%2Froms%2Fu-boot%2Fpost%2Fboard%2Flwmon5%2Fdsp.c;h=2f55f01ceb37347ebfc3115ff513f1e7efede8e1;hb=e44e3482bdb4d0ebde2d8b41830ac2cdb07948fb;hp=0000000000000000000000000000000000000000;hpb=9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00;p=kvmfornfv.git diff --git a/qemu/roms/u-boot/post/board/lwmon5/dsp.c b/qemu/roms/u-boot/post/board/lwmon5/dsp.c new file mode 100644 index 000000000..2f55f01ce --- /dev/null +++ b/qemu/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 */