Neuer kombinierter MMC Treiber + neue Philips Verkabelung

Sklaventreiber
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

Philips geht gelötet mit der 4er Verkabelung genauso schnell, wie mit der 1er Verkabelung in Nokia und Sagem!

2er ist aber die einzige lötfreie in Sagem und Philips. - Read ist gleich schnell, write ist allerdings bis zu 1/3 langsamer.
MarcM
Foren-Moderator
Beiträge: 1119
Registriert: Sonntag 9. Juni 2002, 13:28

Beitrag von MarcM »

Sehr schön....hab die Binarys auch getestet und für gut befunden...

und wenn du jetzt noch dem uboot das booten von SD/MMC beibringst bin ich glücklich :wink: :D .....dann brauch man die Flashs nur noch als Notsystem für die Box....

fettes Respekt und many THX für den Treiber

Marc
sagemol
Einsteiger
Einsteiger
Beiträge: 193
Registriert: Donnerstag 11. Mai 2006, 09:26

Beitrag von sagemol »

MarcM hat geschrieben:Sehr schön....hab die Binarys auch getestet und für gut befunden...

und wenn du jetzt noch dem uboot das booten von SD/MMC beibringst bin ich glücklich :wink: :D .....dann brauch man die Flashs nur noch als Notsystem für die Box....

fettes Respekt und many THX für den Treiber

Marc
Das mit dem "für gut befunden" kann ich gar nicht oft genug wiederholen :D

Aber: Irgendwo drin musste ja die u-boot haben......
Und der BMon bootet ja nun mal nur vom Flash.
Also muss die u-boot ins Flash, oder missverstehe ich Deine Intention da jetzt ?

Greez !
MarcM
Foren-Moderator
Beiträge: 1119
Registriert: Sonntag 9. Juni 2002, 13:28

Beitrag von MarcM »

war schon richtig.....

lass doch das Uboot beim booten (aus dem flash) nachschauen obs nen Kernel (komplettes Betriebsystem) auf der SD/MMC oder auf der HDD gibt und denen den Vorrang gibt....ist beides nicht vorhanden, halt weiter aus dem Flash booten...

Marc
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

@ sagemol, :o

das mit swap halte ich persönlich für etwas gewagt. Aber so sind wir Menschen ja, wären niergendwo hingekommen, hätten wir nicht stets auch phänotypisch unsinnige Dinge probiert ;) - Ich bin gespannt :gruebel:

@ MarcM,

hatte nicht vor, mich in nächster Zeit mit dem U-Boot zu beschäftigen, aber da hättest Du doch eine Aufgabe fürs Wochendende ;) - Du zielst doch bestimmt nur auf Multi-Image-Boot-Support ab, nicht wahr ;)

Prinzipiell ist das natürlich machbar.

Aber ich bitte bei allem nicht die CPU Last bei Zugriffen auf die mmc (aktuelle Lösung) zu vergessen. Allein der Low-Level Teil braucht ja schon mindestens 15 clocks pro Bit. In der gleichen Zeit könnten coreintern auch 15 Worte bewegt werden.
MarcM
Foren-Moderator
Beiträge: 1119
Registriert: Sonntag 9. Juni 2002, 13:28

Beitrag von MarcM »

Hmm...CPU-Last ?

Was frißt den mehr Resourcen, der MMC-Treiber beim lesen Zugriff oder eine komprimierte Flashpartition (squashFS) die in Echtzeit dekomprimiert wird ?

Das komprimieren könnte man sich auf ner SD/MMC sparen....ext2o.3/Reiser/XFS/whatever nehmen und gut ist...

Multi-Image war nicht unbedingt mein Gedanke, sollte aber mit nem "Bootmanager" zu machen sein. Die alten Images hatten ja auch Enigma zusätzlich mit an Board....

Marc
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

@ MarcM,

sorry, dass habe ich wirklich übersehen, da müsste man dann mal rechnen, ob das Sinn macht. Aber ich denke der SD Zugriff ist trotzdem bei weitem langsamer. Andererseits ist das vermutlich aber für die meisten Anwendungen nicht wirklich relevant.

Der U-Boot muss ja nur einen begrenzten Zugriff unterstützen, es muss reichen um den Kernel mit mmc-Treiber zu laden. Das muss ja nicht einmal irgendeinem "Format" genügen. Einfach eine getrennte Partition mit fester Sektorenanordnung auf die Karte, ......

wenn ich so recht überlege, dann wird sich das bestimmt noch mal jemand genauer ansehen in Zukunft ....
MarcM
Foren-Moderator
Beiträge: 1119
Registriert: Sonntag 9. Juni 2002, 13:28

Beitrag von MarcM »

[Crocodile Hunter Mode] Have a look at this [/Crocodile Hunter Mode]
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

@ MarcM,

mmc support dafür zu bauen ist mal von der Zeit abgesehen nicht das große Problem. Nur, meine Baustelle ist das im Moment nicht ;)
MarcM
Foren-Moderator
Beiträge: 1119
Registriert: Sonntag 9. Juni 2002, 13:28

Beitrag von MarcM »

Wollte nur dass es nicht verloren geht und eben anscheinend schon einen Patch für sowas gibt....nicht dass man das Rad neu erfinden muß....

Marc
sagemol
Einsteiger
Einsteiger
Beiträge: 193
Registriert: Donnerstag 11. Mai 2006, 09:26

Beitrag von sagemol »

Apropos "Rad neu erfinden":


http://forum.openwrt.org/viewtopic.php?id=6998

http://uanr.com/sdfloppy/

Edit: Zwei hab ich noch, um vieleicht noch was abzugucken:

http://handhelds.org/cgi-bin/cvsweb.cgi ... /mmc/mmc.c

http://handhelds.org/cgi-bin/cvsweb.cgi ... mc_block.c



Ist ja möglicherweise bekannt, aber man kann ja nie wissen,
vielleicht ist ja was hilfreiches bei... :D :D

Greez !
sagemol
Einsteiger
Einsteiger
Beiträge: 193
Registriert: Donnerstag 11. Mai 2006, 09:26

Beitrag von sagemol »

So, jetzt noch der letzte Performance Test, dann geb ich Ruhe. :D
Nokia Kabel 2xi 75MHz, 512er SD Avant Typ1-verkabelt:

Code: Alles auswählen

/mmc/test # time cat /proc/kcore > testfile01
real    1m 49.74s
user    0m 0.22s
sys     0m 16.67s
/mmc/test # ll
drwxr-xr-x    2 root     root         1024 May 26 19:38 .
drwxr-xr-x    5 root     root         1024 May 25 16:24 ..
-rw-r--r--    1 root     root     64897024 May 26 19:40 testfile01
/mmc/test # time cat testfile01 > /dev/null
real    2m 21.84s
user    0m 0.25s
sys     1m 33.73s
/mmc/test #
macht bei schreiben 576kB/s und bei lesen 446kB/s.

Greez !
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04
Kontaktdaten:

Beitrag von Tommy »

Ich will über das verlängerte WE endlich mal mit einer MMC in meiner Philips Bastelbox spielen. Was ich gefunden habe (CVS):

Code: Alles auswählen

// dbox2 connection scheme for Philips
//
// Modem Connector:
//
//			---> power supply
//   2 4 6 8 10 12   
//   1 3 5 7  9 11

// PA9  = SD_DO = 0x0040 = SD_CARD Pin 7   = MODEM_CN 11
// PA8  = SD_DI = 0x0080 = SD_CARD Pin 2   = MODEM_CN 9
// PB17 = SD_CLK= 0x4000 = SD_CARD Pin 5   = MODEM_CN 7
// PB16 = SD_CS = 0x8000 = SD_CARD Pin 1   = MODEM_CN 5
// GND  =       = Masse  = SD_Card Pin 3,6 = Modem_CN 2
//
// Also connect a pullup resistor 100 KOhm from SD/MMC card pin 7 (SD_DO) to SD/MMC card pin 4 (VCC)
// Attention: The Philips modem connector provides 5V only,
// so we connect in series 3 Diodes (1N4007) from MODEM_CN 1 to SD/MMC card pin 4
Is das der aktuelle Anschlußplan? Welchen Treiber brauche ich dafür? Kann evtl. mal jemand den WIKI - Artikel auf Vordermann bringen?

Mit den ganzen Wirings wird man ja total meschugge :-?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Gevatter
Neugieriger
Neugieriger
Beiträge: 15
Registriert: Samstag 7. April 2007, 13:42

Beitrag von Gevatter »

Hm , liegts an mir oder habe ich was überlesen ?
Ich benutze eine Philips , bei der ich die Karte (1GB) zurzeit mit dem mmc2.o Treiber einbinde , was auch einwandfrei klappt !

Nur mit dem mmccombo.o klappt es auf meiner Philips nicht.
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o
Segmentation fault
/var # ls /dev/mmc
ls: /dev/mmc: No such file or directory
/var # reboot
/var /sbin/insmod /var/lib/modules/mmc/mmccombo.o wiringopt=1
/var # ls /dev/mmc*
ls: /dev/mmc*: No such file or directory
/var # reboot
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o wiringopt=2
Segmentation fault
/var # reboot
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o wiringopt=3
insmod: init_module: mmccombo: Operation not permitted
/var # reboot
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o wiringopt=4
/var # ls /dev/mmc*
ls: /dev/mmc*: No such file or directory
/var # reboot
/var # /sbin/insmod /var/lib/modules/mmc/mmc2.o
/var # ls /dev/mmc
disc0
Das selbe Image auf einer Nokia Avia500 (512MB Karte)
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o
/var # ls /dev/mmc
disc0
gruss
Gevatter
geko37
Einsteiger
Einsteiger
Beiträge: 133
Registriert: Sonntag 6. April 2003, 18:26

Beitrag von geko37 »

Bei der Phillips solltest du die Verdrahtung mit angeben ! Siehe Optionen des Treibers !

---
mmccombo.o
----------
OPTIONEN:
opt=[0:1] default =1 - 0 = unterrstützt die IO Routinen aus dem mmc Treiber
- 1 = optimierte I/O Routinen

forcehw=[0:1] default =0 - mmc2 Verkabelung üblicherweise nur mit forcehw=1

wiringopt=[0:4] default = auto - 0 = auto
1 = mmc - verkabelung
2 = mmc2 - verkabelung
3 = not used
4 = neue Philips Verkabelung PB[16:19]
---
Also z.b. $IM $MD1/mmccombo forcehw=0 wiringopt=4
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

@ sagemol,

danke, ist doch wichtig zu sehen, wie die Performance auf unterschiedlichen Systemen sein kann. Wenigstens macht sich mal jemand die Mühe ;)

@ Tommy,

mag sein, dass man dabei Meschugge wird, aber so ist das, wenn man sowas DIY machen möchte, da muss man auch mal Pläne lesen ;) - Und die verschiedenen Anschlusspläne machen ja auch Sinn. Verschiedene Boxen, verschiedene Eerweiterungen und einige haben das ja schon eingebaut, ich will nicht verantworten, dass da jemand umbauen muss. In Der Philips nimmst Du am besten die 4er Verkabelung, ist am schnellsten. Und es steht nun wirklich alles im ersten Post dieses Threads. Du musst nur die Zuordnung zwischen SD-Signal, CPU-Port und Abgriffpunkt für den betreffenden CPU Port machen und wenn das nicht hinhaut, dann nimm doch einfach die Plug'n-Play microSD Platine, da musste dan nicht viel überlegen ;)

@ Gevatter,

die wiringopt musst Du nicht angeben, die findet der Treiber selbst heraus (nicht angeben = 0, 0 = autodetect). Aber in der 2er Verkabelung nutzt Du PA08 und PA09 (RxD und TxD der tts/1), das ist also mit Sonderfunktionen belegt. Ich habe den Treiber so gestrickt, dass er solche Zuordnungen nicht einfach platt macht, außer er wird gezwungen mit forcehw=1. Der Treiber gibt Infos zu dem was er macht beim Start. Hast Du den aus dem CVS oder die hier gelinkte Testversion? - Die Testversion habe ich selbst noch nicht auf der 2er Verkabelung getestet.

Mich irritiert nur der "segmentation fault" beim start. Also bitte mal mitteilen, welche Version (wird beim Start angezeigt, wenn Du nicht weisst ob Du den aus dem CVS oder einen anderen hast) Du hast, damit ich mir das anschauen kann.

@ geko37,

mal jemand, der liest ;)

@ All,

nur zur Sicherheit: Die hier in den letzten 3 Tagen geposteten Durchsatzraten beziehen sich alle auf die ganz neue Testversion (mit ettlichen Änderungen) in der 1er und 4er Verkabelung, nicht auf die aktuelle CVS Version!
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

@ Gevatter,

ich habe mir Deinen Log gerade noch mal angesehen (serieller Log wäre aufschlussreicher gewesen) und erkenne in diesem Muster einen Fehler einer alten Version. Der Treiber beendet nicht nachdem er feststellt, dass die geforderte Hardware anderweitig bereits genutzt ist. Das kannst Du auf jeden Fall mti forcehw=1 umgehen. Der Fehler ist seit ein paar Tagen gefixed, weiss aber nicht mehr genau wann, also möglicherweise noch nicht im CVS.

Wenn Du was beitragen magst, dann probier doch bitte mal die aktuelle Testversion in Deiner Philips (mit Deiner aktuellen 2er Verkabelung), die ist auch viel schneller. Wenn es klappt, kannst Du ja auf die 4er Verkablung umbauen, die ist noch viel schneller ;)

TESTVERSION
Gevatter
Neugieriger
Neugieriger
Beiträge: 15
Registriert: Samstag 7. April 2007, 13:42

Beitrag von Gevatter »

Hier nochmal das ganze auf der Philips , mit deiner neuen Testversion.
Da auch die Frage nach meiner Verkabelung aufgetaucht ist:
SD_CARD Pin 7 = MODEM_CN 11
SD_CARD Pin 2 = MODEM_CN 9
SD_CARD Pin 5 = MODEM_CN 7
SD_CARD Pin 1 = MODEM_CN 5
SD_Card Pin 3,6 = MODEM_CN 2
SD_Card Pin 4 + 7 = 100 KOhm Wiederstand
SD_CARD Pin 4 = Externe Spannung von 3,3V
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o
Segmentation fault

Serial - Log:
$Id: mmccombo.c TESTVERSION 2007/05/25 15:09 satsuse Exp $
mmc: User asked for autodetection, I'll try ...
mmc: Hardware cleanup - nothing to clean
mmc: Hardware init for wiringopt = 4 - OK
mmc: Hardware cleanup - done
mmc: Hardware init for wiringopt = 1 - OK
mmc: Hardware cleanup - done
mmc: Hardware init for wiringopt = 2 - failed! A:0 B:0
mmc: autodetection failed. Quit
Oops: kernel access of bad area, sig: 11
NIP: C000D838 XER: 00000000 LR: C000D82C SP: C0965CF0 REGS: c0965c40 TRAP: 0300
Not tainted
MSR: 00001032 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000000, DSISR: C2000000
TASK = c0964000[176] 'insmod' Last syscall: 128
last math 00000000 last altivec 00000000
GPR00: 00001032 C0965CF0 C0964000 00000001 00009032 00000001 FFFFDCBA C0143C5B
GPR08: 00000000 C0965D28 00000040 00000000 28004022 100B4A80 00000001 10090000
GPR16: 00000001 100B0000 100BB6C8 100BB5E0 00009032 C0965EA0 C0848000 100CF7B8
GPR24: C0965DD0 00000008 C0965D20 C3CF0000 C0164374 C0965D20 C0164360 C0164370
Call backtrace:
C0140000 C0007600 C00609E8 C005AE10 C3CF1264 C3CF1624 C0010FF8
C000285C 100260C4 10003EF0 10003F6C 0FEBC85C 00000000
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o forcehw=1
/var # ls /dev/mmc
disc0

Serial - Log:
$Id: mmccombo.c TESTVERSION 2007/05/25 15:09 satsuse Exp $
mmc: force hardware allocation, even if otherwise assigned.
mmc: User asked for autodetection, I'll try ...
mmc: Hardware cleanup - nothing to clean
mmc: Hardware init for wiringopt = 4 - OK
mmc: Hardware cleanup - done
mmc: Hardware init for wiringopt = 1 - OK
mmc: Hardware cleanup - done
mmc: Hardware init for wiringopt = 2 - FORCED! But A:C0 B:0
mmc: used wiringopt = 2
mmc: Card init
mmc: Card init *OK1*
mmc: Card init *OK2*
mmc: Media found Size = 994304, hardsectsize = 512, sectors = 1988608
Partition check:
mmca: p1
Unter Total Commander liegt
die Schreibrate bei einem 8MB grossen Datei bei 360 kbytes/s
die Leserate bei einem 8MB grossen Datei bei 982 kbytes/s
kann das hinkommen ?

gruss
Gevatter
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

@ Gevatter,

danke für den Log,

sehe mir das hier gerade noch mal an, denn da geht beim verlassen des Treibers (im Fehlerfall beim init) etwas schief.

Ansonsten:

Die Datenrate hängt von vielen Faktoren ab (steht hier schon alles aufgelistet). Aber mit 8MB großen Dateien kannst Du da wenig testen (cache, puffer). Die Schreibrate von 360K bei 2er Verkabelung klingt jedoch realistisch (ca. 25% bis 1/3 mehr sind mit 1er und 4er Verkabelung zu erreichen). Readrate sollte sich nicht von der 1er und 4er Verkabelung unterscheiden.

Die von mir angegebenen Werte bezogen sich übrigens auf 191 MB verteilt auf 50 Files per FTP.

Danke für den Test und die Werte.

Zum Fehler beim fehlerhaften Init: Werde ich mir baldigst ansehen.

Edit 1:

Habe mal eine aktualisierte Testversion hochgeladen. Der Link ist unverändert. Der Fehler beim Verlassen nach fehlerhaftem Init sollte behoben sein.
Gevatter
Neugieriger
Neugieriger
Beiträge: 15
Registriert: Samstag 7. April 2007, 13:42

Beitrag von Gevatter »

Hier mal wieder ein Philps log :D
/var # /sbin/insmod /var/lib/modules/mmc/mmccombo.o
insmod: init_module: mmccombo: Interrupted system call

Serial - Log:
$Id: mmccombo.c TESTVERSION 2007/05/27 18:58 satsuse Exp $
mmc: User asked for autodetection, I'll try ...
mmc: Hardware init for wiringopt = 4 - OK
mmc: trying to reset card ...
mmc: ... failed.
mmc: Hardware cleanup - done
mmc: Hardware init for wiringopt = 1 - OK
mmc: trying to reset card ...
mmc: ... failed.
mmc: Hardware cleanup - done
mmc: Hardware init for wiringopt = 2 - failed! A:0 B:0
mmc: autodetection failed. Quit
Mit dem Parameter forcehw=1 ist der Log wie oben (also unverändert )

Was ich allerdings noch nicht verstanden habe ,
Treiber nimmt keine Resourcen, die der CPM zugeschlagen sind ohne dazu über forcehw=1 (default zu0) "gezwungen" zu werden.
spricht eigentlich irgendwas dagegen , den Aufruf immer mit:
/sbin/insmod /var/lib/modules/mmc/mmccombo.o forcehw=1 auszuführen ?
Da dieser Aufruf auch auf meiner Nokia funktioniert .

gruss
Gevatter
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

Hallo Gevatter,

nein es spricht nichts dagegen und natürlich klappt das auch in der Nokia mit 1er Verkabelung.

Die bisherigen Treiber haben ohne jede Warnung oder Prüfung die GPIOs genommen, die sie haben wollten. Mir ist sowas unlieb, daher habe ich die Prüfung eingebaut, dann ist es wenigstens nicht der Treiber, der eigenmächtig einfach so Hardwarezuordnungen ändert wie es ihm gerade gefällt, sondern der User, der dem Treiber das bewusst erlaubt.

Mit forcehw=1 verhält sich der mmccombo also diesbezüglich einfach nur ähnlich, wie der mmc und mmc2 (mal angesehen davon, dass der mmccombo den ursprünglichen Zustand nach dem Beenden versucht wiederherzustellen).

In der 1er und 4er Verkablung gibt es nur nichts, was anderweitig belegt wäre, somit klappt es dort auch ohne forcehw=1.
witjojo
Beiträge: 1
Registriert: Mittwoch 5. Juni 2002, 23:14

Beitrag von witjojo »

Hallo,

hab mal ne Frage an die Profis.
Was heißt denn 1er, 2er, 3er und 4er Verkabelung?

Ich habe ein Philips mit Multicam und IDE und wollte jetzt noch SD/MMC einbauen.
Wie muß ich den jetzt meine Philips mit SD/MMC verdrahten und welche Verkabelung habe ich dann? 1er,2er, 3er oder 4er!

Vorab schon mal vielen Dank.

Jojo
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04
Kontaktdaten:

Beitrag von Tommy »

Das M.... ist hier weder supportet noch erwünscht :roll:
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
satsuse
Interessierter
Interessierter
Beiträge: 21
Registriert: Samstag 12. Mai 2007, 19:12

Beitrag von satsuse »

@ witjojo,

ja, das M* ist hier für die Betreiber (und einige User) ein rotes Tuch, das weiß man aber auch ganz schnell, wenn man hier mal 2 Minuten liest. Dies ist natürlich zu respektieren, ich nenne es mal Hausrecht.

Deine Frage zielte ja aber gar nicht auf dieses Gerät ab, sondern darauf, wie man eine SD Karte in der Philips verbauen kann, ohne bestimmte Anschlüsse zu nutzen, die eigentlich der tts/1 gehören und damit von seriellen Geräten belegt sein könnten.

Daher lässt sich sehr wohl auch hier sagen, dass es derzeit 4 unterschiedliche Arten gibt, eine SD Karte in der d2 anzuschließen. Der mmccombo unterstützt 3 davon und alle sind im Eingangsposting zu diesem Thread erklärt. Die "4er" (heißt nichts anderes, als dass dies die vierte Variante war, die aufkam) beißt sich nicht mit der tts/1 (also dem Softmodem) und ist auch in der Philips machbar. - Wenn Du allerdings die Pläne im Eingangsposting nicht lesen kannst, dann lass vielleicht besser jemanden ran, der sich mit sowas auskennt ;)
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

tach ihrs,

kann der mmccombo treiber noch um systeminfos im /proc erweitert werden?

regards
innu
Antworten