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