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

Calibrating delay loop...

 

Скорей всего не работает системный таймер - прерывания не приходят от него, поэтому зацикливается.

pr_info("Calibrating delay loop... ");

while ((loops_per_jiffy <<= 1) != 0) {

/* wait for "start of" clock tick */

ticks = jiffies;

while (ticks == jiffies)

/* nothing */;

 

А вот почему не работает - это другой вопрос. Сравните инициализацию таймеров в старом и новом ядре, в старом она тут

arch/arm/mach-davinci/time.c

я не знаком с этим процессором, тут ничего не подскажу. Еще на рабочем ядре погоняйте на всякий случай мемтестер нормальный - то что в убуте не находит ошибок не дает 100% гарантии, там он слишком примитивный.

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

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


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

Еще на рабочем ядра погоняйте на всякий случай мемтестер нормальный - то что в убуте не находит ошибок не дает 100% гарантии, там он слишком примитивный.

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

 

еще раз спасибо

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

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


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

извиняюсь, не совсем понял?

 

Ядро у вас есть рабочее - запустите memtester из-под Linux (есть например в составе buildroot), корневую в initramfs соберите, у меня какие смутные воспоминания остались что было такое из-за ошибок памяти, хотя я не уверен - для успокоения своего же потестируйте память :)

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

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


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

Ядро у вас есть рабочее - запустите там memtester (есть например в составе buildroot), корневую в initramfs соберите, у меня какие смутные воспоминания остались что было такое из-за ошибок памяти, хотя я не уверен - для успокоения своего же потестируйте память :)

спасибо :beer: , для 100% уверенности, свой тестер напишу

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


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

спасибо :beer: , для 100% уверенности, свой тестер напишу

100% получить затруднительно. Как минимум прогоните длительно псевдослучайную последовательность и проверьте ground bounce.

Но и это не даст гарантии. Например, доработанный хавкборд замечательно проходит любые тесты памяти и работает под linux, но падает

буквально за секунды под WinCE.

 

В общем, если есть хоть малейшие подозрения на работу памяти - тестировать безжалостно. Потом будет меньше проблем "неясной этиологии".

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


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

спасибо :beer: , для 100% уверенности, свой тестер напишу

 

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

NR_IRQS:245

 

Console: colour dummy device 80x30

 

Calibrating delay loop...

 

и проверьте - разрешено ли вообще прервание для таймера который там используется.

 

UPD все же непонятно - если это ядро работает на почти таком же процессоре но на другой плате - как оно там не зависает... и тут как раз такой ключевой момент - ожидание первого тика от таймера - это помоему первое переключение контекста в системе после старта, попробуйте все же кеши отключить, и еще в меню есть такой грозный пункт :) тоже можно попробовать отключитьpost-41858-1324932207_thumb.png

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

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


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

спасибо, завтра сравню регистры и конфиги для старого ядра.

 

сегодня весь день провел за программированием ФС в нанд.

 

все казалось бы делаю по инструкции, все вроде отрабатывает, а ядро при загрузке вот паникует и вываливает следующий лог:

 

U-Boot > loadb

## Ready for binary (kermit) download to 0xC0700000 at 115200 bps...

## Total Size      = 0x001d48c0 = 1919168 Bytes

## Start Addr      = 0xC0700000

U-Boot > bootm

## Booting kernel from Legacy Image at c0700000 ...

   Image Name:   Linux-3.1.6

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    1919104 Bytes =  1.8 MB

   Load Address: c0008000

   Entry Point:  c0008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK

mem.start: c0000000

mem.size: 2000000 bytes 32 MB



Starting kernel ...



debug: jump to c0008000 address

debug: start boot params address: c0000100

debug: data

debug: machID 1781

Uncompressing Linux... done, booting the kernel.

Linux version 3.1.6 (xxx@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-

203) ) #10 PREEMPT Tue Dec 27 11:33:39 MSK 2011

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

CPU: VIVT data cache, VIVT instruction cache

Machine: DaVinci DA830/OMAP-L137/AM17x EVM

bootconsole [earlycon0] enabled

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: console=ttyS2,115200n8 mem=32M earlyprintk ip=off root=/dev

/mtdblock0 rw rootfstype=jffs2

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: 28584k/28584k available, 4184k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xff000000 - 0xffe00000   (  14 MB)

    vmalloc : 0xc2800000 - 0xfea00000   ( 962 MB)

    lowmem  : 0xc0000000 - 0xc2000000   (  32 MB)

    modules : 0xbf000000 - 0xc0000000   (  16 MB)

      .text : 0xc0008000 - 0xc0358508   (3394 kB)

      .init : 0xc0359000 - 0xc037a000   ( 132 kB)

      .data : 0xc037a000 - 0xc039f080   ( 149 kB)

       .bss : 0xc039f0a4 - 0xc03c40ac   ( 149 kB)

SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

NR_IRQS:245

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

DaVinci: 128 gpio irqs

print_constraints: dummy:

NET: Registered protocol family 16

bio: create slab <bio-0> at 0

Switching to clocksource timer0_0

Switched to NOHz mode on CPU #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) (SUMMARY)  © 2001-2006 Red Hat, Inc.

msgmni has been set to 55

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

serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A

console [ttyS2] enabled, bootconsole disabled

console [ttyS2] enabled, bootconsole disabled

brd: module loaded

ONFI flash detected

ONFI param page 0 valid

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron MT29F1G08ABADAWP)

Creating 1 MTD partitions on "davinci_nand.1":

0x000000000000-0x000008000000 : "filesystem"

davinci_nand davinci_nand.1: controller rev. 2.5

spi_davinci spi_davinci.0: DMA: supported

spi_davinci spi_davinci.0: DMA: RX channel: 14, TX channel: 15, event queue: 0

spi_davinci spi_davinci.0: Controller at 0xfec41000

davinci_mdio davinci_mdio.0: davinci mdio revision 1.5

davinci_mdio davinci_mdio.0: detected phy mask fffffff1

davinci_mdio.0: probed

davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown

davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown

davinci_mdio davinci_mdio.0: phy[3]: device 0:03, driver unknown

rtc-test rtc-test.0: rtc core: registered test as rtc0

rtc-test rtc-test.1: rtc core: registered test as rtc1

i2c /dev entries driver

watchdog watchdog: heartbeat 60 sec

SoftDog: cannot register miscdev on minor=130 (err=-16)

cpuidle: using governor ladder

cpuidle: using governor menu

TCP cubic registered

NET: Registered protocol family 17

davinci_emac davinci_emac.1: using random MAC addr: d2:0d:54:78:68:1c

console [netcon0] enabled

netconsole: network logging started

rtc-test rtc-test.0: setting system clock to 1970-01-01 00:00:02 UTC (2)

Root-NFS: no NFS server address

VFS: Unable to mount root fs via NFS, trying floppy.

List of all partitions:

No filesystem could mount root, tried:  jffs2

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

[<c000d830>] (unwind_backtrace+0x0/0xf8) from [<c0284cd4>] (panic+0x60/0x1a8)

[<c0284cd4>] (panic+0x60/0x1a8) from [<c0359dcc>] (mount_block_root+0x1c8/0x224)



[<c0359dcc>] (mount_block_root+0x1c8/0x224) from [<c0359ea8>] (mount_root+0x80/0

xc8)

[<c0359ea8>] (mount_root+0x80/0xc8) from [<c0359ffc>] (prepare_namespace+0x10c/0

x1c8)

[<c0359ffc>] (prepare_namespace+0x10c/0x1c8) from [<c035928c>] (kernel_init+0xec

/0x12c)

[<c035928c>] (kernel_init+0xec/0x12c) from [<c0009c9c>] (kernel_thread_exit+0x0/

0x8)

BOOTME

 

bootargs=console=ttyS2,115200n8 mem=32M earlyprintk root=/dev/mtdblock0 rw rootfstype=jffs2 ip=off

 

корневую ФС базовую скачал с офиц. сайта.

распаковал и установил туда kernel headers and modules.

 

собирал jffs2.bin следующим образом:

 

# mkfs.jffs2 -p -d rootfs -s 2048 -e 0x20000 -l -q -o rootfs.jffs2 -v –n

 

NAND Organization:

– Page size x8: 2112 bytes (2048 + 64 bytes)

– Page size x16: 1056 words (1024 + 32 words)

– Block size: 64 pages (128K + 4K bytes)

– Device size: 1Gb: 1024 blocks

 

получившийся образ ФС я заливаю по терминалу в оперативку борды, затем делаю:

1. nand erase 0 0x08000000

2. nand write.jffs2 0xc0700000 0 $filesize

 

все удачно программируется, затем гружу ядро( NAND & JFFS2 включены при сборке ядра)

 

куда копать и что делать?

подскажите пожалуйста.

 

и еще, почему ядро первым делом пытается примонтировать ФС по NFS, когда я ему четко указал откуда брать корневую ФС?

 

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


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

Кстати, попробовать отключить кэши на "неработающем" ядре - это весьма дельный совет. Если оно после этого начнет запускаться, значит с весьма высокой вероятностью ваша железка имеет проблемы с памятью. Я бы проверил, по крайней мере.

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


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

Кстати, попробовать отключить кэши на "неработающем" ядре - это весьма дельный совет. Если оно после этого начнет запускаться, значит с весьма высокой вероятностью ваша железка имеет проблемы с памятью. Я бы проверил, по крайней мере.

да, спасибо,

для ядра 3.1.6 кеши точно отключены и пунк "Reset unusing clock during boot" включен.

завтра обращу внимание на ядро 2.6.34, которое TI поставляло к EVM1707

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

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


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

всем преогромное спасибо,

весь прикол был только в Reset unusing clock during boot, неободимо включить такой параметр.

 

с корневой фс вопрос решен

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


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

Добрый день.

 

Есть плата на AM1705, 16M SDRAM, NAND. Пересобрал u-boot из SDK, добавил поддержку платы, сделал AIS образ AISGen, записал в NAND при помощи CCS4.

Поднял на вирутальной машине tftp сервер, взял образ ядра из SDK. Ядро нормально загружается по сети, разворачивается и ему передается управление. После передачи управления в консоли появляется одна строка мусора. Косоль заведена на UART0;

 

Подскажите, куда смотреть?

 

U-Boot 2009.11 (Dec 28 2011 - 22:38:45)

DRAM:  16 MB
NAND:  64 MiB
Bad block table found at page 131040, version 0x01
Bad block table found at page 131008, version 0x01
nand_bbt: ECC error while reading bad block table
*** Warning - bad CRC or NAND, using default environment

In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
Net:   Ethernet PHY: GENERIC @ 0x07

Hit any key to stop autoboot:  0


U-Boot > setenv bootargs mem=16M console=ttyS2,115200n8 root=/dev/mmcblk0p1 rw rootwait ip=off
U-Boot > printenv
bootcmd=sf probe 0;sf read 0xc0700000 0x60000 0x220000;bootm 0xc0700000
bootdelay=60
baudrate=115200
bootfile="uImage"
stdin=serial
stdout=serial
stderr=serial
ethaddr=0a:0b:14:00:15:16
ver=U-Boot 2009.11 (Dec 28 2011 - 22:38:45)
bootargs=mem=16M console=ttyS2,115200n8 root=/dev/mmcblk0p1 rw rootwait ip=off

Environment size: 309/131068 bytes
U-Boot > setenv bootargs mem=16M console=ttyS0,115200n8 root=/dev/mmcblk0p1 rw rootwait ip=off
U-Boot > setenv netmask 255.0.0.0
U-Boot > setenv ipaddr 192.168.0.10
U-Boot > setenv serverip 192.168.0.5
U-Boot > tftp uImage
Using  device
TFTP from server 192.168.0.5; our IP address is 192.168.0.10
Filename 'uImage'.
Load address: 0xc0700000
Loading: #####T ############################################################
        ####T #########################################################T ####
        #############T #######################################T #############
        #################################################################
        ##################T #####################################T ##########
        ###T #########T ################################T ####################
done
Bytes transferred = 1990068 (1e5db4 hex)
U-Boot > bootm
## Booting kernel from Legacy Image at c0700000 ...
  Image Name:   Linux-2.6.33-rc4
  Image Type:   ARM Linux Kernel Image (uncompressed)
  Data Size:    1990004 Bytes =  1.9 MB
  Load Address: c0008000
  Entry Point:  c0008000
  Verifying Checksum ... OK
  Loading Kernel Image ... OK
OK

Starting kernel ...


A<a???oooo<ooooooooooooo?oooA?ooo?ooo€a 

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


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

console=ttyS0,115200n8

 

передавайте такой параметр ядру, вы грузитесь с UART0, соотсветственно, ttyS0

должно решить проблему

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

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


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

console=ttyS0,115200n8

 

передавайте такой параметр ядру, вы грузитесь с UART0, соотсветственно, ttyS0

должно решить проблему

 

В предыдущем выводе так и было.

 

Пересобрал ядро, включил early debug :

 

#make ARCH=arm defconfig da830_omapl137_defconfig 
#make ARCH=arm CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi- uImage

 

Дополнительно исправил файлы :

debug_macro.S

orr    \rx, \rx, #0x00C40000    @ physical base address
orr    \rx, \rx, #0x00002000    @ of UART 0

 

board-da830-evm.c:

static int __init da830_evm_console_init(void)
{
   return add_preferred_console("ttyS", 0, "115200");
}

 

uncompress.h:

static u32 *get_uart_base(void)
{
   if (__machine_arch_type == MACH_TYPE_DAVINCI_DA830_EVM ||
       __machine_arch_type == MACH_TYPE_DAVINCI_DA850_EVM)
       return (u32 *)DA8XX_UART0_BASE;
   else
       return (u32 *)DAVINCI_UART0_BASE;
}

 

 

После запуска u-boot дополнительно настроил переменные :

U-Boot > setenv bootargs mem=16M console=ttyS0,115200n8 root=/dev/mmcblk0p1 rw                                                                                                                                          rootwait ip=off
U-Boot > setenv netmask 255.0.0.0
U-Boot >  setenv ipaddr 192.168.0.10
U-Boot >  setenv serverip 192.168.0.5

 

Загрузил по tftp и попробовал запустить, получил мусор в консоли.

U-Boot 2009.11 (Jan 12 2012 - 00:21:11)

DRAM:  16 MB
NAND:  64 MiB
Bad block table found at page 131040, version 0x01
Bad block table found at page 131008, version 0x01
nand_bbt: ECC error while reading bad block table
*** Warning - bad CRC or NAND, using default environment

In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
Net:   Ethernet PHY: GENERIC @ 0x07

Hit any key to stop autoboot:  0
U-Boot > setenv bootargs mem=16M console=ttyS0,115200n8 root=/dev/mmcblk0p1 rw                                                                                                                                          rootwait ip=off
U-Boot > setenv netmask 255.0.0.0
U-Boot >  setenv ipaddr 192.168.0.10
U-Boot >  setenv serverip 192.168.0.5
U-Boot > tftp uImage
Using  device
TFTP from server 192.168.0.5; our IP address is 192.168.0.10
Filename 'uImage'.
Load address: 0xc0700000
Loading: #################################################################
        #################################################################
        ###T #################T #############################################
        #################################################################
        #################################################################
        #################################################################
        ###
done
Bytes transferred = 2008176 (1ea470 hex)
U-Boot > bootm
## Booting kernel from Legacy Image at c0700000 ...
  Image Name:   Linux-2.6.33-rc4
  Image Type:   ARM Linux Kernel Image (uncompressed)
  Data Size:    2008112 Bytes =  1.9 MB
  Load Address: c0008000
  Entry Point:  c0008000
  Verifying Checksum ... OK
  Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
À<àààð<øøøøøøøøøøøøøøøø€ðøøø<øøøøøøøøøøøøøð

 

 

Как то у меня идеи пока кончились.

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


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

в параметрах ядру передайте( добавьте в bootargs ) еще:

earlyprintk

и покажите лог

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

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


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

Uncompressing Linux... done, booting the kernel.
А<ааар<шшшшшшшшшшшшшшшш€ршшш<шшшшшшшшшшшшшр

 

Больше похоже на то что baud rate на uart-ах не совпадает. Если с у четом того что советовали

 

в параметрах ядру передайте( добавьте в bootargs ) еще:

earlyprintk

 

появится часть нормальных сообщений после

Uncompressing Linux... done, booting the kernel.

 

то на инит UART в ядре нужно смотреть и править.

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

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


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

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

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

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

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

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

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

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

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

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