[LEDE-DEV] mt7621 nand driver status.
Kenneth Johansson
kenneth at southpole.se
Wed Aug 24 05:32:18 PDT 2016
On 2016-08-24 13:49, John Crispin wrote:
>
> On 24/08/2016 13:44, Kenneth Johansson wrote:
>> On 2016-08-24 13:32, John Crispin wrote:
>>> On 24/08/2016 13:25, Kenneth Johansson wrote:
>>>> What is the status of the nand driver for mt7621 ??
>>>>
>>>> when I try to use it the probing is ok but it fails when I try to
>>>> read/write.
>>>>
>>>>
>>> known to be working and i used it on the ERX just last week. what
>>> specifc board is this and can you post your dts file please. initial
>>> guess is that pinmux might be bad.
>> CONFIG_TARGET_SUBTARGET="mt7621"
>> CONFIG_TARGET_PROFILE="DEVICE_mt7621"
>>
>>
>> just a thought how do we pass detection with wrong pinmux setting.
>> badblocks is found it's when the first page read with ecc it fails.
>>
>> also this code is in the driver, so whatever pins is in the DTS this
>> code sets back to nand function.
>>
>> data = DRV_Reg32(RALINK_SYSCTL_BASE+0x60);
>> data &= ~((0x3<<18)|(0x3<<16));
>> data |= ((0x2<<18) |(0x2<<16));
>> DRV_WriteReg32(RALINK_SYSCTL_BASE+0x60, data);
>>
>> DTS is from target/linux/ramips/dts/mt7621.dtsi with one change.
>>
>> ----------
>> diff --git a/target/linux/ramips/dts/mt7621.dtsi
>> b/target/linux/ramips/dts/mt7621.dtsi
>> index a8b98ed..1b2c22c 100644
>> --- a/target/linux/ramips/dts/mt7621.dtsi
>> +++ b/target/linux/ramips/dts/mt7621.dtsi
>> @@ -360,7 +360,7 @@
>> };
>>
>> nand: nand at 1e003000 {
>> - status = "disabled";
>> +
>>
>> compatible = "mtk,mt7621-nand";
>> bank-width = <2>;
>> ----------
>>
> sdhci and nand share the same pins. target/linux/ramips/dts/MT7621.dts
> enables gpio mode for the sdhci pins. also make sure that the sdhci
> driver is not loaded.
the sdhci driver is not even built. Did this to avoid setting to gpio.
still same error . Can it be some clock issue do the ecc hardware have
separate internal clock in the chip ? its two blocks but clk and reset
looks to be the same bit for both.
------
diff --git a/target/linux/ramips/dts/MT7621.dts
b/target/linux/ramips/dts/MT7621.dts
index 4013f3c..b5d5946 100644
--- a/target/linux/ramips/dts/MT7621.dts
+++ b/target/linux/ramips/dts/MT7621.dts
@@ -39,7 +39,7 @@
};
&sdhci {
- status = "okay";
+ status = "disable";
};
&xhci {
@@ -49,7 +49,7 @@
&pinctrl {
state_default: pinctrl0 {
gpio {
- ralink,group = "i2c", "uart2", "uart3",
"rgmii2", "sdhci";
+ ralink,group = "i2c", "uart2", "uart3", "rgmii2";
ralink,function = "gpio";
};
};
------
> John
>
>
>
>>
>>> John
>>>
>>>> [ 4.150000] MediaTek Nand driver init, version v2.1 Fix AHB virt2phys
>>>> error
>>>> [ 4.170000] Allocate 16 byte aligned buffer: 806f3100
>>>> [ 4.180000] Enable NFI Clock
>>>> [ 4.180000] # MTK NAND # : Use HW ECC
>>>> [ 4.190000] Device not found, ID: ecf1
>>>> [ 4.200000] Not Support this Device!
>>>> [ 4.200000] chip_mode=00000002
>>>> [ 4.210000] Support this Device in MTK table! ecf1
>>>> [ 4.220000] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1
>>>> [ 4.230000] nand: Samsung NAND 128MiB 3,3V 8-bit
>>>> [ 4.240000] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048,
>>>> OOB size: 64
>>>> [ 4.260000] [NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
>>>> [ 4.270000] Scanning device for bad blocks
>>>> [ 4.280000] Bad eraseblock 2 at 0x000000040000
>>>> [ 4.290000] Bad eraseblock 3 at 0x000000060000
>>>> [ 4.400000] Bad eraseblock 306 at 0x000002640000
>>>> [ 4.440000] Bad eraseblock 386 at 0x000003040000
>>>> [ 4.510000] Bad eraseblock 588 at 0x000004980000
>>>> [ 4.670000] 4 ofpart partitions found on MTD device MT7621-NAND
>>>> [ 4.680000] Creating 4 MTD partitions on "MT7621-NAND":
>>>> [ 4.690000] 0x000000000000-0x000000080000 : "uboot"
>>>> [ 4.700000] 0x000000080000-0x000000100000 : "uboot_env"
>>>> [ 4.710000] 0x000000100000-0x000000140000 : "factory"
>>>> [ 4.720000] 0x000000140000-0x000001000000 : "rootfs"
>>>> [ 4.740000] mtd: device 3 (rootfs) set to be root filesystem
>>>> [ 4.750000] mtdsplit: no squashfs found in "rootfs"
>>>> [ 4.760000] [mtk_nand] probe successfully!
>>>>
>>>>
>>>> #cat /dev/mtd0 >/dev/null
>>>> [ 75.910000] [mtk_nand_mcu_read_data] timeout
>>>> [ 75.940000] [mtk_nand_mcu_read_data] timeout
>>>> [ 75.980000] [mtk_nand_mcu_read_data] timeout
>>>> [ 76.020000] [mtk_nand_mcu_read_data] timeout
>>>>
>>>>
>>>> _______________________________________________
>>>> Lede-dev mailing list
>>>> Lede-dev at lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/lede-dev
>>> _______________________________________________
>>> Lede-dev mailing list
>>> Lede-dev at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/lede-dev
>>
More information about the Lede-dev
mailing list