mbox series

[v1,0/2] Add roc-rk3328-cc support

Message ID 20200214144627.25815-1-ldevulder@suse.com
Headers show
Series Add roc-rk3328-cc support | expand

Message

Loic Devulder Feb. 14, 2020, 2:46 p.m. UTC
This serie add support for roc-rk33239 board from Firefly/Libre
Computer:
  - add missing L2 cache entry in rk3328 dts
  - add roc-rk3328-cc board support

With this we can successfully boot the board with mainline U-Boot and
binary blob firmwares. Boot with ATF and TPL/SPL partially works: TPL
works fine but SPL fails to find a bootable device.

I didn't used the DTS from Linux kernel: USB2 fails in that case, this
should be corrected but maybe later?

Note: sorry if this serie has been send twice, but I had issue with my
email server...


Loic Devulder (2):
  rockchip: rk3328: dts: add L2 cache entry
  rockchip: rk3328: add roc-rk3328-cc support

 arch/arm/dts/Makefile                  |   3 +-
 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi |  16 ++
 arch/arm/dts/rk3328-roc-cc.dts         | 260 +++++++++++++++++++++++++
 arch/arm/dts/rk3328.dtsi               |  25 ++-
 arch/arm/mach-rockchip/rk3328/Kconfig  |   1 -
 board/rockchip/evb_rk3328/MAINTAINERS  |   6 +
 configs/roc-cc-rk3328_defconfig        |  95 +++++++++
 doc/README.rockchip                    |   9 +-
 8 files changed, 408 insertions(+), 7 deletions(-)
 create mode 100644 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
 create mode 100644 arch/arm/dts/rk3328-roc-cc.dts
 create mode 100644 configs/roc-cc-rk3328_defconfig

Comments

Peter Geis Feb. 27, 2020, 5:47 p.m. UTC | #1
On Fri, Feb 14, 2020 at 9:47 AM Loic Devulder <ldevulder@suse.com> wrote:
>
> This serie add support for roc-rk33239 board from Firefly/Libre
> Computer:
>   - add missing L2 cache entry in rk3328 dts
>   - add roc-rk3328-cc board support
>
> With this we can successfully boot the board with mainline U-Boot and
> binary blob firmwares. Boot with ATF and TPL/SPL partially works: TPL
> works fine but SPL fails to find a bootable device.

I have tpl/spl fully enabled on this device privately.
The SPL fails to find a boot device when booted from the sdcard.
It successfully boots from emmc though.
I believe this is due to the 3.3/1.8 mode switch.

Have you tested off emmc with your patch?

>
> I didn't used the DTS from Linux kernel: USB2 fails in that case, this
> should be corrected but maybe later?
>
> Note: sorry if this serie has been send twice, but I had issue with my
> email server...
>
>
> Loic Devulder (2):
>   rockchip: rk3328: dts: add L2 cache entry
>   rockchip: rk3328: add roc-rk3328-cc support
>
>  arch/arm/dts/Makefile                  |   3 +-
>  arch/arm/dts/rk3328-roc-cc-u-boot.dtsi |  16 ++
>  arch/arm/dts/rk3328-roc-cc.dts         | 260 +++++++++++++++++++++++++
>  arch/arm/dts/rk3328.dtsi               |  25 ++-
>  arch/arm/mach-rockchip/rk3328/Kconfig  |   1 -
>  board/rockchip/evb_rk3328/MAINTAINERS  |   6 +
>  configs/roc-cc-rk3328_defconfig        |  95 +++++++++
>  doc/README.rockchip                    |   9 +-
>  8 files changed, 408 insertions(+), 7 deletions(-)
>  create mode 100644 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
>  create mode 100644 arch/arm/dts/rk3328-roc-cc.dts
>  create mode 100644 configs/roc-cc-rk3328_defconfig
>
> --
> 2.25.0
>
Chen-Yu Tsai March 26, 2020, 9:42 a.m. UTC | #2
Hi,

On Fri, Feb 28, 2020 at 1:47 AM Peter Geis <pgwipeout@gmail.com> wrote:
>
> On Fri, Feb 14, 2020 at 9:47 AM Loic Devulder <ldevulder@suse.com> wrote:
> >
> > This serie add support for roc-rk33239 board from Firefly/Libre
> > Computer:
> >   - add missing L2 cache entry in rk3328 dts
> >   - add roc-rk3328-cc board support
> >
> > With this we can successfully boot the board with mainline U-Boot and
> > binary blob firmwares. Boot with ATF and TPL/SPL partially works: TPL
> > works fine but SPL fails to find a bootable device.
>
> I have tpl/spl fully enabled on this device privately.
> The SPL fails to find a boot device when booted from the sdcard.
> It successfully boots from emmc though.
> I believe this is due to the 3.3/1.8 mode switch.

Actually this is due to no power being supplied to the card.

The SD card's VCC is driven by a switched regulator, which is controlled
by SDMMC0_PWREN, and is also pulled down externally. The enable line is
active low. The bootrom does not touch the line, but the MMC driver in
U-boot sets PWREN in the MMC controller, which I assume changes the state
of SDMMC0_PWREN.

My solution was to simply mux the pin over to GPIO, instead of being
controlled through the MMC controller, the latter being the default.
The GPIO default state is input, and so the external pull-down works
to keep the power enabled. This is done by creating spl_board_init()
especially for this board, so essentially creating another target.

I suppose the other way to do it is to enable a bunch of stuff such
as regulators and GPIO in SPL, and also do proper pinmuxing, i.e.
not throwing away pinctrl properties in the SPL device tree.

My work also includes syncing the rk3328 device tree files from the
Linux kernel, along with some cleanups. If Loic and Kever are OK with
another series, I can send it out.

Regards
ChenYu



> Have you tested off emmc with your patch?
>
> >
> > I didn't used the DTS from Linux kernel: USB2 fails in that case, this
> > should be corrected but maybe later?
> >
> > Note: sorry if this serie has been send twice, but I had issue with my
> > email server...
> >
> >
> > Loic Devulder (2):
> >   rockchip: rk3328: dts: add L2 cache entry
> >   rockchip: rk3328: add roc-rk3328-cc support
> >
> >  arch/arm/dts/Makefile                  |   3 +-
> >  arch/arm/dts/rk3328-roc-cc-u-boot.dtsi |  16 ++
> >  arch/arm/dts/rk3328-roc-cc.dts         | 260 +++++++++++++++++++++++++
> >  arch/arm/dts/rk3328.dtsi               |  25 ++-
> >  arch/arm/mach-rockchip/rk3328/Kconfig  |   1 -
> >  board/rockchip/evb_rk3328/MAINTAINERS  |   6 +
> >  configs/roc-cc-rk3328_defconfig        |  95 +++++++++
> >  doc/README.rockchip                    |   9 +-
> >  8 files changed, 408 insertions(+), 7 deletions(-)
> >  create mode 100644 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
> >  create mode 100644 arch/arm/dts/rk3328-roc-cc.dts
> >  create mode 100644 configs/roc-cc-rk3328_defconfig
> >
> > --
> > 2.25.0
> >