Hi Tom,

On 1/6/23 4:47 AM, Tom Rini <tr...@konsulko.com> wrote:
There are currently no platform that are both CONFIG_SYS_NS16550_MEM32
and not (per how the logic was prior to being broken in 0478dac62a9a
("kbuild: Remove uncmd_spl logic")) enabled in CONFIG_DM_SERIAL. We drop
this line out now so that platforms which do use
CONFIG_SYS_NS16550_MEM32 and depending on stage may or may not have
DM_SERIAL set.

Fixes: 0478dac62a9a ("kbuild: Remove uncmd_spl logic")
Reported-by: Quentin Schulz <quentin.sch...@theobroma-systems.com>
Signed-off-by: Tom Rini <tr...@konsulko.com>
---
  include/ns16550.h | 6 ++----
  1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/include/ns16550.h b/include/ns16550.h
index f45fc8cecc56..243226fc3d94 100644
--- a/include/ns16550.h
+++ b/include/ns16550.h
@@ -34,12 +34,10 @@
  #define CONFIG_SYS_NS16550_REG_SIZE (-1)
  #endif
-#ifdef CONFIG_NS16550_DYNAMIC
+#if defined(CONFIG_NS16550_DYNAMIC) || defined(CONFIG_DEBUG_UART)
  #define UART_REG(x)   unsigned char x
  #else
-#if defined(CONFIG_SYS_NS16550_MEM32) && !CONFIG_IS_ENABLED(DM_SERIAL)
-#define UART_REG(x) u32 x
-#elif !defined(CONFIG_SYS_NS16550_REG_SIZE) || (CONFIG_SYS_NS16550_REG_SIZE == 
0)
+#if !defined(CONFIG_SYS_NS16550_REG_SIZE) || (CONFIG_SYS_NS16550_REG_SIZE == 0)
  #error "Please define NS16550 registers size."
  #elif (CONFIG_SYS_NS16550_REG_SIZE > 0)
  #define UART_REG(x)                                              \


This means though that we assume all ns16550 implementations have their 
register value stored in a byte only, either LSB or MSB of a 1-4 byte-wide 
register (which can (sometimes) be configured with CONFIG_SYS_NS16550_REG_SIZE).

In any case,
Tested-by: Quentin Schulz <quentin.sch...@theobroma-systems.com> #on Ringneck 
PX30, Puma RK3399

I really appreciate you taking the time to debug and suggest a patch, thanks a 
ton.

Cheers,
Quentin

Reply via email to