导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    解决T113-S3 SPI Nand启动失败的问题

    MR Series
    3
    5
    3089
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • F
      fanhuacloud LV 6 最后由 编辑

      最近在调自己的86盒项目:https://oshwhub.com/fanhuacloud/t113-s3-86panel
      调试SPI Nand启动时,发现烧录存在失败,同时进入系统的时候,会无法挂载rootfs
      此处给大家提供几个整改经验

      1. 初步判定是SPI Nand布线过长,导致的驱动能力不足,整改意见为修改GPIO驱动强度,修改后内核正常识别rootfs,启动正常
      2. 布线未做等长处理,此处需要硬件做整改,做等长
      3. 未做阻抗匹配:目前没有足够的理由确定是该原因,不过建议按照手册在CLK处添加33Ω电阻
        解决方案:
      4. 解决无法烧录,或者烧录卡55% 7%的问题,烧录使用的是U-Boot中的USB从机代码,修改此处手动设置SPI Nand频率:
        ./lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/spic_op.c
        Snipaste_2024-03-05_20-51-50.jpg
        相应的,uboot-board.dts也需要修改:spi-max-freqency,clock-frequency
        同时修改spi-rx-bus-width,spi-tx-bus-width
        Snipaste_2024-03-05_20-53-45.jpg
      5. 解决内核分区挂载不上的问题,同时显示ECC报错问题:
        spi-rx-bus-width,spi-tx-bus-width需要设置为1,此处T113-S3驱动存在问题,D1s就不存在该问题,有了解的大佬可以提出解决方案
      &spi0 {
              clock-frequency = <100000000>;
              pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
              pinctrl-1 = <&spi0_pins_c>;
              pinctrl-names = "default", "sleep";
              /*spi-supply = <&reg_dcdc1>;*/
              spi_slave_mode = <0>;
              spi0_cs_number = <1>;
              spi0_cs_bitmap = <1>;
              status = "okay";
      
              spi-nand@0 {
                      compatible = "spi-nand";
                      spi-max-frequency=<100000000>;
                      reg = <0x0>;
                      spi-rx-bus-width=<0x01>;
                      spi-tx-bus-width=<0x01>;
                      status="okay";
              };
      };
      
      1. 解决内核启动失败的问题
        修改引脚驱动能力drive-strength,此处默认为10,修改为30
              spi0_pins_b: spi0@1 {
                      pins = "PC3";
                      function = "spi0";
                      drive-strength = <30>;
                      bias-pull-up;   /* only CS should be pulled up */
              };
      
              spi0_pins_c: spi0@2 {
                      pins = "PC2", "PC3", "PC4", "PC5","PC6", "PC7";
                      function = "gpio_in";
                      drive-strength = <30>;
              };
      
      L H 2 条回复 最后回复 回复 引用 分享 2
      • L
        leomini5 LV 6 @fanhuacloud 最后由 编辑

        @fanhuacloud 这么复杂啊。。。

        1 条回复 最后回复 回复 引用 分享 0
        • H
          hongyancl LV 4 @fanhuacloud 最后由 编辑

          @fanhuacloud 大佬,能出个详细的教程吗?现在卡在需要修改哪些文件的地方,不知如何进行。谢谢

          F 1 条回复 最后回复 回复 引用 分享 0
          • F
            fanhuacloud LV 6 @hongyancl 最后由 编辑

            @hongyancl 论坛里,存储介质切换文章,按照这个改启动照样会有问题的,后面查到是需要把MOSI MISO设置成内部上拉

            H 1 条回复 最后回复 回复 引用 分享 0
            • H
              hongyancl LV 4 @fanhuacloud 最后由 编辑

              @fanhuacloud 谢谢大佬

              1 条回复 最后回复 回复 引用 分享 0
              • 1 / 1
              • First post
                Last post

              Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

              行为准则 | 用户协议 | 隐私权政策