⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eb+mcf-ev123.c

📁 Uboot源码,非常通用的bootloader.适用于各种平台的Linux系统引导.
💻 C
字号:
/* * (C) Copyright 2005 * BuS Elektronik GmbH & Co.KG <esw@bus-elektonik.de> * * (C) Copyright 2000-2003 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */#include <common.h>#include <command.h>#include "asm/m5282.h"#include "VCxK.h"int checkboard (void){	puts ("Board: MCF-EV1 + MCF-EV23 (BuS Elektronik GmbH & Co. KG)\n");#if (TEXT_BASE ==  CFG_INT_FLASH_BASE)	puts ("       Boot from Internal FLASH\n");#endif	return 0;}long int initdram (int board_type){	int size,i;	size = 0;	MCFSDRAMC_DCR =	MCFSDRAMC_DCR_RTIM_6			| MCFSDRAMC_DCR_RC((15 * CFG_CLK)>>4);	#ifdef CFG_SDRAM_BASE0		MCFSDRAMC_DACR0 =	MCFSDRAMC_DACR_BASE(CFG_SDRAM_BASE0)					| MCFSDRAMC_DACR_CASL(1) 					| MCFSDRAMC_DACR_CBM(3)					| MCFSDRAMC_DACR_PS_16);		MCFSDRAMC_DMR0 =	MCFSDRAMC_DMR_BAM_16M					| MCFSDRAMC_DMR_V;		MCFSDRAMC_DACR0 |= 	MCFSDRAMC_DACR_IP;		*(unsigned short *)(CFG_SDRAM_BASE0) = 0xA5A5;		MCFSDRAMC_DACR0 |=	MCFSDRAMC_DACR_RE;		for (i=0; i < 2000; i++)			asm(" nop");		mbar_writeLong(MCFSDRAMC_DACR0, mbar_readLong(MCFSDRAMC_DACR0)								    | MCFSDRAMC_DACR_IMRS);		*(unsigned int *)(CFG_SDRAM_BASE0 + 0x220) = 0xA5A5;		size += CFG_SDRAM_SIZE * 1024 * 1024;	#endif	#ifdef CFG_SDRAM_BASE1		MCFSDRAMC_DACR1 =	MCFSDRAMC_DACR_BASE(CFG_SDRAM_BASE1)					| MCFSDRAMC_DACR_CASL(1) 					| MCFSDRAMC_DACR_CBM(3)					| MCFSDRAMC_DACR_PS_16;		MCFSDRAMC_DMR1 = 	MCFSDRAMC_DMR_BAM_16M					| MCFSDRAMC_DMR_V;		MCFSDRAMC_DACR1 |=	MCFSDRAMC_DACR_IP;		*(unsigned short *)(CFG_SDRAM_BASE1) = 0xA5A5;		MCFSDRAMC_DACR1 |=	MCFSDRAMC_DACR_RE;		for (i=0; i < 2000; i++)			asm(" nop");		MCFSDRAMC_DACR1 |= 	MCFSDRAMC_DACR_IMRS;		*(unsigned int *)(CFG_SDRAM_BASE1 + 0x220) = 0xA5A5;		size += CFG_SDRAM_SIZE1 * 1024 * 1024;	#endif	return size;}#if defined(CFG_DRAM_TEST)int testdram (void){	uint *pstart = (uint *) CFG_MEMTEST_START;	uint *pend = (uint *) CFG_MEMTEST_END;	uint *p;	printf("SDRAM test phase 1:\n");	for (p = pstart; p < pend; p++)		*p = 0xaaaaaaaa;	for (p = pstart; p < pend; p++) {		if (*p != 0xaaaaaaaa) {			printf ("SDRAM test fails at: %08x\n", (uint) p);			return 1;		}	}	printf("SDRAM test phase 2:\n");	for (p = pstart; p < pend; p++)		*p = 0x55555555;	for (p = pstart; p < pend; p++) {		if (*p != 0x55555555) {			printf ("SDRAM test fails at: %08x\n", (uint) p);			return 1;		}	}	printf("SDRAM test passed.\n");	return 0;}#endifint misc_init_r(void){	init_vcxk();	return 1;}/*---------------------------------------------------------------------------*/int do_vcimage (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){	int rcode = 0;	ulong source;	switch (argc) {	case 2:		source = simple_strtoul(argv[1],NULL,16);		vcxk_loadimage(source);		rcode = 0;		break;	default:		printf ("Usage:\n%s\n", cmdtp->usage);		rcode = 1;		break;	}	return rcode;}/***************************************************/U_BOOT_CMD(	vcimage,	2,	0,	do_vcimage,	"vcimage - loads an image to Display\n",	"vcimage addr\n");/* EOF EB+MCF-EV123c */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -