Maintenant, pour utiliser les commandes réseaux, il suffit de modifier la macro suivante dans le fichier include/configs/ml300.h
:
#define CONFIG_COMMANDS (CONFIG_CMD_DFL & CFG_CMD_SETGETDCR & \ CFG_CMD_IMLS & CFG_CMD_FLASH)
Il faut ensuite configurer l'interface réseau :
#define CONFIG_ETHADDR 0x00:0x0a:0x35:0x00:0x22:0x01 #define CONFIG_IPADDR 192.168.1.134 #define CONFIG_SERVERIP 192.168.1.133 //#define CFG_TFTP_LOADADDR 0x00400000 ne marche pas, utiliser : #define CONFIG_EXTRA_ENV_SETTINGS "loadaddr=0x00400000\0"
Si on souhaite modifier cette configuration pendant l'exécution, il suffit de taper les commandes suivantes :
uboot# setenv ethaddr 0x00:0x0a:0x35:0x00:0x22:0x01 uboot# setenv ipaddr 192.168.1.134 uboot# setenv serverip 192.168.1.133 uboot# setenv loadaddr 0x00400000
Puisque d'une architecture à l'autre les noms des paramètres changent (généralement), il faut ajouter dans board/xilinx/ml300/xparameters.h
les macros suivantes :
#define XPAR_EMAC_0_DEVICE_ID XPAR_ETHERNET_MAC_DEVICE_ID #define XPAR_OPB_ETHERNET_0_DEVICE_ID XPAR_ETHERNET_MAC_DEVICE_ID #define XPAR_OPB_ETHERNET_0_BASEADDR XPAR_ETHERNET_MAC_BASEADDR #define XPAR_OPB_ETHERNET_0_ERR_COUNT_EXIST \ XPAR_ETHERNET_MAC_ERR_COUNT_EXIST #define XPAR_OPB_ETHERNET_0_DMA_PRESENT \ XPAR_ETHERNET_MAC_DMA_PRESENT #define XPAR_OPB_ETHERNET_0_MII_EXIST XPAR_ETHERNET_MAC_MII_EXIST
Il faut ensuite modifier le fichier board/xilinx/ml300/Makefile
afin de compiler le pilote de la carte réseau :
OBJS = $(BOARD).o \ serial.o \ ../xilinx_enet/emac_adapter.o ../xilinx_enet/xemac.o \ ../xilinx_enet/xemac_options.o ../xilinx_enet/xemac_polled.o \ ../xilinx_enet/xemac_intr.o ../xilinx_enet/xemac_g.o \ ../xilinx_enet/xemac_intr_dma.o ../common/xipif_v1_23_b.o \ ../common/xbasic_types.o ../common/xdma_channel.o \ ../common/xdma_channel_sg.o ../common/xpacket_fifo_v1_00_b.o \ ../common/xversion.o
Maintenant, il ne reste plus qu'à compiler U-Boot, puis à charger l'exécutable avec XMD. On peut alors tester le transfert TFTP de la manière suivante :
uboot# tftp 0x800000 uImage EMAC Initialization Started EMAC Initialization complete TFTP from server 192.168.1.132; our IP address is 192.168.1.133 %Filename 'uImage'. Load address: 0x800000 Loading: T invalid RARP header ################################# done} Bytes transferred = 498936 (79cf8 hex)
Bien évidemment, il faut qu'un serveur TFTP soit configuré sur notre ordinateur. Pour être sûr que les données transférées sont valides, on pourrait faire une somme de contrôle avec la commande crc32 de U-Boot.