Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XE512-SIMXXX
Не получается загрузить плату с SD-карты
Gregory
Добавлено 12.08.2010 17:08
0
Сообщение: 1
Gregory
0

Регистрация: 23.07.2010
Доброго времени суток, Господа!

Сегодня решили попробовать научить плату AT91SAM9XE512 загружаться с SD-карты. Нашли в офисе карточку QUMO Sequre Digital 2 GB. Поступили следующим образом. Разбили флешку на два раздела, один для ядра, другой для корневой системы. Раздел для ядра (8 Мб) отформатировали как fat, раздел для корневой (оставшееся пространство флешки) отформатировали как ext3.

mkfs.vfat -n kernel /dev/sdd1
mkfs.ext3 /dev/sdd2
tune2fs -L rootfs /dev/sdd2


В ядре включили поддержку ext3. Также в конфигурации ядра в разделе General Setup сняли галочку с опции Initial RAM filesystem and RAM disk support. Скопировали из папки /tftpboot/ файл zlinux в раздел для ядра. При копировании файл был переименован в uImage.bin. Далее всё содержимое папки /buildroot-2010.02/output/target скопировали при помощи команды:
cp -a /home/user/src/buildroot-2010.02/ouptut/target/* /media/rootfs

rootfs – название раздела на флешке, созданного для хранения корневой.

Засунули флешку в плату. Зашли в U-Boot. В нём выполнили следующую последовательность действий:

U-Boot> setenv bootargs rootwait=5 root=/dev/mmcblk0p2 console=ttyS0,115200 mem=64M

U-Boot> mmc init 1
Manufacturer ID: 1B
OEM/Application ID: 534D
Product name: SD
Product Revision: 1.0
Product Serial Number: 2927664458
Manufacturing Date: 09/08
SD Card detected (RCA 45928)
CSD data: 002f0032 5f5a83c7 6db7ffbf 96800045
CSD structure version: 1.2
MMC System Spec version: 12
Card command classes: 3c7
Read block length: 256
Does not support partial reads
Write block length: 1
Does not support partial writes
Does not support group WP
Card capacity: 132120576 bytes
File format: 1/2
Write protection: permanent
mmc: Using 524288 cycles data timeout (DTOR=0x68)
Card does not support 512 byte reads, aborting.
.mmc1 is available

U-Boot> fatload mmc 1 20400000 uImage.bin

Видим, что процесс загрузки ядра проходит нормально. Загрузил ровно столько байт, сколь и весит uImage.bin

После этой загрузки выполняем:

U-Boot> bootm 20400000

Вот то, что плата вернула в ответ:

## Booting kernel from Legacy Image at 20400000 ...
Image Name: Linux Kernel Image
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1787282 Bytes = 1.7 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel ...

Linux version 2.6.28 (user@debian) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 2007q1-10)) #51 Thu Aug 12 04:44:32 EDT 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Starterkit.ru SK-AT91SAM9XXXXX-SIMXXX
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: rootwait=5 root=/dev/mmcblk0p2 console=ttyS0,115200 mem=64M
AT91: 96 gpio irqs in 3 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console [ttyS0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 61200KB available (3268K code, 264K data, 124K init)
Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 288 bytes
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (SUMMARY) б╘ 2001-2006 Red Hat, Inc.
yaffs Mar 27 2010 12:35:28 Installing.
msgmni has been set to 119
alg: No test for stdrng (krng)
io scheduler noop registered (default)
Console: switching to colour frame buffer device 60x34
fb0: Hecuba frame buffer device, using 510K of video memory
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfffb8000 (irq = 8) is a ATMEL_SERIAL
brd: module loaded
loop: module loaded
ssc ssc.0: Atmel SSC device at 0xc48f8000 (irq 14)
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
PPPoL2TP kernel driver, V1.0
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffc4000 irq 21 (00:1f:f2:00:00:00)
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ffffffff:01, irq=-1)
Driver 'sd' needs updating - please use bus_type methods
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 2 MTD partitions on "atmel_nand":
0x00000000-0x00800000 : "Partition 1"
0x00800000-0x10000000 : "Partition 2"
atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13)
usbmon: debugfs is not available
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 20, io mem 0x00500000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
udc: at91_udc version 3 May 2006
mice: PS/2 mouse device common for all mice
input: HP Jornada touchscreen as /class/input/input0
i2c /dev entries driver
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.18rc3.
tlv320aic23b spi1.0: tlv320aic23b: supported bitrate is 47348 (66 divider)
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SD card at address b368
ALSA device list:
#0: AT91SAM9260 external CODEC on irq 14
TCP cubic registered
NET: Registered protocol family 17
mmcblk0: mmc0:b368 SD 1.88 GiB
mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
p1 p2
kjournald starting. Commit interval 5 seconds
EXT3 FS on mmcblk0p2, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).
Freeing init memory: 124K


И всё. На этом месте плата намертво зависает. Пожалуйста, может быть посоветуете что-нибудь? Что мы делаем не правильно?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.08.2010 17:31 Редактировалось 12.08.2010 17:31 Сообщение: 2
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
попробуйте перенести корневую слегка "по другому"
заархивируйте каталог с корневой а потом распакуйте архив на флешке. возможно у вас симлинки неправильно скопировались..
или ключик -s для команды cp

еще вариант - попробовать EXT2

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Gregory
Добавлено 13.08.2010 10:52 Сообщение: 3
Gregory
0

Регистрация: 23.07.2010
Попробовали ext2, но не помогло. У нас есть подозрения вот на какую вещь. мы в корневой, перед тем как скопировать её на флешку, создали файлы:

mknod /home/user/src/buildroot-2010.02/output/target/dev/mmcblk0 b 179 0
mknod /home/user/src/buildroot-2010.02/output/target/dev/mmcblk0p1 b 179 1
mknod /home/user/src/buildroot-2010.02/output/target/dev/mmcblk0p2 b 179 2
mknod /home/user/src/buildroot-2010.02/output/target/dev/mmcblk0p3 b 179 3

Есть подозрение, что мы тут с цифрами немного перемудрили.
Спуститься к концу Подняться к началу
Персональная информация
Gregory
Добавлено 13.08.2010 13:41 Сообщение: 4
Gregory
0

Регистрация: 23.07.2010
Всем большое спасибо. Всё заработало. Всё дело было в правах на /dev/mmc* файлы. Если коротко, то мы сделали вот что. Загрузились с NANDFlash и стали ковырятся через плату в SD-карте. После втыкания в плату карточка обнаружила себя как:
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SD card at address b368
mmcblk0: mmc0:b368 SD 1.88 GiB
mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5
p1 p2
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
FAT: IO charset iso8859-1 not found

Ну а дальше уже...

# mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,mode=600)
tmpfs on /tmp type tmpfs (rw)
sysfs on /sys type sysfs (rw)
mdev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=600)
/dev/mtdblock1 on /mnt/nand type yaffs (rw)
/dev/mmcblk0p2 on /mnt/mmcblk0p2 type ext2 (rw,sync,errors=continue)
/dev/mmcblk0p1 on /mnt/mmcblk0p1 type msdos (rw,sync,fmask000,dmask000,allow_utime022,codepage=cp437)
#

# ls -l /dev/mmc*
brw-rw---- 1 root root 179, 0 Dec 31 18:07 /dev/mmcblk0
brw-rw---- 1 root root 179, 1 Dec 31 18:07 /dev/mmcblk0p1
brw-rw---- 1 root root 179, 2 Dec 31 18:07 /dev/mmcblk0p2
#

# ls -l /mnt/mmcblk0p2/
drwxr-xr-x 2 default default 4096 Aug 12 2010 bin
drwxr-xr-x 2 default default 4096 Mar 20 2010 boot
drwxr-xr-x 2 default default 4096 Mar 20 2010 config
drwxr-xr-x 4 default default 4096 Dec 31 17:00 dev
drwxr-xr-x 7 default default 4096 Aug 12 2010 etc
drwxr-xr-x 3 default default 4096 Mar 20 2010 home
lrwxrwxrwx 1 default default 9 Aug 13 2010 init -> sbin/init
drwxr-xr-x 3 default default 4096 Aug 12 2010 lib
lrwxrwxrwx 1 default default 11 Aug 13 2010 linuxrc -> bin/busybox
drwxr-xr-x 4 default default 4096 Mar 27 2010 mnt
drwxr-xr-x 2 default default 4096 Mar 20 2010 opt
drwxr-xr-x 2 default default 4096 Mar 20 2010 proc
drwxr-xr-x 2 default default 4096 Mar 20 2010 root
drwxr-xr-x 2 default default 4096 Aug 12 2010 sbin
drwxr-xr-x 2 default default 4096 Mar 20 2010 sys
drwxrwxrwt 2 default default 4096 Mar 20 2010 tmp
drwxr-xr-x 7 default default 4096 Aug 5 2010 usr
drwxr-xr-x 10 default default 4096 Feb 26 2010 var
#

# ls -l /mnt/mmcblk0p2/dev/mmc*
brw-r--r-- 1 root root 179, 0 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0
brw-r--r-- 1 root root 179, 1 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0p1
brw-r--r-- 1 root root 179, 2 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0p2
brw-r--r-- 1 root root 179, 3 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0p3
#

chmod 660 /mnt/mmcblk0p2/dev/mmc*

# ls -l /mnt/mmcblk0p2/dev/mmc*
brw-rw---- 1 root root 179, 0 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0
brw-rw---- 1 root root 179, 1 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0p1
brw-rw---- 1 root root 179, 2 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0p2
brw-rw---- 1 root root 179, 3 Aug 13 2010 /mnt/mmcblk0p2/dev/mmcblk0p3
#

chown -R root:root /mnt/mmcblk0p2

# ls -l /mnt/mmcblk0p2/
drwxr-xr-x 2 root root 4096 Aug 12 2010 bin
drwxr-xr-x 2 root root 4096 Mar 20 2010 boot
drwxr-xr-x 2 root root 4096 Mar 20 2010 config
drwxr-xr-x 4 root root 4096 Dec 31 17:00 dev
drwxr-xr-x 7 root root 4096 Aug 12 2010 etc
drwxr-xr-x 3 root root 4096 Mar 20 2010 home
lrwxrwxrwx 1 root root 9 Aug 13 2010 init -> sbin/init
drwxr-xr-x 3 root root 4096 Aug 12 2010 lib
lrwxrwxrwx 1 root root 11 Aug 13 2010 linuxrc -> bin/busybox
drwxr-xr-x 4 root root 4096 Mar 27 2010 mnt
drwxr-xr-x 2 root root 4096 Mar 20 2010 opt
drwxr-xr-x 2 root root 4096 Mar 20 2010 proc
drwxr-xr-x 2 root root 4096 Mar 20 2010 root
drwxr-xr-x 2 root root 4096 Aug 12 2010 sbin
drwxr-xr-x 2 root root 4096 Mar 20 2010 sys
drwxrwxrwt 2 root root 4096 Mar 20 2010 tmp
drwxr-xr-x 7 root root 4096 Aug 5 2010 usr
drwxr-xr-x 10 root root 4096 Feb 26 2010 var
#


НУ а потом попробовали загрузится с SD-карты снова и... загрузились.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XE512-SIMXXX