R U an engineer? You must be a BIOS engineer to find me here! This is home of RU.EXE and RU.EFI.
2009年11月12日 星期四
RU v4.78
Fixed v4.77 caused Boxboro read the BDF=80/01/00=00/01/00.
The root cause is the PCIE MMIO base was wrong detected because of the same VID/DID on these 2 buses.
2009年1月2日 星期五
My own wishlist of next RU.EXE
- Identify SATA devices in AHCI controller. (done @v4.93)
- Read AHCI controller's registers. (done @5.06)
- Read USB controller's registers. (you have to do it manually now)
- Read HDD sectors (through INT13)
Maybe not in a short time. When I have time I will try to make a very simple one.
2011/09/28 update:
Done - Identify AHCI devices @v4.93
Something you may not know
When there is a window pop up on the screen, you can use [Shift]
Force to display this page as some kind of registers, for example you can force current page to be CMOS so that when you move the cursor it will display you the contents of CMOS/RTC like Date/Time/Memory, etc.
[Shift]+[F2]
When you are reading memory, you can use [Shift]+[F2] to save the memory as a binary file. It will prompt you with "KB to be saved" after you enter the filename.
Watch the command line
The command line will display the help messages in different pages such as what keys can be used and it will blink to get you attention on it.
[Ctrl]+[PgUp]/[PgDn]
- ROM: [Ctrl]+[PgUp]/[PgDn] = Previous / Next ROM (by searching 0xAA55)
Big Real Mode
Yes, RU.EXE is running with big real mode. And of course GA20 must be enabled.
You can use this key combination to shut off your system!!
2007年6月26日 星期二
How to download RU.EXE
Please find the link in each version's page (tag: release). There will be a download link in the end of each article. It comes with 3 files in a zip file with passwords. The password is below the download link.
It will look like:
Download RU here
Password: 1234567890123
The zip file contains:
- RU.EXE - DOS
- RU.EFI - UEFI X64 application
- RU32.EFI - UEFI IA32 application
If you have problem getting the file please write me a comment here.
Note: I will not send any copy of RU through email, please don't ask me to send you RU.EXE.
2007年6月22日 星期五
What is RU.EFI / RU.EXE?
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
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)
- 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.
- 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.