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
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox