[SeaBIOS] [edk2] (PAM stuff) reset doesn't work on OVMF + SeaBIOS CSM
Paolo Bonzini
pbonzini at redhat.com
Mon Feb 18 15:46:04 CET 2013
Il 18/02/2013 13:53, David Woodhouse ha scritto:
>
> diff --git a/hw/piix_pci.c b/hw/piix_pci.c
> index 6c77e49..6dcf1c5 100644
> --- a/hw/piix_pci.c
> +++ b/hw/piix_pci.c
> @@ -171,6 +171,23 @@ static int i440fx_load_old(QEMUFile* f, void *opaque, int version_id)
> return 0;
> }
>
> +static void i440fx_reset(void *opaque)
> +{
> + PCII440FXState *d = opaque;
> + uint8_t *pci_conf = d->dev.config;
> +
> + pci_conf[0x59] = 0x00; // Reset PAM setup
> + pci_conf[0x5a] = 0x00;
> + pci_conf[0x5b] = 0x00;
> + pci_conf[0x5c] = 0x00;
> + pci_conf[0x5d] = 0x00;
> + pci_conf[0x5e] = 0x00;
> + pci_conf[0x5f] = 0x00;
> + pci_conf[0x72] = 0x02; // And SMM
> +
> + i440fx_update_memory_mappings(d);
> +}
> +
> static int i440fx_post_load(void *opaque, int version_id)
> {
> PCII440FXState *d = opaque;
> @@ -217,6 +234,8 @@ static int i440fx_initfn(PCIDevice *dev)
> d->dev.config[I440FX_SMRAM] = 0x02;
>
> cpu_smm_register(&i440fx_set_smm, d);
> +
> + qemu_register_reset(i440fx_reset, d);
> return 0;
> }
If you want to submit this patch for upstream QEMU (I agree it is a good
idea), please set dc->reset instead in i440fx_class_init.
Paolo
More information about the SeaBIOS
mailing list