git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1225 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
		
			
				
	
	
		
			40 lines
		
	
	
		
			842 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			842 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include "linux_syscall.h"
 | 
						|
#include "linux_console.h"
 | 
						|
 | 
						|
struct mem_param {
 | 
						|
	unsigned char cycle_time;
 | 
						|
	unsigned char divisor;
 | 
						|
	unsigned char tRC;
 | 
						|
	unsigned char tRFC;
 | 
						|
	unsigned dch_memclk;
 | 
						|
	unsigned short dch_tref4k, dch_tref8k;
 | 
						|
	unsigned char dtl_twr;
 | 
						|
	char name[9];
 | 
						|
};
 | 
						|
 | 
						|
static void test(void)
 | 
						|
{
 | 
						|
	static const struct mem_param param0 = {
 | 
						|
		.name = "166Mhz\r\n",
 | 
						|
		.cycle_time = 0x60,
 | 
						|
		.divisor = (6<<1),
 | 
						|
		.tRC = 0x3C,
 | 
						|
		.tRFC = 0x48,
 | 
						|
		.dch_memclk = 5 << 20,
 | 
						|
		.dch_tref4k = 0x02,
 | 
						|
		.dch_tref8k = 0x0A,
 | 
						|
		.dtl_twr = 3,
 | 
						|
	};
 | 
						|
	int value;
 | 
						|
	unsigned clocks;
 | 
						|
	const struct mem_param *param;
 | 
						|
	param = ¶m0;
 | 
						|
	value = 0x48;
 | 
						|
	/* This used to generate 32bit loads instead of 8 bit loads */
 | 
						|
	clocks = (value + (param->divisor << 1) - 1)/(param->divisor << 1);
 | 
						|
	print_debug("clocks: ");
 | 
						|
	print_debug_hex32(clocks);
 | 
						|
	print_debug("\r\n");
 | 
						|
	_exit(0);
 | 
						|
}
 |