/******************************************************************************* NAME $RCSfile: memLib.c,v $ SUMMARY Memory Diagnostics for Crystal Beach DMA units VERSION $Revision: 1.7 $ UPDATE DATE $Date: 2010/04/28 06:22:52 $ PROGRAMMER $Author: lecter $ Copyright 2009 LSI Corporation. All Rights Reserved. DESCRIPTION: Contains the diagnostic functions for the register test and the interrupt test. REFERENCE: *******************************************************************************/ #include /* Needed by all modules */ #include /* Needed for KERN_INFO */ #include #include "memsize.h" #include "memtest.h" int init_module(void) { //mdc cmd; memGetMemConfig(); memSetDiagStartAddr(0); //printk(KERN_INFO "Hello world 1. mem: %Ld MB , MEM_RAM_IOREMAP_MAX_SIZE 0x%x\n", (u64)((num_physpages << PAGE_SHIFT) >> 20), MEM_RAM_IOREMAP_MAX_SIZE); //memByteEnableTest(0); // printk("[memMarchCTest] starting \n"); // //memMarchCTest(0, 0, 6); //memMarchCTest(0, 0, 1); // printk("[memMarchCTest] end 1\r"); // printk("[memMarchCTest] end 2\r"); // printk("[memMarchCTest] end 3\r"); // printk("[memMarchCTest] end 4\r"); // printk("[memMarchCTest] end 5\r"); // printk("[memMarchCTest] end x\n"); //memWordPatternsTest(0, 0, 6); //memPRandPatternsTest(0, 0, 6); // printk("=========================================\n"); // printk("=========================================\n"); // //marco_test(0); // // // //printk("== memDataLinesTest(0) ==================\n"); // //memDataLinesTest(0); // printk("== memAddressLinesTest(0,0) =============\n"); // memAddressLinesTest(0,0); // memDataLinesTest(0); // memAddressLinesTest(0,0); // memByteEnableTest(0); // memMarchCTest(0,0,1); // memWordPatternsTest(0,0,6); // memPRandPatternsTest(0,0,6); // memWordPatternsTest(0,0,6); //memByteEnableTest(0); // cmd.forward=-1; // cmd.verify_pattern=NULL; // cmd.write_pattern=0x99112288; // mem_region(cmd, 0, 0); // printk("== MEM Checking & Write === \n"); // cmd.forward=1; // cmd.verify_pattern=0x99112288; // cmd.write_pattern=0x88223344; // mem_region(cmd, 0, 0); //cmd.forward=1; //cmd.verify_pattern=0x00223344; //cmd.write_pattern=0x99112288; //mem_region(cmd, 0, 0); // printk("== MEM Checking =========== \n"); // cmd.forward=1; // cmd.verify_pattern=0x00223344; // cmd.write_pattern=NULL; // mem_region(cmd, 0, 0); // // printk("= memAddressLinesTest(0,0) =========="); // memAddressLinesTest(0,0); // printk("= memDataLinesTest(0) ==============="); // memDataLinesTest(0); /* * A non 0 return means init_module failed; module can't be loaded. */ return 0; } void cleanup_module(void) { printk(KERN_INFO "Goodbye world 1.\n"); } MODULE_AUTHOR( "shawn.wang@netapp.com" ); MODULE_DESCRIPTION( "NetApp Memory Diag Code" ); MODULE_LICENSE( "GPL" ); MODULE_VERSION( "0.1" );