This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/am3359: GPMC configuration question

Part Number: AM3359

Tool/software: Linux

Hi,

i wan't to connect a second device to the GPMC Interface of the AM335x
and need support to write the correct device tree file.

The first memory is a nand flash,
the second is a PowerLine Phy which is connected by a synchronous FIFO Interface as a "memory".

    DAT[7:0]    <->    GPMC_AD0-7
    TXEN        <-    GPIO0_18
    CRS            ->    GPIO2_8
    /BUFWR        <-    GPMC_WE
    RXDV        ->    GPIO1_17
    RXER        ->    GPIO0_31
    /BUFRD        <-    GPMC_RE
    /BUFCS        <-    GPMC_CS1
    CLK            <-    GPMC_CLK
    
I started this way, but got problems by starting the kernel:

&gpmc {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&nandflash_pins>;
    ranges = <0 0 0x08000000 0x1000000>,       /* CS0: NAND */
             <1 0 0x18000000 0x1000000>;       /* CS1: phy_mem */
    nandflash: nand@0,0 {
        compatible = "ti,omap2-nand";
        reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
        interrupt-parent = <&gpmc>;
        interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                     <1 IRQ_TYPE_NONE>;    /* termcount */
        rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
        nand-bus-width = <8>;
        ti,nand-ecc-opt = "bch8";
        gpmc,device-nand = "true";
        gpmc,device-width = <1>;
        gpmc,sync-clk-ps = <0>;
        gpmc,cs-on-ns = <0>;
        gpmc,cs-rd-off-ns = <30>;
        gpmc,cs-wr-off-ns = <30>;
        gpmc,adv-on-ns = <0>;
        gpmc,adv-rd-off-ns = <30>;
        gpmc,adv-wr-off-ns = <30>;
        gpmc,we-on-ns = <0>;
        gpmc,we-off-ns = <20>;
        gpmc,oe-on-ns = <10>;
        gpmc,oe-off-ns = <30>;
        gpmc,access-ns = <30>;
        gpmc,rd-cycle-ns = <30>;
        gpmc,wr-cycle-ns = <30>;
        gpmc,bus-turnaround-ns = <0>;
        gpmc,cycle2cycle-delay-ns = <50>;
        gpmc,cycle2cycle-diffcsen;
        gpmc,clk-activation-ns = <0>;
        gpmc,wr-access-ns = <30>;
        gpmc,wr-data-mux-bus-ns = <0>;

        ti,elm-id = <&elm>;

        #address-cells = <1>;
        #size-cells = <1>;
    };
    phy_ram: phy_ram@1,0 {
        compatible = "phy_ram";
        reg = <1 0 0x01000000>; /* CS1, offset 0, IO size 4 */
        //clock-frequency = <40000000>;
        ///*gpmc,burst-write;*/
        ///*gpmc,burst-read;*/
        ///*gpmc,burst-wrap;*/
        gpmc,sync-read; /* GPMC_CONFIG1_READTYPE_ASYNC */
        gpmc,sync-write; /* GPMC_CONFIG1_WRITETYPE_ASYNC */
        ////gpmc,clk-activation-ns = <0>; /* GPMC_CONFIG1_CLKACTIVATIONTIME(2) */
        ////gpmc,burst-length = <16>; /* GPMC_CONFIG1_PAGE_LEN(2) */
        ////gpmc,mux-add-data = <2>; /* GPMC_CONFIG1_MUXTYPE(2) */
        //gpmc,device-width = <1>;
        gpmc,sync-clk-ps = <20000>; /* CONFIG2 */
        //rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
        //gpmc,cs-on-ns = <0>;
        //gpmc,cs-rd-off-ns = <100>;
        //gpmc,cs-wr-off-ns = <40>;

        //gpmc,adv-on-ns = <0>; /* CONFIG3 */
        //gpmc,adv-rd-off-ns = <20>;
        //gpmc,adv-wr-off-ns = <20>;

        //gpmc,we-on-ns = <20>; /* CONFIG4 */
        //gpmc,we-off-ns = <40>;
        //gpmc,oe-on-ns = <20>;
        //gpmc,oe-off-ns = <100>;

        //gpmc,page-burst-access-ns = <20>; /* CONFIG 5 */
        //gpmc,access-ns = <80>;
        //gpmc,rd-cycle-ns = <120>;
        //gpmc,wr-cycle-ns = <60>;
        //gpmc,wr-access-ns = <40>; /* CONFIG 6 */
        //gpmc,wr-data-mux-bus-ns = <20>;

        ///*gpmc,bus-turnaround-ns = <40>;*/ /* CONFIG6:3:0 = 4 */
        //gpmc,cycle2cycle-samecsen; /* CONFIG6:7 = 1 */
        //gpmc,cycle2cycle-delay-ns = <20>; /* CONFIG6:11:8 = 4 */
        
        gpmc,wait-on-read = "true"; /* wait operation enabling for read operation */
        gpmc,wait-on-write = "true"; /* wait operation enabling for write operation */
    };
};


Can someone give me some hints what i have to do for a correct configuration?

Thanks

DSP-SB


  • The software team have been notified. They will respond here.
  • Hello DSP-SB,

    Please, refer to this thread.

    Best regards,
    Kemal

  • Hi Kemal,

    i checked the other threads and adjusted my dts File.
    So I don't use a second Memory, i use a PowerLine Phy, in that case I refered to SMSC Lan9221 Configuration.


    &gpmc {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&nandflash_pins>;
    ranges = <0 0 0x08000000 0x1000000>, /* CS0: NAND */
    <1 0 0x09000000 0x1000000>; /* CS1: pl_phy*/

    nandflash: nand@0,0 {
    compatible = "ti,omap2-nand";
    reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
    interrupt-parent = <&gpmc>;
    interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
    <1 IRQ_TYPE_NONE>; /* termcount */
    rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
    nand-bus-width = <8>;
    ti,nand-ecc-opt = "bch8";
    gpmc,device-nand = "true";
    gpmc,device-width = <1>;
    gpmc,sync-clk-ps = <0>;
    gpmc,cs-on-ns = <0>;
    gpmc,cs-rd-off-ns = <30>;
    gpmc,cs-wr-off-ns = <30>;
    gpmc,adv-on-ns = <0>;
    gpmc,adv-rd-off-ns = <30>;
    gpmc,adv-wr-off-ns = <30>;
    gpmc,we-on-ns = <0>;
    gpmc,we-off-ns = <20>;
    gpmc,oe-on-ns = <10>;
    gpmc,oe-off-ns = <30>;
    gpmc,access-ns = <30>;
    gpmc,rd-cycle-ns = <30>;
    gpmc,wr-cycle-ns = <30>;
    gpmc,bus-turnaround-ns = <0>;
    gpmc,cycle2cycle-delay-ns = <50>;
    gpmc,cycle2cycle-diffcsen;
    gpmc,clk-activation-ns = <0>;
    gpmc,wr-access-ns = <30>;
    gpmc,wr-data-mux-bus-ns = <0>;

    ti,elm-id = <&elm>;

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

    pl_phy: ethernet@1,0 {
    reg = <1 0 0xff>; /* CS1, offset 0, IO size 4 */
    bank-width = <1>;

    //clock-frequency = <40000000>;
    gpmc,sync-read; /* GPMC_CONFIG1_READTYPE_ASYNC */
    gpmc,sync-write; /* GPMC_CONFIG1_WRITETYPE_ASYNC */
    gpmc,sync-clk-ps = <20000>; /* CONFIG2 */

    gpmc,wait-on-read = "true"; /* wait operation enabling for read operation */
    gpmc,wait-on-write = "true"; /* wait operation enabling for write operation */
    };
    };


    If I would have a second memory I could check my devicetree in /proc/iomem but how can I check my devicetree by using this ethernet configuration?

    I got this kernel messages:

    [ 2.098303] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [ 2.104264] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [ 2.113767] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xdc
    [ 2.121339] nand: Micron MT29F4G08ABADAH4
    [ 2.125707] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [ 2.133719] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [ 2.139457] 8 ofpart partitions found on MTD device 8000000.nand
    [ 2.145776] Creating 8 MTD partitions on "8000000.nand":
    [ 2.151413] 0x000000000000-0x000000020000 : "xload"
    [ 2.159761] 0x000000020000-0x000000040000 : "xload_backup1"
    [ 2.169859] 0x000000040000-0x000000060000 : "xload_backup2"
    [ 2.179864] 0x000000060000-0x000000080000 : "xload_backup3"
    [ 2.189685] 0x000000080000-0x000000100000 : "barebox"
    [ 2.199364] 0x000000100000-0x000000180000 : "barebox_backup"
    [ 2.209556] 0x000000180000-0x0000001c0000 : "bareboxenv"
    [ 2.219479] 0x0000001c0000-0x000020000000 : "root"
    [ 2.418697] ------------[ cut here ]------------
    [ 2.424661] WARNING: CPU: 0 PID: 16 at drivers/memory/omap-gpmc.c:1994 gpmc_probe_generic_child+0x3f0/0x7d8()
    [ 2.435303] enable GPMC debug to configure .dts timings for CS1
    [ 2.441569] Modules linked in:
    [ 2.444808] CPU: 0 PID: 16 Comm: kworker/u2:1 Not tainted 4.4.19-rt27-00002-gbcaf5b6504d0-dirty #27
    [ 2.455873] Hardware name: Generic AM33XX (Flattened Device Tree)
    [ 2.462324] Workqueue: deferwq deferred_probe_work_func
    [ 2.467862] Backtrace:
    [ 2.470513] [<c001b634>] (dump_backtrace) from [<c001b880>] (show_stack+0x20/0x24)
    [ 2.478497] r7:c05a3964 r6:00000009 r5:000007ca r4:00000000
    [ 2.484588] [<c001b860>] (show_stack) from [<c035c9e8>] (dump_stack+0x20/0x28)
    [ 2.492242] [<c035c9c8>] (dump_stack) from [<c004acf8>] (warn_slowpath_common+0x88/0xc0)
    [ 2.500784] [<c004ac70>] (warn_slowpath_common) from [<c004ad70>] (warn_slowpath_fmt+0x40/0x48)
    [ 2.509958] r8:c0bec030 r7:00000000 r6:00000000 r5:df1ff000 r4:c0963ff8
    [ 2.517153] [<c004ad34>] (warn_slowpath_fmt) from [<c05a3964>] (gpmc_probe_generic_child+0x3f0/0x7d8)
    [ 2.526863] r3:00000001 r2:c0963ff8
    [ 2.530690] r4:df9d80dc
    [ 2.533410] [<c05a3574>] (gpmc_probe_generic_child) from [<c05a4168>] (gpmc_probe+0x41c/0x5a8)
    [ 2.542498] r10:c0b79de0 r9:df1ff000 r8:df5fa094 r7:c0964360 r6:df5fa010 r5:df9d80dc
    [ 2.550873] r4:00000000
    [ 2.553597] [<c05a3d4c>] (gpmc_probe) from [<c0412380>] (platform_drv_probe+0x60/0xc0)
    [ 2.561956] r10:00000001 r9:c0b79e0c r8:c0b96120 r7:fffffdfb r6:c0b79e0c r5:ffffffed
    [ 2.570329] r4:df1ff010
    [ 2.573048] [<c0412320>] (platform_drv_probe) from [<c04101a4>] (driver_probe_device+0x224/0x480)
    [ 2.582406] r7:00000000 r6:c0bea31c r5:c0bea30c r4:df1ff010
    [ 2.588495] [<c040ff80>] (driver_probe_device) from [<c0410534>] (__device_attach_driver+0x94/0xbc)
    [ 2.598044] r10:0df19640 r9:c0928db8 r8:c0b96120 r7:00000001 r6:df1ff010 r5:df199e70
    [ 2.606419] r4:c0b79e0c
    [ 2.609139] [<c04104a0>] (__device_attach_driver) from [<c040dff0>] (bus_for_each_drv+0x74/0xa8)
    [ 2.618405] r7:00000001 r6:c04104a0 r5:df199e70 r4:00000000
    [ 2.624494] [<c040df7c>] (bus_for_each_drv) from [<c040fe68>] (__device_attach+0xbc/0x150)
    [ 2.633217] r6:c0b51a38 r5:df1ff044 r4:df1ff010
    [ 2.638149] [<c040fdac>] (__device_attach) from [<c04105b8>] (device_initial_probe+0x1c/0x20)
    [ 2.647132] r7:c0b96120 r6:c0b51a38 r5:df1ff010 r4:df1ff010
    [ 2.653224] [<c041059c>] (device_initial_probe) from [<c040f144>] (bus_probe_device+0x94/0x9c)
    [ 2.662322] [<c040f0b0>] (bus_probe_device) from [<c040f64c>] (deferred_probe_work_func+0x48/0xd4)
    [ 2.671771] r7:c0b96120 r6:c0bea30c r5:c0b51830 r4:df1ff010
    [ 2.677863] [<c040f604>] (deferred_probe_work_func) from [<c0063008>] (process_one_work+0x1d0/0x500)
    [ 2.687501] r9:c0b8e33c r8:df196400 r7:00000000 r6:df09b000 r5:df082e00 r4:c0b5185c
    [ 2.695790] [<c0062e38>] (process_one_work) from [<c0063964>] (worker_thread+0x48/0x584)
    [ 2.704318] r10:df082e00 r9:df09b000 r8:00000088 r7:df198000 r6:df09b024 r5:df082e18
    [ 2.712690] r4:df09b000
    [ 2.715417] [<c006391c>] (worker_thread) from [<c0069048>] (kthread+0xd8/0xf8)
    [ 2.723040] r10:00000000 r9:00000000 r8:00000000 r7:c006391c r6:df082e00 r5:df1915c0
    [ 2.731420] r4:00000000
    [ 2.734151] [<c0068f70>] (kthread) from [<c0016a38>] (ret_from_fork+0x14/0x3c)
    [ 2.741771] r7:00000000 r6:00000000 r5:c0068f70 r4:df1915c0
    [ 2.747850] ---[ end trace 0000000000000002 ]---


    What are the next steps?

    Thanks

    DSP-SB

  • Please, check this thread for ethernet.

  • Hi Kemal,

    this is what i did.

    But there is no explanation about my kernel log and how i can check if the device tree is okay.

    Best Regards

    DSP-SB
  • Can you enable the Device Drivers  ---> Memory Controller drivers  ---> [*]   Enable GPMC debug output and skip reset of GPMC during init in kernel's menuconfig and attach the full boot log?

  • Hi Kemal,

    here is my Log:

    [ 2.096629] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [ 2.103718] gpmc cs0 before gpmc_cs_program_settings:
    [ 2.109567] cs0 GPMC_CS_CONFIG1: 0x00000800
    [ 2.114191] cs0 GPMC_CS_CONFIG2: 0x00030300
    [ 2.118621] cs0 GPMC_CS_CONFIG3: 0x00030300
    [ 2.123062] cs0 GPMC_CS_CONFIG4: 0x02000301
    [ 2.127462] cs0 GPMC_CS_CONFIG5: 0x00030303
    [ 2.131889] cs0 GPMC_CS_CONFIG6: 0x00000540
    [ 2.136327] gpmc cs0 access configuration:
    [ 2.140637] gpmc,mux-add-data = <0>
    [ 2.144344] gpmc,device-width = <0>
    [ 2.148055] gpmc,wait-pin = <0>
    [ 2.151362] gpmc,burst-length = <4>
    [ 2.155074] gpmc,cycle2cycle-diffcsen = <1>
    [ 2.159512] gpmc cs0 timings configuration:
    [ 2.163919] gpmc,cs-on-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.169719] gpmc,cs-rd-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.176173] gpmc,cs-wr-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.182625] gpmc,adv-on-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.188529] gpmc,adv-rd-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.195067] gpmc,adv-wr-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.201610] gpmc,oe-on-ns = <10> /* 1 ns - 10 ns; 1 ticks */
    [ 2.207562] gpmc,oe-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.213716] gpmc,we-on-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.219528] gpmc,we-off-ns = <20> /* 11 ns - 20 ns; 2 ticks */
    [ 2.225704] gpmc,rd-cycle-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.232065] gpmc,wr-cycle-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.238424] gpmc,access-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.244559] gpmc,page-burst-access-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.251443] gpmc,bus-turnaround-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.258079] gpmc,cycle2cycle-delay-ns = <50> /* 41 ns - 50 ns; 5 ticks */
    [ 2.265262] gpmc,wait-monitoring-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.271989] gpmc,clk-activation-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.278623] gpmc,wr-data-mux-bus-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.285347] gpmc,wr-access-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.291531] GPMC CS0: cs_on : 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.299441] GPMC CS0: cs_rd_off : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.307352] GPMC CS0: cs_wr_off : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.315265] GPMC CS0: adv_on : 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.323175] GPMC CS0: adv_rd_off : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.331086] GPMC CS0: adv_wr_off : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.338995] GPMC CS0: oe_on : 1 ticks, 10 ns (was 1 ticks) 10 ns
    [ 2.346905] GPMC CS0: oe_off : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.354817] GPMC CS0: we_on : 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.362722] GPMC CS0: we_off : 2 ticks, 20 ns (was 2 ticks) 20 ns
    [ 2.370633] GPMC CS0: rd_cycle : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.378541] GPMC CS0: wr_cycle : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.386449] GPMC CS0: access : 3 ticks, 30 ns (was 3 ticks) 30 ns
    [ 2.394358] GPMC CS0: page_burst_access: 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.402267] GPMC CS0: bus_turnaround : 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.410178] GPMC CS0: cycle2cycle_delay: 5 ticks, 50 ns (was 5 ticks) 50 ns
    [ 2.418083] GPMC CS0: wr_data_mux_bus : 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.425996] GPMC CS0: wr_access : 3 ticks, 30 ns (was 0 ticks) 30 ns
    [ 2.433908] GPMC CS0: wait_monitoring : 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.441814] GPMC CS0: clk_activation : 0 ticks, 0 ns (was 0 ticks) 0 ns
    [ 2.449722] GPMC CS0 CLK period is 10 ns (div 1)
    [ 2.454621] gpmc cs0 after gpmc_cs_set_timings:
    [ 2.459426] cs0 GPMC_CS_CONFIG1: 0x00000800
    [ 2.463825] cs0 GPMC_CS_CONFIG2: 0x00030300
    [ 2.468252] cs0 GPMC_CS_CONFIG3: 0x00030300
    [ 2.472694] cs0 GPMC_CS_CONFIG4: 0x02000301
    [ 2.477091] cs0 GPMC_CS_CONFIG5: 0x00030303
    [ 2.481523] cs0 GPMC_CS_CONFIG6: 0x03000540
    [ 2.485919] gpmc cs0 access configuration:
    [ 2.490253] gpmc,mux-add-data = <0>
    [ 2.493924] gpmc,device-width = <0>
    [ 2.497614] gpmc,wait-pin = <0>
    [ 2.500919] gpmc,burst-length = <4>
    [ 2.504620] gpmc,cycle2cycle-diffcsen = <1>
    [ 2.509059] gpmc cs0 timings configuration:
    [ 2.513463] gpmc,cs-on-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.519261] gpmc,cs-rd-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.525717] gpmc,cs-wr-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.532170] gpmc,adv-on-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.538076] gpmc,adv-rd-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.544618] gpmc,adv-wr-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.551155] gpmc,oe-on-ns = <10> /* 1 ns - 10 ns; 1 ticks */
    [ 2.557105] gpmc,oe-off-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.563260] gpmc,we-on-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.569075] gpmc,we-off-ns = <20> /* 11 ns - 20 ns; 2 ticks */
    [ 2.575253] gpmc,rd-cycle-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.581611] gpmc,wr-cycle-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.587930] gpmc,access-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.594078] gpmc,page-burst-access-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.600987] gpmc,bus-turnaround-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.607623] gpmc,cycle2cycle-delay-ns = <50> /* 41 ns - 50 ns; 5 ticks */
    [ 2.614803] gpmc,wait-monitoring-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.621525] gpmc,clk-activation-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.628157] gpmc,wr-data-mux-bus-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 2.634839] gpmc,wr-access-ns = <30> /* 21 ns - 30 ns; 3 ticks */
    [ 2.643170] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xdc
    [ 2.650467] nand: Micron MT29F4G08ABADAH4
    [ 2.654840] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [ 2.662850] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [ 2.668585] 8 ofpart partitions found on MTD device 8000000.nand
    [ 2.674909] Creating 8 MTD partitions on "8000000.nand":
    [ 2.680544] 0x000000000000-0x000000020000 : "xload"
    [ 2.688880] 0x000000020000-0x000000040000 : "xload_backup1"
    [ 2.698873] 0x000000040000-0x000000060000 : "xload_backup2"
    [ 2.708799] 0x000000060000-0x000000080000 : "xload_backup3"
    [ 2.718846] 0x000000080000-0x000000100000 : "barebox"
    [ 2.728512] 0x000000100000-0x000000180000 : "barebox_backup"
    [ 2.738781] 0x000000180000-0x0000001c0000 : "bareboxenv"
    [ 2.748660] 0x0000001c0000-0x000020000000 : "root"
    [ 2.949767] ------------[ cut here ]------------
    [ 2.955609] WARNING: CPU: 0 PID: 16 at drivers/memory/omap-gpmc.c:1994 gpmc_probe_generic_child+0x3f0/0x804()
    [ 2.966253] enable GPMC debug to configure .dts timings for CS1
    [ 2.972516] Modules linked in:
    [ 2.975752] CPU: 0 PID: 16 Comm: kworker/u2:1 Not tainted 4.4.19-rt27-00004-g347d37f-dirty #29
    [ 2.986362] Hardware name: Generic AM33XX (Flattened Device Tree)
    [ 2.992817] Workqueue: deferwq deferred_probe_work_func
    [ 2.998358] Backtrace:
    [ 3.001007] [<c001b634>] (dump_backtrace) from [<c001b880>] (show_stack+0x20/0x24)
    [ 3.009051] r7:c05a43f8 r6:00000009 r5:000007ca r4:00000000
    [ 3.015100] [<c001b860>] (show_stack) from [<c035c9e8>] (dump_stack+0x20/0x28)
    [ 3.022733] [<c035c9c8>] (dump_stack) from [<c004acf8>] (warn_slowpath_common+0x88/0xc0)
    [ 3.031276] [<c004ac70>] (warn_slowpath_common) from [<c004ad70>] (warn_slowpath_fmt+0x40/0x48)
    [ 3.040448] r8:c0bec030 r7:00000000 r6:00000000 r5:df1ff000 r4:c096540c
    [ 3.047644] [<c004ad34>] (warn_slowpath_fmt) from [<c05a43f8>] (gpmc_probe_generic_child+0x3f0/0x804)
    [ 3.057359] r3:00000001 r2:c096540c
    [ 3.061183] r4:df9d80a8
    [ 3.063903] [<c05a4008>] (gpmc_probe_generic_child) from [<c05a4c28>] (gpmc_probe+0x41c/0x5a8)
    [ 3.072994] r10:c0b79de0 r9:df1ff000 r8:df5f7094 r7:c09657c0 r6:df5f7010 r5:df9d80a8
    [ 3.081370] r4:00000000
    [ 3.084090] [<c05a480c>] (gpmc_probe) from [<c0412380>] (platform_drv_probe+0x60/0xc0)
    [ 3.092448] r10:00000001 r9:c0b79e0c r8:c0b96120 r7:fffffdfb r6:c0b79e0c r5:ffffffed
    [ 3.100822] r4:df1ff010
    [ 3.103545] [<c0412320>] (platform_drv_probe) from [<c04101a4>] (driver_probe_device+0x224/0x480)
    [ 3.112902] r7:00000000 r6:c0bea31c r5:c0bea30c r4:df1ff010
    [ 3.118991] [<c040ff80>] (driver_probe_device) from [<c0410534>] (__device_attach_driver+0x94/0xbc)
    [ 3.128542] r10:0df19790 r9:c0929ddc r8:c0b96120 r7:00000001 r6:df1ff010 r5:df199e70
    [ 3.136913] r4:c0b79e0c
    [ 3.139633] [<c04104a0>] (__device_attach_driver) from [<c040dff0>] (bus_for_each_drv+0x74/0xa8)
    [ 3.148904] r7:00000001 r6:c04104a0 r5:df199e70 r4:00000000
    [ 3.154988] [<c040df7c>] (bus_for_each_drv) from [<c040fe68>] (__device_attach+0xbc/0x150)
    [ 3.163716] r6:c0b51a38 r5:df1ff044 r4:df1ff010
    [ 3.168657] [<c040fdac>] (__device_attach) from [<c04105b8>] (device_initial_probe+0x1c/0x20)
    [ 3.177628] r7:c0b96120 r6:c0b51a38 r5:df1ff010 r4:df1ff010
    [ 3.183717] [<c041059c>] (device_initial_probe) from [<c040f144>] (bus_probe_device+0x94/0x9c)
    [ 3.192819] [<c040f0b0>] (bus_probe_device) from [<c040f64c>] (deferred_probe_work_func+0x48/0xd4)
    [ 3.202267] r7:c0b96120 r6:c0bea30c r5:c0b51830 r4:df1ff010
    [ 3.208366] [<c040f604>] (deferred_probe_work_func) from [<c0063008>] (process_one_work+0x1d0/0x500)
    [ 3.217997] r9:c0b8e33c r8:df197900 r7:00000000 r6:df09b000 r5:df082e00 r4:c0b5185c
    [ 3.226289] [<c0062e38>] (process_one_work) from [<c0063964>] (worker_thread+0x48/0x584)
    [ 3.234809] r10:df082e00 r9:df09b000 r8:00000088 r7:df198000 r6:df09b024 r5:df082e18
    [ 3.243188] r4:df09b000
    [ 3.245908] [<c006391c>] (worker_thread) from [<c0069048>] (kthread+0xd8/0xf8)
    [ 3.253539] r10:00000000 r9:00000000 r8:00000000 r7:c006391c r6:df082e00 r5:df191640
    [ 3.261913] r4:00000000
    [ 3.264648] [<c0068f70>] (kthread) from [<c0016a38>] (ret_from_fork+0x14/0x3c)
    [ 3.272264] r7:00000000 r6:00000000 r5:c0068f70 r4:df191640
    [ 3.278350] ---[ end trace 0000000000000002 ]---
    [ 3.283249] gpmc cs1 please add GPMC bootloader timings to .dts:
    [ 3.289604] cs1 GPMC_CS_CONFIG1: 0x00001000
    [ 3.294004] cs1 GPMC_CS_CONFIG2: 0x00101001
    [ 3.298446] cs1 GPMC_CS_CONFIG3: 0x22060514
    [ 3.302889] cs1 GPMC_CS_CONFIG4: 0x10057016
    [ 3.307328] cs1 GPMC_CS_CONFIG5: 0x010f1111
    [ 3.311729] cs1 GPMC_CS_CONFIG6: 0x8f070000
    [ 3.316160] gpmc cs1 access configuration:
    [ 3.320471] gpmc,mux-add-data = <0>
    [ 3.324158] gpmc,device-width = <1>
    [ 3.327827] gpmc,wait-pin = <0>
    [ 3.331162] gpmc,burst-length = <4>
    [ 3.334837] gpmc cs1 timings configuration:
    [ 3.339266] gpmc,cs-on-ns = <10> /* 1 ns - 10 ns; 1 ticks */
    [ 3.345262] gpmc,cs-rd-off-ns = <160> /* 151 ns - 160 ns; 16 ticks */
    [ 3.352081] gpmc,cs-wr-off-ns = <160> /* 151 ns - 160 ns; 16 ticks */
    [ 3.358901] gpmc,adv-on-ns = <40> /* 31 ns - 40 ns; 4 ticks */
    [ 3.365080] gpmc,adv-rd-off-ns = <50> /* 41 ns - 50 ns; 5 ticks */
    [ 3.371626] gpmc,adv-wr-off-ns = <60> /* 51 ns - 60 ns; 6 ticks */
    [ 3.378168] gpmc,oe-on-ns = <60> /* 51 ns - 60 ns; 6 ticks */
    [ 3.384254] gpmc,oe-off-ns = <160> /* 151 ns - 160 ns; 16 ticks */
    [ 3.390797] gpmc,we-on-ns = <50> /* 41 ns - 50 ns; 5 ticks */
    [ 3.396883] gpmc,we-off-ns = <160> /* 151 ns - 160 ns; 16 ticks */
    [ 3.403382] gpmc,rd-cycle-ns = <170> /* 161 ns - 170 ns; 17 ticks */
    [ 3.410084] gpmc,wr-cycle-ns = <170> /* 161 ns - 170 ns; 17 ticks */
    [ 3.416807] gpmc,access-ns = <150> /* 141 ns - 150 ns; 15 ticks */
    [ 3.423349] gpmc,page-burst-access-ns = <10> /* 1 ns - 10 ns; 1 ticks */
    [ 3.430437] gpmc,bus-turnaround-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 3.437070] gpmc,cycle2cycle-delay-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 3.443975] gpmc,wait-monitoring-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 3.450698] gpmc,clk-activation-ns = <0> /* 0 ns - 0 ns; 0 ticks */
    [ 3.457289] gpmc,wr-data-mux-bus-ns = <70> /* 61 ns - 70 ns; 7 ticks */
    [ 3.464267] gpmc,wr-access-ns = <150> /* 141 ns - 150 ns; 15 ticks */


    Best Regards

    DSP-SB