From: Heiko Stuebner <heiko@sntech.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 0/8] arm-trusted-firmware support for rk3288
Date: Fri, 5 Apr 2019 10:30:05 +0200 [thread overview]
Message-ID: <20190405083013.5473-1-heiko@sntech.de> (raw)
This adds support for jumping into aarch32 ATF from u-boot spl
similar to how it works on aarch64.
I guess the biggest question might be "why" ;-)
Right now the status quo on Rockchip arm32 socs is, that the linux
kernel itself does smp and suspend handling. This precludes us from
doing fance things like virtualization but also deep suspend with
the DDR in self refresh, due to at least 2 approaches for putting
generalized code into sram from the kernel side failed so far.
For Virtualization we need the kernel to start in hyp mode and hence
needing to use psci for smp handling as well.
So there are multiple ways for achieving that, we could do
- psci in uboot itself is bad for coreboot and barebox who would
need to reimplement the same
- psci in optee is the solution Rockchip themself choose but only
provides precompiled binaries for their arm32 socs and also
reimplmenting this in an open way is somewhat of a dead-end
because while aarch64 can use op-tee, psci itself is always
done in the atf
- atf using the somewhat new aarch32 port has the advantage of
being able to share a lot of platform code making maintenance
together with the aarch64 parts a lot easier
Not having to rely on binary components as part of the boot process
is way nicer not only for reproducible builds but also for future
proofing projects as binary blobs may not receive updates after
some time.
Also it is still possible to use this together with an optee
implementation for specific security foobar. The only difference
is that while aarch64 can has separate states for secure monitor
and secure-os, in aarch32 both need to share the bl32 space, so
optee needs to be a payload during the atf build. If no secure-os
is needed, atf can use the sp_min payload, which is part of atf.
This works nicely on my rk3288 evb and even virtualization worked
already. Full support will still need a modified devicetree to
actually make use of the new psci capabilites.
Heiko Stuebner (8):
arm: v7: add read_mpidr function for arm32
spl: atf: add arm32 variant
rockchip: rk3288: move TPL options to generic position
rockchip: rk3288: adjust load addresses
rockchip: rk3288: reserve first 2MB when build with ATF support
rockchip: rk3288: split evb into its two entities
rockchip: rk3288: convert rk3288-evb to use tpl
rockchip: rk3288: make both evb variants use atf
arch/arm/dts/Makefile | 3 +-
...evb.dts => rk3288-evb-act8846-u-boot.dtsi} | 33 +-
arch/arm/dts/rk3288-evb-act8846.dts | 188 +++++++
arch/arm/dts/rk3288-evb-rk808-u-boot.dtsi | 40 ++
arch/arm/dts/rk3288-evb-rk808.dts | 202 +++++++
arch/arm/dts/rk3288-evb.dtsi | 493 ++++++++----------
arch/arm/include/asm/system.h | 9 +
arch/arm/mach-rockchip/Kconfig | 16 +
arch/arm/mach-rockchip/rk3288/Kconfig | 16 +-
arch/arm/mach-rockchip/rk3288/rk3288.c | 16 +
board/rockchip/evb_rk3288/evb-rk3288.c | 14 +
board/rockchip/evb_rk3288/fit_spl_atf.its | 52 ++
common/spl/Kconfig | 2 +-
common/spl/spl_atf.c | 86 ++-
...defconfig => evb-rk3288-act8846_defconfig} | 14 +-
configs/evb-rk3288-rk808_defconfig | 91 ++++
include/atf_common.h | 52 ++
include/configs/rk3288_common.h | 8 +-
18 files changed, 998 insertions(+), 337 deletions(-)
rename arch/arm/dts/{rk3288-evb.dts => rk3288-evb-act8846-u-boot.dtsi} (64%)
create mode 100644 arch/arm/dts/rk3288-evb-act8846.dts
create mode 100644 arch/arm/dts/rk3288-evb-rk808-u-boot.dtsi
create mode 100644 arch/arm/dts/rk3288-evb-rk808.dts
create mode 100644 board/rockchip/evb_rk3288/fit_spl_atf.its
rename configs/{evb-rk3288_defconfig => evb-rk3288-act8846_defconfig} (87%)
create mode 100644 configs/evb-rk3288-rk808_defconfig
--
2.20.1
next reply other threads:[~2019-04-05 8:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-05 8:30 Heiko Stuebner [this message]
2019-04-05 8:30 ` [U-Boot] [PATCH 1/8] arm: v7: add read_mpidr function for arm32 Heiko Stuebner
2019-04-16 10:29 ` Matthias Brugger
2019-04-05 8:30 ` [U-Boot] [PATCH 2/8] spl: atf: add arm32 variant Heiko Stuebner
2019-04-05 8:30 ` [U-Boot] [PATCH 3/8] rockchip: rk3288: move TPL options to generic position Heiko Stuebner
2019-04-16 9:37 ` Jagan Teki
2019-04-05 8:30 ` [U-Boot] [PATCH 4/8] rockchip: rk3288: adjust load addresses Heiko Stuebner
2019-04-05 8:30 ` [U-Boot] [PATCH 5/8] rockchip: rk3288: reserve first 2MB when build with ATF support Heiko Stuebner
2019-05-07 2:29 ` Kever Yang
2019-04-05 8:30 ` [U-Boot] [PATCH 6/8] rockchip: rk3288: split evb into its two entities Heiko Stuebner
2019-04-05 8:30 ` [U-Boot] [PATCH 7/8] rockchip: rk3288: convert rk3288-evb to use tpl Heiko Stuebner
2019-05-07 2:32 ` Kever Yang
2019-04-05 8:30 ` [U-Boot] [PATCH 8/8] rockchip: rk3288: make both evb variants use atf Heiko Stuebner
2019-05-07 2:28 ` Kever Yang
[not found] ` <526672816.2740575.1557194072777.JavaMail.javamailuser@localhost>
2019-05-07 7:51 ` Heiko Stuebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190405083013.5473-1-heiko@sntech.de \
--to=heiko@sntech.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox