A gentle reminder. On Wed, Sep 6, 2023 at 8:31 AM Utkarsh Verma <utka...@bitbanged.com> wrote:
> 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