CS2 und der MemoryExtension Slot

Boxenweitwurf
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

Ich messe von der ppcboot aus.
Weil beim gestarteten Linux lassen sich ja nicht so einfach Befehle übers COM-Terminal eingeben. (oder doch??) Dazu müssen ja erstmal Treiber geschrieben werden.
Korrigiert micht, falls ich Blödsinn schreibe! ;-)
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

Achja, wenn ich die GPL_A4 Leitung mit einer Logic abhängig von CS2 mache, kommt die dbox erst garnicht auf die Füße. Es sieht so aus, als wäre der Bootloader defekt.
Geht also leider auch nicht so einfach. :cry:
Rudi Ratlos 4711
IDE-Frickler und Berufspessimist
Beiträge: 464
Registriert: Samstag 27. Juli 2002, 21:13

Beitrag von Rudi Ratlos 4711 »

Wenn Du ein Speicheroszi hast, mach doch mal folgendes:

Kanal 1: Pin1 von IC5 (74LVC541, CAM Block)
Kanal 2: Pin19 von IH9 (74LVC245, halt der Ausgang von unserem ominösen Gatter).

Box booten. Wenn der CAM Treiber geladen wird ("cam.c,v 1.22 2003/01/14 10:26:36 jolt Exp" im Bootlog), sollte auf Kanal 1 ein LOW-Inpuls einer bestimmten Länge zu sehen sein (wie lang genau, keine Ahnung, ich weiß nicht wie lange die CPU braucht, um 128KB in das SRAM zu schreiben).

Was passiert in dieser Zeit mit unserem Kanal 2?

RR4711
Astra 19.2/Hotbird 13.0
Philips SAT 2xI Avia 600/eNX mit heilem :D Frontpanel-Prozessor aber irgendwas anderem kaputt :(
Philips SAT 2xI Avia 600/eNX Base 1.6.3/ CRAMFS vom 28.11.2002
Nokia SAT 2xI Avia 500/GTX 32/32/8 BMON1.0/jffs2 Head 28.01.03
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

Hmm, das werd ich nachher mal in meiner Mittagspause messen. (Speicherscope hab ich)
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

Liontamer hat geschrieben:Achja, wenn ich die GPL_A4 Leitung mit einer Logic abhängig von CS2 mache, kommt die dbox erst garnicht auf die Füße. Es sieht so aus, als wäre der Bootloader defekt.
Geht also leider auch nicht so einfach. :cry:
so wird das auch nichts ...

der Hostcontrollblock ist ja zur Zeit abhängig von UPMA (über die GPL_A4)
also entweder RAM Zugriff (UPMA) oder Hostcontrol Zugriff (GPCM/UPMB)

du willst jetzt aber direkt auf Daten-/Adressleitungen zugreifen über CS2 mit GPCM ... also stört der Hostcontrolblock ....
also darfst du nicht die GPL_A4 von CS2 abhängig machen,
sondern die OE des Hostcontrol mit GPL_A4 & CS2
(oder ich hab dich da falsch verstanden.. bzw ich weiss ja nicht, wie die Abhängigkeit aussah ...)

mal in Schaltplan schau ...

ich würde die CS2 mal auf IH16-1 PIN1 legen
(also mal OPB da wegnehmen)
... zum testen sollte das reichen ...
somit erreichts du, wenn CS2 oder GPL_A4 low ist ... der Hostcontrolblock inaktiv ist ...


2. Möglichkeit
du nimmst Host-Daten/Adressleitungen ...
... ist mehr Arbeit, da du ja Erweitung nehmen willst ....
(fällt damit weg )

... anders wirste nicht auf einen Grünen-Zweig kommen ...
cu
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

@MHC
Ich hab mich vielleicht auch falsch ausgedrückt.
Ich hab vor den OE der Buffer im Host Controll eine zusätzliche Logic geschaltet. Diese hab ich mit CS2 verknüpft.
Das sollte bewirken, daß bei aktivem CS2 die OE der Buffer inaktiv werden. Das funktioniert wohl auch so weit.
Nur leider kann die Box (aus mir unbekannten Gründen) nicht booten. :-(
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

Liontamer hat geschrieben:@MHC
Ich hab mich vielleicht auch falsch ausgedrückt.
Ich hab vor den OE der Buffer im Host Controll eine zusätzliche Logic geschaltet. Diese hab ich mit CS2 verknüpft.
Das sollte bewirken, daß bei aktivem CS2 die OE der Buffer inaktiv werden. Das funktioniert wohl auch so weit.
Nur leider kann die Box (aus mir unbekannten Gründen) nicht booten. :-(
mhh ...
beim booten wird ja über CS2 getestet, ob Ram-Erweiterung vorhanden ist .. stört das vielleicht ?
cu
scotty
Interessierter
Interessierter
Beiträge: 47
Registriert: Dienstag 28. August 2001, 00:00

Beitrag von scotty »

nee, der ppcboot mit der liontamer testet hab ich die suche nach der Speichererweiterung abgewöhnt ;) ..aber es hatte mal gestört

scotty
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

scotty hat geschrieben:nee, der ppcboot mit der liontamer testet hab ich die suche nach der Speichererweiterung abgewöhnt ;) ..aber es hatte mal gestört

scotty
und ich rede nicht vom ppcboot, sondern vom orig. BN-Loader ...
cu
Rudi Ratlos 4711
IDE-Frickler und Berufspessimist
Beiträge: 464
Registriert: Samstag 27. Juli 2002, 21:13

Beitrag von Rudi Ratlos 4711 »

MHC hat geschrieben:und ich rede nicht vom ppcboot, sondern vom orig. BN-Loader ...
Punkt für Dich ! :wink:

Habt ihr eigentlich ein disassembliertes Listing vom Bootloader ? Oder einen guten disassembler ?

Ich würde gerne etwas tiefer in die Materie einsteigen.

Vielleicht kann sich ja mal jemand mit mir in Verbindung setzen.

Ja, ich hab das

http://tuxbox.berlios.de/forum/viewtopic.php?t=15709

gelesen.... :wink:

RR4711
Astra 19.2/Hotbird 13.0
Philips SAT 2xI Avia 600/eNX mit heilem :D Frontpanel-Prozessor aber irgendwas anderem kaputt :(
Philips SAT 2xI Avia 600/eNX Base 1.6.3/ CRAMFS vom 28.11.2002
Nokia SAT 2xI Avia 500/GTX 32/32/8 BMON1.0/jffs2 Head 28.01.03
scotty
Interessierter
Interessierter
Beiträge: 47
Registriert: Dienstag 28. August 2001, 00:00

Beitrag von scotty »

Rudi Ratlos 4711 hat geschrieben:[Punkt für Dich ! :wink:
..muss man ja leider zugeben :oops:
Aber allzuviel vom Bootloader sollte da nicht mehr stören.

Ich denke wenn jmd. ein (gutes) Listing vom Bootlader hätte, dann wäre die Signaturprüfung evtl. bekannt & das Geraffel um die Kiste in den Debug Mode zu bekommen nicht mehr notwedig!?

scotty
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

Rudi Ratlos 4711 hat geschrieben:Oder einen guten disassembler ?
mhh IDA ist gut :wink: http://www.datarescue.com/
cu
Rudi Ratlos 4711
IDE-Frickler und Berufspessimist
Beiträge: 464
Registriert: Samstag 27. Juli 2002, 21:13

Beitrag von Rudi Ratlos 4711 »

scotty hat geschrieben:wäre die Signaturprüfung evtl. bekannt & das Geraffel um die Kiste in den Debug Mode zu bekommen nicht mehr notwedig!?
Ist fraglich, ob das auch rechtlich zulässig ist (ausspähen von Daten / Betreibsgeheimnissen) ?!?

RR4711
Astra 19.2/Hotbird 13.0
Philips SAT 2xI Avia 600/eNX mit heilem :D Frontpanel-Prozessor aber irgendwas anderem kaputt :(
Philips SAT 2xI Avia 600/eNX Base 1.6.3/ CRAMFS vom 28.11.2002
Nokia SAT 2xI Avia 500/GTX 32/32/8 BMON1.0/jffs2 Head 28.01.03
Rudi Ratlos 4711
IDE-Frickler und Berufspessimist
Beiträge: 464
Registriert: Samstag 27. Juli 2002, 21:13

Beitrag von Rudi Ratlos 4711 »

Wo iss denn der Entrypoint im Bootloader ?

RR4711
Astra 19.2/Hotbird 13.0
Philips SAT 2xI Avia 600/eNX mit heilem :D Frontpanel-Prozessor aber irgendwas anderem kaputt :(
Philips SAT 2xI Avia 600/eNX Base 1.6.3/ CRAMFS vom 28.11.2002
Nokia SAT 2xI Avia 500/GTX 32/32/8 BMON1.0/jffs2 Head 28.01.03
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

naja wenn man unter ausspähen auch entfernen von daten meint, dan wäre es illegal, aber ist löschen nicht irgendwie unillegal?
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

Rudi Ratlos 4711 hat geschrieben:Wo iss denn der Entrypoint im Bootloader ?

RR4711
... sollte das jetzt ein Scherz sein ? :wink:
der MPC startet bei 0x100 :wink:
von dort aus gehts dann ungefähr so weiter

Code: Alles auswählen

EntryPoint      
EntryPoint      # ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
EntryPoint      
EntryPoint      
EntryPoint      EntryPoint:
EntryPoint                      lis     r3, _init >> 16 # Load Immediate Shifted
EntryPoint+4                    addi    r3, r3, _init & 0xFFFF # Add Immediate
EntryPoint+8                    mtlr    r3              # Move to link register
EntryPoint+C                    blr                     # Branch unconditionally
EntryPoint+C    # End of function EntryPoint
EntryPoint+C    
EntryPoint+C    # ---------------------------------------------------------------------------
dann zb so

Code: Alles auswählen

__init:					#

dccsr	    = 568			# data cache control and status	register
immr	    = 638

	    li	r0, 0			# Load Immediate
	    mfspr r3, dccsr		# Move from Special Purpose Register
	    mr	r8, r3			# r8 = dccsr
	    lis	r3, 0x400		# Load Immediate Shifted
	    mtspr dccsr, r3		# Move to Special Purpose Register
	    mfspr r4, immr		# Move from Special Purpose Register
	    andis. r4, r4, 0xFFFF	# r4 = immr
	    lis	r3, 0xFFFF		# Load Immediate Shifted
	    ori	r3, r3,	0xFF8F		# OR Immediate
	    stw	r3, 4(r4)		# sypcr	= 0xFFFFFF8F
	    lwz	r20, 0x284(r4)		# PLPRCR in r20
	    lis	r3, 0x8000		# MF = 2048
					# >> clklout = (MF+1) * 32.768kHz (= 67141632Hz)
	    stw	r3, 0x284(r4)		# PLPRCR
	    lis	r5, UPMA_sdram >> 16	# Load Immediate Shifted
	    ori	r5, r5,	UPMA_sdram & 0xFFFF # OR Immediate
	    lis	r6, UPMB_sdram >> 16	# Load Immediate Shifted
	    ori	r6, r6,	UPMB_sdram & 0xFFFF # OR Immediate
	    subf r7, r5, r6		# Subtract from
	    srawi r7, r7, 2		# Shift	Right Algebraic	Word Immediate
	    li	r6, 0			# UPMA

_reloc_UPMA:				# __init+68j
	    lwz	r3, 0(r5)		# Load Word and	Zero
	    stw	r3, 0x17C(r4)		# mdr
	    stw	r6, 0x168(r4)		# mcr
	    addi r5, r5, 4		# Add Immediate
	    addi r6, r6, 1		# Add Immediate
	    cmpw r6, r7			# Compare Word
	    blt	_reloc_UPMA		# Branch if less than
	    lis	r5, UPMB_sdram >> 16	# Load Immediate Shifted
	    ori	r5, r5,	UPMB_sdram & 0xFFFF # OR Immediate
	    lis	r6, Image_Rom >> 16	# Load Immediate Shifted
	    ori	r6, r6,	Image_Rom & 0xFFFF # OR	Immediate
	    subf r7, r5, r6		# Subtract from
	    srawi r7, r7, 2		# Shift	Right Algebraic	Word Immediate
	    oris r7, r7, 0x80		# OR Immediate Shifted
	    lis	r6, 0x80 # '€'          # UPMB

_reloc_UPMB:				# __init+A4j
	    lwz	r3, 0(r5)		# Load Word and	Zero
	    stw	r3, 0x17C(r4)		# mdr
	    stw	r6, 0x168(r4)		# mcr
	    addi r5, r5, 4		# Add Immediate
	    addi r6, r6, 1		# Add Immediate
	    cmpw r6, r7			# Compare Word
	    blt	_reloc_UPMB		# Branch if less than
	    lis	r3, 0x1000		# Load Immediate Shifted
	    ori	r3, r3,	1		# br_v
	    lis	r5, 0xFF80		# Load Immediate Shifted
	    ori	r5, r5,	0x954		# OR Immediate
	    stw	r3, 0x100(r4)		# br0 =	0x10000001
	    stw	r5, 0x104(r4)		# or0 =	0xFF800954
	    lis	r3, 0			# Load Immediate Shifted
	    ori	r3, r3,	0x81		# OR Immediate
	    lis	r5, 0xFF00		# Load Immediate Shifted
	    ori	r5, r5,	0xA08		# OR Immediate
	    stw	r3, 0x108(r4)		# br1 =	0x00000081
	    stw	r5, 0x10C(r4)		# or1 =	0xFF000A08
	    lis	r3, 0xC00		# Load Immediate Shifted
	    ori	r3, r3,	0x401		# OR Immediate
	    lis	r5, 0xFFFE		# Load Immediate Shifted
	    ori	r5, r5,	0x954		# OR Immediate
	    stw	r3, 0x118(r4)		# br3 =	0x0C000401
	    stw	r5, 0x11C(r4)		# or3 =	0xFFFE0954
	    lis	r3, 0xC02		# Load Immediate Shifted
	    ori	r3, r3,	0x401		# OR Immediate
	    lis	r5, 0xFFFF		# Load Immediate Shifted
	    ori	r5, r5,	0x954		# OR Immediate
	    stw	r3, 0x130(r4)		# br6 =	0x0C020401
	    stw	r5, 0x134(r4)		# or6 =	0xFFFF0954
	    lis	r3, 0xA00		# Load Immediate Shifted
	    ori	r3, r3,	0x4C1		# OR Immediate
	    lis	r5, 0xFFFF		# Load Immediate Shifted
	    ori	r5, r5,	0x8FFC		# OR Immediate
	    stw	r3, 0x120(r4)		# br4 =	0x0A0004C1
	    stw	r5, 0x124(r4)		# or4 =	0xFFFF8FFC
	    lis	r3, 0x800		# Load Immediate Shifted
	    ori	r3, r3,	0x8C1		# OR Immediate
	    lis	r5, 0xFF00		# Load Immediate Shifted
	    ori	r5, r5,	0x9F8		# OR Immediate
	    stw	r3, 0x128(r4)		# br5 =	0x080008C1
	    stw	r5, 0x12C(r4)		# or5 =	0xFF0009F8
	    lis	r3, 0xB00		# Load Immediate Shifted
	    ori	r3, r3,	0x4C1		# OR Immediate
	    lis	r5, 0xFFFF		# Load Immediate Shifted
	    ori	r5, r5,	0x8F46		# OR Immediate
	    stw	r3, 0x138(r4)		# br7 =	0x0B0004C1
	    stw	r5, 0x13C(r4)		# or7 =	0xFFFF8F46
	    li	r3, 0x400		# Load Immediate
	    sth	r3, 0x17A(r4)		# mptpr	= 0x0400  (Divide by 16)
	    lis	r3, 0x6480		# Load Immediate Shifted
	    ori	r3, r3,	0x2114		# OR Immediate
	    stw	r3, 0x170(r4)		# mamr = 0x64802114 >>
					# periodTimer =	0x64
					# periodTimerA_enable(ptae) = 1	
					# AMA =	0 0 0 ,	DSA = 0	0 
					# g0cla	= 0 0 1	( GPL0 > A11)
					# rfla > 16 Times
					# wfla > 1 Time	
					# tlfa > 4 Times
	    lis	r3, 0			# Load Immediate Shifted
	    ori	r3, r3,	0x88		# OR Immediate
	    stw	r3, 0x164(r4)		# mar =	0x00000088
	    lis	r3, 0x8000		# Load Immediate Shifted
	    ori	r3, r3,	0x2105		# OR Immediate
	    stw	r3, 0x168(r4)		# mcr =	0x80002105
	    lis	r3, 0x8000		# Load Immediate Shifted
	    ori	r3, r3,	0x4105		# OR Immediate
	    stw	r3, 0x168(r4)		# mcr =	0x80004105
	    lis	r3, 0x6480		# Load Immediate Shifted
	    ori	r3, r3,	0x2118		# OR Immediate
	    stw	r3, 0x170(r4)		# mamr = 0x64802118 (tlfa 15 Times)
	    lis	r3, 0x8000		# Load Immediate Shifted
	    ori	r3, r3,	0x2130		# OR Immediate
	    stw	r3, 0x168(r4)		# mcr =	0x80002130
	    lis	r3, 0x8000		# Load Immediate Shifted
	    ori	r3, r3,	0x4130		# OR Immediate
	    stw	r3, 0x168(r4)		# mcr =	0x80004130
	    lis	r3, 0x6480		# Load Immediate Shifted
	    ori	r3, r3,	0x2114		# OR Immediate
	    stw	r3, 0x170(r4)		# mamr = 0x64802114 (tlfa 4 Times)
	    lis	r3, 0x123		# Load Immediate Shifted
	    ori	r3, r3,	0x4567		# r3 = 0x01234567
	    li	r5, 0			# Load Immediate
	    stw	r3, 0(r5)		# write	0x01234567 an Adresse 0x0
	    lis	r6, 0x40 # '@'          # Load Immediate Shifted
	    stw	r5, 0(r6)		# write	0x0 an Adresse 0x00400000
	    lwz	r6, 0(r5)		# r6 = Wert von	Adresse	0x0
	    cmpw cr1, r6, r3		# ist Adresse 0x0 = 0x01234567 ?
	    beq	cr1, _8col_Ram		# Branch if equal
	    lis	r3, 0x6490		# Load Immediate Shifted
	    ori	r3, r3,	0x4114		# OR Immediate
	    stw	r3, 0x170(r4)		# mamr = 0x64904114 (AMA = 0 0 1;GPL0 >	A10)
					# 9col_RAM
	    lis	r5, 0xFE00		# Load Immediate Shifted
	    ori	r5, r5,	0xA08		# OR Immediate
	    stw	r5, 0x10C(r4)		# or1 =	0xFE000A08

_8col_Ram:				# __init+1D8j
	    lis	r5, 0			# Load Immediate Shifted
	    mr	r5, r5			# Move Register
	    stw	r20, 0(r5)		# old PLPCR in r5
	    lis	r3, 0			# Load Immediate Shifted
	    ori	r3, r3,	0x1020		# OR Immediate
	    stw	r3, 0x174(r4)		# mbmr =0x00001020
	    lwz	r3, 0(r4)		# siumcr
	    lis	r5, 3			# Load Immediate Shifted
	    ori	r5, r5,	0x40		# OR Immediate
	    or	r3, r3,	r5		# siumcr or 0x00030040
	    stw	r3, 0(r4)		# store	siumcr
	    li	r3, 0x82 # '‚'          # Load Immediate
	    sth	r3, 0x240(r4)		# pisrc	= 0x0082
	    lis	r3, 0			# Load Immediate Shifted
	    ori	r3, r3,	0x1002		# mtmsr	und mtsrr1 = 0x00001002
	    mtmsr r3			# Move to Machine State	Register
	    mtsrr1 r3			# Move to status save/restore register 1
	    lis	r3, 0			# Load Immediate Shifted
	    ori	r3, r3,	7		# ictrl	= 0x00000007
	    mtspr ictrl, r3		# Move to Special Purpose Register
	    lis	r3, 0			# Load Immediate Shifted
	    mr	r3, r3			# der =	0x0
	    mtspr der, r3		# Move to Special Purpose Register
	    lis	r3, 0			# Load Immediate Shifted
	    mr	r3, r3			# ecr =	0x0
	    mtspr ecr, r3		# Move to Special Purpose Register
	    mfmsr r3			# Move from Machine State Register
	    andi. r3, r3, 0xFFBF	# mtmsr	and 0xFFBF
	    mtmsr r3			# Move to Machine State	Register
	    mfspr r3, iccsr		# Move from Special Purpose Register
	    andis. r3, r3, 0x8000	# iccsr	and 0x8000
	    beq	__init_280		# Branch if equal
	    lis	r3, 0x400		# Load Immediate Shifted
	    mtspr iccsr, r3		# Move to Special Purpose Register
	    isync			# Instruction Synchronize
......
Anmerkung: ääääh das sieht ja scheisse aus :roll:
cu
Rudi Ratlos 4711
IDE-Frickler und Berufspessimist
Beiträge: 464
Registriert: Samstag 27. Juli 2002, 21:13

Beitrag von Rudi Ratlos 4711 »

0x100 war auch mein erster Gedanke. Und: Das sieht ja scheiße aus.... *ggg*

RR4711
Astra 19.2/Hotbird 13.0
Philips SAT 2xI Avia 600/eNX mit heilem :D Frontpanel-Prozessor aber irgendwas anderem kaputt :(
Philips SAT 2xI Avia 600/eNX Base 1.6.3/ CRAMFS vom 28.11.2002
Nokia SAT 2xI Avia 500/GTX 32/32/8 BMON1.0/jffs2 Head 28.01.03
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

Da wir wohl über den Weg der Software nicht wirklich weiter kommen, mach ich mir mal wieder ein paar Gedanken, wie das über Hardware realisierbar wäre.
Im Prinzip funktioniert ja die Lösung, so wie ich mir das gedacht habe. Leider bottet die Box damit nicht. Es darf der OE der Treiber also erst dann von CS2 abhängig gemacht werden, wenn der Bootloader alles initialiesiert hat.

Im Moment sieht es ja so aus:
Bild
Das linke Gatter wurde von mir zusätzlich eingesetzt.
Rudi Ratlos 4711
IDE-Frickler und Berufspessimist
Beiträge: 464
Registriert: Samstag 27. Juli 2002, 21:13

Beitrag von Rudi Ratlos 4711 »

Joh, und noch nicht mal richtig gelesen. Wenn, dann erstmal für Nokia, da Doku vorhanden.

Aber bis dahin haben wir noch ein gutes Stück Arbeit vor uns....

RR4711
Astra 19.2/Hotbird 13.0
Philips SAT 2xI Avia 600/eNX mit heilem :D Frontpanel-Prozessor aber irgendwas anderem kaputt :(
Philips SAT 2xI Avia 600/eNX Base 1.6.3/ CRAMFS vom 28.11.2002
Nokia SAT 2xI Avia 500/GTX 32/32/8 BMON1.0/jffs2 Head 28.01.03
MHC
GOD
Beiträge: 409
Registriert: Sonntag 22. Juli 2001, 00:00

Beitrag von MHC »

Liontamer hat geschrieben:Da wir wohl über den Weg der Software nicht wirklich weiter kommen, mach ich mir mal wieder ein paar Gedanken, wie das über Hardware realisierbar wäre.
Im Prinzip funktioniert ja die Lösung, so wie ich mir das gedacht habe. Leider bottet die Box damit nicht. Es darf der OE der Treiber also erst dann von CS2 abhängig gemacht werden, wenn der Bootloader alles initialiesiert hat.

Im Moment sieht es ja so aus:
http://dbox.devh.de/logik.gif
Das linke Gatter wurde von mir zusätzlich eingesetzt.
... ja dachte ich mir
bleibt mal zu testen, ob der Loader nur wegen CS2 nicht bootet ....
Möglichkeit wär den Loader zu patchen ... ich habs mal gemacht
und den erw.-Ram-test übersprungen (ich hab ne 16/16)
Nachteil: im Loader steht dann 0/0 ....
siehe da

Code: Alles auswählen

debug: DDF: Calibrating delay loop... debug: DDF: 67.79 BogoMIPS
debug: BMon V1.2  mID 01
debug: feID dd    gtxID 0b
debug: fpID 5a     dsID 01-41.94.d1.06.00.00-88
debug: HWrev 04  FPrev 0.81
debug: B/Ex/Fl(MB) 00/00/08
WATCHDOG reset enabled
dbox2:root> Branching to 0x40000


U-Boot 0.2.1 (TuxBox) (Mar 18 2003 - 23:37:12)

CPU:   PPC823ZTnnA at 67.100 MHz: 2 kB I-Cache 1 kB D-Cache
         *** Warning: CPU Core has Silicon Bugs -- Check the Errata ***
Board: DBOX2, Nokia
       Watchdog enabled
I2C:   ready
DRAM:  16 MB
FLASH:  8 MB
LCD:   ready
In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET

Options:
  1: console on ttyS0
  2: console on fb0
  3: console on null
Select option (1-3), other keys to stop autoboot:  0 
=> md ff000100 10
ff000100: 10000001 ff800954 00000081 ff000a08    .......T........
ff000110: 99dfff00 00808706 0c000401 fffe0954    ...............T
ff000120: 0a000401 ffff8f8c 080008c1 ff0009f8    ................
ff000130: 0c020401 ffff0954 dfb2dd80 0c80ae30    .......T.......0
=>
... wie man siehr wurde or2/br2 nicht initialisiert ...
wenn Du Lust hast, kann ich dir sagen, was man patchen muss
... ich muss nur wissen, welche Box mit welchen Loader ... ;)
in meinem Beispiel ist es ne Nokia mit Bmon1.2
und da muss im Loader an Adresse 0x10002960
von 0x48000451 in 0x60000000 geändert werden ;)
cu
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

Äm.
Ich soll an meinem Bootloader rumspielen???
Dann aber lieber mit der "A20 des Flash es auf VCC" Methode. Da, wo der Bootloader an eine bestimmte Adresse im Flash kopiert wird. (Was liegt da eigentlich normalerweise? Das Image wird dann überschrieben, oder?)

Nachtrag: Ich hab das hier in einem anderen Thread gefunden (Danke an SoLaLa)

Code: Alles auswählen

-box mit nem ppcboot116 starten und mittendrin abbrechen 
-am prompt dbox2-ppcboot> manuell den bootloader laden 
-bootloader ins Flash an adresse 10400000 kopieren 
-Adreßleitung A20 lokalisieren (liegt an RH36) 
-RH36 mit Meßstrippe auf "high" (3,3V legen) 
-box resetten und schaun ob die Kiste mit dem BMon an 10400000 bootet
Ist eigentlich soweit klar. Aber was meint er mit "manuell den bootloader laden" ??

Ich würde so vergehen:

Code: Alles auswählen

cp 10000000 01000000 8000
Den entsprechenden Bereich im RAM patchen
protect off 10400000 1041FFFF
erase 10400000 1041FFFF
cp 01000000 10400000 8000
protect on 10400000 1041FFFF
Und danach die Box mit A20 auf High booten lassen - der gepatchte Bootloader wird geladen.

Hab übrigens eine Nokia mit Bmon1.0
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

Achja, nochwas
MHC, woher weißt du so genau, was du im Bootloader an welcher Stelle ändern mußt, um einen entsprechenden Effekt zu erzielen?
Hast du irgendwelche Infos, die andere nicht haben?
Das ist irgendwie alles sehr seltsam. :roll: :D
SoLaLa
Tuxboxer
Tuxboxer
Beiträge: 6119
Registriert: Mittwoch 3. April 2002, 00:32

Beitrag von SoLaLa »

hi Liontamer :D
in dem zitierten thread gings ja darum einen ANDEREN bootloader in der box zu testen ohne den vorhandenen überschreiben zu müssen. Deshalb mit dem ppcboot den zu testenden bootloader übers Netzwerk manuell laden (mit bootp 01000000 /c/bootloader.img....)

in Deinem Fall gehts ja jetzt darum den VORHANDENEN bootloader zu patchen. Da brauchst natürlich nur per copy den bootloader von 10000000 nach 10400000 kopieren und dann dort patchen.
Und natürlich wird ein vorhandenes image dann in dem bereich überschrieben und ist damit unbrauchbar. Falls Du mit dieser Methode über längere zeit bissi testen willst, dann löte vorsichtshalber RH35/RH36 solange aus damit die Bustreiber nicht so stark belastet werden.

oder machs einfach andersrum: bootloader als Sicherungskopie auf 10400000 ablegen und dann im originalbereich solange rumpatchen wie Du lustig bist. Wenn dann mal irgendwas nicht mehr geht, dann kannst das Backup ja wieder in den originalbereich zurückkopieren :wink:
never change a running system
Liontamer
Klöppelliese
Beiträge: 1644
Registriert: Donnerstag 8. August 2002, 12:51

Beitrag von Liontamer »

@SoLaLa
Jo, die 2. Möglichkeit gefällt mir irgendwie besser :D

Muß ich eigentlich zum Editieren zwingend den entsprechenden Bereich ims RAM kopieren, dort bearbeiten, und dann wieder ins Flash kopieren?
Oder kann ich direkt einen mm auf das Flash machen?
SoLaLa
Tuxboxer
Tuxboxer
Beiträge: 6119
Registriert: Mittwoch 3. April 2002, 00:32

Beitrag von SoLaLa »

hmmm, ich denke, geht eher nicht :D
der bootloader müßte dann ja gleich den nm-Befehl auf die Flashroutine mitsamt erase/ und richtiger sektorgröße weiterleiten. Ich habs noch nicht probiert, aber ich glaub nicht daß das geht
never change a running system