qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] RE: [PATCH 7/9] powerpc/kvm: Add E500 core emulation


From: Liu Yu
Subject: [Qemu-devel] RE: [PATCH 7/9] powerpc/kvm: Add E500 core emulation
Date: Fri, 16 Jan 2009 15:51:18 +0800

> -----Original Message-----
> From: address@hidden 
> [mailto:address@hidden On Behalf Of Hollis Blanchard
> Sent: Friday, January 16, 2009 3:53 AM
> To: Liu Yu-B13201
> Cc: address@hidden; address@hidden
> Subject: Re: [PATCH 7/9] powerpc/kvm: Add E500 core emulation
> 
> On Thu, 2009-01-15 at 20:34 +0800, Liu Yu wrote:
> > Signed-off-by: Liu Yu <address@hidden>
> > ---
> >  Makefile.target |    1 +
> >  hw/ppce500.c    |   49 
> +++++++++++++++++++++++++++++++++++++++++++++++++
> >  hw/ppce500.h    |   44 ++++++++++++++++++++++++++++++++++++++++++++
> >  3 files changed, 94 insertions(+), 0 deletions(-)
> >  create mode 100644 hw/ppce500.c
> >  create mode 100644 hw/ppce500.h
> > 
> > diff --git a/Makefile.target b/Makefile.target
> > index 2079fcb..223d294 100644
> > --- a/Makefile.target
> > +++ b/Makefile.target
> > @@ -651,6 +651,7 @@ OBJS+= pflash_cfi02.o ppc4xx_devs.o 
> ppc4xx_pci.o ppc405_uc.o ppc405_boards.o
> >  OBJS+= ppc440.o ppc440_bamboo.o
> >  # PowerPC E500 boards
> >  OBJS+= ppce500_pci.o
> > +OBJS+= ppce500.o
> >  ifdef FDT_LIBS
> >  OBJS+= device_tree.o
> >  LIBS+= $(FDT_LIBS)
> > diff --git a/hw/ppce500.c b/hw/ppce500.c
> > new file mode 100644
> > index 0000000..856cce2
> > --- /dev/null
> > +++ b/hw/ppce500.c
> > @@ -0,0 +1,49 @@
> > +/*
> > + * Qemu PowerPC E500 core emualtion
> 
> "emulation"
Fixed. Thanks.

> 
> > + * Copyright (C) 2009 Freescale Semiconductor, Inc. All 
> rights reserved.
> > + *
> > + * Author: Yu Liu,     <address@hidden>
> > + *
> > + * This file is derived from hw/ppc440.c
> > + * the copyright for that material belongs to the original owners.
> > + *
> > + * This is free software; you can redistribute it and/or modify
> > + * it under the terms of  the GNU General  Public License 
> as published by
> > + * the Free Software Foundation;  either version 2 of the  
> License, or
> > + * (at your option) any later version.
> > + */
> > +
> > +#include "hw.h"
> > +#include "pc.h"
> > +#include "hw/isa.h"
> > +#include "ppce500.h"
> > +#include "sysemu.h"
> > +
> > +#define bytes_to_mb(a) (a>>20)
> 
> Doesn't look like this is used.
Removed. Thanks.

> 
> > +CPUState *ppce500_init(ram_addr_t *ram_size)
> > +{
> > +    int i;
> > +    ram_addr_t tmp_ram_size;
> > +    CPUState *env;
> > +    int ram_stick_sizes[] = {512<<20, 256<<20, 128<<20, 
> 64<<20}; /* in bytes */
> > +
> > +    /* Setup Memory */
> > +    tmp_ram_size = *ram_size;
> > +
> > +    for (i=0; 
> i<(sizeof(ram_stick_sizes)/sizeof(ram_stick_sizes[0])); i++)
> > +   while ((tmp_ram_size/ram_stick_sizes[i]) > 0)
> > +       tmp_ram_size -= ram_stick_sizes[i];
> > +
> > +    if (tmp_ram_size)
> > +   *ram_size -= tmp_ram_size;
> 
> Since you said you don't actually have a memory controller you're
> emulating, I think you should completely remove all this 
> ram_size stuff.
> Once you do that, this whole function becomes just cpu_ppc_init(), so
> you can just call that instead.

I still want to fixup guest memory size at certain alignment boundary,
so that KVM can handle the mmu easily.
Anyway, seems I should put them all into hw/ppce500_mpc85xx.c.

> 
> > +    env = cpu_ppc_init("e500v2_v30");
> > +    if (!env) {
> > +   fprintf(stderr, "Unable to initilize CPU!\n");
> 
> "initialize"

Fixed. Thanks.




reply via email to

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