亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c65066.c

?? mips架構(gòu)的bootloader,99左右的版本 但源代碼現(xiàn)在沒人更新了
?? C
字號:
/************************************************************* * File: lib/c65066.c * Purpose: Init code for 65066 DCAM-111 * Author: Phil Bunce (pjb@carmel.com) * Revision History: *	990212	Created from c90084.c *//* This version is for the hw emulation model. So it uses the old DCAM-103 * type memory controller rather than the fbus controller that the real chip * will use. */#ifndef L65066#define L65066#endif#include "mips.h"#include <termio.h>#include <terms.h>#include <pmon.h>#define inw(a)		(*((volatile Ulong *)(a)))#define outw(a,v)	(*((volatile Ulong *)(a))=(v))#define outh(a,v)	(*((volatile Ushort *)(a))=(v))/* 4102 cpu 32-bit timer */#define TMRI	(M_TMR4001+O_TIC1)  /* initial value */#define TMRC	(M_TMR4001+O_TCC1)  /* current value */#define TMODE	(M_TMR4001+O_TMODE) /* control */#define TSTAT	(M_TMR4001+O_TSTAT) /* status */static RegSpec scr1[] = {	{1,31,"MMU",2,0,0},	{1,30,"WBEN",2,0,0},	{1,29,"DSNPEN",2,0,0},	{1,28,"ISNPEN",2,0,0},	{1,19,"CPC3EN",2,0,0},	{1,18,"CPC2EN",2,0,0},	{1,17,"CPC1EN",2,0,0},	{1,16,"CPC0EN",2,0,0},	{1,13,"DBERR",2,0,0},	{3,10,"PGSZ",10,0,0},	{2,8,"CMODE",10,0,0},	{1,7,"RDPRI",2,0,0},	{2,5,"DSIZE",10,0,0},	{1,4,"DCEN",2,0,0},	{2,2,"ISIZE",10,0,0},	{1,1,"IS1",2,0,0},	{1,0,"ICEN",2,0,0},	{0}};static RegSpec scr2[] = {	{1,21,"TMRIE1",2,0,0},	{1,20,"TMRIE0",2,0,0},	{1,19,"MRR",2,0,0},	{1,17,"4101C",2,0,0},	{1,16,"MDUSATE",2,0,0},	{1,15,"MDUSATI",2,0,0},	{1,14,"FDBSTOP",2,0,0},	{4,7,"CLKDB",2,0,0},	{2,5,"CLKDD",2,0,0},	{1,4,"CLKSEL",2,0,0},	{1,3,"CLKPLLE",2,0,0},	{1,2,"CLKST",2,0,0},	{2,0,"CLKDC",2,0,0},	{0}};static RegSpec TmrMode4102[] = {	{1,13,"D1",2,0,0},	{1,12,"S1",2,0,0},	{1,11,"I1",2,0,0},	{1,10,"M1",2,0,0},	{1,9,"P1",2,0,0},	{1,8,"E1",2,0,0},	{1,5,"D0",2,0,0},	{1,4,"S0",2,0,0},	{1,3,"I0",2,0,0},	{1,2,"M0",2,0,0},	{1,1,"P0",2,0,0},	{1,0,"E0",2,0,0},	{0}};static RegSpec TmrStat4102[] = {	{1,3,"IN1",2,0,0},	{1,2,"IE1",2,0,0},	{1,1,"IN0",2,0,0},	{1,0,"IE0",2,0,0},	{0}};static RegRec reglist[] = {	{mXpc,0,"PC","pc",14,(F_CPU|F_MIPS)},	{mXgpr,0,"HI","HI",32,(F_CPU|F_MIPS)},	{mXgpr,0,"LO","LO",33,(F_CPU|F_MIPS)},	{mXc0,mips_sr_def,"C0_SR","SR",12,(F_CP0|F_MIPS)},	{mXc0,mips_cause_def,"C0_CAUSE","CAUSE",13,(F_CP0|F_MIPS)},	{mXc0,0,"C0_EPC","EPC",14,(F_CP0|F_MIPS)},	{mXc0,0,"C0_BADVA","BADVA",8,(F_CP0|F_MIPS)},	{mXc0,mips_prid_def,"C0_PRID","PRID",15,(F_CP0|F_RO|F_MIPS)},	{mXmem,scr1,"M_SCR1","SCR1",M_SCR1},	{mXmem,scr2,"M_SCR2","SCR2",M_SCR2},	{mXmem,0,"M_TIC0","TIC0",M_TMR4001+O_TIC0},	{mXmem,0,"M_TCC0","TCC0",M_TMR4001+O_TCC0},	{mXmem,0,"M_TIC1","TIC1",M_TMR4001+O_TIC1},	{mXmem,0,"M_TCC1","TCC1",M_TMR4001+O_TCC1},	{mXmem,TmrStat4102,"M_TSTAT","TSTAT",M_TMR4001+O_TSTAT},	{mXmem,TmrMode4102,"M_TMODE","TMODE",M_TMR4001+O_TMODE},#ifdef USE_FBUS	{mXmem,0,"M_FACFG0","FACFG0",M_FACFG0},	{mXmem,0,"M_FACFG1","FACFG1",M_FACFG1},	{mXmem,0,"M_FACFG2","FACFG2",M_FACFG2},	{mXmem,0,"M_FACFG3","FACFG3",M_FACFG3},	{mXmem,0,"M_FACFG4","FACFG4",M_FACFG4},	{mXmem,0,"M_FACFG5","FACFG5",M_FACFG5},	{mXmem,0,"M_FBUSTA","FBUSTA",M_FBUSTA},	{mXmem,0,"M_FACMP0","FACMP0",M_FACMP0},	{mXmem,0,"M_FACMP1","FACMP1",M_FACMP1},	{mXmem,0,"M_FACMP2","FACMP2",M_FACMP2},	{mXmem,0,"M_FACMP3","FACMP3",M_FACMP3},	{mXmem,0,"M_FACMP4","FACMP4",M_FACMP4},	{mXmem,0,"M_FACMP5","FACMP5",M_FACMP5},	{mXmem,0,"M_FBUSCMP","FBUSCMP",M_FBUSCMP},	{mXmem,0,"M_FBUSAC","FBUSAC",M_FBUSAC},	{mXmem,0,"M_FBUSCFG","FBUSCFG",M_FBUSCFG},	{mXmem,0,"M_FBURST","FBURST",M_FBURST},	{mXmem,0,"M_FSFLASH","FSFLASH",M_FSFLASH},	{mXmem,0,"M_FSDRAM","FSDRAM",M_FSDRAM},	{mXmem,0,"M_FDRAMT","FDRAMT",M_FDRAMT},	{mXmem,0,"M_FSDRAMT","FSDRAMT",M_FSDRAMT},	{mXmem,0,"M_FSDRAM2","FSDRAM2",M_FSDRAM2},	{mXmem,0,"M_FGPCFG","FGPCFG",M_FGPCFG},	{mXmem,0,"M_FGPOUTPUT","FGPOUTPUT",M_FGPOUTPUT},	{mXmem,0,"M_FGPINPUT","FGPINPUT",M_FGPINPUT},#endif	{0}};static char *c0_regs[] = {	"$0",     "$1",  "$2",  "$3",  	"$4",   "$5",  "$6", "$7", 	"C0_BADADDR", "C0_COUNT", "$10",  "$11", 	"C0_SR",      "C0_CAUSE", "C0_EPC",    "C0_PRID",	"C0_CONFIG",  "$17", "$18",    "$19", 	"$20",    "$21",  "$22",       "C0_ROTATE",	"C0_CMASK", "$25", "$26", "$27", 	"$28", "$29", "$30", "$31"	};int cache_cmd400x();extern Optdesc cache_opts400x[];static CmdRec cmds[] = {	{"cache",cache_opts400x,cache_cmd400x},	{0}};#if 0static int measureFreq();#endifextern int dcache_size,icache_size,cache_line_size;static int setbp_target(),brkInstall(),brkRemove();int p90084();int iceport();static struct iceportinfo iceportdat = {0xbfff0200};/**************************************************************  c65066init(type)*/c65066init(type)int type;{Ulong saved_sr;int n,cf,i;switch (type) {	case 1 :		break;	case 2 :		c0regNames = c0_regs;		for (i=0;reglist[i].func;i++) addRegRec(&reglist[i]);		for (i=0;cmds[i].name;i++) addCmdRec(&cmds[i]);		icache_size = 4*1024;		dcache_size = 4*1024;		cache_line_size = 16;		brkInstall_ptr = brkInstall;		brkRemove_ptr = brkRemove;		setbp_target_ptr = setbp_target;		break;	case 3 :  /* hostInit(3) extra memory */		break;	case 4 : /* hostInit(4) nvInfo */#ifdef NVRAM		nvInfo.start = 0xbfc00000;		nvInfo.width = 4; 			nvInfo.gap   = 1; 		nvInfo.nvbase  = 0; #endif		break;	case 5 : /* hostInit(5) adjust refresh rate... */		break;	case 6 : #if 0		/* 970927 If the iceport has no clock (no txrdy) the		"init -c" command won't work. */		if (inw(0xbfff0208)&1)			addDevice((Addr)&iceportdat,0,iceport,1024,B9600);#endif		break;	case 8 :		addDevice((Addr)l0084_sio,0,p90084,1024,DEFBAUD);		addDevice((Addr)l0084_sio,1,p90084,1024,DEFBAUD);		addDevice((Addr)l0084_sio,2,p90084,1024,DEFBAUD);		break;	}}#if 0/**************************************************************  measureFreq()** The scheme I use is to the number of cpu cycles that were* executed while waiting for a fixed time to elapse.* * To wait a fixed time I transmit two nulls at 9600 via the UART.* * To measure the cpu clocks, I use timer1 inside the cpu.* */static measureFreq(){Ulong cpu;static measure_4102();#ifdef CLKFREQreturn CLKFREQ; /* 981107 */#endif/* throw away the 1st measurement */measure_4102();cpu = measure_4102()*10;return ((cpu/109)+17)/100;/* * Add 17  and divide by * 100 for rounding. */}static measure_4102(){Ulong cpu,dummy,tmode;char *p;/* make sure that the tx is completely empty */while (!(inb(LSR_16550)&TEMT_16550)) ;/* start timer at zero */tmode = inw(TMODE)&~TMODE_MASK1;outw(TMODE,tmode); /* stop timer */outw(TMRI,0xffffffff);outw(TMODE,tmode|TMODE_E1);  /* start */while (!(inb(LSR_16550)&THRE_16550)) ;outb(THR_16550,0);while (!(inb(LSR_16550)&THRE_16550)) ;outb(THR_16550,0);/* make sure that the tx is completely empty */while (!(inb(LSR_16550)&TEMT_16550)) ;/* read CPU timer */cpu = 0xffffffff-inw(TMRC);outw(TMODE,tmode); /* stop timer */return(cpu/2); /* div */}#endif/**************************************************************  static int setbp_target(n,type,addr,addr2,value)*       type: 1=bpc 2=bda 3=itemp 4=sstep 5=nonrt*       returns bp number, or -1 on error.*	addr2 and value are only used for BPTYPE_DATA.*	In the case of BPTYPE_DATA the access type (r/w) is encoded*	in the 2nd nibble of 'type';*/static int setbp_target(n,type,addr,addr2,value)int n,type;Ulong addr,addr2,value;{int i,method,atype,code;long mask; /* must be signed */ if (verbose) fprintf(dfp,"setbp_target(%d,%d,%08x,%08x,%08x)\n",		n,type,addr,addr2,value);atype = type>>4;type &= 0xf;code = 0;if (type == BPTYPE_NONRT) {        printf("Warning: This breakpoint requires non real-time execution.\n");        }else if (type == BPTYPE_PC || type == BPTYPE_ITMP || type == BPTYPE_TRACE) {        if (is_writeable_target(addr)) {		if (verbose) fprintf(dfp,"is writeable\n");		method = BRK_METHOD_RAM;		}        else if (IS_K0SEG(addr) && ilockReq400x(addr)) {		if (verbose) fprintf(dfp,"ilock avail\n");		method = BRK_METHOD_ROM;		}        else {                printf("%08x: can't set bpt\n",addr);                return(0-BP_E_ERR);                }        }else if (type == BPTYPE_DATA) {	return(0-BP_E_ERR);	}if (n == -1) {        for (i=0;i<MAX_BPT;i++) if (brkList[i].type == 0) break;        if (i >= MAX_BPT) {                printf("Fatal error: out of bpts\n");                return(0-BP_E_ERR);                }        n = i;        }if (n < 0 || n >= MAX_BPT) {        printf("%d: bad bpt number\n",n);        return(0-BP_E_ERR);        }brkList[n].type = type;brkList[n].addr = addr;brkList[n].method = method;brkList[n].mask = mask;brkList[n].isset = 0;return((code<<16)|n);}/**************************************************************  static int brkInstall(type)*	type=1 install regular+temp bpts*	type=2 install trace bpts*/static int brkInstall(type)int type;{int i,flag;Ulong tag,vmask,addr,cfg;if (verbose) fprintf(dfp,"brkInstall(%d)\n",type);for (i=0;i<MAX_BPT;i++) {	/* first discard the entries we aren't going to handle */	if (brkList[i].type==0) continue;	if (type == 1 && brkList[i].type == BPTYPE_TRACE) continue;	if (type == 2 && brkList[i].type != BPTYPE_TRACE) continue;	addr = brkList[i].addr;	switch (brkList[i].method) {	    case BRK_METHOD_RAM :		if (verbose) fprintf(dfp,"installing ram bpt at %08x\n",addr);		if (addr&1) {			addr &= ~1;			brkList[i].val = read_target(XT_MEM,addr,2);			outh(addr,TINY_BPT_CODE);			}		else {			brkList[i].val = read_target(XT_MEM,addr,4);			outw(addr,BPT_CODE);			}		iflush_needed = 1;		brkList[i].isset = 1;		break;	    case BRK_METHOD_ROM :		if (verbose) fprintf(dfp,"installing rom bpt at %08x\n",addr);		cfg = read_target(XT_MEM,M_CFG4001,4);		if ((cfg&CFG_ISIZEMASK) == CFG_ISIZE_8) { /* 970709 */			/* handle the irefillsz=8 case */			wrrombp4101(addr);			}		else {			vmask = 1<<((addr>>2)&3);			writeLockedBpt400x(addr,vmask);			}		brkList[i].isset = 1;		break;	    default : 		printf("%d: error bad method\n",brkList[i].method);		return(-1);	    }	}}/**************************************************************  static int brkRemove(epc)*	returns type: 0=none 1=bpc 2=bda 3=itemp 4=sstep*/static int brkRemove(epc)Ulong epc;{int i,type;Ulong addr;type = 0;for (i=0;i<MAX_BPT;i++) {	/* first discard the entries we aren't going to handle */	if (brkList[i].type==0) continue;	if (brkList[i].isset==0) continue;	if (epc == brkList[i].addr) type = brkList[i].type;	switch (brkList[i].method) {	    case BRK_METHOD_RAM :		addr = brkList[i].addr;		if (addr&1) outh(addr&~1,brkList[i].val);		else outw(addr,brkList[i].val);		iflush_needed = 1;		break;	    case BRK_METHOD_ROM :		writeCache400x(0,ICACHETAG,brkList[i].addr,0);		break;	    }	if (brkList[i].type == BPTYPE_ITMP) brkList[i].type = 0;	if (brkList[i].type == BPTYPE_TRACE) brkList[i].type = 0;	}return(type);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕第一区二区| 日韩网站在线看片你懂的| 国产精品麻豆欧美日韩ww| 久久99在线观看| 91精品国产色综合久久ai换脸| 亚洲女爱视频在线| www.色精品| 亚洲视频每日更新| 一本到不卡精品视频在线观看| 中文字幕av资源一区| 国产91丝袜在线播放| 久久影院午夜片一区| 精品午夜久久福利影院| 91精品国产91久久综合桃花| 午夜日韩在线电影| 欧美一区二区三区的| 久久精品免费看| 久久女同性恋中文字幕| 国产精品88av| 亚洲黄色免费电影| 91.com在线观看| 国产成人在线视频网站| 中文字幕中文字幕一区二区 | 99国产精品久| 亚洲黄一区二区三区| 欧美精品日韩一区| 日韩va欧美va亚洲va久久| 欧美精品一区二| 国产成人8x视频一区二区 | 久久99精品国产麻豆不卡| 国产欧美日韩视频在线观看| 色综合 综合色| 另类小说视频一区二区| 国产精品美女久久久久久久久| 一本大道av一区二区在线播放| 日本最新不卡在线| 国产精品久久网站| 91麻豆精品国产91久久久资源速度| 久久www免费人成看片高清| 一区二区三区在线免费观看 | 午夜久久久久久久久久一区二区| www国产成人免费观看视频 深夜成人网| 国产精品一二三在| 最近中文字幕一区二区三区| 欧美乱妇一区二区三区不卡视频| 久久国产三级精品| 国产精品不卡在线| 精品国产伦一区二区三区观看方式 | 欧美乱妇20p| 乱一区二区av| 一区二区三区精品视频在线| 日韩欧美一区二区久久婷婷| 99视频国产精品| 麻豆精品视频在线| 樱花影视一区二区| 欧美国产精品v| 精品少妇一区二区三区免费观看| 99久久99久久久精品齐齐| 麻豆91免费观看| 亚洲国产成人高清精品| 一色屋精品亚洲香蕉网站| 日韩女优毛片在线| 7777精品伊人久久久大香线蕉的 | 精品日韩成人av| 欧美日韩一区二区三区视频| 久久精品夜夜夜夜久久| 欧美日韩国产免费| 欧美中文字幕一区二区三区 | 成人激情小说网站| 成人综合日日夜夜| 激情综合网最新| 亚洲综合成人在线| 亚洲男女一区二区三区| 亚洲另类色综合网站| 亚洲欧美日韩人成在线播放| 一区在线观看视频| 成人欧美一区二区三区视频网页| 国产精品乱人伦中文| 日本一区二区不卡视频| 国产精品网曝门| 国产精品成人免费| 一区二区三区资源| 亚洲h在线观看| 蜜臀久久99精品久久久久宅男| 人人狠狠综合久久亚洲| 美女一区二区在线观看| 国产乱码一区二区三区| 成人在线视频一区二区| 91丝袜高跟美女视频| 91麻豆视频网站| 欧美三日本三级三级在线播放| 欧美精品丝袜久久久中文字幕| 欧美久久高跟鞋激| 久久久噜噜噜久久人人看 | 亚洲国产欧美在线| 强制捆绑调教一区二区| 免费成人av资源网| 丰满少妇在线播放bd日韩电影| 不卡av在线免费观看| 成人免费毛片嘿嘿连载视频| 在线国产电影不卡| 日韩视频免费观看高清完整版在线观看| 精品国产乱码久久久久久牛牛| 国产精品伦理一区二区| 亚洲欧美激情插| 久久精品国产精品亚洲精品| 色婷婷av一区二区三区软件 | 欧美国产精品劲爆| 日韩avvvv在线播放| 91网站最新地址| 欧美videos中文字幕| 国产精品精品国产色婷婷| 日本成人在线视频网站| 欧美午夜理伦三级在线观看| 国产欧美日韩精品在线| 日韩电影在线一区二区三区| 成人综合婷婷国产精品久久 | 欧美精品一区二区高清在线观看| 亚洲色图视频网| 国产乱理伦片在线观看夜一区| 欧美视频一区二区在线观看| 亚洲日本va午夜在线影院| 国产成人av福利| 国产亚洲短视频| 国产自产v一区二区三区c| 欧美日本一道本| 亚洲免费看黄网站| 国产99久久久精品| 日韩一区二区麻豆国产| 青娱乐精品视频在线| 欧美在线一区二区| 亚洲色图一区二区| 欧美制服丝袜第一页| 亚洲一区电影777| 97精品超碰一区二区三区| 亚洲色图欧洲色图婷婷| 99国内精品久久| 亚洲欧洲日韩综合一区二区| 91同城在线观看| 综合av第一页| 欧美制服丝袜第一页| 亚洲成人av一区二区三区| 欧美特级限制片免费在线观看| 亚洲www啪成人一区二区麻豆| 欧美日韩一区 二区 三区 久久精品| **欧美大码日韩| 欧美午夜一区二区三区| 人人精品人人爱| 久久蜜桃av一区二区天堂| 福利一区在线观看| 亚洲三级电影网站| 欧美老女人第四色| 激情久久五月天| 国产精品久久久爽爽爽麻豆色哟哟 | 精品久久人人做人人爽| 国产精品一品二品| 中文字幕av一区 二区| 成人免费视频视频在线观看免费 | 欧美日韩一级片在线观看| 麻豆精品国产传媒mv男同| 国产欧美久久久精品影院| 欧美唯美清纯偷拍| 成人久久久精品乱码一区二区三区| 亚洲国产美国国产综合一区二区| 国产欧美日韩一区二区三区在线观看| 3atv一区二区三区| 91麻豆精品在线观看| 国产精品综合在线视频| 免费观看日韩av| 丝袜亚洲另类欧美| 一区二区三区中文在线观看| 国产精品沙发午睡系列990531| 欧美电视剧在线观看完整版| 91精品欧美久久久久久动漫| 欧洲一区在线观看| 91在线视频播放地址| 99久久婷婷国产| 色综合久久88色综合天天免费| 99久久国产综合精品色伊| proumb性欧美在线观看| 91原创在线视频| 欧美影视一区在线| 欧美一a一片一级一片| 91国产成人在线| 欧美性生活久久| 欧美蜜桃一区二区三区| 欧美精品免费视频| 精品理论电影在线| 欧美国产欧美综合| 国产精品乱码一区二区三区软件| 中文字幕一区在线观看| 亚洲精品大片www| 日韩黄色在线观看| 国产一区 二区| 91香蕉国产在线观看软件| 色噜噜狠狠色综合欧洲selulu| 欧美日韩国产高清一区二区三区 | 成人的网站免费观看| 欧美日韩国产电影| 日韩毛片高清在线播放|