OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [sw/] [tests/] [sdram/] [sim/] [sdram-cols.c] - Blame information for rev 426

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 349 julius
/*
2
 * SDRAM column test
3
 *
4
 * Tests accessing beginning and middle of column. Should detect any mismatch
5
 * between SDRAM row size configuration.
6
 *
7
*/
8
 
9 426 julius
#include "cpu-utils.h"
10 349 julius
#include "board.h"
11
#include "sdram.h"
12
 
13
// Start some rows after the program/data
14
 
15
#define STACK_AT (128*1024)
16
#define START_ROW  ((STACK_AT/SDRAM_ROW_SIZE)+1)
17
 
18
 
19
// For a short test, set the following to 1
20
#define SHORT_TEST 0
21
 
22
#if SHORT_TEST==1
23
# define SDRAM_NUM_ROWS (START_ROW + 512)
24
#else
25
# define SDRAM_NUM_ROWS (SDRAM_NUM_ROWS_PER_BANK * SDRAM_NUM_BANKS)
26
#endif
27
 
28
#define SDRAM_ROW_BEGINNING 0
29
#define SDRAM_ROW_MIDDLE (SDRAM_ROW_SIZE/2)
30
 
31
int main()
32
{
33
 
34
  int i; // Skip first 64KB, code/stack resides there
35
  for(i=START_ROW;i<(SDRAM_NUM_ROWS);i++)
36
    {
37
      REG32((i*(SDRAM_ROW_SIZE))+SDRAM_ROW_BEGINNING) = i;
38
      REG32((i*(SDRAM_ROW_SIZE))+SDRAM_ROW_MIDDLE) = ~i;
39
    }
40
 
41
  int read_result = 0;
42
  int read_result_inv = 0;
43
 
44
  for(i=START_ROW;i<(SDRAM_NUM_ROWS);i++)
45
    {
46
      read_result = REG32((i*(SDRAM_ROW_SIZE))+SDRAM_ROW_BEGINNING);
47
      read_result_inv = REG32((i*(SDRAM_ROW_SIZE))+SDRAM_ROW_MIDDLE);
48
      if ((read_result != i) || (read_result_inv != ~i))
49
        {
50
          report(0xbaaaaaad);
51
          report(i);
52
          report(read_result);
53
          exit(0xbaaaaaad);
54
        }
55
    }
56
  exit(0x8000000d);
57
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.