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

 
 
> 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
Ответов
shamrel
сообщение Feb 18 2014, 07:22
Сообщение #2


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

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



Здоровья всем!
Проследил по исходникам путь от считывания DT, до инициализации драйвера. Нашел вчем трабла, hwmod для GPMC модуля был задал не корректно. Исправил.
В ситеме появились признаки NAND:
root@am33:~# dmesg | grep NAND
[ 32.703146] jffs2: version 2.2. (NAND) (SUMMARY) �© 2001-2006 Red Hat, Inc.
[ 34.003647] enabling NAND BCH ecc with 8-bit correction
[ 34.020513] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron MT29F2G08AB4
[ 34.492286] OneNAND driver initializing

root@am33:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00020000 "SPL1"
mtd1: 00020000 00020000 "SPL2"
mtd2: 00020000 00020000 "SPL3"
mtd3: 00020000 00020000 "SPL4"
mtd4: 001e0000 00020000 "U-boot"
mtd5: 00020000 00020000 "environment"
mtd6: 00500000 00020000 "Kernel"
mtd7: 0f880000 00020000 "File-System"

root@am33:~# dmesg | grep GPMC
[ 0.099427] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[ 0.099645] GPMC CS0: cs_on : 0 ticks, 0 ns (was 0 ticks) 0 ns
[ 0.099659] GPMC CS0: cs_rd_off : 5 ticks, 50 ns (was 30 ticks) 44 ns
[ 0.099672] GPMC CS0: cs_wr_off : 5 ticks, 50 ns (was 30 ticks) 44 ns
[ 0.099684] GPMC CS0: adv_on : 1 ticks, 10 ns (was 0 ticks) 6 ns
[ 0.099697] GPMC CS0: adv_rd_off: 4 ticks, 40 ns (was 30 ticks) 34 ns
[ 0.099709] GPMC CS0: adv_wr_off: 5 ticks, 50 ns (was 30 ticks) 44 ns
[ 0.099721] GPMC CS0: oe_on : 1 ticks, 10 ns (was 7 ticks) 6 ns
[ 0.099734] GPMC CS0: oe_off : 6 ticks, 60 ns (was 24 ticks) 54 ns
[ 0.099746] GPMC CS0: we_on : 1 ticks, 10 ns (was 5 ticks) 6 ns
[ 0.099759] GPMC CS0: we_off : 4 ticks, 40 ns (was 22 ticks) 40 ns
[ 0.099771] GPMC CS0: rd_cycle : 9 ticks, 90 ns (was 30 ticks) 82 ns
[ 0.099784] GPMC CS0: wr_cycle : 9 ticks, 90 ns (was 30 ticks) 82 ns
[ 0.099797] GPMC CS0: access : 7 ticks, 70 ns (was 21 ticks) 64 ns
[ 0.099808] GPMC CS0: page_burst_access: 0 ticks, 0 ns (was 0 ticks) 0 ns
[ 0.099819] GPMC CS0: bus_turnaround: 0 ticks, 0 ns (was 0 ticks) 0 ns
[ 0.099831] GPMC CS0: cycle2cycle_delay: 0 ticks, 0 ns (was 15 ticks) 0 ns
[ 0.099842] GPMC CS0: wait_monitoring: 0 ticks, 0 ns (was 0 ticks) 0 ns
[ 0.099853] GPMC CS0: clk_activation: 0 ticks, 0 ns (was 0 ticks) 0 ns
[ 0.099865] GPMC CS0: wr_data_mux_bus: 0 ticks, 0 ns (was 0 ticks) 0 ns
[ 0.099876] GPMC CS0: wr_access : 0 ticks, 0 ns (was 22 ticks) 0 ns

root@am33:~# ls -l /dev/mtd*
crw------- 1 root root 90, 0 Feb 18 13:35 /dev/mtd0
crw------- 1 root root 90, 1 Feb 18 13:35 /dev/mtd0ro
crw------- 1 root root 90, 2 Feb 18 13:35 /dev/mtd1
crw------- 1 root root 90, 3 Feb 18 13:35 /dev/mtd1ro
crw------- 1 root root 90, 4 Feb 18 13:35 /dev/mtd2
crw------- 1 root root 90, 5 Feb 18 13:35 /dev/mtd2ro
crw------- 1 root root 90, 6 Feb 18 13:35 /dev/mtd3
crw------- 1 root root 90, 7 Feb 18 13:35 /dev/mtd3ro
crw------- 1 root root 90, 8 Feb 18 13:35 /dev/mtd4
crw------- 1 root root 90, 9 Feb 18 13:35 /dev/mtd4ro
crw------- 1 root root 90, 10 Feb 18 13:35 /dev/mtd5
crw------- 1 root root 90, 11 Feb 18 13:35 /dev/mtd5ro
crw------- 1 root root 90, 12 Feb 18 13:35 /dev/mtd6
crw------- 1 root root 90, 13 Feb 18 13:35 /dev/mtd6ro
crw------- 1 root root 90, 14 Feb 18 13:35 /dev/mtd7
crw------- 1 root root 90, 15 Feb 18 13:35 /dev/mtd7ro
brw-rw---- 1 root disk 31, 0 Feb 18 13:35 /dev/mtdblock0
brw-rw---- 1 root disk 31, 1 Feb 18 13:35 /dev/mtdblock1
brw-rw---- 1 root disk 31, 2 Feb 18 13:35 /dev/mtdblock2
brw-rw---- 1 root disk 31, 3 Feb 18 13:35 /dev/mtdblock3
brw-rw---- 1 root disk 31, 4 Feb 18 13:35 /dev/mtdblock4
brw-rw---- 1 root disk 31, 5 Feb 18 13:35 /dev/mtdblock5
brw-rw---- 1 root disk 31, 6 Feb 18 13:35 /dev/mtdblock6
brw-rw---- 1 root disk 31, 7 Feb 18 13:35 /dev/mtdblock7

Однако, вот беда! При попытки смонтировать, выходит куча ошибок:
[ 2691.557480] UBI error: ubi_io_read: error -74 (ECC error) while reading 512 bytess
[ 2691.568412] [<c0010317>] (unwind_backtrace+0x1/0x8a) from [<c01eb9a1>] (ubi_io_re)
[ 2691.577605] [<c01eb9a1>] (ubi_io_read+0x155/0x1f0) from [<c01ebce3>] (ubi_io_read)
[ 2691.587332] [<c01ebce3>] (ubi_io_read_vid_hdr+0x4f/0x13c) from [<c01eeccd>] (scan)
[ 2691.597345] [<c01eeccd>] (scan_peb.part.4+0x10d/0x3e4) from [<c01ef009>] (scan_al)
[ 2691.606370] [<c01ef009>] (scan_all+0x65/0x754) from [<c01ef9b9>] (ubi_attach+0x15)
[ 2691.614922] [<c01ef9b9>] (ubi_attach+0x15d/0x234) from [<c01e82c3>] (ubi_attach_m)
[ 2691.624471] [<c01e82c3>] (ubi_attach_mtd_dev+0x503/0x97c) from [<c01e88e3>] (ctrl)
[ 2691.634421] [<c01e88e3>] (ctrl_cdev_ioctl+0x7f/0x104) from [<c009e239>] (do_vfs_i)
[ 2691.643799] [<c009e239>] (do_vfs_ioctl+0x3a9/0x3f0) from [<c009e2af>] (sys_ioctl+)
[ 2691.652532] [<c009e2af>] (sys_ioctl+0x2f/0x44) from [<c000c401>] (ret_fast_syscal)
[ 2691.661554] UBI: scanning is finished
[ 2691.665405] UBI error: late_analysis: MTD device is not UBI-formatted and possiblt
[ 2691.677391] UBI error: ubi_attach_mtd_dev: failed to attach mtd7, error -22

Цитата(shamrel @ Feb 12 2014, 07:53) *
В настройках ядра включено все, что связано с NAND и присущему ему файловыми системами.

Может в этом проблема? Что-то лишнее включил. Что минимально следует включить в ядре, чтоб получить работающий NAND?

Сообщение отредактировал shamrel - Feb 18 2014, 07:23


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 01:09
Рейтинг@Mail.ru


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