SystemACE est le nom du système Xilinx servant d'interface entre la CompactFlash et le FPGA. Pour que U-Boot gère le SystemACE comme un disque, il faut ajouter dans le fichier include/configs/ml300.h
les macros suivantes :
#define CONFIG_SYSTEMACE 1 #define CFG_SYSTEMACE_BASE 0x41800000 #define CFG_SYSTEMACE_WIDTH 8 #define CONFIG_DOS_PARTITION
De plus, pour que U-Boot accède aux fichiers présents sur la CompactFlash, il faut activer le support du système de fichier FAT :
#define CONFIG_COMMANDS ((CONFIG_CMD_DFL | CFG_CMD_FAT) & \ CFG_CMD_SETGETDCR & CFG_CMD_IMLS & \ CFG_CMD_FLASH)
Il manque un appel de fonction dans la fonction systemace_get_dev
du fichier common/cmd_ace.c
, pour que U-Boot puisse détecter les partitions :
if (systemace_dev.blksz == 0) { [...] + init_part(&systemace_dev); }
Une fois que U-Boot est chargé et exécuté, on peut tester la CompactFlash de la manière suivante :
uboot# fatinfo ace 0 Partition 1: Filesystem: FAT16 "NO NAME " uboot# fatls ace 0 FAT16, fatlength: 122 Rootdir begins at sector: 245, offset: 1ea00, size: 32 Data begins at: 269 Cluster size: 4 189 xilinx.sys v2p_test/ 308736 uboot.elf 1535123 rapport-alpha-15.tar.gz RootDentname == NULL - 11 3 file(s), 1 dir(s)
Pour transférer un fichier en mémoire, il suffit d'utiliser la commande fatload.