реклама на сайте
подробности

 
 
> Linux-3.8.13. Device Tree., Ti. Am33xx. Вопросы по созданию платформы
shamrel
сообщение Feb 12 2014, 04:53
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 132
Регистрация: 10-10-07
Из: Новосибирск
Пользователь №: 31 229



Доброго Здоровья!
Имеется устройства на основе Beaglebone Black (BBB).
На плату добавлена NAND память MT29F2G08ABAEAH4. Схема включения в приложении.
Прикрепленный файл  nand.PDF ( 37.18 килобайт ) Кол-во скачиваний: 386

В настоящий момент система грузиться с SD карты. Однако, хочется грузиться с NAND.
Для этого считаю нужным добавить в файлы "Device Tree", описывающие платформу, информацию о NAND.
При добавлении руководствовался информацией: PATCH. Philip Avinash.
В результате чего,в файл am335x-bone-common.dtsi добавил:
CODE

am33xx_pinmux: pinmux@44e10800 {
pinctrl-names = "default";
pinctrl-0 = <&nandflash_pins_s0>;

...

nandflash_pins_s0: nandflash_pins_s0 {
pinctrl-single,pins = <
0x0 0x30 /* gpmc_ad0.gpmc_ad0, INPUT | PULLUP | MODE0 */
0x4 0x30 /* gpmc_ad1.gpmc_ad1, INPUT | PULLUP | MODE0 */
0x8 0x30 /* gpmc_ad2.gpmc_ad2, INPUT | PULLUP | MODE0 */
0xc 0x30 /* gpmc_ad3.gpmc_ad3, INPUT | PULLUP | MODE0 */
0x10 0x30 /* gpmc_ad4.gpmc_ad4, INPUT | PULLUP | MODE0 */
0x14 0x30 /* gpmc_ad5.gpmc_ad5, INPUT | PULLUP | MODE0 */
0x18 0x30 /* gpmc_ad6.gpmc_ad6, INPUT | PULLUP | MODE0 */
0x1c 0x30 /* gpmc_ad7.gpmc_ad7, INPUT | PULLUP | MODE0 */
0x70 0x30 /* gpmc_wait0.gpmc_wait0, INPUT | PULLUP | MODE0 */
0x74 0x37 /* gpmc_wpn.gpio0_30, INPUT | PULLUP | MODE7 */
0x7c 0x8 /* gpmc_csn0.gpmc_csn0, PULL DISA */
0x90 0x8 /* gpmc_advn_ale.gpmc_advn_ale, PULL DISA */
0x94 0x8 /* gpmc_oen_ren.gpmc_oen_ren, PULL DISA */
0x98 0x8 /* gpmc_wen.gpmc_wen, PULL DISA */
0x9c 0x8 /* gpmc_be0n_cle.gpmc_be0n_cle, PULL DISA */
>;
};
};


ocp: ocp {

...

elm: elm@48080000 {
status = "okay";
};

gpmc: gpmc@50000000 {
status = "okay";
ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */
/*compatible = "ti,am3352-gpms"; ?????? */
ti,hwmods = "gpms";
nand@0,0 {
reg = <0 0 0>; /* CS0, offset 0 */
nand-bus-width = <8>;
ti,nand-ecc-opt = "bch8";

gpmc,sync-clk = <0>;
gpmc,cs-on = <0>;
gpmc,cs-rd-off = <44>;
gpmc,cs-wr-off = <44>;
gpmc,adv-on = <6>;
gpmc,adv-rd-off = <34>;
gpmc,adv-wr-off = <44>;
gpmc,we-off = <40>;
gpmc,oe-off = <54>;
gpmc,access = <64>;
gpmc,rd-cycle = <82>;
gpmc,wr-cycle = <82>;
gpmc,wr-access = <40>;
gpmc,wr-data-mux-bus = <0>;

#address-cells = <1>;
#size-cells = <1>;
elm_id = <&elm>;

/* MTD partition table */
partition@0 {
label = "SPL1";
reg = <0x00000000 0x000020000>;
};

partition@1 {
label = "SPL2";
reg = <0x00020000 0x00020000>;
};

partition@2 {
label = "SPL3";
reg = <0x00040000 0x00020000>;
};

partition@3 {
label = "SPL4";
reg = <0x00060000 0x00020000>;
};

partition@4 {
label = "U-boot";
reg = <0x00080000 0x001e0000>;
};

partition@5 {
label = "environment";
reg = <0x00260000 0x00020000>;
};

partition@6 {
label = "Kernel";
reg = <0x00280000 0x00500000>;
};

partition@7 {
label = "File-System";
reg = <0x00780000 0x0F880000>;
};
};
};

};



В файл am33xx.dtsi добавил:
CODE

ocp {
....
gpmc: gpmc@50000000 {
compatible = "ti,am3352-gpmc";
ti,hwmods = "gpmc";
/*reg = <0x50000000 0x01000000>;*/
reg = <0x50000000 0x2000>;
interrupts = <100>;
gpmc,num-cs = <7>;
gpmc,num-cs = <8>;
gpmc,num-waitpins = <2>;
#address-cells = <2>;
#size-cells = <1>;

status = "disabled";
};

elm: elm@48080000 {
reg = <0x48080000 0x2000>;
interrupts = <4>;
/*compatible = "ti,am3352-elm";*/
ti,hwmods = "elm";
status = "disabled";
};

}

Также в этом файле пришлось отключить(закоментировал) mmc2 и mmc3. Иначе при попытке смуксить пины на NAND
ядро паниковало.

В настройках ядра включено все, что связано с NAND и присущему ему файловыми системами.
В системе появилось устройство /dev/ubi_ctrl, однако при попытки приатачить его получаю ошибку:

root@am33:~# ubiattach /dev/ubi_ctrl -m 2
ubiattach: error!: cannot attach mtd2
error 19 (No such device)

У кого есть соответствующий опыт, помогите.
Как включить NAND?

P.S.: Уважаемые модераторы, может быть имеет смысл слить с темой "DS1338. AM33xx. Linux-3.8.13. Device Tree." ?


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jury093
сообщение Feb 12 2014, 09:48
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(shamrel @ Feb 12 2014, 08:53) *
В настройках ядра включено все, что связано с NAND и присущему ему файловыми системами.
В системе появилось устройство /dev/ubi_ctrl, однако при попытки приатачить его получаю ошибку:
root@am33:~# ubiattach /dev/ubi_ctrl -m 2
ubiattach: error!: cannot attach mtd2
error 19 (No such device)

перед тем, как ubi-аттачить смотрите в лог ядра - есть ли опознание нанда и появление /dev/mtd..
и сначала ubiformat, потом ubiattach.. только потом достаточно ubiattach
Go to the top of the page
 
+Quote Post
shamrel
сообщение Feb 13 2014, 03:15
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 132
Регистрация: 10-10-07
Из: Новосибирск
Пользователь №: 31 229



Цитата(Jury093 @ Feb 12 2014, 12:48) *
перед тем, как ubi-аттачить смотрите в лог ядра - есть ли опознание нанда и появление /dev/mtd..
и сначала ubiformat, потом ubiattach.. только потом достаточно ubiattach


В том то и дело, что нет устройства в системе.
После загрузки:
root@am33:~# dmesg | grep NAND
[ 32.545592] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
[ 33.636919] OneNAND driver initializing
root@am33:~# cat /proc/mtd
dev: size erasesize name
root@am33:~#

Причем память жива. в u-boot она есть, в нее можно писать и читать.



--------------------
Go to the top of the page
 
+Quote Post
Jury093
сообщение Feb 13 2014, 09:54
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(shamrel @ Feb 13 2014, 07:15) *
В том то и дело, что нет устройства в системе.
Причем память жива. в u-boot она есть, в нее можно писать и читать.

т.е. юбут "видит" нанд и может с ним работать?
тогда надо добится в логе ядра похожей строчки:
Код
[    8.314117] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)

разумеется с данными вашего чипа..
найдите в исходниках ядра драйвер нанда, навтыкайте туда в функцию _probe отладочных printk - если драйвер вызывается, то по треку можно понять, где происходит сбой инициализации..
если не вызывается, то смотрите драйвер контроллера gpmc для АРМа..
вполне может, что у вас ошибка в описание железа в dts файле (я с этими структурами незнаком и надеюсь, что нескоро понадобится)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 21:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016