util: Add scripts to recreate amdgpu ROM and MMIOs
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>
This commit is contained in:
38
util/amdgpu/fs_files/README.md
Normal file
38
util/amdgpu/fs_files/README.md
Normal file
@@ -0,0 +1,38 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user