2010年1月23日 星期六

RU v4.81

Important new feature:

Main feature of this version is that RU will record where you have been and you can go back and forth.

You can use [CTRL-left arrow] and [CTRL-right arow] to go back and forth where you are in the RU.

For examples, if you just read a PCI device with BAR and press [CTRL-G] to read the MMIO. After you check MMIO you want to go back to the PCI device you just read, you can press [CTRL-left arrow] to go back to PCI device without re-entering the bus/device/function numbers. The best thing is: it even remembers the register index for you.

Maximum 10 history can be recorded. Of course the oldest one will be replaced with newest history.

Ex: You have entered 3 different configs like pcitures below:


Config 1 =
SMBIOS, index 35h


Config 2 = CMOS, index 076h


Config 3 = Memory C000h, index c7h

You can switch these configs by pressing [Ctrl<- and="" trl-="">] like:
Config 1 [Ctrl->] Config 2 [Ctrl->] Config 3 [Ctrl<- span=""> Config 2 [Ctrl<- span=""> Config 1 [Ctrl<- span=""> Config 3


Version 4.81

  1. User can go back to where it was for 10 times of history
  2. New pull-down menu "Go" is added
  3. Added all MSRs for Intel CPU, total 261 MSRs
  4. CTRL-G will go to all base addresses including IO, memory and ROM in PCI BARs
New Go menu:
  • "Next" - Switch to next history [CTRL-right arrow]
  • "Previous" - Switch to previous history [CTRL-left arrow]
  • "Clear all history" - Clear all of your footprints
  • "Mem/IO space" - Goes to memory or IO based on the BAR reads from current cursor of the PCI device
Version 4.80

Added back code for:
  • Auto-detect SIO
  • HDD read write test
  • SMBUS access
  • Change color
  • Wrong BIOS warning in About window
Again, there are always bugs, let me know if you found any.

2010年1月20日 星期三

RU v4.79

This version is mainly fixed the problem of reading CPU MSRs and also add lots of MSRs for AMD K8 series.

Again, this has not been fully tested, there could have bugs. Please write comments if you found any bugs.
  1. Added all AMD K8 MSRs. Invalid MSRs for this CPU will be displayed as RESERVED
  2. Fixed always switch to ISA if no PCI is present when RU setting file is present.
  3. Fixed CPU MSR display messed up by flooding register area.
  4. Changed warning messages of non-AMIBIOS from popup to command line.

2009年11月12日 星期四

RU v4.78

This is a minor bug fixed version for v4.77

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

Improvements:
  1. Identify SATA devices in AHCI controller.  (done @v4.93)
  2. Read AHCI controller's registers. (done @5.06)
  3. Read USB controller's registers. (you have to do it manually now)
  4. Read HDD sectors (through INT13)
RU.EXE for UEFI shell?
Maybe not in a short time. When I have time I will try to make a very simple one.

2012/06/24 update:
RU for UEFI is done!!! Beta version here

2011/09/28 update:
Done - Identify AHCI devices @v4.93

2009/04/13 update:
I am a little busy and lazy, it may postpone for newer RU.EXE.

Something you may not know

[Shift]+[Arrow keys]
When there is a window pop up on the screen, you can use [Shift]+[Arrow keys] to move around that window. Try that, it would be fun.

[Shift]+[F5]
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] 

- PCI express: While reading PCIe, it has more than 1 pages, please use [Ctrl]+[PgUp]/[PgDn] to browse all of them.
- 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.

[CTRL]+[ALT]+[END]
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 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:

  1. PCI configuration space F6 ALT-1
  2. PCI Express
  3. Super I/O chipsets
    Manual access: Link
    Auto detection: Link
  4. System chipsets
  5. 16bit port read/write up to 32bit data
  6. IO space ALT-4
  7. IDE / AHCI data returned by Identify Command ALT-5
  8. Read/Write memory (In EMM386/Windows 9x max=1MB) ALT-7
  9. CPU MSRs (AMD and Intel), different AP support for RU.EFI ALT-8
  10. SMBIOS data ALT-9
  11. SMBUS data (partially working) ALT-0
  12. CPU Brand / ID / speed CTRL-I
  13. UEFI configuration tables Ctrl-I
  14. UEFI variables (RU.EXE must be used with RUSMI Aptio module) ALT-=
  15. ACPI tables ALT-6
  16. Read LBA from HDD ALT-F1
  17. AHCI MMIO ALT-F5
  18. INT15 E820 tables ALT-F2
  19. More.. (press CTRL-F1-Help or pull down menu to learn more)
Debug with RU:
  1. Save registers to a file including:
    Single page F2, memory binary SHIFT-F2 and all PCI registers
  2. Load a file to registers
  3. Dump PCI/ACPI/SMBIOS/E820 table in command line (RU /D)
    Usage: Link
  4. F8 Compare differences to current registers with file saved
  5. ~ Command line supported to write data to port/memory 
  6.  ALT-L or Enter to list and select the details of registers
  7. Report bug using F12 to save the screenshot.
Tips:
  1. 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
  2. Use CTRL-UP and CTRL-DOWN to search up and down with last words typed above.
  3. Press F1 to check which hotkey is available.
  4. Read the bottom line (periodically changed) of the screen for the key usages for current page.