e132_xs.c

来自「linux下从网卡远程启动」· C语言 代码 · 共 71 行

C
71
字号
/* * Copyright 2003 Yannis Mitsos and George Thanos  * {gmitsos@gthanos}@telecom.ntua.gr * Released under GPL2, see the file COPYING in the top directory * */#include "hooks.h"#include "io.h"#include "etherboot.h"#include "e132_xs_board.h"unsigned int io_periph[NR_CS] = {[0 ... NR_CS-1] = 0 };/*void arch_main(struct Elf_Bhdr *ptr __unused){}*/void init_peripherals(void){	int i;	for(i=0; i< NR_CS; i++){		io_periph[i]= (SLOW_IO_ACCESS | i << 22);	}	io_periph[ETHERNET_CS] = (io_periph[ETHERNET_CS] | 1 << IOWait);	asm volatile("			ori SR, 0x20			movi FCR, 0x66ffFFFF"			:			:);}struct meminfo meminfo;void get_memsizes(void){/* We initialize the meminfo structure  * according to our development board's specs * We do not have a way to automatically probe the  * memspace instead we initialize it manually */	meminfo.basememsize = BASEMEM;	meminfo.memsize = 	SDRAM_SIZE;	meminfo.map_count = NR_MEMORY_REGNS;	meminfo.map[0].addr = SDRAM_BASEMEM;	meminfo.map[0].size = SDRAM_SIZE;	meminfo.map[0].type = E820_RAM;	meminfo.map[1].addr = SRAM_BASEMEM;	meminfo.map[1].size = SRAM_SIZE;	meminfo.map[1].type = E820_RAM;	meminfo.map[2].addr = IRAM_BASEMEM;	meminfo.map[2].size = IRAM_SIZE;	meminfo.map[2].type = E820_RAM;}int mach_boot(register unsigned long entry_point){		asm volatile(					 "mov PC, %0"					: /* no outputs */					: "l" (entry_point) );		return 0; /* We should never reach this point ! */}

⌨️ 快捷键说明

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