[U-Boot] [RESENT PATCH 1/2] rockchip: rk3128: use ROCKCHIP_BOOT_MODE_REG to update reboot flag

Philipp Tomsich philipp.tomsich at theobroma-systems.com
Thu Dec 6 18:23:00 UTC 2018



> On 06.12.2018, at 19:18, Simon Glass <sjg at chromium.org> wrote:
> 
> Hi Philipp,
> 
> On Thu, 6 Dec 2018 at 04:02, Philipp Tomsich
> <philipp.tomsich at theobroma-systems.com> wrote:
>> 
>> Simon,
>> 
>>> On 06.12.2018, at 02:31, Simon Glass <sjg at chromium.org> wrote:
>>> 
>>> Hi Philipp,
>>> 
>>> On Thu, 29 Nov 2018 at 13:57, Philipp Tomsich
>>> <philipp.tomsich at theobroma-systems.com> wrote:
>>>> 
>>>> Simon,
>>>> 
>>>> On 29.11.2018, at 19:43, Simon Glass <sjg at chromium.org> wrote:
>>>> 
>>>> Hi Kever,
>>>> 
>>>> On Wed, 28 Nov 2018 at 18:10, Kever Yang <kever.yang at rock-chips.com> wrote:
>>>> 
>>>> 
>>>> Hi Philipp,
>>>> 
>>>> 
>>>> On 11/28/2018 05:07 PM, Philipp Tomsich wrote:
>>>> 
>>>> Kever,
>>>> 
>>>> On 28.11.2018, at 03:04, Kever Yang <kever.yang at rock-chips.com> wrote:
>>>> 
>>>> Use ROCKCHIP_BOOT_MODE_REG instead of grf structure so that
>>>> we can re-use the source code later.
>>>> 
>>>> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
>>>> 
>>>> NAK, as there are still pending changes.
>>>> 
>>>> Yes, I got that, and I send out my comments on your comments with no
>>>> more response.
>>>> 
>>>> See below for the reminder, in case this got lost.
>>>> 
>>>> ---
>>>> 
>>>> arch/arm/mach-rockchip/Kconfig        | 1 +
>>>> arch/arm/mach-rockchip/rk3128-board.c | 5 +----
>>>> 2 files changed, 2 insertions(+), 4 deletions(-)
>>>> 
>>>> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
>>>> index 145d96b1f0..94a03e2a38 100644
>>>> --- a/arch/arm/mach-rockchip/Kconfig
>>>> +++ b/arch/arm/mach-rockchip/Kconfig
>>>> @@ -179,6 +179,7 @@ config TPL_ROCKCHIP_BACK_TO_BROM
>>>> config ROCKCHIP_BOOT_MODE_REG
>>>>   hex "Rockchip boot mode flag register address"
>>>>   default 0x200081c8 if ROCKCHIP_RK3036
>>>> +    default 0x100a0038 if ROCKCHIP_RK3128
>>>>   default 0x20004040 if ROCKCHIP_RK3188
>>>>   default 0x110005c8 if ROCKCHIP_RK322X
>>>>   default 0xff730094 if ROCKCHIP_RK3288
>>>> 
>>>> As previously discussed: these should all go into header files, as they are not user-configurable.
>>>> This affects multiple patch series (as I requested the same for the STIMER address).
>>>> 
>>>> I believe you mention about this: http://patchwork.ozlabs.org/patch/891462/
>>>> Now the model in u-boot rockchip channel is:
>>>> - People send out patches to mailing list;
>>>> - The patch get an ACK patch and review patch may request for change in
>>>> 1 week~4 months;
>>>> - According to the maintainer's comment, people reply for why the patch
>>>> like this,
>>>> and maybe the patch do not need to change just like what the
>>>> maintainer want.
>>>> - BUT, there will never be more reply/comments.
>>>> - Then, people have to resend the patches they think it may be
>>>> reasonable, and maintainer
>>>> then complain people doesn't address his comment.
>>>> 
>>>> For this patch, I think:
>>>> - This is not an first patch for this operation, this just make rk3128
>>>> work like other SoCs, it's not a new feature;
>>>> - This kind of default value setting is all over the U-Boot project, I'm
>>>> not say it's correct,
>>>> but it's a good solution and convenient for us to use the same object
>>>> with different value in different SoCs,
>>>> It's much better to separate them into more then 10 header files or
>>>> lots of "#ifdef CONFIG_ROCKCHIIP_RK3128"
>>>> in one header files.
>>>> 
>>>> I hope I can get reply for this mail this time.
>>>> 
>>>> Hi Simon,
>>>>  Could you help to comment on this?
>>>> 
>>>> 
>>>> What happens if the user changes the value?
>>>> 
>>>> Can this go in the device tree?
>>>> 
>>>> It seems like this should be in a driver, to me. We have a SYSCON
>>>> driver for GRF. Should we add an ioctl-type interface to it?
>>>> 
>>>> 
>>>> This affects a number of settings by now, including the addresses for the
>>>> debug UARTs, secure timer base addresses and the boot-mode register.
>>>> 
>>>> What we’d really need would be a “read/write named-register” operation
>>>> (which could either be an ioctl or a new read/write operation that takes a
>>>> selector that can then internally be mapped onto an actual address).
>>>> However, this would require a custom syscon for each chip (or at least a
>>>> per-chip driver-data), which also doesn’t sound like a desirable design.
>>> 
>>> I assume it would come from the device tree.
>>> 
>>> To me this seems like a reasonable design. Yes it would need per-chip
>>> DT settings, or perhaps driver data.
>>> 
>>> But I believe we alreayd have a syscon_xxxx.c for each chip.
>> 
>> Yes, there are syscon_*.c files per chip, but these only contain the compatible
>> tables and reuse the generic syscon implementation.
>> 
>> I’ll take a stab at creating a RFC series to extend the generic syscon with an
>> ‘read/write named register’ mechanism.
> 
> OK, but I think it might be better to use something like ioctl(), if
> the operation is generally the same. E.g. if you have operations like:
> 
> - set boot mode
> - enable JTAG
> - ..

Good point. I still have my old prototype that tried something similar for
RGMII settings — should be a good-enough starting point.

Philipp.


More information about the U-Boot mailing list