On 13.08.2022 03:38, Marek Marczykowski-Górecki wrote: > From: Connor Davis <dav...@ainfosec.com> > > [Connor] > Xue is a cross-platform USB 3 debugger that drives the Debug > Capability (DbC) of xHCI-compliant host controllers. This patch > implements the operations needed for xue to initialize the host > controller's DbC and communicate with it. It also implements a struct > uart_driver that uses xue as a backend. Note that only target -> host > communication is supported for now. To use Xue as a console, add > 'console=dbgp dbgp=xhci' to the command line. > > [Marek] > The Xue driver is taken from https://github.com/connojd/xue and heavily > refactored to fit into Xen code base. Major changes include: > - rename to xhci_dbc > - drop support for non-Xen systems > - drop xue_ops abstraction > - use Xen's native helper functions for PCI access > - move all the code to xue.c, drop "inline" > - build for x86 only > - annotate functions with cf_check > - adjust for Xen's code style > > At this stage, only the first xHCI is considered, and only output is > supported. Later patches add support for choosing specific device, and > input handling. > The driver is initiallized before memory allocator works, so all the > transfer buffers (about 230KiB of them) are allocated statically and will > use memory even if XUE console is not selected. The driver can be > disabled build time to reclaim this memory. > Most of this memory is shared with the controller via DMA. Later patch > will adjust structures placement to avoid anything else to be placed on > those DMA-reachable pages. This also means str_buf cannot use static > initializer, without reserving (at least) a whole page page in .data (or > more, when combined with other structures).
While I still don't buy that the strings used here can't live next to other string literals, ... > Signed-off-by: Connor Davis <dav...@ainfosec.com> > Signed-off-by: Marek Marczykowski-Górecki <marma...@invisiblethingslab.com> Acked-by: Jan Beulich <jbeul...@suse.com> Jan