/****************************************************************** * Function: TestRam * * Purpose: Performs a full-test on the RAM specified. The tests * run are: * - MemTestDataBus * - MemTestAddressBus * - MemTest8_16BitAccess * - MemTestDevice * ******************************************************************/ static int TestRam(void) { int memory_base, memory_end, memory_size; int ret_code = 0x0; /* Find out what range of memory we are testing */ memory_base = SDRAM_BASE; memory_end = SDRAM_BASE + SDRAM_SPAN - 1; memory_size = (memory_end - memory_base); printf("\n"); printf("Testing RAM from 0x%X to 0x%X\n", memory_base, (memory_base + memory_size)); /* Test Data Bus. */ ret_code = MemTestDataBus(memory_base); if (ret_code) printf(" -Data bus test failed at bit 0x%X", (int)ret_code); else printf(" -Data bus test passed\n"); /* Test Address Bus. */ if (!ret_code) { ret_code = MemTestAddressBus(memory_base, memory_size); if (ret_code) printf(" -Address bus test failed at address 0x%X", (int)ret_code); else printf(" -Address bus test passed\n"); } /* Test byte and half-word access. */ if (!ret_code) { ret_code = MemTest8_16BitAccess(memory_base); if (ret_code) printf(" -Byte and half-word access test failed at address 0x%X", (int)ret_code); else printf(" -Byte and half-word access test passed\n"); } /* Test that each bit in the device can store both 1 and 0. */ if (!ret_code) { printf(" -Testing each bit in memory device."); ret_code = MemTestDevice(memory_base, memory_size); if (ret_code) printf(" failed at address 0x%X", (int)ret_code); else printf(" passed\n"); } if (!ret_code) { printf("Memory at 0x%X Okay\n", memory_base); return 0; } else { return -1; } }
/****************************************************************** * Function: TestRam * * Purpose: Performs a full-test on the RAM specified. The tests * run are: * - MemTestDataBus * - MemTestAddressBus * - MemTest8_16BitAccess * - MemTestDevice * - MemDMATest * ******************************************************************/ static void TestRam(void) { int memory_base, memory_end, memory_size; int ret_code = 0x0; /* Find out what range of memory we are testing */ MemGetAddressRange(&memory_base, &memory_end); memory_size = (memory_end - memory_base); printf("\n"); printf("Testing RAM from 0x%X to 0x%X\n", memory_base, (memory_base + memory_size)); /* Test Data Bus. */ ret_code = MemTestDataBus(memory_base); if (ret_code) printf(" -Data bus test failed at bit 0x%X", (int)ret_code); else printf(" -Data bus test passed\n"); /* Test Address Bus. */ if (!ret_code) { ret_code = MemTestAddressBus(memory_base, memory_size); if (ret_code) printf(" -Address bus test failed at address 0x%X", (int)ret_code); else printf(" -Address bus test passed\n"); } /* Test byte and half-word access. */ if (!ret_code) { ret_code = MemTest8_16BitAccess(memory_base); if (ret_code) printf(" -Byte and half-word access test failed at address 0x%X", (int)ret_code); else printf(" -Byte and half-word access test passed\n"); } /* Test that each bit in the device can store both 1 and 0. */ if (!ret_code) { printf(" -Testing each bit in memory device."); ret_code = MemTestDevice(memory_base, memory_size); if (ret_code) printf(" failed at address 0x%X", (int)ret_code); else printf(" passed\n"); } /* Test DMA access to the RAM if DMA exists */ #ifdef DMA_NAME if (!ret_code) { printf(" -Testing memory using DMA."); ret_code = MemDMATest(memory_base, memory_size); if (ret_code) printf(" failed at address 0x%X", (int)ret_code); else printf(" passed\n"); } #endif /* DMA_NAME */ if (!ret_code) printf("Memory at 0x%X Okay\n", memory_base); }