What does RU mean anyway?
RU = Read Universal
Actually it should be Universal Read or Read Universe (just brag myself). It was wrong in grammar but I've never corrected it.
The first version should be (if I remember it correctly) in 1993 when I first read the datasheet. I was lazy to always get the data sheet and looked for the bits to see what they mean, so I wrote a small tool to parse the registers and display the meanings of all registers. It did not look like this at the beginning.
RU.EXE was written by Turbo C initially and then Borland C++, it combines C and Assembly.
RU.EFI was done in 2012, very late after UEFI was introduced for many years. It has almost the same functionality as RU.EXE but it works under UEFI shell as an UEFI application.
Limitations:
RU.EXE works for DOS. RU.EFI is an UEFI application which works under UEFI shell environment. You can still run RU.EXE in Windows but most of IO will not be working. For Windows version, please get SE.EXE or RW.EXE(aka RWEverything), they are also from my colleagues. RW.EXE is a must have tool for debugging BIOS under Windows, the writer is a genius.
Important Notes:
RU might be buggy, it is not my responsibility to guarantee it reads/writes hardware correctly. But if you find any bugs, feel free to leave me a comment here. Thanks a lot.
*** Please don't ask me to share the source code, I believe you can do better than an old man ***
*** Don't include RU for any commercial use ***
Followings are from help of RU.EXE/RU.EFI, you can also press F1 key in to read them.
RU helps you to read chipsets easier than using DEBUG.EXE. And also helps you to debug the BIOS or motherboard problems.
It can read:
- PCI configuration space F6 ALT-1
- PCI Express
- Super I/O chipsets
Manual access: Link
Auto detection: Link
- System chipsets
- 16bit port read/write up to 32bit data
- IO space ALT-4
- IDE / AHCI data returned by Identify Command ALT-5
- Read/Write memory (In EMM386/Windows 9x max=1MB) ALT-7
- CPU MSRs (AMD and Intel), different AP support for RU.EFI ALT-8
- SMBIOS data ALT-9
- SMBUS data (partially working) ALT-0
- CPU Brand / ID / speed CTRL-I
- UEFI configuration tables Ctrl-I
- UEFI variables (RU.EXE must be used with RUSMI Aptio module) ALT-=
- ACPI tables ALT-6
- Read LBA from HDD ALT-F1
- AHCI MMIO ALT-F5
- INT15 E820 tables ALT-F2
- More.. (press CTRL-F1-Help or pull down menu to learn more)
Debug with RU:
- Save registers to a file including:
Single page F2, memory binary SHIFT-F2 and all PCI registers
- Load a file to registers
- Dump PCI/ACPI/SMBIOS/E820 table in command line (RU /D)
Usage: Link
- F8 Compare differences to current registers with file saved
- ~ Command line supported to write data to port/memory
- ALT-L or Enter to list and select the details of registers
- Report bug using F12 to save the screenshot.
Tips:
- Type any chars or CTRL-F to start the search dialog in full screen list selection page such as followings:
- CTRL-I System Information
- F6 List PCI devices
- ENTER / ALT-L Register's detail
- ALT-6 ACPI table
- ALT-9 SMBIOS
- ALT-= UEFI variable
- ALT-F1 Mass storage
- ALT-F2 E820 table
- ALT-F6 USB MMIO
- Use CTRL-UP and CTRL-DOWN to search up and down with last words typed above.
- Press F1 to check which hotkey is available.
- Read the bottom line (periodically changed) of the screen for the key usages for current page.