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

📄 sysinit.c

📁 bootloader
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -