sysinit.c

来自「Compex BIOS for SAMSUNG S3C4510B v1.20-l」· C语言 代码 · 共 68 行

C
68
字号
#include "board.h"#include "utils.h"#include "bios.h"/* * Caculate system registers */int sys_init(struct system_table_struct *system_table, unsigned long rom_base, unsigned dram_base){	struct sys_regs_struct sys_regs;	unsigned long base;	unsigned long r;	int i;	sys_regs.extdbwth = 0;	for (i = 0; i < 6; i++)		sys_regs.extdbwth |= (system_table->rom_table[i].width) << (i * 2);	for (i = 0; i < 4; i++)		sys_regs.extdbwth |= (system_table->dram_table[i].width) << (i * 2 + 12);	for (i = 0; i < 4; i++)		sys_regs.extdbwth |= (system_table->ext_table[i].width) << (i * 2 + 20);	base = rom_base;	for (i = 0; i < 6; i++) {		sys_regs.romcon[i] = (system_table->rom_table[i].flag & ~0x3ffffc00) |			(((base + system_table->rom_table[i].size) & 0x03ff0000) << 4) |			((base & 0x03ff0000) >> 6);		base += system_table->rom_table[i].size;	}	base = dram_base;	for (i = 0; i < 4; i++) {		sys_regs.dramcon[i] = (system_table->dram_table[i].flag & ~0x3ffffc00) |			(((base + system_table->dram_table[i].size) & 0x03ff0000) << 4) |			((base & 0x03ff0000) >> 6);		base += system_table->dram_table[i].size;	}	sys_regs.refextcon = system_table->dram_table[0].refresh;	outl(sys_regs.extdbwth, EXTDBWTH);	outl(sys_regs.romcon[0], ROMCON0);	outl(sys_regs.romcon[1], ROMCON1);	outl(sys_regs.romcon[2], ROMCON2);	outl(sys_regs.romcon[3], ROMCON3);	outl(sys_regs.romcon[4], ROMCON4);	outl(sys_regs.romcon[5], ROMCON5);	outl(sys_regs.dramcon[0], DRAMCON0);	outl(sys_regs.dramcon[1], DRAMCON1);	outl(sys_regs.dramcon[2], DRAMCON2);	outl(sys_regs.dramcon[3], DRAMCON3);	outl(sys_regs.refextcon, REFEXTCON);	r = (system_table->ext_table[0].flag & 0xffff) |		((system_table->ext_table[1].flag & 0xffff) << 16);	outl(r, EXTACON0);	r = (system_table->ext_table[2].flag & 0xffff) |		((system_table->ext_table[3].flag & 0xffff) << 16);	outl(r, EXTACON1);	outl(system_table->iop.iopmod, IOPMOD);	outl(system_table->iop.iopcon, IOPCON);	outl(system_table->iop.iopdata, IOPDATA);	return 0;}

⌨️ 快捷键说明

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