Hi Dirk, On Thu, Jun 9, 2016 at 8:56 AM, Dirk Behme <dirk.behme@xxxxxxxxxxxx> wrote: > with the R-Car3, the pinmux/drvctrl is done at 3 places: > > 1. ARM trusted firmware / IPL: > > https://github.com/renesas-rcar/meta-renesas/blob/jethro/meta-rcar-gen3/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware/0001-add-bl2-bl31-R-Car-support.patch#L8428 > > > 2. U-Boot: > > https://github.com/renesas-rcar/u-boot/blob/v2015.04/rcar-3.2.x/board/renesas/salvator-x/salvator-x.c#L116 > > > 3. Linux kernel > > https://git.kernel.org/cgit/linux/kernel/git/geert/renesas-drivers.git/tree/drivers/pinctrl/sh-pfc/pfc-r8a7795.c?h=topic/gen3-latest > > > Now, the issue we see is that (of course?) this is not necessarily > consistent. > > Therefore: What's supposed to be the correct place to do this (once)? IMHO the kernel should take care of making sure pinctrl is configured correctly, independent of earlier stages in the boot process. This is the same stance as for module clocks. Note that if the kernel takes care of it, doing it once is not an option, as earlier stages may need pinctrl configuration depending on boot method (e.g. TFTP over Ethernet needs RAVB setup). > The example is the RAVB ethernet: We found that on the Salvator-X the > kernel's ethernet doesn't work without being initialized by U-Boot. I.e. > without running U-Boot doing the drvctrl [1] ethernet fails in the Linux > kernel. This is a missing/incorrect drive strength configuration? The pfc-r8a7795 does have support for drive strength, but only for pins that also have GPIO capabilities. (At least some of) the RAVB pins don't seem to be handled (e.g. DRVCTRL2). Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds