Перейти к содержанию
    

Linux-3.8.13. Device Tree.

Доброго Здоровья!

Имеется устройства на основе Beaglebone Black (BBB).

На плату добавлена NAND память MT29F2G08ABAEAH4. Схема включения в приложении.

nand.PDF

В настоящий момент система грузиться с SD карты. Однако, хочется грузиться с NAND.

Для этого считаю нужным добавить в файлы "Device Tree", описывающие платформу, информацию о NAND.

При добавлении руководствовался информацией: PATCH. Philip Avinash.

В результате чего,в файл am335x-bone-common.dtsi добавил:

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 добавил:

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." ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В настройках ядра включено все, что связано с 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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

перед тем, как 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 она есть, в нее можно писать и читать.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том то и дело, что нет устройства в системе.

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

т.е. юбут "видит" нанд и может с ним работать?

тогда надо добится в логе ядра похожей строчки:

[    8.314117] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)

разумеется с данными вашего чипа..

найдите в исходниках ядра драйвер нанда, навтыкайте туда в функцию _probe отладочных printk - если драйвер вызывается, то по треку можно понять, где происходит сбой инициализации..

если не вызывается, то смотрите драйвер контроллера gpmc для АРМа..

вполне может, что у вас ошибка в описание железа в dts файле (я с этими структурами незнаком и надеюсь, что нескоро понадобится)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. юбут "видит" нанд и может с ним работать?

тогда надо добится в логе ядра похожей строчки:

[    8.314117] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)

разумеется с данными вашего чипа..

найдите в исходниках ядра драйвер нанда, навтыкайте туда в функцию _probe отладочных printk - если драйвер вызывается, то по треку можно понять, где происходит сбой инициализации..

если не вызывается, то смотрите драйвер контроллера gpmc для АРМа..

вполне может, что у вас ошибка в описание железа в dts файле (я с этими структурами незнаком и надеюсь, что нескоро понадобится)

Добро. Спасибо за совет! буду ядро дебажить.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда надо добится в логе ядра похожей строчки:

[    8.314117] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)

разумеется с данными вашего чипа..

найдите в исходниках ядра драйвер нанда, навтыкайте туда в функцию _probe отладочных printk - если драйвер вызывается, то по треку можно понять, где происходит сбой инициализации..

если не вызывается, то смотрите драйвер контроллера gpmc для АРМа..

вполне может, что у вас ошибка в описание железа в dts файле (я с этими структурами незнаком и надеюсь, что нескоро понадобится)

... не выходит Каменный Цветок...

Складывается впечатление, что ядро и не начинает искать NAND.

Не могу проследить путь вызова драйвера, связь DTB и собственно драйвера.

В файл ./drivers/mtd/nand/nand_base.c. добавил информацию для дебага, поставил всюду printk, из всего многообразия, вызывается только функция nand_base_init(void), которая, собственно, кроме регистрации светодиода на переключение согласно NAND ничегошеньки не делает, функции инициализации NAND при запуски ядра не используются. Эти функции подсовываются макросу

EXPORT_SYMBOL(nand_scan);
EXPORT_SYMBOL(nand_scan_ident);

реализацию EXPORT_SYMBOL нашел в ./include/linux/export.h , но понимания мне не добавила.

Люди добрые, научите, как дебажить ядро?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... не выходит Каменный Цветок...

пока вижу два пути:

 

1. попробовать изменить на что-то типа:

compatible        = "ti,am33xx-elm";

или

compatible        = "ti,am335x-elm";

у вас BBB - а это am3359, может драйверу не нравится упоминание am3352..

тут надо в исходниках смотреть, что же по факту должно вызываться..

 

2. взять ядро версией помладше для BBB что-то типа 3.2.0, там где нормальное описание в файле платы, а не дурацкий dts

для evm там есть поддержка nand

смысл действия - убедится, что железо исправно, нанд подключен правильно и поддержан ядром

и только после этого пилить пункт №1..

бегло глянул исходники - вроде цепочка интит gpmc, из которого вызывается nand_ident и nand_scan, т.е. перед нандом надо запустить инит gpmc контроллера..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здоровья всем!

Проследил по исходникам путь от считывания 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

 

В настройках ядра включено все, что связано с NAND и присущему ему файловыми системами.

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

Изменено пользователем shamrel

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

а последовательность действий ваша какая?

я делаю так (для начального инита):

 

ubiformat /dev/mtd1 -y
ubiattach /dev/ubi_ctrl -m 1
ubimkvol /dev/ubi0 -m -N rootfs
mount -t ubifs ubi:rootfs /mnt

 

перед тем, как писать команды, просмотрите встроенный хелп с ключами..

Изменено пользователем Jury093

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, Jury093, и низкий поклон!

Из линукса получается смонтировать, отформатировать, развернуть образ rootfs.

Сейчас проблема в том, что u-boot и ядро имеют различную схему ECC. То-есть,

образ файловой системы, записанный под u-boot, не монтируется в Linux. А если прошить в

NAND образ u-boot.img и MLO из под Линукса, то не грузиться с NAND. Если же u-boot.img и MLO

записаны в NAND под u-boot, то все хорошо. Сейчас загрузиться получается с uSD, но на серийном

устройстве ее не будет. Нужно все действия выполнять под u-boot.

 

Образ делал в два этапа: сначала mkfs.ubifs, а потом ubinize. Ядро и u-boot собраны с

схемой ECC -- BH8 (аппаратный). u-boot версии 2014.01. Раньше можно было выбирать

схему есс командой nandecc, теперь команды этой нет.

.conffig содержит:


#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_DOCG3 is not set
CONFIG_BCH_CONST_M=13
CONFIG_BCH_CONST_T=8
CONFIG_MTD_NAND_ECC=y
# CONFIG_MTD_NAND_ECC_SMC is not set
CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_MTD_SM_COMMON is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_DENALI is not set
# CONFIG_MTD_NAND_GPIO is not set
CONFIG_MTD_NAND_OMAP2=y
CONFIG_MTD_NAND_OMAP_BCH=y
CONFIG_MTD_NAND_OMAP_BCH8=y
# CONFIG_MTD_NAND_OMAP_BCH4 is not set
CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_DOCG4 is not set
# CONFIG_MTD_NAND_NANDSIM is not set
CONFIG_MTD_NAND_PLATFORM=y
# CONFIG_MTD_ALAUDA is not set
# CONFIG_MTD_ONENAND is not set

 

из файла конфигурации платформы для u-boot:

#ifdef CONFIG_NAND
#define CONFIG_NAND_OMAP_GPMC
#define CONFIG_NAND_OMAP_ELM
#define CONFIG_SYS_NAND_5_ADDR_CYCLE
#define CONFIG_SYS_NAND_PAGE_COUNT	(CONFIG_SYS_NAND_BLOCK_SIZE / \
				 CONFIG_SYS_NAND_PAGE_SIZE)
#define CONFIG_SYS_NAND_PAGE_SIZE	2048
#define CONFIG_SYS_NAND_OOBSIZE		64
#define CONFIG_SYS_NAND_BLOCK_SIZE	(128*1024)
#define CONFIG_SYS_NAND_BAD_BLOCK_POS	NAND_LARGE_BADBLOCK_POS
#define CONFIG_SYS_NAND_ECCPOS		{ 2, 3, 4, 5, 6, 7, 8, 9, \
				 10, 11, 12, 13, 14, 15, 16, 17, \
				 18, 19, 20, 21, 22, 23, 24, 25, \
				 26, 27, 28, 29, 30, 31, 32, 33, \
				 34, 35, 36, 37, 38, 39, 40, 41, \
				 42, 43, 44, 45, 46, 47, 48, 49, \
				 50, 51, 52, 53, 54, 55, 56, 57, }

#define CONFIG_SYS_NAND_ECCSIZE		512
#define CONFIG_SYS_NAND_ECCBYTES	14
#define CONFIG_SYS_NAND_ONFI_DETECTION
#define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_BCH8_CODE_HW
#define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE
#define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000
#endif
#endif


/* NAND support */
#ifdef CONFIG_NAND
#define CONFIG_CMD_NAND
#define GPMC_NAND_ECC_LP_x16_LAYOUT	1
#if !defined(CONFIG_SPI_BOOT) && !defined(CONFIG_NOR_BOOT)
#define MTDIDS_DEFAULT			"nand0=omap2-nand.0"
#define MTDPARTS_DEFAULT		"mtdparts=omap2-nand.0:128k(SPL)," \
				"128k(SPL.backup1)," \
				"128k(SPL.backup2)," \
				"128k(SPL.backup3),1792k(u-boot)," \
				"128k(u-boot-spl-os)," \
				"128k(u-boot-env),5m(kernel),-(rootfs)"
#define CONFIG_ENV_IS_IN_NAND
#define CONFIG_ENV_OFFSET		0x260000 /* environment starts here */
#define CONFIG_SYS_ENV_SECT_SIZE	(128 << 10)	/* 128 KiB */
#endif
#endif

 

P.S: Причина редактирования: добавил конфигурацию.

Изменено пользователем shamrel

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас загрузиться получается с uSD, но на серийном

устройстве ее не будет. Нужно все действия выполнять под u-boot.

у меня коллеги решили эту проблему - комплект бинарников на "юсб флешке", которая втыкается в прибор.. прибор включаем, с флешки грузится технологическая прошивка, которая шьет боевую.. далее ребут и в бой.. тоже бились над проблемой расположения и свойств ECC и технологией ubinize (вроде правильно написал)..

имхо, начните с малого - попробуйте отключить дефайнами контроль ECC в юбуте и в ядре..

в доках на ядро есть файл, где описан механизм для нанда (Documentation/mtd/nand_ecc.txt), почитайте..

 

кстати, вы перед записью из юбута или линукса нанд трёте в области для записи? а то мало ли забыли..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...