AMD SimNow

From coreboot
Jump to navigation Jump to search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to Contributions welcome!

These are the steps I use to download, install, and use the AMD SimNow simulator. You may not want to do exactly what I did, but it should get you started. There is PDF documentation that you can download on the same page as the simulator.

Build a ROM image for SimNow (Skip this step if you have your own Bios you want to use)

  1. install Intel's ASL iasl tool
  2. svn co svn://
  3. cd buildrom/buildrom-devel/
  4. make menuconfig
    1. Choose Platform Configuration
      1. Vendor AMD
      2. Platform Target AMD Serengeti-Cheetah
      3. Select Build for SimNow emulator
    2. Choose Payload Configuration
      1. Desired Payload Linux-As-Bootloader
      2. Desired Target Architecture 64-bit
      3. LAB Configuration
        1. Select Busybox but not reduced-size kexec tools
    3. Save and Exit
  5. make
  6. Enjoy your amd_serengeti_cheetah.rom file

Download SimNow

  1. Download SimNow from AMD's website
    1. Create an account
    2. Accept the license agreement
    3. Log in.
  2. Untar the .tar.gz file you download in a convenient place (You'll now have a directory called simnow-linux64-4.4.1pub)

Run SimNow

  1. Run ./simnow from the simnow-linux64-4.4.1pub directory
  2. Inside the SimNow Main Window do File->Open BSD, browse to the simnow-linux64-4.4.1pub/bsds directory and load either cheetah_1p.bsd or cheetah_1pjh.bsd (jh is dual-core)
    Now you have a single Opteron socket motherboard with an AMD-8132 PCI-X controller, an AMD-8111 I/O hub, and a Winbond W83627HF SuperIO.
  3. Copy your LinuxBIOS ROM image to simnow-linux64-4.4.1pub/Images for convenience.
  4. Open the SimNow Device Window (View->Show Devices)
  5. Double click on Memory Device #5 (Your BIOS chip)
  6. Click on the Memory Configuration Tab, and change the Base Address, Size, and File (I use Base Address = fff00000 and Size = 32 because I use a 1 MB image)
  7. Go to the main simulator window and hit Run Simulation (Play button)
    1. You will get this error:
"BIOS ROM file is the wrong size for this BSD.  Please either point the memdevice to the correct BIOS ROM file, or configure the memdevice to be the correct size." 

Repeat the last few steps to set the size and try again. This happens whenever you increase the BIOS size.

Serial Port Configuration

In order to see the console output, go to the terminal you are running ./simnow in. Hit enter. You'll see a simnow> prompt.

  1. Type serial.SetCommPort pipe and hit enter.
  2. Type serial.GetCommPort and hit enter.

On my machine this returns path (/home/myles/.simnow/com1), mode (PIPE)

Open a new terminal and type cat /home/myles/.simnow/com1/simnow_out If you need to send input to the serial port, echo to /home/myles/.simnow/com1/simnow_in

Add disks

  1. Hit the Stop Simulation button if the simulation is running
    1. File->Set IDE Primary Master Image
      1. Browse to your hard drive image
    2. File->Set IDE Secondary Master Image
      1. Browse to a CD .iso
  2. Hit Run Simulation again

You should get output from the serial port scrolling in one terminal, and be able to watch the VGA output in the main window.

If you used buildrom to get a BIOS image with LinuxBIOS + LAB, you'll end up at a linux prompt where you can mount the disks, etc.