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

📄 ddma.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 393:/mnt/hgfs/boot/booter/source/ddma.c ****  *     Returns : 394:/mnt/hgfs/boot/booter/source/ddma.c ****  *      TRUE		On Success 395:/mnt/hgfs/boot/booter/source/ddma.c ****  *		FALSE		On Failure 396:/mnt/hgfs/boot/booter/source/ddma.c ****  * 397:/mnt/hgfs/boot/booter/source/ddma.c ****  */ 398:/mnt/hgfs/boot/booter/source/ddma.c **** int ddma_lit_wr( void *channel, void *dst, uint32 size ) 399:/mnt/hgfs/boot/booter/source/ddma.c **** {	 672              		.loc 1 399 0 673              		.frame	$sp,32,$31		# vars= 0, regs= 4/0, args= 16, gp= 0 674              		.mask	0x80070000,-4 675              		.fmask	0x00000000,0 676              		.set	noreorder 677              		.set	nomacro 678              		 679 04ac E0FFBD27 		addiu	$sp,$sp,-32 680              	$LCFI22:GAS LISTING /tmp/ccEQxguf.s 			page 20 681 04b0 1800B2AF 		sw	$18,24($sp) 682              	$LCFI23: 683 04b4 1400B1AF 		sw	$17,20($sp) 684              	$LCFI24: 685 04b8 1000B0AF 		sw	$16,16($sp) 686              	$LCFI25: 687 04bc 2188A000 		move	$17,$5 688 04c0 21808000 		move	$16,$4 689 04c4 1C00BFAF 		sw	$31,28($sp) 690              	$LCFI26: 691              		.loc 1 399 0 400:/mnt/hgfs/boot/booter/source/ddma.c **** 	DDMA_DESCRIPTOR *d; 401:/mnt/hgfs/boot/booter/source/ddma.c **** 	 402:/mnt/hgfs/boot/booter/source/ddma.c **** 	d = ddma_next_descriptor( channel ); 692              		.loc 1 402 0 693 04c8 0000000C 		jal	ddma_next_descriptor 694 04cc 2190C000 		move	$18,$6 695              	 696 04d0 21284000 		move	$5,$2 403:/mnt/hgfs/boot/booter/source/ddma.c **** 	if ( NULL == d ) return FALSE; 404:/mnt/hgfs/boot/booter/source/ddma.c **** #ifdef DEBUG 405:/mnt/hgfs/boot/booter/source/ddma.c **** 	printf("ddma_lit_wr: Using %X\n", d ); 406:/mnt/hgfs/boot/booter/source/ddma.c **** #endif 407:/mnt/hgfs/boot/booter/source/ddma.c **** 	if ( NULL != dst )  408:/mnt/hgfs/boot/booter/source/ddma.c **** 		d->u.std.dest0 = ~0xA0000000 & (uint32)dst; 409:/mnt/hgfs/boot/booter/source/ddma.c **** 	d->u.std.cmd1 = size; 410:/mnt/hgfs/boot/booter/source/ddma.c ****  411:/mnt/hgfs/boot/booter/source/ddma.c **** 	// We could allow user to use 4 bytes of the context  412:/mnt/hgfs/boot/booter/source/ddma.c **** //	d->c.p = context; 413:/mnt/hgfs/boot/booter/source/ddma.c ****  414:/mnt/hgfs/boot/booter/source/ddma.c **** 	d->u.std.cmd0 |= DDMA_DESCCMD_V; 415:/mnt/hgfs/boot/booter/source/ddma.c **** 	ddma_doorbell( (CHANNEL*)channel ); 697              		.loc 1 415 0 698 04d4 21200002 		move	$4,$16 699              		.loc 1 403 0 700 04d8 0E00A010 		beq	$5,$0,$L56 701 04dc 21100000 		move	$2,$0 702              	 703              		.loc 1 408 0 704 04e0 FF5F023C 		li	$2,1610547200			# 0x5fff0000 705 04e4 FFFF4234 		ori	$2,$2,0xffff 706              		.loc 1 407 0 707 04e8 02002012 		beq	$17,$0,$L58 708 04ec 24102202 		and	$2,$17,$2 709              	 710              		.loc 1 408 0 711 04f0 1000A2AC 		sw	$2,16($5) 712              	$L58: 713              		.loc 1 409 0 714 04f4 0400B2AC 		sw	$18,4($5) 715              		.loc 1 414 0 716 04f8 0000A28C 		lw	$2,0($5) 717 04fc 0080033C 		li	$3,-2147483648			# 0xffffffff80000000 718 0500 25104300 		or	$2,$2,$3 719 0504 0000A2AC 		sw	$2,0($5) 720              		.loc 1 415 0 721 0508 0000000C 		jal	ddma_doorbellGAS LISTING /tmp/ccEQxguf.s 			page 21 722 050c 00000000 		nop 723              	 416:/mnt/hgfs/boot/booter/source/ddma.c ****  417:/mnt/hgfs/boot/booter/source/ddma.c **** 	return TRUE; 724              		.loc 1 417 0 725 0510 01000224 		li	$2,1			# 0x1 726              	$L56: 418:/mnt/hgfs/boot/booter/source/ddma.c **** } 727              		.loc 1 418 0 728 0514 1C00BF8F 		lw	$31,28($sp) 729 0518 1800B28F 		lw	$18,24($sp) 730 051c 1400B18F 		lw	$17,20($sp) 731 0520 1000B08F 		lw	$16,16($sp) 732 0524 0800E003 		j	$31 733 0528 2000BD27 		addiu	$sp,$sp,32 734              	 735              		.set	macro 736              		.set	reorder 737              	$LFE11: 738              		.end	ddma_lit_wr 739              		.align	2 740              		.globl	ddma_tx 741              		.ent	ddma_tx 742              		.type	ddma_tx, @function 743              	ddma_tx: 744              	$LFB12: 419:/mnt/hgfs/boot/booter/source/ddma.c ****  420:/mnt/hgfs/boot/booter/source/ddma.c **** /* 421:/mnt/hgfs/boot/booter/source/ddma.c ****  *   Function   :   ddma_tx 422:/mnt/hgfs/boot/booter/source/ddma.c ****  * 423:/mnt/hgfs/boot/booter/source/ddma.c ****  *      This function is a helper routine to place a user's buffer pointer 424:/mnt/hgfs/boot/booter/source/ddma.c ****  *		in the descriptor. Set size attribute and ring the channel's  425:/mnt/hgfs/boot/booter/source/ddma.c ****  *		doorbell to begin transaction. 426:/mnt/hgfs/boot/booter/source/ddma.c ****  * 427:/mnt/hgfs/boot/booter/source/ddma.c ****  *   Parameters : 428:/mnt/hgfs/boot/booter/source/ddma.c ****  *      channel		Pointer	to the ddma channel ( local struct ) 429:/mnt/hgfs/boot/booter/source/ddma.c ****  *		src			Pointer to the data 430:/mnt/hgfs/boot/booter/source/ddma.c ****  *		dst			Pointer where the data should go -- useful for MEM->MEM ddma 431:/mnt/hgfs/boot/booter/source/ddma.c ****  *		size		Size of the data in bytes 432:/mnt/hgfs/boot/booter/source/ddma.c ****  * 433:/mnt/hgfs/boot/booter/source/ddma.c ****  *     Returns : 434:/mnt/hgfs/boot/booter/source/ddma.c ****  *      TRUE		On Success 435:/mnt/hgfs/boot/booter/source/ddma.c ****  *		FALSE		On Failure 436:/mnt/hgfs/boot/booter/source/ddma.c ****  * 437:/mnt/hgfs/boot/booter/source/ddma.c ****  */ 438:/mnt/hgfs/boot/booter/source/ddma.c **** int ddma_tx( void *channel, void *src, void *dst, uint32 size ) 439:/mnt/hgfs/boot/booter/source/ddma.c **** {	 745              		.loc 1 439 0 746              		.frame	$sp,40,$31		# vars= 0, regs= 5/0, args= 16, gp= 0 747              		.mask	0x800f0000,-8 748              		.fmask	0x00000000,0 749 052c D8FFBD27 		addiu	$sp,$sp,-40 750              	$LCFI27: 751 0530 1C00B3AF 		sw	$19,28($sp) 752              	$LCFI28: 753 0534 1800B2AF 		sw	$18,24($sp) 754              	$LCFI29:GAS LISTING /tmp/ccEQxguf.s 			page 22 755 0538 1400B1AF 		sw	$17,20($sp) 756              	$LCFI30: 757 053c 1000B0AF 		sw	$16,16($sp) 758              	$LCFI31: 759 0540 21988000 		move	$19,$4 760 0544 2180A000 		move	$16,$5 761 0548 2000BFAF 		sw	$31,32($sp) 762              	$LCFI32: 763              		.loc 1 439 0 764 054c 2188C000 		move	$17,$6 440:/mnt/hgfs/boot/booter/source/ddma.c **** 	DDMA_DESCRIPTOR *d; 441:/mnt/hgfs/boot/booter/source/ddma.c **** 	 442:/mnt/hgfs/boot/booter/source/ddma.c **** 	d = ddma_next_descriptor( channel ); 765              		.loc 1 442 0 766              		.set	noreorder 767              		.set	nomacro 768 0550 0000000C 		jal	ddma_next_descriptor 769 0554 2190E000 		move	$18,$7 770              		.set	macro 771              		.set	reorder 772              	 773 0558 21204000 		move	$4,$2 443:/mnt/hgfs/boot/booter/source/ddma.c **** 	if ( NULL == d ) return FALSE; 444:/mnt/hgfs/boot/booter/source/ddma.c **** #ifdef DEBUG 445:/mnt/hgfs/boot/booter/source/ddma.c **** 	printf("ddma_tx: Using %X\n", d ); 446:/mnt/hgfs/boot/booter/source/ddma.c **** #endif 447:/mnt/hgfs/boot/booter/source/ddma.c ****   	d->u.std.source0 = ~0xA0000000 & (uint32)src; 774              		.loc 1 447 0 775 055c FF5F023C 		li	$2,1610547200			# 0x5fff0000 776 0560 FFFF4334 		ori	$3,$2,0xffff 777 0564 24800302 		and	$16,$16,$3 778              		.loc 1 443 0 779              		.set	noreorder 780              		.set	nomacro 781 0568 0F008010 		beq	$4,$0,$L59 782 056c 21100000 		move	$2,$0 783              		.set	macro 784              		.set	reorder 785              	 448:/mnt/hgfs/boot/booter/source/ddma.c **** 	if ( NULL != dst )  449:/mnt/hgfs/boot/booter/source/ddma.c **** 		d->u.std.dest0 = ~0xA0000000 & (uint32)dst; 786              		.loc 1 449 0 787 0570 24102302 		and	$2,$17,$3 788              		.loc 1 447 0 789 0574 080090AC 		sw	$16,8($4) 790              		.loc 1 448 0 791 0578 02002012 		beq	$17,$0,$L61 791      00000000  792              		.loc 1 449 0 793 0580 100082AC 		sw	$2,16($4) 794              	$L61: 450:/mnt/hgfs/boot/booter/source/ddma.c **** 	d->u.std.cmd1 = size; 795              		.loc 1 450 0 796 0584 040092AC 		sw	$18,4($4) 451:/mnt/hgfs/boot/booter/source/ddma.c ****  452:/mnt/hgfs/boot/booter/source/ddma.c **** 	// We could allow user to use 4 bytes of the context  453:/mnt/hgfs/boot/booter/source/ddma.c **** //	d->c.p = context;GAS LISTING /tmp/ccEQxguf.s 			page 23 454:/mnt/hgfs/boot/booter/source/ddma.c ****  455:/mnt/hgfs/boot/booter/source/ddma.c **** 	d->u.std.cmd0 |= DDMA_DESCCMD_V; 797              		.loc 1 455 0 798 0588 0000828C 		lw	$2,0($4) 799 058c 0080033C 		li	$3,-2147483648			# 0xffffffff80000000 800 0590 25104300 		or	$2,$2,$3 801 0594 000082AC 		sw	$2,0($4) 456:/mnt/hgfs/boot/booter/source/ddma.c **** #ifdef DEBUG 457:/mnt/hgfs/boot/booter/source/ddma.c **** 	printf("ddma_tx: cmd0 == %X\n", d->u.std.cmd0 ); 458:/mnt/hgfs/boot/booter/source/ddma.c **** #endif 459:/mnt/hgfs/boot/booter/source/ddma.c **** 	asm("sync"); 802              		.loc 1 459 0 803              	#APP 804 0598 0F000000 		sync 460:/mnt/hgfs/boot/booter/source/ddma.c **** 	ddma_doorbell( (CHANNEL*)channel ); 805              		.loc 1 460 0 806              	#NO_APP 807              		.set	noreorder 808              		.set	nomacro 809 059c 0000000C 		jal	ddma_doorbell 810 05a0 21206002 		move	$4,$19 811              		.set	macro 812              		.set	reorder 813              	 461:/mnt/hgfs/boot/booter/source/ddma.c ****  462:/mnt/hgfs/boot/booter/source/ddma.c **** 	return TRUE; 814              		.loc 1 462 0 815 05a4 01000224 		li	$2,1			# 0x1 816              	$L59: 463:/mnt/hgfs/boot/booter/source/ddma.c **** } 817              		.loc 1 463 0 818 05a8 2000BF8F 		lw	$31,32($sp) 819 05ac 1C00B38F 		lw	$19,28($sp) 820 05b0 1800B28F 		lw	$18,24($sp) 821 05b4 1400B18F 		lw	$17,20($sp) 822 05b8 1000B08F 		lw	$16,16($sp) 823              		.set	noreorder 824              		.set	nomacro 825 05bc 0800E003 		j	$31 826 05c0 2800BD27 		addiu	$sp,$sp,40 827              		.set	macro 828              		.set	reorder 829              	 830              	$LFE12: 831              		.end	ddma_tx 832              		.align	2 833              		.globl	ddma_rx 834              		.ent	ddma_rx 835              		.type	ddma_rx, @function 836              	ddma_rx: 837              	$LFB13: 464:/mnt/hgfs/boot/booter/source/ddma.c ****  465:/mnt/hgfs/boot/booter/source/ddma.c **** /* 466:/mnt/hgfs/boot/booter/source/ddma.c ****  *   Function   :   ddma_rx 467:/mnt/hgfs/boot/booter/source/ddma.c ****  * 468:/mnt/hgfs/boot/booter/source/ddma.c ****  *      This function is a helper routine to place a user's buffer pointer 469:/mnt/hgfs/boot/booter/source/ddma.c ****  *		in the descriptor. Set size attribute and ring the channel's GAS LISTING /tmp/ccEQxguf.s 			page 24 470:/mnt/hgfs/boot/booter/source/ddma.c ****  *		doorbell to begin transaction. 471:/mnt/hgfs/boot/booter/source/ddma.c ****  * 472:/mnt/hgfs/boot/booter/source/ddma.c ****  *   Parameters : 473:/mnt/hgfs/boot/booter/source/ddma.c ****  *      channel		Pointer	to the ddma channel ( local struct ) 474:/mnt/hgfs/boot/booter/source/ddma.c ****  * 		dest		Pointer to the destination data 475:/mnt/hgfs/boot/booter/source/ddma.c ****  *		size		Size of the data in bytes 476:/mnt/hgfs/boot/booter/source/ddma.c ****  * 477:/mnt/hgfs/boot/booter/source/ddma.c ****  *     Returns : 478:/mnt/hgfs/boot/booter/source/ddma.c ****  *      TRUE		On Success 479:/mnt/hgfs/boot/booter/source/ddma.c ****  *		FALSE		On Failure 480:/mnt/hgfs/boot/booter/source/ddma.c ****  * 481:/mnt/hgfs/boot/booter/source/ddma.c ****  */ 482:/mnt/hgfs/boot/booter/source/ddma.c **** int ddma_rx( void *channel, void *dst, uint32 size ) 483:/mnt/hgfs/boot/booter/source/ddma.c **** {	 838              		.loc 1 483 0 839              		.frame	$sp,32,$31		# vars= 0, regs= 4/0, args= 16, gp= 0 840              		.mask	0x80070000,-4 841              		.fmask	0x00000000,0 842              		.set	noreorder 843              		.set	nomacro 844              		 845 05c4 E0

⌨️ 快捷键说明

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