Commit 80353999 authored by 93.83.4.186's avatar 93.83.4.186

No commit message

No commit message
parents
do an mmio trace of the blob (version < 270.xx preferred)
* activate Kernel Hacking -> Tracers -> Memory mapped IO tracing
* mount -t debugfs debugfs /sys/kernel/debug (if not mounted already)
* echo mmiotrace > /sys/kernel/debug/tracing/current_tracer
* cat /sys/kernel/debug/tracing/trace_pipe > mydump.txt &
* make sure the blob is not initialized (rmmod nvidia)
* run X or a CUDA application
* echo nop > /sys/kernel/debug/tracing/current_tracer
Extract register writes from the trace and put them in binary files:
* 41a1c4 -> fuc41ad
* 4091c4 -> fuc409d
* 41a184 -> fuc41ac
* 409184 -> fuc409c
The important lines in the trace will look like this:
{{{
W 4 433.851950 1 0xXX41a1c4 0x2072614d 0x0 0
}}}
where 0xXX41a1c4 is the register and 0x2072614d the value written
and put them in binary files in /lib/firmware/nouveau/
{{{
#! /bin/sh
# insert correct register in next line
grep XX41a1c4 mydump.txt \
| awk '{print $6}' | grep -oP '(?<=0x).*' | \
python -c \
"
import struct; import sys; fd = open(\"fucXXXX\", \"wb\");
for line in sys.stdin:
fd.write(struct.pack(\"@I\", int(line.rstrip(), 16)))
"
}}}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment