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

📄 nand.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 488 0340 0000063C 		lui	$6,%hi(nand_irq_handler) 489              		.loc 1 124 0 490 0344 14102935 		ori	$9,$9,0x1014 491              		.loc 1 125 0GAS LISTING /tmp/cc4NTrNa.s 			page 12 492 0348 F03F4234 		ori	$2,$2,0x3ff0 493              		.loc 1 124 0 494 034c 000023AD 		sw	$3,0($9) 495              		.loc 1 130 0 496 0350 1000BF8F 		lw	$31,16($sp) 497              		.loc 1 125 0 498 0354 000082AD 		sw	$2,0($12) 499              		.loc 1 128 0 500 0358 0000033C 		lui	$3,%hi(nand_irq_fired) 501              		.loc 1 130 0 502 035c 0000C624 		addiu	$6,$6,%lo(nand_irq_handler) 503 0360 1F000424 		li	$4,31			# 0x1f 504 0364 04000524 		li	$5,4			# 0x4 505 0368 21380000 		move	$7,$0 506 036c 1800BD27 		addiu	$sp,$sp,24 507              		.loc 1 128 0 508 0370 000060AC 		sw	$0,%lo(nand_irq_fired)($3) 509              		.loc 1 130 0 510 0374 00000008 		j	cpuIrqEnable 511 0378 00000000 		nop 512              	 513              		.set	macro 514              		.set	reorder 515              	$LFE5: 516              		.end	nand_config 517              		.align	2 518              		.globl	nand_id_read 519              		.ent	nand_id_read 520              		.type	nand_id_read, @function 521              	nand_id_read: 522              	$LFB6: 131:/mnt/hgfs/boot/booter/source/nand.c **** } 132:/mnt/hgfs/boot/booter/source/nand.c ****  133:/mnt/hgfs/boot/booter/source/nand.c **** void nand_id_read(int* maker, int* device) 134:/mnt/hgfs/boot/booter/source/nand.c **** { 523              		.loc 1 134 0 524              		.frame	$sp,32,$31		# vars= 0, regs= 3/0, args= 16, gp= 0 525              		.mask	0x80030000,-8 526              		.fmask	0x00000000,0 527              		.set	noreorder 528              		.set	nomacro 529              		 530 037c E0FFBD27 		addiu	$sp,$sp,-32 531              	$LCFI2: 532 0380 1400B1AF 		sw	$17,20($sp) 533              	$LCFI3: 534 0384 1000B0AF 		sw	$16,16($sp) 535              	$LCFI4: 536 0388 2188A000 		move	$17,$5 537 038c 21808000 		move	$16,$4 135:/mnt/hgfs/boot/booter/source/nand.c ****     gpioWrite(NAND_CE0, 0); 538              		.loc 1 135 0 539 0390 21280000 		move	$5,$0 540              		.loc 1 134 0 541 0394 1800BFAF 		sw	$31,24($sp) 542              	$LCFI5: 543              		.loc 1 135 0GAS LISTING /tmp/cc4NTrNa.s 			page 13 544 0398 0000000C 		jal	gpioWrite 545 039c 15000424 		li	$4,21			# 0x15 546              	 136:/mnt/hgfs/boot/booter/source/nand.c ****     NAND_REG_CMD = NAND_CMD_ID_READ1; 547              		.loc 1 136 0 548 03a0 0000033C 		lui	$3,%hi(nand_virtual_address) 549 03a4 0000658C 		lw	$5,%lo(nand_virtual_address)($3) 550 03a8 90000224 		li	$2,144 137:/mnt/hgfs/boot/booter/source/nand.c ****     NAND_REG_ADDR = 0; 138:/mnt/hgfs/boot/booter/source/nand.c ****     *maker = NAND_REG_DATA & 0xff; 139:/mnt/hgfs/boot/booter/source/nand.c ****     *device = NAND_REG_DATA & 0xff; 140:/mnt/hgfs/boot/booter/source/nand.c ****     gpioWrite(NAND_CE0, 1); 551              		.loc 1 140 0 552 03ac 1800BF8F 		lw	$31,24($sp) 553              		.loc 1 136 0 554 03b0 0000A2A4 		sh	$2,0($5) 555              		.loc 1 137 0 556 03b4 0400A0A4 		sh	$0,4($5) 557              		.loc 1 138 0 558 03b8 2000A294 		lhu	$2,32($5) 559              		.loc 1 139 0 560 03bc 2000A394 		lhu	$3,32($5) 561              		.loc 1 140 0 562 03c0 15000424 		li	$4,21			# 0x15 563              		.loc 1 138 0 564 03c4 FF004230 		andi	$2,$2,0x00ff 565              		.loc 1 139 0 566 03c8 FF006330 		andi	$3,$3,0x00ff 567              		.loc 1 138 0 568 03cc 000002AE 		sw	$2,0($16) 569              		.loc 1 140 0 570 03d0 01000524 		li	$5,1			# 0x1 571              		.loc 1 139 0 572 03d4 000023AE 		sw	$3,0($17) 573              		.loc 1 140 0 574 03d8 1000B08F 		lw	$16,16($sp) 575 03dc 1400B18F 		lw	$17,20($sp) 576 03e0 00000008 		j	gpioWrite 577 03e4 2000BD27 		addiu	$sp,$sp,32 578              	 579              		.set	macro 580              		.set	reorder 581              	$LFE6: 582              		.end	nand_id_read 583              		.align	2 584              		.globl	nand_reset 585              		.ent	nand_reset 586              		.type	nand_reset, @function 587              	nand_reset: 588              	$LFB7: 141:/mnt/hgfs/boot/booter/source/nand.c **** } 142:/mnt/hgfs/boot/booter/source/nand.c ****  143:/mnt/hgfs/boot/booter/source/nand.c **** void nand_reset() 144:/mnt/hgfs/boot/booter/source/nand.c **** { 589              		.loc 1 144 0 590              		.frame	$sp,24,$31		# vars= 0, regs= 1/0, args= 16, gp= 0 591              		.mask	0x80000000,-8GAS LISTING /tmp/cc4NTrNa.s 			page 14 592              		.fmask	0x00000000,0 593              		.set	noreorder 594              		.set	nomacro 595              		 596 03e8 E8FFBD27 		addiu	$sp,$sp,-24 597              	$LCFI6: 145:/mnt/hgfs/boot/booter/source/nand.c ****     gpioWrite(NAND_CE0, 0); 598              		.loc 1 145 0 599 03ec 21280000 		move	$5,$0 600              		.loc 1 144 0 601 03f0 1000BFAF 		sw	$31,16($sp) 602              	$LCFI7: 603              		.loc 1 145 0 604 03f4 0000000C 		jal	gpioWrite 605 03f8 15000424 		li	$4,21			# 0x15 606              	 146:/mnt/hgfs/boot/booter/source/nand.c ****     NAND_REG_CMD = NAND_CMD_RESET; 607              		.loc 1 146 0 608 03fc 0000033C 		lui	$3,%hi(nand_virtual_address) 609 0400 0000648C 		lw	$4,%lo(nand_virtual_address)($3) 610 0404 FF000224 		li	$2,255 611 0408 000082A4 		sh	$2,0($4) 147:/mnt/hgfs/boot/booter/source/nand.c ****     nand_wait_busy(); 612              		.loc 1 147 0 613 040c 0000000C 		jal	nand_wait_busy 614 0410 00000000 		nop 615              	 148:/mnt/hgfs/boot/booter/source/nand.c ****     gpioWrite(NAND_CE0, 1); 616              		.loc 1 148 0 617 0414 1000BF8F 		lw	$31,16($sp) 618 0418 15000424 		li	$4,21			# 0x15 619 041c 01000524 		li	$5,1			# 0x1 620 0420 00000008 		j	gpioWrite 621 0424 1800BD27 		addiu	$sp,$sp,24 622              	 623              		.set	macro 624              		.set	reorder 625              	$LFE7: 626              		.end	nand_reset 627              		.align	2 628              		.globl	nand_initialize 629              		.ent	nand_initialize 630              		.type	nand_initialize, @function 631              	nand_initialize: 632              	$LFB8: 149:/mnt/hgfs/boot/booter/source/nand.c **** } 150:/mnt/hgfs/boot/booter/source/nand.c ****  151:/mnt/hgfs/boot/booter/source/nand.c **** NandDevice* nand_initialize() 152:/mnt/hgfs/boot/booter/source/nand.c **** { 633              		.loc 1 152 0 634              		.frame	$sp,32,$31		# vars= 8, regs= 1/0, args= 16, gp= 0 635              		.mask	0x80000000,-8 636              		.fmask	0x00000000,0 637              		.set	noreorder 638              		.set	nomacro 639              		 640 0428 E0FFBD27 		addiu	$sp,$sp,-32GAS LISTING /tmp/cc4NTrNa.s 			page 15 641              	$LCFI8: 642 042c 1800BFAF 		sw	$31,24($sp) 643              	$LCFI9: 153:/mnt/hgfs/boot/booter/source/nand.c ****     int maker, device_id; 154:/mnt/hgfs/boot/booter/source/nand.c ****  155:/mnt/hgfs/boot/booter/source/nand.c ****     nand_config(); 644              		.loc 1 155 0 645 0430 0000000C 		jal	nand_config 646 0434 00000000 		nop 647              	 156:/mnt/hgfs/boot/booter/source/nand.c ****     nand_reset(); 648              		.loc 1 156 0 649 0438 0000000C 		jal	nand_reset 650 043c 00000000 		nop 651              	 157:/mnt/hgfs/boot/booter/source/nand.c ****     nand_id_read(&maker, &device_id); 652              		.loc 1 157 0 653 0440 1000A427 		addiu	$4,$sp,16 654 0444 0000000C 		jal	nand_id_read 655 0448 1400A527 		addiu	$5,$sp,20 656              	 158:/mnt/hgfs/boot/booter/source/nand.c ****  159:/mnt/hgfs/boot/booter/source/nand.c ****     if(nand_load_device(maker, device_id)) 657              		.loc 1 159 0 658 044c 1000A48F 		lw	$4,16($sp) 659 0450 0000000C 		jal	nand_load_device 660 0454 1400A58F 		lw	$5,20($sp) 661              	 160:/mnt/hgfs/boot/booter/source/nand.c ****         return &nand_device; 161:/mnt/hgfs/boot/booter/source/nand.c ****     else 162:/mnt/hgfs/boot/booter/source/nand.c ****         return NULL; 662              		.loc 1 162 0 663              		.loc 1 159 0 664 0458 03004010 		beq	$2,$0,$L61 665 045c 21180000 		move	$3,$0 666              	 667              		.loc 1 160 0 668 0460 0000023C 		lui	$2,%hi(nand_device) 669 0464 04004324 		addiu	$3,$2,%lo(nand_device) 670              	$L61: 163:/mnt/hgfs/boot/booter/source/nand.c **** } 671              		.loc 1 163 0 672 0468 1800BF8F 		lw	$31,24($sp) 673 046c 21106000 		move	$2,$3 674 0470 0800E003 		j	$31 675 0474 2000BD27 		addiu	$sp,$sp,32 676              	 677              		.set	macro 678              		.set	reorder 679              	$LFE8: 680              		.end	nand_initialize 681              		.align	2 682              		.globl	nand_set_column_address 683              		.ent	nand_set_column_address 684              		.type	nand_set_column_address, @function 685              	nand_set_column_address: 686              	$LFB9:GAS LISTING /tmp/cc4NTrNa.s 			page 16 164:/mnt/hgfs/boot/booter/source/nand.c ****  165:/mnt/hgfs/boot/booter/source/nand.c **** void nand_set_column_address(int column) 166:/mnt/hgfs/boot/booter/source/nand.c **** { 687              		.loc 1 166 0 688              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 689              		.mask	0x00000000,0 690              		.fmask	0x00000000,0 691              		.set	noreorder 692              		.set	nomacro 693              		 167:/mnt/hgfs/boot/booter/source/nand.c ****     NAND_REG_ADDR = column; 694              		.loc 1 167 0 695 0478 0000023C 		lui	$2,%hi(nand_virtual_address) 168:/mnt/hgfs/boot/booter/source/nand.c ****     if (nand_device.page_size == 2048) 696              		.loc 1 168 0 697 047c 0000033C 		lui	$3,%hi(nand_device+4) 698              		.loc 1 167 0 699 0480 0000468C 		lw	$6,%lo(nand_virtual_address)($2) 700              		.loc 1 168 0 701 0484 0800658C 		lw	$5,%lo(nand_device+4)($3) 702 0488 00080224 		li	$2,2048			# 0x800 169:/mnt/hgfs/boot/booter/source/nand.c ****         NAND_REG_ADDR = column >> 8; 703              		.loc 1 169 0 704 048c 031A0400 		sra	$3,$4,8 705              		.loc 1 167 0 706 0490 0400C4A4 		sh	$4,4($6) 707              		.loc 1 168 0 708 0494 0300A210 		beq	$5,$2,$L66 709 0498 00000000 		nop 710              	 711 049c 0800E003 		j	$31 712 04a0 00000000 		nop 713              	 714              	$L66: 715              		.loc 1 169 0 716 04a4 0400C3A4 		sh	$3,4($6) 717 04a8 0800E003 		j	$31 718 04ac 00000000 		nop 719              	 720              		.set	macro 721              		.set	reorder 722              	$LFE9: 723              		.end	nand_set_column_address 724              		.align	2 725              		.globl	nand_set_page_address 726              		.ent	nand_set_page_address 727              		.type	nand_set_page_address, @function 728              	nand_set_page_address: 729              	$LFB10: 170:/mnt/hgfs/boot/booter/source/nand.c **** } 171:/mnt/hgfs/boot/booter/source/nand.c ****  172:/mnt/hgfs/boot/booter/source/nand.c **** void nand_set_page_address(int page) 173:/mnt/hgfs/boot/booter/source/nand.c **** { 730              		.loc 1 173 0 731              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 732              		.mask	0x00000000,0 733              		.fmask	0x00000000,0GAS LISTING /tmp/cc4NTrNa.s 			page 17 734              		.set	noreorder 735              		.set	nomacro 736              		 174:/mnt/hgfs/boot/booter/source/nand.c ****     NAND_REG_ADDR = page; 175:/mnt/hgfs/boot/booter/source/nand.c ****     NAND_REG_ADDR = page >> 8; 176:/mnt/hgfs/boot/booter/source/nand.c ****     if (nand_device.page_count > 0x10000) 737              		.loc 1 176 0 738 04b0 0000023C 		lui	$2,%hi(nand_device+8) 739 04b4 0C00458C 		lw	$5,%lo(nand_device+8)($2) 740              		.loc 1 174 0 741 04b8 0000033C 		lui	$3,%hi(nand_virtual_address) 742 04bc 0000668C 		lw	$6,%lo(nand_virtual_address)($3) 743              		.loc 1 176 0 744 04c0 0100023C 		li	$2,65536			# 0x10000 745              		.loc 1 175 0 746 04c4 031A0400 		sra	$3,$4,8 747              		.loc 1 176 0 748 04c8 2A104500 		slt	$2,$2,$5 749              		.loc 1 174 0 750 04cc 0400C4A4 		sh	$4,4($6) 177:/mnt/hgfs/boot/booter/source/nand.c ****         NAND_REG_ADDR = page >> 16;

⌨️ 快捷键说明

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