Jump to content

    
Sign in to follow this  
ecos-rtos.in.ua

Первый запуск платы

Recommended Posts

TLV320AIC23B (c драйвером at73c213) в списке устройств ALSA есть, устройство dsp есть, alsamixer позволяет настроить громкость, но при проигрывании mp3 mplayer-ом в наушиках тишина. Версия alsa 1.0.21.

Взял драйвер для TLV320AIC23B на форуме starterkit.ru, звук пошел.

 

Видео также запустил. board-файле такой кусок вставил

 

#if defined(CONFIG_FB_S1D13XXX) || defined(CONFIG_FB_S1D13XXX_MODULE)
#include <video/s1d13xxxfb.h>                                        

static struct sam9_smc_config __initdata at91sam9260_video = {

        .ncs_read_setup         = 0,
        .nrd_setup              = 1,
        .ncs_write_setup        = 0,
        .nwe_setup              = 1,

        .ncs_read_pulse         = 5,
        .nrd_pulse              = 4,
        .ncs_write_pulse        = 5,
        .nwe_pulse              = 4,

        .read_cycle             = 6,
        .write_cycle            = 6,

    .mode                   = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_READY | AT91_SMC_BAT | AT91_SMC_DBW_16,// | AT91_SMC_TDFMODE,
//    .tdf_cycles             = 0,                                                                                                                    

};

static void __init ek_init_video(void)
{                                     

        sam9_smc_configure(4, &at91sam9260_video);

        at91_set_A_periph(AT91_PIN_PC15, 1);

        at91_set_A_periph(AT91_PIN_PC8, 0);    
                                               
}                                              

#include "s1d13506.h"

static struct s1d13xxxfb_pdata ek_s1dfb_pdata = {
        .initregs               = (struct s1d13xxxfb_regval*)aS1DRegs,
        .initregssize           = ARRAY_SIZE(aS1DRegs),               
        .platform_init_video    = ek_init_video,                      
};                                                                    

#define EK_FB_REG_BASE  AT91_CHIPSELECT_4
#define EK_FB_VMEM_BASE EK_FB_REG_BASE + SZ_2M
#define EK_FB_VMEM_SIZE SZ_2M                 

static struct resource ek_s1dfb_resource[] = {
        [0] = { /* video mem */               
                .name   = "s1d13xxxfb memory",
                .start  = EK_FB_VMEM_BASE,    
                .end    = EK_FB_VMEM_BASE + EK_FB_VMEM_SIZE -1,
                .flags  = IORESOURCE_MEM,                      
        },                                                     
        [1] = { /* video registers */                          
                .name   = "s1d13xxxfb registers",              
                .start  = EK_FB_REG_BASE,                      
                .end    = EK_FB_REG_BASE + SZ_512 -1,          
                .flags  = IORESOURCE_MEM,                      
        },                                                     
};                                                             

static u64 s1dfb_dmamask = DMA_BIT_MASK(32);

static struct platform_device ek_s1dfb_device = {
        .name           = "s1d13xxxfb",          
        .id             = -1,                    
        .dev    = {                              
                .dma_mask               = &s1dfb_dmamask,
                .coherent_dma_mask      = DMA_BIT_MASK(32),
                .platform_data          = &ek_s1dfb_pdata, 
        },                                                 
        .resource       = ek_s1dfb_resource,               
        .num_resources  = ARRAY_SIZE(ek_s1dfb_resource),   
};                                                         

void __init ek_add_device_video(void)
{                                    
        platform_device_register(&ek_s1dfb_device);
}                                                  
#else                                              
void __init ek_add_device_video(void) {}           
#endif

 

и драйвер сам определяет микросхему.

Share this post


Link to post
Share on other sites

Доброе всем время суток.

 

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

RomBOOT               
>Gustang init...Ok                  
Start AT91Bootstrap...                      
DataFlash found: AT45DB321B                           
DataFlash: waint for ready                          
DataFlash is ready                  


U-Boot 1.3.4 (Jun  2 2009 - 18:04:39)                                     

DRAM:  64 MB            
DataFlash:AT45DB321                   
Nb pages:   8192                
Page Size:    528                 
Size= 4325376 bytes                   
Logical address: 0xD0000000                           
Area 0: D0000000 to D00041FF (RO) Bootstrap                                           
Area 1: D0004200 to D00083FF      Environment                                             
Area 2: D0008400 to D0041FFF (RO) U-Boot                                        
Area 3: D0042000 to D0251FFF      Kernel                                        
Area 4: D0252000 to D041FFFF      FS                                    
In:    serial             
Out:   serial             
Err:   serial
Net:   macb0
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0xc5e1)
Hit any key to stop autoboot:  0
macb0: link up, 100Mbps full-duplex (lpa: 0xc5e1)
Using macb0 device
TFTP from server 192.168.0.21; our IP address is 192.168.0.19
Filename 'kernel'.
Load address: 0x22200000
Loading: #################################################################
         ####################
done
Bytes transferred = 1242196 (12f454 hex)
## Booting kernel from Legacy Image at 22200000 ...
   Image Name:   linux-2.6
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1242132 Bytes =  1.2 MB
   Load Address: 20008000
   Entry Point:  20008000
   Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
U-Boot>

 

Пробовал качать другие ядра с linux4sam - ситуация такая же: Bad Data CRC. Помогите добрым советом, заранее благодарю.

Share this post


Link to post
Share on other sites

mtest запустите, она у Вас как бы понимает что там лежит образ ядра, размер приблизительно такой какой должен быть, возможно SDRAM не очень хорошо работает.

Share this post


Link to post
Share on other sites
mtest запустите, она у Вас как бы понимает что там лежит образ ядра, размер приблизительно такой какой должен быть, возможно SDRAM не очень хорошо работает.

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

Share this post


Link to post
Share on other sites
Как эту плату приобрести? А то на e-mail указанный на сайте не отправляются письма. Приходит ответ, что Ваше сообщение не может быть доставлено. :1111493779:

Я нахожусь в Киеве. И с сайта нас отправили на Караваевы Дачи павильон 9В.

Павильон 9-В "Радиодетали", радиорынок "Караваевы дачи"

 

Ул. Ушинского, 4

тел/факс: (044) 242-20-79, тел: 362-04-24

e-mail: radiomagazin@list.ru

 

Режим работы:

Вт-Вс: 9-00 16-00

Через них, собственно и была куплена плата.

Share this post


Link to post
Share on other sites
Я пробовал запускать тест памяти, при этом процесс повис на попытке записи, т.е. я увидел Writing...и все.

попробуйте специфицировать область тестирования, но там достаточно плохо, у u-boot-а стэк лежит в SDRAM и сам он тоже тамже находится, если память сбойная Вы как бы в промпт можете с какойто вероятностью влететь, а вот дальше результат непредсказуем, хотя при загрузке по tftp должны контрольные суммы считаться, этот момент может быть конечно опущен при разработке u-boot-а, пропущенные куски файлов там переповторяются это точно, хотя если стэк бъется то ситуация трудно прогнозируема.

Share this post


Link to post
Share on other sites
попробуйте специфицировать область тестирования, но там достаточно плохо, у u-boot-а стэк лежит в SDRAM и сам он тоже тамже находится, если память сбойная Вы как бы в промпт можете с какойто вероятностью влететь, а вот дальше результат непредсказуем, хотя при загрузке по tftp должны контрольные суммы считаться, этот момент может быть конечно опущен при разработке u-boot-а, пропущенные куски файлов там переповторяются это точно, хотя если стэк бъется то ситуация трудно прогнозируема.

Похоже, что проблема у меня с DataFlash. Хочу подчеркнуть, что именно у меня с ней, а в ней самой. Из SAM-BA я ее прекрасно вижу, для чистоты эксперимента вытер ее полностью командой Erase all в SAM-BA. Потом заново залил bootstrap и u-boot. Все стартонуло, но при попытке залить ядро по сети я снова увидел ненавистную мне надпись:

Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!

Далее попробовал залить ядро через последовательный порт:

U-Boot> loadb 22200000
## Ready for binary (kermit) download to 0x22200000 at 115200 bps...

ядро нормально залилось в SDRAM:

## Total Size      = 0x0012f454 = 1242196 Bytes
## Start Addr      = 0x22200000

но при попытке скпировать его в DataFlash я вижу ошибку:

U-Boot> cp.b 22200000 D0040000 200000
Copy to DataFlash... Can't write to protected/invalid DataFlash sectors

попробовал отключить защиту (поскольку хелп в u-boot отвратительный, то пришлось практически подбирать синтаксис команды protect экспериментальным путем), сработала команда только на сектор 0, остальные писали об ошибке:

U-Boot> protect off 0
Un-Protect 1 DataFlash Sectors

U-Boot> protect off 1
Bad DataFlash sector specification

В общем, пока воюю...

 

еще обратил внимание, что при старте u-boot пишет:

U-Boot 1.3.4 (Jun  2 2009 - 18:04:39)                                    

DRAM:  64 MB            
DataFlash:AT45DB321                   
Nb pages:   8192                
Page Size:    528                 
Size= 4325376 bytes                   
Logical address: 0xD0000000                           
Area 0: D0000000 to D00041FF (RO) Bootstrap                                           
Area 1: D0004200 to D00083FF      Environment                                             
Area 2: D0008400 to D0041FFF (RO) U-Boot                                        
Area 3: D0042000 to D0251FFF      Kernel                                        
Area 4: D0252000 to D041FFFF      FS                                    
*** Warning - bad CRC, using default environment

Похоже, что проблема все-таки в DataFlash

Share this post


Link to post
Share on other sites

Эпопея продолжается:

залил через SAM-BA образ ядра прямо в DataFlash и попытался с него загрузиться:

U-Boot> bootm D0042000
## Booting kernel from Legacy Image at 22000000 ...
   Image Name:   linux-2.6
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1242132 Bytes =  1.2 MB
   Load Address: 20008000
   Entry Point:  20008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

 

И все.... больше ничего не увидел :(

Edited by SHUR1K

Share this post


Link to post
Share on other sites
а в параметрах коммандной стоки есть чтото похожее на console=ttyS0,115200 ?

да, все есть:

U-Boot> printenv
bootcmd=tftpboot 0x22200000 kernel; bootm 0x22200000
bootdelay=3
baudrate=115200
ethaddr=00:32:18:9A:12:02
ethact=macb0
bootargs=mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootdelay=10
stdin=serial
stdout=serial
stderr=serial
filesize=12F454
fileaddr=22200000
netmask=255.255.255.0
ipaddr=192.168.0.19
serverip=192.168.0.21

Environment size: 333/15868 bytes

Share this post


Link to post
Share on other sites
Area 0: D0000000 to D00041FF (RO) Bootstrap

Area 1: D0004200 to D00083FF Environment

Area 2: D0008400 to D0041FFF (RO) U-Boot

Area 3: D0042000 to D0251FFF Kernel

Area 4: D0252000 to D041FFFF FS

Не знаю как обстоит дело в этой версии , команда protect off <стартовый адрес> <концевой адрес> снимает брокировку защиты от записи. Команда flinfo показывет сектора, если там RO то сектор запщищен от записи

 

там ещё можно комадночкой cp.b попробовать скопировать образ в SDRAM, командочка flinfo <адрес> выдает информацию о образе.

Edited by dch

Share this post


Link to post
Share on other sites
там ещё можно комадночкой cp.b попробовать скопировать образ в SDRAM, командочка flinfo <адрес> выдает информацию о образе.

Записать ядро в DataFlash у меня наконец-то получилось:

U-Boot> loadb 22200000
## Ready for binary (kermit) download to 0x22200000 at 115200 bps...
## Total Size      = 0x00137d00 = 1277184 Bytes
## Start Addr      = 0x22200000
U-Boot> cp.b 22200000 D0042000 200000
Copy to DataFlash... done

P.S. Раньше не получалось из-за своей невнимательности, тупо копировал команду с сайта (cp.b 22200000 D0040000 200000) и не обратил внимание, что надо лить с адреса D0042000, а так получалось, что я зализал на область u-boot, а она ведь RO, вот команда cp.b и ругалась справедливо.

После этого:

U-Boot> setenv bootcmd cp.b D0042000 0x22200000 200000

и на всякий случай:

U-Boot> saveenv
Saving Environment to dataflash...

а потом:

U-Boot>bootm 22200000

и о счастье:

Uncompressing Linux.............................................................                                                                                
...................... done, booting the kernel.                                                
Linux version 2.6.27 (xuser@iron) (gcc version 4.2.0 20070413 (prerelease) (Code                                                                                
Sourcery Sourcery G++ Lite 2007q1-10)) #625 Thu Jun 25 16:11:59 EEST 2009       
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: Atmel AT91SAM9260-EK
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 198 MHz, master 99 MHz, main 18.432 MHz
CPU0: D VIVT write-back cache
CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootdel
ay=10
AT91: 96 gpio irqs in 3 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console [ttyS0] enabled

 

Большое спасибо всем за участие.

 

И для меня пока все еще остается загадкой, почему ядро не грузиться после заливки его по сети. Есть предположение, что не хватает мощности источника питания (у меня 0,75А). Попробую позже еще запустить с другим источником.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this