Отладочная плата EA LPC1788.
Пытаюсь на ucLinux завести NAND FLASH Samsung K9F1G08 для дальнейшего использования с JFFS2.
Подключение на плате стандартное - через 8-бит шину данных.
В u-boot (от lpcware) драйвер прекрасно работает с NAND. Там же с помощью mtdparts разбиваю на партиции, формирую bootargs с параметром
mtdparts=...
Вот кусок конфига из u-boot:
Код
#define CONFIG_JFFS2_CMDLINE
#define MTDIDS_DEFAULT "nand0=nand"
#define MTDPARTS_DEFAULT "mtdparts=nand:128k(env),4m(kernel),-(rootfs)"
#define MTDIDS_DEFAULT "nand0=nand"
#define MTDPARTS_DEFAULT "mtdparts=nand:128k(env),4m(kernel),-(rootfs)"
Ядро успешно грузится с NAND.
А вот в самом ядре не получается подключиться к этой NAND.
в конфиге ядра подключены опции связаны с MTD (MTD, MTD_PARTITION, MTD_CHARACTER_DEVICE, MTD_BLOCK_DEVICE, MTD_NAND...).
Но в логе загрузки ядра вообще ничего нет связанного с NAND и MTD.
Интернет подсказывает что все начинается с определения NAND. Должна быть строчка:
Код
NAND device: Manufacturer ID: .....
Но у меня ее нет.
Вопросы собственно в следующем:
1) Правильно ли я полагаю что для данной микросхемы NAND не нужно писать драйвера, а должен подхватится из nand_base.c (в nand_ids.c есть строка с моим chip ID и прочими атрибутами)
2) Навтыкал в nand_base.c свои чекпоинты printk, но они нигде в консоли не отображаются. хотя при сборке ядра nand_base.o генерится и собирается. На каком этапе связки bootargs (параметр mtdparts) и загрузки ядра и что может быть упущено?
Я так понимаю что связка с драйвером идет по имени, переданном в bootargs? В данном случае это имя "nand"?