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.

am3352,已进入linux系统,且nandflash能用,现想加一块fpga模拟norflash

如题,

am335x-evm.dts

&gpmc {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&nandflash_pins_default>;
pinctrl-1 = <&nandflash_pins_sleep>;
ranges = <0 0 0x08000000 0x08000000>; /* CS0: NAND */
nand@0,0 { 。。。 }

gpmc-nor.txt

gpmc: gpmc@6e000000 {
compatible = "ti,omap3430-gpmc", "simple-bus";
ti,hwmods = "gpmc";
reg = <0x6e000000 0x1000>;
interrupts = <20>;
gpmc,num-cs = <8>;
gpmc,num-waitpins = <4>;
#address-cells = <2>;
#size-cells = <1>;

ranges = <0 0 0x10000000 0x08000000>;

nor@0,0 { ... }

请问我能按照gpmc-nor.txt里面的说明,在我的am335x-evm.dts的nand节点后面添加nor节点吗

ps:效果是想把fpga当做norflash设备进行通讯

  • 这是可以的

    接fpga可以模拟成nor

  • 可以的,注意片选信号

  • 我想请问,我的dts像下面这样写行吗(加粗为添加的,时序是否正确暂时不管),

    nand启动,fpga模拟norflash进行通讯,nor接再CS1上

    am33xx.dtsi

    gpmc: gpmc@50000000 {
    compatible = "ti,am3352-gpmc";
    ti,hwmods = "gpmc";
    ti,no-idle-on-init;
    reg = <0x50000000 0x2000>;
    interrupts = <100>;
    gpmc,num-cs = <7>;
    gpmc,num-waitpins = <2>;
    #address-cells = <2>;
    #size-cells = <1>;
    status = "disabled";
    };

    am335x-evm.dts

    &gpmc {
    status = "okay";
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&nandflash_pins_default>;
    pinctrl-1 = <&nandflash_pins_sleep>;

    pinctl - names = "default", "sleep"
    pinctrl-0 = <&nor_pins_default>;
    pinctrl-1 = <&nor_pins_sleep>;

    ranges = <0 0 0x08000000 0x08000000>; /* CS0: NAND */
    ranges = <1 0 0x10000000 0x08000000>; /* CS1: NOR */

    nand@0,0 {
    reg = <0 0 0>; /* CS0, offset 0 */
    ti,nand-ecc-opt = "bch8";
    ti,elm-id = <&elm>;
    nand-bus-width = <8>;
    gpmc,device-width = <1>;
    gpmc,sync-clk-ps = <0>;
    gpmc,cs-on-ns = <0>;
    gpmc,cs-rd-off-ns = <44>;
    gpmc,cs-wr-off-ns = <44>;
    gpmc,adv-on-ns = <6>;
    gpmc,adv-rd-off-ns = <34>;
    gpmc,adv-wr-off-ns = <44>;
    gpmc,we-on-ns = <0>;
    gpmc,we-off-ns = <40>;
    gpmc,oe-on-ns = <0>;
    gpmc,oe-off-ns = <54>;
    gpmc,access-ns = <64>;
    gpmc,rd-cycle-ns = <82>;
    gpmc,wr-cycle-ns = <82>;
    gpmc,wait-on-read = "true";
    gpmc,wait-on-write = "true";
    gpmc,bus-turnaround-ns = <0>;
    gpmc,cycle2cycle-delay-ns = <0>;
    gpmc,clk-activation-ns = <0>;
    gpmc,wait-monitoring-ns = <0>;
    gpmc,wr-access-ns = <40>;
    gpmc,wr-data-mux-bus-ns = <0>;
    /* MTD partition table */
    /* All SPL-* partitions are sized to minimal length
    * which can be independently programmable. For
    * NAND flash this is equal to size of erase-block */
    #address-cells = <1>;
    #size-cells = <1>;
    partition@0 {
    label = "NAND.SPL";
    reg = <0x00000000 0x000020000>;
    };
    partition@1 {
    label = "NAND.SPL.backup1";
    reg = <0x00020000 0x00020000>;
    };
    partition@2 {
    label = "NAND.SPL.backup2";
    reg = <0x00040000 0x00020000>;
    };
    partition@3 {
    label = "NAND.SPL.backup3";
    reg = <0x00060000 0x00020000>;
    };
    partition@4 {
    label = "NAND.u-boot-spl-os";
    reg = <0x00080000 0x00040000>;
    };
    partition@5 {
    label = "NAND.u-boot";
    reg = <0x000C0000 0x00100000>;
    };
    partition@6 {
    label = "NAND.u-boot-env";
    reg = <0x001C0000 0x00020000>;
    };
    partition@7 {
    label = "NAND.u-boot-env.backup1";
    reg = <0x001E0000 0x00020000>;
    };
    partition@8 {
    label = "NAND.kernel";
    reg = <0x00200000 0x00800000>;
    };
    partition@9 {
    label = "NAND.file-system";
    reg = <0x00A00000 0x07600000>;
    };
    };

    nor@0,0 {
    compatible = "cfi-flash";
    linux,mtd-name= "intel,pf48f6000m0y1be";
    #address-cells = <1>;
    #size-cells = <1>;
    reg = <0 0 0x08000000>;
    bank-width = <2>;

    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;
    };
    };