From f943092bb5a3aae1bfda08e2ffbe927d048e32be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Boczar?= Date: Mon, 30 Aug 2021 09:28:17 +0200 Subject: [PATCH] soc/software/liblitedram: fix max error count computation READ_CHECK_TEST_PATTERN_MAX_ERRORS was being computed incorrectly which could result in integer underflows when computing core via (max_errors - errors). This could happen e.g. when using DFIRateConverter, which modifies DFII_PIX_DATA_BYTES. Now we use DFII_PIX_DATA_BYTES in the equation so this should not happen. --- litex/soc/software/liblitedram/sdram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/litex/soc/software/liblitedram/sdram.c b/litex/soc/software/liblitedram/sdram.c index 49ae2f38b..2f6821393 100644 --- a/litex/soc/software/liblitedram/sdram.c +++ b/litex/soc/software/liblitedram/sdram.c @@ -300,7 +300,7 @@ static void print_scan_errors(unsigned int errors) { #endif } -#define READ_CHECK_TEST_PATTERN_MAX_ERRORS (8*SDRAM_PHY_PHASES*SDRAM_PHY_XDR) +#define READ_CHECK_TEST_PATTERN_MAX_ERRORS (8*SDRAM_PHY_PHASES*DFII_PIX_DATA_BYTES/SDRAM_PHY_MODULES) static unsigned int sdram_write_read_check_test_pattern(int module, unsigned int seed) { int p, i;