From: Thomas Zimmermann <tzimmermann@suse.de>
To: suijingfeng <suijingfeng@loongson.cn>,
Sui Jingfeng <sui.jingfeng@linux.dev>,
Bjorn Helgaas <bhelgaas@google.com>,
"Koenig, Christian" <Christian.Koenig@amd.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
Daniel Vetter <daniel@ffwll.ch>,
"Deucher, Alexander" <Alexander.Deucher@amd.com>
Cc: nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org,
dri-devel@lists.freedesktop.org, linux-pci@vger.kernel.org
Subject: Re: [Nouveau] [RFC, drm-misc-next v4 0/9] PCI/VGA: Allowing the user to select the primary video adapter at boot time
Date: Wed, 6 Sep 2023 09:18:17 +0200 [thread overview]
Message-ID: <0ace21b2-f0ce-0b14-529f-c0ee2adf972f@suse.de> (raw)
In-Reply-To: <6d1d8acc-5140-f710-ac00-cb423d7fce78@loongson.cn>
[-- Attachment #1.1: Type: text/plain, Size: 2935 bytes --]
Hi
Am 06.09.23 um 04:34 schrieb suijingfeng:
>
> On 2023/9/5 23:05, Thomas Zimmermann wrote:
>> Hi
>>
>> Am 05.09.23 um 15:30 schrieb suijingfeng:
>>> Hi,
>>>
>>>
>>> On 2023/9/5 18:45, Thomas Zimmermann wrote:
>>>> Hi
>>>>
>>>> Am 04.09.23 um 21:57 schrieb Sui Jingfeng:
>>>>> From: Sui Jingfeng <suijingfeng@loongson.cn>
>>>>>
>>>>> On a machine with multiple GPUs, a Linux user has no control over
>>>>> which
>>>>> one is primary at boot time. This series tries to solve above
>>>>> mentioned
>>>>
>>>> If anything, the primary graphics adapter is the one initialized by
>>>> the firmware. I think our boot-up graphics also make this assumption
>>>> implicitly.
>>>>
>>>
>>> Yes, but by the time of DRM drivers get loaded successfully,the
>>> boot-up graphics already finished.
>>> Firmware framebuffer device already get killed by the
>>> drm_aperture_remove_conflicting_pci_framebuffers()
>>> function (or its siblings). So, this series is definitely not to
>>> interact with the firmware framebuffer
>>
>> Yes and no. The helpers you mention will attempt to remove the
>> firmware framebuffer on the given PCI device. If you have multiple PCI
>> devices, the other devices would not be affected.
>>
> Yes and no.
>
>
> For the yes part: drm_aperture_remove_conflicting_pci_framebuffers()
> only kill the conflict one.
> But for a specific machine with the modern UEFI firmware,
> there should be only one firmware framebuffer driver.
> That shoudd be the EFIFB(UEFI GOP). I do have multiple PCI devices,
> but I don't understand when and why a system will have more than one
> firmware framebuffer.
Maybe somewhat unrelated to the actual discussion, but it's not as
simple as you assume. Many non-X86 systems use DeviceTree. On Sparc
IIRC, there's the case of having multiple firmware framebuffers listed
in the DT. We create an device for each and attach a DRM firmware
driver; ofdrm in this case. I haven't seen this in the wild, but
non-Sparc systems could also behave like that.
And in addition to that, ARM-based systems often uses UEFI boot stub
code that provides a simple UEFI environment to the kernel. For graphics
we've had cases where we received the same firmware framebuffer from the
DT and from the UEFI boot stub. We have to detect and handle such
duplication in the kernel.
Best regards
Thomas
>
> Even for the machines with the legacy BIOS, the fixed VGA aperture
> address range
> can only be owned by one firmware driver. It is just that we need to
> handle the
> routing, the ->set_decode() callback of vga_client_register() is used to
> do such
> work. Am I correct?
>
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
next prev parent reply other threads:[~2023-09-06 7:18 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-04 19:57 [RFC,drm-misc-next v4 0/9] PCI/VGA: Allowing the user to select the primary video adapter at boot time Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 1/9] " Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 2/9] drm/nouveau: Implement .be_primary() callback Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 3/9] drm/radeon: " Sui Jingfeng
2023-09-05 5:50 ` Christian König
2023-09-05 17:24 ` suijingfeng
2023-09-06 16:00 ` Alex Deucher
2023-09-07 1:40 ` Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 4/9] drm/amdgpu: " Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 5/9] drm/i915: " Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 6/9] drm/loongson: " Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 7/9] drm/ast: Register as a VGA client by calling vga_client_register() Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 8/9] drm/hibmc: " Sui Jingfeng
2023-09-04 19:57 ` [RFC,drm-misc-next v4 9/9] drm/gma500: " Sui Jingfeng
2023-09-05 10:38 ` [RFC, drm-misc-next v4 0/9] PCI/VGA: Allowing the user to select the primary video adapter at boot time Jani Nikula
2023-09-05 13:28 ` Christian König
2023-09-05 14:28 ` Sui Jingfeng
2023-09-06 6:47 ` Christian König
2023-09-05 10:45 ` [Nouveau] " Thomas Zimmermann
2023-09-05 13:30 ` suijingfeng
2023-09-05 15:05 ` Thomas Zimmermann
2023-09-06 2:14 ` suijingfeng
2023-09-06 7:00 ` Thomas Zimmermann
2023-09-06 2:34 ` suijingfeng
2023-09-06 7:18 ` Thomas Zimmermann [this message]
2023-09-06 3:08 ` suijingfeng
2023-09-06 7:46 ` Thomas Zimmermann
2023-09-06 4:14 ` Sui Jingfeng
2023-09-06 6:45 ` Christian König
2023-09-06 9:08 ` suijingfeng
2023-09-06 9:40 ` Christian König
2023-09-07 2:30 ` Sui Jingfeng
2023-09-07 9:08 ` Christian König
2023-09-07 12:32 ` suijingfeng
2023-09-07 12:43 ` Christian König
2023-09-07 15:26 ` suijingfeng
2023-09-07 15:32 ` Christian König
2023-09-07 16:33 ` suijingfeng
2023-09-08 6:59 ` Christian König
2023-09-06 10:31 ` Sui Jingfeng
2023-09-06 10:50 ` Christian König
2023-09-05 10:49 ` Thomas Zimmermann
2023-09-05 15:59 ` suijingfeng
2023-09-06 8:05 ` Thomas Zimmermann
2023-09-06 9:48 ` suijingfeng
2023-09-06 11:06 ` Thomas Zimmermann
2023-09-07 9:43 ` Jani Nikula
2023-09-05 14:52 ` Alex Williamson
2023-09-05 16:21 ` suijingfeng
2023-09-05 16:39 ` Alex Williamson
2023-09-06 3:51 ` Sui Jingfeng
2023-09-06 19:29 ` Alex Williamson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0ace21b2-f0ce-0b14-529f-c0ee2adf972f@suse.de \
--to=tzimmermann@suse.de \
--cc=Alexander.Deucher@amd.com \
--cc=Christian.Koenig@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=bhelgaas@google.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=nouveau@lists.freedesktop.org \
--cc=sui.jingfeng@linux.dev \
--cc=suijingfeng@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).