All of lore.kernel.org
 help / color / mirror / Atom feed
* SDHC Read Performance
@ 2011-01-19  0:09 ` Simon Horman
  0 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-19  0:09 UTC (permalink / raw)
  To: linux-mmc, linux-sh; +Cc: Arnd Hannemann, Guennadi Liakhovetski

Hi,

I am currently interested in the read performance of the SDHI driver.  I
ran the following tests on a Mackerel board using Linus's latest tree
(6845a44a), which I believe has all of the outstanding patches from Arnd
and Guennadi merged.

I have made the following crude performance measurements using
several different cards.

dd if=/dev/mmcblk1 of=/dev/null bsQ2 count\x100000

SD1.1:		7.0 MB/s
SD2.0:		7.0 MB/s
SDHC Class 2:	7.1 MB/s
SDHC Class 10:	7.2 MB/s

Whereas I would expect something like:

SD1.1 card:	12 MB/s
SD2.0 card:	24 MB/s
SDHC Class 2:	24 MB/s
SDHC Class 10:	Faster?

Possibly relevant portions of my .config are:

CONFIG_MFD_SH_MOBILE_SDHI=y
CONFIG_TMIO_MMC_DMA=y
CONFIG_MMC_TMIO=y


Arnd, Guennadi, I believe that you have been working on SDHI recently.
If you have any suggestions I would be most grateful. Else I will
poke some more and see what I can come up with.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* SDHC Read Performance
@ 2011-01-19  0:09 ` Simon Horman
  0 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-19  0:09 UTC (permalink / raw)
  To: linux-mmc, linux-sh; +Cc: Arnd Hannemann, Guennadi Liakhovetski

Hi,

I am currently interested in the read performance of the SDHI driver.  I
ran the following tests on a Mackerel board using Linus's latest tree
(6845a44a), which I believe has all of the outstanding patches from Arnd
and Guennadi merged.

I have made the following crude performance measurements using
several different cards.

dd if=/dev/mmcblk1 of=/dev/null bs=512 count=100000

SD1.1:		7.0 MB/s
SD2.0:		7.0 MB/s
SDHC Class 2:	7.1 MB/s
SDHC Class 10:	7.2 MB/s

Whereas I would expect something like:

SD1.1 card:	12 MB/s
SD2.0 card:	24 MB/s
SDHC Class 2:	24 MB/s
SDHC Class 10:	Faster?

Possibly relevant portions of my .config are:

CONFIG_MFD_SH_MOBILE_SDHI=y
CONFIG_TMIO_MMC_DMA=y
CONFIG_MMC_TMIO=y


Arnd, Guennadi, I believe that you have been working on SDHI recently.
If you have any suggestions I would be most grateful. Else I will
poke some more and see what I can come up with.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-19  0:09 ` Simon Horman
@ 2011-01-19  3:14   ` Magnus Damm
  -1 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-19  3:14 UTC (permalink / raw)
  To: Simon Horman; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

Hi Simon,

On Wed, Jan 19, 2011 at 9:09 AM, Simon Horman <horms@verge.net.au> wrote:
> Hi,
>
> I am currently interested in the read performance of the SDHI driver.  I
> ran the following tests on a Mackerel board using Linus's latest tree
> (6845a44a), which I believe has all of the outstanding patches from Arnd
> and Guennadi merged.

Nice, thanks for testing this.

> I have made the following crude performance measurements using
> several different cards.
>
> dd if=/dev/mmcblk1 of=/dev/null bsQ2 count\x100000
>
> SD1.1:          7.0 MB/s
> SD2.0:          7.0 MB/s
> SDHC Class 2:   7.1 MB/s
> SDHC Class 10:  7.2 MB/s
>
> Whereas I would expect something like:
>
> SD1.1 card:     12 MB/s
> SD2.0 card:     24 MB/s
> SDHC Class 2:   24 MB/s
> SDHC Class 10:  Faster?

Please have a look at the clock frequency set by the SDHI MFD driver
(hclk), together with the tmio-mmc settings in tmio_mmc_set_clock().
For the clock to be bumped up properly some capability/feature flags
may be needed:

MMC_CAP_MMC_HIGHSPEED
MMC_CAP_SD_HIGHSPEED

Not sure if they are set properly. Probably not.

> Possibly relevant portions of my .config are:
>
> CONFIG_MFD_SH_MOBILE_SDHI=y
> CONFIG_TMIO_MMC_DMA=y
> CONFIG_MMC_TMIO=y

These two are also relevant:

CONFIG_SH_DMAE=y
CONFIG_DMA_ENGINE=y

DMA controller platform data is also needed, not sure the state of
your board. You can check out the counters in /proc/interrupts to see
if the DMA controller is active or not.

Cheers,

/ magnus

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-19  3:14   ` Magnus Damm
  0 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-19  3:14 UTC (permalink / raw)
  To: Simon Horman; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

Hi Simon,

On Wed, Jan 19, 2011 at 9:09 AM, Simon Horman <horms@verge.net.au> wrote:
> Hi,
>
> I am currently interested in the read performance of the SDHI driver.  I
> ran the following tests on a Mackerel board using Linus's latest tree
> (6845a44a), which I believe has all of the outstanding patches from Arnd
> and Guennadi merged.

Nice, thanks for testing this.

> I have made the following crude performance measurements using
> several different cards.
>
> dd if=/dev/mmcblk1 of=/dev/null bs=512 count=100000
>
> SD1.1:          7.0 MB/s
> SD2.0:          7.0 MB/s
> SDHC Class 2:   7.1 MB/s
> SDHC Class 10:  7.2 MB/s
>
> Whereas I would expect something like:
>
> SD1.1 card:     12 MB/s
> SD2.0 card:     24 MB/s
> SDHC Class 2:   24 MB/s
> SDHC Class 10:  Faster?

Please have a look at the clock frequency set by the SDHI MFD driver
(hclk), together with the tmio-mmc settings in tmio_mmc_set_clock().
For the clock to be bumped up properly some capability/feature flags
may be needed:

MMC_CAP_MMC_HIGHSPEED
MMC_CAP_SD_HIGHSPEED

Not sure if they are set properly. Probably not.

> Possibly relevant portions of my .config are:
>
> CONFIG_MFD_SH_MOBILE_SDHI=y
> CONFIG_TMIO_MMC_DMA=y
> CONFIG_MMC_TMIO=y

These two are also relevant:

CONFIG_SH_DMAE=y
CONFIG_DMA_ENGINE=y

DMA controller platform data is also needed, not sure the state of
your board. You can check out the counters in /proc/interrupts to see
if the DMA controller is active or not.

Cheers,

/ magnus

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-19  3:14   ` Magnus Damm
@ 2011-01-19  8:05     ` Simon Horman
  -1 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-19  8:05 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Wed, Jan 19, 2011 at 12:14:40PM +0900, Magnus Damm wrote:
> Hi Simon,
> 
> On Wed, Jan 19, 2011 at 9:09 AM, Simon Horman <horms@verge.net.au> wrote:
> > Hi,
> >
> > I am currently interested in the read performance of the SDHI driver.  I
> > ran the following tests on a Mackerel board using Linus's latest tree
> > (6845a44a), which I believe has all of the outstanding patches from Arnd
> > and Guennadi merged.
> 
> Nice, thanks for testing this.
> 
> > I have made the following crude performance measurements using
> > several different cards.
> >
> > dd if=/dev/mmcblk1 of=/dev/null bsQ2 count\x100000
> >
> > SD1.1:          7.0 MB/s
> > SD2.0:          7.0 MB/s
> > SDHC Class 2:   7.1 MB/s
> > SDHC Class 10:  7.2 MB/s
> >
> > Whereas I would expect something like:
> >
> > SD1.1 card:     12 MB/s
> > SD2.0 card:     24 MB/s
> > SDHC Class 2:   24 MB/s
> > SDHC Class 10:  Faster?
> 
> Please have a look at the clock frequency set by the SDHI MFD driver
> (hclk), together with the tmio-mmc settings in tmio_mmc_set_clock().
> For the clock to be bumped up properly some capability/feature flags
> may be needed:
> 
> MMC_CAP_MMC_HIGHSPEED
> MMC_CAP_SD_HIGHSPEED
> 
> Not sure if they are set properly. Probably not.

Actually this is one thing that I did check, sorry for not mentioning it.
The clock does seem to be set correctly, to 50Mhz for the high-speed case,
which iirc is everything except SD1.1.

> > Possibly relevant portions of my .config are:
> >
> > CONFIG_MFD_SH_MOBILE_SDHI=y
> > CONFIG_TMIO_MMC_DMA=y
> > CONFIG_MMC_TMIO=y
> 
> These two are also relevant:
> 
> CONFIG_SH_DMAE=y
> CONFIG_DMA_ENGINE=y
> 
> DMA controller platform data is also needed, not sure the state of
> your board. You can check out the counters in /proc/interrupts to see
> if the DMA controller is active or not.

Thanks!

I have CONFIG_DMA_ENGINE but not CONFIG_SH_DMAE.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-19  8:05     ` Simon Horman
  0 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-19  8:05 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Wed, Jan 19, 2011 at 12:14:40PM +0900, Magnus Damm wrote:
> Hi Simon,
> 
> On Wed, Jan 19, 2011 at 9:09 AM, Simon Horman <horms@verge.net.au> wrote:
> > Hi,
> >
> > I am currently interested in the read performance of the SDHI driver.  I
> > ran the following tests on a Mackerel board using Linus's latest tree
> > (6845a44a), which I believe has all of the outstanding patches from Arnd
> > and Guennadi merged.
> 
> Nice, thanks for testing this.
> 
> > I have made the following crude performance measurements using
> > several different cards.
> >
> > dd if=/dev/mmcblk1 of=/dev/null bs=512 count=100000
> >
> > SD1.1:          7.0 MB/s
> > SD2.0:          7.0 MB/s
> > SDHC Class 2:   7.1 MB/s
> > SDHC Class 10:  7.2 MB/s
> >
> > Whereas I would expect something like:
> >
> > SD1.1 card:     12 MB/s
> > SD2.0 card:     24 MB/s
> > SDHC Class 2:   24 MB/s
> > SDHC Class 10:  Faster?
> 
> Please have a look at the clock frequency set by the SDHI MFD driver
> (hclk), together with the tmio-mmc settings in tmio_mmc_set_clock().
> For the clock to be bumped up properly some capability/feature flags
> may be needed:
> 
> MMC_CAP_MMC_HIGHSPEED
> MMC_CAP_SD_HIGHSPEED
> 
> Not sure if they are set properly. Probably not.

Actually this is one thing that I did check, sorry for not mentioning it.
The clock does seem to be set correctly, to 50Mhz for the high-speed case,
which iirc is everything except SD1.1.

> > Possibly relevant portions of my .config are:
> >
> > CONFIG_MFD_SH_MOBILE_SDHI=y
> > CONFIG_TMIO_MMC_DMA=y
> > CONFIG_MMC_TMIO=y
> 
> These two are also relevant:
> 
> CONFIG_SH_DMAE=y
> CONFIG_DMA_ENGINE=y
> 
> DMA controller platform data is also needed, not sure the state of
> your board. You can check out the counters in /proc/interrupts to see
> if the DMA controller is active or not.

Thanks!

I have CONFIG_DMA_ENGINE but not CONFIG_SH_DMAE.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-19  8:05     ` Simon Horman
@ 2011-01-20  3:30       ` Simon Horman
  -1 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-20  3:30 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Wed, Jan 19, 2011 at 05:05:49PM +0900, Simon Horman wrote:
> On Wed, Jan 19, 2011 at 12:14:40PM +0900, Magnus Damm wrote:
> > Hi Simon,
> > 
> > On Wed, Jan 19, 2011 at 9:09 AM, Simon Horman <horms@verge.net.au> wrote:
> > > Hi,
> > >
> > > I am currently interested in the read performance of the SDHI driver.  I
> > > ran the following tests on a Mackerel board using Linus's latest tree
> > > (6845a44a), which I believe has all of the outstanding patches from Arnd
> > > and Guennadi merged.
> > 
> > Nice, thanks for testing this.
> > 
> > > I have made the following crude performance measurements using
> > > several different cards.
> > >
> > > dd if=/dev/mmcblk1 of=/dev/null bsQ2 count\x100000
> > >
> > > SD1.1:          7.0 MB/s
> > > SD2.0:          7.0 MB/s
> > > SDHC Class 2:   7.1 MB/s
> > > SDHC Class 10:  7.2 MB/s
> > >
> > > Whereas I would expect something like:
> > >
> > > SD1.1 card:     12 MB/s
> > > SD2.0 card:     24 MB/s
> > > SDHC Class 2:   24 MB/s
> > > SDHC Class 10:  Faster?
> > 
> > Please have a look at the clock frequency set by the SDHI MFD driver
> > (hclk), together with the tmio-mmc settings in tmio_mmc_set_clock().
> > For the clock to be bumped up properly some capability/feature flags
> > may be needed:
> > 
> > MMC_CAP_MMC_HIGHSPEED
> > MMC_CAP_SD_HIGHSPEED
> > 
> > Not sure if they are set properly. Probably not.
> 
> Actually this is one thing that I did check, sorry for not mentioning it.
> The clock does seem to be set correctly, to 50Mhz for the high-speed case,
> which iirc is everything except SD1.1.
> 
> > > Possibly relevant portions of my .config are:
> > >
> > > CONFIG_MFD_SH_MOBILE_SDHI=y
> > > CONFIG_TMIO_MMC_DMA=y
> > > CONFIG_MMC_TMIO=y
> > 
> > These two are also relevant:
> > 
> > CONFIG_SH_DMAE=y
> > CONFIG_DMA_ENGINE=y
> > 
> > DMA controller platform data is also needed, not sure the state of
> > your board. You can check out the counters in /proc/interrupts to see
> > if the DMA controller is active or not.
> {
> Thanks!
> 
> I have CONFIG_DMA_ENGINE but not CONFIG_SH_DMAE.

I ran my tests again with CONFIG_SH_DMAE (and CONFIG_DMA_ENGINE)
enabled and the results are substantially better. Although
the results are still below the theoretical speeds of the cards.

Read Speed - SHDI
SD1.1:		 9.9 MB/s
SD2.0:		17.2 MB/s
SDHC Class 2:	17.0 MB/s
SDHC Class 10:	17.2 MB/s
MMC4.0:		 8.6 MB/s   <-- Clocked down to 12Mhz due to driver limitations

I also tested the Write Speed
SD1.1:		 2.4 MB/s   <-- Faster than expected
SD2.0:		 2.8 MB/s   <-- Faster than expected
SDHC Class 2:	 2.5 MB/s   <-- Faster than expected
SDHC Class 10:	 3.8 MB/s   <-- Slower than expected
MMC4.0:		 2.1 MB/s   <-- Clocked down to 12Mhz due to driver limitations

For reference I obtained the following results on my laptop,
which according to dmesg has a SAMSUNG MMCRE28G VBM1 PQ.

Read
SD1.1:		10.0 MB/s
SD2.0:		19.2 MB/s
SDHC Class 2:	19.4 MB/s
SDHC Class10:	17.9 MB/s  <---- What!!!?
MMC4.0:		 8.2 MB/s

Write
SD1.1:		 2.7 MB/s
SD2.0:		 3.4 MB/s
SDHC Class 2:	 3.1 MB/s
SDHC Class10:	 3.8 MB/s  <---- What!!!?
MMC4.0:		 2.0 MB/s

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-20  3:30       ` Simon Horman
  0 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-20  3:30 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Wed, Jan 19, 2011 at 05:05:49PM +0900, Simon Horman wrote:
> On Wed, Jan 19, 2011 at 12:14:40PM +0900, Magnus Damm wrote:
> > Hi Simon,
> > 
> > On Wed, Jan 19, 2011 at 9:09 AM, Simon Horman <horms@verge.net.au> wrote:
> > > Hi,
> > >
> > > I am currently interested in the read performance of the SDHI driver.  I
> > > ran the following tests on a Mackerel board using Linus's latest tree
> > > (6845a44a), which I believe has all of the outstanding patches from Arnd
> > > and Guennadi merged.
> > 
> > Nice, thanks for testing this.
> > 
> > > I have made the following crude performance measurements using
> > > several different cards.
> > >
> > > dd if=/dev/mmcblk1 of=/dev/null bs=512 count=100000
> > >
> > > SD1.1:          7.0 MB/s
> > > SD2.0:          7.0 MB/s
> > > SDHC Class 2:   7.1 MB/s
> > > SDHC Class 10:  7.2 MB/s
> > >
> > > Whereas I would expect something like:
> > >
> > > SD1.1 card:     12 MB/s
> > > SD2.0 card:     24 MB/s
> > > SDHC Class 2:   24 MB/s
> > > SDHC Class 10:  Faster?
> > 
> > Please have a look at the clock frequency set by the SDHI MFD driver
> > (hclk), together with the tmio-mmc settings in tmio_mmc_set_clock().
> > For the clock to be bumped up properly some capability/feature flags
> > may be needed:
> > 
> > MMC_CAP_MMC_HIGHSPEED
> > MMC_CAP_SD_HIGHSPEED
> > 
> > Not sure if they are set properly. Probably not.
> 
> Actually this is one thing that I did check, sorry for not mentioning it.
> The clock does seem to be set correctly, to 50Mhz for the high-speed case,
> which iirc is everything except SD1.1.
> 
> > > Possibly relevant portions of my .config are:
> > >
> > > CONFIG_MFD_SH_MOBILE_SDHI=y
> > > CONFIG_TMIO_MMC_DMA=y
> > > CONFIG_MMC_TMIO=y
> > 
> > These two are also relevant:
> > 
> > CONFIG_SH_DMAE=y
> > CONFIG_DMA_ENGINE=y
> > 
> > DMA controller platform data is also needed, not sure the state of
> > your board. You can check out the counters in /proc/interrupts to see
> > if the DMA controller is active or not.
> {
> Thanks!
> 
> I have CONFIG_DMA_ENGINE but not CONFIG_SH_DMAE.

I ran my tests again with CONFIG_SH_DMAE (and CONFIG_DMA_ENGINE)
enabled and the results are substantially better. Although
the results are still below the theoretical speeds of the cards.

Read Speed - SHDI
SD1.1:		 9.9 MB/s
SD2.0:		17.2 MB/s
SDHC Class 2:	17.0 MB/s
SDHC Class 10:	17.2 MB/s
MMC4.0:		 8.6 MB/s   <-- Clocked down to 12Mhz due to driver limitations

I also tested the Write Speed
SD1.1:		 2.4 MB/s   <-- Faster than expected
SD2.0:		 2.8 MB/s   <-- Faster than expected
SDHC Class 2:	 2.5 MB/s   <-- Faster than expected
SDHC Class 10:	 3.8 MB/s   <-- Slower than expected
MMC4.0:		 2.1 MB/s   <-- Clocked down to 12Mhz due to driver limitations

For reference I obtained the following results on my laptop,
which according to dmesg has a SAMSUNG MMCRE28G VBM1 PQ.

Read
SD1.1:		10.0 MB/s
SD2.0:		19.2 MB/s
SDHC Class 2:	19.4 MB/s
SDHC Class10:	17.9 MB/s  <---- What!!!?
MMC4.0:		 8.2 MB/s

Write
SD1.1:		 2.7 MB/s
SD2.0:		 3.4 MB/s
SDHC Class 2:	 3.1 MB/s
SDHC Class10:	 3.8 MB/s  <---- What!!!?
MMC4.0:		 2.0 MB/s

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-20  3:30       ` Simon Horman
@ 2011-01-20  4:01         ` Magnus Damm
  -1 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-20  4:01 UTC (permalink / raw)
  To: Simon Horman; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 12:30 PM, Simon Horman <horms@verge.net.au> wrote:
> I ran my tests again with CONFIG_SH_DMAE (and CONFIG_DMA_ENGINE)
> enabled and the results are substantially better. Although
> the results are still below the theoretical speeds of the cards.
>
> Read Speed - SHDI
> SD1.1:           9.9 MB/s
> SD2.0:          17.2 MB/s
> SDHC Class 2:   17.0 MB/s
> SDHC Class 10:  17.2 MB/s
> MMC4.0:          8.6 MB/s   <-- Clocked down to 12Mhz due to driver limitations
>
> I also tested the Write Speed
> SD1.1:           2.4 MB/s   <-- Faster than expected
> SD2.0:           2.8 MB/s   <-- Faster than expected
> SDHC Class 2:    2.5 MB/s   <-- Faster than expected
> SDHC Class 10:   3.8 MB/s   <-- Slower than expected
> MMC4.0:          2.1 MB/s   <-- Clocked down to 12Mhz due to driver limitations
>
> For reference I obtained the following results on my laptop,
> which according to dmesg has a SAMSUNG MMCRE28G VBM1 PQ.
>
> Read
> SD1.1:          10.0 MB/s
> SD2.0:          19.2 MB/s
> SDHC Class 2:   19.4 MB/s
> SDHC Class10:   17.9 MB/s  <---- What!!!?
> MMC4.0:          8.2 MB/s
>
> Write
> SD1.1:           2.7 MB/s
> SD2.0:           3.4 MB/s
> SDHC Class 2:    3.1 MB/s
> SDHC Class10:    3.8 MB/s  <---- What!!!?
> MMC4.0:          2.0 MB/s

Interesting, thanks for running these tests. Two things cross my mind:

1) Can you try a different SDHC Class 10 card? I'd just simply buy a
top-of-the-line SanDisk card myself and try that, but anything
different from what you're having is probably useful as a contrast.

2) How about the MMC4.0 down-clocking. Is there anything we can do
about that software-wise?

Cheers,

/ magnus

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-20  4:01         ` Magnus Damm
  0 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-20  4:01 UTC (permalink / raw)
  To: Simon Horman; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 12:30 PM, Simon Horman <horms@verge.net.au> wrote:
> I ran my tests again with CONFIG_SH_DMAE (and CONFIG_DMA_ENGINE)
> enabled and the results are substantially better. Although
> the results are still below the theoretical speeds of the cards.
>
> Read Speed - SHDI
> SD1.1:           9.9 MB/s
> SD2.0:          17.2 MB/s
> SDHC Class 2:   17.0 MB/s
> SDHC Class 10:  17.2 MB/s
> MMC4.0:          8.6 MB/s   <-- Clocked down to 12Mhz due to driver limitations
>
> I also tested the Write Speed
> SD1.1:           2.4 MB/s   <-- Faster than expected
> SD2.0:           2.8 MB/s   <-- Faster than expected
> SDHC Class 2:    2.5 MB/s   <-- Faster than expected
> SDHC Class 10:   3.8 MB/s   <-- Slower than expected
> MMC4.0:          2.1 MB/s   <-- Clocked down to 12Mhz due to driver limitations
>
> For reference I obtained the following results on my laptop,
> which according to dmesg has a SAMSUNG MMCRE28G VBM1 PQ.
>
> Read
> SD1.1:          10.0 MB/s
> SD2.0:          19.2 MB/s
> SDHC Class 2:   19.4 MB/s
> SDHC Class10:   17.9 MB/s  <---- What!!!?
> MMC4.0:          8.2 MB/s
>
> Write
> SD1.1:           2.7 MB/s
> SD2.0:           3.4 MB/s
> SDHC Class 2:    3.1 MB/s
> SDHC Class10:    3.8 MB/s  <---- What!!!?
> MMC4.0:          2.0 MB/s

Interesting, thanks for running these tests. Two things cross my mind:

1) Can you try a different SDHC Class 10 card? I'd just simply buy a
top-of-the-line SanDisk card myself and try that, but anything
different from what you're having is probably useful as a contrast.

2) How about the MMC4.0 down-clocking. Is there anything we can do
about that software-wise?

Cheers,

/ magnus

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-20  4:01         ` Magnus Damm
@ 2011-01-20  7:07           ` Simon Horman
  -1 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-20  7:07 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 01:01:04PM +0900, Magnus Damm wrote:
> 1) Can you try a different SDHC Class 10 card? I'd just simply buy a
> top-of-the-line SanDisk card myself and try that, but anything
> different from what you're having is probably useful as a contrast.

Sure, will do.

> 2) How about the MMC4.0 down-clocking. Is there anything we can do
> about that software-wise?

As I understand it, the problem is that the SDHI allows a simple
divisor to applied to a clock source. Effectively this means
that the driver may use use 12Mhz, 24Mhz and 50Mhz.

In the case of MMC the desired speed is 20Mhz, but the highest
value from the list above that the driver can use is 12Mhz.

As we discussed (offline) yesterday, it ought to be possible
to change the frequency of the clock source. And in the case of
the mackerel this can probably be done without disturbing anything
else as there are per SHDI clock sources.

I imagine it would be possible to manipulate the frequency
such that MMC can be run closer to 20Mhz than 12Mhz.

However, I am unsure if this would improve performance in any way.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-20  7:07           ` Simon Horman
  0 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-01-20  7:07 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 01:01:04PM +0900, Magnus Damm wrote:
> 1) Can you try a different SDHC Class 10 card? I'd just simply buy a
> top-of-the-line SanDisk card myself and try that, but anything
> different from what you're having is probably useful as a contrast.

Sure, will do.

> 2) How about the MMC4.0 down-clocking. Is there anything we can do
> about that software-wise?

As I understand it, the problem is that the SDHI allows a simple
divisor to applied to a clock source. Effectively this means
that the driver may use use 12Mhz, 24Mhz and 50Mhz.

In the case of MMC the desired speed is 20Mhz, but the highest
value from the list above that the driver can use is 12Mhz.

As we discussed (offline) yesterday, it ought to be possible
to change the frequency of the clock source. And in the case of
the mackerel this can probably be done without disturbing anything
else as there are per SHDI clock sources.

I imagine it would be possible to manipulate the frequency
such that MMC can be run closer to 20Mhz than 12Mhz.

However, I am unsure if this would improve performance in any way.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-20  7:07           ` Simon Horman
@ 2011-01-20  8:28             ` Magnus Damm
  -1 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-20  8:28 UTC (permalink / raw)
  To: Simon Horman; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 4:07 PM, Simon Horman <horms@verge.net.au> wrote:
> On Thu, Jan 20, 2011 at 01:01:04PM +0900, Magnus Damm wrote:
>> 1) Can you try a different SDHC Class 10 card? I'd just simply buy a
>> top-of-the-line SanDisk card myself and try that, but anything
>> different from what you're having is probably useful as a contrast.
>
> Sure, will do.

Thanks!

>> 2) How about the MMC4.0 down-clocking. Is there anything we can do
>> about that software-wise?
>
> As I understand it, the problem is that the SDHI allows a simple
> divisor to applied to a clock source. Effectively this means
> that the driver may use use 12Mhz, 24Mhz and 50Mhz.
>
> In the case of MMC the desired speed is 20Mhz, but the highest
> value from the list above that the driver can use is 12Mhz.

We could make use of the ->set_clk_div() callback and configure the
parent clock whenever that is possible.

> As we discussed (offline) yesterday, it ought to be possible
> to change the frequency of the clock source. And in the case of
> the mackerel this can probably be done without disturbing anything
> else as there are per SHDI clock sources.

Uhm, this is not entirely correct. The sh7372 used by Mackerel is in
this case similar to most older SH processors and shares a clock
between all SDHI hardware blocks. This clock is also shared with a
bunch of other peripherals, so we can't adjust it freely during
runtime.

The sh73a0 processor has per-SDHI block clock control.

> I imagine it would be possible to manipulate the frequency
> such that MMC can be run closer to 20Mhz than 12Mhz.
>
> However, I am unsure if this would improve performance in any way.

It most likely would. Perhaps it's worth adjusting the shared clock a
bit to support 20MHz?

Thanks,

/ magnus

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-20  8:28             ` Magnus Damm
  0 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-20  8:28 UTC (permalink / raw)
  To: Simon Horman; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 4:07 PM, Simon Horman <horms@verge.net.au> wrote:
> On Thu, Jan 20, 2011 at 01:01:04PM +0900, Magnus Damm wrote:
>> 1) Can you try a different SDHC Class 10 card? I'd just simply buy a
>> top-of-the-line SanDisk card myself and try that, but anything
>> different from what you're having is probably useful as a contrast.
>
> Sure, will do.

Thanks!

>> 2) How about the MMC4.0 down-clocking. Is there anything we can do
>> about that software-wise?
>
> As I understand it, the problem is that the SDHI allows a simple
> divisor to applied to a clock source. Effectively this means
> that the driver may use use 12Mhz, 24Mhz and 50Mhz.
>
> In the case of MMC the desired speed is 20Mhz, but the highest
> value from the list above that the driver can use is 12Mhz.

We could make use of the ->set_clk_div() callback and configure the
parent clock whenever that is possible.

> As we discussed (offline) yesterday, it ought to be possible
> to change the frequency of the clock source. And in the case of
> the mackerel this can probably be done without disturbing anything
> else as there are per SHDI clock sources.

Uhm, this is not entirely correct. The sh7372 used by Mackerel is in
this case similar to most older SH processors and shares a clock
between all SDHI hardware blocks. This clock is also shared with a
bunch of other peripherals, so we can't adjust it freely during
runtime.

The sh73a0 processor has per-SDHI block clock control.

> I imagine it would be possible to manipulate the frequency
> such that MMC can be run closer to 20Mhz than 12Mhz.
>
> However, I am unsure if this would improve performance in any way.

It most likely would. Perhaps it's worth adjusting the shared clock a
bit to support 20MHz?

Thanks,

/ magnus

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-20  8:28             ` Magnus Damm
@ 2011-01-20  8:38               ` Paul Mundt
  -1 siblings, 0 replies; 24+ messages in thread
From: Paul Mundt @ 2011-01-20  8:38 UTC (permalink / raw)
  To: Magnus Damm
  Cc: Simon Horman, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 05:28:55PM +0900, Magnus Damm wrote:
> On Thu, Jan 20, 2011 at 4:07 PM, Simon Horman <horms@verge.net.au> wrote:
> > As we discussed (offline) yesterday, it ought to be possible
> > to change the frequency of the clock source. And in the case of
> > the mackerel this can probably be done without disturbing anything
> > else as there are per SHDI clock sources.
> 
> Uhm, this is not entirely correct. The sh7372 used by Mackerel is in
> this case similar to most older SH processors and shares a clock
> between all SDHI hardware blocks. This clock is also shared with a
> bunch of other peripherals, so we can't adjust it freely during
> runtime.
> 
> The sh73a0 processor has per-SDHI block clock control.
> 
Or at least the driver would need to have some logic for attempting to
make the change and being rejected by the clock framework for the shared
clock case. It should be pretty trivial to make this behaviour
configurable anyways, given that the driver is largely impervious to the
clock refcount otherwise.

If the blocks in question are optionally capable of driving their own
clocks and exposing a wider range of frequencies, then that's something
that should be looked in to as well. For older blocks we're likely not
going to have a lot of flexibility with regards to the clock source,
though.

> > I imagine it would be possible to manipulate the frequency
> > such that MMC can be run closer to 20Mhz than 12Mhz.
> >
> > However, I am unsure if this would improve performance in any way.
> 
> It most likely would. Perhaps it's worth adjusting the shared clock a
> bit to support 20MHz?
> 
"Most likely" isn't a constructive performance metric. It's worth trying
out, and if it helps then of course it makes sense to try and support.
It's not really worth going through and adding in additional complexity
in order to support every possible frequency just becase we can, however.

It would also be good to see what's going on with class 2 and 10 here,
given that we still aren't seeing expected class 10 numbers, regardless
of frequency.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-20  8:38               ` Paul Mundt
  0 siblings, 0 replies; 24+ messages in thread
From: Paul Mundt @ 2011-01-20  8:38 UTC (permalink / raw)
  To: Magnus Damm
  Cc: Simon Horman, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 05:28:55PM +0900, Magnus Damm wrote:
> On Thu, Jan 20, 2011 at 4:07 PM, Simon Horman <horms@verge.net.au> wrote:
> > As we discussed (offline) yesterday, it ought to be possible
> > to change the frequency of the clock source. And in the case of
> > the mackerel this can probably be done without disturbing anything
> > else as there are per SHDI clock sources.
> 
> Uhm, this is not entirely correct. The sh7372 used by Mackerel is in
> this case similar to most older SH processors and shares a clock
> between all SDHI hardware blocks. This clock is also shared with a
> bunch of other peripherals, so we can't adjust it freely during
> runtime.
> 
> The sh73a0 processor has per-SDHI block clock control.
> 
Or at least the driver would need to have some logic for attempting to
make the change and being rejected by the clock framework for the shared
clock case. It should be pretty trivial to make this behaviour
configurable anyways, given that the driver is largely impervious to the
clock refcount otherwise.

If the blocks in question are optionally capable of driving their own
clocks and exposing a wider range of frequencies, then that's something
that should be looked in to as well. For older blocks we're likely not
going to have a lot of flexibility with regards to the clock source,
though.

> > I imagine it would be possible to manipulate the frequency
> > such that MMC can be run closer to 20Mhz than 12Mhz.
> >
> > However, I am unsure if this would improve performance in any way.
> 
> It most likely would. Perhaps it's worth adjusting the shared clock a
> bit to support 20MHz?
> 
"Most likely" isn't a constructive performance metric. It's worth trying
out, and if it helps then of course it makes sense to try and support.
It's not really worth going through and adding in additional complexity
in order to support every possible frequency just becase we can, however.

It would also be good to see what's going on with class 2 and 10 here,
given that we still aren't seeing expected class 10 numbers, regardless
of frequency.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-20  8:38               ` Paul Mundt
@ 2011-01-20  8:55                 ` Magnus Damm
  -1 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-20  8:55 UTC (permalink / raw)
  To: Paul Mundt
  Cc: Simon Horman, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 5:38 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> On Thu, Jan 20, 2011 at 05:28:55PM +0900, Magnus Damm wrote:
>> On Thu, Jan 20, 2011 at 4:07 PM, Simon Horman <horms@verge.net.au> wrote:
>> > I imagine it would be possible to manipulate the frequency
>> > such that MMC can be run closer to 20Mhz than 12Mhz.
>> >
>> > However, I am unsure if this would improve performance in any way.
>>
>> It most likely would. Perhaps it's worth adjusting the shared clock a
>> bit to support 20MHz?
>>
> "Most likely" isn't a constructive performance metric. It's worth trying
> out, and if it helps then of course it makes sense to try and support.
> It's not really worth going through and adding in additional complexity
> in order to support every possible frequency just becase we can, however.

Yes. Thanks for the "constructive performance metric". =)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-01-20  8:55                 ` Magnus Damm
  0 siblings, 0 replies; 24+ messages in thread
From: Magnus Damm @ 2011-01-20  8:55 UTC (permalink / raw)
  To: Paul Mundt
  Cc: Simon Horman, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Thu, Jan 20, 2011 at 5:38 PM, Paul Mundt <lethal@linux-sh.org> wrote:
> On Thu, Jan 20, 2011 at 05:28:55PM +0900, Magnus Damm wrote:
>> On Thu, Jan 20, 2011 at 4:07 PM, Simon Horman <horms@verge.net.au> wrote:
>> > I imagine it would be possible to manipulate the frequency
>> > such that MMC can be run closer to 20Mhz than 12Mhz.
>> >
>> > However, I am unsure if this would improve performance in any way.
>>
>> It most likely would. Perhaps it's worth adjusting the shared clock a
>> bit to support 20MHz?
>>
> "Most likely" isn't a constructive performance metric. It's worth trying
> out, and if it helps then of course it makes sense to try and support.
> It's not really worth going through and adding in additional complexity
> in order to support every possible frequency just becase we can, however.

Yes. Thanks for the "constructive performance metric". =)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-01-20  4:01         ` Magnus Damm
@ 2011-03-21 22:38           ` Simon Horman
  -1 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-03-21 22:38 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

[-- Attachment #1: Type: text/plain, Size: 2664 bytes --]

On Thu, Jan 20, 2011 at 01:01:04PM +0900, Magnus Damm wrote:
> On Thu, Jan 20, 2011 at 12:30 PM, Simon Horman <horms@verge.net.au> wrote:
> > I ran my tests again with CONFIG_SH_DMAE (and CONFIG_DMA_ENGINE)
> > enabled and the results are substantially better. Although
> > the results are still below the theoretical speeds of the cards.
> >
> > Read Speed - SHDI
> > SD1.1:           9.9 MB/s
> > SD2.0:          17.2 MB/s
> > SDHC Class 2:   17.0 MB/s
> > SDHC Class 10:  17.2 MB/s
> > MMC4.0:          8.6 MB/s   <-- Clocked down to 12Mhz due to driver limitations
> >
> > I also tested the Write Speed
> > SD1.1:           2.4 MB/s   <-- Faster than expected
> > SD2.0:           2.8 MB/s   <-- Faster than expected
> > SDHC Class 2:    2.5 MB/s   <-- Faster than expected
> > SDHC Class 10:   3.8 MB/s   <-- Slower than expected
> > MMC4.0:          2.1 MB/s   <-- Clocked down to 12Mhz due to driver limitations

It seems that I may have had MMC_DEBUG enabled in the kernel used
for the above tests. So I have re-run them. I have attached
my kernel configuration for posterity.

As suggested by Magnus I also tested against a SanDisk SDHC Class 10 Card.
The one that I have is a SanDisk Extreme 4Gb.

Read Speed
# dd if=/dev/mmcblk0 of=/dev/null bs=512 count=100000
SD1.1:                 10.2 MB/s
SD2.0:                 17.1 MB/s
SDHC Class 2:          17.1 MB/s
SDHC Class 10:         17.9 MB/s
SanDisk SDHC Class 10: 17.6 MB/s
MMC4.0:                 8.7 MB/s   <-- Clocked down to 12Mhz due to
                                      driver limitations

Write Speed
# dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=100000
SD1.1:                  2.5 MB/s   <-- Faster than expected
SD2.0:                  3.0 MB/s   <-- Faster than expected
SDHC Class 2:           2.3 MB/s   <-- Faster than expected
SDHC Class 10:          4.0 MB/s   <-- Slower than expected
SanDisk SDHC Class 10:  4.3 MB/s   <-- Slower than expected
MMC4.0:                 2.3 MB/s   <-- Clocked down to 12Mhz due to
                                       driver limitations

> > For reference I obtained the following results on my laptop,
> > which according to dmesg has a SAMSUNG MMCRE28G VBM1 PQ.
> >
> > Read
> > SD1.1:          10.0 MB/s
> > SD2.0:          19.2 MB/s
> > SDHC Class 2:   19.4 MB/s
> > SDHC Class10:   17.9 MB/s  <---- What!!!?
> > MMC4.0:          8.2 MB/s
> >
> > Write
> > SD1.1:           2.7 MB/s
> > SD2.0:           3.4 MB/s
> > SDHC Class 2:    3.1 MB/s
> > SDHC Class10:    3.8 MB/s  <---- What!!!?
> > MMC4.0:          2.0 MB/s

[-- Attachment #2: .config --]
[-- Type: text/plain, Size: 22510 bytes --]

#
# Automatically generated make config: don't edit
# Linux/arm 2.6.37 Kernel Configuration
# Mon Mar 21 18:40:14 2011
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_HAVE_PROC_CPU=y
CONFIG_NO_IOPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
CONFIG_HAVE_IRQ_WORK=y

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set
CONFIG_HAVE_SPARSE_IRQ=y
# CONFIG_GENERIC_PENDING_IRQ is not set
# CONFIG_AUTO_IRQ_AFFINITY is not set
# CONFIG_IRQ_PER_CPU is not set
CONFIG_SPARSE_IRQ=y

#
# RCU Subsystem
#
CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_CGROUPS is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="/home/horms/projects/initramfs/out/rootfs.arm.cpio"
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_INITRAMFS_COMPRESSION_NONE=y
# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set
# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
# CONFIG_INITRAMFS_COMPRESSION_XZ is not set
# CONFIG_INITRAMFS_COMPRESSION_LZO is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y

#
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_COMPAT_BRK=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y

#
# GCOV-based kernel profiling
#
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
# CONFIG_MODULES is not set
CONFIG_BLOCK=y
CONFIG_LBDAF=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
CONFIG_INLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
CONFIG_FREEZER=y

#
# System Type
#
CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_VEXPRESS is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_BCMRING is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CNS3XXX is not set
# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_MXS is not set
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP23XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_DOVE is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MV78XX0 is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_NUC93X is not set
# CONFIG_ARCH_TEGRA is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_MSM is not set
CONFIG_ARCH_SHMOBILE=y
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_S5P64X0 is not set
# CONFIG_ARCH_S5P6442 is not set
# CONFIG_ARCH_S5PC100 is not set
# CONFIG_ARCH_S5PV210 is not set
# CONFIG_ARCH_S5PV310 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_TCC_926 is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
# CONFIG_ARCH_U8500 is not set
# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_PLAT_SPEAR is not set

#
# SH-Mobile System Type
#
# CONFIG_ARCH_SH7367 is not set
# CONFIG_ARCH_SH7377 is not set
CONFIG_ARCH_SH7372=y
# CONFIG_ARCH_SH73A0 is not set

#
# SH-Mobile Board Type
#
# CONFIG_MACH_AP4EVB is not set
CONFIG_MACH_MACKEREL=y

#
# SH-Mobile System Configuration
#

#
# Memory configuration
#
CONFIG_MEMORY_START=0x40000000
CONFIG_MEMORY_SIZE=0x10000000

#
# Timer and clock configuration
#
CONFIG_SHMOBILE_TIMER_HZ=128
CONFIG_SH_TIMER_CMT=y
CONFIG_SH_TIMER_TMU=y
CONFIG_SH_CLK_CPG=y

#
# SuperH / SH-Mobile Driver Options
#

#
# Interrupt controller options
#
# CONFIG_INTC_USERIMASK is not set

#
# Processor Type
#
CONFIG_CPU_32v6K=y
CONFIG_CPU_V7=y
CONFIG_CPU_32v7=y
CONFIG_CPU_ABRT_EV7=y
CONFIG_CPU_PABRT_V7=y
CONFIG_CPU_CACHE_V7=y
CONFIG_CPU_CACHE_VIPT=y
CONFIG_CPU_COPY_V6=y
CONFIG_CPU_TLB_V7=y
CONFIG_CPU_HAS_ASID=y
CONFIG_CPU_CP15=y
CONFIG_CPU_CP15_MMU=y

#
# Processor Features
#
CONFIG_ARM_THUMB=y
# CONFIG_ARM_THUMBEE is not set
# CONFIG_SWP_EMULATE is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_OUTER_CACHE=y
CONFIG_OUTER_CACHE_SYNC=y
CONFIG_CACHE_L2X0=y
CONFIG_CACHE_PL310=y
CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_CPU_HAS_PMU=y
CONFIG_MULTI_IRQ_HANDLER=y
# CONFIG_ARM_ERRATA_430973 is not set
# CONFIG_ARM_ERRATA_458693 is not set
# CONFIG_ARM_ERRATA_460075 is not set
# CONFIG_ARM_ERRATA_743622 is not set

#
# Bus support
#
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set

#
# Kernel Features
#
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_SMP is not set
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_HZ=128
# CONFIG_THUMB2_KERNEL is not set
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_HIGHMEM is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_NEED_PER_CPU_KM=y
CONFIG_FORCE_MAX_ZONEORDER=15
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set

#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x44000000
# CONFIG_ZBOOT_ROM is not set
CONFIG_CMDLINE="console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp memchunk.vpu=64m memchunk.veu0=8m memchunk.spu0=2m mem=240m"
# CONFIG_CMDLINE_FORCE is not set
# CONFIG_XIP_KERNEL is not set
CONFIG_KEXEC=y
CONFIG_ATAGS_PROC=y
# CONFIG_CRASH_DUMP is not set
# CONFIG_AUTO_ZRELADDR is not set

#
# CPU Power Management
#
# CONFIG_CPU_IDLE is not set

#
# Floating point emulation
#

#
# At least one emulation must be selected
#
# CONFIG_VFP is not set

#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set

#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
# CONFIG_APM_EMULATION is not set
CONFIG_PM_RUNTIME=y
CONFIG_PM_OPS=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_NET is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_SM_FTL is not set
# CONFIG_MTD_OOPS is not set

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_GEOMETRY is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_OTP is not set
CONFIG_MTD_CFI_INTELEXT=y
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set

#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
CONFIG_MTD_ARM_INTEGRATOR=y
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
CONFIG_MTD_BLOCK2MTD=y

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_NAND is not set
# CONFIG_MTD_ONENAND is not set

#
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set
# CONFIG_CHR_DEV_SCH is not set
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_NR_UARTS=8
CONFIG_SERIAL_SH_SCI_CONSOLE=y
# CONFIG_SERIAL_SH_SCI_DMA is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_HVC_DCC is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_RAMOOPS is not set
# CONFIG_I2C is not set
# CONFIG_SPI is not set

#
# PPS support
#
# CONFIG_PPS is not set

#
# PPS generators support
#
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_GPIO_SYSFS is not set

#
# Memory mapped GPIO expanders:
#
# CONFIG_GPIO_BASIC_MMIO is not set
# CONFIG_GPIO_IT8761E is not set

#
# I2C GPIO expanders:
#

#
# PCI GPIO expanders:
#

#
# SPI GPIO expanders:
#

#
# AC97 GPIO expanders:
#

#
# MODULbus GPIO expanders:
#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
CONFIG_MFD_SUPPORT=y
CONFIG_MFD_CORE=y
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_ASIC3 is not set
CONFIG_MFD_SH_MOBILE_SDHI=y
# CONFIG_HTC_EGPIO is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_TMIO is not set
CONFIG_TMIO_MMC_DMA=y
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
# CONFIG_FB_CFB_FILLRECT is not set
# CONFIG_FB_CFB_COPYAREA is not set
# CONFIG_FB_CFB_IMAGEBLIT is not set
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=y
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set

#
# Frame buffer hardware drivers
#
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_SH_MOBILE_LCDC=y
# CONFIG_FB_SH_MOBILE_HDMI is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_LCD_PLATFORM is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set

#
# Console display driver support
#
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
CONFIG_LOGO_LINUX_VGA16=y
# CONFIG_LOGO_LINUX_CLUT224 is not set
# CONFIG_SOUND is not set
# CONFIG_HID_SUPPORT is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_CLKGATE is not set

#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
# CONFIG_MMC_BLOCK_BOUNCE is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set

#
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
CONFIG_MMC_TMIO=y
# CONFIG_MMC_DW is not set
# CONFIG_MMC_SH_MMCIF is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_NFC_DEVICES is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
CONFIG_SH_DMAE=y
# CONFIG_TIMB_DMA is not set
CONFIG_DMA_ENGINE=y

#
# DMA Clients
#
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
CONFIG_CLKDEV_LOOKUP=y

#
# File systems
#
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_FILE_LOCKING=y
# CONFIG_FSNOTIFY is not set
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_MISC_FILESYSTEMS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set

#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
CONFIG_BKL=y
# CONFIG_SPARSE_RCU_POINTER is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_FRAME_POINTER=y
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_STRICT_DEVMEM is not set
# CONFIG_ARM_UNWIND is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_OC_ETM is not set

#
# Security options
#
CONFIG_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
# CONFIG_CRYPTO is not set
# CONFIG_BINARY_PRINTF is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_IA64=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_DMA=y

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-03-21 22:38           ` Simon Horman
  0 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-03-21 22:38 UTC (permalink / raw)
  To: Magnus Damm; +Cc: linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

[-- Attachment #1: Type: text/plain, Size: 2664 bytes --]

On Thu, Jan 20, 2011 at 01:01:04PM +0900, Magnus Damm wrote:
> On Thu, Jan 20, 2011 at 12:30 PM, Simon Horman <horms@verge.net.au> wrote:
> > I ran my tests again with CONFIG_SH_DMAE (and CONFIG_DMA_ENGINE)
> > enabled and the results are substantially better. Although
> > the results are still below the theoretical speeds of the cards.
> >
> > Read Speed - SHDI
> > SD1.1:           9.9 MB/s
> > SD2.0:          17.2 MB/s
> > SDHC Class 2:   17.0 MB/s
> > SDHC Class 10:  17.2 MB/s
> > MMC4.0:          8.6 MB/s   <-- Clocked down to 12Mhz due to driver limitations
> >
> > I also tested the Write Speed
> > SD1.1:           2.4 MB/s   <-- Faster than expected
> > SD2.0:           2.8 MB/s   <-- Faster than expected
> > SDHC Class 2:    2.5 MB/s   <-- Faster than expected
> > SDHC Class 10:   3.8 MB/s   <-- Slower than expected
> > MMC4.0:          2.1 MB/s   <-- Clocked down to 12Mhz due to driver limitations

It seems that I may have had MMC_DEBUG enabled in the kernel used
for the above tests. So I have re-run them. I have attached
my kernel configuration for posterity.

As suggested by Magnus I also tested against a SanDisk SDHC Class 10 Card.
The one that I have is a SanDisk Extreme 4Gb.

Read Speed
# dd if=/dev/mmcblk0 of=/dev/null bs=512 count=100000
SD1.1:                 10.2 MB/s
SD2.0:                 17.1 MB/s
SDHC Class 2:          17.1 MB/s
SDHC Class 10:         17.9 MB/s
SanDisk SDHC Class 10: 17.6 MB/s
MMC4.0:                 8.7 MB/s   <-- Clocked down to 12Mhz due to
                                      driver limitations

Write Speed
# dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=100000
SD1.1:                  2.5 MB/s   <-- Faster than expected
SD2.0:                  3.0 MB/s   <-- Faster than expected
SDHC Class 2:           2.3 MB/s   <-- Faster than expected
SDHC Class 10:          4.0 MB/s   <-- Slower than expected
SanDisk SDHC Class 10:  4.3 MB/s   <-- Slower than expected
MMC4.0:                 2.3 MB/s   <-- Clocked down to 12Mhz due to
                                       driver limitations

> > For reference I obtained the following results on my laptop,
> > which according to dmesg has a SAMSUNG MMCRE28G VBM1 PQ.
> >
> > Read
> > SD1.1:          10.0 MB/s
> > SD2.0:          19.2 MB/s
> > SDHC Class 2:   19.4 MB/s
> > SDHC Class10:   17.9 MB/s  <---- What!!!?
> > MMC4.0:          8.2 MB/s
> >
> > Write
> > SD1.1:           2.7 MB/s
> > SD2.0:           3.4 MB/s
> > SDHC Class 2:    3.1 MB/s
> > SDHC Class10:    3.8 MB/s  <---- What!!!?
> > MMC4.0:          2.0 MB/s

[-- Attachment #2: .config --]
[-- Type: text/plain, Size: 22510 bytes --]

#
# Automatically generated make config: don't edit
# Linux/arm 2.6.37 Kernel Configuration
# Mon Mar 21 18:40:14 2011
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_HAVE_PROC_CPU=y
CONFIG_NO_IOPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
CONFIG_HAVE_IRQ_WORK=y

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set
CONFIG_HAVE_SPARSE_IRQ=y
# CONFIG_GENERIC_PENDING_IRQ is not set
# CONFIG_AUTO_IRQ_AFFINITY is not set
# CONFIG_IRQ_PER_CPU is not set
CONFIG_SPARSE_IRQ=y

#
# RCU Subsystem
#
CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_CGROUPS is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="/home/horms/projects/initramfs/out/rootfs.arm.cpio"
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_INITRAMFS_COMPRESSION_NONE=y
# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set
# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
# CONFIG_INITRAMFS_COMPRESSION_XZ is not set
# CONFIG_INITRAMFS_COMPRESSION_LZO is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y

#
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_COMPAT_BRK=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y

#
# GCOV-based kernel profiling
#
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
# CONFIG_MODULES is not set
CONFIG_BLOCK=y
CONFIG_LBDAF=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
CONFIG_INLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
CONFIG_FREEZER=y

#
# System Type
#
CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_VEXPRESS is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_BCMRING is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CNS3XXX is not set
# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_MXS is not set
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP23XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_DOVE is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MV78XX0 is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_NUC93X is not set
# CONFIG_ARCH_TEGRA is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_MSM is not set
CONFIG_ARCH_SHMOBILE=y
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_S5P64X0 is not set
# CONFIG_ARCH_S5P6442 is not set
# CONFIG_ARCH_S5PC100 is not set
# CONFIG_ARCH_S5PV210 is not set
# CONFIG_ARCH_S5PV310 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_TCC_926 is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
# CONFIG_ARCH_U8500 is not set
# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_PLAT_SPEAR is not set

#
# SH-Mobile System Type
#
# CONFIG_ARCH_SH7367 is not set
# CONFIG_ARCH_SH7377 is not set
CONFIG_ARCH_SH7372=y
# CONFIG_ARCH_SH73A0 is not set

#
# SH-Mobile Board Type
#
# CONFIG_MACH_AP4EVB is not set
CONFIG_MACH_MACKEREL=y

#
# SH-Mobile System Configuration
#

#
# Memory configuration
#
CONFIG_MEMORY_START=0x40000000
CONFIG_MEMORY_SIZE=0x10000000

#
# Timer and clock configuration
#
CONFIG_SHMOBILE_TIMER_HZ=128
CONFIG_SH_TIMER_CMT=y
CONFIG_SH_TIMER_TMU=y
CONFIG_SH_CLK_CPG=y

#
# SuperH / SH-Mobile Driver Options
#

#
# Interrupt controller options
#
# CONFIG_INTC_USERIMASK is not set

#
# Processor Type
#
CONFIG_CPU_32v6K=y
CONFIG_CPU_V7=y
CONFIG_CPU_32v7=y
CONFIG_CPU_ABRT_EV7=y
CONFIG_CPU_PABRT_V7=y
CONFIG_CPU_CACHE_V7=y
CONFIG_CPU_CACHE_VIPT=y
CONFIG_CPU_COPY_V6=y
CONFIG_CPU_TLB_V7=y
CONFIG_CPU_HAS_ASID=y
CONFIG_CPU_CP15=y
CONFIG_CPU_CP15_MMU=y

#
# Processor Features
#
CONFIG_ARM_THUMB=y
# CONFIG_ARM_THUMBEE is not set
# CONFIG_SWP_EMULATE is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_OUTER_CACHE=y
CONFIG_OUTER_CACHE_SYNC=y
CONFIG_CACHE_L2X0=y
CONFIG_CACHE_PL310=y
CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_CPU_HAS_PMU=y
CONFIG_MULTI_IRQ_HANDLER=y
# CONFIG_ARM_ERRATA_430973 is not set
# CONFIG_ARM_ERRATA_458693 is not set
# CONFIG_ARM_ERRATA_460075 is not set
# CONFIG_ARM_ERRATA_743622 is not set

#
# Bus support
#
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set

#
# Kernel Features
#
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_SMP is not set
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_HZ=128
# CONFIG_THUMB2_KERNEL is not set
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_HIGHMEM is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_NEED_PER_CPU_KM=y
CONFIG_FORCE_MAX_ZONEORDER=15
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set

#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x44000000
# CONFIG_ZBOOT_ROM is not set
CONFIG_CMDLINE="console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp memchunk.vpu=64m memchunk.veu0=8m memchunk.spu0=2m mem=240m"
# CONFIG_CMDLINE_FORCE is not set
# CONFIG_XIP_KERNEL is not set
CONFIG_KEXEC=y
CONFIG_ATAGS_PROC=y
# CONFIG_CRASH_DUMP is not set
# CONFIG_AUTO_ZRELADDR is not set

#
# CPU Power Management
#
# CONFIG_CPU_IDLE is not set

#
# Floating point emulation
#

#
# At least one emulation must be selected
#
# CONFIG_VFP is not set

#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set

#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
# CONFIG_APM_EMULATION is not set
CONFIG_PM_RUNTIME=y
CONFIG_PM_OPS=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_NET is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_SM_FTL is not set
# CONFIG_MTD_OOPS is not set

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_GEOMETRY is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_OTP is not set
CONFIG_MTD_CFI_INTELEXT=y
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set

#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
CONFIG_MTD_ARM_INTEGRATOR=y
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
CONFIG_MTD_BLOCK2MTD=y

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_NAND is not set
# CONFIG_MTD_ONENAND is not set

#
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set
# CONFIG_CHR_DEV_SCH is not set
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_NR_UARTS=8
CONFIG_SERIAL_SH_SCI_CONSOLE=y
# CONFIG_SERIAL_SH_SCI_DMA is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_HVC_DCC is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_RAMOOPS is not set
# CONFIG_I2C is not set
# CONFIG_SPI is not set

#
# PPS support
#
# CONFIG_PPS is not set

#
# PPS generators support
#
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_GPIO_SYSFS is not set

#
# Memory mapped GPIO expanders:
#
# CONFIG_GPIO_BASIC_MMIO is not set
# CONFIG_GPIO_IT8761E is not set

#
# I2C GPIO expanders:
#

#
# PCI GPIO expanders:
#

#
# SPI GPIO expanders:
#

#
# AC97 GPIO expanders:
#

#
# MODULbus GPIO expanders:
#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
CONFIG_MFD_SUPPORT=y
CONFIG_MFD_CORE=y
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_ASIC3 is not set
CONFIG_MFD_SH_MOBILE_SDHI=y
# CONFIG_HTC_EGPIO is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_TMIO is not set
CONFIG_TMIO_MMC_DMA=y
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
# CONFIG_FB_CFB_FILLRECT is not set
# CONFIG_FB_CFB_COPYAREA is not set
# CONFIG_FB_CFB_IMAGEBLIT is not set
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=y
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set

#
# Frame buffer hardware drivers
#
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_SH_MOBILE_LCDC=y
# CONFIG_FB_SH_MOBILE_HDMI is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_LCD_PLATFORM is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set

#
# Console display driver support
#
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
CONFIG_LOGO_LINUX_VGA16=y
# CONFIG_LOGO_LINUX_CLUT224 is not set
# CONFIG_SOUND is not set
# CONFIG_HID_SUPPORT is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_CLKGATE is not set

#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
# CONFIG_MMC_BLOCK_BOUNCE is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set

#
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
CONFIG_MMC_TMIO=y
# CONFIG_MMC_DW is not set
# CONFIG_MMC_SH_MMCIF is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_NFC_DEVICES is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
CONFIG_SH_DMAE=y
# CONFIG_TIMB_DMA is not set
CONFIG_DMA_ENGINE=y

#
# DMA Clients
#
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
CONFIG_CLKDEV_LOOKUP=y

#
# File systems
#
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_FILE_LOCKING=y
# CONFIG_FSNOTIFY is not set
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_MISC_FILESYSTEMS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set

#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
CONFIG_BKL=y
# CONFIG_SPARSE_RCU_POINTER is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_FRAME_POINTER=y
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_STRICT_DEVMEM is not set
# CONFIG_ARM_UNWIND is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_OC_ETM is not set

#
# Security options
#
CONFIG_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
# CONFIG_CRYPTO is not set
# CONFIG_BINARY_PRINTF is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_IA64=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_DMA=y

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-03-21 22:38           ` Simon Horman
@ 2011-03-21 22:55             ` Arnd Bergmann
  -1 siblings, 0 replies; 24+ messages in thread
From: Arnd Bergmann @ 2011-03-21 22:55 UTC (permalink / raw)
  To: Simon Horman
  Cc: Magnus Damm, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Monday 21 March 2011 23:38:56 Simon Horman wrote:
> Write Speed
> # dd if=/dev/zero of=/dev/mmcblk0 bsQ2 count\x100000
> SD1.1:                  2.5 MB/s   <-- Faster than expected
> SD2.0:                  3.0 MB/s   <-- Faster than expected
> SDHC Class 2:           2.3 MB/s   <-- Faster than expected
> SDHC Class 10:          4.0 MB/s   <-- Slower than expected
> SanDisk SDHC Class 10:  4.3 MB/s   <-- Slower than expected
> MMC4.0:                 2.3 MB/s   <-- Clocked down to 12Mhz due to
>                                        driver limitations

Please see https://lwn.net/Articles/428584/ and https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey
for possible explanations why your speed is not what you think
it should be.

I have written a tool that will give you more conclusive
data: git clone git://git.linaro.org/people/arnd/flashbench.git

Please Cc flashbench-results@lists.linaro.org when you have
measurements from that. You will first need to find out
the erase block size of each card (typically 4 MB), and then
pass that to the --open-au --erasesize=${SIZE} --open-au-nr=${NR}
benchmark to get useful results.

The write speed for writing full erase blocks (allocation units)
is normally the best that a card can provide, and you will see
how it gets worse with smaller block sizes. Try different
values for ${NR} to find out what the maximum is that the card
can sustain at full performance, most cards get really slow as
soon as it runs out of segments (not the case with your
benchmarking, since you write from start to end).

	Arnd

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-03-21 22:55             ` Arnd Bergmann
  0 siblings, 0 replies; 24+ messages in thread
From: Arnd Bergmann @ 2011-03-21 22:55 UTC (permalink / raw)
  To: Simon Horman
  Cc: Magnus Damm, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Monday 21 March 2011 23:38:56 Simon Horman wrote:
> Write Speed
> # dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=100000
> SD1.1:                  2.5 MB/s   <-- Faster than expected
> SD2.0:                  3.0 MB/s   <-- Faster than expected
> SDHC Class 2:           2.3 MB/s   <-- Faster than expected
> SDHC Class 10:          4.0 MB/s   <-- Slower than expected
> SanDisk SDHC Class 10:  4.3 MB/s   <-- Slower than expected
> MMC4.0:                 2.3 MB/s   <-- Clocked down to 12Mhz due to
>                                        driver limitations

Please see https://lwn.net/Articles/428584/ and https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey
for possible explanations why your speed is not what you think
it should be.

I have written a tool that will give you more conclusive
data: git clone git://git.linaro.org/people/arnd/flashbench.git

Please Cc flashbench-results@lists.linaro.org when you have
measurements from that. You will first need to find out
the erase block size of each card (typically 4 MB), and then
pass that to the --open-au --erasesize=${SIZE} --open-au-nr=${NR}
benchmark to get useful results.

The write speed for writing full erase blocks (allocation units)
is normally the best that a card can provide, and you will see
how it gets worse with smaller block sizes. Try different
values for ${NR} to find out what the maximum is that the card
can sustain at full performance, most cards get really slow as
soon as it runs out of segments (not the case with your
benchmarking, since you write from start to end).

	Arnd

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
  2011-03-21 22:55             ` Arnd Bergmann
@ 2011-03-22  7:16               ` Simon Horman
  -1 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-03-22  7:16 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Magnus Damm, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Mon, Mar 21, 2011 at 11:55:36PM +0100, Arnd Bergmann wrote:
> On Monday 21 March 2011 23:38:56 Simon Horman wrote:
> > Write Speed
> > # dd if=/dev/zero of=/dev/mmcblk0 bsQ2 count\x100000
> > SD1.1:                  2.5 MB/s   <-- Faster than expected
> > SD2.0:                  3.0 MB/s   <-- Faster than expected
> > SDHC Class 2:           2.3 MB/s   <-- Faster than expected
> > SDHC Class 10:          4.0 MB/s   <-- Slower than expected
> > SanDisk SDHC Class 10:  4.3 MB/s   <-- Slower than expected
> > MMC4.0:                 2.3 MB/s   <-- Clocked down to 12Mhz due to
> >                                        driver limitations
> 
> Please see https://lwn.net/Articles/428584/ and https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey
> for possible explanations why your speed is not what you think
> it should be.
> 
> I have written a tool that will give you more conclusive
> data: git clone git://git.linaro.org/people/arnd/flashbench.git
> 
> Please Cc flashbench-results@lists.linaro.org when you have
> measurements from that. You will first need to find out
> the erase block size of each card (typically 4 MB), and then
> pass that to the --open-au --erasesize=${SIZE} --open-au-nr=${NR}
> benchmark to get useful results.
> 
> The write speed for writing full erase blocks (allocation units)
> is normally the best that a card can provide, and you will see
> how it gets worse with smaller block sizes. Try different
> values for ${NR} to find out what the maximum is that the card
> can sustain at full performance, most cards get really slow as
> soon as it runs out of segments (not the case with your
> benchmarking, since you write from start to end).

Thanks Arnd,

I'll report back once I have some numbers.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: SDHC Read Performance
@ 2011-03-22  7:16               ` Simon Horman
  0 siblings, 0 replies; 24+ messages in thread
From: Simon Horman @ 2011-03-22  7:16 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Magnus Damm, linux-mmc, linux-sh, Arnd Hannemann, Guennadi Liakhovetski

On Mon, Mar 21, 2011 at 11:55:36PM +0100, Arnd Bergmann wrote:
> On Monday 21 March 2011 23:38:56 Simon Horman wrote:
> > Write Speed
> > # dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=100000
> > SD1.1:                  2.5 MB/s   <-- Faster than expected
> > SD2.0:                  3.0 MB/s   <-- Faster than expected
> > SDHC Class 2:           2.3 MB/s   <-- Faster than expected
> > SDHC Class 10:          4.0 MB/s   <-- Slower than expected
> > SanDisk SDHC Class 10:  4.3 MB/s   <-- Slower than expected
> > MMC4.0:                 2.3 MB/s   <-- Clocked down to 12Mhz due to
> >                                        driver limitations
> 
> Please see https://lwn.net/Articles/428584/ and https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey
> for possible explanations why your speed is not what you think
> it should be.
> 
> I have written a tool that will give you more conclusive
> data: git clone git://git.linaro.org/people/arnd/flashbench.git
> 
> Please Cc flashbench-results@lists.linaro.org when you have
> measurements from that. You will first need to find out
> the erase block size of each card (typically 4 MB), and then
> pass that to the --open-au --erasesize=${SIZE} --open-au-nr=${NR}
> benchmark to get useful results.
> 
> The write speed for writing full erase blocks (allocation units)
> is normally the best that a card can provide, and you will see
> how it gets worse with smaller block sizes. Try different
> values for ${NR} to find out what the maximum is that the card
> can sustain at full performance, most cards get really slow as
> soon as it runs out of segments (not the case with your
> benchmarking, since you write from start to end).

Thanks Arnd,

I'll report back once I have some numbers.


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2011-03-22  7:16 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-19  0:09 SDHC Read Performance Simon Horman
2011-01-19  0:09 ` Simon Horman
2011-01-19  3:14 ` Magnus Damm
2011-01-19  3:14   ` Magnus Damm
2011-01-19  8:05   ` Simon Horman
2011-01-19  8:05     ` Simon Horman
2011-01-20  3:30     ` Simon Horman
2011-01-20  3:30       ` Simon Horman
2011-01-20  4:01       ` Magnus Damm
2011-01-20  4:01         ` Magnus Damm
2011-01-20  7:07         ` Simon Horman
2011-01-20  7:07           ` Simon Horman
2011-01-20  8:28           ` Magnus Damm
2011-01-20  8:28             ` Magnus Damm
2011-01-20  8:38             ` Paul Mundt
2011-01-20  8:38               ` Paul Mundt
2011-01-20  8:55               ` Magnus Damm
2011-01-20  8:55                 ` Magnus Damm
2011-03-21 22:38         ` Simon Horman
2011-03-21 22:38           ` Simon Horman
2011-03-21 22:55           ` Arnd Bergmann
2011-03-21 22:55             ` Arnd Bergmann
2011-03-22  7:16             ` Simon Horman
2011-03-22  7:16               ` Simon Horman

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.