Mouse Support Comes to U-Boot

We’re excited to announce a new patch series that brings mouse support to U-Boot! This long-awaited feature resurrects some old code that was originally developed for Nuklear integration and provides a comprehensive mouse input framework.
What’s New
The 17-patch series (1,374 lines added across 44 files) introduces a simple mouse subsystem including:
- Mouse Uclass: A new device model class for mouse devices
- Multiple Driver Support:
- Sandbox mouse driver for development and testing
- USB mouse driver for x86 platforms
- EFI mouse driver for EFI applications
- Command Interface: New
mouse
command to display mouse input - Script Integration: Updated build-efi and build-qemu scripts with mouse support
Key Features
Universal Mouse Support
The new mouse uclass provides a consistent interface across different platforms and hardware configurations. Whether you’re running U-Boot on real hardware, in QEMU, or as an EFI application, mouse support is now either available or can be plumbed in.
USB Mouse Integration
For x86 platforms, the USB mouse driver enables standard USB mice to work with U-Boot after running usb start
. This is particularly useful for interactive applications and debugging.
EFI Simple Pointer Protocol
The EFI mouse driver implements the EFI Simple Pointer Protocol, making mouse support available when U-Boot runs as an EFI application on real hardware.
Testing Framework
Comprehensive testing support includes unit tests for the mouse uclass and integration with the sandbox environment for development.
Current Status
The mouse support is functional across multiple platforms:
- ✅ X86 QEMU (after
usb start
) - ✅ Real hardware with EFI
- ✅ Sandbox environment for development
There are are a few limitations:
- ARM QEMU mouse support needs refinement
- USB mouse initialization timeout (though functionality works)
Looking Forward
This mouse support lays the groundwork for more interactive U-Boot applications and improved user interfaces. The framework is designed to be extensible, allowing for future enhancements and additional mouse driver implementations.