public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] SoCFPGA cache / S-bit problem - was Re: Newbie SPL question for socfpga_sockit
Date: Wed, 23 Mar 2016 16:37:54 +0100	[thread overview]
Message-ID: <56F2B852.3090507@denx.de> (raw)
In-Reply-To: <1458745223.1850.6.camel@altera.com>

Hi Chin,

On 23.03.2016 16:00, Chin Liang See wrote:
> On Mon, 2016-03-21 at 23:45 +0800, Chin Liang See wrote:
>> On Mon, 2016-03-21 at 22:05 +0800, Chin Liang See wrote:
>>> On Fri, 2016-03-04 at 20:03 +0100, Marek Vasut wrote:
>>>> On 03/04/2016 05:06 PM, Dinh Nguyen wrote:
>>>>> On 03/02/2016 05:24 PM, Marek Vasut wrote:
>
> [..]
>
>>>>>> Well, that's our usual USB/QSPI cache issue that's tormenting
>>>>>> your soul.
>>>>>> CCing Chin ;-)
>>>>>>
>>>>>> Does the issue by any chance magically disappear if you apply
>>>>>> this patch:
>>>>>>
>>>>>> diff --git a/arch/arm/include/asm/system.h
>>>>>> b/arch/arm/include/asm/system.h
>>>>>> index 026e7ef..06802c6 100644
>>>>>> --- a/arch/arm/include/asm/system.h
>>>>>> +++ b/arch/arm/include/asm/system.h
>>>>>> @@ -274,7 +274,7 @@ static inline void set_dacr(unsigned int
>>>>>> val)
>>>>>>
>>>>>>   /* options available for data cache on each page */
>>>>>>   enum dcache_option {
>>>>>> -       DCACHE_OFF = TTB_SECT_DOMAIN(0) | TTB_SECT_XN_MASK |
>>>>>> TTB_SECT,
>>>>>> +       DCACHE_OFF = TTB_SECT_S_MASK | TTB_SECT_DOMAIN(0) |
>>>>>> TTB_SECT_XN_MASK | TTB_SECT,
>>>>>>          DCACHE_WRITETHROUGH = DCACHE_OFF | TTB_SECT_C_MASK,
>>>>>>          DCACHE_WRITEBACK = DCACHE_WRITETHROUGH |
>>>>>> TTB_SECT_B_MASK,
>>>>>>          DCACHE_WRITEALLOC = DCACHE_WRITEBACK |
>>>>>> TTB_SECT_TEX(1),
>>>>>>
>>>>>
>>>>> Yes, this patch fixes USB with dcache left on.
>>>>
>>>> Except that it doesn't fix anything, it just makes the system
>>>> slower
>>>> by
>>>> setting the S bit :-/ So this is not a fix :-(
>>>
>>> Sorry for away for a while as busy with some critical issues.
>>>
>>> Finally relooking back on this. I notice that with SanDisk Cruzer
>>> Blade
>>> pendrive, U-Boot 2013.01.01 can detect it while latest cannot. The
>>> dcache disablement at latest U-Boot doesn't help.
>>>
>>> With that, I compared a bunch of registers from clocks, sysmgr,
>>> SCTLR,
>>> ATCLR and USB1 too. I noticed they are similar except the
>>> usb1.globgrp.gusbcfg.ulpiextvbusdrv. The latest U-Boot is
>>> indicating
>>> external supply (address 0xffb4000c return value 0x00101710) while
>>> working 2013.01.01 indicating internal charge pump (return value
>>> 0x00001710)
>>>
>>> Wonder you guys are seeing the same too? Will dig more about this.
>>> FYI,
>>> I tried to add lot of delay within dwc2.c but doesn't help at all.
>>>
>>
>> While modifying the USB power control of the code, I noticed the
>> patch
>> made by Dinh is not there. Just realize the git clone through http
>> from
>> main git doesn't work. I was able to clone but getting older version.
>>
>> With getting the latest code, all my pendrive now can works with
>> dcache
>> off. Its easier now as I can get consistent behaviour compared
>> previously. With that, dcache investigation for tomorrow then
>>
>> Thanks
>> Chin Liang
>>
>
> Spent more time on the dcache + USB issue today. Narrow down to below
> patch which can make all my USB pendrives work with dcache enabled. But
> still need to understand further as not in depth familiar with dwc2.
> Probably this might ring a bell to you guys?
>
>
> diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
> index b2f4bc6..b11d8d7 100644
> --- a/drivers/usb/host/dwc2.c
> +++ b/drivers/usb/host/dwc2.c
> @@ -776,6 +776,7 @@ static int transfer_chunk(struct dwc2_hc_regs
> *hc_regs, void *aligned_buffer,
>                 (num_packets << DWC2_HCTSIZ_PKTCNT_OFFSET) |
>                 (*pid << DWC2_HCTSIZ_PID_OFFSET),
>                 &hc_regs->hctsiz);
> +       udelay(2);
>
>          if (!in && xfer_len) {
>                  memcpy(aligned_buffer, buffer, xfer_len);

I can't really comment on the USB problem, as I've only seen this
d-cache / S-bit problem with SPI NOR flash. This is because I've never
really used USB on this platform intensively. But I'm nearly 100%
sure, that all changes that add some delays (or debug printfs)
resulting in a "working solution", either in the USB case or the SPI
NOR case, are just papering over the real problem.

Thanks,
Stefan

  reply	other threads:[~2016-03-23 15:37 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-17 21:54 [U-Boot] Newbie SPL question for socfpga_sockit George Broz
2016-02-18  2:45 ` Phil Reid
2016-03-02  2:40   ` George Broz
2016-03-02  3:49     ` Phil Reid
2016-03-03  6:49       ` George Broz
2016-03-03  7:11         ` Phil Reid
2016-03-03 14:57           ` George Broz
2016-03-09  1:42             ` Phil Reid
2016-03-09 10:55               ` Marek Vasut
2016-03-09 16:06                 ` George Broz
2016-03-16  1:29                   ` George Broz
2016-03-16 16:17                     ` George Broz
2016-03-17  1:35                       ` Marek Vasut
2016-03-18 18:59                         ` George Broz
2016-03-18 19:32                           ` Marek Vasut
2016-03-18 21:22                             ` George Broz
2016-03-19 11:10                               ` Phil Reid
2016-03-20 16:44                                 ` Marek Vasut
2016-03-20 16:49                               ` Marek Vasut
2016-03-29  1:56                                 ` George Broz
2016-03-29 17:46                                   ` Marek Vasut
2016-03-20 15:55                         ` Dinh Nguyen
2016-03-20 16:42                           ` Marek Vasut
2016-03-22 17:06                             ` Dinh Nguyen
2016-03-26 20:52                               ` Marek Vasut
2016-04-05  8:33                                 ` Phil Reid
2016-04-05 22:03                                   ` Marek Vasut
2016-04-06  0:31                                     ` George Broz
2016-04-06  0:45                                       ` Marek Vasut
2016-04-06  1:17                                         ` George Broz
2016-04-06 10:43                                           ` Marek Vasut
2016-04-07  1:42                                             ` George Broz
2016-04-07  2:05                                               ` Marek Vasut
2016-04-07 13:14                                                 ` George Broz
2016-04-07 20:39                                                   ` Marek Vasut
2016-04-07 23:31                                                     ` George Broz
2016-04-07 23:36                                                       ` Marek Vasut
2016-04-07 23:51                                                         ` George Broz
2016-04-08  5:16                                                           ` Stefan Roese
2016-04-08 12:36                                                             ` Marek Vasut
2016-04-08 22:40                                                               ` George Broz
2016-04-10 17:47                                                                 ` Marek Vasut
2016-04-11  2:03                                                                   ` George Broz
2016-04-11 14:02                                                                     ` Marek Vasut
2016-04-12 15:53                                                       ` Dinh Nguyen
2016-04-12 16:00                                                         ` Marek Vasut
2016-04-12 16:08                                                           ` Dinh Nguyen
2016-04-12 16:11                                                             ` Marek Vasut
2016-04-13  9:25                                                               ` Chin Liang See
2016-04-12 16:09                                                           ` Stefan Roese
2016-04-13 11:09                                                             ` Marek Vasut
2016-04-06  7:00                                     ` Phil Reid
2016-04-06 11:51                                       ` Marek Vasut
2016-04-06 15:04                                         ` Phil Reid
2016-04-06 20:38                                           ` Marek Vasut
2016-03-29  1:44                           ` George Broz
2016-03-29 17:45                             ` Marek Vasut
2016-03-03 21:16           ` George Broz
2016-03-02 22:54     ` Dinh Nguyen
2016-03-02 23:04       ` Marek Vasut
2016-03-02 23:08       ` Dinh Nguyen
2016-03-02 23:24         ` Marek Vasut
2016-03-03 14:48           ` Dinh Nguyen
2016-03-03 14:51             ` Marek Vasut
2016-03-03 22:00               ` George Broz
2016-03-03 22:09                 ` Marek Vasut
     [not found]                   ` <CAMcKmiG8OMmbZ262n8gL7eM=WAgaakaZ5rWzCC1vYu7yzGBYAA@mail.gmail.com>
     [not found]                     ` <56D8BDD7.8070604@denx.de>
     [not found]                       ` <CAMcKmiGrZ94sZKY85Y3aC1_fwgV8oJeAJ0O71bY=gMxUGBp=FQ@mail.gmail.com>
     [not found]                         ` <56D8C3A0.9020204@denx.de>
2016-03-03 23:46                           ` George Broz
2016-03-04 16:52                   ` Dinh Nguyen
2016-03-04 16:06           ` Dinh Nguyen
2016-03-04 19:03             ` Marek Vasut
2016-03-21 14:05               ` Chin Liang See
2016-03-21 15:45                 ` Chin Liang See
2016-03-23 15:00                   ` Chin Liang See
2016-03-23 15:37                     ` Stefan Roese [this message]
2016-04-06 16:35                       ` [U-Boot] SoCFPGA cache / S-bit problem - was " Dinh Nguyen
2016-04-06 16:46                         ` Marek Vasut
2016-04-06 16:51                           ` Dinh Nguyen
2016-03-03  6:55       ` [U-Boot] " George Broz
2016-03-03  9:48         ` Marek Vasut

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=56F2B852.3090507@denx.de \
    --to=sr@denx.de \
    --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