stm32mp1: ram: update loop management in infinite test
Reduce verbosity of the infinite tests to avoid CubeMX issue. test and display loop by 1024*1024 accesses: read or write. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
This commit is contained in:

committed by
Patrice Chotard

parent
4b0496fe79
commit
37f41ae900
@@ -1241,6 +1241,7 @@ static enum test_result test_read(struct stm32mp1_ddrctl *ctl,
|
|||||||
u32 *addr;
|
u32 *addr;
|
||||||
u32 data;
|
u32 data;
|
||||||
u32 loop = 0;
|
u32 loop = 0;
|
||||||
|
int i, size = 1024 * 1024;
|
||||||
bool random = false;
|
bool random = false;
|
||||||
|
|
||||||
if (get_addr(string, argc, argv, 0, (u32 *)&addr))
|
if (get_addr(string, argc, argv, 0, (u32 *)&addr))
|
||||||
@@ -1254,14 +1255,19 @@ static enum test_result test_read(struct stm32mp1_ddrctl *ctl,
|
|||||||
printf("running at 0x%08x\n", (u32)addr);
|
printf("running at 0x%08x\n", (u32)addr);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
for (i = 0; i < size; i++) {
|
||||||
if (random)
|
if (random)
|
||||||
addr = (u32 *)(STM32_DDR_BASE +
|
addr = (u32 *)(STM32_DDR_BASE +
|
||||||
(rand() & (STM32_DDR_SIZE - 1) & ~0x3));
|
(rand() & (STM32_DDR_SIZE - 1) & ~0x3));
|
||||||
data = readl(addr);
|
data = readl(addr);
|
||||||
if (test_loop_end(&loop, 0, 1000))
|
}
|
||||||
|
if (test_loop_end(&loop, 0, 1))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sprintf(string, "0x%x: %x", (u32)addr, data);
|
if (random)
|
||||||
|
sprintf(string, "%d loops random", loop);
|
||||||
|
else
|
||||||
|
sprintf(string, "%d loops at 0x%x: %x", loop, (u32)addr, data);
|
||||||
|
|
||||||
return TEST_PASSED;
|
return TEST_PASSED;
|
||||||
}
|
}
|
||||||
@@ -1280,6 +1286,7 @@ static enum test_result test_write(struct stm32mp1_ddrctl *ctl,
|
|||||||
u32 *addr;
|
u32 *addr;
|
||||||
u32 data = 0xA5A5AA55;
|
u32 data = 0xA5A5AA55;
|
||||||
u32 loop = 0;
|
u32 loop = 0;
|
||||||
|
int i, size = 1024 * 1024;
|
||||||
bool random = false;
|
bool random = false;
|
||||||
|
|
||||||
if (get_addr(string, argc, argv, 0, (u32 *)&addr))
|
if (get_addr(string, argc, argv, 0, (u32 *)&addr))
|
||||||
@@ -1293,16 +1300,21 @@ static enum test_result test_write(struct stm32mp1_ddrctl *ctl,
|
|||||||
printf("running at 0x%08x\n", (u32)addr);
|
printf("running at 0x%08x\n", (u32)addr);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
for (i = 0; i < size; i++) {
|
||||||
if (random) {
|
if (random) {
|
||||||
addr = (u32 *)(STM32_DDR_BASE +
|
addr = (u32 *)(STM32_DDR_BASE +
|
||||||
(rand() & (STM32_DDR_SIZE - 1) & ~0x3));
|
(rand() & (STM32_DDR_SIZE - 1) & ~0x3));
|
||||||
data = rand();
|
data = rand();
|
||||||
}
|
}
|
||||||
writel(data, addr);
|
writel(data, addr);
|
||||||
if (test_loop_end(&loop, 0, 1000))
|
}
|
||||||
|
if (test_loop_end(&loop, 0, 1))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sprintf(string, "0x%x: %x", (u32)addr, data);
|
if (random)
|
||||||
|
sprintf(string, "%d loops random", loop);
|
||||||
|
else
|
||||||
|
sprintf(string, "%d loops at 0x%x: %x", loop, (u32)addr, data);
|
||||||
|
|
||||||
return TEST_PASSED;
|
return TEST_PASSED;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user