Tool/software: Linux
Hi,
In a previous thread I asked how to stop the kernel from reconfiguring the GPMC parameters set by the bootloader (the thread was locked due to inactivity, I had to stay away from work and just got around recently to investigating this issue further). I received a reply telling me to use the "ti,no-reset-on-init" setting in the .dts file, but this seems to cause the kernel to crash because it can't mount /.
Original .dts node:
&gpmc { status = "okay"; ranges = <0 0 0x01000000 0x10000000>; /* CS0: 256MB */ nand@0,0 { compatible = "ti,omap2-nand"; reg = <0 0 8>; /* 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 */ 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 = <25>; gpmc,cs-wr-off-ns = <25>; gpmc,adv-on-ns = <0>; gpmc,adv-rd-off-ns = <25>; gpmc,adv-wr-off-ns = <25>; gpmc,we-on-ns = <0>; gpmc,we-off-ns = <10>; gpmc,oe-on-ns = <0>; gpmc,oe-off-ns = <10>; gpmc,access-ns = <20>; gpmc,rd-cycle-ns = <25>; gpmc,wr-cycle-ns = <25>; gpmc,wr-access-ns = <0>; 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 = "SPL"; reg = <0x00000000 0x000020000>; }; partition@1 { label = "SPL.backup1"; reg = <0x00020000 0x00020000>; }; partition@2 { label = "SPL.backup2"; reg = <0x00040000 0x00020000>; }; partition@3 { label = "SPL.backup3"; reg = <0x00060000 0x00020000>; }; partition@4 { label = "u-boot"; reg = <0x00080000 0x00080000>; }; partition@5 { label = "u-boot.backup1"; reg = <0x00100000 0x00080000>; }; partition@6 { label = "u-boot.backup2"; reg = <0x00180000 0x00080000>; }; partition@7 { label = "u-boot.backup3"; reg = <0x00200000 0x00080000>; }; partition@8 { label = "kernel"; reg = <0x00280000 0x00500000>; }; partition@9 { label = "fs"; reg = <0x00780000 0x01400000>; }; partition@10 { label = "drivers"; reg = <0x01b80000 0x004e0000>; }; partition@11 { label = "dtb"; reg = <0x02060000 0x00020000>; }; partition@12 { label = "app"; reg = <0x02080000 0x00a00000>; }; partition@13 { label = "upgd"; reg = <0x02a80000 0x00200000>; }; partition@14 { label = "hwinfo"; reg = <0x02c80000 0x00100000>; }; partition@15 { label = "dmin"; reg = <0x02d80000 0x00a00000>; }; partition@16 { label = "dgen"; reg = <0x03780000 0x0c880000>; }; }; };
Modified .dts node:
&gpmc { status = "okay"; ranges = <0 0 0x01000000 0x10000000>; /* CS0: 256MB */ ti,no-reset-on-init; nand@0,0 { compatible = "ti,omap2-nand"; reg = <0 0 8>; /* 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 */ ti,nand-ecc-opt = "bch8"; ti,elm-id = <&elm>; nand-bus-width = <8>; gpmc,device-width = <1>; /* 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 = "SPL"; reg = <0x00000000 0x000020000>; }; partition@1 { label = "SPL.backup1"; reg = <0x00020000 0x00020000>; }; partition@2 { label = "SPL.backup2"; reg = <0x00040000 0x00020000>; }; partition@3 { label = "SPL.backup3"; reg = <0x00060000 0x00020000>; }; partition@4 { label = "u-boot"; reg = <0x00080000 0x00080000>; }; partition@5 { label = "u-boot.backup1"; reg = <0x00100000 0x00080000>; }; partition@6 { label = "u-boot.backup2"; reg = <0x00180000 0x00080000>; }; partition@7 { label = "u-boot.backup3"; reg = <0x00200000 0x00080000>; }; partition@8 { label = "kernel"; reg = <0x00280000 0x00500000>; }; partition@9 { label = "fs"; reg = <0x00780000 0x01400000>; }; partition@10 { label = "drivers"; reg = <0x01b80000 0x004e0000>; }; partition@11 { label = "dtb"; reg = <0x02060000 0x00020000>; }; partition@12 { label = "app"; reg = <0x02080000 0x00a00000>; }; partition@13 { label = "upgd"; reg = <0x02a80000 0x00200000>; }; partition@14 { label = "hwinfo"; reg = <0x02c80000 0x00100000>; }; partition@15 { label = "dmin"; reg = <0x02d80000 0x00a00000>; }; partition@16 { label = "dgen"; reg = <0x03780000 0x0c880000>; }; }; };
Is this modification correct? I tried it with the 'ti,no-reset-on-init' only in the gpmc node and only in the nand node, but both ways caused the same error: 'Kernel panic - not syncing: Fatal exception'
Regards,
Guilherme