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

📄 reset.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
 872              	 873              	/************************************************************************/ 874              	 875              	hardwarereset: 876              	runtimereset: 877              	hibernatereset: 878              		/* 879              		 * Step 1) Initialize DRAM 880              		 * Step 2) Initialize board 881              		 * Step 3) Invoke application 882              		 */ 883 0348 0E001104 		bal 	initDRAM 884 034c 00000000 		nop  885 0350 A5001104 	   	bal	initBOARD 886 0354 00000000 		nop 887 0358 A5000010 		b	alldone 888 035c 00000000 		nop	  889              	 890              	sleepwakeup: 891              		/* 892              		 * Step 1) Wakeup DRAM 893              		 * Step 2) Initialize board 894              		 * Step 3) Resume application 895              		 */ 896 0360 79001104 	  	bal	wakeupDRAM	 897 0364 00000000 	  	nop 898 0368 9F001104 		bal	initBOARD 899 036c 00000000 		nop 900 0370 90B1083C 		la	t0, AU1200_SYS_ADDR 901 0374 18001D8D 		lw	sp, sys_scratch0(t0)GAS LISTING /tmp/ccxobHen.s 			page 18 902 0378 1C001F8D 		lw	ra, sys_scratch1(t0) 903 037c 0800E003 		jr	ra 904 0380 00000000 		nop 905              	 906              	/*************************************************************************/ 907              	 908              	initDRAM: 909              	 910              		/* Only perform DRAM init if running from ROM/Flash */ 911 0384 2150E003 		addu	t2, ra, zero	/* preserve ra */ 912 0388 01000010 		b	getPC 913 038c 00000000 	 	nop 914              	 915              	getPC: 916 0390 001F083C 		lui	t0, 0x1F00      /* ROM/flash address? */ 917 0394 24481F01 		and	t1, t0, ra 918 0398 21F84001 		addu	ra, t2, zero	/* restore ra */ 919 039c 57000915 		bne	t0, t1, initDDRdone 920 03a0 00000000 		nop 921              	 922              		/* wait 1mS before setup */ 923 03a4 0600093C 		li	t1, MEM_1MS 923      E00A2935  924 03ac FFFF2921 	1:	addi	t1, t1, -1 925 03b0 FEFF2015 		bne	t1, zero, 1b 926 03b4 00000000 		nop 927              	 928              	initDDR2: 929 03b8 E011093C 		li	t1, MEM_SDCONFIGA_DDR2 929      0A062935  930 03c0 02A00A3C 		li	t2, MEM_SDCONFIGB_DDR2 930      0C614A35  931 03c8 28010B3C 		li	t3, MEM_SDMODE0_DDR2 931      34336B35  932 03d0 28010C3C 		li	t4, MEM_SDMODE1_DDR2 932      34338C35  933 03d8 32040224 		li	v0, MEM_MR0_DDR2 934 03dc 0040033C 		li	v1, MEM_MR1_DDR2 934      00046334  935 03e4 10220D3C 		li	t5, MEM_SDADDR0_DDR2 935      F003AD35  936 03ec 0F010E3C 		li	t6, MEM_SDADDR1_DDR2 936      FFFFCE35  937 03f4 0080063C 		li	a2, MEM_MR2_DDR2 938 03f8 00C0073C 		li	a3, MEM_MR3_DDR2 939              	 940 03fc 00B4083C 		li	t0, AU1200_MEM_ADDR 941 0400 0800013C 		or	t2, MEM_SDCONFIGB_BB /* block LCD/MAE during init */ 941      25504101  942 0408 400809AD 		sw	t1, mem_sdconfiga(t0) 943 040c 0F000000 		sync 944 0410 48080AAD 		sw	t2, mem_sdconfigb(t0) 945 0414 0F000000 		sync 946 0418 00080BAD 		sw	t3, mem_sdmode0(t0) 947 041c 08080CAD 		sw	t4, mem_sdmode1(t0) 948 0420 20080DAD 		sw	t5, mem_sdaddr0(t0) 949 0424 28080EAD 		sw	t6, mem_sdaddr1(t0)GAS LISTING /tmp/ccxobHen.s 			page 19 950 0428 0F000000 		sync 951              	 952              		/* 953              		 * Initialization per Micron data sheet, page 72: 954              		 * 0. Power sequence 955              		 * 1. 200us delay 956              		 * 2. NOP w/ CKE 957              		 * 3. 400ns delay 958              		 * 4. PRECHARGE ALL 959              		 * 5. EMRS(3), EMRS(2) 960              		 * 6. EMRS(1) (DLL enable, OCD) 961              		 * 7. EMRS (DLL reset activated) 962              		 * 8. 200 clocks of idle 963              		 * 9. PRECHARGE ALL 964              		 * 10. AUTO REFRESH x 2 965              		 * 11. EMRS (DLL reset de-activated) 966              		 * Devices are now ready for use. 967              		 */ 968              	 969              		/* NOP w/ CKE */ 970 042c 4808098D 		lw	t1, mem_sdconfigb(t0) 971 0430 80000A24 		li	t2, MEM_SDCONFIGB_BA 972 0434 25484901 		or	t1, t2, t1 973 0438 480809AD 		sw	t1, mem_sdconfigb(t0) 974 043c 0F000000 		sync 975              	 976              		/* wait 400nS */ 977 0440 9E000924 		li	t1, MEM_400NS 978 0444 FFFF2921 	2:	addi	t1, t1, -1 979 0448 FEFF2015 		bne	t1, zero, 2b 980 044c 00000000 		nop 981              	 982              		/* PRECHARGE ALL */ 983 0450 C00800AD 		sw	zero, mem_sdprecmd(t0) 984 0454 0F000000 		sync 985              	 986              		/* LOAD MODE REGISTER extended mode register 3 */ 987 0458 800807AD 		sw	a3, mem_sdwrmd0(t0)		 988 045c 0F000000 		sync 989 0460 880807AD 		sw	a3, mem_sdwrmd1(t0)		 990 0464 0F000000 		sync 991              	 992              		/* LOAD MODE REGISTER extended mode register 2 */ 993 0468 800806AD 		sw	a2, mem_sdwrmd0(t0)		 994 046c 0F000000 		sync 995 0470 880806AD 		sw	a2, mem_sdwrmd1(t0)		 996 0474 0F000000 		sync 997              	 998              		/* LOAD MODE REGISTER extended mode register 1 */ 999 0478 800803AD 		sw	v1, mem_sdwrmd0(t0)		 1000 047c 0F000000 		sync 1001 0480 800803AD 		sw	v1, mem_sdwrmd0(t0)		 1002 0484 0F000000 		sync 1003              	 1004              		/* LOAD MODE REGISTER normal mode register DLL reset */ 1005              	#define MR0_DLL 0x0100 1006 0488 00014934 		ori	t1, v0, MR0_DLLGAS LISTING /tmp/ccxobHen.s 			page 20 1007 048c 800809AD 		sw	t1, mem_sdwrmd0(t0) 1008 0490 0F000000 		sync 1009 0494 880809AD 		sw	t1, mem_sdwrmd1(t0) 1010 0498 0F000000 		sync 1011              	 1012              		/* 200 clocks of idle */ 1013 049c 4808098D 		lw	t1, mem_sdconfigb(t0) 1014 04a0 80000A24 		li	t2, MEM_SDCONFIGB_BA 1015 04a4 25484901 		or	t1, t2, t1 1016 04a8 480809AD 		sw	t1, mem_sdconfigb(t0) 1017 04ac 0F000000 		sync 1018              	 1019              		/* PRECHARGE ALL */ 1020 04b0 C00800AD 		sw	zero, mem_sdprecmd(t0) 1021 04b4 0F000000 		sync 1022              	 1023              		/* AUTO REFRESH x 2 */ 1024 04b8 C80800AD 		sw	zero, mem_sdautoref(t0) 1025 04bc 0F000000 		sync 1026 04c0 C80800AD 		sw	zero, mem_sdautoref(t0) 1027 04c4 0F000000 		sync 1028              	 1029              		/* LOAD MODE REGISTER normal mode register */ 1030 04c8 800802AD 		sw	v0, mem_sdwrmd0(t0) 1031 04cc 0F000000 		sync 1032 04d0 880802AD 		sw	v0, mem_sdwrmd1(t0) 1033 04d4 0F000000 		sync 1034              	 1035              		/* LOAD MODE REGISTER extended mode register 1 */ 1036              	#define MR1_OCD_DEFAULT 0x0380 1037 04d8 80036934 		ori	t1, v1, MR1_OCD_DEFAULT 1038 04dc 800809AD 		sw	t1, mem_sdwrmd0(t0) 1039 04e0 0F000000 		sync 1040 04e4 880809AD 		sw	t1, mem_sdwrmd1(t0) 1041 04e8 0F000000 		sync 1042 04ec 800803AD 		sw	v1, mem_sdwrmd0(t0) 1043 04f0 0F000000 		sync 1044 04f4 880803AD 		sw	v1, mem_sdwrmd1(t0) 1045 04f8 0F000000 		sync 1046              	 1047              	initDDRdone: 1048              		/* Enable refresh */ 1049 04fc 00B4083C 		li	t0, AU1200_MEM_ADDR 1050 0500 4008098D 		lw	t1, mem_sdconfiga(t0) 1051 0504 00800A3C 		li	t2, MEM_SDCONFIGA_E 1052 0508 25484901 		or	t1, t2, t1 1053 050c 400809AD 		sw	t1, mem_sdconfiga(t0) 1054 0510 0F000000 		sync 1055              	 1056              		/* Allow MAE/LCD */ 1057 0514 4808098D 		lw	t1, mem_sdconfigb(t0) 1058 0518 F7FF0A3C 		li	t2, ~MEM_SDCONFIGB_BB 1058      FFFF4A35  1059 0520 24484901 		and	t1, t2, t1 1060 0524 480809AD 		sw	t1, mem_sdconfigb(t0) 1061 0528 0F000000 		sync 1062              	GAS LISTING /tmp/ccxobHen.s 			page 21 1063              		/* wait 1mS after setup */ 1064 052c 0600093C 		li	t1, MEM_1MS 1064      E00A2935  1065 0534 FFFF2921 	1:	addi	t1, t1, -1 1066 0538 FEFF2015 		bne	t1, zero, 1b 1067 053c 00000000 		nop 1068              	 1069 0540 0800E003 		jr		ra 1070 0544 00000000 		nop 1071              	 1072              	 1073              	/********************************************************************/ 1074              	 1075              	wakeupDRAM:	 1076              	 1077 0548 E011093C 		li	t1, MEM_SDCONFIGA_DDR2 1077      0A062935  1078 0550 02A00A3C 		li	t2, MEM_SDCONFIGB_DDR2 1078      0C614A35  1079 0558 28010B3C 		li	t3, MEM_SDMODE0_DDR2 1079      34336B35  1080 0560 28010C3C 		li	t4, MEM_SDMODE1_DDR2 1080      34338C35  1081 0568 10220D3C 		li	t5, MEM_SDADDR0_DDR2 1081      F003AD35  1082 0570 0F010E3C 		li	t6, MEM_SDADDR1_DDR2 1082      FFFFCE35  1083              	 1084 0578 00B4083C 		li	t0, AU1200_MEM_ADDR 1085 057c 400809AD 		sw	t1, mem_sdconfiga(t0) 1086 0580 0F000000 		sync 1087 0584 48080AAD 		sw	t2, mem_sdconfigb(t0) 1088 0588 0F000000 		sync 1089 058c 00080BAD 		sw	t3, mem_sdmode0(t0) 1090 0590 08080CAD 		sw	t4, mem_sdmode1(t0) 1091 0594 20080DAD 		sw	t5, mem_sdaddr0(t0) 1092 0598 28080EAD 		sw	t6, mem_sdaddr1(t0) 1093 059c 0F000000 		sync 1094              	 1095              		/* Assert DCKE - bring DDR out of self refresh */ 1096              		/* Note that two mem_sdsref are needed since state lost during sleep 		*/ 1097 05a0 D00800AD 		sw	zero, mem_sdsref(t0) 1098 05a4 D00800AD 		sw	zero, mem_sdsref(t0) 1099              	 1100              		/* 1101              		 * Issue 80ns of NOPs 1102              		 */  1103 05a8 4808098D 		lw	t1, mem_sdconfigb(t0) 1104 05ac 80000A24 		li	t2, MEM_SDCONFIGB_BA 1105 05b0 25484901 		or	t1, t2, t1 1106 05b4 480809AD 	 	sw	t1, mem_sdconfigb(t0) 1107 05b8 0F000000 		sync  1108              	 1109              		/* 1110              		 * Perform burst refresh of 8K rows 1111              		 */ 1112 05bc 00200924 		li	t1, 8192GAS LISTING /tmp/ccxobHen.s 			page 22 1113              	burstrefresh: 1114 05c0 C80800AD 		sw	zero, mem_sdautoref(t0) 1115 05c4 FEFF0914 		bne	zero, t1, burstrefresh 1116 05c8 FFFF2921 		addi	t1, t1, -1 1117              	 1118              		/* Enable refresh */ 1119 05cc 4008098D 		lw	t1, mem_sdconfiga(t0) 1120 05d0 00800A3C 		li	t2, MEM_SDCONFIGA_E 1121 05d4 25484901 		or	t1, t2, t1 1122 05d8 400809AD 		sw	t1, mem_sdconfiga(t0) 1123 05dc 0F000000 		sync 1124              	 1125 05e0 0800E003 	 	jr	ra 1126 05e4 00000000 		nop 1127              	 1128              	/********************************************************************/ 1129              	 1130              	initBOARD: 1131              	 1132              		/* 1133              		 * External and/or board-specific peripheral initialization 1134              		 */ 1135              	 1136              		/* Take IDE/LAN/DC/CIM out of reset */ 1137              	/* 1138              		li	t0, DB1200_BCSR_ADDR 1139              		lh	t1, bcsr_resets(t0) 1140              		ori	t1, 0x000F 1141              		sh	t1, bcsr_resets(t0) 1142              		sync 1143              	*/ 1144 05e8 0800E003 		jr	ra 1145 05ec 00000000 		nop 1146              	 1147              	/********************************************************************/ 1148              	 1149              	alldone: 1150              	 1151              		/* 1152              		 * Prepare to invoke application main() 1153              		 */ 1154              		 .set reorder 1155              	  33              	#endif  11              	resetsdram:  12 05f0 00000424 		la a0, 0  13 05f4 0000083C 		la t0, start  13      00000825   14 05fc 08000001 		jr t0  14      00000000   15 0604 00000000 		nop  15      00000000   15      00000000 

⌨️ 快捷键说明

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