Commit Graph

97 Commits

Author SHA1 Message Date
Meco Man f58d3c5200 rt_device_write/read return data type as rt_ssize_t
rt_ssize_t can give negative error code, which follows the unix style correctly
2023-02-07 21:43:57 -05:00
bernard af143ee3f9 [devicedrivers] fix the partition issue in mmc/sdio 2023-01-23 19:16:28 -05:00
Bernard Xiong 2aa600e01b
[components] fix compiling warning (#6733) 2022-12-13 09:44:45 +08:00
guo ecf2d82159
sync branch rt-smart. (#6641)
* Synchronize the code of the rt mart branch to the master branch.
  * TTY device
  * Add lwP code from rt-smart
  * Add vnode in DFS, but DFS will be re-write for rt-smart
  * There are three libcpu for rt-smart:
    * arm/cortex-a, arm/aarch64
    * riscv64

Co-authored-by: Rbb666 <zhangbingru@rt-thread.com>
Co-authored-by: zhkag <zhkag@foxmail.com>
2022-12-03 12:07:44 +08:00
xiao xie 1755750b2a
[sdio] remove mmcsd_delay_ms
修改SD检测线程函数里面的延时实现,将mmcsd_delay_ms改为rt_thread_mdelay. mmcsd_delay_ms过时且延时计算错误。
2022-11-08 00:34:43 -05:00
xiaoguang_ma e663d2d870 bugfix: remove sdcard block dev may cause a constant loop. 2022-11-02 15:27:41 +09:00
xiaoguang_ma 80f495de4a bug fix
When detecting all SDIO devices fails, it is also necessary to return information
2022-10-09 14:55:01 +08:00
Tangyuxin a4829b1c00
[fix] Fix simulator compilation warnings (#6438)
* [fix] Fix simulator compilation warnings

* Update bsp/simulator/rtconfig_project.h

Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
2022-09-20 10:31:11 -04:00
tyx 782b9dd45a [components][sdio] Support DDR mode 2022-04-06 16:06:46 +08:00
nongxiaoming cec72c92c7 [components][sdio] fix compile warning and optimized code. 2021-12-31 17:05:42 +08:00
Wayne Lin 9dc4ca0d31 Remove unused comment. 2021-12-24 05:36:12 +08:00
Wayne Lin 28f91a86f5 Correct sem's name of sd block device. 2021-12-24 05:36:12 +08:00
Wayne Lin f508d58c05 Strip tailing space. 2021-12-24 05:36:12 +08:00
Wayne Lin bac75e24bd [SDIO] Create SD block device.
1. New naming rule for multiple cards: sdXpY. Ex: sd0, sd0p0, sd0p1, sd1, sd1p0, sd1p1, .... sdXpY.
2. Always create super-node for backward-compatible and fdisk-like utility. EX: sd0, sd1, ..... sdX.
3. Shrink code.
2021-12-24 05:36:12 +08:00
Wayne Lin 600e67f952 Revert to RT_IPC_FLAG_PRIO. 2021-12-24 05:36:12 +08:00
Wayne Lin 7e6ffd3447 Support multi-partition/-card mounting. 2021-12-24 05:36:12 +08:00
Wayne Lin c84952d9cd Fix infinite-loop in rt_mmcsd_blk_remove.
1. Issue on traveling latest node in list if multi-partitions on card.
2021-12-24 05:36:12 +08:00
Meco Man df9a23c534 [mutex] use RT_IPC_FLAG_PRIO to replace RT_IPC_FLAG_FIFO 2021-11-17 15:57:15 -05:00
Meco Man 84db60ecfa [sdio] remove rt_mmcsd_blk_init 2021-08-01 07:31:32 +08:00
@lin12345678 9f9c3a2bb0 修改mmc初始化错误,将card-》csd写成card-》cid 2021-07-09 17:53:07 +08:00
Jianjia Ma 398718f0f9
Update mmc.c 2021-04-13 18:27:53 +01:00
Jianjia Ma 4e74279d27
Add more trys when switching data width
Try a few times before switching to other data widths. 
The original strategy (simply wait for 20ms ) failed on STM32H743 with an MTFC4GACAJCN-4M (4GB EMMC) when switching data width. 
(unless the debugging info is enabled, which add more delays)
With this EMMC, the fixed delay was set to 50ms for it to be able to work. 

Instead of a fixed delay, I think we better change to trying a few more times with smaller delays.
2021-04-13 18:04:59 +01:00
Meco Man 3c05a4e719 [compoenets] auto & manual formatted 2021-03-08 18:19:04 +08:00
wanghaijing f62d8938dc [sdio] free memory and enhance performance 2021-02-05 15:49:30 +08:00
guozhanxin bb016927f8 Improve the clock Settings for switching to high speed mode in the SDIO framework. 2020-11-27 17:28:49 +08:00
Shawn Lin 4c7106fa9d component: sdio: fix potential ricky clock setting
Currently RTT mmc stack only support Highspeed mode or
blow, which means the max speed should be 52MHz according
to JEDEC spec. Two problems show here:

(1) max_data_rate = (unsigned int)-1. The value of unsigned int
depends on compilers/arch. Moreover, it makes no sense to assume
cpu addressing width with IP clock rate limit.
(1)hs_max_data_rate was set to 200MHz.

So what should BSP drivers do if 52MHz < max_data_rate < 200MHz?
Either it blindly sets a spec-violated clock rate to drive a Highspeed
card, or just adjust the clock rate internally. Both cases are
really bad for practice.

If the card claims to support Highspeed, we set the clock to not
to exceed 52MHz. Otherwise it should be set according to
card->max_data_rate parsed by ext_csd. This patch fixes it as-is,
and also simplify the code a lot.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2020-03-16 14:45:41 +08:00
Shawn Lin 11277014a3 [Components] sdio: try bus width depends on host's capability
It makes no sense to try bus width if not supported by drivers or BSP,
since we know it must be failed. It saves a lot for booting in time
critical environment.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2020-03-12 09:00:41 +08:00
Shawn Lin a33bc0f321 [component] sdio: Fix mmc mount function if the whole device is a partition
If the whole sd card was formatted as a partition, current
code break out the loop mistakenly, so it skips dfs_mount_device
later. Simply remove the broken 'break' to solve this problem.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2020-03-12 09:00:33 +08:00
bigmagic e09c99fcfb fix raspi3-64 sdio driver 2020-02-28 14:56:56 +08:00
A.orz a646b9275d
Update sd.c
clean #if 0 code
2020-02-23 09:20:09 +08:00
hichard aafed7b434 1.修复sd卡热插拔内存泄露的bug
2.dfs增加函数,配合实现sd卡热插拔自动挂载卸载文件系统
2019-11-16 11:16:48 +08:00
tangyuxin 2f2933245e [components][drivers][sdio]修复 SDIO product 为空的问题 2019-09-03 16:55:10 +08:00
Zhou Yanjie de69a9b500 sdio: mmc.c: 修复缩进/Fix indentation.
修复版权信息中的缩进格式。

Fix indentation in copyright information.

Signed-off-by: Zhou Yanjie <zhouyanjie@zoho.com>
2019-07-19 21:18:56 +08:00
Zhou Yanjie 976ea24112 sdio: mmc.c: 防止容量计算过程溢出/Prevent capacity calculation overflow.
修改“mmc_parse_ext_csd”函数,防止容量计算过程溢出。

Modify the "mmc_parse_ext_csd" function to prevent the capacity
calculation process from overflowing.

Signed-off-by: Zhou Yanjie <zhouyanjie@zoho.com>
2019-07-19 21:18:56 +08:00
Bernard Xiong ec6cb9f260 [BSP][qemu-vexpress-a9] code cleaup for compiling warning. 2019-05-12 15:07:26 +08:00
armink fa4d4ab7cf Update all of debug log definition to DBG_TAG and DBG_LVL. 2019-04-12 10:18:57 +08:00
armink 0d7ba79219 Remove the DBG_COLOR and DBG_ENABLE definition. 2019-03-06 17:54:30 +08:00
Bernard Xiong 1f37de29c4 Fix the value width issue under 32/64 bit arch. 2018-12-13 14:54:26 +08:00
armink 5a70247898 [components][DeviceDriver] Update log tag from [SDIO] to SDIO. 2018-11-02 10:15:29 +08:00
Bernard Xiong 2c0640a178 [license] Change license to Apache. 2018-10-14 19:37:18 +08:00
ZYH e00364c5e4 [Components][SDIO]修复脏值调用 2018-10-12 11:22:05 +08:00
ZYH 2e74539130 [Components][SDIO]fix 'rocr' declared without an initial value 2018-09-30 11:01:06 +08:00
ZYH 780f538525 [Components][SDIO][MMC] fix null point check 2018-09-22 15:02:48 +08:00
ZYH 3d69c44ab8 [Components][SDIO]fix Null point access 2018-09-22 14:56:55 +08:00
ZYH f6be7abb2d [Components][SDIO]block 'err' declared without an initial value 2018-09-22 14:53:08 +08:00
ZYH f260f7effd [Components][SDIO]fix Assigned value is garbage or undefined 2018-09-22 14:49:47 +08:00
Bernard Xiong 8c2448a4d4
Merge pull request #1774 from EvalZero/sdio_dev
[DeviceDriver][SDIO] Update sdio debug log.
2018-09-11 19:03:10 +08:00
weety 799c5e4ea2 [sdio] Fixed merge error. 2018-09-09 22:07:06 +08:00
weety e19cfd4571 [sdio] Fixed issue for requset size calculation. 2018-09-09 21:20:08 +08:00
weety 02a2b78943 [sdio] Fixed error for dma size calculation. 2018-09-09 14:05:45 +08:00