From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [v2 2/6] spi: cadence_qspi: remove sram polling from flash read
Date: Fri, 14 Aug 2015 01:46:39 +0200 [thread overview]
Message-ID: <201508140146.39891.marex@denx.de> (raw)
In-Reply-To: <55CD25E3.8030008@st.com>
On Friday, August 14, 2015 at 01:18:59 AM, vikas wrote:
> Hi Marek,
Hi!
> On 08/13/2015 03:47 PM, Marek Vasut wrote:
> > On Thursday, August 13, 2015 at 11:04:59 PM, vikas wrote:
> >> Hi Marek,
> >
> > Hi!
> >
> >> On 08/13/2015 01:35 PM, Marek Vasut wrote:
> >>> On Thursday, August 13, 2015 at 09:49:49 PM, vikas wrote:
> >>>
> >>> Hi!
> >>>
> >>>>>> On 08/12/2015 07:09 PM, Marek Vasut wrote:
> >>>>>>> On Thursday, July 16, 2015 at 04:27:30 AM, Vikas Manocha wrote:
> >>>>>>>> There is no need to check for sram fill level. If sram is empty,
> >>>>>>>> cpu will go in the wait state till the time data is available
> >>>>>>>> from flash.
> >>>>>>>
> >>>>>>> Consider the following scenario:
> >>>>>>> - CPU core reads some memory area, but there are no data available
> >>>>>>> just yet
> >>>>>>>
> >>>>>>> => CPU core goes into wait state
> >>>>>>>
> >>>>>>> - The data never arrive
> >>>>>>>
> >>>>>>> Will the CPU be stuck forever ? If we checked the fill level first
> >>>>>>> instead, we would never enter such stuck-state.
> >>>>>>
> >>>>>> This indirect mode of reading/writing would be entered when the
> >>>>>> read/write addresses are in the programmed valid range of addresses.
> >>>>>>
> >>>>>> Even in case of "data never arrive" scenario, a simple timeout seems
> >>>>>> better then currently implemented read sram level with timeout.
> >>>>>
> >>>>> How do you implement a "simple timeout" if the CPU core is stuck and
> >>>>> does not execute instructions ? If you mean interrupt, then forget
> >>>>> it, U-Boot does not do interrupts ;-)
> >>>>
> >>>> Oh yes, you are right.
> >>>
> >>> So shall we keep the SRAM piece ?
> >>
> >> Although in this case the better solution would be to have watermark
> >> interrupt/status check based on sram fill level, let us keep the
> >> existing piece of SRAM.
> >
> > Good.
> >
> >> Can we make it configurable (SRAM Level test or not) like from DT or
> >> #define ?
> >
> > How would you call such an option ? Something like CONFIG_SYS_YOLO (to
> > indicate that life is too short to use correct, but slower code) ? :-)
> >
> > I don't want to have two different codepaths in the codebase, one of
> > which is buggy. So no, I disagree we should add this option. I also
> > don't think it would be such a performance improvement, so I only see
> > downsides in such a code.
>
> I expected the same answer :-) & agree also.
Heh, thanks :-)
> ok, the issue is SRAM Fill Level register is not being updated on my SOC,
> seems like design issue. Any idea how can i add this fix (to avoid sram
> level polling) to my soc in u-boot mainline.
Mask all interrupts in the controller, set watermark to N bytes (depending
on the length of your transfer) and poll the interrupt status register until
the watermark is reached ? Is this possible ?
next prev parent reply other threads:[~2015-08-13 23:46 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-16 2:27 [U-Boot] [v2 0/6] spi: cadence_qspi: optimize & fix indirect rd-writes Vikas Manocha
2015-07-16 2:27 ` [U-Boot] [v2 1/6] spi: cadence_qspi: move trigger base configuration in init Vikas Manocha
2015-08-13 2:07 ` Marek Vasut
2015-08-13 15:50 ` vikasm
2015-08-13 17:35 ` Marek Vasut
2015-08-13 19:05 ` vikasm
2015-08-14 1:24 ` vikas
2015-08-14 1:43 ` Marek Vasut
2015-08-14 1:44 ` vikas
2015-08-14 1:55 ` Marek Vasut
2015-07-16 2:27 ` [U-Boot] [v2 2/6] spi: cadence_qspi: remove sram polling from flash read Vikas Manocha
2015-08-13 2:09 ` Marek Vasut
2015-08-13 16:27 ` vikasm
2015-08-13 17:33 ` Marek Vasut
2015-08-13 19:49 ` vikas
2015-08-13 20:35 ` Marek Vasut
2015-08-13 21:04 ` vikas
2015-08-13 22:47 ` Marek Vasut
2015-08-13 23:18 ` vikas
2015-08-13 23:46 ` Marek Vasut [this message]
2015-08-14 0:26 ` vikas
2015-08-14 0:44 ` Marek Vasut
2015-08-14 0:46 ` vikas
2015-08-14 1:03 ` Marek Vasut
2015-08-14 1:05 ` vikas
2015-08-14 3:54 ` Marek Vasut
2015-07-16 2:27 ` [U-Boot] [v2 3/6] spi: cadence_qspi: remove sram polling from flash write Vikas Manocha
2015-08-13 2:11 ` Marek Vasut
2015-08-13 16:30 ` vikasm
2015-08-13 17:34 ` Marek Vasut
2015-07-16 2:27 ` [U-Boot] [v2 4/6] spi: cadence_qspi: fix indirect read/write start address Vikas Manocha
2015-07-16 2:27 ` [U-Boot] [v2 5/6] spi: cadence_qspi: fix base trigger address & transfer " Vikas Manocha
2015-08-13 2:15 ` Marek Vasut
2015-08-13 16:42 ` vikasm
2015-08-13 21:36 ` vikas
2015-08-13 22:48 ` Marek Vasut
2015-08-14 0:37 ` vikas
2015-08-14 1:04 ` Marek Vasut
2015-08-14 1:39 ` vikas
2015-08-14 1:56 ` Marek Vasut
2015-08-14 2:14 ` Vikas MANOCHA
2015-07-16 2:27 ` [U-Boot] [v2 6/6] spi: cadence_qspi: get fifo width from device tree Vikas Manocha
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=201508140146.39891.marex@denx.de \
--to=marex@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