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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? setup.c

?? 優(yōu)龍2410linux2.6.8內核源代碼
?? C
字號:
/* *  arch/mips/ddb5476/setup.c -- NEC DDB Vrc-5476 setup routines * *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com> *                     Sony Software Development Center Europe (SDCE), Brussels */#include <linux/config.h>#include <linux/init.h>#include <linux/kbd_ll.h>#include <linux/kernel.h>#include <linux/kdev_t.h>#include <linux/types.h>#include <linux/sched.h>#include <linux/pci.h>#include <asm/addrspace.h>#include <asm/bcache.h>#include <asm/irq.h>#include <asm/reboot.h>#include <asm/gdb-stub.h>#include <asm/time.h>#include <asm/debug.h>#include <asm/traps.h>#include <asm/ddb5xxx/ddb5xxx.h>// #define USE_CPU_COUNTER_TIMER	/* whether we use cpu counter */#ifdef USE_CPU_COUNTER_TIMER#define CPU_COUNTER_FREQUENCY           83000000#else/* otherwise we use general purpose timer */#define TIMER_FREQUENCY			83000000#define TIMER_BASE			DDB_T2CTRL#define TIMER_IRQ			(VRC5476_IRQ_BASE + VRC5476_IRQ_GPT)#endif#ifdef CONFIG_KGDBextern void breakpoint(void);#endifstatic void (*back_to_prom) (void) = (void (*)(void)) 0xbfc00000;static void ddb_machine_restart(char *command){	u32 t;	/* PCI cold reset */	t = ddb_in32(DDB_PCICTRL + 4);	t |= 0x40000000;	ddb_out32(DDB_PCICTRL + 4, t);	/* CPU cold reset */	t = ddb_in32(DDB_CPUSTAT);	t |= 1;	ddb_out32(DDB_CPUSTAT, t);	/* Call the PROM */	back_to_prom();}static void ddb_machine_halt(void){	printk(KERN_NOTICE "DDB Vrc-5476 halted.\n");	while (1);}static void ddb_machine_power_off(void){	printk(KERN_NOTICE "DDB Vrc-5476 halted. Please turn off the power.\n");	while (1);}extern void ddb_irq_setup(void);extern void rtc_ds1386_init(unsigned long base);static void __init ddb_time_init(void){#if defined(USE_CPU_COUNTER_TIMER)	mips_hpt_frequency = CPU_COUNTER_FREQUENCY;#endif	/* we have ds1396 RTC chip */	rtc_ds1386_init(KSEG1ADDR(DDB_PCI_MEM_BASE));}extern int setup_irq(unsigned int irq, struct irqaction *irqaction);static void __init ddb_timer_setup(struct irqaction *irq){#if defined(USE_CPU_COUNTER_TIMER)	unsigned int count;	/* we are using the cpu counter for timer interrupts */	setup_irq(CPU_IRQ_BASE + 7, irq);	/* to generate the first timer interrupt */	count = read_c0_count();	write_c0_compare(count + 1000);#else	ddb_out32(TIMER_BASE, TIMER_FREQUENCY/HZ);	ddb_out32(TIMER_BASE+4, 0x1);	/* enable timer */	setup_irq(TIMER_IRQ, irq);#endif}static struct {	struct resource dma1;	struct resource timer;	struct resource rtc;	struct resource dma_page_reg;	struct resource dma2;} ddb5476_ioport = {	{	"dma1", 0x00, 0x1f, IORESOURCE_BUSY}, {	"timer", 0x40, 0x5f, IORESOURCE_BUSY}, {	"rtc", 0x70, 0x7f, IORESOURCE_BUSY}, {	"dma page reg", 0x80, 0x8f, IORESOURCE_BUSY}, {	"dma2", 0xc0, 0xdf, IORESOURCE_BUSY}};static struct {	struct resource nile4;} ddb5476_iomem = {	{ "Nile 4", DDB_BASE, DDB_BASE + DDB_SIZE - 1, IORESOURCE_BUSY}};static void ddb5476_board_init(void);extern void ddb5476_irq_setup(void);extern void (*irq_setup)(void);static void __init ddb5476_setup(void){	extern int panic_timeout;	irq_setup = ddb5476_irq_setup;	set_io_port_base(KSEG1ADDR(DDB_PCI_IO_BASE));	board_time_init = ddb_time_init;	board_timer_setup = ddb_timer_setup;	_machine_restart = ddb_machine_restart;	_machine_halt = ddb_machine_halt;	_machine_power_off = ddb_machine_power_off;	/* request io port/mem resources  */	if (request_resource(&ioport_resource, &ddb5476_ioport.dma1) ||	    request_resource(&ioport_resource, &ddb5476_ioport.timer) ||	    request_resource(&ioport_resource, &ddb5476_ioport.rtc) ||	    request_resource(&ioport_resource,			     &ddb5476_ioport.dma_page_reg)	    || request_resource(&ioport_resource, &ddb5476_ioport.dma2)	    || request_resource(&iomem_resource, &ddb5476_iomem.nile4)) {		printk		    ("ddb_setup - requesting oo port resources failed.\n");		for (;;);	}	/* Reboot on panic */	panic_timeout = 180;	/* [jsun] we need to set BAR0 so that SDRAM 0 appears at 0x0 in PCI */	/* *(long*)0xbfa00218 = 0x8; */	/* board initialization stuff */	ddb5476_board_init();}early_initcall(ddb5476_setup);/* * We don't trust bios.  We essentially does hardware re-initialization * as complete as possible, as far as we know we can safely do. */static void ddb5476_board_init(void){	/* ----------- setup PDARs ------------ */	/* check SDRAM0, whether we are on MEM bus does not matter */	db_assert((ddb_in32(DDB_SDRAM0) & 0xffffffef) ==		  ddb_calc_pdar(DDB_SDRAM_BASE, DDB_SDRAM_SIZE, 32, 0, 1));	/* SDRAM1 should be turned off.  What is this for anyway ? */	db_assert( (ddb_in32(DDB_SDRAM1) & 0xf) == 0);	/* flash 1&2, DDB status, DDB control */	ddb_set_pdar(DDB_DCS2, DDB_DCS2_BASE, DDB_DCS2_SIZE, 16, 0, 0);	ddb_set_pdar(DDB_DCS3, DDB_DCS3_BASE, DDB_DCS3_SIZE, 16, 0, 0);	ddb_set_pdar(DDB_DCS4, DDB_DCS4_BASE, DDB_DCS4_SIZE, 8, 0, 0);	ddb_set_pdar(DDB_DCS5, DDB_DCS5_BASE, DDB_DCS5_SIZE, 8, 0, 0);	/* shut off other pdar so they don't accidentally get into the way */	ddb_set_pdar(DDB_DCS6, 0xffffffff, 0, 32, 0, 0);	ddb_set_pdar(DDB_DCS7, 0xffffffff, 0, 32, 0, 0);	ddb_set_pdar(DDB_DCS8, 0xffffffff, 0, 32, 0, 0);	/* verify VRC5477 base addr */	/* don't care about some details */	db_assert((ddb_in32(DDB_INTCS) & 0xffffff0f) ==		  ddb_calc_pdar(DDB_INTCS_BASE, DDB_INTCS_SIZE, 8, 0, 0));	/* verify BOOT ROM addr */	/* don't care about some details */	db_assert((ddb_in32(DDB_BOOTCS) & 0xffffff0f) ==		  ddb_calc_pdar(DDB_BOOTCS_BASE, DDB_BOOTCS_SIZE, 8, 0, 0));	/* setup PCI windows - window1 for MEM/config, window0 for IO */	ddb_set_pdar(DDB_PCIW0, DDB_PCI_IO_BASE, DDB_PCI_IO_SIZE, 32, 0, 1);	ddb_set_pmr(DDB_PCIINIT0, DDB_PCICMD_IO, 0, DDB_PCI_ACCESS_32);	ddb_set_pdar(DDB_PCIW1, DDB_PCI_MEM_BASE, DDB_PCI_MEM_SIZE, 32, 0, 1);	ddb_set_pmr(DDB_PCIINIT1, DDB_PCICMD_MEM, DDB_PCI_MEM_BASE, DDB_PCI_ACCESS_32);	/* ----------- setup PDARs ------------ */	/* this is problematic - it will reset Aladin which cause we loose	 * serial port, and we don't know how to set up Aladin chip again.	 */	// ddb_pci_reset_bus();	ddb_out32(DDB_BAR0, 0x00000008);	ddb_out32(DDB_BARC, 0xffffffff);	ddb_out32(DDB_BARB, 0xffffffff);	ddb_out32(DDB_BAR1, 0xffffffff);	ddb_out32(DDB_BAR2, 0xffffffff);	ddb_out32(DDB_BAR3, 0xffffffff);	ddb_out32(DDB_BAR4, 0xffffffff);	ddb_out32(DDB_BAR5, 0xffffffff);	ddb_out32(DDB_BAR6, 0xffffffff);	ddb_out32(DDB_BAR7, 0xffffffff);	ddb_out32(DDB_BAR8, 0xffffffff);	/* ----------- switch PCI1 to PCI CONFIG space  ------------ */	ddb_set_pdar(DDB_PCIW1, DDB_PCI_CONFIG_BASE, DDB_PCI_CONFIG_SIZE, 32, 0, 1);	ddb_set_pmr(DDB_PCIINIT1, DDB_PCICMD_CFG, 0x0, DDB_PCI_ACCESS_32);	/* ----- M1543 PCI setup ------ */	/* we know M1543 PCI-ISA controller is at addr:18 */	/* xxxx1010 makes USB at addr:13 and PMU at addr:14 */	*(volatile unsigned char *) 0xa8040072 &= 0xf0;	*(volatile unsigned char *) 0xa8040072 |= 0xa;	/* setup USB interrupt to IRQ 9, (bit 0:3 - 0001)	 * no IOCHRDY signal, (bit 7 - 1)	 * M1543C & M7101 VID and Subsys Device ID are read-only (bit 6 - 1)	 * Make USB Master INTAJ level to edge conversion (bit 4 - 1)	 */	*(unsigned char *) 0xa8040074 = 0xd1;	/* setup PMU(SCI to IRQ 10 (bit 0:3 - 0011)	 * SCI routing to IRQ 13 disabled (bit 7 - 1)	 * SCI interrupt level to edge conversion bypassed (bit 4 - 0)	 */	*(unsigned char *) 0xa8040076 = 0x83;	/* setup IDE controller	 * enable IDE controller (bit 6 - 1)	 * IDE IDSEL to be addr:24 (bit 4:5 - 11)	 * no IDE ATA Secondary Bus Signal Pad Control (bit 3 - 0)	 * no IDE ATA Primary Bus Signal Pad Control (bit 2 - 0)	 * primary IRQ is 14, secondary is 15 (bit 1:0 - 01	 */	// *(unsigned char*)0xa8040058 = 0x71;	// *(unsigned char*)0xa8040058 = 0x79;	// *(unsigned char*)0xa8040058 = 0x74;              // use SIRQ, primary tri-state	*(unsigned char *) 0xa8040058 = 0x75;	// primary tri-state#if 0	/* this is not necessary if M5229 does not use SIRQ */	*(unsigned char *) 0xa8040044 = 0x0d;	// primary to IRQ 14	*(unsigned char *) 0xa8040075 = 0x0d;	// secondary to IRQ 14#endif	/* enable IDE in the M5229 config register 0x50 (bit 0 - 1) */	/* M5229 IDSEL is addr:24; see above setting */	*(unsigned char *) 0xa9000050 |= 0x1;	/* enable bus master (bit 2)  and IO decoding  (bit 0) */	*(unsigned char *) 0xa9000004 |= 0x5;	/* enable native, copied from arch/ppc/k2boot/head.S */	/* TODO - need volatile, need to be portable */	*(unsigned char *) 0xa9000009 = 0xff;	/* ----- end of M1543 PCI setup ------ */	/* ----- reset on-board ether chip  ------ */	*((volatile u32 *) 0xa8020004) |= 1;	/* decode I/O */	*((volatile u32 *) 0xa8020010) = 0;	/* set BAR address */	/* send reset command */	*((volatile u32 *) 0xa6000000) = 1;	/* do a soft reset */	/* disable ether chip */	*((volatile u32 *) 0xa8020004) = 0;	/* disable any decoding */	/* put it into sleep */	*((volatile u32 *) 0xa8020040) = 0x80000000;	/* ----- end of reset on-board ether chip  ------ */	/* ----------- switch PCI1 back to PCI MEM space  ------------ */	ddb_set_pdar(DDB_PCIW1, DDB_PCI_MEM_BASE, DDB_PCI_MEM_SIZE, 32, 0, 1);	ddb_set_pmr(DDB_PCIINIT1, DDB_PCICMD_MEM, DDB_PCI_MEM_BASE, DDB_PCI_ACCESS_32);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
毛片基地黄久久久久久天堂| 日韩理论电影院| 日韩国产在线观看一区| 欧美性色综合网| 亚洲国产成人tv| 欧美大白屁股肥臀xxxxxx| 美女一区二区久久| 久久天天做天天爱综合色| 国产精品一级片| 国产精品超碰97尤物18| 91福利精品视频| 视频在线观看91| 久久日韩粉嫩一区二区三区| 成人午夜激情在线| 一区二区三区中文免费| 欧美日韩国产经典色站一区二区三区 | 亚洲精品欧美激情| 91成人网在线| 国产伦精一区二区三区| 国产精品系列在线| 精品视频色一区| 国产在线精品一区二区不卡了| 欧美国产一区在线| 欧美日韩亚洲综合| 国产在线播放一区二区三区| 亚洲品质自拍视频| 日韩欧美一二三四区| av在线不卡免费看| 五月婷婷综合网| 国产欧美一区二区精品秋霞影院| 日本道色综合久久| 日本不卡123| 国产精品成人免费精品自在线观看 | 夜夜嗨av一区二区三区四季av| 51午夜精品国产| 国产成人亚洲精品青草天美| 一区二区久久久久| 久久久九九九九| 欧美日本乱大交xxxxx| 国产成人精品影视| 首页国产丝袜综合| 亚洲视频一二区| 国产精品久久久久久户外露出| 欧美日韩亚洲综合一区二区三区| 国产成人在线免费| 日韩国产精品久久久久久亚洲| 亚洲欧洲日产国产综合网| 日韩欧美亚洲另类制服综合在线 | 91免费视频观看| 久久国产精品99精品国产 | 国产精品香蕉一区二区三区| 日韩中文字幕亚洲一区二区va在线 | 日韩激情一二三区| 亚洲色图制服诱惑| 久久精品网站免费观看| 日韩一区国产二区欧美三区| 在线看日本不卡| 99久久精品免费精品国产| 国内精品国产成人国产三级粉色 | 精品91自产拍在线观看一区| 欧美在线观看18| 91麻豆精品一区二区三区| 国产成人欧美日韩在线电影| 韩国理伦片一区二区三区在线播放| 亚洲在线中文字幕| 亚洲尤物视频在线| 亚洲欧美日韩国产一区二区三区 | 久久先锋影音av鲁色资源| 6080国产精品一区二区| 欧美午夜精品免费| 色琪琪一区二区三区亚洲区| 97国产一区二区| 99精品视频在线播放观看| 暴力调教一区二区三区| 成人午夜视频在线| 成人午夜电影久久影院| 国产不卡在线视频| 丁香网亚洲国际| 成人午夜短视频| 成人动漫一区二区| 99精品在线免费| 色噜噜狠狠色综合中国| 91国产成人在线| 91国产丝袜在线播放| 欧美日韩国产一级二级| 欧美一区二区网站| 精品免费视频一区二区| 久久久久久久久久美女| 国产精品久久二区二区| 中文字幕欧美一| 亚洲精品视频免费观看| 亚洲国产精品久久不卡毛片| 日韩在线观看一区二区| 奇米色777欧美一区二区| 久久成人免费电影| 国产a区久久久| 91国偷自产一区二区三区成为亚洲经典| 一本大道av一区二区在线播放| 在线观看视频一区二区| 777a∨成人精品桃花网| 欧美精品一区二区蜜臀亚洲| 日本一区二区三区在线不卡| 国产精品国产三级国产有无不卡| 亚洲人成网站色在线观看| 亚洲成人1区2区| 精品伊人久久久久7777人| 国产suv精品一区二区883| 91日韩在线专区| 日韩一区二区视频在线观看| 久久九九久精品国产免费直播| 亚洲人成在线观看一区二区| 日韩黄色一级片| 成人黄动漫网站免费app| 欧美日韩一二三| 久久综合久久综合九色| 一区二区视频在线| 久久精品久久99精品久久| 99久久夜色精品国产网站| 在线不卡的av| 国产精品久久久一区麻豆最新章节| 亚洲一区二区三区中文字幕 | 欧美精品乱码久久久久久按摩| 久久女同精品一区二区| 一区二区在线观看视频| 国产精品综合视频| 欧美性色欧美a在线播放| 国产欧美综合色| 午夜精品久久久| 91免费看`日韩一区二区| 日韩免费成人网| 亚洲一区二区在线视频| 国产成人欧美日韩在线电影| 69堂精品视频| 亚洲男同1069视频| 国产精品一区二区久久不卡| 51午夜精品国产| 亚洲精品va在线观看| 国产成人精品三级| 91精品国产一区二区| 亚洲精品乱码久久久久久久久| 国产精品一二一区| 91精品国产福利在线观看| 亚洲视频免费看| 国产宾馆实践打屁股91| 精品少妇一区二区三区日产乱码 | 精品国产不卡一区二区三区| 亚洲午夜精品网| 99久精品国产| 国产精品天美传媒沈樵| 久久狠狠亚洲综合| 在线播放视频一区| 亚洲国产综合91精品麻豆| av在线不卡免费看| 国产欧美日本一区视频| 精品无人码麻豆乱码1区2区| 日韩欧美国产综合在线一区二区三区| 一区二区成人在线视频| 99久久婷婷国产| 国产精品久久久久aaaa樱花| 成人免费视频免费观看| 久久亚洲综合色一区二区三区| 欧美aa在线视频| 欧美一区二区三区电影| 男人的j进女人的j一区| 这里是久久伊人| 日韩成人一级大片| 91麻豆精品国产自产在线观看一区 | 91精品国产91久久久久久一区二区| 亚洲成人av一区二区三区| 欧美最新大片在线看| 亚洲黄色尤物视频| 欧美日韩一区精品| 婷婷久久综合九色综合伊人色| 精品视频全国免费看| 香蕉加勒比综合久久| 欧美理论电影在线| 另类人妖一区二区av| 日韩美一区二区三区| 国产在线麻豆精品观看| 久久伊人蜜桃av一区二区| 国产成人综合在线观看| 日本一区二区三区久久久久久久久不 | 不卡视频在线观看| **欧美大码日韩| 欧美性大战久久久| 天天色综合天天| 久久综合精品国产一区二区三区 | 欧美一级理论性理论a| 久久精品国产亚洲a| 国产欧美日韩综合精品一区二区| hitomi一区二区三区精品| 亚洲六月丁香色婷婷综合久久| 欧美色综合久久| 麻豆精品视频在线观看| 久久久亚洲国产美女国产盗摄 | 欧美三级午夜理伦三级中视频| 日韩黄色免费电影| 26uuu精品一区二区| 91美女片黄在线观看91美女| 亚洲成人免费视频|