On Thu, Sep 19, 2024 at 09:48:58AM +0800, Kever Yang wrote: > Hi Chris, > > On 2024/9/18 21:38, Chris Morgan wrote: > > On Wed, Sep 18, 2024 at 11:06:34AM +0800, Kever Yang wrote: > > > Hi Chris, > > > > > > Please update the subject with something like "Enable the VO PD before > > > driver access", > > > > > > and the commit message for the change reason is enough. > > > > > > and the config is more soc level, I think you can add this to > > > arch_cpu_init() for we don't have a power domain driver. > > To my knowledge I'm the only board trying to access the video before > > Linux proper. Do you want me to add this for all rk3568 boards then > > (from within rk3568.c under arch_cpu_init() as you say)? > Yes, please move it to rk3568.c in case other board need it. > > I'm thinking > > if I do though I can at least get rid of the memory barrier. > > > > > On 2024/9/17 05:01, Chris Morgan wrote: > > > > From: Chris Morgan <[email protected]> > > > > > > > > The current panel detection logic crashes when the device boots with > > > > mainline A-TF, causing a reboot loop. It turns out mainline A-TF > > > > doesn't enable the VO power domain like the BSP A-TF did. > > > > > > > > Set the VO domain on and use a memory barrier to ensure it is powered > > > > up before we attempt to do the panel detection. > > > > > > > > Signed-off-by: Chris Morgan <[email protected]> > > > > --- > > > > board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c | 13 +++++++++++++ > > > > configs/anbernic-rgxx3-rk3566_defconfig | 2 -- > > > > 2 files changed, 13 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c > > > > b/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c > > > > index c1d1826fd14..f4e7c1ab360 100644 > > > > --- a/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c > > > > +++ b/board/anbernic/rgxx3_rk3566/rgxx3-rk3566.c > > > > @@ -22,6 +22,10 @@ > > > > DECLARE_GLOBAL_DATA_PTR; > > > > +#define PMU_BASE_ADDR 0xfdd90000 > > > > +#define PMU_PWR_GATE_SFTCON 0xa0 > > > > +#define PMU_PD_VO_DWN_ENA BIT(7) > > > > + > > > > #define GPIO0_BASE 0xfdd60000 > > > > #define GPIO4_BASE 0xfe770000 > > > > #define GPIO_SWPORT_DR_L 0x0000 > > > > @@ -311,6 +315,15 @@ int rgxx3_detect_display(void) > > > > int i; > > > > u8 panel_id[2]; > > > > + /* Disable VO power domain power-down */ > > > Disable? > > It's weird verbiage but the data sheet says "Enable power down PD_VO" > > by writing a 1, so I figure I'm disabling it by writing a 0. > > OK, understand now. > > To make it simple and clear, could you just say "Enable PD_VO for display"? > > > > > > > + writel((PMU_PD_VO_DWN_ENA << 16), > > > > + PMU_BASE_ADDR + PMU_PWR_GATE_SFTCON); > > > > + /* > > > > + * System will crash if the power domain isn't enabled before > > > > + * we start trying to talk to the DSI panel. > > > > + */ > > > > + wmb(); > > > > + > > > > /* > > > > * Take panel out of reset status. > > > > * Set GPIO4_A0 to output. > > > > diff --git a/configs/anbernic-rgxx3-rk3566_defconfig > > > > b/configs/anbernic-rgxx3-rk3566_defconfig > > > > index f5e5470df8c..49d3766613e 100644 > > > > --- a/configs/anbernic-rgxx3-rk3566_defconfig > > > > +++ b/configs/anbernic-rgxx3-rk3566_defconfig > > > > @@ -49,8 +49,6 @@ CONFIG_SPL_REGMAP=y > > > > CONFIG_SPL_SYSCON=y > > > > CONFIG_SPL_ADC=y > > > > CONFIG_SPL_CLK=y > > > > -CONFIG_ARM_SMCCC_FEATURES=y > > > > -CONFIG_SCMI_FIRMWARE=y > > > This should be a separate patch, and what's the change? > > > > > > > > Mainline A-TF seems to get angry with U-Boot when these are enabled. > > By angry I mean it freezes. It's all a related change to allowing > > mainline A-TF, though I should probably call it out better as a > > required change. Again I also specify though in the commit message > > that mainline A-TF still doesn't work with Linux proper because of > > the missing psci clk and psci reset bits, but at least with this > > change U-Boot won't be contributing to the problem (for this board). > > The scmi clock is missing on rk3568 mainline A-TF now, but it should return > error with something like > > NOT SUPPORT instead of hang inside. > > Any way, this is a separate change, we don't need it if the ATF supports > scmi clock later. > > Thanks, > > - Kever
I'll opt to disable this for now anyway (but in a commit by itself), if that's okay. It makes no difference for booting when using binary A-TF, but it does make a difference when using the *current* mainline A-TF, even if we do get SCMI later. Thank you, Chris > > > > Thanks, > > > > > > - Kever > > > > > > > CONFIG_ROCKCHIP_GPIO=y > > > > CONFIG_SYS_I2C_ROCKCHIP=y > > > > CONFIG_MISC=y > > Thank you, > > Chris

