Update 1:
I add output debug messages from davinci_spi driver and found that system is hung in interrupt service routine:
...
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x2540000 (irq = 276) is a 16550A
console [ttyS0] enabled
brd: module loaded
loop: module loaded
at24 1-0050: 131072 byte 24c1024 EEPROM (writable)
mtdoops: mtd device (mtddev=name/number) must be supplied
m25p80_init()
davinci_spi_init()
davinci_spi_probe()
set_io_bits()
set_io_bits()
davinci_spi_setup()
clear_fmt_bits()
clear_io_bits()
clear_fmt_bits()
clear_io_bits()
set_fmt_bits()
set_io_bits()
davinci_spi_setup_transfer()
clear_fmt_bits()
clear_io_bits()
set_fmt_bits()
set_io_bits()
clear_fmt_bits()
clear_io_bits()
set_fmt_bits()
set_io_bits()
m25p_probe()
jedec_probe()
spi_write_then_read()
spi_message_init()
spi_message_add_tail()
spi_message_add_tail()
spi_sync()
spi_async()
davinci_spi_setup_transfer()
clear_fmt_bits()
clear_io_bits()
set_fmt_bits()
set_io_bits()
clear_fmt_bits()
clear_io_bits()
set_fmt_bits()
set_io_bits()
davinci_spi_chipselect()
clear_io_bits()
set_io_bits()
clear_io_bits()
clear_io_bits()
davinci_spi_setup_transfer()
clear_fmt_bits()
clear_io_bits()
set_fmt_bits()
set_io_bits()
clear_fmt_bits()
clear_io_bits()
set_fmt_bits()
set_io_bits()
clear_io_bits()
set_io_bits()
clear_io_bits()
set_io_bits()
davinci_spi_irq() int_status = 0x1000300
set_io_bits()
If I enable polling mode in struct evm_spi0_pdata
poll_mode=1,/*0->interruptmode,1->pollingmode*/
system boot up and I can see the /dev/mtdXX
/ # ls -l /dev/mtd*
crw-rw---- 1 root root 90, 0 Nov 30 00:00 /dev/mtd0
crw-rw---- 1 root root 90, 1 Nov 30 00:00 /dev/mtd0ro
Please, tell me why SPI can't work in interrupt mode?
Vladimir