Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Nov 2021 12:58:34 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        arm@FreeBSD.org
Subject:   huge emmc speed regression
Message-ID:  <812ab31a-ce6e-d8ac-3539-39e6b20a01df@FreeBSD.org>

next in thread | raw e-mail | index | archive | help

Upfront, I haven't tested the latest main / current yet.
I should really test it but that's porbably for the next weekend.

I see a huge emmc speed difference between the current from April 2021 and 
September 2021 (commit 5e79bba562bc303eed669dbd0d391b6c6a9c289b) on Orange Pi PC 
Plus using on-board eMMC card.  I use MMCCAM in both cases.

In the old environment I see expected read speeds (with sequential dd) of around 
40 MB/s.
In the new environment the speeds are around 300 KB/s (like a very good floppy 
disk of old).

Some info from the old environment:
# camcontrol mmcsdcmd 2:0:0 -I
Host controller information
Host OCR: 0x300000
Min frequency: 400 KHz
Max frequency: 52 MHz
Supported bus width:
  4 bit
  8 bit
Supported operating modes:
  Can do High Speed transfers
Supported VCCQ voltages:
  3.3V
Current settings:
  Bus width: 8 bit
  Freq: 52.000 MHz (high-speed timing)
  VCCQ: 1.2V

Same command in the new environment looks a bit strange:
# camcontrol mmcsdcmd 2:0:0 -I
Host controller information
Host OCR: 0x300000
Min frequency: 400 KHz
Max frequency: 0 MHz
Supported bus width:
  4 bit
  8 bit
Supported operating modes:
  Can do High Speed transfers
Supported VCCQ voltages:
  3.3V
Current settings:
  Bus width: 8 bit
  Freq: 0.000 MHz
  VCCQ: 1.2V

Also, in the old dmesg I see:
aw_mmc2: <Allwinner Integrated MMC/SD controller> mem 0x1c11000-0x1c11fff irq 12 
on simplebus0
aw_mmc2: vmmc-supply regulator found
aw_mmc2: Non-removable media
aw_mmc2: Clock => 0
aw_mmc2: VDD => 21
aw_mmc2: CS => 0
aw_mmc2: Bus width => 0
aw_mmc2: Power mode => 1
aw_mmc2: Bus mode => 1
aw_mmc2: Powering up sd/mmc
aw_mmc2: Clock => 400000
aw_mmc2: Timing => 0
aw_mmc2: CS => 1
aw_mmc2: Bus mode => 2
aw_mmc2: Timing => 1
aw_mmc2: Clock => 52000000
aw_mmc2: Bus width => 3

While in the new:
aw_mmc2: <Allwinner Integrated MMC/SD controller> mem 0x1c11000-0x1c11fff irq 12 
on simplebus0
aw_mmc2: vmmc-supply regulator found
aw_mmc2: Non-removable media
aw_mmc2: Power mode => 0
aw_mmc2: Powering down sd/mmc
aw_mmc2: Clock => 0
aw_mmc2: VDD => 21
aw_mmc2: CS => 0
aw_mmc2: Bus width => 0
aw_mmc2: Power mode => 1
aw_mmc2: Bus mode => 1
aw_mmc2: Powering up sd/mmc
aw_mmc2: Clock => 400000
aw_mmc2: Power mode => 2
aw_mmc2: Timing => 0
aw_mmc2: CS => 1
aw_mmc2: Bus mode => 2
aw_mmc2: Clock => 0
aw_mmc2: Bus width => 3

So, at the end of the sequence we have Clock => 0 instead of Clock => 52000000 
and Timing => 1 is missing...

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?812ab31a-ce6e-d8ac-3539-39e6b20a01df>