On 06/24/20 20:43, Laszlo Ersek wrote:
> On 06/24/20 16:37, Andrew Jones wrote:
>> On Wed, Jun 24, 2020 at 03:48:46PM +0200, Ard Biesheuvel wrote:
>>> On 6/24/20 3:41 PM, Andrew Jones wrote:
>>>> On Wed, Jun 24, 2020 at 03:02:49PM +0200, Philippe Mathieu-Daudé wrote:
>>>>> On 6/24/20 1:43 PM, Ard Biesheuvel wrote:
>>> ...
>>>>>> I wasn't aware that we even expose the flash in the DSDT. In any case,
>>>>>> no driver exists in Linux today that claims the LNRO0015 _HID, and so I
>>>>>> agree we should simply remove it entirely.
>>>>>>
>>>>>> However, I am no longer able to contribute to QEMU, so I was hoping you
>>>>>> or Phil could take the action?
>>>>>
>>>>> I try to stay as far as possible from ACPI, but here it seems
>>>>> fair I assign myself to this (except if Drew/Eric prefer to
>>>>> do it, of course!).
>>>>
>>>> I don't mind doing it. IIUC, all we need to do is remove the flash device
>>>> from the DSDT to "hide" it from the guest. Of course we'll need some
>>>> compat code too in order to only do this for machine types 5.1 and later,
>>>> and that means that running guest kernels which want to bind the flash on
>>>> 5.0 and older machine types will still have the problem.
>>>>
>>>
>>> Do you think that is really necessary? LNRO0015 never had a driver in Linux
>>> to begin with, and I doubt other ACPI capable arm64 OSes would be any
>>> different.
>>
>> I'd rather not add/remove hardware in older machine types. While it's
>> unlikely anybody would notice, we can't be sure that there's nothing
>> out there which would break.
> 
> I agree.
> 
>>>
>>>> Also, it seems a bit odd to hide hardware from the guest OS. Wouldn't it
>>>> be better to somehow flag that the hardare may be in use by firmware,
>>>> and therefore is only safe to use if runtime services are not used? I'm
>>>> not sure ACPI supports that for table entries like these, but maybe some
>>>> _STA value indicates something like it. I'll take a look at the spec.
>>>>
>>>
>>> We could do either, but a _STA indicating that the device is not present or
>>> not ready amounts to the same afaik. Ultimately, the OS could still access
>>> the physical range if it wanted to (e.g., via /dev/mem), so not exposing it
>>> in the first place seems more robust to me.
>>>
>>
>> If there's no _STA state that says the device is here and works, but it's
>> not available, then I agree removing it is the same. And, thinking about
>> it some more, this flash device is really only for our host-controlled
>> firmware. Since we don't give the guest any control over the firmware,
>> then the device the firmware lives on should probably not even exist as
>> far as the guest is concerned.
> 
> I think it's safest to remove the object from the DSDT; at least x86
> Windows used to be really picky about _STA in Device Manager. Best to
> avoid yellow triangles (or whatever) there (assuming Device Manager is a
> thing on aarch64 Windows -- I don't know).
> 
> Drew, when you remove the flash addition function call, please replace
> it with a comment that's similar to the one we have about the RTC. That
> way, we can run "git blame" on the comment. (Pure deletions tend to
> impede "git blame", as no code lines remain on which git-blame could
> report a "latest commit".)

oops, sorry, dumb request -- this isn't going to be a pure removal; the
flash addition will remain, it will only be made conditional on a new
machine type property. So there's going to be *something* to run
git-blame on. Apologies for my mistake.

Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#61693): https://edk2.groups.io/g/devel/message/61693
Mute This Topic: https://groups.io/mt/75065345/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to