added uboot config and commands + 3.10 experience
This commit is contained in:
parent
73e1dc523d
commit
d995796a7a
1 changed files with 58 additions and 6 deletions
|
@ -16,16 +16,15 @@ Je n'ai pas flashé le bootloader ni la NAND pour l'instant.
|
||||||
|
|
||||||
Le chargeur d'amorçage interne [nom] vérifie s'il y a une carte SD avant de démarrer sur la NAND.
|
Le chargeur d'amorçage interne [nom] vérifie s'il y a une carte SD avant de démarrer sur la NAND.
|
||||||
Attention, le deuxième slot, celui pour µSD, n'est pas parcouru au démarrage, contrairement à ce qui est listé dans le digramme de la /datasheet/ (Atmel_11121_32-bit-Cortex-A5-Microcontroller_SAMA5D3_Datasheet.pdf).
|
Attention, le deuxième slot, celui pour µSD, n'est pas parcouru au démarrage, contrairement à ce qui est listé dans le digramme de la /datasheet/ (Atmel_11121_32-bit-Cortex-A5-Microcontroller_SAMA5D3_Datasheet.pdf).
|
||||||
|
|
||||||
Par contre, dans la documentation utilisateur ((Atmel_11180_32-bit-Cortex-A5-Microcontroller_SAMA5D3-Series-EK_User-Guide.pdf))la description du processus d'amorçage ne mentionne que le premier slot, celui pour carte SD.
|
Par contre, dans la documentation utilisateur ((Atmel_11180_32-bit-Cortex-A5-Microcontroller_SAMA5D3-Series-EK_User-Guide.pdf))la description du processus d'amorçage ne mentionne que le premier slot, celui pour carte SD.
|
||||||
|
|
||||||
Ça m'a pris une bonne semaine pour m'apercevoir de ça... Je pensais que mes compilations étaient mauvaises et/ou que j'allais absolument devoir flasher la mémoire NAND de la carte avec SAM-BA.
|
Ça m'a pris une bonne semaine pour m'apercevoir de ça... Je pensais que mes compilations étaient mauvaises et/ou que j'allais absolument devoir flasher la mémoire NAND de la carte avec SAM-BA.
|
||||||
|
|
||||||
Mais finalement, avec l'u-boot par défaut et un noyau sur une partition FAT(16 ou 32) de la carte SD, on peut démarrer son propre système sans avoir à flasher le système de démo de la carte.
|
Mais finalement, avec u-boot contenu dans un fichier `u-boot.bin` et un noyau sur une partition FAT(16 ou 32) de la carte SD, on peut démarrer son propre système sans avoir à flasher le système de démo de la carte.
|
||||||
|
|
||||||
Pour la configuration, j'ai utilisé le cable µUSB<-> USB pour connecter la carte à mon PC de bureau.
|
Pour la configuration, j'ai utilisé le cable µUSB<-> USB pour connecter la carte à mon PC de bureau.
|
||||||
|
|
||||||
Ensuite, j'ai utilisé screen pour me connecter à la console série :
|
Ensuite, j'ai utilisé `screen` pour me connecter à la console série :
|
||||||
screen /dev/ttyACM0
|
screen /dev/ttyACM0
|
||||||
|
|
||||||
NOTE: On peut interrompre le démarrage d'U-Boot en frappant une touche avant qu'il ne commence à analyser les différents périphériques pour démarrer.
|
NOTE: On peut interrompre le démarrage d'U-Boot en frappant une touche avant qu'il ne commence à analyser les différents périphériques pour démarrer.
|
||||||
|
@ -40,24 +39,77 @@ Voici des paramètres pour démarrer le noyau original fourni avec la carte et u
|
||||||
setenv bootargs console=ttyS0,115200 mtdparts=atmel_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) rw rootfs=ext3 root=/dev/mmcblk0p2 rootdelay=2
|
setenv bootargs console=ttyS0,115200 mtdparts=atmel_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) rw rootfs=ext3 root=/dev/mmcblk0p2 rootdelay=2
|
||||||
|
|
||||||
Pour les archives, voici les paramètres de démarrage d'origine, pour démarrer depuis la NAND :
|
Pour les archives, voici les paramètres de démarrage d'origine, pour démarrer depuis la NAND :
|
||||||
|
|
||||||
console=ttyS0,115200 mtdparts=atmel_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs
|
console=ttyS0,115200 mtdparts=atmel_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs
|
||||||
|
|
||||||
|
|
||||||
# Démarrage
|
Les paramètres peuvent être aussi être donnés dans un fichier de configuration : uEnv.txt
|
||||||
|
Voici le mien :
|
||||||
|
`````` bash
|
||||||
|
dtb_file=sama5d35ek.dtb
|
||||||
|
|
||||||
|
console=ttyS0,115200
|
||||||
|
optargs=console=tty0
|
||||||
|
|
||||||
|
mmcroot=/dev/mmcblk0p2 ro
|
||||||
|
mmcrootfstype=ext2 rootwait fixrtc
|
||||||
|
``````
|
||||||
|
|
||||||
|
|
||||||
|
Voici ma configuration u-boot après l'interruption :
|
||||||
|
`````` bash
|
||||||
|
baudrate=115200
|
||||||
|
bootargs=console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootfstype=ext2 rootwait
|
||||||
|
bootcmd=if mmc rescan; then echo SD/MMC found on device;if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if run loadzimage; then run loaddtb;run mmcboot;fi;fi;
|
||||||
|
bootdelay=3
|
||||||
|
bootenv=uEnv.txt
|
||||||
|
bootfile=zImage
|
||||||
|
console=ttyS0,115200n8
|
||||||
|
dtb_file=sama5d34ek.dtb
|
||||||
|
dtbaddr=0x21000000
|
||||||
|
ethact=macb0
|
||||||
|
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize
|
||||||
|
loadaddr=0x22000000
|
||||||
|
loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}
|
||||||
|
loaddtb=load mmc ${mmcdev} ${dtbaddr} /dtbs/${dtb_file}
|
||||||
|
loadzimage=load mmc ${mmcdev} ${loadaddr} ${bootfile}
|
||||||
|
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype}
|
||||||
|
mmcboot=echo Booting from mmc ...; run mmcargs; bootz ${loadaddr} - ${dtbaddr}
|
||||||
|
mmcdev=0
|
||||||
|
mmcroot=/dev/mmcblk0p2 ro
|
||||||
|
mmcrootfstype=ext4 rootwait
|
||||||
|
``````
|
||||||
|
|
||||||
|
|
||||||
|
La ligne bootcmd va être exécutée lorque l'on tape "boot".
|
||||||
|
Elle est composée de plusieurs autres commandes :
|
||||||
|
- loadenv qui charge le fichier uEnv.txt(bootenv) en mémoire, puis importenv qui lit la configuration
|
||||||
|
- loadzImage charge le fichier zImage(bootfile) en mémoire
|
||||||
|
- loaddtb charge le device tree [wiki](http://www.devicetree.org/Main_Page)(dtb_file)
|
||||||
|
- mmcboot qui passe la main au noyau
|
||||||
|
|
||||||
|
On voir donc que la plupart des noms de fichiers sont paramétrables, on peut donc assez facilement avoir une configuration avec un noyau stable et un autre de test.
|
||||||
|
|
||||||
|
|
||||||
## Noyau
|
## Noyau
|
||||||
- at91 patché
|
- at91 patché [TODO: retrouver l'adresse du git]
|
||||||
- Les patch d'at91 ne sont toujours pas intégrés au noyau 3.9. L'ensemble de patch est assez gros, il contient 15-20 patches
|
- Les patch d'at91 ne sont toujours pas intégrés au noyau 3.9. L'ensemble de patch est assez gros, il contient 15-20 patches
|
||||||
- Peut-être pour le 3.10 ? Oui \o/ à tester ;-)
|
- Peut-être pour le 3.10 ? Oui \o/ à tester ;-)
|
||||||
|
|
||||||
|
### 3.10.1
|
||||||
|
- compilé à partir de a configuration fonctionnelle du 3.6.9
|
||||||
|
- freeze au chargement de l'usb
|
||||||
|
- si je désactive l'USB, ça freeze au chargement des pilotes mmc.
|
||||||
|
- à creuser
|
||||||
|
|
||||||
## Système d'exploitation
|
## Système d'exploitation
|
||||||
- debian armhf
|
- debian armhf
|
||||||
|
|
||||||
## uname
|
## uname
|
||||||
- Linux jouet 3.6.9-sama5-armv7-d0.8 #1 Wed May 8 13:04:54 CEST 2013 armv7l GNU/Linux
|
- Linux jouet 3.6.9-sama5-armv7-d0.8 #1 Wed May 8 13:04:54 CEST 2013 armv7l GNU/Linux
|
||||||
|
|
||||||
|
|
||||||
|
## compilateur utilisé
|
||||||
|
|
||||||
## Mon expérience
|
## Mon expérience
|
||||||
J'utilise la carte comme routeur pour ma connexion internet.
|
J'utilise la carte comme routeur pour ma connexion internet.
|
||||||
Je l'utilise aussi pour quelques autres services liés au réseau : serveur DHCP, Annonces RA, serveur DNS (comme serveur faisant autorité ainsi que comme resolver/cache pour le lan), pare-feu et serveur NTP pour le lan.
|
Je l'utilise aussi pour quelques autres services liés au réseau : serveur DHCP, Annonces RA, serveur DNS (comme serveur faisant autorité ainsi que comme resolver/cache pour le lan), pare-feu et serveur NTP pour le lan.
|
||||||
|
|
Loading…
Reference in a new issue