bbartlomiej
First things first:
The resolutions listed by the gop
command in the bootloader depends on 2 things:
- firmware implementation (BIOS or Card-ROM).
Some only present a few std. modes.
- whether the system firmware is running in BIOS-compatible (CSM) mode or native (UEFI) mode.
The max. resolutions are generally not available in CSM mode.
FYI on the cards:
Cards recognized by the Radeon DRMKMS driver can be seen here.
For the AmdGPU DRMKMS driver, the list is here.
So, for your cards:
$ egrep '(radeon|genfb)0 at .+ ATI ' netbsd-radeon/dmesg-*
netbsd-radeon/dmesg-hd6670:[ 1.043392] radeon0 at pci9 dev 0 function 0: ATI Technologies Radeon HD 6670/7670 (rev. 0x00)
netbsd-radeon/dmesg-hd7450:[ 1.043464] radeon0 at pci9 dev 0 function 0: ATI Technologies Radeon HD 6450/7450/8450 / R5 230 OEM (rev. 0x00)
netbsd-radeon/dmesg-hd8570:[ 1,000702] radeon0 at pci9 dev 0 function 0: ATI Technologies Radeon HD 8570 / R7 240/340 / Radeon 520 OEM (rev. 0x00)
netbsd-radeon/dmesg-rx6600:[ 1,025369] genfb0 at pci11 dev 0 function 0: ATI Technologies product 73ff (rev. 0xc7)
$
$ fgrep PCI: netbsd-radeon/Xorg.0.log-hd*
netbsd-radeon/Xorg.0.log-hd6670:[ 93.998] (--) PCI:*(9@9:0:0) 1002:6758:1458:2545 rev 0, Mem @ 0xe0000000/268435456, 0xfce20000/131072, I/O @ 0x0000e000/256, BIOS @ 0x????????/131072
netbsd-radeon/Xorg.0.log-hd7450:[ 53.086] (--) PCI:*(9@9:0:0) 1002:6779:1642:3a65 rev 0, Mem @ 0xe0000000/268435456, 0xfce20000/131072, I/O @ 0x0000e000/256, BIOS @ 0x????????/131072
netbsd-radeon/Xorg.0.log-hd8570:[ 104.197] (--) PCI:*(9@9:0:0) 1002:6611:1b0a:90c4 rev 0, Mem @ 0xe0000000/268435456, 0xfce00000/262144, I/O @ 0x0000e000/256, BIOS @ 0x????????/131072
$
we can see:
Card PCI-ID Radeon AmdGPU
---- ------ ------ ------
HD-6670: 1002:6758 Yes No
HD-7450: 1002:6779 Yes No
HD-8570: 1002:6611 Yes Yes
RX-6600: 1002:73ff No No
that:
a) the HD-6670 and HD-7450 are supported only by the Radeon DRMKMS driver.
b) the HD-8570 is supported by both, and,
c) the newer RX-6600 doesn't have a DRMKMS driver at all (which is why it uses genfb
).
For the monitor, edid-decode
(wip/edid-decode
, or here) shows:
$ cat /tmp/edid-len.txt
00ffffffffffff0030aee96100000000
0a200103803c22782e6665a9544c9d26
105054a1080081809500b300d1c0d100
a9c081c08100565e00a0a0a029503020
3500615d2100001a000000fc00503237
682d32300a2020202020000000fd0032
4c1e5a22000a202020202020000000ff
0056393039585759480a202020200190
02031ff14c01020304051413901f120e
0f23090f078301000065030c00100001
1d007251d01e206e2855005550210000
1e8c0ad08a20e02d10103e9600555021
00001800000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000094
$ ./edid-decode -c /tmp/edid-len.txt
edid-decode (hex):
00 ff ff ff ff ff ff 00 30 ae e9 61 00 00 00 00
0a 20 01 03 80 3c 22 78 2e 66 65 a9 54 4c 9d 26
10 50 54 a1 08 00 81 80 95 00 b3 00 d1 c0 d1 00
a9 c0 81 c0 81 00 56 5e 00 a0 a0 a0 29 50 30 20
35 00 61 5d 21 00 00 1a 00 00 00 fc 00 50 32 37
68 2d 32 30 0a 20 20 20 20 20 00 00 00 fd 00 32
4c 1e 5a 22 00 0a 20 20 20 20 20 20 00 00 00 ff
00 56 39 30 39 58 57 59 48 0a 20 20 20 20 01 90
02 03 1f f1 4c 01 02 03 04 05 14 13 90 1f 12 0e
0f 23 09 0f 07 83 01 00 00 65 03 0c 00 10 00 01
1d 00 72 51 d0 1e 20 6e 28 55 00 55 50 21 00 00
1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 55 50 21
00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 94
----------------
Block 0, Base EDID:
EDID Structure Version & Revision: 1.3
Vendor & Product Identification:
Manufacturer: LEN
Model: 25065
Made in: week 10 of 2022
Basic Display Parameters & Features:
Digital display
Maximum image size: 60 cm x 34 cm
Gamma: 2.20
DPMS levels: Off
RGB color display
Default (sRGB) color space is primary color space
First detailed timing is the preferred timing
Color Characteristics:
Red : 0.6611, 0.3300
Green: 0.2978, 0.6152
Blue : 0.1494, 0.0644
White: 0.3134, 0.3291
Established Timings I & II:
IBM : 720x400 70.081663 Hz 9:5 31.467 kHz 28.320000 MHz
DMT 0x04: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz
DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz
DMT 0x10: 1024x768 60.003840 Hz 4:3 48.363 kHz 65.000000 MHz
Standard Timings:
DMT 0x23: 1280x1024 60.019740 Hz 5:4 63.981 kHz 108.000000 MHz
DMT 0x2f: 1440x900 59.887445 Hz 16:10 55.935 kHz 106.500000 MHz
DMT 0x3a: 1680x1050 59.954250 Hz 16:10 65.290 kHz 146.250000 MHz
DMT 0x52: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz
DMT 0x45: 1920x1200 59.884600 Hz 16:10 74.556 kHz 193.250000 MHz
DMT 0x53: 1600x900 60.000000 Hz 16:9 60.000 kHz 108.000000 MHz (RB)
DMT 0x55: 1280x720 60.000000 Hz 16:9 45.000 kHz 74.250000 MHz
DMT 0x1c: 1280x800 59.810326 Hz 16:10 49.702 kHz 83.500000 MHz
Detailed Timing Descriptors:
DTD 1: 2560x1440 59.950550 Hz 16:9 88.787 kHz 241.500000 MHz (609 mm x 349 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 5 Vback 33 Vpol N
Display Product Name: 'P27h-20'
Display Range Limits:
Monitor ranges (GTF): 50-76 Hz V, 30-90 kHz H, max dotclock 340 MHz
Display Product Serial Number: 'V909XWYH'
Extension blocks: 1
Checksum: 0x90
----------------
Block 1, CTA-861 Extension Block:
Revision: 3
Underscans IT Video Formats by default
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
Native detailed modes: 1
Video Data Block:
VIC 1: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz
VIC 2: 720x480 59.940060 Hz 4:3 31.469 kHz 27.000000 MHz
VIC 3: 720x480 59.940060 Hz 16:9 31.469 kHz 27.000000 MHz
VIC 4: 1280x720 60.000000 Hz 16:9 45.000 kHz 74.250000 MHz
VIC 5: 1920x1080i 60.000000 Hz 16:9 33.750 kHz 74.250000 MHz
VIC 20: 1920x1080i 50.000000 Hz 16:9 28.125 kHz 74.250000 MHz
VIC 19: 1280x720 50.000000 Hz 16:9 37.500 kHz 74.250000 MHz
VIC 16: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz (native)
VIC 31: 1920x1080 50.000000 Hz 16:9 56.250 kHz 148.500000 MHz
VIC 18: 720x576 50.000000 Hz 16:9 31.250 kHz 27.000000 MHz
VIC 14: 1440x480 59.940060 Hz 4:3 31.469 kHz 54.000000 MHz
VIC 15: 1440x480 59.940060 Hz 16:9 31.469 kHz 54.000000 MHz
Audio Data Block:
Linear PCM:
Max channels: 2
Supported sample rates (kHz): 88.2 48 44.1 32
Supported sample sizes (bits): 24 20 16
Speaker Allocation Data Block:
FL/FR - Front Left/Right
Vendor-Specific Data Block (HDMI), OUI 00-0C-03:
Source physical address: 1.0.0.0
Detailed Timing Descriptors:
DTD 2: 1280x720 60.000000 Hz 16:9 45.000 kHz 74.250000 MHz (597 mm x 336 mm)
Hfront 110 Hsync 40 Hback 220 Hpol P
Vfront 5 Vsync 5 Vback 20 Vpol P
DTD 3: 720x480 59.940060 Hz 3:2 31.469 kHz 27.000000 MHz (597 mm x 336 mm)
Hfront 16 Hsync 62 Hback 60 Hpol N
Vfront 9 Vsync 6 Vback 30 Vpol N
Checksum: 0x94 Unused space in Extension Block: 60 bytes
----------------
Warnings:
EDID:
Base EDID: Some timings are out of range of the Monitor Ranges:
Horizontal Freq: 28.125 - 88.786 kHz (Monitor: 30.000 - 90.000 kHz)
Failures:
Block 0, Base EDID:
Basic Display Parameters & Features: sRGB is signaled, but the chromaticities do not match.
Block 1, CTA-861 Extension Block:
Missing VCDB, needed for Set Selectable RGB Quantization to avoid interop issues.
EDID:
CTA-861: Native progressive timings are a mix of several resolutions.
EDID conformity: FAIL
So, the EDID isn't clean, but, none of the failures should be fatal.
The resolutions chosen by the kernel are:
$ fgrep 'framebuffer at' netbsd-radeon/dmesg-*
netbsd-radeon/dmesg-hd6670:[ 7.990347] radeondrmkmsfb0: framebuffer at 0xe0363000, size 2560x1440, depth 32, stride 10240
netbsd-radeon/dmesg-hd7450:[ 7.910612] radeondrmkmsfb0: framebuffer at 0xe0363000, size 1920x1200, depth 32, stride 7680
netbsd-radeon/dmesg-hd8570:[ 7,723635] radeondrmkmsfb0: framebuffer at 0xe05d8000, size 2560x1440, depth 32, stride 10240
netbsd-radeon/dmesg-rx6600:[ 1,025369] genfb0: framebuffer at 0xe0000000, size 2560x1440, depth 32, stride 10240
$
and the Xorg server with either the radeon
or modesetting
display-drivers use those as well:
$ fgrep 'using initial mode' netbsd-radeon/Xorg.0.log-hd*
netbsd-radeon/Xorg.0.log-hd6670:[ 94.490] (II) RADEON(0): Output DVI-0 using initial mode 2560x1440 +0+0
netbsd-radeon/Xorg.0.log-hd7450:[ 53.575] (II) RADEON(0): Output HDMI-0 using initial mode 1920x1080 +0+0
netbsd-radeon/Xorg.0.log-hd8570:[ 104.738] (II) modeset(0): Output HDMI-1 using initial mode 2560x1440 +0+0
$
To get 2560x1440 resolution on the HD-6670 and HD-7450, try a setting like this:
$ cat /etc/X11/xorg.conf.d/display.conf
Section "Device"
Identifier "Card0"
Driver "modesetting" # next, try "radeon"
# Option "IgnoreEDID" "true" # for "radeon"
EndSection
Section "Monitor"
Identifier "Monitor0"
Option "DefaultModes" "false"
Option "PreferredMode" "2560x1440"
EndSection
and, make sure that:
you use the correct cables: Dual-Link DVI-D and/or Category 2 HDMI cables ("High Speed").
The DVI-D -> HDMI adapter is capable of handling 2560x1440. Some passive adapters may not work.
there's only one card in the system (otherwise, you'll have to disable the others in BIOS, or nail down the card using the BusID
directive--and maybe specify the Option "kmsdev" "/dev/dri/cardN"
for the modesetting
driver as well)
the card is connected directly to the monitor w/o any KVM-switch in-between.
try a VGA cable. That should go up to 2048×1536@85 Hz (388 MHz pixel clock).
For the display glitches you mentioned, I have no solution except that you try out both the modesetting
and radeon
Xorg display-drivers to see if which one works better and then look through their man-pages to see if fiddling with any Option
s makes a difference.