📄 nand.lst
字号:
199 .loc 1 96 0 200 .loc 1 42 0 201 0124 4400A210 beq $5,$2,$L53 202 0128 1000023C li $2,1048576 # 0x100000 203 204 012c A600A228 slt $2,$5,166 205 0130 33004014 bne $2,$0,$L45 206 0134 A3000224 li $2,163 # 0xa3 207 208 0138 AA000224 li $2,170 # 0xaa 209 .loc 1 78 0 210 .loc 1 42 0 211 013c 5900A210 beq $5,$2,$L54 212 0140 0200023C li $2,131072 # 0x20000 213 214 0144 AC000224 li $2,172 # 0xac 215 0148 5C00A210 beq $5,$2,$L55 216 014c 00000000 nop 217 218 $L34: 219 .loc 1 99 0 220 0150 0000023C lui $2,%hi(nand_device) 221 .loc 1 102 0 222 0154 21200000 move $4,$0 223 .loc 1 100 0 224 0158 04004324 addiu $3,$2,%lo(nand_device) 225 .loc 1 99 0 226 015c 040040AC sw $0,%lo(nand_device)($2) 227 .loc 1 106 0 228 0160 21108000 move $2,$4 229 .loc 1 101 0 230 0164 080060AC sw $0,8($3)GAS LISTING /tmp/cc4NTrNa.s page 7 231 .loc 1 100 0 232 .loc 1 106 0 233 0168 0800E003 j $31 234 016c 040060AC sw $0,4($3) 235 236 $L39: 237 .loc 1 76 0 238 .loc 1 42 0 239 0170 4B00A210 beq $5,$2,$L27 240 0174 0000043C lui $4,%hi(nand_device) 241 242 0178 DB00A228 slt $2,$5,219 243 017c 2A004014 bne $2,$0,$L46 244 0180 D5000224 li $2,213 # 0xd5 245 246 0184 DC000224 li $2,220 # 0xdc 247 .loc 1 84 0 248 .loc 1 42 0 249 0188 4D00A210 beq $5,$2,$L56 250 018c 0400023C li $2,262144 # 0x40000 251 252 0190 F1000224 li $2,241 # 0xf1 253 0194 EEFFA214 bne $5,$2,$L34 254 0198 00000000 nop 255 256 $L49: 257 .loc 1 72 0 258 019c 0100023C li $2,65536 # 0x10000 259 .loc 1 71 0 260 01a0 04008524 addiu $5,$4,%lo(nand_device) 261 .loc 1 94 0 262 01a4 08000324 li $3,8 # 0x8 263 .loc 1 96 0 264 01a8 0800A2AC sw $2,8($5) 265 .loc 1 94 0 266 01ac 040083AC sw $3,%lo(nand_device)($4) 267 .loc 1 95 0 268 01b0 00080224 li $2,2048 # 0x800 269 $L48: 270 .loc 1 105 0 271 01b4 01000424 li $4,1 # 0x1 272 .loc 1 95 0 273 01b8 41000008 j $L14 274 01bc 0400A2AC sw $2,4($5) 275 276 $L36: 277 .loc 1 58 0 278 .loc 1 42 0 279 01c0 2600A210 beq $5,$2,$L57 280 01c4 0000043C lui $4,%hi(nand_device) 281 282 01c8 7700A228 slt $2,$5,119 283 01cc 2A004014 bne $2,$0,$L47 284 01d0 75000224 li $2,117 # 0x75 285 286 01d4 88FFA224 addiu $2,$5,-120 287 01d8 0200422C sltu $2,$2,2GAS LISTING /tmp/cc4NTrNa.s page 8 288 01dc DCFF4010 beq $2,$0,$L34 289 01e0 00000000 nop 290 291 .loc 1 66 0 292 01e4 0400023C li $2,262144 # 0x40000 293 .loc 1 65 0 294 01e8 04008524 addiu $5,$4,%lo(nand_device) 295 .loc 1 54 0 296 01ec 0800A2AC sw $2,8($5) 297 .loc 1 52 0 298 01f0 08000324 li $3,8 # 0x8 299 .loc 1 53 0 300 01f4 00020224 li $2,512 # 0x200 301 .loc 1 52 0 302 01f8 3F000008 j $L43 303 01fc 040083AC sw $3,%lo(nand_device)($4) 304 305 $L45: 306 .loc 1 42 0 307 0200 D3FFA214 bne $5,$2,$L34 308 0204 00000000 nop 309 310 .loc 1 88 0 311 0208 0000043C lui $4,%hi(nand_device) 312 $L52: 313 .loc 1 90 0 314 020c 0800023C li $2,524288 # 0x80000 315 .loc 1 89 0 316 0210 04008524 addiu $5,$4,%lo(nand_device) 317 .loc 1 96 0 318 0214 0800A2AC sw $2,8($5) 319 .loc 1 94 0 320 0218 08000324 li $3,8 # 0x8 321 .loc 1 95 0 322 021c 00080224 li $2,2048 # 0x800 323 .loc 1 94 0 324 0220 6D000008 j $L48 325 0224 040083AC sw $3,%lo(nand_device)($4) 326 327 $L46: 328 .loc 1 42 0 329 0228 C9FFA214 bne $5,$2,$L34 330 022c 00000000 nop 331 332 .loc 1 94 0 333 0230 0000043C lui $4,%hi(nand_device) 334 .loc 1 96 0 335 0234 1000023C li $2,1048576 # 0x100000 336 $L53: 337 .loc 1 95 0 338 0238 04008524 addiu $5,$4,%lo(nand_device) 339 .loc 1 96 0 340 023c 0800A2AC sw $2,8($5) 341 .loc 1 94 0 342 0240 08000324 li $3,8 # 0x8 343 .loc 1 95 0 344 0244 00080224 li $2,2048 # 0x800GAS LISTING /tmp/cc4NTrNa.s page 9 345 .loc 1 94 0 346 0248 6D000008 j $L48 347 024c 040083AC sw $3,%lo(nand_device)($4) 348 349 $L37: 350 .loc 1 42 0 351 0250 BFFFA214 bne $5,$2,$L34 352 0254 00000000 nop 353 354 .loc 1 58 0 355 0258 0000043C lui $4,%hi(nand_device) 356 $L57: 357 .loc 1 60 0 358 025c 0200023C li $2,131072 # 0x20000 359 .loc 1 59 0 360 0260 04008524 addiu $5,$4,%lo(nand_device) 361 .loc 1 54 0 362 0264 0800A2AC sw $2,8($5) 363 .loc 1 52 0 364 0268 08000324 li $3,8 # 0x8 365 .loc 1 53 0 366 026c 00020224 li $2,512 # 0x200 367 .loc 1 52 0 368 0270 3F000008 j $L43 369 0274 040083AC sw $3,%lo(nand_device)($4) 370 371 $L47: 372 .loc 1 42 0 373 0278 B5FFA214 bne $5,$2,$L34 374 027c 00000000 nop 375 376 .loc 1 52 0 377 0280 0000043C lui $4,%hi(nand_device) 378 .loc 1 54 0 379 0284 0100023C li $2,65536 # 0x10000 380 $L51: 381 .loc 1 53 0 382 0288 04008524 addiu $5,$4,%lo(nand_device) 383 .loc 1 54 0 384 028c 0800A2AC sw $2,8($5) 385 .loc 1 52 0 386 0290 08000324 li $3,8 # 0x8 387 .loc 1 53 0 388 0294 00020224 li $2,512 # 0x200 389 .loc 1 52 0 390 0298 3F000008 j $L43 391 029c 040083AC sw $3,%lo(nand_device)($4) 392 393 $L27: 394 .loc 1 78 0 395 02a0 0200023C li $2,131072 # 0x20000 396 $L54: 397 .loc 1 77 0 398 02a4 04008524 addiu $5,$4,%lo(nand_device) 399 .loc 1 96 0 400 02a8 0800A2AC sw $2,8($5) 401 .loc 1 94 0GAS LISTING /tmp/cc4NTrNa.s page 10 402 02ac 08000324 li $3,8 # 0x8 403 .loc 1 95 0 404 02b0 00080224 li $2,2048 # 0x800 405 .loc 1 94 0 406 02b4 6D000008 j $L48 407 02b8 040083AC sw $3,%lo(nand_device)($4) 408 409 $L55: 410 .loc 1 84 0 411 02bc 0400023C li $2,262144 # 0x40000 412 $L56: 413 .loc 1 83 0 414 02c0 04008524 addiu $5,$4,%lo(nand_device) 415 .loc 1 96 0 416 02c4 0800A2AC sw $2,8($5) 417 .loc 1 94 0 418 02c8 08000324 li $3,8 # 0x8 419 .loc 1 95 0 420 02cc 00080224 li $2,2048 # 0x800 421 .loc 1 94 0 422 02d0 6D000008 j $L48 423 02d4 040083AC sw $3,%lo(nand_device)($4) 424 425 .set macro 426 .set reorder 427 $LFE4: 428 .end nand_load_device 429 .align 2 430 .globl nand_config 431 .ent nand_config 432 .type nand_config, @function 433 nand_config: 434 $LFB5: 107:/mnt/hgfs/boot/booter/source/nand.c **** 108:/mnt/hgfs/boot/booter/source/nand.c **** /* 109:/mnt/hgfs/boot/booter/source/nand.c **** Nand config sets device type and width. Timings does not reflect absolute min values for a 110:/mnt/hgfs/boot/booter/source/nand.c **** Typical NAND device. NAND Support exists on NANDCS0 and NANDCS1 only. 111:/mnt/hgfs/boot/booter/source/nand.c **** */ 112:/mnt/hgfs/boot/booter/source/nand.c **** void nand_config() 113:/mnt/hgfs/boot/booter/source/nand.c **** { 435 .loc 1 113 0 436 .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0 437 .mask 0x80000000,-8 438 .fmask 0x00000000,0 439 .set noreorder 440 .set nomacro 441 442 02d8 E8FFBD27 addiu $sp,$sp,-24 443 $LCFI0: 114:/mnt/hgfs/boot/booter/source/nand.c **** //NAND devices requires GPIO ouput High 115:/mnt/hgfs/boot/booter/source/nand.c **** gpioWrite(NAND_CE0, 1); 444 .loc 1 115 0 445 02dc 15000424 li $4,21 # 0x15 446 .loc 1 113 0 447 02e0 1000BFAF sw $31,16($sp) 448 $LCFI1: 449 .loc 1 115 0GAS LISTING /tmp/cc4NTrNa.s page 11 450 02e4 0000000C jal gpioWrite 451 02e8 01000524 li $5,1 # 0x1 452 116:/mnt/hgfs/boot/booter/source/nand.c **** gpioWrite(NAND_CE1, 1); 453 .loc 1 116 0 454 02ec 14000424 li $4,20 # 0x14 455 02f0 0000000C jal gpioWrite 456 02f4 01000524 li $5,1 # 0x1 457 117:/mnt/hgfs/boot/booter/source/nand.c **** 118:/mnt/hgfs/boot/booter/source/nand.c **** //Map physical address to TLB virtual address 119:/mnt/hgfs/boot/booter/source/nand.c **** nand_virtual_address = mapPhysicalAddress (NAND_PHYS_ADDR, NAND_ADDR_SPACE_SIZE, 0); 458 .loc 1 119 0 459 02f8 0020043C li $4,536870912 # 0x20000000 460 02fc 21280000 move $5,$0 461 0300 FF030624 li $6,1023 # 0x3ff 462 0304 0000000C jal mapPhysicalAddress 463 0308 21380000 move $7,$0 464 465 030c 0000033C lui $3,%hi(nand_virtual_address) 120:/mnt/hgfs/boot/booter/source/nand.c **** 121:/mnt/hgfs/boot/booter/source/nand.c **** //Configure Static Bus 122:/mnt/hgfs/boot/booter/source/nand.c **** NAND_SB_REG_CTRL = NAND_CTRL_INTERRUPT; 466 .loc 1 122 0 467 0310 00B4093C li $9,-1275068416 # 0xffffffffb4000000 468 .loc 1 119 0 469 0314 000062AC sw $2,%lo(nand_virtual_address)($3) 123:/mnt/hgfs/boot/booter/source/nand.c **** NAND_SB_REG_CONFIG = SMC_NAND | SMC_NAND_WIDTH(1); 470 .loc 1 123 0 471 0318 4000023C li $2,4194304 # 0x400000 472 .loc 1 122 0 473 031c 00112A35 ori $10,$9,0x1100 474 .loc 1 123 0 475 0320 10102B35 ori $11,$9,0x1010 476 0324 05004234 ori $2,$2,0x5 477 .loc 1 122 0 478 0328 00010824 li $8,256 # 0x100 479 032c 000048AD sw $8,0($10) 480 .loc 1 123 0 481 0330 000062AD sw $2,0($11) 124:/mnt/hgfs/boot/booter/source/nand.c **** NAND_SB_REG_TIMING = NAND_TIMING; 125:/mnt/hgfs/boot/booter/source/nand.c **** NAND_SB_REG_ADDR = NAND_SB_ENABLE | NAND_SB_CSBA(NAND_PHYS_ADDR) | NAND_SB_CSMASK(NAND_ADDR_S 482 .loc 1 125 0 483 0334 0012023C li $2,301989888 # 0x12000000 484 0338 18102C35 ori $12,$9,0x1018 485 .loc 1 124 0 486 033c 74770324 li $3,30580 # 0x7774 126:/mnt/hgfs/boot/booter/source/nand.c **** 127:/mnt/hgfs/boot/booter/source/nand.c **** //Enable interrupt for Nand Ready/Not Busy signal 128:/mnt/hgfs/boot/booter/source/nand.c **** nand_irq_fired = 0; 129:/mnt/hgfs/boot/booter/source/nand.c **** 130:/mnt/hgfs/boot/booter/source/nand.c **** cpuIrqEnable(NAND_IRQ_ID, NAND_POLARITY, (void *)nand_irq_handler, 0); 487 .loc 1 130 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -