freemyipod r378 - Code Review

Jump to: navigation, search
Repository:freemyipod
Revision:r377‎ | r378 | r379 >
Date:04:23, 23 December 2010
Author:theseven
Status:new
Tags:
Comment:
Fix S5L8702 LCD type 2
Modified paths:
  • /apps/installer-classic/bootstub/bootstub.S (modified) (history)
  • /embios/trunk/loader/ipodclassic/main.S (modified) (history)
  • /embios/trunk/target/ipodnano3g/lcd.c (modified) (history)
  • /umsboot/target/ipodclassic/lcd.c (modified) (history)

Diff [purge]

Index: apps/installer-classic/bootstub/bootstub.S
@@ -422,8 +422,8 @@
423423 .hword 0xce88
424424 .hword 0x4013
425425 .hword 0x4029
 426+ .hword 0xc000
426427 lcddata_2:
427 - .hword 0xc000
428428 lcddata_3:
429429 .hword 0x4008
430430 .hword 0x0808
@@ -446,89 +446,89 @@
447447 .hword 0x8190
448448 .byte 0x21
449449 .hword 0x4300
450 - .hword 0x0506
 450+ .hword 0x0307
451451 .hword 0x4301
 452+ .hword 0x0003
 453+ .hword 0x4302
452454 .hword 0x0402
453 - .hword 0x4302
454 - .hword 0x0706
455455 .hword 0x4303
456456 .hword 0x0303
457457 .hword 0x4304
458 - .hword 0x0100
 458+ .hword 0x0300
459459 .hword 0x4305
460 - .hword 0x0207
 460+ .hword 0x0407
461461 .hword 0x4306
462 - .hword 0x170e
 462+ .hword 0x1c04
463463 .hword 0x4307
464 - .hword 0x0506
 464+ .hword 0x0307
465465 .hword 0x4308
 466+ .hword 0x0003
 467+ .hword 0x4309
466468 .hword 0x0402
467 - .hword 0x4309
468 - .hword 0x0706
469469 .hword 0x430a
470470 .hword 0x0303
471471 .hword 0x430b
472 - .hword 0x0100
 472+ .hword 0x0300
473473 .hword 0x430c
474 - .hword 0x0207
 474+ .hword 0x0407
475475 .hword 0x430d
476 - .hword 0x170e
 476+ .hword 0x1c04
477477 .hword 0x4310
478 - .hword 0x0606
 478+ .hword 0x0707
479479 .hword 0x4311
480 - .hword 0x0506
 480+ .hword 0x0407
481481 .hword 0x4312
482 - .hword 0x0707
 482+ .hword 0x0306
483483 .hword 0x4313
484484 .hword 0x0303
485485 .hword 0x4314
486 - .hword 0x0200
 486+ .hword 0x0300
487487 .hword 0x4315
488 - .hword 0x0307
 488+ .hword 0x0407
489489 .hword 0x4316
490 - .hword 0x170e
 490+ .hword 0x1c01
491491 .hword 0x4317
492 - .hword 0x0606
 492+ .hword 0x0707
493493 .hword 0x4318
494 - .hword 0x0506
 494+ .hword 0x0407
495495 .hword 0x4319
496 - .hword 0x0707
 496+ .hword 0x0306
497497 .hword 0x431a
498498 .hword 0x0303
499499 .hword 0x431b
500 - .hword 0x0200
 500+ .hword 0x0300
501501 .hword 0x431c
502 - .hword 0x0307
 502+ .hword 0x0407
503503 .hword 0x431d
504 - .hword 0x170e
 504+ .hword 0x1c01
505505 .hword 0x4320
506 - .hword 0x0707
 506+ .hword 0x0206
507507 .hword 0x4321
508 - .hword 0x0005
 508+ .hword 0x0102
509509 .hword 0x4322
510 - .hword 0x0705
 510+ .hword 0x0404
511511 .hword 0x4323
512512 .hword 0x0303
513513 .hword 0x4324
514514 .hword 0x0300
515515 .hword 0x4325
516 - .hword 0x0707
 516+ .hword 0x0407
517517 .hword 0x4326
518 - .hword 0x1f16
 518+ .hword 0x1c1f
519519 .hword 0x4327
520 - .hword 0x0707
 520+ .hword 0x0206
521521 .hword 0x4328
522 - .hword 0x0005
 522+ .hword 0x0102
523523 .hword 0x4329
524 - .hword 0x0705
 524+ .hword 0x0404
525525 .hword 0x432a
526526 .hword 0x0303
527527 .hword 0x432b
528528 .hword 0x0300
529529 .hword 0x432c
530 - .hword 0x0707
 530+ .hword 0x0407
531531 .hword 0x432d
532 - .hword 0x1f16
 532+ .hword 0x1c1f
533533 .hword 0x4400
534534 .hword 0x001d
535535 .hword 0x4401
@@ -546,9 +546,9 @@
547547 .hword 0x4101
548548 .hword 0x0220
549549 .hword 0x4102
550 - .hword 0x009b
 550+ .hword 0x00bd
551551 .hword 0x4103
552 - .hword 0x1200
 552+ .hword 0x1500
553553 .hword 0x4105
554554 .hword 0x0103
555555 .hword 0x4106
@@ -565,7 +565,7 @@
566566 .hword 0x0500
567567 .hword 0x8107
568568 .byte 0x31
569 - .hword 0x4130
 569+ .hword 0x8130
570570 .byte 0x07
571571 .hword 0xc744
572572 .hword 0x4030
@@ -578,6 +578,8 @@
579579 .hword 0x0173
580580 .hword 0xc000
581581
 582+ .align 2
 583+
582584 lcdbyteseq:
583585 mov r9, r0,lsr#8
584586 and r0, r0, #0xff
@@ -745,12 +747,15 @@
746748 sub r4, r1, #0x04400000 @ R4 = LCDBASE
747749 ldr r0, [r3,#0xc4]
748750 and r8, r0, #0x30 @ R8 = LCD type GPIO bits << 4
 751+ mov r6, #0x80000000
749752 add sp, sp, r8,lsr#3
 753+ tst r8, #0x20
750754 ldrh r0, [sp]
 755+ orrne r6, r6, #0x188
751756 add sp, sp, r0
752 - ldr r0, val_80100db0
753 - str r0, [r4]
 757+ orr r6, r6, #0xc20
754758 mov r0, #0x33
 759+ str r6, [r4]
755760 str r0, [r4,#0x20]
756761 lcdloop:
757762 adr lr, lcdloop
@@ -767,8 +772,11 @@
768773 bne lcdbyteseq
769774 movne r0, r0,lsl#4
770775 bne udelay
 776+ tst r8, #0x20
771777 adr r1, _stubend + 4
 778+ ldreq r6, val_80100db0
772779 ldr r0, _stubend
 780+ streq r6, [r4]
773781 add r0, r1, r0
774782 mov r2, #0x08000000
775783 movepayloadloop:
Index: umsboot/target/ipodclassic/lcd.c
@@ -91,7 +91,7 @@
9292 unsigned int starty, unsigned int endy, void* data, int color)
9393 {
9494 displaylcd_sync();
95 - if (lcd_detect() == 3)
 95+ if (lcd_detect() & 2)
9696 {
9797 lcd_send_cmd(0x210);
9898 lcd_send_data(startx);
Index: embios/trunk/target/ipodnano3g/lcd.c
@@ -88,7 +88,7 @@
8989 unsigned int starty, unsigned int endy, void* data, int color)
9090 {
9191 displaylcd_sync();
92 - if (lcd_detect() == 3)
 92+ if (lcd_detect() & 2)
9393 {
9494 lcd_send_cmd(0x210);
9595 lcd_send_data(startx);
Index: embios/trunk/loader/ipodclassic/main.S
@@ -443,8 +443,8 @@
444444 .hword 0xce88
445445 .hword 0x4013
446446 .hword 0x4029
 447+ .hword 0xc000
447448 lcddata_2:
448 - .hword 0xc000
449449 lcddata_3:
450450 .hword 0x4008
451451 .hword 0x0808
@@ -467,89 +467,89 @@
468468 .hword 0x8190
469469 .byte 0x21
470470 .hword 0x4300
471 - .hword 0x0506
 471+ .hword 0x0307
472472 .hword 0x4301
 473+ .hword 0x0003
 474+ .hword 0x4302
473475 .hword 0x0402
474 - .hword 0x4302
475 - .hword 0x0706
476476 .hword 0x4303
477477 .hword 0x0303
478478 .hword 0x4304
479 - .hword 0x0100
 479+ .hword 0x0300
480480 .hword 0x4305
481 - .hword 0x0207
 481+ .hword 0x0407
482482 .hword 0x4306
483 - .hword 0x170e
 483+ .hword 0x1c04
484484 .hword 0x4307
485 - .hword 0x0506
 485+ .hword 0x0307
486486 .hword 0x4308
 487+ .hword 0x0003
 488+ .hword 0x4309
487489 .hword 0x0402
488 - .hword 0x4309
489 - .hword 0x0706
490490 .hword 0x430a
491491 .hword 0x0303
492492 .hword 0x430b
493 - .hword 0x0100
 493+ .hword 0x0300
494494 .hword 0x430c
495 - .hword 0x0207
 495+ .hword 0x0407
496496 .hword 0x430d
497 - .hword 0x170e
 497+ .hword 0x1c04
498498 .hword 0x4310
499 - .hword 0x0606
 499+ .hword 0x0707
500500 .hword 0x4311
501 - .hword 0x0506
 501+ .hword 0x0407
502502 .hword 0x4312
503 - .hword 0x0707
 503+ .hword 0x0306
504504 .hword 0x4313
505505 .hword 0x0303
506506 .hword 0x4314
507 - .hword 0x0200
 507+ .hword 0x0300
508508 .hword 0x4315
509 - .hword 0x0307
 509+ .hword 0x0407
510510 .hword 0x4316
511 - .hword 0x170e
 511+ .hword 0x1c01
512512 .hword 0x4317
513 - .hword 0x0606
 513+ .hword 0x0707
514514 .hword 0x4318
515 - .hword 0x0506
 515+ .hword 0x0407
516516 .hword 0x4319
517 - .hword 0x0707
 517+ .hword 0x0306
518518 .hword 0x431a
519519 .hword 0x0303
520520 .hword 0x431b
521 - .hword 0x0200
 521+ .hword 0x0300
522522 .hword 0x431c
523 - .hword 0x0307
 523+ .hword 0x0407
524524 .hword 0x431d
525 - .hword 0x170e
 525+ .hword 0x1c01
526526 .hword 0x4320
527 - .hword 0x0707
 527+ .hword 0x0206
528528 .hword 0x4321
529 - .hword 0x0005
 529+ .hword 0x0102
530530 .hword 0x4322
531 - .hword 0x0705
 531+ .hword 0x0404
532532 .hword 0x4323
533533 .hword 0x0303
534534 .hword 0x4324
535535 .hword 0x0300
536536 .hword 0x4325
537 - .hword 0x0707
 537+ .hword 0x0407
538538 .hword 0x4326
539 - .hword 0x1f16
 539+ .hword 0x1c1f
540540 .hword 0x4327
541 - .hword 0x0707
 541+ .hword 0x0206
542542 .hword 0x4328
543 - .hword 0x0005
 543+ .hword 0x0102
544544 .hword 0x4329
545 - .hword 0x0705
 545+ .hword 0x0404
546546 .hword 0x432a
547547 .hword 0x0303
548548 .hword 0x432b
549549 .hword 0x0300
550550 .hword 0x432c
551 - .hword 0x0707
 551+ .hword 0x0407
552552 .hword 0x432d
553 - .hword 0x1f16
 553+ .hword 0x1c1f
554554 .hword 0x4400
555555 .hword 0x001d
556556 .hword 0x4401
@@ -567,9 +567,9 @@
568568 .hword 0x4101
569569 .hword 0x0220
570570 .hword 0x4102
571 - .hword 0x009b
 571+ .hword 0x00bd
572572 .hword 0x4103
573 - .hword 0x1200
 573+ .hword 0x1500
574574 .hword 0x4105
575575 .hword 0x0103
576576 .hword 0x4106
@@ -586,7 +586,7 @@
587587 .hword 0x0500
588588 .hword 0x8107
589589 .byte 0x31
590 - .hword 0x4130
 590+ .hword 0x8130
591591 .byte 0x07
592592 .hword 0xc744
593593 .hword 0x4030
@@ -1049,12 +1049,15 @@
10501050 sub r4, r1, #0x04400000 @ R4 = LCDBASE
10511051 ldr r0, [r3,#0xc4]
10521052 and r8, r0, #0x30 @ R8 = LCD type GPIO bits << 4
 1053+ mov r6, #0x80000000
10531054 add sp, sp, r8,lsr#3
 1055+ tst r8, #0x20
10541056 ldrh r0, [sp]
 1057+ orrne r6, r6, #0x188
10551058 add sp, sp, r0
1056 - ldr r0, val_80100db0
1057 - str r0, [r4]
 1059+ orr r6, r6, #0xc20
10581060 mov r0, #0x33
 1061+ str r6, [r4]
10591062 str r0, [r4,#0x20]
10601063 lcdloop:
10611064 adr lr, lcdloop
@@ -1071,8 +1074,11 @@
10721075 bne lcdbyteseq
10731076 movne r0, r0,lsl#4
10741077 bne udelay
 1078+ tst r8, #0x20
10751079 mov r10, #0x22000000
 1080+ ldreq r6, val_80100db0
10761081 orr r10, r10, #0x10000
 1082+ streq r6, [r4]
10771083 add r11, r10, #0x25800
10781084 mov r0, #-1
10791085 fillbuff:
@@ -1086,8 +1092,8 @@
10871093 printerror:
10881094 bl rendertext
10891095 bl flushcache
1090 - cmp r8, #0x30
1091 - bne leadisprotocol
 1096+ tst r8, #0x20
 1097+ beq leadisprotocol
10921098 mov r9, #0x200
10931099 add r0, r9, #0x10
10941100 bl sendlcdc