[U-Boot] [PATCH] serial: ns16550: Add register shift variable

Felix Brack fb at ltec.ch
Tue Jul 17 06:51:50 UTC 2018


Hello Alexey,

On 16.07.2018 17:04, Alexey Brodkin wrote:
> Hi Felix,
> 
>> -----Original Message-----
>> From: Felix Brack [mailto:fb at ltec.ch]
>> Sent: Sunday, July 15, 2018 5:02 PM
>> To: Alexey Brodkin <Alexey.Brodkin at synopsys.com>; Tom Rini <trini at konsulko.com>
>> Cc: u-boot at lists.denx.de; Stefan Roese <sr at denx.de>; Alexander Graf <agraf at suse.de>; Michal Simek <michal.simek at xilinx.com>;
>> Wolfgang Denk <wd at denx.de>
>> Subject: Re: [U-Boot] [PATCH] serial: ns16550: Add register shift variable
>>
>> Hi Alexey,
>>
>> On 15.07.2018 10:43, Alexey Brodkin wrote:
>>> Hi Tom, Felix, all
>>>
>>>> -----Original Message-----
>>>> From: Tom Rini [mailto:trini at konsulko.com]
>>>> Sent: Saturday, July 14, 2018 6:50 PM
>>>> To: Wolfgang Denk <wd at denx.de>
>>>> Cc: Felix Brack <fb at ltec.ch>; u-boot at lists.denx.de; Stefan Roese <sr at denx.de>; Alexey Brodkin <Alexey.Brodkin at synopsys.com>;
>>>> Alexander Graf <agraf at suse.de>; Michal Simek <michal.simek at xilinx.com>
>>>> Subject: Re: [U-Boot] [PATCH] serial: ns16550: Add register shift variable
>>>>
>>>> On Sat, Jul 14, 2018 at 12:47:21PM +0200, Wolfgang Denk wrote:
>>>>> Dear Felix,
>>>>>
>>>>> In message <1531492980-16543-1-git-send-email-fb at ltec.ch> you wrote:
>>>>>>
>>>>>> The motivation for writing this patch originates in the
>>>>>> effort of synchronizing U-Boot DT to Linux DT for am33xx SOCs.
>>>>>> The current am33xx.dtsi file from U-Boot defines the <reg-shift>
>>>>>> property for all UART nodes. The actual (4.18+) am33xx.dtsi
>>>>>> file from Linux does not define <reg-shift> anymore. To prevent
>>>>>> (probably difficult) changes in many .dts and .dtsi files once
>>>>>> the synchronization is done, one can use this new variable. For
>>>>>> the pdu001 board, for example, SYS_NS16550_REG_SHIFT is set
>>>>>> to 2; no need to clutter U-Boot and board specific dts files
>>>>>> with <reg-shift> properties.
>>>>>
>>>>> Does this mean that U-Boot will not be able to use the same DTB as
>>>>> Linux?
>>>>
>>>> To be clear, it's the other way around.  We can't use the Linux dtb/dts
>>>> files as they've dropped (and in other cases, aren't adding) these
>>>> properties as it's handled differently.
>>>
>>> Any chance to get a reference to the commit in Linux kernel that introduces that change?
>>>
>> In fact I believe that the <reg-shift> property never existed in the
>> am33xx.dtsi file from Linux. U-Boot commit 85cf0e6299 shows that the
>> property has been added to U-Boot's am33xx.dtsi file. The commit log
>> clearly states why this happened:
>>
>> "With the commit 'c7b9686d5d48 ("ns16550: unify serial_omap")' all
>> TI platforms are broken with DM/DT boot as ns16550 driver expects
>> reg-shift from DT which is not populated for TI platforms.
>> Earlier it worked as it was hard coded to 2 in serial-omap
>> driver. So adding the reg-shift to serial nodes for dra7, am4372
>> and am33xx dtsi files. Tested this patch on am437x-sk-evm,
>> am437x-gp-evm, am335x-boneblack, dra74x-evm and dra72x-evm."
> 
> Ok so this has nothing to do with changes in Linux kernel I guess.
> Why don't we go the other way around and not just submit
> a change to .dts files in Linux kernel that are missing required properties?
>
I think there is nothing wrong with the kernel's .dtsi files, hence
nothing to be fixed in Linux.
Please read the RFC I posted May 24. It (hopefully) explains the need of
this patch. In short: syncing U-Boot DT files for AM33xx SoC with Linux
DT files will break things. This patch would fix the problem of the
"missing <reg-shift>" property.

regards Felix


More information about the U-Boot mailing list