示例#1
0
int ddrinit(void)
{
	printf("Initializing DDR SDRAM...\n");
	
	init_sequence();
	dfii_control_write(DFII_CONTROL_SEL|DFII_CONTROL_CKE);
	if(!memtest())
		return 0;
	
	return 1;
}
示例#2
0
文件: sdram.c 项目: benyjsun/misoc
int sdrinit(void)
{
	printf("Initializing SDRAM...\n");
	
	init_sequence();
#ifdef DDRPHY_BASE
	if(!sdrlevel())
		return 0;
#endif
	dfii_control_write(DFII_CONTROL_SEL);
	if(!memtest())
		return 0;
	
	return 1;
}
示例#3
0
static void init_sequence(void)
{
	int i;
	
	/* Bring CKE high */
	dfii_pi0_address_write(0x0000);
	dfii_pi0_baddress_write(0);
	dfii_control_write(DFII_CONTROL_CKE);
	
	/* Precharge All */
	dfii_pi0_address_write(0x0400);
	command_p0(DFII_COMMAND_RAS|DFII_COMMAND_WE|DFII_COMMAND_CS);
	
	/* Load Extended Mode Register */
	dfii_pi0_baddress_write(1);
	dfii_pi0_address_write(0x0000);
	command_p0(DFII_COMMAND_RAS|DFII_COMMAND_CAS|DFII_COMMAND_WE|DFII_COMMAND_CS);
	dfii_pi0_baddress_write(0);
	
	/* Load Mode Register */
	dfii_pi0_address_write(0x0132); /* Reset DLL, CL=3, BL=4 */
	command_p0(DFII_COMMAND_RAS|DFII_COMMAND_CAS|DFII_COMMAND_WE|DFII_COMMAND_CS);
	cdelay(200);
	
	/* Precharge All */
	dfii_pi0_address_write(0x0400);
	command_p0(DFII_COMMAND_RAS|DFII_COMMAND_WE|DFII_COMMAND_CS);
	
	/* 2x Auto Refresh */
	for(i=0;i<2;i++) {
		dfii_pi0_address_write(0);
		command_p0(DFII_COMMAND_RAS|DFII_COMMAND_CAS|DFII_COMMAND_CS);
		cdelay(4);
	}
	
	/* Load Mode Register */
	dfii_pi0_address_write(0x0032); /* CL=3, BL=4 */
	command_p0(DFII_COMMAND_RAS|DFII_COMMAND_CAS|DFII_COMMAND_WE|DFII_COMMAND_CS);
	cdelay(200);
}
示例#4
0
void ddrhw(void)
{
	dfii_control_write(DFII_CONTROL_SEL|DFII_CONTROL_CKE);
	printf("DDR now under hardware control\n");
}
示例#5
0
void ddrsw(void)
{
	dfii_control_write(DFII_CONTROL_CKE);
	printf("DDR now under software control\n");
}
示例#6
0
文件: sdram.c 项目: benyjsun/misoc
void sdrhw(void)
{
	dfii_control_write(DFII_CONTROL_SEL);
	printf("SDRAM now under hardware control\n");
}
示例#7
0
文件: sdram.c 项目: benyjsun/misoc
void sdrsw(void)
{
	dfii_control_write(DFII_CONTROL_CKE|DFII_CONTROL_ODT|DFII_CONTROL_RESET_N);
	printf("SDRAM now under software control\n");
}