Das U-Boot für Zapmaster

uClinux and more...

Moderator: LaSAT

Antworten
GDRGuy69
Beiträge: 22
Registriert: 09.03.2007, 07:01

Das U-Boot für Zapmaster

Beitrag von GDRGuy69 »

Ich habe jetzt eine erste Version des bekannten Bootloaders für embedded systems "Das U-Boot" fertig.
Was kann man damit machen:

- Wiederherstellbare Umgebungsvariablen
- Flash und RAM-Manipulation, z.b. Test, Checksum, Kopieren, Löschen
- Booten/Start einer Applikation aus dem Flash
- Booten/Start einer Applikation aus dem RAM
- Laden von Binär-, Elf- oder S-Record-Dateien über die serielle Schnittstelle (Kermit-Protokoll) ins RAM

Im Moment geht noch nicht:
- Zugriff auf Festplatten-Partitionen, um von dort zu booten/Programme zu laden
- I2C-EEprom (müsste man sowieso erstmal selbst einbauen)
- Zugriff auf 8-Bit-PCCards (im PCMCIA-Slot)

Was leider nie gehen wird:
- Ethernet :( Bootp,...

Für letzteres hätte ich zwar die Idee, den PCMCIA-Slot mit Adress- und Datenbus als Schnittstelle zu einem Ethernet-Chip zu nutzen. Aber dazu bräuchte ich jemanden, der sich besser mit Hardware auskennt als ich.


"Das U-Boot" für Zapmaster habe ich jetzt sogar als "out.app" erstellt. Ich konnte es auf meinen Zapmaster flashen und es wird quasi als Second-Level-Bootloader nach dem Lasat-Bootloader gestartet. Leider kann ich aber noch nicht die Zapmaster-Applikation starten, dafür müsste ich das Datei-Format erst in U-Boot einbauen. Man kann aber die Original "out.app" der Lasat-Firmware jederzeit wieder flashen.

Wenn Interesse besteht, kann ich das "U-Boot" als Download hier im Forum ablegen.
Kosi2801
Beiträge: 35
Registriert: 14.03.2007, 10:16

Re: Das U-Boot für Zapmaster

Beitrag von Kosi2801 »

So wie ich das verstanden habe, ist das also ein Tool, welches zunächst einmal die LaSat-Firmware ersetzt um danach sowas wie eine "Entwicklungsumgebung" für eigene Applikationen/Betriebssysteme bereitzustellen.

Ist es damit möglich, das von Ihnen erstellte uClinux zu booten? Und zum Flashen, kann man dazu die originale Flash-Applikation von LaSat verwenden?
GDRGuy69
Beiträge: 22
Registriert: 09.03.2007, 07:01

Re: Das U-Boot für Zapmaster

Beitrag von GDRGuy69 »

Kosi2801 hat geschrieben:So wie ich das verstanden habe, ist das also ein Tool, welches zunächst einmal die LaSat-Firmware ersetzt um danach sowas wie eine "Entwicklungsumgebung" für eigene Applikationen/Betriebssysteme bereitzustellen.
Genau so ist es.
Kosi2801 hat geschrieben: Ist es damit möglich, das von Ihnen erstellte uClinux zu booten? Und zum Flashen, kann man dazu die originale Flash-Applikation von LaSat verwenden?
Zum Flashen des u-Boot habe ich das Original-Flash-Programm von Lasat (Loader.exe) verwendet.
Wenn U-Boot läuft, kann man uClinux per seriell ins RAM laden und dann ausführen. Das dauert zwar bei einem 1,2 MB Kernel mit 115200 ein bisschen, ist aber "rückstandsfrei", d.h. der Flash wird nicht angetastet.
Miqueldecielo
Beiträge: 115
Registriert: 13.03.2007, 19:55

Re: Das U-Boot für Zapmaster

Beitrag von Miqueldecielo »

Hallo,
klasse Sache.
GDRGuy69 hat geschrieben:Was leider nie gehen wird: Ethernet :( Bootp...
Für letzteres hätte ich zwar die Idee, den PCMCIA-Slot mit Adress- und Datenbus als Schnittstelle zu einem Ethernet-Chip zu nutzen. Aber dazu bräuchte ich jemanden, der sich besser mit Hardware auskennt als ich.
Wenn der Proz. noch ein SPI+IRQ hätte, gäbe es eine nette Möglichkeit mit einem einfachen Ethernet-Chip von Microchip: ENC28J60, für den gibt es kleine Platinen mit Ethernetbuchse (z.B. Mikrocontroller.net). Durch den SPI ist es zwar abgebremst, aber bietet zumindest einen schnelleren Weg als Seriell.

Gruss Miqueldecielo
tibor
LaSAT-Mitarbeiter
LaSAT-Mitarbeiter
Beiträge: 511
Registriert: 08.03.2007, 11:25
Wohnort: neunburg im wald

Re: Das U-Boot für Zapmaster

Beitrag von tibor »

es gibt auch nen netten chip von smsc, der kann paralell ueber motorola-bus.
tibor
LaSAT-Mitarbeiter
LaSAT-Mitarbeiter
Beiträge: 511
Registriert: 08.03.2007, 11:25
Wohnort: neunburg im wald

Re: Das U-Boot für Zapmaster

Beitrag von tibor »

@GDRGuy69, 1.2Mbyte sind ja schon ziemlich viel. kann man das eigendlich noch keiner bekommen? welche funktionalitaeten sind bei den 1.2Mbyte denn enthalten ?
GDRGuy69
Beiträge: 22
Registriert: 09.03.2007, 07:01

Re: Das U-Boot für Zapmaster

Beitrag von GDRGuy69 »

tibor hat geschrieben:@GDRGuy69, 1.2Mbyte sind ja schon ziemlich viel. kann man das eigendlich noch keiner bekommen? welche funktionalitaeten sind bei den 1.2Mbyte denn enthalten ?
Genauer gesagt ist das ELF File 1,2 MB, nach objcopy sind es dann nur noch 900kb. Ich habe beim Compiler noch keine Optimierung eingestellt, da lässt sich bestimmt noch einiges rausholen. Beispielsweise baut der arc-elf32-gcc noch zu viele NOP's hinter flag-Befehle ein.

Als Funktionalitäten sind im Moment im Kernel Device-Treiber für LinuxTV DVB und IDE + Filesysteme enthalten. Wenn der Kernel gestartet ist, stehen noch 2,5 MB für User-Programme zur Verfügung. Zur Zeit sind das neben der Busybox + Tools, Consolen-Programme zum Frontend-Tune und DVB-Section-Decoding.
tibor
LaSAT-Mitarbeiter
LaSAT-Mitarbeiter
Beiträge: 511
Registriert: 08.03.2007, 11:25
Wohnort: neunburg im wald

Re: Das U-Boot für Zapmaster

Beitrag von tibor »

ok, weshalb uebertraegst du dann 1.2Mbyte ? in deiner berechnung sollte noch eingehen, dass man nicht alle baenke richtig nutzen kann. auf bank 3 und 4 geht
ja die haelfte fuer MPEG-decoding weg und 24bit OSD braucht auch nochmal einiges(16bit SDRAM).desweiteren funktioniert section-buffer auch nur auf bank 1 richtig. weiterhin sollte sich auf bank 1 auch ABV,VBV,AC-3 befinden.wenn du mal was in TS auf deine HD aufnehmen willst, muss es auch noch einen schnellen record- und play- buffer geben. beim kopieren aus dem VBV wuerde dies zumindest entfallen. wie schaut es eigendlich mit der implementierung und anpassung des intrrupt-system aus ?
GDRGuy69
Beiträge: 22
Registriert: 09.03.2007, 07:01

Re: Das U-Boot für Zapmaster

Beitrag von GDRGuy69 »

tibor hat geschrieben:desweiteren funktioniert section-buffer auch nur auf bank 1 richtig. weiterhin sollte sich auf bank 1 auch ABV,VBV,AC-3 befinden.
Ist das wirklich so? Ich dachte immer, dass die tsd-Buffer beliebig in Bank 1-4 liegen können. Im Moment habe ich sie in Bank 3 (ab 0x400000 bei 8MB SDRAM), und ich hatte noch keine Probleme. Ich weiss nur, dass Code nur in den Bänken 1+2 stehen darf und man damit nur 4MB hat, so dass ich möglichst alle Datenbereiche aus diesen beiden Bänken raus haben will.
tibor hat geschrieben:wie schaut es eigendlich mit der implementierung und anpassung des intrrupt-system aus ?
Das ist fertig, alle Interrupts laufen in der uClinux-Interrupt-Verwaltung auf und wenn sich ein Treiber darauf registriert hat, wird seine Callback-Funktion aufgerufen. Funktioniert im Moment für Timer, UART, GPIO (IDE), TSD/BM und DISP0. Allerdings musste ich vom originalen uClinux-Code den Software-Interrupt, der für System-Calls auf 8 (DISP0) gelegt war, nach 23 abändern. Dann durfte ich auch die uClibC noch mal neuen bauen :)
tibor
LaSAT-Mitarbeiter
LaSAT-Mitarbeiter
Beiträge: 511
Registriert: 08.03.2007, 11:25
Wohnort: neunburg im wald

Re: Das U-Boot für Zapmaster

Beitrag von tibor »

@GDR, is so. netzwerk ueber PCMCIA ? wuerde sicher gehen. poll auf SensGPIO dann VCC und VPP enable und reset. UPI fuer attribut_mem konfigurieren CIS-lesen und dann muss linux doch alles koennen :-)
Antworten