Exemplo n.º 1
0
void boot_kernel(void)
{
	void (*theKernel)(int zero, int arch, unsigned int params);

	/* 将Linux内核读取到DDR中 */
	printf("\n\rRead kernel from Nand Flash\n\r");
	nand_read(0x21000000, 0x400000, 0x800000);
	/* 设置启动参数 */

	printf("Set boot params\n\r");
	init_taglist();
	/* 跳转执行*/
	printf("Boot kernel...\n\r");

	theKernel = (void (*)(int, int, unsigned int))0x21000040;/* Linux 内核入口地址 */
	theKernel(0, 3466, 0x22000000); /* 第一个参数是0,第二个参数是机器码,第三个参数是启动参数地址 */
}
Exemplo n.º 2
0
int Main(void)
{
	char *cmd[8];
	int cmdcnt;
	char buff[32];

	init();
	start();
	puts(help[0]);
	init_taglist(0x40000000);
	while(1)
	{
		puts("IMX233# ");
		cmdcnt = cmdline(cmd);
		if (cmdcnt == 1 && strcmp(cmd[0], "h") == 0)
		{
			int i;

			for (i = 0; i < 3; i++)
			{
				puts("\r\n");
				puts(help[i]);
			}
		}
		if (cmdcnt == 2 && strcmp(cmd[0], "get") == 0)
		{	
			cmd_get(cmd[1]);
		}
		if (cmdcnt == 2 && strcmp(cmd[0], "go") == 0)
		{
			cmd_go(cmd[1]);
		}
		if (cmdcnt == 1 && strcmp(cmd[0], "ddr") == 0)
		{
			ddrtest();
		}
		putchr('\n');
		putchr('\r');

	}

	return 0;
}
Exemplo n.º 3
0
void down_kernel(void)
{
	void (*theKernel)(int zero, int arch, unsigned int params);

	printf("download linux kernel through ymodem\n\r");

	char *addr = (char *)0x21000000;

	ymodem_recv(addr);

	/* 设置启动参数 */
	printf("Set boot params\n\r");
	init_taglist();
	/* 跳转执行*/
	printf("Boot kernel...\n\r");

	theKernel = (void (*)(int, int, unsigned int))0x21000040;/* Linux 内核入口地址 */
	theKernel(0, 3466, 0x22000000); /* 第一个参数是0,第二个参数是机器码,第三个参数是启动参数地址 */
		
}