From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32818) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yzjze-0008Fz-M3 for qemu-devel@nongnu.org; Tue, 02 Jun 2015 07:04:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yzjzc-0005Q1-Rr for qemu-devel@nongnu.org; Tue, 02 Jun 2015 07:04:26 -0400 Received: from hall.aurel32.net ([2001:bc8:30d7:101::1]:59815) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yzjzc-0005Pg-MQ for qemu-devel@nongnu.org; Tue, 02 Jun 2015 07:04:24 -0400 Date: Tue, 2 Jun 2015 13:04:24 +0200 From: Aurelien Jarno Message-ID: <20150602110424.GL26298@aurel32.net> References: <1432729200-5322-1-git-send-email-hpoussin@reactos.org> <1432729200-5322-13-git-send-email-hpoussin@reactos.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <1432729200-5322-13-git-send-email-hpoussin@reactos.org> Sender: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH v2 12/17] net/dp8393x: add PROM to store MAC address List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?iso-8859-15?Q?Herv=E9?= Poussineau Cc: Leon Alrae , qemu-devel@nongnu.org, Laurent Vivier On 2015-05-27 14:19, Herv=E9 Poussineau wrote: > Signed-off-by: Laurent Vivier > Signed-off-by: Herv=E9 Poussineau > --- > hw/mips/mips_jazz.c | 1 + > hw/net/dp8393x.c | 18 ++++++++++++++++++ > 2 files changed, 19 insertions(+) >=20 > diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c > index 648654e..9d60633 100644 > --- a/hw/mips/mips_jazz.c > +++ b/hw/mips/mips_jazz.c > @@ -282,6 +282,7 @@ static void mips_jazz_init(MachineState *machine, > qdev_init_nofail(dev); > sysbus =3D SYS_BUS_DEVICE(dev); > sysbus_mmio_map(sysbus, 0, 0x80001000); > + sysbus_mmio_map(sysbus, 1, 0x8000b000); > sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(rc4030, 4)); > break; > } else if (is_help_option(nd->model)) { > diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c > index 51e728b..ef1fb0e 100644 > --- a/hw/net/dp8393x.c > +++ b/hw/net/dp8393x.c > @@ -25,6 +25,7 @@ > =20 > //#define DEBUG_SONIC > =20 > +#define SONIC_PROM_SIZE 0x1000 > =20 > #ifdef DEBUG_SONIC > #define DPRINTF(fmt, ...) \ > @@ -156,6 +157,7 @@ typedef struct dp8393xState { > NICConf conf; > NICState *nic; > MemoryRegion mmio; > + MemoryRegion prom; > =20 > /* Registers */ > uint8_t cam[16][6]; > @@ -816,12 +818,15 @@ static void dp8393x_instance_init(Object *obj) > dp8393xState *s =3D DP8393X(obj); > =20 > sysbus_init_mmio(sbd, &s->mmio); > + sysbus_init_mmio(sbd, &s->prom); > sysbus_init_irq(sbd, &s->irq); > } > =20 > static void dp8393x_realize(DeviceState *dev, Error **errp) > { > dp8393xState *s =3D DP8393X(dev); > + int i, checksum; > + uint8_t *prom; > =20 > address_space_init(&s->as, s->dma_mr, "dp8393x"); > memory_region_init_io(&s->mmio, OBJECT(dev), &dp8393x_ops, s, > @@ -833,6 +838,19 @@ static void dp8393x_realize(DeviceState *dev, Error = **errp) > =20 > s->watchdog =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, dp8393x_watchdog, s= ); > s->regs[SONIC_SR] =3D 0x0004; /* only revision recognized by Linux */ > + > + memory_region_init_rom_device(&s->prom, OBJECT(dev), NULL, NULL, > + "dp8393x-prom", SONIC_PROM_SIZE, NULL); > + prom =3D memory_region_get_ram_ptr(&s->prom); > + checksum =3D 0; > + for (i =3D 0; i < 6; i++) { > + prom[i] =3D s->conf.macaddr.a[i]; > + checksum +=3D prom[i]; > + if (checksum > 0xff) { > + checksum =3D (checksum + 1) & 0xff; > + } > + } > + prom[7] =3D 0xff - checksum; > } > =20 > static Property dp8393x_properties[] =3D { Reviewed-by: Aurelien Jarno --=20 Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net