View  Edit  Attributes  History  Attach  Print  Search

Utilisation de Supervivi

Cette page est basée sur la version Supervivi 2010-08-18 disponible ici : http://www.friendlyarm.net/downloads

1.  Description

Supervivi est le bootloader par défaut livré par le fabricant avec la carte micro 2440.Beaucoup semblent préfèrer utiliser un autre bootloader, U-boot notamment, Voir ici notamment : http://labs.kernelconcepts.de/Publications/Micro2440/

Concrètement, Supervivi semble tout de même assez simple d'emploi pour un début.

Le bootloader est lancé lors d'un démarrage sur la mémoire NOR : un menu de sélection s'affiche permettant de réaliser des opérations classique.

Le bootloader est également nécessaire au lancement d'un système Linux installé dans la mémoire NAND : il est donc installé en premier lors de l'installation d'un système Linux.

2.  Flasher le bootloader Supervivi

Le bootloader Supervivi est déjà pré-installé dans le NOR. Lors de l'installation d'un système, il est nécessaire de l'installer dans la NAND.

Voir ici : Flasher le bootloader Supervivi dans la carte Micro 2440 (FriendlyARM) sous Ubuntu

3.  Le menu standard

Au lancement de Supervivi lors d'un boot sur la NOR, on obtient le menu suivant :


##### FriendlyARM BIOS 2.0 for 2440 #####

[x] format NAND FLASH for Linux

[v] Download vivi 

[k] Download linux kernel 

[y] Download root_yaffs image 

[a] Absolute User Application

[n] Download Nboot for WinCE 

[l] Download WinCE boot-logo

[w] Download WinCE NK.bin 

[d] Download & Run 

[z] Download zImage into RAM 

[g] Boot linux from RAM 

[f] Format the nand flash 

[b] Boot the system 

[s] Set the boot parameters 

[u] Backup NAND Flash to HOST through USB(upload) 

[r] Restore NAND Flash from HOST through USB 

[q] Goto shell of vivi 

[i] Version: 0945-2K

Enter your selection: 

Pour obtenir l'invite du bootloader Supervivi, taper q puis <ENTREE>


Supervivi> 

Le menu est accessible depuis la commande menu (voir ci-dessous)

Noter que toutes les actions prédéfinies peuvent aussi être exécutées par des lignes de commande (voir ci-dessous)

Noter les 4 sélections qui permettent l'installation d'un système Linux :

  • [x] format NAND FLASH for Linux => Formate la NAND
  • [v] Download vivi => installe le bootloader dans la NAND
  • [k] Download linux kernel => installe le kernel dans la NAND (fichier type zImage)
  • [y] Download root_yaffs image => installe le système de fichier dans la NAND (fichier type *.img)

4.  Liste des commandes Supervivi

Depuis l'invite Supervivi, on a accès à une série de commandes spécifiques qui permettent de travailler sur la mémoire NAND et le système à installer. La liste est obtenue par la commande help


Usage:
   flash [{cmds}] 			-- Manage Flash memory
   cpu [{cmds}] 			-- Manage cpu clocks
   bon [{cmds}]				-- Manage the bon file system
   reset				-- Reset the system
   param [eval|show|save [-n]|reset] 	-- set/get parameter
   part [add|del|show|reset] 		-- Manage MTD partitions
   mem [{cmds}] 			-- Manage Memory
   loadyaffs {...}			-- Load a yaffs image to Flash
   markpart [-bad|-good] [partname1] [partname2] ...
				-- mark blocks in a partition(s) as bad or good
   menu
					-- Give you a menu to use some functions
   backup [-nc] [<startaddr> <endaddr>]
					-- Send the context of nand flash to PC through USB
					-- '-n' : don't backup the oob
					-- '-c' : Check whether the block is bad

   restore [-n] [<startaddr> <endaddr>]
					-- restore flash, get file from HOST through USB
					-- '-n' : the file doesn't has context of oob

   wince				-- Run Wince from flash or ram
   load {...}				-- Load a file to RAM/Flash
   go <addr> <a0> <a1> <a2> <a3> 	-- jump to <addr>
   dump <addr> <length> 		-- Display (hex dump) a range of memory.
   call <addr> <a0> <a1> <a2> <a3> 	-- jump_with_return to <addr>
   boot [{cmds}] 			-- Booting linux kernel
   help [{cmds}] 			-- Help about help?

Il suffit de taper la commande seule après l'invite pour obtenir l'aide sur la commande.

5.  La commande part : gestion des partitions MTD

Les mémoires FLASH sont partitionnées dans un format spécial, appelé MTD, à la différence d'un disque dur classique qui peut être partitionné dans les formats ext3, FAT32, NTFS, etc.

La commande part est utilisée de la façon suivante :


Usage:
part help
part add <name> <offset> <size> <flag> 	-- Add a mtd partition entry
part del <name> 			-- Delete a mtd partition entry
part reset 				-- Reset mtd parition table
part save 				-- Save mtd partition table
part show 				-- Display mtd partition table

Si on exécute part show, on a accès au plan de partitionnement de la mémoire FLASH NAND. Voici le plan de partitionnement obtenu après un formatage de la NAND pour un système Linux (sélection du menu : [x] format NAND FLASH for Linux ) :


Supervivi> part show
Number of partitions: 4
name            :	offset		size		flag

------------------------------------------------------------
vivi            :	0x00000000	0x00040000	0
param           :	0x00040000	0x00020000	0
kernel          :	0x00060000	0x00500000	0
root            :	0x00560000	0x3fa80000	0

Cette commande est très instructive car elle montre bien la structure d'un système Linux embarqué qui associe :

  • un bootloader
  • un kernel (noyau)
  • un système de fichier (root)

6.  La commande mem : gestion de la mémoire

La commande mem s'effectue de la façon suivante :


Usage:
   compare <dst> <src> <length> -- compare 
   mem copy <dst> <src> <length>
   mem info
   mem reset -- reset memory control register
   mem serach <start_addr> <end_addr> <value> -- serach memory address that contain value

La commande mem info est instructive et donne la structure de la mémoire du système :


Supervivi> mem info

RAM Information:
Default ram size: 64M
Real ram size   : 64M
Free memory     : 61M

RAM mapped to           : 0x30000000 - 0x34000000
Flash memory mapped to  : 0x10000000 - 0x12000000
Available memory region : 0x30000000 - 0x33d80000
Stack base address      : 0x33defffc
Current stack pointer   : 0x33defb2c

Memory control register vlaues
     BWSCON = 0x22111112
   BANKCON0 = 0x00000700
   BANKCON1 = 0x00000700
   BANKCON2 = 0x00000700
   BANKCON3 = 0x00000700
   BANKCON4 = 0x00000700
   BANKCON5 = 0x00000700
   BANKCON6 = 0x00018009
   BANKCON7 = 0x00018009
    REFRESH = 0x008e04eb
   BANKSIZE = 0x000000b2
     MRSRB6 = 0x00000030
     MRSRB7 = 0x00000030
     DSC0   = 0x00000000
     DSC1   = 0x00000000

L'adresse de début de la RAM : 0x30000000

7.  La commande load : charger des fichiers en RAM ou FLASH

La commande s'utilise de la façon suivante :


Usage:
  load <flash|ram> [ <partname | wince> | <addr> <size> ] <x|y|z|u>
  load flash logo [-bmp2rgb] <x|y|z|u>
			-- load bmp file to logo partition, if define -bmp2rgb, vivi will convert it to rgb before store in flash

8.  ..