RIoTboard

Teil 1: Boot-Schalter am RIoTboard

Post von selsinork in RIoTboard, 10. April 2014, 15:51:00

Dies ist der erste von mehreren Posts zum RIoTboard. Die anderen Posts können über den folgenden Link aufgerufen werden:

Teil 2: Bau eines Mainline u-Boot für RIoTboard

Teil 3: Bau eines Mainline Linux-Kernel für RIoTboard

Teil 4: Pinmux-Einstellungen für RIoTboard Erweiterungssteckverbinder

Teil 5: Bau eines Debian armhf Root-Dateisystems für RIoTboard

Teil 6: Debian auf RIoTboard. Endmontage.

 

In der Bedienungsanleitung zu RIoTboard steht nur wenig zu den Boot-Schaltern. Es finden sich nur drei Beispiele. In diesem Blog beseitige ich Unklarheiten über die Aufgabe der Boot-Schalter und zeige Ihnen, was Sie mit den Schaltern anfangen können.

 

Die Einstellungen aus der Bedienungsanleitung lauten wie folgt:

Verwenden Sie diese Konfiguration, wenn Sie das Board mit dem USB-OTG-Steckverbinder an den PC anschließen, um mit dem Betriebssystem Ihrer Wahl ein Board-Abbild zu erstellen.

 

Übernehmen Sie diese Konfiguration, um vom eMMC-Speicher (4 GB) zu booten.

 

Bei dieser Konfiguration bootet das Board vom SD-Steckplatz (an der Unterseite, Bezeichnung J6).  Tabelle 4-3 stiftet Verwirrung, weil darin ein zweiter microSD-Steckplatz (J7) auf der Oberseite des Boards vorkommt.

 

Nachdem damit nun die kargen Angaben aus der Bedienungsanleitung abgehandelt sind, gehen wir jetzt etwas mehr ins Detail.

 

 

Schalter

D1

D2

D3

D4

D5

D6

D7

D8

Boot-Option

BOOT_MODE[1]

BOOT_MODE[0]

BOOT_CFG1[6]

BOOT_CFG1[5]

BOOT_CFG2[6]

BOOT_CFG2[5]

BOOT_CFG[4]

BOOT_CFG2[3]

Boot von eFUSE

0

0

x

x

x

x

x

x

Serieller Download

0

1

x

x

x

x

x

x

Reserviert

1

1

?

?

?

?

?

?

Interner Boot

1

0

SD

1

0

irrelevant wegen BOOT_CFG2[7]=0

x

1 Bit

0

4 Bit

1

eMMC

1

1

1 Bit

0

0

4 Bit

0

1

8 Bit, nicht auf Leiterplatte implementiert

1

0

USDHC-1

nicht implementiert

0

0

USDHC-2

SD-Steckplatz (J6) an Board-Unterseite

0

1

USDHC-3

microSD-Steckplatz (J7) an Board-Oberseite

1

0

USDHC-4

eMMC

1

1

 

Einige Kombinationen sind nicht besonders sinnvoll. Es ist zum Beispiel möglich, das Board für Boot-Vorgänge auf Schnittstellen zu konfigurieren, die nicht auf der Leiterplatte implementiert sind. Schalter D5 ist daher praktisch unbrauchbar.

Andere Kombinationen, die nützlich sein könnten, sind von vornherein ausgeschlossen, weil die verbleibenden Werte von BOOT_CFG1-4 standardmäßig auf 0 stehen (siehe linke Hälfte der Schemadarstellungen auf Seite 18).

 

Es fallen noch andere Sonderlichkeiten auf. Das SoC hat beispielsweise vier Anschlüsse für SD/MMC/eSD/eMMC/SDXC, die allerdings nicht alle gleich sind. Einige von ihnen sind besser für eMMC-Geräte geeignet. Bei dieser Ausgangslage erscheint es also nicht besonders sinnvoll, den eMMC-Zugriff für einen ungeeigneten Anschluss zu konfigurieren.

 

 

Damit bleibt zu klären, welche Kombinationen nun tatsächlich nützlich sind.

 

Schalter

D1

D2

D3

D4

D5

D6

D7

D8

Serieller Download

0

1

x

x

x

x

x

x

SD-Steckplatz (J6, unten)

1

0

1

0

0

1

0

1

microSD-Steckplatz (J7, oben)

1

0

1

0

0

1

1

0

eMMC

1

0

1

1

0

1

1

1

 

Wie Sie sehen, ist die Auswahl nicht allzu groß.

Mit D4 sind auf Anschluss 4 zusätzliche eMMC-Schaltungen möglich. Ansonsten hat man nicht viel mehr Möglichkeiten, als mit D7 und D8 festzulegen, von welchem Anschluss aus gebootet werden soll.

Mit D6 könnte man den Anschluss in einen Einzelbitmodus zwingen. Diese Möglichkeit erscheint allerdings nicht sinnvoll, da dadurch die Verbindung zur Karte erheblich verlangsamt wird. Diese Option kommt daher nur in Betracht, wenn eine problematische Karte installiert ist.

 

Anzumerken wäre vielleicht noch, dass im  Modus „Interner Boot“ mit Konfiguration D1=1, D2=0 im SoC eine Sicherungseinstellung (BT_FUSE_SEL) zu berücksichtigen ist. Wird diese irrtümlicherweise aktiviert, ignoriert das SoC die anderen Schalter und führt den Boot-Vorgang entsprechend den eFUSE-Einstellungen aus. Wenn dann mit den MFG-Tools die Sicherungen überlastet werden, könnte das Board möglicherweise unbrauchbar werden.

 

Schließlich möchte ich noch auf die SoC-Funktion „SD/MMC Manufacture Mode“ eingehen. Diese kommt nur ins Spiel, wenn das konfigurierte Boot-Gerät ausfällt und das SoC auf USDHC-1 und USDHC-2 nach einer SD-Karte mit gültigem Boot-Abbild sucht. Wird das SoC nicht fündig, kehrt es in den Modus „Serieller Download“ zurück. USDHC-1 ist also nicht implementiert und USDHC-2 ist der SD-Steckplatz J6 unten am Board. Damit ist möglich, dass die Schalter für einen eMMC-Boot konfiguriert sind, der eMMC-Speicher aber leer oder beschädigt ist. Dann erfolgt der Boot von einer Karte auf J6.

 

Die genauen Abläufe sind im Referenzhandbuch des Anwendungsprozessors i.MX 6 Solo/6 DualLite, Kapitel 8, nachzulesen.

Sie können die Datei IMX6SLDRM.pdf von der Freescale-Website herunterladen: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6S&fpsp=1&tab=Documentation_Tab

Das Handbuch hat fast 5.800 Seiten. Genug Bettlektüre für einige Nächte.

 

 

chluss 4 zusätzliche eMMC-Schaltungen möglich. Ansonsten hat man nicht viel mehr Möglichkeiten, als mit D7 und D8 festzulegen, von welchem Anschluss aus gebootet werden soll.

Mit D6 könnte man den Anschluss in einen Einzelbitmodus zwingen. Diese Möglichkeit erscheint allerdings nicht sinnvoll, da dadurch die Verbindung zur Karte erheblich verlangsamt wird. Diese Option kommt daher nur in Betracht, wenn eine problematische Karte installiert ist.

 

Anzumerken wäre vielleicht noch, dass im  Modus „Interner Boot“ mit Konfiguration D1=1, D2=0 im SoC eine Sicherungseinstellung (BT_FUSE_SEL) zu berücksichtigen ist. Wird diese irrtümlicherweise aktiviert, ignoriert das SoC die anderen Schalter und führt den Boot-Vorgang entsprechend den eFUSE-Einstellungen aus. Wenn dann mit den MFG-Tools die Sicherungen überlastet werden, könnte das Board möglicherweise unbrauchbar werden.

 

Schließlich möchte ich noch auf die SoC-Funktion „SD/MMC Manufacture Mode“ eingehen. Diese kommt nur ins Spiel, wenn das konfigurierte Boot-Gerät ausfällt und das SoC auf USDHC-1 und USDHC-2 nach einer SD-Karte mit gültigem Boot-Abbild sucht. Wird das SoC nicht fündig, kehrt es in den Modus „Serieller Download“ zurück. USDHC-1 ist also nicht implementiert und USDHC-2 ist der SD-Steckplatz J6 unten am Board. Damit ist möglich, dass die Schalter für einen eMMC-Boot konfiguriert sind, der eMMC-Speicher aber leer oder beschädigt ist. Dann erfolgt der Boot von einer Karte auf J6.

 

Die genauen Abläufe sind im Referenzhandbuch des Anwendungsprozessors i.MX 6 Solo/6 DualLite, Kapitel 8, nachzulesen.

Sie können die Datei IMX6SLDRM.pdf von der Freescale-Website herunterladen: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6S&fpsp=1&tab=Documentation_Tab

Das Handbuch hat fast 5.800 Seiten. Genug Bettlektüre für einige Nächte.