about s32G sd card read write slow

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

about s32G sd card read write slow

2,495 次查看
hardy2023
Contributor I

hi,

we now is using s32G , and find fileIO is realy slow.

we use sd card which spec with 120-190M/s for reading . but we  test only get 14.7 M/s.

sd card is SanDisk)64GB TF(MicroSD)存储卡 U1 C10 A1 至尊高速移动版内存卡 读速140MB/s

and we install sysbench and do IO testing , only get read speed 14.7 M /s. also we test random write speed get 3.42M/S. 

BTW. we have a OS run at emmc which get Read 81 M/S Write 84.74M/S .

 

t@ubuntu-s32g399ardb3:~$ sysbench --test=fileio --file-num=16 --file-total-size=1G prepare
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.11 (using system LuaJIT 2.1.0-beta3)
16 files, 65536Kb each, 1024Mb total
Creating files for the test...
Extra file open flags: 0
Creating file test_file.0
Creating file test_file.1
Creating file test_file.2
Creating file test_file.3
Creating file test_file.4
Creating file test_file.5
Creating file test_file.6
Creating file test_file.7
Creating file test_file.8
Creating file test_file.9
Creating file test_file.10
Creating file test_file.11
Creating file test_file.12
Creating file test_file.13
Creating file test_file.14
Creating file test_file.15
1073741824 bytes written in 113.74 seconds (9.00 MiB/sec).
t@ubuntu-s32g399ardb3:~$ sysbench --test=fileio --file-total-size=1G --file-test-mode=rndrd --max-time=180 --max-requests=100000000 --num-threads=16 --file-num=16 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=16384 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
WARNING: --max-requests is deprecated, use --events instead
WARNING: --max-time is deprecated, use --time instead
sysbench 1.0.11 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 16
Initializing random number generator from current time
Extra file open flags: 3
16 files, 64MiB each
1GiB total file size
Block size 16KiB
Number of IO requests: 100000000
Read/Write ratio for combined random IO test: 1.50
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random read test
Initializing worker threads...
Threads started!
File operations:
reads/s: 941.68
writes/s: 0.00
fsyncs/s: 0.00
Throughput:
read, MiB/s: 14.71
written, MiB/s: 0.00
General statistics:
total time: 180.0166s
total number of events: 169524
Latency (ms):
min: 3.92
avg: 16.99
max: 52.89
95th percentile: 24.83
sum: 2879865.98
Threads fairness:
events (avg/stddev): 10595.2500/30.58
execution time (avg/stddev): 179.9916/0.00
0 项奖励
回复
4 回复数

2,452 次查看
hardy2023
Contributor I

hi Daniel, thanks for your suggestion .

we found at RMS32G-VNP-RDB3.pdf maybe PD_09 pin could  change the 3.3 to 1.8V . 

Users can select the connection of the SD card or eMMC by SW3. When SW3 is set to “ON” status, the
S32G399A is connected to SD card interface, and IO level can be selected by VSELECT(PD_09) pin. If
VSELECT pin is low level or Hi-Z state, the uSDHC IO level is 3.3V; if VSELECT is high level, the uSDHC IO
level is 1.8V. When SW3 is set to “OFF” status, the S32G399A is connected to eMMC, the IO level is always
1.8V.

 

Now we try to install libgpiod-tools to set  PD_09 pin . and got error with " cannot find line" .  do you have  any sugestion ?

t@ubuntu-s32g399ardb3:/ssd/libgpio/libgpiod$ sudo gpiodetect
gpiochip0 [4009d700.siul2-gpio] (191 lines)
gpiochip1 [0-0022] (24 lines)
gpiochip2 [SJA1110-gpiochip] (16 lines)
t@ubuntu-s32g399ardb3:/ssd/libgpio/libgpiod$ sudo gpioinfo gpiochip0
gpioinfo: cannot find line 'gpiochip0'

 


t@ubuntu-s32g399ardb3:/ssd/libgpio/libgpiod$ sudo gpioinfo
gpiochip0 - 191 lines:
line 0: "PA_00" input
line 1: "PA_01" input
line 2: "PA_02" input
line 3: "PA_03" input
line 4: "PA_04" input
line 5: "PA_05" input
line 6: "PA_06" input
line 7: "PA_07" input
line 8: "PA_08" input
line 9: "PA_09" input


t@ubuntu-s32g399ardb3:/ssd/libgpio/libgpiod$ sudo gpioget --bias=pull-up gpiochip0 73
gpioget: cannot find line 'gpiochip0'
gpioget: cannot find line '73'

 

0 项奖励
回复

2,474 次查看
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

Which voltage are you supplying to the SD interface? Also, which BSP version are you using?

HS card requires IO voltage to be switched from 3.3V to 1.8V to work in UHS mode.

Please, let us know.

0 项奖励
回复

2,439 次查看
hardy2023
Contributor I

BTW :  BSP is 35.0 

0 项奖励
回复

2,429 次查看
Daniel-Aguirre
NXP TechSupport
NXP TechSupport

Hi,

Thanks for your feedback.

We see that you are using the ubuntu image. We are using the non-ubuntu image (the out-of-the-box BSP, with modifications) and by deleting the property of 'no-1-8-v' under the dts file we can obtain the following result:

DanielAguirre_0-1685130591539.pngDanielAguirre_0-1685130591539.png

We followed what it is stated under Chapter 3.3 of the AN13667 [Page 11, eMMC Enablement and Debugging Tips, Rev. 1, 08/2022] to modify the dts file. Once compiled, we replaced the DTB file that is located under the boot partition of the SD card.

Please, let us know.

0 项奖励
回复