Dear all,
I have 4 different topics on which I can't find a correct answer on internet.
I am developing a new system base on the Raspberrypi CM3+ with our custom
board. I am using Yocto with the meta-raspberrypi and the dunfell branch (for
LTS)
Here is what I would like to achieve:
* Get UART0 or UART1 as the standard console for u-boot and the linux kernel on
pins 32 and 33
* Make u-boot pass my device tree (stored in the boot partition) to the kernel
and not the device tree generated by the first stage bootloader
* U-boot message ?
* Patch kernel which sources are in work-shared
--------------------------------------------------------------------------------------------------------------------------------------
Regarding the first point, I already created a new device tree within u-boot
and set it as the default bootloader in my default config. I have some troubles
to understand how everything works between the first stage bootloader, u-boot,
u-boot internal device tree and the kernel device tree.
Here is the different things I tried:
* Use UART0 on pins 32 and 33
* In the u-boot device tree:
>
> chosen {
> stdout-path = "serial0:115200n8";
> }
> ...
> &uart0 {
> pinctrl-names= "default";
> pinctrl-0 = <&uart0_gpio32>;
> status = "okay";
> }
>
* In the config.txt:
>
> enable_uart=1
>
> dtoverlay=uart0,txd0_pin=32,rxd0_pin=33,pin_func=7
* This works but only for the kernel, I don't get any output from u-boot and
can't stop the boot process.
* Use UART1 on pins 32 and 33: more or less the same modification but with
different values (uart1_gpio32, serial1, etc..) and same results
I would like to know if there is an other file I should modify to get this
working. When I use the uart0 or uart1 on pin 14 and 15 everything works
perfectly.
Here is my device tree patch for u-boot:
>
> diff --git a/arch/arm/dts/bcm2837-rpi-cm3-digisens.dts
> b/arch/arm/dts/bcm2837-rpi-cm3-digisens.dts
> index e69de29bb2..f6c0efd18d 100644
> --- a/arch/arm/dts/bcm2837-rpi-cm3-digisens.dts
> +++ b/arch/arm/dts/bcm2837-rpi-cm3-digisens.dts
> @@ -0,0 +1,175 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/dts-v1/;
> +#include "bcm2837.dtsi"
> +#include "bcm2836-rpi.dtsi"
> +#include "bcm283x-rpi-smsc9514.dtsi"
> +#include "bcm283x-rpi-usb-host.dtsi"
> +
> +/ {
> + compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
> + model = "Raspberry Pi Compute Module 3 DIGI-SENS baseboard";
> +
> + memory@0 {
> + reg = <0 0x40000000>;
> + };
> +
> + leds {
> + act {
> + gpios = <&expgpio 2 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> + chosen {
> + /* 8250 auxiliary UART instead of pl011 */
> + stdout-path = "serial1:115200n8";
> + };
> +
> + reg_3v3: fixed-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "3V3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + reg_1v8: fixed-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "1V8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + };
> +};
> +
> +&firmware {
> + expgpio: gpio {
> + compatible = "raspberrypi,firmware-gpio";
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-line-names = "HDMI_HPD_N",
> + "EMMC_EN_N",
> + "NC",
> + "NC",
> + "NC",
> + "NC",
> + "NC",
> + "NC";
> + status = "okay";
> + };
> +};
> +
> +&hdmi {
> + hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
> +};
> +
> +&uart1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0_gpio32>;
> + status = "okay";
> +};
> +
> +
> +&sdhost {
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdhost_gpio48>;
> + bus-width = <4>;
> + vmmc-supply = <®_3v3>;
> + vqmmc-supply = <®_1v8>;
> + status = "okay";
> +};
>
(in my defconfig for u-boot I have the following default device tree parameter:
+CONFIG_DEFAULT_DEVICE_TREE="bcm2837-rpi-cm3-digisens")
--------------------------------------------------------------------------------------------------------------------------------------
The second point seems pretty clear to me. I will change the bootscript and
load the file with the fatload command and pass it to the kernel. However I
wonder if it might create some problems if the first stage bootloader has
already reserved the pins.
--------------------------------------------------------------------------------------------------------------------------------------
When u-boot is starting correctly (for the moment only on pin 14 and 15) I have
the following warning and I was not able to find any explanation about it:
>
> U-Boot 2020.01 (Jan 06 2020 - 20:56:31 +0000)
>
> DRAM: 948 MiB
> RPI Compute Module 3+ (0xa02100)
> MMC: mmc@7e202000: 0
> Loading Environment from FAT... WARNING at
> drivers/mmc/bcm2835_sdhost.c:410/bcm2835_send_command()!
> *WARNING at drivers/mmc/bcm2835_sdhost.c:410/bcm2835_send_command()!*
> *** Warning - bad CRC, using default environment
>
> In: serial
> Out: vidconsole
> Err: vidconsole
> Net: No ethernet found.
> starting USB...
> Bus usb@7e980000: scanning bus usb@7e980000 for devices... 1 USB Device(s)
> found
> scanning usb for storage devices... 0 Storage Device(s) found
> Hit any key to stop autoboot: 0
> *WARNING at drivers/mmc/bcm2835_sdhost.c:410/bcm2835_send_command()!*
> *WARNING at drivers/mmc/bcm2835_sdhost.c:410/bcm2835_send_command()!*
> switch to partitions #0, OK
> mmc0(part 0) is current device
> Scanning mmc 0:1...
> Found U-Boot script /boot.scr
>
Should I simply ignore it ?
--------------------------------------------------------------------------------------------------------------------------------------
Finally I have some troubles when I try to patch the kernel. I have always been
working with IMX SOC and (Karo-electronics bsp). With the meta-raspberry, the
kernel sources are in the work-shared directory. When I create a patch with for
example this command:
>
> git diff arch/arm/boot/dts/overlays/uart0-cm3-overlay.dts >
> /.../0001-uart0.patch
>
I have the following error when I run bitbake: "Patch failures can be resolved
in the linux source directory"
--------------------------------------------------------------------------------------------------------------------------------------
Thank you in advance for your time. Let me know if you need more information.
Best regards
Romain
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#51558): https://lists.yoctoproject.org/g/yocto/message/51558
Mute This Topic: https://lists.yoctoproject.org/mt/78501072/21656
Mute #raspberrypi:https://lists.yoctoproject.org/g/yocto/mutehashtag/raspberrypi
Mute #rpi:https://lists.yoctoproject.org/g/yocto/mutehashtag/rpi
Mute #cm3:https://lists.yoctoproject.org/g/yocto/mutehashtag/cm3
Mute #dunfell:https://lists.yoctoproject.org/g/yocto/mutehashtag/dunfell
Mute #kernel:https://lists.yoctoproject.org/g/yocto/mutehashtag/kernel
Mute #yocto:https://lists.yoctoproject.org/g/yocto/mutehashtag/yocto
Mute #uboot:https://lists.yoctoproject.org/g/yocto/mutehashtag/uboot
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-