From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: "barebox@lists.infradead.org" <barebox@lists.infradead.org>
Subject: Re: [PATCH 3/3] HACK: e1000: don't check for FLSWCTL.GLDONE when waiting for idle
Date: Mon, 9 Oct 2017 11:15:09 -0700 [thread overview]
Message-ID: <CAHQ1cqE5qGSNQr+sHbCbhoCCYGiVV6F5aZb-T74hb4rC4ip8=Q@mail.gmail.com> (raw)
In-Reply-To: <20171009142408.2g7k4mrfjq3tffwa@pengutronix.de>
On Mon, Oct 9, 2017 at 7:24 AM, Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:
> On Mon, Oct 09, 2017 at 11:36:16AM +0200, Uwe Kleine-König wrote:
>> I don't understand all the consequences of this patch yet, but this makes reading
>> out the flash chip connected to an i210 work for me.
>> ---
>> drivers/net/e1000/eeprom.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/e1000/eeprom.c b/drivers/net/e1000/eeprom.c
>> index 739bc17a519e..482a969f8d56 100644
>> --- a/drivers/net/e1000/eeprom.c
>> +++ b/drivers/net/e1000/eeprom.c
>> @@ -709,8 +709,8 @@ static int e1000_flash_mode_wait_for_idle(struct e1000_hw *hw)
>> * execution by polling only FLSWCTL.DONE */
>>
>> const int ret = e1000_poll_reg(hw, E1000_FLSWCTL,
>> - E1000_FLSWCTL_DONE | E1000_FLSWCTL_GLDONE,
>> - E1000_FLSWCTL_DONE | E1000_FLSWCTL_GLDONE,
>> + E1000_FLSWCTL_DONE,
>> + E1000_FLSWCTL_DONE,
>
> I tested a bit with and without this change at it seems as long as
> nothing "strange" happens, testing for both FLSWCTL.DONE and
> FLSWCTL.GLDONE (i.e. not applying my HACK patch) works fine.
>
> Still I think only testing for FLSWCTL.DONE is better because it works
> well even if the state machine is in the middle of a read request and
> then changing the command (which is always done after
> e1000_flash_mode_wait_for_idle()) should work well.
>
> I'll resend with a better commit log once I tested this.
>
> Alexey: I didn't understand the comment above the patched line, maybe
> I'm missing something?
>
Assuming this question is for me: what I meant by that comment is that
all of the flash related operations (read, write, erase) already poll
for E1000_FLSWCTL_DONE as their last step, so the only time that the
state of that bit would be unknown would be right after reset, the
first time any of those functions is executed.
As for GLDONE bit, I tried to stick to algorithms described in
"3.3.5.5 Software Flash Program Flow via the Flash-Mode Interface" and
"3.3.5.6 Software Flash Read Flow via the Flash-Mode Interface" of Rev
2.8 of the datasheet and that's where that "requrement" is coming
from.
I haven't touched this particular HW/area in more than a year, so,
since you actually work with it and can actually test things out I'll
defer to you to judge if certain HW checks are needed or not. My code
is by no means complete or exhaustively tested, so I have no problem
believing that I got some of the parts wrong.
Thanks,
Andrey Smirnov
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2017-10-09 18:15 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-09 9:36 [PATCH 0/3] e1000: access to flash on i210 Uwe Kleine-König
2017-10-09 9:36 ` [PATCH 1/3] e1000: implement register mapping for E1000_{EERD, FLSW{CTL, DATA, CNT}} Uwe Kleine-König
2017-10-09 18:22 ` Andrey Smirnov
2017-10-09 18:33 ` [PATCH 1/3] e1000: implement register mapping for E1000_{EERD,FLSW{CTL,DATA,CNT}} Uwe Kleine-König
2017-10-09 9:36 ` [PATCH 2/3] e1000: implement support for smaller flash chips Uwe Kleine-König
2017-10-09 18:24 ` Andrey Smirnov
2017-10-09 9:36 ` [PATCH 3/3] HACK: e1000: don't check for FLSWCTL.GLDONE when waiting for idle Uwe Kleine-König
2017-10-09 14:24 ` Uwe Kleine-König
2017-10-09 18:15 ` Andrey Smirnov [this message]
2017-10-09 18:41 ` Uwe Kleine-König
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='CAHQ1cqE5qGSNQr+sHbCbhoCCYGiVV6F5aZb-T74hb4rC4ip8=Q@mail.gmail.com' \
--to=andrew.smirnov@gmail.com \
--cc=barebox@lists.infradead.org \
--cc=u.kleine-koenig@pengutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox