From: Jason Wang <jasowang@redhat.com>
To: Andrew Baumann <Andrew.Baumann@microsoft.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/2] lan9118: fix emulation of MAC address loaded bit in E2P_CMD register
Date: Mon, 7 Dec 2015 10:42:21 +0800 [thread overview]
Message-ID: <5664F20D.1050906@redhat.com> (raw)
In-Reply-To: <1449255530-11088-2-git-send-email-Andrew.Baumann@microsoft.com>
On 12/05/2015 02:58 AM, Andrew Baumann wrote:
> There appears to have been a longstanding typo in the implementation
> of the "MAC address loaded" bit in the E2P_CMD (EEPROM command)
> register. The code was using 0x10, but the controller spec says it
> should be bit 8 (0x100).
>
> Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
> ---
> This may have slipped through, because the Linux driver doesn't
> check that bit; it simply reads the MAC address and assumes it is
> valid.
Applied in my -net for 2.5. Thanks
>
> hw/net/lan9118.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/hw/net/lan9118.c b/hw/net/lan9118.c
> index 4f0e840..133fd3d 100644
> --- a/hw/net/lan9118.c
> +++ b/hw/net/lan9118.c
> @@ -56,6 +56,8 @@ do { fprintf(stderr, "lan9118: error: " fmt , ## __VA_ARGS__);} while (0)
> #define CSR_E2P_CMD 0xb0
> #define CSR_E2P_DATA 0xb4
>
> +#define E2P_CMD_MAC_ADDR_LOADED 0x100
> +
> /* IRQ_CFG */
> #define IRQ_INT 0x00001000
> #define IRQ_EN 0x00000100
> @@ -352,14 +354,14 @@ static void lan9118_reload_eeprom(lan9118_state *s)
> {
> int i;
> if (s->eeprom[0] != 0xa5) {
> - s->e2p_cmd &= ~0x10;
> + s->e2p_cmd &= ~E2P_CMD_MAC_ADDR_LOADED;
> DPRINTF("MACADDR load failed\n");
> return;
> }
> for (i = 0; i < 6; i++) {
> s->conf.macaddr.a[i] = s->eeprom[i + 1];
> }
> - s->e2p_cmd |= 0x10;
> + s->e2p_cmd |= E2P_CMD_MAC_ADDR_LOADED;
> DPRINTF("MACADDR loaded from eeprom\n");
> lan9118_mac_changed(s);
> }
> @@ -937,7 +939,7 @@ static uint32_t do_mac_read(lan9118_state *s, int reg)
>
> static void lan9118_eeprom_cmd(lan9118_state *s, int cmd, int addr)
> {
> - s->e2p_cmd = (s->e2p_cmd & 0x10) | (cmd << 28) | addr;
> + s->e2p_cmd = (s->e2p_cmd & E2P_CMD_MAC_ADDR_LOADED) | (cmd << 28) | addr;
> switch (cmd) {
> case 0:
> s->e2p_data = s->eeprom[addr];
next prev parent reply other threads:[~2015-12-07 2:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-04 18:58 [Qemu-devel] [PATCH 0/2] minor fixes to lan9118 emulation Andrew Baumann
2015-12-04 18:58 ` [Qemu-devel] [PATCH 1/2] lan9118: fix emulation of MAC address loaded bit in E2P_CMD register Andrew Baumann
2015-12-07 2:42 ` Jason Wang [this message]
2015-12-04 18:58 ` [Qemu-devel] [PATCH 2/2] lan9118: log and ignore access to invalid registers, rather than aborting Andrew Baumann
2015-12-07 2:43 ` Jason Wang
2015-12-07 5:20 ` Andrew Baumann
2015-12-07 9:52 ` Paolo Bonzini
2015-12-07 21:53 ` Andrew Baumann
2015-12-09 14:58 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5664F20D.1050906@redhat.com \
--to=jasowang@redhat.com \
--cc=Andrew.Baumann@microsoft.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.