qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [Bochs-developers] [PATCH 2/6] Add S3 state to DSDT. Ha


From: Gleb Natapov
Subject: [Qemu-devel] Re: [Bochs-developers] [PATCH 2/6] Add S3 state to DSDT. Handleresumeevent in the BIOS.
Date: Sun, 2 Nov 2008 20:39:14 +0200

On Sun, Nov 02, 2008 at 07:13:37PM +0100, Sebastian Herbszt wrote:
>>>> +
>>>> +    if (*shutdown_flag == 0xfe) {
>>>> +        *s3_resume_vector = find_resume_vector();
>>>> +        if (!*s3_resume_vector) {
>>>> +         BX_INFO("This is S3 resume but wakeup vector is NULL\n");
>>>> +        } else {
>>>> +         BX_INFO("S3 resume vector %p\n", *s3_resume_vector);
>>>> +            /* redirect bios read access to RAM */
>>>> +            pci_for_each_device(find_440fx);
>>>> +            bios_lock_shadow_ram(); /* bios is already copied */
>>>
>>> bios_shadow_init() is called in pci_bios_init(). Why do we need to lock it 
>>> here?
>>>
>> Because we don't call pci_bios_init() if it is S3 resume.
>
> If pci_bios_init() is not called on S3 resume, pci_bios_init_bridges()
> is not called either. This way bios_shadow_init() is never called and the
> bios is never shadowed. Since it's not shadowed there is no need to lock it.
> What do i miss here?
>
The BIOS is already shadowed during a regular boot. No need to copy it, just
lock.

>>>> +            return;
>>>> +        }
>>>> +    }
>>>> +
>>>> +    uuid_probe();
>>>> +
>>>>     pci_bios_init();
>>>>
>>>>     if (bios_table_cur_addr != 0) {
>>>>
>>>
>>> rombios32.c r1.32 got:
>>>
>>>    smp_probe();
>>>
>>>    pci_bios_init();
>>>
>>>    if (bios_table_cur_addr != 0) {
>>>
>>>        mptable_init();
>>>
>>>        uuid_probe();
>>>
>>> The patch should remove uuid_probe() from the if-case.
>>>
>> Why? uuid_probe() is needed only if SMBIOS tables are built. And
>> smbios_init() call is in the same if.
>
> Your patch does also add a uuid_probe() before the if-case. Since it does
> not remove the one in the if-case, uuid_probe() will be called twice.
>
Ah. Now I see. I added this by mistake. I'll fix this.

--
                        Gleb.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]