Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uart ns16550 driver add DesignWare APB Busy Detect interrupt support #37862

Open
IRISZZW opened this issue Aug 23, 2021 · 4 comments
Open

uart ns16550 driver add DesignWare APB Busy Detect interrupt support #37862

IRISZZW opened this issue Aug 23, 2021 · 4 comments
Assignees
Labels
area: ARC ARC Architecture area: UART Universal Asynchronous Receiver-Transmitter Enhancement Changes/Updates/Additions to existing features priority: low Low impact/importance bug

Comments

@IRISZZW
Copy link
Contributor

IRISZZW commented Aug 23, 2021

Is your enhancement proposal related to a problem? Please describe.

The DesignWare APB UART has a feature which causes a new Busy Detect interrupt to be generated
if it's busy when the LCR is written.

When Busy Detect interrupt generated, we need to read the UART status register to reset it.

Similar fix in Linux kernel: torvalds/linux@beab697

relative issue; #36254

@IRISZZW IRISZZW added Enhancement Changes/Updates/Additions to existing features area: ARC ARC Architecture labels Aug 23, 2021
@IRISZZW IRISZZW added this to the v2.7.0 milestone Aug 23, 2021
@abrodkin abrodkin added the area: UART Universal Asynchronous Receiver-Transmitter label Aug 23, 2021
@IRISZZW
Copy link
Contributor Author

IRISZZW commented Aug 23, 2021

@dcpleung @nashif @jenmwms @aasthagr this interrupt not exist in standard ns16550 uart, is there any suggestion how to add the support for it?

@dcpleung
Copy link
Member

TBH, I wonder if we should separate the current 16550 driver into two: one for basic 16550, and one for DesignWare:

  • Fewer #ifdef in 16550 driver for DW features.
  • No need for all those macros for I/O port access in DW driver.
  • Easier to extend DW driver, without the need to re-verify basic 16550 functionality.

@abrodkin
Copy link
Collaborator

abrodkin commented Sep 7, 2021

AFAIK an issue in question was only seen on ARC HSDK (v1 or original) board when Zephyr application that uses UART IRQs was started after auto-started (by boot-ROM) U-Boot. In other words if U-Boot auto-start is disabled by a DIP-switch (or equally U-Boot image was never programmed in the on-board SPI flash) this problem won't be reproduced.

@abrodkin abrodkin modified the milestones: v2.7.0, v3.0.0 Sep 21, 2021
@abrodkin abrodkin added the priority: low Low impact/importance bug label Sep 21, 2021
@abrodkin abrodkin removed this from the v3.0.0 milestone Jan 31, 2022
@zephyrbot
Copy link
Collaborator

Hi @evgeniy-paltsev,

This issue, marked as an Enhancement, was opened a while ago and did not get any traction. Please confirm the issue is correctly assigned and re-assign it otherwise.

Please take a moment to review if the issue is still relevant to the project. If it is, please provide feedback and direction on how to move forward. If it is not, has already been addressed, is a duplicate, or is no longer relevant, please close it with a short comment explaining the reason.

@IRISZZW you are also encouraged to help moving this issue forward by providing additional information and confirming this request/issue is still relevant to you.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: ARC ARC Architecture area: UART Universal Asynchronous Receiver-Transmitter Enhancement Changes/Updates/Additions to existing features priority: low Low impact/importance bug
Projects
None yet
Development

No branches or pull requests

5 participants