Parallel NOR via GPMC

27 views
Skip to first unread message

Lior Y. Benjamin

unread,
Dec 20, 2018, 10:56:13 AM12/20/18
to BeagleBoard
Sorry for multiple posts, I guess I posted it in the wrong forum, so I am posting here again:

 am trying to connect a parallel NOR over beaglebone black. I used the online TI PINMUX TOOL for that, and connected the NOR correspondingly.

Yet, although I see that the kernel code tries to identify any connected NOR device (I see the code reaching to the send-command functions), it ends up with:

of-flash 8000000.nor: do_map_probe() failed for type cfi_probe

What I observed using logic analyzer, is that the control lines, during CFI (WE, CS) are not toggled correctly, or at all.
Does any one have an idea?

my device tree is as follows

&am33xx_pinmux {

                bbcape_nor_flash_pins: bbcape_nor_flash_pins {

                                pinctrl-single,pins = <

                                                0x6c (PIN_OUTPUT | MUX_MODE4) /* (V17) gpmc_a11.gpmc_a27 */

                                                0x68 (PIN_OUTPUT | MUX_MODE4) /* (T16) gpmc_a10.gpmc_a26 */

                                                0x104 (PIN_OUTPUT | MUX_MODE1) /* (G18) mmc0_cmd.gpmc_a25 */

                                                0x100 (PIN_OUTPUT | MUX_MODE1) /* (G17) mmc0_clk.gpmc_a24 */

                                                0xfc (PIN_OUTPUT | MUX_MODE1) /* (G16) mmc0_dat0.gpmc_a23 */

                                                0xf8 (PIN_OUTPUT | MUX_MODE1) /* (G15) mmc0_dat1.gpmc_a22 */

                                                0xf4 (PIN_OUTPUT | MUX_MODE1) /* (F18) mmc0_dat2.gpmc_a21 */

                                                0xf0 (PIN_OUTPUT | MUX_MODE1) /* (F17) mmc0_dat3.gpmc_a20 */

                                                0xdc (PIN_OUTPUT | MUX_MODE1) /* (T5) lcd_data15.gpmc_a19 */

                                                0xd8 (PIN_OUTPUT | MUX_MODE1) /* (V4) lcd_data14.gpmc_a18 */

                                                0xd4 (PIN_OUTPUT | MUX_MODE1) /* (V3) lcd_data13.gpmc_a17 */

                                                0xd0 (PIN_OUTPUT | MUX_MODE1) /* (V2) lcd_data12.gpmc_a16 */

                                                0xcc (PIN_OUTPUT | MUX_MODE1) /* (U4) lcd_data11.gpmc_a15 */

                                                0xc8 (PIN_OUTPUT | MUX_MODE1) /* (U3) lcd_data10.gpmc_a14 */

                                                0xc4 (PIN_OUTPUT | MUX_MODE1) /* (U2) lcd_data9.gpmc_a13 */

                                                0xc0 (PIN_OUTPUT | MUX_MODE1) /* (U1) lcd_data8.gpmc_a12 */

                                                0xec (PIN_OUTPUT | MUX_MODE1) /* (R6) lcd_ac_bias_en.gpmc_a11 */

                                                0xe8 (PIN_OUTPUT | MUX_MODE1) /* (V5) lcd_pclk.gpmc_a10 */

                                                0xe4 (PIN_OUTPUT | MUX_MODE1) /* (R5) lcd_hsync.gpmc_a9 */

                                                0xe0 (PIN_OUTPUT | MUX_MODE1) /* (U5) lcd_vsync.gpmc_a8 */

                                                0xbc (PIN_OUTPUT | MUX_MODE1) /* (T4) lcd_data7.gpmc_a7 */

                                                0xb8 (PIN_OUTPUT | MUX_MODE1) /* (T3) lcd_data6.gpmc_a6 */

                                                0xb4 (PIN_OUTPUT | MUX_MODE1) /* (T2) lcd_data5.gpmc_a5 */

                                                0xb0 (PIN_OUTPUT | MUX_MODE1) /* (T1) lcd_data4.gpmc_a4 */

                                                0xac (PIN_OUTPUT | MUX_MODE1) /* (R4) lcd_data3.gpmc_a3 */

                                                0xa8 (PIN_OUTPUT | MUX_MODE1) /* (R3) lcd_data2.gpmc_a2 */

                                                0xa4 (PIN_OUTPUT | MUX_MODE1) /* (R2) lcd_data1.gpmc_a1 */

                                                0xa0 (PIN_OUTPUT | MUX_MODE1) /* (R1) lcd_data0.gpmc_a0 */

 

                                                0x1c (PIN_INPUT | MUX_MODE0) /* (T9) gpmc_ad7.gpmc_ad7 */

                                                0x18 (PIN_INPUT | MUX_MODE0) /* (R9) gpmc_ad6.gpmc_ad6 */

                                                0x14 (PIN_INPUT | MUX_MODE0) /* (V8) gpmc_ad5.gpmc_ad5 */

                                                0x10 (PIN_INPUT | MUX_MODE0) /* (U8) gpmc_ad4.gpmc_ad4 */

                                                0xc (PIN_INPUT | MUX_MODE0) /* (T8) gpmc_ad3.gpmc_ad3 */

                                                0x8 (PIN_INPUT | MUX_MODE0) /* (R8) gpmc_ad2.gpmc_ad2 */

                                                0x4 (PIN_INPUT | MUX_MODE0) /* (V7) gpmc_ad1.gpmc_ad1 */

                                                0x0 (PIN_INPUT | MUX_MODE0) /* (U7) gpmc_ad0.gpmc_ad0 */

 

                                                0x70 (PIN_INPUT | MUX_MODE0) /* (T17) gpmc_wait0.gpmc_wait0 */

                                                0x8c (PIN_INPUT | MUX_MODE2) /* (V12) gpmc_clk.gpmc_wait1 */

                                                0x74 (PIN_OUTPUT | MUX_MODE0) /* (U17) gpmc_wpn.gpmc_wpn */

                                                0x78 (PIN_OUTPUT | MUX_MODE0) /* (U18) gpmc_be1n.gpmc_be1n */

                                                0x94 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (T7) gpmc_oen_ren.gpmc_oen_ren */

                                                0x98 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (U6) gpmc_wen.gpmc_wen */

                                                0x7c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (V6) gpmc _csn0.gpmc_csn0 */

                                >;

                };

};

 

&elm {

                status = "okay";

};

 

&gpmc {

  status = "okay";

  /*

                ti,hwmods = "gpmc";

                interrupts = <20>;

                gpmc,num-cs = <8>;

                gpmc,num-waitpins = <4>;

                */

                #address-cells = <2>;

                #size-cells = <1>;

 

                ranges = <0 0 0x08000000 0x08000000>;

 

                nor@0,0 {

                                compatible = "cfi-flash";

                                pinctrl-names = "default";

                                pinctrl-0 = <&bbcape_nor_flash_pins>;

                                #address-cells = <1>;

                                #size-cells = <1>;

                                reg = <0 0 0x08000000>;

                                bank-width = <1>;

 

                                gpmc,mux-add-data;

                                gpmc,cs-on-ns = <0>;

                                gpmc,cs-rd-off-ns = <186>;

                                gpmc,cs-wr-off-ns = <186>;

                                gpmc,adv-on-ns = <12>;

                                gpmc,adv-rd-off-ns = <48>;

                                gpmc,adv-wr-off-ns = <48>;

                                gpmc,oe-on-ns = <54>;

                                gpmc,oe-off-ns = <168>;

                                gpmc,we-on-ns = <54>;

                                gpmc,we-off-ns = <168>;

                                gpmc,rd-cycle-ns = <186>;

                                gpmc,wr-cycle-ns = <186>;

                                gpmc,access-ns = <114>;

                                gpmc,page-burst-access-ns = <6>;

                                gpmc,bus-turnaround-ns = <12>;

                                gpmc,cycle2cycle-delay-ns = <18>;

                                gpmc,wr-data-mux-bus-ns = <90>;

                                gpmc,wr-access-ns = <186>;

                                gpmc,cycle2cycle-samecsen;

                                gpmc,cycle2cycle-diffcsen;

 

                                partition@0 {

                                                label = "bootloader-nor";

                                                reg = <0 0x40000>;

                                };

                                partition@0x40000 {

                                                label = "params-nor";

                                                reg = <0x40000 0x40000>;

                                };

                                partition@0x80000 {

                                                label = "kernel-nor";

                                                reg = <0x80000 0x200000>;

                                };

                                partition@0x280000 {

                                                label = "filesystem-nor";

                                                reg = <0x240000 0x7d80000>;

                                };

                };

};

 

 

Reply all
Reply to author
Forward
0 new messages