BPi M2-Ultra - Kernel
Es wäre ja schön, wenn man mal einen vernünftigen Kernel in die Hand bekommen würde. Der Stand der Dinge, so wie meine Info's sind.

Ein funktionierender U-Boot: https://github.com/wens/u-boot-sunxi/commits/r40
Ein unfertiges Linux vom Stefan T. https://github.com/a1d3s/linux Danke für die Arbeit!
Ein GB RAM wird erkannt, die serielle Konsole funktioniert, das war es. Noch nicht wirklich viel, aber es geht ganz langsam vorwärts.
Das DTB-File vom Stefan scheint auch noch nicht ganz zu funktionieren. Moment, DTB-File? Was zur Hölle ist das? Ein DTB-File enthält sämtliche Hardwareinformationen des benutzten Boards. Diese werden beim Start im RAM abgelegt und dann an den Kernel vom u-boot weitergegeben. Ganz schwieriges Thema für mich, aber man lernt nur wenn man sich mit was beschäftigt ;)
| / { | |
| model = "Banana Pi BPI-M2-Ultra"; | |
| compatible = "sinovoip,bpi-m2-ultra", "allwinner,sun8i-r40"; | |
| aliases { | |
| serial0 = &uart0; | |
| serial1 = &uart1; | |
| }; | |
| chosen { | |
| stdout-path = "serial0:115200n8"; | |
| }; | |
| leds { | |
| compatible = "gpio-leds"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&pwr_led_bpi_m2u>; | |
| pwr_led { | |
| label = "bananapi-m2-ultra:red:pwr"; | |
| gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ | |
| default-state = "on"; | |
| }; | |
| }; | |
| gpio_keys { | |
| compatible = "gpio-keys"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&sw_r_bpi_m2u>; | |
| sw4 { | |
| label = "power"; | |
| linux,code = <BTN_0>; | |
| gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; | |
| }; | |
| }; | |
| wifi_pwrseq: wifi_pwrseq { | |
| compatible = "mmc-pwrseq-simple"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&wifi_en_bpi_m2u>; | |
| reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ | |
| }; | |
| }; | |
| &ehci1 { | |
| status = "okay"; | |
| }; | |
| &ehci2 { | |
| status = "okay"; | |
| }; | |
| &ir { | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&ir_pins_a>; | |
| status = "okay"; | |
| }; | |
| &mmc0 { | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; | |
| vmmc-supply = <®_vcc3v3>; | |
| bus-width = <4>; | |
| cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ | |
| cd-inverted; | |
| status = "okay"; | |
| }; | |
| &mmc1 { | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&mmc1_pins_a>; | |
| vmmc-supply = <®_vcc3v3>; | |
| vqmmc-supply = <®_vcc3v3>; | |
| mmc-pwrseq = <&wifi_pwrseq>; | |
| bus-width = <4>; | |
| non-removable; | |
| status = "disabled"; | |
| brcmf: bcrmf@1 { | |
| reg = <1>; | |
| compatible = "brcm,bcm4329-fmac"; | |
| interrupt-parent = <&pio>; | |
| interrupts = <6 6 IRQ_TYPE_LEVEL_LOW>; /* PG6 / EINT10 */ | |
| interrupt-names = "host-wake"; | |
| }; | |
| }; | |
| &mmc2 { | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&mmc2_8bit_pins>; | |
| vmmc-supply = <®_vcc3v3>; | |
| vqmmc-supply = <®_vcc3v3>; | |
| bus-width = <4>; | |
| non-removable; | |
| status = "okay"; | |
| }; | |
| &ohci1 { | |
| status = "okay"; | |
| }; | |
| &ohci2 { | |
| status = "okay"; | |
| }; | |
| &r_pio { | |
| pwr_led_bpi_m2u: led_pins@0 { | |
| allwinner,pins = "PL10"; | |
| allwinner,function = "gpio_out"; | |
| allwinner,drive = <SUN4I_PINCTRL_10_MA>; | |
| allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; | |
| }; | |
| sw_r_bpi_m2u: key_pins@0 { | |
| allwinner,pins = "PL3"; | |
| allwinner,function = "gpio_in"; | |
| allwinner,drive = <SUN4I_PINCTRL_10_MA>; | |
| allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; | |
| }; | |
| wifi_en_bpi_m2u: wifi_en_pin { | |
| allwinner,pins = "PL7"; | |
| allwinner,function = "gpio_out"; | |
| allwinner,drive = <SUN4I_PINCTRL_10_MA>; | |
| allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; | |
| }; | |
| }; | |
| &uart0 { | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&uart0_pins_a>; | |
| status = "okay"; | |
| }; | |
| &uart1 { | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; | |
| status = "okay"; | |
| }; | |
| &usbphy { | |
| /* USB VBUS is on as long as VCC-IO is on */ | |
| status = "okay"; | |
| }; |
Gut, was wissen wir? Ein u-boot der funktioniert, schon mal ganz wichtig sonst bootet die Kiste gar nicht ;) Ein DTB-File mit viel Raum für Verbesserungen.
Wenn jemand von solchen Sachen richtig Ahnung hat und einen BananaPi M2-Ultra zum Testen braucht, ich stelle gerne einen zur Verfügung. Kontakt
Liebe Fachleute, ich weiß das ich davon null Ahnung habe :)
Weitere Links:
http://linux-sunxi.org/Sinovoip_Banana_Pi_M2_Ultra
https://github.com/dan-and/BPI-M2U-bsp/commits/master Daniel's Fork von Sinovoip's Linux 3.10.x um das auf einen vernünftigen Stand zu bringen.
Hersteller-Links:
https://github.com/BPI-SINOVOIP/BPI-M2U-bsp
https://bananapi.gitbooks.io/bpi-m2-ultra-open-source-single-board-computer/content/chapter1.html