* Corey Minyard (miny...@acm.org) wrote: > On 11/27/18 10:01 AM, Dr. David Alan Gilbert wrote: > > * Corey Minyard (miny...@acm.org) wrote: > > > On 11/26/18 11:23 AM, Dr. David Alan Gilbert wrote: > > > > * miny...@acm.org (miny...@acm.org) wrote: > > > > > From: Corey Minyard <cminy...@mvista.com> > > > > > > > > > > Migration capability is being added for pm_smbus and SMBus devices. > > > > > This change will allow backwards compatibility to be kept when > > > > > migrating back to an old qemu version. Add a bool to the machine > > > > > class tho keep smbus migration from happening. Future changes > > > > > will use this. > > > > So this is also going to have to be in the 3.0 and 3.1 machine options > > > > and maybe some other architectures? > > > I'm not sure why it would need to be in both the 3.0 and 3.1 machine > > > options. > > > If this goes in, I'm assuming it's for 3.1 and it should only need to be > > > there. > > > That's if it's too late for 3.0. > > You're out by 1-2 releases; 3.0 shipped in August, 3.1 is in freeze at > > the moment (hence you've missed it unless some part of this is > > critical); so this will go in during the 4.0 release. > > Yes, you are right, this is for 4.0. > > > > > > > The pm_smbus device is also used by mips fulong. From what I can tell, > > > that > > > machine doesn't have any concept of backwards compatibility, so it seemed > > > save to no worry about it there. If it weren't for that, this bool could > > > go > > > into the > > Yeh that's fine. > > > > What about the eeprom's are they used more widely? > > The only other I2C EEPROM I see is hw/nvram/eeprom_at24c.c. That device is > only > configured for PPC. It has a block device backend, too. This is a little > annoying > because smbus_eeprom.c emulates an at24c02. It would be nice to only have > one of these.
Added in David and Laurent for odd-ppc stuff; if I'm reading it right it's not used by one of the versioned machines. > I can add it to that file, too, it wouldn't be hard to do and I could put it > into the > x86 config to test. It would be nicer to combine the two; smbus_eeprom > seems > like a hack to me. at24c.c is done as an SMBus slave, its done as a raw I2C > device, which is IMHO is more correct since the at24cxx devices are not > SMBus > devices, they are I2C devices. > > In fact, smbus_eeprom.c is the only thing currently using the smbus_slave > code. > The IPMI interface on SMBus that I have pending uses the smbus_slave code, > too, > so perhaps there's value, though it's no big deal either way. It would be > nice to get > this right the first time and not hack it up in the future. Dave > > Thanks, > > -corey > > > > > > Dave > > > > > PC specific structure. > > > > > > Thanks, > > > > > > -corey > > > > > > > Dave > > > > > > > > > Signed-off-by: Corey Minyard <cminy...@mvista.com> > > > > > Cc: Eduardo Habkost <ehabk...@redhat.com> > > > > > Cc: Marcel Apfelbaum <marcel.apfelb...@gmail.com> > > > > > --- > > > > > hw/i386/pc_piix.c | 1 + > > > > > hw/i386/pc_q35.c | 1 + > > > > > include/hw/boards.h | 1 + > > > > > 3 files changed, 3 insertions(+) > > > > > > > > > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c > > > > > index cb28227cc3..3d1ccb1af1 100644 > > > > > --- a/hw/i386/pc_piix.c > > > > > +++ b/hw/i386/pc_piix.c > > > > > @@ -443,6 +443,7 @@ static void > > > > > pc_i440fx_2_12_machine_options(MachineClass *m) > > > > > pc_i440fx_3_0_machine_options(m); > > > > > m->is_default = 0; > > > > > m->alias = NULL; > > > > > + m->smbus_no_migration_support = true; > > > > > SET_MACHINE_COMPAT(m, PC_COMPAT_2_12); > > > > > } > > > > > diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c > > > > > index 90e88c9b28..0c6fca6a40 100644 > > > > > --- a/hw/i386/pc_q35.c > > > > > +++ b/hw/i386/pc_q35.c > > > > > @@ -324,6 +324,7 @@ static void > > > > > pc_q35_2_12_machine_options(MachineClass *m) > > > > > { > > > > > pc_q35_3_0_machine_options(m); > > > > > m->alias = NULL; > > > > > + m->smbus_no_migration_support = true; > > > > > SET_MACHINE_COMPAT(m, PC_COMPAT_2_12); > > > > > } > > > > > diff --git a/include/hw/boards.h b/include/hw/boards.h > > > > > index f82f28468b..65314fbe2a 100644 > > > > > --- a/include/hw/boards.h > > > > > +++ b/include/hw/boards.h > > > > > @@ -207,6 +207,7 @@ struct MachineClass { > > > > > void (*numa_auto_assign_ram)(MachineClass *mc, NodeInfo *nodes, > > > > > int nb_nodes, ram_addr_t size); > > > > > bool ignore_boot_device_suffixes; > > > > > + bool smbus_no_migration_support; > > > > > HotplugHandler *(*get_hotplug_handler)(MachineState *machine, > > > > > DeviceState *dev); > > > > > -- > > > > > 2.17.1 > > > > > > > > > -- > > > > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK > > > > > -- > > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK > > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK