On Thu, May 23, 2019 at 02:43:10PM +0200, Philippe Mathieu-Daudé wrote: > Implement fw_cfg_arch_key_name(), which returns the name of a > ppc-specific key. > > The fw_cfg device is used by the machine using OpenBIOS: > - 40p > - mac99 (oldworld) > - g3beige (newworld) > > Reviewed-by: Laszlo Ersek <ler...@redhat.com> > Message-Id: <20190422195020.1494-6-phi...@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com>
Acked-by: David Gibson <da...@gibson.dropbear.id.au> > --- > hw/ppc/Makefile.objs | 2 +- > hw/ppc/fw_cfg.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 46 insertions(+), 1 deletion(-) > create mode 100644 hw/ppc/fw_cfg.c > > diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs > index 636e717f20..9da93af905 100644 > --- a/hw/ppc/Makefile.objs > +++ b/hw/ppc/Makefile.objs > @@ -1,5 +1,5 @@ > # shared objects > -obj-y += ppc.o ppc_booke.o fdt.o > +obj-y += ppc.o ppc_booke.o fdt.o fw_cfg.o > # IBM pSeries (sPAPR) > obj-$(CONFIG_PSERIES) += spapr.o spapr_caps.o spapr_vio.o spapr_events.o > obj-$(CONFIG_PSERIES) += spapr_hcall.o spapr_iommu.o spapr_rtas.o > diff --git a/hw/ppc/fw_cfg.c b/hw/ppc/fw_cfg.c > new file mode 100644 > index 0000000000..a88b5c4bde > --- /dev/null > +++ b/hw/ppc/fw_cfg.c > @@ -0,0 +1,45 @@ > +/* > + * fw_cfg helpers (PPC specific) > + * > + * Copyright (c) 2019 Red Hat, Inc. > + * > + * Author: > + * Philippe Mathieu-Daudé <phi...@redhat.com> > + * > + * SPDX-License-Identifier: GPL-2.0-or-later > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > + > +#include "qemu/osdep.h" > +#include "hw/ppc/ppc.h" > +#include "hw/nvram/fw_cfg.h" > + > +const char *fw_cfg_arch_key_name(uint16_t key) > +{ > + static const struct { > + uint16_t key; > + const char *name; > + } fw_cfg_arch_wellknown_keys[] = { > + {FW_CFG_PPC_WIDTH, "width"}, > + {FW_CFG_PPC_HEIGHT, "height"}, > + {FW_CFG_PPC_DEPTH, "depth"}, > + {FW_CFG_PPC_TBFREQ, "tbfreq"}, > + {FW_CFG_PPC_CLOCKFREQ, "clockfreq"}, > + {FW_CFG_PPC_IS_KVM, "is_kvm"}, > + {FW_CFG_PPC_KVM_HC, "kvm_hc"}, > + {FW_CFG_PPC_KVM_PID, "pid"}, > + {FW_CFG_PPC_NVRAM_ADDR, "nvram_addr"}, > + {FW_CFG_PPC_BUSFREQ, "busfreq"}, > + {FW_CFG_PPC_NVRAM_FLAT, "nvram_flat"}, > + {FW_CFG_PPC_VIACONFIG, "viaconfig"}, > + }; > + > + for (size_t i = 0; i < ARRAY_SIZE(fw_cfg_arch_wellknown_keys); i++) { > + if (fw_cfg_arch_wellknown_keys[i].key == key) { > + return fw_cfg_arch_wellknown_keys[i].name; > + } > + } > + return NULL; > +} -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature