ophub / amlogic-s9xxx-armbian

Support for Armbian in Amlogic, Rockchip and Allwinner boxes. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
GNU General Public License v2.0
5.45k stars 1.74k forks source link

tx-mini eMMC storage not found #884

Closed livelier closed 1 year ago

livelier commented 1 year ago

Device Information | 设备信息

Armbian Version | 系统版本

Describe the bug | 问题描述

刚到的 tx3-mini 盒子,可以UBS启动,不能TF启动。存储看起来不是 eMMC 没有识别出😂 我又遇到个别体质了吗 😱 5.4.y,5.15.y,6.1.y内核都有测试,都不识别 eMMC

各位大神,你们的 tx3-mini 怎么做到识别 eMMC 的,还请指点一二。

image image image

ophub commented 1 year ago

meson-gxl-s905w-tx3-mini.dtb

手动复制一下u-boot试试

cd /boot
cp -f u-boot-s905x-s912.bin u-boot.ext
chmod +x u-boot.ext
sync && reboot
livelier commented 1 year ago

用的是 meson-gxl-s905w-tx3-mini.dtb u-boot 也核对过 image

ophub commented 1 year ago

试试改dtb,调底emmc频率,以前cm311等盒子用这个方法可以解决不能正常识别的问题。

/* EMMC */
&sd_emmc_c {
        max-frequency = <100000000>;
};
livelier commented 1 year ago

好,轮到自己了,把这个弱体质都忘记了,😂 我试试去

livelier commented 1 year ago

25MHz 50MHz 100MHz 200MHz 都不识别。😂

ophub commented 1 year ago

看看安卓dtb里emmc设置的是多少

livelier commented 1 year ago

这款 tx3 mini 已经确认使用的是NAND芯片不是eMMC芯片主板编号cs_905w_tx_3d_v1.3

已经查证到 tx3 mini 有几种版本,可能还有更多版本,选择这款盒子玩,大家要注意避坑。 SoC amlogic s905w / allwinner H616 2+16G eMMC ap6330 无线2.4/5G 有蓝牙 2+16G eMMC s9012p 无线2.4G 无蓝牙 2+16G eMMC ssv6051 无线2.4G 无蓝牙 2+16G eMMC rtl8723bs 无线2.4G 有蓝牙 2+16G NAND rtl8723bs 无线2.4G 有蓝牙 cs_905w_tx_3d_v1.3 android7.12.img

这是NAND版本的dtb反编译内容 android_dts_tx3mini_cs_905w_tx_3d_v1.3.txt

    emmc {
        compatible = "amlogic, aml_sd_emmc";
        dev_name = "aml_newsd.0";
        status = "okay";
        reg = <0x00 0xd0074000 0x00 0x2000>;
        interrupts = <0x00 0xda 0x01>;
        pinctrl-names = "emmc_clk_cmd_pins\0emmc_all_pins";
        pinctrl-0 = <0x32>;
        pinctrl-1 = <0x33 0x34 0x35>;

        emmc {
            status = "disabled";  # NAND版此处已禁用
            pinname = "emmc";
            ocr_avail = <0x200080>;
            caps = "MMC_CAP_8_BIT_DATA\0MMC_CAP_MMC_HIGHSPEED\0MMC_CAP_SD_HIGHSPEED\0MMC_CAP_NONREMOVABLE\0MMC_CAP_1_8V_DDR\0MMC_CAP_HW_RESET\0MMC_CAP_ERASE\0MMC_CAP_CMD23";
            f_min = <0x493e0>;
            f_max = <0x2faf080>;
            max_req_size = <0x20000>;
            gpio_dat3 = <0x23 0x1d 0x00>;
            hw_reset = <0x23 0x23 0x00>;
            card_type = <0x01>;
        };
    };
    nand {
        compatible = "amlogic, aml_nand";
        dev_name = "nand";
        status = "okay";   # NAND版此处没有禁用
        reg = <0x00 0xd0074800 0x00 0x200>;
        interrupts = <0x00 0x22 0x01>;
        pinctrl-names = "nand_rb_mod\0nand_norb_mod\0nand_cs_pins_only";
        pinctrl-0 = <0x41 0x42 0x43>;
        pinctrl-1 = <0x41 0x42 0x43>;
        pinctrl-2 = <0x44>;
        device_id = <0x00>;
        plat-names = "nandnormal";
        plat-num = <0x01>;
        plat-part-0 = <0x45>;

        normal {
            enable_pad = "ce0\0ce1\0ce2\0ce3";
            busy_pad = "rb0";
            linux,phandle = <0x45>;
            phandle = <0x45>;
        };
    };

在F大内核仓库找到了相关NAND的DTB说明,尝试了组合,可能没有正确组合或者内核没有包含对应的NAND驱动。 https://github.com/unifreq/linux-5.15.y/blob/main/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt https://github.com/unifreq/linux-6.1.y/blob/main/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml

还请 o大,帮助组合一下dtb,非常感谢。

ophub commented 1 year ago
[[ -b /dev/nand ]] && nandcheck=$(ls -d -1 /dev/nand* | grep -w 'nand' | awk '{print $NF}')
echo ${nandcheck}

你执行下看看。官方的安装脚本里有关于NAND的检测和安装方法,以前Amlogic还没发现使用NAND的盒子。

https://github.com/armbian/build/blob/master/packages/bsp/common/usr/sbin/armbian-install

livelier commented 1 year ago

当前没有正确组合nand的dtb,还不能进行安装测试。

ophub commented 1 year ago

你用上面的命令看看能识别NAND的吧

livelier commented 1 year ago

没有识别到,meson-gxl-s905w-tx3-mini.dtb中没有包含nand配置 image

MrVidipy commented 1 year ago

Hi, I have the exact same problem and I don't really understand what to do here. What step fixed your problem @livelier ?

livelier commented 1 year ago

@MrVidipy

待解决或待确认问题

1、增加设备树

内核仓库中的nand文档,我不能确定是否支持3d nand。

这款盒子使用的存储是3d nand,nand和3d nand 是否通用需要确定。

nand设备树文档来自 https://github.com/unifreq/linux-5.15.y/blob/main/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt https://github.com/unifreq/linux-6.1.y/blob/main/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml

2、增加驱动 我不能确定,内需需要增加哪些驱动或模块来支持3d nand

下面是我尝试增加的设备树,但没能识别到3d nand

meson-gxl-s905w-nand.dtsi

&sysctrl {
    clkc: clock-controller {
        compatible = "amlogic,gxl-clkc";    /* gxl or axg */
        #clock-cells = <1>;
        clocks = <&xtal>;
        clock-names = "xtal";
    };
};

&aobus {
    pinctrl_aobus: pinctrl@14 {
        compatible = "amlogic,meson-gxl-aobus-pinctrl";
        #address-cells = <2>;
        #size-cells = <2>;
        ranges;

        nand_pins: nand {
            mux {
                groups = "nand_ce0",
                     "nand_ce1",
                     "nand_rb0",
                     "nand_ale",
                     "nand_cle",
                     "nand_wen_clk",
                     "nand_ren_wr",
                     "nand_dqs";
                function = "nand";
                bias-disable;
            };
        };
    };
};

&apb {
    nand-controller@74800 {
        compatible = "amlogic,meson-axg-nfc", "amlogic,meson-gxl-nfc";
        reg = <0x0 0x74800 0x0 0x100>, <0x0 0x74000 0x0 0x800>;
        reg-names = "nfc", "emmc";
        interrupts = <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>;
        clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_FCLK_DIV2>;
        clock-names = "core", "device";

        pinctrl-0 = <&nand_pins>;
        /* pinctrl-1 = <&nand_pins>; */
        pinctrl-names = "default";

        #address-cells = <1>;
        #size-cells = <0>;

        nand@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <1>;

            nand-on-flash-bbt;
        };
    };
};
ophub commented 1 year ago

@livelier

我翻了下armbian官网关于nand的信息,需要在内核里启用相关选项,你根据他的合并信息,试试在内核里添加看看能不能识别。 https://github.com/armbian/build/pull/527

https://github.com/armbian/build/pull/4596

nand的识别检测和数据写入方法也不同,在官方的安装脚本里有相关方法。 https://github.com/armbian/build/blob/master/packages/bsp/common/usr/sbin/armbian-install

网上关于nand的基本操作的方法。 https://blog.csdn.net/xiaoxiaozhu2010/article/details/18087197

livelier commented 1 year ago

好的,o大,在编译 5.15.y 6.1.y 内核之后测试一下。

先自己组合dtb,之后可能要麻烦你请f大帮助组合dtb啦。

ophub commented 1 year ago

好的