[Letux-kernel] letux-4.7-rc4
H. Nikolaus Schaller
hns at goldelico.com
Tue Jun 21 10:02:43 CEST 2016
Hi,
> Am 20.06.2016 um 21:53 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>
> Hi,
>
>> Am 20.06.2016 um 21:11 schrieb Belisko Marek <marek.belisko at gmail.com>:
>>
>> Hi,
>>
>> On Mon, Jun 20, 2016 at 5:50 PM, H. Nikolaus Schaller <hns at goldelico.com> wrote:
>>> have merged / rebased / compiled / pushed.
>>>
>>> first test results on GTA04:
>>>
>>> NAND is working again :)
>>>
>>> May need to reformat ubifs but if formatted it works fine.
>>>
>>> Compare:
>>>
>>> http://projects.goldelico.com/p/gta04-rootfs/source/tree/master/config/root/flash-nand#L244
>>>
>>> GTA04A5 OneNAND:
>>>
>>> here we still have a bug in the gpmc config. It says "invalid configuration!":
>>>
>>> root at letux:~# dmesg|fgrep gpmc
>>> [ 0.709472] driver_register 'omap-gpmc'
>>> [ 0.897430] omap-gpmc 6e000000.gpmc: GPMC revision 5.0
>>> [ 0.897766] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
>>> [ 0.901153] gpmc_cs_program_settings: invalid configuration!
>>> [ 0.901184] omap-gpmc 6e000000.gpmc: failed to probe DT children
>>> [ 0.908325] omap-gpmc: probe of 6e000000.gpmc failed with error -22
>>> root at letux:~#
>>>
>>> http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=arch/arm/boot/dts/omap3-gta04a5.dts;h=5a27ab353b8ebb2ed336412af11285a318102833;hb=d0ed6fc898dc7575ec4683f6867402efff0d176b#l65
>>>
>>> It looks to be the same as for N950 which was told me a while ago to be the right one:
>>>
>>> http://lxr.free-electrons.com/source/arch/arm/boot/dts/omap3-n950-n9.dtsi#L179
>>>
>>> The error hints at: http://lxr.free-electrons.com/source/drivers/memory/omap-gpmc.c#L1602
>>>
>>> but what does
>>>
>>> /* Address-data multiplexing not supported for NAND devices */
>>> if (p->device_nand && p->mux_add_data)
>>>
>>> mean? And how do we (not) run into that condition being true through our DT bits?
>> Probably this patch should fix it:
>> diff --git a/arch/arm/boot/dts/omap3-gta04a5.dts
>> b/arch/arm/boot/dts/omap3-gta04a5.dts
>> index 5a27ab3..a14991e 100644
>> --- a/arch/arm/boot/dts/omap3-gta04a5.dts
>> +++ b/arch/arm/boot/dts/omap3-gta04a5.dts
>> @@ -69,7 +69,8 @@
>>
>> /* FIXME: special pinmuxrequired? compare omap3-n900.dts */
>>
>> - nand at 0,0 { /* reuse the nand node instead of creating a new
>> onenand node */
>> + onenand at 0,0 { /* reuse the nand node instead of creating a new
>> onenand node */
>
> ^^^ that one breaks "inheriting" the partition scheme because it creates
> another child node instead of switching it from standard-nand to onenand.
>
> And IMHO the node name should have no functional meaning, i.e. could
> be anything.
>
> Well, this is probably not upstreamable), but it is easier for initial testing
> to keep partition schemes in sync. They will likelyrecommend to #include
> the partition scheme
>
>> + compatible = "";
>
> ^^^ but this might be what we are missing!
>
> I think we could also /delete-property/ compatible;
>
>> #address-cells = <1>;
>> #size-cells = <1>;
>> reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
>>
>>>
>>> Anyone having a little time to investigate by code inspection?
>> the point is that we set compatible entry to compatible =
>> "ti,omap2-nand";
>
> Ah, that might set gpmc_s.device_nand = true. Yes, sounds reasonable.
>
>> in omap3-gta04.dtsi but when it's set then in
>> gpmc_probe_generic_child is set to: gpmc_s.device_nand = true; and we
>> also have p_mux_add_data set to 2 in DT (same as in n900). Can you
>> please try if my findings are correct? Many thanks.
>
> Many thanks for these ideas. Will try asap.
Short report:
did work a little better with the compatible = "" but still did not correctly "probe children".
Now I have done the /delete-node/ and spent a fresh 'onenand' node. Now, the gpmc initializes well:
[ 0.709960] driver_register 'omap-gpmc'
[ 0.897216] omap-gpmc 6e000000.gpmc: GPMC revision 5.0
[ 0.897552] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
root at letux:~#
But still no nand:
root at letux:~# dmesg|fgrep nand
[ 0.000000] Kernel command line: console=ttyO2,115200n8 mtdoops.mtddev=omap2.nand ubi.mtd=4 root=/dev/mmcblk0p2 rw rootfstype=ext4,ext3 rootwait console=ttyO2,115200n8 vram=12M omapfb.vram=0:8M,1:4M omapfb.rotate_type=0 omapdss.def_disp=lcd rootwait twl4030_charger.allow_usb=1 musb_hdrc.preserve_vbus=1 log_buf_len=8M ignore_loglevel earlyprintk
[ 3.703521] driver_register 'omap2-nand'
[ 3.717620] driver_register 'omap2-onenand'
[ 3.722473] omap2_onenand_probe
[ 3.727416] omap2-onenand omap2-onenand: initializing on CS0, phys base 0x01000000, virtual base f0900000, freq 83 MHz
[ 3.738922] onenand_chip_probe
[ 3.755859] onenand_wait: timeout4! ctrl=0x0000 intr=0x0000
root at letux:~#
This could now be hardware related (or pinmux like N900).
So I will push the "fix" so that we can base further work on top of it.
BR,
Nikolaus
More information about the Letux-kernel
mailing list