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

📄 irq.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 159:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE, /*  RTC tick */ 160:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE, /*  RTC Match 0 */ 161:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE, /*  RTC Match 1 */ 162:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE, /*  RTC Match 2 */ 163:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,  /*  PCI Error Interrupt -- INTERNAL ONLY */ 164:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,  /*  NAND Controller */ 165:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,  /*  USB Device Request */ 166:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE, /*  USB Device Suspend */ 167:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_LOW_LEVEL,   /*  USB Host or OTG timeout  -- FIX ME!!!! Rising or FALLING */ 168:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,  /*  MAC0 Dma Done */ 169:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,  /*  MAC1 DMA Done*/ 170:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,	 /*  Reserved */ 171:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,	 /*  Reserved */ 172:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,	 /*  Reserved */ 173:/mnt/hgfs/boot/booter/source/irq.c ****  174:/mnt/hgfs/boot/booter/source/irq.c **** #elif defined(AU1200) 175:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_UART0, 176:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_SWCNT, 177:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_SD,GAS LISTING /tmp/ccsUu95n.s 			page 6 178:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_DDMA, 179:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_MAE_BE, 180:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP200, 181:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP201, 182:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP202, 183:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_UART1, 184:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_MAE_FE, 185:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_PSC0, 186:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_PSC1, 187:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_AES, 188:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_CIM, 189:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_TOY_TICK, 190:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_TOY_M0, 191:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_TOY_M1, 192:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_TOY_M2, 193:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_RTC_TICK, 194:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_RTC_M0,  195:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_RTC_M1, 196:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_RTC_M2, 197:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP203, 198:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_RISING_EDGE,	// IRQ_NAND, 199:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP204, 200:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP205, 201:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP206, 202:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP207, 203:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,		// IRQ_GP208_GP215, 204:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_USB, 205:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_LCD, 206:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_HIGH_LEVEL,		// IRQ_MAE_FE_BE, 207:/mnt/hgfs/boot/booter/source/irq.c ****  208:/mnt/hgfs/boot/booter/source/irq.c **** #else 209:/mnt/hgfs/boot/booter/source/irq.c **** #error "Unknown Au1x00 SOC" 210:/mnt/hgfs/boot/booter/source/irq.c **** #endif 211:/mnt/hgfs/boot/booter/source/irq.c ****  212:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 213:/mnt/hgfs/boot/booter/source/irq.c **** 	 * The GPIOs are board specific! 214:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 215:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO0        */ 216:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO1        */ 217:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO2        */ 218:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO3        */ 219:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO4        */ 220:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO5        */ 221:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO6        */ 222:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO7        */ 223:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO8        */ 224:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO9        */ 225:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO10       */ 226:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO11       */ 227:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO12       */ 228:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO13       */ 229:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO14       */ 230:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO15       */ 231:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO16 -- GPIO200(AU1550)  */ 232:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO17 -- logical or of GIO201:205(AU1550)      */ 233:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO18 -- GPIO16(AU1550)   */ 234:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO19 -- GPIO17(AU1550)   */GAS LISTING /tmp/ccsUu95n.s 			page 7 235:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO20 	     */ 236:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO21       */ 237:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO22       */ 238:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO23       */ 239:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO24       */ 240:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO25       */ 241:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO26       */ 242:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO27       */ 243:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO28       */ 244:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO29 -- GPIO206(AU1550)   */ 245:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO30 -- GPIO207(AU1550)   */ 246:/mnt/hgfs/boot/booter/source/irq.c **** 	INT_UNDEFINED,   /* GPIO31 -- logical or of GPIO208-214(AU1550)      */ 247:/mnt/hgfs/boot/booter/source/irq.c **** }; 248:/mnt/hgfs/boot/booter/source/irq.c ****  249:/mnt/hgfs/boot/booter/source/irq.c **** /********************************************************************/ 250:/mnt/hgfs/boot/booter/source/irq.c **** int 251:/mnt/hgfs/boot/booter/source/irq.c **** cpuIrqEnable (int irq, int polarity, void (*handler)(int, void *), void *arg) 252:/mnt/hgfs/boot/booter/source/irq.c **** { 100              		.loc 1 252 0 101              		.frame	$sp,40,$31		# vars= 0, regs= 5/0, args= 16, gp= 0 102              		.mask	0x800f0000,-8 103              		.fmask	0x00000000,0 104              		.set	noreorder 105              		.set	nomacro 106              		 107 0000 D8FFBD27 		addiu	$sp,$sp,-40 108              	$LCFI0: 253:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 254:/mnt/hgfs/boot/booter/source/irq.c **** 	 * NOTE: Status[IE] explicitly left untouched, 255:/mnt/hgfs/boot/booter/source/irq.c **** 	 * though Status[IM] is altered. 256:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 257:/mnt/hgfs/boot/booter/source/irq.c **** 	int bit; 258:/mnt/hgfs/boot/booter/source/irq.c **** 	uint32 Status; 259:/mnt/hgfs/boot/booter/source/irq.c ****  260:/mnt/hgfs/boot/booter/source/irq.c **** 	if ((irq < 0) || (irq >= NUM_IRQS)) 109              		.loc 1 260 0 110 0004 4800822C 		sltu	$2,$4,72 111              		.loc 1 252 0 112 0008 1400B1AF 		sw	$17,20($sp) 113              	$LCFI1: 114 000c 1000B0AF 		sw	$16,16($sp) 115              	$LCFI2: 116 0010 2000BFAF 		sw	$31,32($sp) 117              	$LCFI3: 118 0014 21808000 		move	$16,$4 119 0018 1C00B3AF 		sw	$19,28($sp) 120              	$LCFI4: 121 001c 1800B2AF 		sw	$18,24($sp) 122              	$LCFI5: 123              		.loc 1 252 0 124 0020 2188A000 		move	$17,$5 261:/mnt/hgfs/boot/booter/source/irq.c **** 		return -1; 125              		.loc 1 261 0 126              		.loc 1 260 0 127 0024 34004010 		beq	$2,$0,$L1 128 0028 FFFF0424 		li	$4,-1			# 0xffffffffffffffff 129              	GAS LISTING /tmp/ccsUu95n.s 			page 8 262:/mnt/hgfs/boot/booter/source/irq.c ****  263:/mnt/hgfs/boot/booter/source/irq.c **** 	if (handler == NULL) 264:/mnt/hgfs/boot/booter/source/irq.c **** 		return -2; 130              		.loc 1 264 0 131              		.loc 1 263 0 132 002c 3200C010 		beq	$6,$0,$L1 133 0030 FEFF0424 		li	$4,-2			# 0xfffffffffffffffe 134              	 265:/mnt/hgfs/boot/booter/source/irq.c ****  266:/mnt/hgfs/boot/booter/source/irq.c **** 	if (irqDispatch[irq] != NULL) 135              		.loc 1 266 0 136 0034 0000023C 		lui	$2,%hi(irqDispatch) 137 0038 80281000 		sll	$5,$16,2 138 003c 00004224 		addiu	$2,$2,%lo(irqDispatch) 139 0040 2140A200 		addu	$8,$5,$2 140 0044 0000038D 		lw	$3,0($8) 267:/mnt/hgfs/boot/booter/source/irq.c **** 		return -3; 141              		.loc 1 267 0 142              		.loc 1 266 0 143 0048 2B006014 		bne	$3,$0,$L1 144 004c FDFF0424 		li	$4,-3			# 0xfffffffffffffffd 145              	 268:/mnt/hgfs/boot/booter/source/irq.c ****  269:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 270:/mnt/hgfs/boot/booter/source/irq.c **** 	 * Install handler 271:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 272:/mnt/hgfs/boot/booter/source/irq.c **** 	irqDispatch[irq] = handler; 273:/mnt/hgfs/boot/booter/source/irq.c **** 	irqArgument[irq] = arg; 146              		.loc 1 273 0 147 0050 0000023C 		lui	$2,%hi(irqArgument) 148 0054 20014224 		addiu	$2,$2,%lo(irqArgument) 149 0058 2110A200 		addu	$2,$5,$2 150              		.loc 1 272 0 151 005c 000006AD 		sw	$6,0($8) 152              		.loc 1 273 0 274:/mnt/hgfs/boot/booter/source/irq.c ****  275:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 276:/mnt/hgfs/boot/booter/source/irq.c **** 	 * Status[IM]/Cause[IP] 277:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 278:/mnt/hgfs/boot/booter/source/irq.c **** 	if (irq == IRQ_SWI0) 153              		.loc 1 278 0 154 0060 2D000012 		beq	$16,$0,$L38 155 0064 000047AC 		sw	$7,0($2) 156              	 279:/mnt/hgfs/boot/booter/source/irq.c **** 	{ 280:/mnt/hgfs/boot/booter/source/irq.c **** 		/* NOTE: Causes an interrupt iediately */ 281:/mnt/hgfs/boot/booter/source/irq.c **** 		Status = cp0RdStatus(); 282:/mnt/hgfs/boot/booter/source/irq.c **** 		Status |= STATUS_SWI0; 283:/mnt/hgfs/boot/booter/source/irq.c **** 		cp0WrStatus(Status); 284:/mnt/hgfs/boot/booter/source/irq.c **** 	} 285:/mnt/hgfs/boot/booter/source/irq.c **** 	else 286:/mnt/hgfs/boot/booter/source/irq.c ****  287:/mnt/hgfs/boot/booter/source/irq.c **** 	if (irq == IRQ_SWI1) 157              		.loc 1 287 0 158 0068 01001324 		li	$19,1			# 0x1 288:/mnt/hgfs/boot/booter/source/irq.c **** 	{ 289:/mnt/hgfs/boot/booter/source/irq.c **** 		/* NOTE: Causes an interrupt iediately */GAS LISTING /tmp/ccsUu95n.s 			page 9 290:/mnt/hgfs/boot/booter/source/irq.c **** 		Status = cp0RdStatus(); 291:/mnt/hgfs/boot/booter/source/irq.c **** 		Status |= STATUS_SWI1; 292:/mnt/hgfs/boot/booter/source/irq.c **** 		cp0WrStatus(Status); 293:/mnt/hgfs/boot/booter/source/irq.c **** 	} 294:/mnt/hgfs/boot/booter/source/irq.c **** 	else 295:/mnt/hgfs/boot/booter/source/irq.c ****  296:/mnt/hgfs/boot/booter/source/irq.c **** 	if (irq == IRQ_PERFCNT) 159              		.loc 1 296 0 160              		.loc 1 287 0 161 006c 51001312 		beq	$16,$19,$L39 162 0070 06000224 		li	$2,6			# 0x6 163              	 297:/mnt/hgfs/boot/booter/source/irq.c **** 	{ 298:/mnt/hgfs/boot/booter/source/irq.c **** 		Status = cp0RdStatus(); 299:/mnt/hgfs/boot/booter/source/irq.c **** 		Status |= STATUS_PERFCNT; 300:/mnt/hgfs/boot/booter/source/irq.c **** 		cp0WrStatus(Status); 301:/mnt/hgfs/boot/booter/source/irq.c **** 	} 302:/mnt/hgfs/boot/booter/source/irq.c **** 	else 303:/mnt/hgfs/boot/booter/source/irq.c ****  304:/mnt/hgfs/boot/booter/source/irq.c **** 	if (irq == IRQ_COUNTER) 164              		.loc 1 304 0 165              		.loc 1 296 0 166 0074 49000212 		beq	$16,$2,$L40 167 0078 07000224 		li	$2,7			# 0x7 168              	 305:/mnt/hgfs/boot/booter/source/irq.c **** 	{ 306:/mnt/hgfs/boot/booter/source/irq.c **** 		Status = cp0RdStatus(); 307:/mnt/hgfs/boot/booter/source/irq.c **** 		Status |= STATUS_COUNTER; 308:/mnt/hgfs/boot/booter/source/irq.c **** 		cp0WrStatus(Status); 309:/mnt/hgfs/boot/booter/source/irq.c **** 	} 310:/mnt/hgfs/boot/booter/source/irq.c **** 	else 311:/mnt/hgfs/boot/booter/source/irq.c ****  312:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 313:/mnt/hgfs/boot/booter/source/irq.c **** 	 * IC0 314:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 315:/mnt/hgfs/boot/booter/source/irq.c **** 	if ((irq >= IRQ_IC0_START) && (irq <= IRQ_IC0_END)) 169              		.loc 1 315 0 170              		.loc 1 304 0 171 007c 53000212 		beq	$16,$2,$L41 172 0080 F8FF0326 		addiu	$3,$16,-8 173              	 174              		.loc 1 315 0 175 0084 2000622C 		sltu	$2,$3,32 316:/mnt/hgfs/boot/booter/source/irq.c **** 	{ 317:/mnt/hgfs/boot/booter/source/irq.c **** 		bit = (1 << (irq - IRQ_IC0_START)); 318:/mnt/hgfs/boot/booter/source/irq.c ****  319:/mnt/hgfs/boot/booter/source/irq.c **** 		Status = cp0RdStatus(); 320:/mnt/hgfs/boot/booter/source/irq.c **** 		Status |= (STATUS_IC0R0 | STATUS_IC0R1); 321:/mnt/hgfs/boot/booter/source/irq.c **** 		cp0WrStatus(Status); 322:/mnt/hgfs/boot/booter/source/irq.c ****  323:/mnt/hgfs/boot/booter/source/irq.c **** 		polarity = irqPolarity[irq]; 324:/mnt/hgfs/boot/booter/source/irq.c **** 		if (polarity == INT_HIGH_LEVEL) 325:/mnt/hgfs/boot/booter/source/irq.c **** 		{ 326:/mnt/hgfs/boot/booter/source/irq.c **** 			HIGH_LEVEL(0,bit); 327:/mnt/hgfs/boot/booter/source/irq.c **** 		} 328:/mnt/hgfs/boot/booter/source/irq.c **** 		else if (polarity == INT_LOW_LEVEL) 329:/mnt/hgfs/boot/booter/source/irq.c **** 		{GAS LISTING /tmp/ccsUu95n.s 			page 10 330:/mnt/hgfs/boot/booter/source/irq.c **** 			LOW_LEVEL(0,bit); 331:/mnt/hgfs/boot/booter/source/irq.c **** 		} 332:/mnt/hgfs/boot/booter/source/irq.c **** 		else if (polarity == INT_RISING_EDGE) 333:/mnt/hgfs/boot/booter/source/irq.c **** 		{ 334:/mnt/hgfs/boot/booter/source/irq.c **** 			RISING_EDGE(0,bit); 335:/mnt/hgfs/boot/booter/source/irq.c **** 		} 336:/mnt/hgfs/boot/booter/source/irq.c **** 		else if (polarity == INT_FALLING_EDGE) 337:/mnt/hgfs/boot/booter/source/irq.c **** 		{ 338:/mnt/hgfs/boot/booter/source/irq.c **** 			FALLING_EDGE(0,bit); 339:/mnt/hgfs/boot/booter/source/irq.c **** 		} 340:/mnt/hgfs/boot/booter/source/irq.c **** 		else 341:/mnt/hgfs/boot/booter/source/irq.c **** 			printf("Unknown IRQ polarity for IRQ %d\n", irq); 342:/mnt/hgfs/boot/booter/source/irq.c ****  343:/mnt/hgfs/boot/booter/source/irq.c **** 		/* mask: un-mask irq */ 344:/mnt/hgfs/boot/booter/source/irq.c **** 		ic0->maskset = bit; 345:/mnt/hgfs/boot/booter/source/irq.c ****  346:/mnt/hgfs/boot/booter/source/irq.c **** 		/* wakeup: allow irq to wakeup */ 347:/mnt/hgfs/boot/booter/source/irq.c **** 		ic0->wakeset = bit; 348:/mnt/hgfs/boot/booter/source/irq.c **** 	}

⌨️ 快捷键说明

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