extern int *system_reset(); extern int cache_test_routine(); #include "dinkusr.h" main() { int *answer; set_up_transfer_base(); printf("For more information, read the l1test.readme file\n\n"); printf("L1 cache test\n"); printf("the answers are placed in 0x9a000 though 0x9a020\n"); printf("0x010101010 is pass and 0x11111111 is fail\n"); printf("\nThis test is composed of six phases:\n"); printf(" Write Through Mode\n"); printf(" Phase 1: cache_test_1: store neg pattern and read it back\n"); printf(" Phase 2: cache_test_2: store zero pattern\n"); printf(" turn off cache\n"); printf(" store neg pattern\n"); printf(" turn on the cache\n"); printf(" read the data expecting the neg pattern\n"); printf(" Phase 3: cache_test_3: store zero pattern\n"); printf(" read zero pattern\n"); printf(" store neg pattern\n"); printf(" invalidate the cache\n"); printf(" read back neg pattern\n"); printf(" Write back Mode\n"); printf(" Phase 4: cache_test_1: same as Phase 1 only with write back\n"); printf(" Phase 5: cache_test_2: same as Phase 2 only with write back\n"); printf(" Phase 6: cache_test_4: store zero pattern\n"); printf(" flush the cache\n"); printf(" read zero pattern\n"); printf(" store neg pattern\n"); printf(" invalidate the cache\n"); printf(" read the zero pattern\n"); printf("\n"); answer=system_reset(); printf("Write through test:\n"); printf(" cache_test_1 result %s\n", (*answer-0x01010101 ? "PASS":"FAIL") ); answer+=1; printf(" cache_test_2 result %s\n", (*answer-0x01010101 ? "PASS":"FAIL") ); answer+=1; printf(" cache_test_3 result %s\n", (*answer-0x01010101 ? "PASS":"FAIL") ); answer+=2; printf("Write back test:\n"); printf(" cache_test_1 result %s\n", (*answer-0x01010101 ? "PASS":"FAIL") ); answer+=1; printf(" cache_test_2 result %s\n", (*answer-0x01010101 ? "PASS":"FAIL") ); answer+=1; printf(" cache_test_4 result %s\n", (*answer-0x01010101 ? "PASS":"FAIL") ); printf("Done\n"); return 0; }