Outils pour utilisateurs

Outils du site


nas:dockstar:boot:boot_sd-card

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
nas:dockstar:boot:boot_sd-card [12 /07/2012 06:55]
psolyca [Modification] Ajout code erreur lecture SDCard
nas:dockstar:boot:boot_sd-card [17 /11/2016 15:03] (Version actuelle)
psolyca ↷ Liens modifiés en raison d'un déplacement.
Ligne 1: Ligne 1:
-Liens de références ​:\\ +Liens de référence ​:\\ 
 http://​projects.doozan.com/​uboot/​build_uboot.htm\\ ​ http://​projects.doozan.com/​uboot/​build_uboot.htm\\ ​
-http://​forum.doozan.com/​read.php?​3,​1561+http://​forum.doozan.com/​read.php?​3,​1561\\  
 +http://​forum.doozan.com/​read.php?​3,​6965,​7162#​msg-7162\\  
 +http://​forum.doozan.com/​read.php?​3,​7477,​7477#​msg-7477 
  
 Après avoir installé une carte SD sur le DockStar, il faut réussir à démarrer dessus.\\ ​ Après avoir installé une carte SD sur le DockStar, il faut réussir à démarrer dessus.\\ ​
-Pour se faire, il faut modifier U-Boot avec une prise en charge de la carte SD.\\ +Pour se faire, il faut modifier U-Boot avec une prise en charge de la carte SD.
  
-==== Principe ==== 
  
-Je suis parti d'une version 2010.09 de U-Boot.\\  +Commandes sur le Dockstar en liaison série : ''​Marvell>>''​\\  
-ftp://​ftp.denx.de/​pub/​u-boot/​u-boot-2010.09.tar.bz2\\ ​+Commandes sur le PC : ''>''​\\  
 + 
 +==== Compilation ==== 
 +=== U-Boot ​2010.09 === 
 +En partant d'une [[ftp://​ftp.denx.de/​pub/​u-boot/​u-boot-2010.09.tar.bz2|version 2010.09 de U-Boot]].\\ 
 \\  \\ 
-Après de multiples modifications et de patch divers et variésj'ai réussi à démarrer sur un U-Boot.\\  +Le patch complet (ajout support USBMMC et configuration DockStar) ​à appliquer sur la version 2010.09 est {{:​dockstar:​boot:​2010.09-sdio.patch|celui-ci}}.\\  
-Le patch à appliquer sur la version 2010.09 est {{:​dockstar:​boot:​2010.09-sdio.patch|celui-ci}}.\\  +
-L'​environnement par défaut a été modifié comme suit :\\ +
 <​code>​ <​code>​
-  arcNumber=2998 +>tar -xjf u-boot-2010.09.tar.bz2 
-  ​mainlineLinux=yes +>cp 2010.09-sdio.patch ​u-boot-2010.09
-  console=ttyS0,​115200 +>cd u-boot-2010.09 
-  mtdparts=mtdparts=orion_nand:​1M(u-boot),​4M@1M(uImage),​10M@5M(rootfs),​-(rootfs_data) +>patch -p1 < 2010.09-sdio.patch 
-  mtdids=nand0=orion_nand +>​codesourcery-arm-2009q3.sh 
-  partition=nand0,​2 +>make distclean 
-  mmc_device=0:​1 +>make dockstar_config 
-  mmc_root=/dev/​mmcblk0p1 +>make u-boot.kwb 
-  ​mmc_test=if ext2load mmc $mmc_device 0x800000 /boot/uImage 1; then echo "Found bootable drive on SDCard";​ fi; done +>​dd ​if=u-boot.kwb of=u-boot.mtd0.kwb bs=512k conv=sync 
-  ​mmc_init=mmc init; run mmc_test +>exit
-  ​mmc_rootdelay=10 +
-  ​mmc_rootfstype=ext2 +
-  ​mmc_set_bootargs=setenv bootargs console=$console root=$mmc_root rootdelay=$mmc_rootdelay rootfstype=$mmc_rootfstype $mtdparts +
-  ​mmc_boot=mw 0x800000 0 1;ext2load mmc $mmc_device 0x800000 /boot/​uImage; ​if ext2load mmc $mmc_device 0x1100000 /​boot/​uInitrd;​ then bootm 0x800000 0x1100000; else bootm 0x800000; fi +
-  mmc_bootcmd=run mmc_init; run mmc_set_bootargs;​ run mmc_boot +
-  usb_scan_list=1 2 3 4 +
-  usb_scan_1=usb=0:​1 dev=sda1 +
-  usb_scan_2=usb=1:​1 dev=sdb1 +
-  usb_scan_3=usb=2:​1 dev=sdc1 +
-  usb_scan_4=usb=3:​1 dev=sdd1 +
-  usb_device=0:​1 +
-  usb_root=/​dev/​sda1 +
-  usb_scan=usb_scan_done=0;​ for scan in $usb_scan_list;​ do run usb_scan_$scan;​ if test $usb_scan_done ​-eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done +
-  usb_init=usb start; run usb_scan +
-  usb_rootdelay=10 +
-  usb_rootfstype=ext2 +
-  usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts +
-  usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /​boot/​uInitrd;​ then bootm 0x800000 0x1100000; else bootm 0x800000; fi +
-  usb_bootcmd=run usb_init; run usb_set_bootargs;​ run usb_boot +
-  openwrt_root=/​dev/​mtdblock2 ro +
-  openwrt_rootfstype=jffs2 +
-  openwrt_set_bootargs=setenv bootargs console=$console root=$openwrt_root rootfstype=$openwrt_rootfstype $mtdparts +
-  openwrt_boot=nand read.e 0x6400000 0x100000 0x400000; bootm 0x6400000 +
-  openwrt_bootcmd=run openwrt_set_bootargs;​ run openwrt_boot +
-  led_init=green blinking +
-  ​led_exit=green off +
-  led_error=orange blinking+
 </​code>​ </​code>​
  
-J'ai appliqué la suite de commande suivante dans une console pour modifier ​l'​environnement de démarrage USB.+Modification ​de l'​environnement ​précédent (u-boot.kwb ​de Jeff Doozan) :
 <​code>​ <​code>​
-setenv mmc_device 0:1 +Marvell>>​setenv mmc_device 0:1 
-setenv mmc_root /​dev/​mmcblk0p1 +Marvell>>​setenv mmc_root /​dev/​mmcblk0p1 
-setenv mmc_test if ext2load mmc \$mmc_device 0x800000 /​boot/​uImage 1\; then echo "Found bootable drive on SDCard"​\;​ fi\; done +Marvell>>​setenv mmc_test if ext2load mmc \$mmc_device 0x800000 /​boot/​uImage 1\; then echo "Found bootable drive on SDCard"​\;​ fi\; done 
-setenv mmc_init mmc init\; run mmc_test +Marvell>>​setenv mmc_init mmc init\; run mmc_test 
-setenv mmc_rootdelay 10 +Marvell>>​setenv mmc_rootdelay 10 
-setenv mmc_rootfstype ext2 +Marvell>>​setenv mmc_rootfstype ext2 
-setenv mmc_set_bootargs setenv bootargs console=\$console root=\$mmc_root rootdelay=\$mmc_rootdelay rootfstype=\$mmc_rootfstype \$mtdparts +Marvell>>​setenv mmc_set_bootargs setenv bootargs console=\$console root=\$mmc_root rootdelay=\$mmc_rootdelay rootfstype=\$mmc_rootfstype \$mtdparts 
-setenv mmc_boot "mw 0x800000 0 1\; ext2load mmc \$mmc_device 0x800000 /​boot/​uImage\;​ if ext2load mmc \$mmc_device 0x1100000 /​boot/​uInitrd\;​ then bootm 0x800000 0x1100000\; else bootm 0x800000\; fi" +Marvell>>​setenv mmc_boot "mw 0x800000 0 1\; ext2load mmc \$mmc_device 0x800000 /​boot/​uImage\;​ if ext2load mmc \$mmc_device 0x1100000 /​boot/​uInitrd\;​ then bootm 0x800000 0x1100000\; else bootm 0x800000\; fi" 
-setenv mmc_bootcmd run mmc_init\; run mmc_set_bootargs\;​ run mmc_boot +Marvell>>​setenv mmc_bootcmd run mmc_init\; run mmc_set_bootargs\;​ run mmc_boot 
- +Marvell>>​setenv usb_init usb start\; run usb_scan 
-setenv usb_init usb start\; run usb_scan +Marvell>>​setenv usb_bootcmd run usb_init\; run usb_set_bootargs\;​ run usb_boot 
-setenv usb_bootcmd run usb_init\; run usb_set_bootargs\;​ run usb_boot +Marvell>>​setenv bootcmd run mmc_bootcmd\;​ run usb_bootcmd\;​ usb stop\; run openwrt_bootcmd\;​ reset
-setenv bootcmd run mmc_bootcmd\;​ run usb_bootcmd\;​ usb stop\; run openwrt_bootcmd\;​ reset+
 </​code>​ </​code>​
  
-==== Installation ==== +=== U-Boot 2011.12 ​=== 
-Je commence par tester le chargeur ​+Avec une [[ftp://​ftp.denx.de/​pub/​u-boot/​u-boot-2011.12.tar.bz2|version 2011.12]] plus récente.\\ ​ 
-<​code>​ +\\  
-usb start +Application d'un patch {{:​dockstar:​boot:dockstar-uboot2011.12_dg.patch|créé par davygravy}} mais en enlevant la partie de configuration de l'environnement par défaut.\\  
-ext2load usb 0:1 0x800000 uboot.mtd0.kwb +Un autre patch issu des travaux de Gérard Kerma sur le driver SDIO avec {{:dockstar:​boot:​kerma-kirkwood-mvsdio.diff|prise en compte de la carte SD}}.\\ ​
-go 0x800200 +
-</​code>​ +
-Si l'application se lance, je l'​installe ​:+
 <​code>​ <​code>​
-usb start +>tar -xjf u-boot-2011.12.tar.bz2 
-ext2load usb 0:1 0x800000 uboot.mtd0.kwb +>cp dockstar-uboot2011.12_dg.patch u-boot-2011.12/​ 
-nand erase 0x0 0x80000 +>cp kerma-kirkwood-mvsdio.diff u-boot-2011.12/​ 
-nand write.e 0x800000 0x0 0x80000+>cd u-boot-2011.12 
 +>patch -p1 < dockstar-uboot2011.12_dg.patch 
 +>patch -p1 < kerma-kirkwood-mvsdio.diff 
 +>​codesourcery-arm-2009q3.sh 
 +>make distclean 
 +>make dockstar_config 
 +>make u-boot.kwb 
 +>dd if=u-boot.kwb of=u-boot.mtd0.kwb bs=512k conv=sync 
 +>exit
 </​code>​ </​code>​
  
-==== Démarrage ​====+==== Installation ​==== 
 +**Faire un test de l'​image u-boot.mtd0.kwb avant de l'​installer.**\\ 
 +Ce test en RAM ne fonctionne pas toujours, les différentes tests réalisés sont les suivants (à confirmer, résultats de mémoire) :\\ 
 +| ^  2010.09 ​ ^^  2011.12 ​ ^^ 
 +|Fichier|/​board/​Marvell/​dockstar/​config.mk||/​board/​Seagate/​dockstar/​config.mk((Fichier à créer))|| 
 +|Variable| ​ TEXT_BASE ​ ||  CONFIG_SYS_TEXT_BASE ​ || 
 +|Valeur| ​ 0x00600000 ​ |  0x00C00000 ​ |  0x00600000 ​ |  0x00C00000 ​ | 
 +|Résultat| ​ OK  |  OK  |  KO((OK sans SDIO)) ​ |  KO((OK sans SDIO)) ​ |
  
-Le log de démarrage :+Pour tester, pas besoin d'​installer un serveur TFTP (u-boot 2010.09 avec support USB ajouté et u-boot 2011.12 avec USB par défaut).\\ 
 +Copier les images u-boot.mtd0.kwb sur une clef USB.\\
 <​code>​ <​code>​
 +Marvell>>​usb start
 +Marvell>>​ext2load usb 0:1 0x800000 uboot.mtd0.kwb
 +Marvell>>​go 0x800200
 U-Boot 2010.09 (Jul 07 2012 - 19:34:12) U-Boot 2010.09 (Jul 07 2012 - 19:34:12)
 Marvell-Dockstar - MMC/SD Marvell-Dockstar - MMC/SD
Ligne 104: Ligne 97:
 Marvell>>​ Marvell>>​
 </​code>​ </​code>​
 +**!!ATTENTION Toute erreur dans les lignes suivantes peut entrainer la perte du Dockstar!!\\ ​
 +Bien vérifier les adresses avant de valider.**\\ ​
 +Si l'​application se lance à l'​étape précédente,​ installation de l'​image sur la NAND :
 +<​code>​
 +Marvell>>​reset
 +Marvell>>​usb start
 +Marvell>>​ext2load usb 0:1 0x800000 uboot.mtd0.kwb
 +Marvell>>​nand erase 0x0 0x80000
 +Marvell>>​nand write.e 0x800000 0x0 0x80000
 +Marvell>>​reset
 +resetting...
 +U-Boot 2010.09 (Jul 07 2012 - 19:34:12)
 +Marvell-Dockstar - MMC/SD
 +
 +SoC:   ​Kirkwood 88F6281_A0
 +DRAM:  128 MiB
 +NAND:  256 MiB
 +In:    serial
 +Out:   ​serial
 +Err:   ​serial
 +Net:   ​egiga0
 +88E1116 Initialized on egiga0
 +Hit any key to stop autoboot: ​ 0 
 +Marvell>>​
 +</​code>​
 +Si le Dockstar ne se lance plus après ces commandes, passage par la [[nas:​dockstar:​case_jtag]].
  
-==== Problème ​uboot 2011.12 ​==== +==== Problème ​rencontré ​==== 
-J'ai bien les outils liés à la carte SD mais j'ai un petit soucis avec je ne sais quelle partie du pilote.\\  +Erreur avec le pilote SDIO ou la lecture de la carte SD pour les versions 2010.09 et 2011.12 ​:\\ 
-J'ai le message suivant ​:\\ +
 <​code>​ <​code>​
 U-Boot 2011.12 (Jul 11 2012 - 19:03:43) U-Boot 2011.12 (Jul 11 2012 - 19:03:43)
Ligne 141: Ligne 159:
 ERROR: can't get kernel image! ERROR: can't get kernel image!
 </​code>​ </​code>​
-A voir mais la version ​debug du chargeur ne veut pas démarrer.\\ + 
 +**Brouillon**\\  
 +<​del>​ 
 +Passer le driver SDIO en mode debug avec modification ​du fichier drivers/​mmc/​mv_sdio.c.\\  
 +Le #define DEBUG est positionné au mauvais endroit dans le fichier mv_sdio.c, {{:​dockstar:​boot:​debug-mv_sdio.diff|patch à appliquer}}.\\  
 +<​code>​ 
 +>cp debug-mv_sdio.diff u-boot-2011.12 
 +>cd u-boot-2011.12 
 +>patch -p1 < debug-mv_sdio.diff 
 +>​codesourcery-arm-2009q3.sh 
 +>make distclean 
 +>make dockstar_config 
 +>make u-boot.kwb 
 +>dd if=u-boot.kwb of=u-boot.mtd0.kwb bs=512k conv=sync 
 +>exit 
 +</​code>​ 
 +</​del>​
nas/dockstar/boot/boot_sd-card.1342068918.txt.gz · Dernière modification: 14 /11/2016 13:12 (modification externe)