Re: [PATCHv2 05/19] dm: ns16550: Restore how we define UART_REG

Quentin Schulz
2023-01-18T14:15:25Z

Hi Tom,

On 1/17/23 23:10, Tom Rini wrote:
> Prior to commit 9591b63531fa ("Convert CONFIG_SYS_NS16550_MEM32 et al to
> Kconfig") we had defined CONFIG_SYS_NS16550_REG_SIZE to -1 with
> DM_SERIAL such that we would then have a size 0 character array. This
> resulted in functionally no padding. The confusion on my part came from
> dealing with the constraints around platforms that do not use DM_SERIAL
> in SPL/TPL. After Andre Przywara reported that sunxi was broken, I've
> re-read the code and comments again and thought on this harder. What we
> want I believe is what this patch does now.
>
> If DM_SERIAL is defined for this stage, regardless of
> CONFIG_SYS_NS16550_REG_SIZE then we will dynamically handle reg shifts
> and 'struct ns16550' needs no padding (which is functionally what
> unsigned char foo[0] provides). This is the same case as NS16550_DYNAMIC
> and DEBUG_UART. Expand the existing comment here slightly.
>
> Otherwise, we will have CONFIG_SYS_NS16550_REG_SIZE set to a non-zero
> value, and handle padding within the struct.
>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Sergei Antonov <saproj@gmail.com>
> Cc: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> Cc: Andre Przywara <andre.przywara@arm.com>
> Fixes: 9591b63531fa ("Convert CONFIG_SYS_NS16550_MEM32 et al to Kconfig")
> Signed-off-by: Tom Rini <trini@konsulko.com>

Tested-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
#Ringneck PX30, Puma RK3399

Thanks,
Quentin