Although the binary ROM blob and MMIO trace will be placed in gem5-resources later as 'golden' versions, the scripts are added to provide instructions for power users of Full System amdgpu that may want to recreate the files themselves or use a GPU other than the Vega10 GPU currently modeled. Change-Id: Ica7ef3b9820b30be32a148ce6cf1d2f81dc2adf9 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46162 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
The utility scripts provided in this directly can be used to recreate the
|
|
files needed to run Full System amdgpu. Golden versions of these files are
|
|
provided in the gem5-resources repository.
|
|
|
|
These scripts are intended to be run on a Linux system with a discrete AMD
|
|
GPU card running the same kernel version as the disk image which will be used
|
|
for Full System simulations. To ensure the kernel versions match, it is
|
|
recommended that the user uses the `dd` utility to make a copy of the disk
|
|
image to a secondary physical disk and then boot from that disk image.
|
|
|
|
# MMIO Trace collection
|
|
|
|
The script `collect_mmio_trace.sh` collects an MMIO trace. For this to work,
|
|
MMIO tracing must be enabled in the kernel. Using the disk image approach
|
|
above and/or using recent kernel versions based on Ubuntu, this is enabled
|
|
by default.
|
|
|
|
Before collecting the trace, the amdgpu module must be blacklisted such that
|
|
we can enable tracing before the modprobe occurs and disabled once modprobe
|
|
is complete.
|
|
|
|
This can be done using either:
|
|
`echo 'blacklist amdgpu' >> /etc/modprobe.d/blacklist.conf`
|
|
or
|
|
add `modprobe.blacklist=amdgpu` to kernel boot command (e.g., in grub)
|
|
And then reboot.
|
|
|
|
The script will take care of the proper options and run the mmiotrace
|
|
commands. The output trace will likely contain unrelated from other MMIOs
|
|
and therefore will be around 500MB in size. You will want to reboot again
|
|
as mmiotrace disables SMP.
|
|
|
|
# GPU ROM Dump
|
|
|
|
The script `dump_gpu_rom.sh` dumps the GPU ROM. The GPU ROM on x86 resides
|
|
in the memory range 0xC0000 - 0xDFFFF. The script simply uses the `dd`
|
|
command to copy this range from /dev/mem. The amdgpu driver must be loaded
|
|
in order for the ROM to be written to this region, so run `modprobe` first.
|