Skip to content

Development Setup Serial Port Configuration

Alex J Lennon edited this page Oct 10, 2025 · 2 revisions

Serial Port Configuration

i.MX93 Jaguar E-Ink Board

Quick Reference

Device Function LPUART Address Notes
/dev/ttyLP0 Console LPUART1 0x44380000 Primary debug/console
/dev/ttyLP1 Bluetooth LPUART5 0x42590000 IW612 module communication
/dev/ttyLP2 Power Management LPUART7 0x42690000 MCXC microcontroller

Device Tree Configuration

The board requires explicit mapping of all 8 LPUART instances to prevent conflicts:

aliases {
    serial0 = &lpuart1;  /* Console */
    serial1 = &lpuart5;  /* Bluetooth */
    serial2 = &lpuart7;  /* Power Management */
    serial3 = &lpuart2;  /* Unused */
    serial4 = &lpuart3;  /* Unused */
    serial5 = &lpuart4;  /* Unused */
    serial6 = &lpuart6;  /* Unused */
    serial7 = &lpuart8;  /* Unused */
};

Location: meta-dynamicdevices-bsp/recipes-bsp/device-tree/lmp-device-tree/imx93-jaguar-eink.dts

Hardware Limitations

  • LPUART1-4: Full signal support (DTR/DSR/DCD/RI)
  • LPUART5-8: Limited signals (no DTR/DSR/DCD/RI)
  • LPUART1-2: AONMIX domain (always-on during sleep)
  • LPUART3-8: WAKEUPMIX domain (power manageable)
  • Maximum: 8 LPUART instances (hardcoded in driver)

Troubleshooting

"serial6 out of range" Error

Cause: Device tree alias conflicts with base i.MX93 device tree
Fix: Explicitly map all 8 serial aliases as shown above
Note: CONFIG_SERIAL_FSL_LPUART_NR_UARTS doesn't exist - UART_NR is hardcoded to 8 in driver

Missing /dev/ttyLP* Devices

# Check LPUART initialization
dmesg | grep lpuart

# Verify device tree aliases
cat /proc/device-tree/aliases/serial*

# List available devices
ls -la /dev/ttyLP*

Common Issues

  • Only ttyLP0 appears: Device tree aliases not applied correctly
  • Driver probe failures: Check for address conflicts in dmesg
  • No Bluetooth communication: Verify ttyLP1 exists and IW612 configuration

Testing Serial Ports

# Test console (should already be active)
echo "test" > /dev/ttyLP0

# Test Bluetooth UART (if available)
stty -F /dev/ttyLP1 115200
echo "AT" > /dev/ttyLP1

# Monitor all LPUART activity
dmesg | grep -E "lpuart|ttyLP"

References

Clone this wiki locally