mbox series

[0/4] Add initial support for Rockchip RK3528 SoC

Message ID 20240803125510.4699-2-ziyao@disroot.org (mailing list archive)
Headers show
Series Add initial support for Rockchip RK3528 SoC | expand

Message

Yao Zi Aug. 3, 2024, 12:55 p.m. UTC
Rockchip RK3528 is a quad-core ARM Cortex-A53 SoC designed for
multimedia application. This series add a basic device tree with CPU,
interrupts and UART nodes for it and is able to boot into a kernel with
only UART console.

Has been tested on Radxa E20C board[1] with vendor U-boot, successfully
booted into initramfs with this log[2].

[1]: https://docs.radxa.com/en/e/e20c
[2]: https://gist.github.com/ziyao233/b74523a1e3e8bf36286a572e008ca319

Yao Zi (4):
  dt-bindings: serial: snps-dw-apb-uart: Document Rockchip RK3528
  dt-bindings: arm: rockchip: Add Radxa E20C board
  arm64: dts: rockchip: Add base DT for rk3528 SoC
  arm64: dts: rockchip: Add Radxa e20c board

 .../devicetree/bindings/arm/rockchip.yaml     |   5 +
 .../bindings/serial/snps-dw-apb-uart.yaml     |   1 +
 arch/arm64/boot/dts/rockchip/Makefile         |   1 +
 .../boot/dts/rockchip/rk3528-radxa-e20c.dts   |  22 +++
 arch/arm64/boot/dts/rockchip/rk3528.dtsi      | 182 ++++++++++++++++++
 5 files changed, 211 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3528.dtsi


base-commit: 94ede2a3e9135764736221c080ac7c0ad993dc2d

Comments

Dragan Simic Aug. 4, 2024, 5:40 a.m. UTC | #1
Hello all,

On 2024-08-03 14:55, Yao Zi wrote:
> Rockchip RK3528 is a quad-core ARM Cortex-A53 SoC designed for
> multimedia application. This series add a basic device tree with CPU,
> interrupts and UART nodes for it and is able to boot into a kernel with
> only UART console.
> 
> Has been tested on Radxa E20C board[1] with vendor U-boot, successfully
> booted into initramfs with this log[2].

I wonder will at least the RK3528 datasheet become available publicly?

> [1]: https://docs.radxa.com/en/e/e20c
> [2]: https://gist.github.com/ziyao233/b74523a1e3e8bf36286a572e008ca319
> 
> Yao Zi (4):
>   dt-bindings: serial: snps-dw-apb-uart: Document Rockchip RK3528
>   dt-bindings: arm: rockchip: Add Radxa E20C board
>   arm64: dts: rockchip: Add base DT for rk3528 SoC
>   arm64: dts: rockchip: Add Radxa e20c board
> 
>  .../devicetree/bindings/arm/rockchip.yaml     |   5 +
>  .../bindings/serial/snps-dw-apb-uart.yaml     |   1 +
>  arch/arm64/boot/dts/rockchip/Makefile         |   1 +
>  .../boot/dts/rockchip/rk3528-radxa-e20c.dts   |  22 +++
>  arch/arm64/boot/dts/rockchip/rk3528.dtsi      | 182 ++++++++++++++++++
>  5 files changed, 211 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
>  create mode 100644 arch/arm64/boot/dts/rockchip/rk3528.dtsi
> 
> 
> base-commit: 94ede2a3e9135764736221c080ac7c0ad993dc2d
Yao Zi Aug. 4, 2024, 6:22 a.m. UTC | #2
On Sun, Aug 04, 2024 at 07:40:43AM +0200, Dragan Simic wrote:
> Hello all,
> 
> On 2024-08-03 14:55, Yao Zi wrote:
> > Rockchip RK3528 is a quad-core ARM Cortex-A53 SoC designed for
> > multimedia application. This series add a basic device tree with CPU,
> > interrupts and UART nodes for it and is able to boot into a kernel with
> > only UART console.
> > 
> > Has been tested on Radxa E20C board[1] with vendor U-boot, successfully
> > booted into initramfs with this log[2].
> 
> I wonder will at least the RK3528 datasheet become available publicly?

I found none for now, and I am not someone from Rockchip, thus don't
know whether they have a plan to make it public, either. But there has
been some devices shipping it already and getting them mainlined will
be a neat thing.

Just FYI, the vendor kernel is available here[1] on the "develop-5.10"
branch.

Best regards,
Yao Zi

[1]: https://github.com/rockchip-linux/kernel

> 
> > [1]: https://docs.radxa.com/en/e/e20c
> > [2]: https://gist.github.com/ziyao233/b74523a1e3e8bf36286a572e008ca319
> > 
> > Yao Zi (4):
> >   dt-bindings: serial: snps-dw-apb-uart: Document Rockchip RK3528
> >   dt-bindings: arm: rockchip: Add Radxa E20C board
> >   arm64: dts: rockchip: Add base DT for rk3528 SoC
> >   arm64: dts: rockchip: Add Radxa e20c board
> > 
> >  .../devicetree/bindings/arm/rockchip.yaml     |   5 +
> >  .../bindings/serial/snps-dw-apb-uart.yaml     |   1 +
> >  arch/arm64/boot/dts/rockchip/Makefile         |   1 +
> >  .../boot/dts/rockchip/rk3528-radxa-e20c.dts   |  22 +++
> >  arch/arm64/boot/dts/rockchip/rk3528.dtsi      | 182 ++++++++++++++++++
> >  5 files changed, 211 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
> >  create mode 100644 arch/arm64/boot/dts/rockchip/rk3528.dtsi
> > 
> > 
> > base-commit: 94ede2a3e9135764736221c080ac7c0ad993dc2d
Piotr Oniszczuk Aug. 4, 2024, 9:13 a.m. UTC | #3
> Wiadomość napisana przez Yao Zi <ziyao@disroot.org> w dniu 04.08.2024, o godz. 08:22:
> 
> On Sun, Aug 04, 2024 at 07:40:43AM +0200, Dragan Simic wrote:
>> Hello all,
>> 
>> On 2024-08-03 14:55, Yao Zi wrote:
>>> Rockchip RK3528 is a quad-core ARM Cortex-A53 SoC designed for
>>> multimedia application. This series add a basic device tree with CPU,
>>> interrupts and UART nodes for it and is able to boot into a kernel with
>>> only UART console.
>>> 
>>> Has been tested on Radxa E20C board[1] with vendor U-boot, successfully
>>> booted into initramfs with this log[2].
>> 
>> I wonder will at least the RK3528 datasheet become available publicly?
> 
> I found none for now, and I am not someone from Rockchip, thus don't
> know whether they have a plan to make it public, either. But there has
> been some devices shipping it already and getting them mainlined will
> be a neat thing.
> 

Maybe this hight be useful: at some point in time I started to hack with rk3528 support in mainline kernel.
HW I’m using is vontar rk3528 tvbox.

So far - on mainline 6.10 kernel - I got working: clocks, pin control, uart, sdcard, eth, usb.

I started to work on dw hdmi and got to stage with correct mode sets by dw-hdmi but I stuck with vop3 support.

Generally - I was back porting code from bsp but rockchip bsp is too divergent from mainline to my back porting skills :-(

If anybody can help with vop3 - then we can have quite good initial support of rk3528 in mainline (the, sdcard, usb, eth, hdmi)
gpu, hdmi audio should be probably easy…

My rk3528 enablements:

Bindings: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1100-dt-bindings-clock-add-rk3528-clock-definitions.patch

Clocks: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1101-clk-rockchip-add-clock-controller-for-the-RK3528.patch

Pincontrol: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1102-pinctrl-rockchip-add-rk3528-support.patch

Power domain bindings: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1103-dt-bindings-power-add-RK3528-SoCs-header-for-idle.patch

Ethernet support: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1104-ethernet-stmmac-dwmac-rk3528-add-GMAC-support.patch

Power domains support: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1105-soc-rockchip-power-domain-add-rk3528-support.patch

usb: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1106-phy-rockchip-inno-usb2-add-phy-support-for-rk3528.patch

SoC power domains: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1108-soc-rockchip-power-domain-add-rk3528-support.patch

Thermal: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1108-thermal-rockchip-add-support-for-rk3528.patch

Naneng phy: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1109-phy-rockchip-naneng-combphy-add-support-for-rk3528.patch

dw hdmi: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1110-phy-rockchip-inno-hdmi-add-support-for-rk3528.patch

Inno hdmi: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1111-drm-rockchip-dw_hdmi-add-support-for-rk3528.patch       Nvmem: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1113-nvmem-rockchip-otp-add-support-for-rk3528.patch

Sound soc: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1114-sound-soc-codecs-add-rk3528-support.patch

rk3528 dtsi: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1150-arm64-dtsi-rockchip-add-3528.dtsi.patch: 

Vontar tvbox dts: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1151-arm64-dts-rockchip-add-dts-for-vontar_r3.patch

It may happen that above patches will not apply clean on vanilla 6.10 as I’m patching kernel for s905/s912/sm1/g12/rpi3/rpi4/rpi5/3328/3399//3566/3568/3588/3528 and rk3528 patches are after applied s905/s912/sm1/g12/rpi3/rpi4/rpi5/3328/3399/3566/3568/3588 patches.

If anybody is interested in adding vop3 support - pls give me sign - we can work together…
 

> Just FYI, the vendor kernel is available here[1] on the "develop-5.10"
> branch.
> 
> Best regards,
> Yao Zi
> 
> [1]: https://github.com/rockchip-linux/kernel
> 
>> 
>>> [1]: https://docs.radxa.com/en/e/e20c
>>> [2]: https://gist.github.com/ziyao233/b74523a1e3e8bf36286a572e008ca319
>>> 
>>> Yao Zi (4):
>>>  dt-bindings: serial: snps-dw-apb-uart: Document Rockchip RK3528
>>>  dt-bindings: arm: rockchip: Add Radxa E20C board
>>>  arm64: dts: rockchip: Add base DT for rk3528 SoC
>>>  arm64: dts: rockchip: Add Radxa e20c board
>>> 
>>> .../devicetree/bindings/arm/rockchip.yaml     |   5 +
>>> .../bindings/serial/snps-dw-apb-uart.yaml     |   1 +
>>> arch/arm64/boot/dts/rockchip/Makefile         |   1 +
>>> .../boot/dts/rockchip/rk3528-radxa-e20c.dts   |  22 +++
>>> arch/arm64/boot/dts/rockchip/rk3528.dtsi      | 182 ++++++++++++++++++
>>> 5 files changed, 211 insertions(+)
>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528.dtsi
>>> 
>>> 
>>> base-commit: 94ede2a3e9135764736221c080ac7c0ad993dc2d
> 
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
Yao Zi Aug. 4, 2024, 1:27 p.m. UTC | #4
On Sun, Aug 04, 2024 at 11:13:59AM +0200, Piotr Oniszczuk wrote:
> 
> 
> > Wiadomość napisana przez Yao Zi <ziyao@disroot.org> w dniu 04.08.2024, o godz. 08:22:
> > 
> > On Sun, Aug 04, 2024 at 07:40:43AM +0200, Dragan Simic wrote:
> >> Hello all,
> >> 
> >> On 2024-08-03 14:55, Yao Zi wrote:
> >>> Rockchip RK3528 is a quad-core ARM Cortex-A53 SoC designed for
> >>> multimedia application. This series add a basic device tree with CPU,
> >>> interrupts and UART nodes for it and is able to boot into a kernel with
> >>> only UART console.
> >>> 
> >>> Has been tested on Radxa E20C board[1] with vendor U-boot, successfully
> >>> booted into initramfs with this log[2].
> >> 
> >> I wonder will at least the RK3528 datasheet become available publicly?
> > 
> > I found none for now, and I am not someone from Rockchip, thus don't
> > know whether they have a plan to make it public, either. But there has
> > been some devices shipping it already and getting them mainlined will
> > be a neat thing.
> > 
> 
> Maybe this hight be useful: at some point in time I started to hack with rk3528 support in mainline kernel.
> HW I’m using is vontar rk3528 tvbox.
> 
> So far - on mainline 6.10 kernel - I got working: clocks, pin control, uart, sdcard, eth, usb.
> 
> I started to work on dw hdmi and got to stage with correct mode sets by dw-hdmi but I stuck with vop3 support.
> 
> Generally - I was back porting code from bsp but rockchip bsp is too divergent from mainline to my back porting skills :-(
> 
> If anybody can help with vop3 - then we can have quite good initial support of rk3528 in mainline (the, sdcard, usb, eth, hdmi)
> gpu, hdmi audio should be probably easy…
> 
> My rk3528 enablements:
> 
> Bindings: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1100-dt-bindings-clock-add-rk3528-clock-definitions.patch
> 
> Clocks: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1101-clk-rockchip-add-clock-controller-for-the-RK3528.patch
> 
> Pincontrol: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1102-pinctrl-rockchip-add-rk3528-support.patch
> 
> Power domain bindings: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1103-dt-bindings-power-add-RK3528-SoCs-header-for-idle.patch
> 
> Ethernet support: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1104-ethernet-stmmac-dwmac-rk3528-add-GMAC-support.patch
> 
> Power domains support: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1105-soc-rockchip-power-domain-add-rk3528-support.patch
> 
> usb: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1106-phy-rockchip-inno-usb2-add-phy-support-for-rk3528.patch
> 
> SoC power domains: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1108-soc-rockchip-power-domain-add-rk3528-support.patch
> 
> Thermal: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1108-thermal-rockchip-add-support-for-rk3528.patch
> 
> Naneng phy: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1109-phy-rockchip-naneng-combphy-add-support-for-rk3528.patch
> 
> dw hdmi: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1110-phy-rockchip-inno-hdmi-add-support-for-rk3528.patch
> 
> Inno hdmi: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1111-drm-rockchip-dw_hdmi-add-support-for-rk3528.patch       Nvmem: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1113-nvmem-rockchip-otp-add-support-for-rk3528.patch
> 
> Sound soc: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1114-sound-soc-codecs-add-rk3528-support.patch
> 
> rk3528 dtsi: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1150-arm64-dtsi-rockchip-add-3528.dtsi.patch: 

FYI, This link is dead.

> Vontar tvbox dts: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/1151-arm64-dts-rockchip-add-dts-for-vontar_r3.patch
> 
> It may happen that above patches will not apply clean on vanilla 6.10 as I’m patching kernel for s905/s912/sm1/g12/rpi3/rpi4/rpi5/3328/3399//3566/3568/3588/3528 and rk3528 patches are after applied s905/s912/sm1/g12/rpi3/rpi4/rpi5/3328/3399/3566/3568/3588 patches.
> 
> If anybody is interested in adding vop3 support - pls give me sign - we can work together…
> 
> > Just FYI, the vendor kernel is available here[1] on the "develop-5.10"
> > branch.
> > 
> > Best regards,
> > Yao Zi
> > 
> > [1]: https://github.com/rockchip-linux/kernel
> > 
> >> 
> >>> [1]: https://docs.radxa.com/en/e/e20c
> >>> [2]: https://gist.github.com/ziyao233/b74523a1e3e8bf36286a572e008ca319
> >>> 
> >>> Yao Zi (4):
> >>>  dt-bindings: serial: snps-dw-apb-uart: Document Rockchip RK3528
> >>>  dt-bindings: arm: rockchip: Add Radxa E20C board
> >>>  arm64: dts: rockchip: Add base DT for rk3528 SoC
> >>>  arm64: dts: rockchip: Add Radxa e20c board
> >>> 
> >>> .../devicetree/bindings/arm/rockchip.yaml     |   5 +
> >>> .../bindings/serial/snps-dw-apb-uart.yaml     |   1 +
> >>> arch/arm64/boot/dts/rockchip/Makefile         |   1 +
> >>> .../boot/dts/rockchip/rk3528-radxa-e20c.dts   |  22 +++
> >>> arch/arm64/boot/dts/rockchip/rk3528.dtsi      | 182 ++++++++++++++++++
> >>> 5 files changed, 211 insertions(+)
> >>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
> >>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528.dtsi
> >>> 
> >>> 
> >>> base-commit: 94ede2a3e9135764736221c080ac7c0ad993dc2d
> > 
> > _______________________________________________
> > Linux-rockchip mailing list
> > Linux-rockchip@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-rockchip
> 

Best regards,
Yao Zi