Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
Сборка ядра - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Сборка ядра
JollyJoker
Добавлено 30.08.2012 17:18
0
Сообщение: 1
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Подскажите пожалуйста, столкнулся со следующей проблемой. Есть проверенная файловая система для nand, есть мое ядро Linux 2.6.34.12. Ядро зависает при попытке подключить блок mtdblok4: Waiting for root device /dev/mtdblock4... Поддержка MTD, NAND и jffs2 есть (делал исходя из документов TI). Из U-boot ядру передается следующая комманда: mem=32M consoleblank=0 console=ttyS2,115200n8 rw rootwait earlyprintk root=/dev/mtdblock4 rw rootfstype=jffs2 ip=off

Подскажите что можно сделать?

P.S.
Файловая система проверялась на купленной отладке, с их ядром версии 3.2.1 которая на моей плате упорно зависает на стадии Starting kernell... ()
Я использую AM1705, такой же и на отладке, различия в частоте (у меня 25, на отладке 24) и в используемом UARTE (у меня 2 на отладке 1).
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 30.08.2012 18:15 Сообщение: 2
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
в логе загрузки видно, что ядро продетектило 4 раздела на нанде? как, собственно, и нанд видится (в логе)?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
vibic
Добавлено 30.08.2012 18:16 Редактировалось 30.08.2012 18:34 Сообщение: 3
vibic
5

Пункты: 940
Регистрация: 23.01.2012
Пол: Мужчина
Цитата
Подскажите пожалуйста, столкнулся со следующей проблемой. Есть проверенная файловая система для nand, есть мое ядро Linux 2.6.34.12. Ядро зависает при попытке подключить блок mtdblok4: Waiting for root device /dev/mtdblock4... Поддержка MTD, NAND и jffs2 есть (делал исходя из документов TI). Из U-boot ядру передается следующая комманда: mem=32M consoleblank=0 console=ttyS2,115200n8 rw rootwait earlyprintk root=/dev/mtdblock4 rw rootfstype=jffs2 ip=off

Подскажите что можно сделать?

P.S.
Файловая система проверялась на купленной отладке, с их ядром версии 3.2.1 которая на моей плате упорно зависает на стадии Starting kernell... ()
Я использую AM1705, такой же и на отладке, различия в частоте (у меня 25, на отладке 24) и в используемом UARTE (у меня 2 на отладке 1).


Лог загрузки покажите.
Файл борды бы приложили, особенно вот этот раздел -
static struct mtd_partition __initdata ek_nand_partition[] = {
{
.name = "Bootstrap",
.offset = 0,
.size = 1 * SZ_1M,
},
{
.name = "U-boot",
.offset = MTDPART_OFS_NXTBLK,
.size = 1 * SZ_1M,
},
{
.name = "U-boot env",
.offset = MTDPART_OFS_NXTBLK,
.size = 1 * SZ_1M,
},
{
.name = "U-boot env backup",
.offset = MTDPART_OFS_NXTBLK,
.size = 1 * SZ_1M,
},
{
.name = "Don't touch!!!",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
};
к примеру, ядро же должно знать, что у него есть и где находится.

Заодно для проформы, когда ядро заработает mtd разделы видно в
cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "Bootstrap"
mtd1: 00100000 00020000 "U-boot"
mtd2: 00100000 00020000 "U-boot env"
mtd3: 00100000 00020000 "U-boot env backup"
mtd4: 0fc00000 00020000 "Don't touch!!!"
и в /dev/mtd*
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 30.08.2012 22:20 Редактировалось 30.08.2012 22:28 Сообщение: 4
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Цитата

Лог загрузки покажите.
Файл борды бы приложили,

Сейчас мучаю ядро версии 3.4, так как оно ближе к версии в отладке, и есть поддержка PHY установленного на моей плате. Кстати, обнаружил, что в исходниках прилагаемых к отладке были были внесены изменения, а именно добавлена esclayout и структура описывающая этот layout. Возможно есть еще изменения, так как настройки ядра идентичны, однако 3.4 не грузится на отладке, останавливается на том же месте.

Не получилось у меня сделать вложение, поэтому извините, но привожу в посте

Лог
U-Boot 2009.11 (May 05 2012 - 00:34:00)

DRAM: 32 MB
NAND: 256 MiB
Bad block table not found for chip 0
Bad block table found at page 130944, version 0x01
nand_bbt: ECC error while reading bad block table
nand_read_bbt: Bad block at 0x0000049e0000
nand_read_bbt: Bad block at 0x000006b40000
nand_read_bbt: Bad block at 0x000007320000
nand_read_bbt: Bad block at 0x00000dd60000
nand_read_bbt: Bad block at 0x00000f5a0000
Bad block table written to 0x00000ffe0000, version 0x01
In: serial
Out: serial
Err: serial
ARM Clock : 300000000 Hz
Net: Ethernet PHY: GENERIC @ 0x07

Hit any key to stop autoboot: 0

Loading from NAND 256MiB 3,3V 8-bit, offset 0x80000
Image Name: Linux-3.4.6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2575008 Bytes = 2.5 MB
Load Address: c0008000
Entry Point: c0008000
## Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-3.4.6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2575008 Bytes = 2.5 MB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Booting Linux on physical CPU 0
Linux version 3.4.6 (pavel@pavel-VM) (gcc version 4.4.1 (Sourcery G++ Lite 2010q
1-188) ) #4 PREEMPT Thu Aug 30 07:25:28 PDT 2012
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DA830/OMAP-L137/AM17x EVM
Memory policy: ECC disabled, Data cache writethrough
DaVinci da830/omap-l137 rev2.0 variant 0x9
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Kernel command line: mem=32M consoleblank=0 console=ttyS1,115200n8 rw rootwait r
oot=/dev/mtdblock4 rw rootfstype=jffs2 ip=off
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 27484k/27484k available, 5284k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xc2800000 - 0xff000000 ( 968 MB)
lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0xc0008000 - 0xc043e2b0 (4313 kB)
.init : 0xc043f000 - 0xc0464000 ( 148 kB)
.data : 0xc0464000 - 0xc048fa20 ( 175 kB)
.bss : 0xc048fa44 - 0xc04d64c8 ( 283 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:245
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
Console: colour dummy device 80x30
Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0xc0351f80 - 0xc0351fd8
gpiochip_add: registered GPIOs 0 to 31 on device: DaVinci
gpiochip_add: registered GPIOs 32 to 63 on device: DaVinci
gpiochip_add: registered GPIOs 64 to 95 on device: DaVinci
gpiochip_add: registered GPIOs 96 to 127 on device: DaVinci
DaVinci: 128 gpio irqs
dummy:
NET: Registered protocol family 16
MUX: initialized I2C0_SDA
MUX: Setting register I2C0_SDA
PINMUX8 (0x00000020) = 0x21111111 -> 0x21112111
MUX: initialized I2C0_SCL
MUX: Setting register I2C0_SCL
PINMUX8 (0x00000020) = 0x21112111 -> 0x21122111
MUX: initialized GPIO1_15
MUX: Setting register GPIO1_15
PINMUX17 (0x00000044) = 0x11111111 -> 0x11811111
MUX: initialized GPIO2_4
MUX: Setting register GPIO2_4
PINMUX18 (0x00000048) = 0x11111111 -> 0x11111811
MUX: initialized MMCSD_DAT_0
MUX: Setting register MMCSD_DAT_0
PINMUX13 (0x00000034) = 0x11111111 -> 0x12111111
MUX: initialized MMCSD_DAT_1
MUX: Setting register MMCSD_DAT_1
PINMUX13 (0x00000034) = 0x12111111 -> 0x22111111
MUX: initialized MMCSD_DAT_2
MUX: Setting register MMCSD_DAT_2
PINMUX14 (0x00000038) = 0x11111111 -> 0x11111112
MUX: initialized MMCSD_DAT_3
MUX: Setting register MMCSD_DAT_3
PINMUX14 (0x00000038) = 0x11111112 -> 0x11111122
MUX: initialized MMCSD_DAT_4
MUX: Setting register MMCSD_DAT_4
PINMUX14 (0x00000038) = 0x11111122 -> 0x11111222
MUX: initialized MMCSD_DAT_5
MUX: Setting register MMCSD_DAT_5
PINMUX14 (0x00000038) = 0x11111222 -> 0x11112222
MUX: initialized MMCSD_DAT_6
MUX: Setting register MMCSD_DAT_6
PINMUX14 (0x00000038) = 0x11112222 -> 0x11122222
MUX: initialized MMCSD_DAT_7
MUX: Setting register MMCSD_DAT_7
PINMUX14 (0x00000038) = 0x11122222 -> 0x11222222
MUX: initialized MMCSD_CLK
MUX: Setting register MMCSD_CLK
PINMUX15 (0x0000003c) = 0x11111111 -> 0x21111111
MUX: initialized MMCSD_CMD
MUX: Setting register MMCSD_CMD
PINMUX16 (0x00000040) = 0x11111111 -> 0x11111112
MUX: initialized GPIO2_1
MUX: Setting register GPIO2_1
PINMUX17 (0x00000044) = 0x11811111 -> 0x81811111
MUX: initialized GPIO2_2
MUX: Setting register GPIO2_2
PINMUX18 (0x00000048) = 0x11111811 -> 0x11111818
bio: create slab <bio-0> at 0
pcf857x: probe of 1-003f failed with error -121
Switching to clocksource timer0_0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
jffs2: version 2.2. (NAND) A© 2001-2006 Red Hat, Inc.
SGI XFS with security attributes, large block/inode numbers, no debug enabled
GFS2 installed
msgmni has been set to 53
io scheduler noop registered (default)
start plist test
end plist test
Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A
console [ttyS1] enabled
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
brd: module loaded
at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask ffffff7f
davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[7]: device davinci_mdio-0:07, driver unknown
i2c /dev entries driver
cpuidle: using governor ladder
cpuidle: using governor menu
TCP: cubic registered
NET: Registered protocol family 17
console [netcon0] enabled
netconsole: network logging started
davinci_emac davinci_emac.1: using random MAC addr: 0e:b1:5d:69:22:32
Waiting for root device /dev/mtdblock4...

board_da830_evm.c
Код

/*
* UI board NAND/NOR flashes only use 8-bit data bus.
*/
static const short da830_evm_emif25_pins[] = {
DA830_EMA_D_0, DA830_EMA_D_1, DA830_EMA_D_2, DA830_EMA_D_3,
DA830_EMA_D_4, DA830_EMA_D_5, DA830_EMA_D_6, DA830_EMA_D_7,
DA830_EMA_A_0, DA830_EMA_A_1, DA830_EMA_A_2, DA830_EMA_A_3,
DA830_EMA_A_4, DA830_EMA_A_5, DA830_EMA_A_6, DA830_EMA_A_7,
DA830_EMA_A_8, DA830_EMA_A_9, DA830_EMA_A_10, DA830_EMA_A_11,
DA830_EMA_A_12, DA830_EMA_BA_0, DA830_EMA_BA_1, DA830_NEMA_WE,
DA830_NEMA_CS_2, DA830_NEMA_CS_3, DA830_NEMA_OE, DA830_EMA_WAIT_0,
-1
};

#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE)
#define HAS_MMC 1
#else
#define HAS_MMC 0
#endif

#ifdef CONFIG_DA830_UI_NAND
static struct mtd_partition da830_evm_nand_partitions[] = {
/* bootloader (U-Boot, etc) zero page */
[0] = {
.name = "bootloader",
.offset = 0,
.size = SZ_128K,
.mask_flags = 0,
},
/* bootloader (U-Boot, etc) in second page */
[1] = {
.name = "uboot",
.offset = MTDPART_OFS_APPEND,
.size = SZ_256K,
.mask_flags = 0,
},
/* bootloader params in the next page */
[2] = {
.name = "params",
.offset = MTDPART_OFS_APPEND,
.size = SZ_128K,
.mask_flags = 0,
},
/* kernel */
[3] = {
.name = "kernel",
.offset = MTDPART_OFS_APPEND,
.size = SZ_4M,
.mask_flags = 0,
},
/* file system */
[4] = {
.name = "filesystem",
.offset = MTDPART_OFS_APPEND,
.size = 0x0FA00000, /* 250 << 20 */
.mask_flags = 0,
},
/* bbt*/
[5] = {
.name = "bbt",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
.mask_flags = 0,
}

};

/* flash bbt decriptors */
static uint8_t da830_evm_nand_bbt_pattern[] = { 'B', 'b', 't', '0' };
static uint8_t da830_evm_nand_mirror_pattern[] = { '1', 't', 'b', 'B' };

//Добавлено
static struct nand_ecclayout dm365_evm_nand_ecclayout = {
.eccbytes = 40,
.eccpos = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
},
.oobfree = {{2, 4}, {16, 6}, {32, 6}, {48, 6} },
};

static struct nand_bbt_descr da830_evm_nand_bbt_main_descr = {
.options = //NAND_BBT_LASTBLOCK | NAND_BBT_CREATE |
//NAND_BBT_WRITE | NAND_BBT_2BIT |
NAND_BBT_CREATE |
NAND_BBT_LASTBLOCK |
NAND_BBT_2BIT |
NAND_BBT_VERSION | NAND_BBT_PERCHIP,
.offs = 2,
.len = 4,
.veroffs = 16,
.maxblocks = 4,
.pattern = da830_evm_nand_bbt_pattern
};

static struct nand_bbt_descr da830_evm_nand_bbt_mirror_descr = {
.options = //NAND_BBT_LASTBLOCK | NAND_BBT_CREATE |
//NAND_BBT_WRITE | NAND_BBT_2BIT |
NAND_BBT_CREATE |
NAND_BBT_LASTBLOCK |
NAND_BBT_2BIT |
NAND_BBT_VERSION | NAND_BBT_PERCHIP,
.offs = 2,
.len = 4,
.veroffs = 16,
.maxblocks = 4,
.pattern = da830_evm_nand_mirror_pattern
};

static struct davinci_aemif_timing da830_evm_nandflash_timing = {
.wsetup = 24,
.wstrobe = 21,
.whold = 14,
.rsetup = 19,
.rstrobe = 50,
.rhold = 0,
.ta = 20,
};

static struct davinci_nand_pdata da830_evm_nand_pdata = {
.parts = da830_evm_nand_partitions,
.nr_parts = ARRAY_SIZE(da830_evm_nand_partitions),
.ecc_mode = NAND_ECC_HW,
.ecc_bits = 4,
.bbt_options = NAND_BBT_USE_FLASH,
.bbt_td = &da830_evm_nand_bbt_main_descr,
.bbt_md = &da830_evm_nand_bbt_mirror_descr,
.timing = &da830_evm_nandflash_timing,
.ecclayout = &dm365_evm_nand_ecclayout//добавлено
};

static struct resource da830_evm_nand_resources[] = {
[0] = { /* First memory resource is NAND I/O window */
.start = DA8XX_AEMIF_CS3_BASE,
.end = DA8XX_AEMIF_CS3_BASE + PAGE_SIZE - 1,
.flags = IORESOURCE_MEM,
},
[1] = { /* Second memory resource is AEMIF control registers */
.start = DA8XX_AEMIF_CTL_BASE,
.end = DA8XX_AEMIF_CTL_BASE + SZ_32K - 1,
.flags = IORESOURCE_MEM,
},
};

static struct platform_device da830_evm_nand_device = {
.name = "davinci_nand",
.id = 1,
.dev = {
.platform_data = &da830_evm_nand_pdata,
},
.num_resources = ARRAY_SIZE(da830_evm_nand_resources),
.resource = da830_evm_nand_resources,
};

static inline void da830_evm_init_nand(int mux_mode)
{
int ret;

if (HAS_MMC) {
pr_warning("WARNING: both MMC/SD and NAND are "
"enabled, but they share AEMIF pins.\n"
"\tDisable MMC/SD for NAND support.\n");
return;
}

ret = davinci_cfg_reg_list(da830_evm_emif25_pins);
if (ret)
pr_warning("da830_evm_init: emif25 mux setup failed: %d\n",
ret);

ret = platform_device_register(&da830_evm_nand_device);
if (ret)
pr_warning("da830_evm_init: NAND device not registered.\n");

gpio_direction_output(mux_mode, 1);
}
#else
static inline void da830_evm_init_nand(int mux_mode) { }
#endif
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 30.08.2012 22:50 Сообщение: 5
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Интересный факт, нашел еще одно различие в исходниках, и теперь на отладке при загрузке вылезает много следующих сообщений

jffs2: mtd->read(0x170 bytes from 0x168690) returned ECC error
jffs2: mtd->read(0x6d4 bytes from 0x16712c) returned ECC error
jffs2: mtd->read(0x224 bytes from 0x166ddc) returned ECC error
jffs2: mtd->read(0x2a8 bytes from 0x166d58) returned ECC error
jffs2: mtd->read(0x408 bytes from 0x165bf8) returned ECC error
jffs2: mtd->read(0x48c bytes from 0x165b74) returned ECC error
jffs2: mtd->read(0x514 bytes from 0x165aec) returned ECC error
jffs2: mtd->read(0x598 bytes from 0x165a68) returned ECC error
jffs2: mtd->read(0x620 bytes from 0x1659e0) returned ECC error
jffs2: mtd->read(0x6a4 bytes from 0x16595c) returned ECC error
jffs2: mtd->read(0x568 bytes from 0x165298) returned ECC error
jffs2: mtd->read(0x5f0 bytes from 0x165210) returned ECC error
jffs2: mtd->read(0x678 bytes from 0x165188) returned ECC error
jffs2: mtd->read(0x700 bytes from 0x165100) returned ECC error
jffs2: mtd->read(0x6ac bytes from 0x164954) returned ECC error
jffs2: mtd->read(0x730 bytes from 0x1648d0) returned ECC error
jffs2: mtd->read(0x7b4 bytes from 0x16484c) returned ECC error
jffs2: mtd->read(0x30 bytes from 0x1647d0) returned ECC error
jffs2: mtd->read(0xb8 bytes from 0x164748) returned ECC error
jffs2: mtd->read(0x13c bytes from 0x1646c4) returned ECC error

На своей плате проверить смогу только завтра.
Продолжаю искать различия.
Спуститься к концу Подняться к началу
Персональная информация
vibic
Добавлено 30.08.2012 22:55 Сообщение: 6
vibic
5

Пункты: 940
Регистрация: 23.01.2012
Пол: Мужчина
Судя по логу, у Вас ядро не знает о nand почему-то.
Покажите еще .config Ваш, или сами проверьте, что нужные модули в ядре включены для nand, например в моем случае:
conf_3.5.3 $ grep MTD .config|grep -v "^#"
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_SWAP=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_DATAFLASH=y
CONFIG_MTD_NAND_ECC=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_VERIFY_WRITE=y
CONFIG_MTD_NAND_BCH=y
CONFIG_MTD_NAND_ECC_BCH=y
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_ATMEL=y
CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
CONFIG_OF_MTD=y

+ CONFIG_BLOCK=y
вроде и еще может, что мог пропустить.

У меня например при загрузки видно, что нанд проинитился:
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit), page size: 2048, OOB size: 64
Bad block table found at page 131008, version 0x01
Bad block table found at page 130944, version 0x01
nand_read_bbt: bad block at 0x000001060000
nand_read_bbt: bad block at 0x0000013c0000
nand_read_bbt: bad block at 0x000006140000
nand_read_bbt: bad block at 0x00000e680000
Creating 5 MTD partitions on "atmel_nand":
0x000000000000-0x000000100000 : "Bootstrap"
0x000000100000-0x000000200000 : "U-boot"
0x000000200000-0x000000300000 : "U-boot env"
0x000000300000-0x000000400000 : "U-boot env backup"
0x000000400000-0x000010000000 : "Don't touch!!!"
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 30.08.2012 23:32 Сообщение: 7
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
хм.. в вышеприведенном логе нет сообщений ядра, о детектирование чипа nand и т.б. упоминаний о разбиение..
как минимум, должна отработать правильно вот эта п/п:
Код
static inline void da830_evm_init_nand(int mux_mode)

впишите в ее начало отладочный pr_warning, чтобы понять - запускается она или нет..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 31.08.2012 01:04 Сообщение: 8
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Проблема более менее решилась, при загрузке выдает в некоторых местах ECC error, но по крайней мере монтирует все и sh запускает. Нужно было внести изменения связанный с ECC в файлы board-da830-evm.c, davinci-nand.c.

Спасибо Jury093 и vibic за помощь.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux