All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: u-boot@lists.denx.de
Subject: U-Boot i2c bus num 1 is broken on Nokia N900
Date: Wed, 28 Oct 2020 11:46:41 +0100	[thread overview]
Message-ID: <20201028104641.prcftv5ejd3iel5x@pali> (raw)
In-Reply-To: <ab52a859-fc3e-48bb-e127-ad3950310b6c@denx.de>

On Wednesday 28 October 2020 06:42:39 Heiko Schocher wrote:
> Am 26.10.2020 um 22:48 schrieb Pali Roh?r:
> > On Monday 27 April 2020 09:03:13 Heiko Schocher wrote:
> > > Am 26.04.2020 um 01:54 schrieb Pali Roh?r:
> > > > On Saturday 25 April 2020 14:11:32 Pali Roh?r wrote:
> > > > > On Saturday 25 April 2020 07:00:58 Adam Ford wrote:
> > > > > > On Sat, Apr 25, 2020 at 6:50 AM Pali Roh?r <pali@kernel.org> wrote:
> > > > > > > On Saturday 25 April 2020 06:36:58 Adam Ford wrote:
> > > > > > > > On Sat, Apr 25, 2020 at 5:42 AM Pali Roh?r <pali@kernel.org> wrote:
> > > > > > > > > On Thursday 02 April 2020 20:42:31 Pali Roh?r wrote:
> > > > > > > > > > On Wednesday 01 April 2020 12:32:29 Merlijn Wajer wrote:
> > > > > > > > > > > MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
> > > > > > > > > > > In:    vga
> > > > > > > > > > > Out:   vga
> > > > > > > > > > > Err:   vga
> > > > > > > > > > > Timed out in wait_for_event: status=0100
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > Timed out in wait_for_event: status=0000
> > > > > > > > > > > Check if pads/pull-ups of bus are properly configured
> > > > > > > > > > > i2c_read (addr phase): pads on bus probably not configured (status=0x10)
> > > > > > > > > > > i2c_write: timed out writig last byte!
...
> > > > Now I was able to find commit which is causing above i2c problems:
> > > > "Check if pads/pull-ups of bus are properly configured"
> > > > 
> > > > It is d5243359e1afc957acd373dbbde1cf6c70ee5485:
> > > > 
> > > >       OMAP24xx I2C: Add support for set-speed
> > > >       Adds support for set-speed on the OMAP24xx I2C Adapter.
> > > >       Changes to omap24_i2c_write(...) for polling ARDY Bit from IRQ-Status.
> > > >       Otherwise on a subsequent call the transfer of last byte from the
> > > >       predecessor is aborted and therefore lost. For exmaple when
> > > >       i2c_write(...) is followed by a i2c_setspeed(...) (which has to
> > > >       deactivate and activate master for changing psc,...).
> > > >       Minor cosmetical changes.
> > > >       Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
> > > >       Cc: Heiko Schocher <hs@denx.de>
> > > > 
> > > > U-Boot version prior this command does not report those i2c errors.
...
> > I applied revert of above change on top of the master u-boot branch and
> > i2c bus num 1 (second) started working on N900 hw:
> > 
> > diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
> > index 0af4e333c4..a49cf89712 100644
> > --- a/drivers/i2c/omap24xx_i2c.c
> > +++ b/drivers/i2c/omap24xx_i2c.c
> > @@ -820,16 +820,6 @@ static int __omap24_i2c_write(void __iomem *i2c_base, int ip_rev, int waitdelay,
> >   		}
> >   	}
> > -	/*
> > -	 * poll ARDY bit for making sure that last byte really has been
> > -	 * transferred on the bus.
> > -	 */
> > -	do {
> > -		status = wait_for_event(i2c_base, ip_rev, waitdelay);
> > -	} while (!(status & I2C_STAT_ARDY) && timeout--);
> > -	if (timeout <= 0)
> > -		printf("i2c_write: timed out writig last byte!\n");
> > -
> >   wr_exit:
> >   	flush_fifo(i2c_base, ip_rev);
> >   	omap_i2c_write_reg(i2c_base, ip_rev, 0xFFFF, OMAP_I2C_STAT_REG);
> > 
> > I have looked into i2c-omap.c linux kernel driver and its transfer
> > function does not have any such code for waiting ARDY bit.
> 
> Ok...
> 
> > Why it is there? I have not able to find any information and that
> > comment is strange... it looks like it was incomplete/broken? workaround
> > about other issue.
> 
> Hmm.. ARDY bit means:
> """
> The current transaction is finished and the module registers
> can be accessed.
> """
> 
> Seems not to bad to me to check this bit! ... but may missing
> on transaction start some prerequisite is missing for triggering
> this bit? And so, this additional check only leads in a loop
> going into timeout?
> 
> > As you can see in log, at the first call status flags contains value
> > 0x0100 and on all other calls it contains just 0x000 status flags.
> > 
> > Therefore ARDY bit is never set, but i2c transfer works fine.
> 
> Hmm... so the question why does this bit not pop up on transfer
> end?

I do not know. I even do not have documentation for this i2c bus IP.
More suspicious is that this happens only for bus num 1.

Bus num 0 does not cause any issue and is working with and also without
that patch.

> I just can speculate that adding this polling ARDY bit loop
> changes the timing... and fixed an underlying bug, yes...
> 
> but if this bit never pop up, there must come the printf
> "i2c_write: timed out writig last byte!" for each i2c transfer.

Yes, it is for every bus num 1 transfer. But in N900 code there is just
one write on i2c bus 1 (to reset LED). All other devices which are
accessed from U-Boot on N900 are on i2c bus 0.

> Hannes may you can check if this is the case for you?
> 
> why does nobody claimed that this message pops up in the last 5 years?
> 
> or reverse asked, why does this bit may not pop up for you Pali?

Nokia N900 is Omap3430 HS device. I do not know how many people are
using latest U-Boot on HS devices and maybe Omap3430 has some i2c bugs?

But my main question is, why kernel's i2c driver does not do that check
for ARDY bit? And U-Boot is doing it?

> I have not yet time to check this... also I am unsure if I have a hw
> where I can try ...
> 
> bye,
> Heiko
> -- 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de

  reply	other threads:[~2020-10-28 10:46 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-31 22:35 [PATCH 00/11] Fixes for Nokia RX-51 Pali Rohár
2020-03-31 22:35 ` [PATCH 01/11] Nokia RX-51: Update my email address Pali Rohár
2020-03-31 22:35 ` [PATCH 02/11] Nokia RX-51: Add README.nokia_rx51 file to MAINTAINERS Pali Rohár
2020-03-31 22:35 ` [PATCH 03/11] Nokia RX-51: Move comment about CONFIG_SYS_TEXT_BASE to correct place Pali Rohár
2020-03-31 22:35 ` [PATCH 04/11] Nokia RX-51: Move code from defconfig back to C header file Pali Rohár
2020-03-31 22:35 ` [PATCH 05/11] Nokia RX-51: Revert back onenand defitions Pali Rohár
2020-03-31 22:35 ` [PATCH 06/11] Nokia RX-51: Remove PART* macros Pali Rohár
2020-03-31 22:35 ` [PATCH 07/11] Nokia RX-51: Remember setup_console_atag option Pali Rohár
2020-03-31 22:35 ` [PATCH 08/11] Nokia RX-51: Enable CONFIG_CONSOLE_MUX Pali Rohár
2020-04-14 10:19   ` Lokesh Vutla
2020-03-31 22:35 ` [PATCH 09/11] Nokia RX-51: Disable some unused features to decrease size of u-boot binary Pali Rohár
2020-03-31 22:35 ` [PATCH 10/11] Nokia RX-51: Update README.nokia_rx51 Pali Rohár
2020-03-31 22:35 ` [PATCH 11/11] Nokia RX-51: Add automated test for running RX-51 build in qemu Pali Rohár
2020-04-14 10:40   ` Pali Rohár
2020-04-21 14:55     ` Lokesh Vutla
2020-04-21 17:36       ` Simon Glass
2020-04-21 20:12         ` Tom Rini
2020-04-21 20:37           ` Simon Glass
2020-04-21 20:46             ` Tom Rini
2020-04-21 20:49               ` Simon Glass
2020-04-21 20:51                 ` Tom Rini
2020-04-21 21:34                   ` Pali Rohár
2020-04-21 23:24                     ` Tom Rini
2020-04-23  7:34                       ` Pali Rohár
2020-04-23 12:24                         ` Tom Rini
2020-04-23 17:48                           ` Pali Rohár
2020-04-25  9:00                             ` [PATCH v2] " Pali Rohár
2020-04-27  8:40                               ` Pali Rohár
2020-04-27 18:00                               ` Tom Rini
2020-04-28  7:37                                 ` Pali Rohár
2020-05-08 12:52                                   ` Pali Rohár
2020-05-08 13:10                                     ` Tom Rini
2020-05-09 16:28                                       ` Lokesh Vutla
2020-05-09 16:35                                         ` Pali Rohár
2020-05-09 20:56                                           ` Tom Rini
2020-05-14 22:41                                             ` Pali Rohár
2020-05-15  0:01                                               ` Tom Rini
2020-05-15  7:33                                                 ` Pali Rohár
2020-05-15 13:20                                                   ` Tom Rini
2020-05-15 13:46                                                     ` Pali Rohár
2020-05-15 13:48                                                       ` Tom Rini
2020-05-15 13:51                                                         ` Pali Rohár
2020-05-15 13:53                                                           ` Tom Rini
2020-05-15 13:58                                                             ` Pali Rohár
2020-05-15 14:16                                                               ` Tom Rini
2020-05-15 17:40                                                                 ` Pali Rohár
2020-05-15 18:34                                                                   ` Tom Rini
2020-05-17 12:31                                                                     ` Pali Rohár
2020-05-17 12:38                                                                       ` [PATCH v3] " Pali Rohár
2020-05-26  9:18                                                                         ` Pali Rohár
2020-05-26  9:22                                                                           ` Lokesh Vutla
2020-05-26  9:32                                                                             ` Pali Rohár
2020-05-26  9:33                                                                               ` Lokesh Vutla
2020-04-21 21:03               ` [PATCH 11/11] " Pali Rohár
2020-04-21 20:53             ` Pali Rohár
2020-03-31 22:42 ` U-Boot is broken on real N900 HW (Was: Re: [PATCH 00/11] Fixes for Nokia RX-51) Pali Rohár
     [not found]   ` <3c7dda52-10b3-e8c3-a382-785c80f124e7@wizzup.org>
2020-04-02 18:42     ` U-Boot is broken on real N900 HW Pali Rohár
2020-04-25 10:42       ` Pali Rohár
2020-04-25 11:36         ` Adam Ford
2020-04-25 11:50           ` Pali Rohár
2020-04-25 12:00             ` Adam Ford
2020-04-25 12:11               ` Pali Rohár
2020-04-25 23:54                 ` U-Boot i2c bus num 1 is broken on Nokia N900 (Was: Re: U-Boot is broken on real N900 HW) Pali Rohár
2020-04-27  7:03                   ` Heiko Schocher
2020-10-26 21:48                     ` U-Boot i2c bus num 1 is broken on Nokia N900 Pali Rohár
2020-10-28  5:42                       ` Heiko Schocher
2020-10-28 10:46                         ` Pali Rohár [this message]
2020-10-29  7:51                         ` Ivaylo Dimitrov
2020-10-29  9:32                           ` Heiko Schocher
2020-10-29  9:36                             ` Pali Rohár
2020-10-30  7:00                             ` Ivaylo Dimitrov
2020-10-30  7:24                               ` Heiko Schocher
2020-10-31 11:47                                 ` Ivaylo Dimitrov
2020-11-02  7:13                                   ` Heiko Schocher
2020-04-25 12:07             ` U-Boot is broken on real N900 HW Pali Rohár
2020-04-25 13:19               ` Pali Rohár
2020-04-25 13:48                 ` Pali Rohár
2020-04-25 21:26             ` Bisected: mmc cause reboot loops on N900 (Was: Re: U-Boot is broken on real N900 HW) Pali Rohár
2020-04-25 22:20               ` Pali Rohár
2020-04-25 22:29                 ` Bisected: omap_hsmmc 3.3V IO voltage incompatible with N900 (Was: Re: Bisected: mmc cause reboot loops on N900) Pali Rohár
2020-05-07 13:40                   ` Faiz Abbas
2020-05-07 15:19                     ` Pali Rohár
2020-05-26 17:49                       ` Pali Rohár
2020-06-12 13:03                         ` Pali Rohár
2020-07-01  8:32                           ` Pali Rohár
2020-07-01  8:51                             ` Faiz Abbas
2020-05-03 21:31                 ` Bisected: mmc cause reboot loops on N900 Pali Rohár
2020-04-26 17:13               ` Bisected: mmc cause reboot loops on N900 (Was: Re: U-Boot is broken on real N900 HW) Pavel Machek
2020-04-06 20:12   ` U-Boot is broken on real N900 HW (Was: Re: [PATCH 00/11] Fixes for Nokia RX-51) Pavel Machek
2020-04-06 22:27     ` Pali Rohár
2020-04-13 10:41 ` [PATCH 00/11] Fixes for Nokia RX-51 Pali Rohár
2020-04-14 10:23   ` Lokesh Vutla
2020-04-14 10:31     ` Pali Rohár
2020-04-14 10:44       ` Lokesh Vutla
2020-04-14 11:17         ` Pali Rohár
2020-04-14 11:51           ` Lokesh Vutla
2020-04-14 12:01             ` Pali Rohár
2020-04-16 21:57               ` Pali Rohár
2020-04-20  8:12                 ` Lokesh Vutla
2020-04-20 23:21                   ` Pali Rohár
2020-05-11 12:47     ` Lokesh Vutla

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=20201028104641.prcftv5ejd3iel5x@pali \
    --to=pali@kernel.org \
    --cc=u-boot@lists.denx.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 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.