A gentle reminder. Regards, Utkarsh
On Thu, Aug 31, 2023 at 10:02 AM Utkarsh Verma <utka...@bitbanged.com> wrote: > A gentle reminder for this patch. Please have a look at this and let me > know what changes are required. Once this is merged, I have a few more > patches building upon this. > > Regards, > Utkarsh > > On Wed, Aug 30, 2023 at 9:47 AM Utkarsh Verma <utka...@bitbanged.com> > wrote: > >> This patch series adds two drivers, PL011 and Mini UART. Both support >> interrupts and implement the termios API. >> >> Why add a new driver for the PL011 when we already have one? >> >> The existing driver is a very basic one and uses memory-mapped structs >> to access the registers. This proved to be problematic for the >> 'aarch64/raspberrypi4b' BSP as the RPi 4B's MMU does not reserve the >> entirety of the space required by the PL011 register struct. >> >> Even the existing driver doesn't use all the struct members. So, in the >> new driver, macros were used instead. This has the benefit of minimalism >> and ensures that we only add tested features to the driver. >> >> This driver builds upon the PL011 driver present in the Xilinx Versal >> BSP and addresses the IRQ startup hack. >> >> In short, the new PL011 driver has the features provided by the >> existing driver, and it meshes well with the termios API. >> >> Lastly, there's one thing I need feedback on. The PL011 has a hardware >> limitation which requires me to invoke the IRQ handler manually, the >> first time. For this, I need access to the `tty` struct in the >> `write_buffer` function. >> >> >> https://github.com/UtkarshVerma/rtems/blob/uart-drivers/bsps/shared/dev/serial/pl011.c#L301 >> >> For now, I store the tty in the device context and then pass the context >> to the IRQ handler. Is this a good approach? Are there better ways to do >> this? >> >> For convenience, feel free to check out my GitHub fork which has these >> changes: >> >> https://github.com/UtkarshVerma/rtems/tree/uart-drivers >> >> Utkarsh Verma (4): >> bsps/shared: Add new PL011 driver with IRQ support >> bsps/shared: Add new Mini UART driver >> spec: Add Mini UART and PL011 drivers to build spec >> bsps: Update BSPs to use the new PL011 driver >> >> bsps/aarch64/a53/console/console.c | 15 +- >> bsps/aarch64/a72/console/console.c | 15 +- >> bsps/aarch64/raspberrypi/console/console.c | 29 +- >> bsps/arm/raspberrypi/console/console-config.c | 27 +- >> .../realview-pbx-a9/console/console-polled.c | 5 +- >> .../arm/realview-pbx-a9/include/bsp/console.h | 4 +- >> bsps/arm/xen/console/console.c | 15 +- >> bsps/include/dev/serial/arm-pl011-regs.h | 143 ------ >> .../dev/serial/{arm-pl011.h => mini-uart.h} | 52 +- >> bsps/include/dev/serial/pl011.h | 68 +++ >> bsps/shared/dev/serial/arm-pl011.c | 104 ---- >> bsps/shared/dev/serial/mini-uart.c | 316 ++++++++++++ >> bsps/shared/dev/serial/pl011.c | 470 ++++++++++++++++++ >> .../aarch64/raspberrypi/bspraspberrypi4.yml | 1 - >> spec/build/bsps/obj.yml | 7 +- >> 15 files changed, 934 insertions(+), 337 deletions(-) >> delete mode 100644 bsps/include/dev/serial/arm-pl011-regs.h >> rename bsps/include/dev/serial/{arm-pl011.h => mini-uart.h} (64%) >> create mode 100644 bsps/include/dev/serial/pl011.h >> delete mode 100644 bsps/shared/dev/serial/arm-pl011.c >> create mode 100644 bsps/shared/dev/serial/mini-uart.c >> create mode 100644 bsps/shared/dev/serial/pl011.c >> >> -- >> 2.41.0 >> >> >>
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel