2013-12-16 12 views
8

Sto lavorando con un kit Linux incluso che sta eseguendo u-boot. Per far funzionare correttamente tutto, ho dovuto modificare alcune variabili d'ambiente e memorizzarle con il comando 'saveenv'.Come si eliminano le variabili di ambiente precedentemente salvate con u-boot?

Ora mi piacerebbe tornare indietro e vedere quali sono le impostazioni predefinite, verificare che io sappia esattamente cosa è stato cambiato e trovare un modo per modificare quelle impostazioni predefinite in modo che non sia necessario avviare singolarmente ciascuna unità in produzione. e modificato.

C'è un modo per dire a u-boot di cancellare tutti i dati salvati in modo da poter vedere quali sono i valori predefiniti? Il tipo di flash è QSPI se questo fa la differenza.

+2

L'area di ambiente U-Boot è convalidata con un CRC a 32 bit, quindi se lo si blocca, solo un byte lo farà, nella memoria non volatile, quindi U-Boot tornerà alle sue impostazioni predefinite all'avvio. – sawdust

risposta

13

sul vostro kit, provare

help env 

e cercare "di default env".

env default [-f] var [...] - [forcibly] reset variable(s) to their default values 

Questo suona come quello che stai cercando.

env default -a 

esegue una modifica non permanente, quindi "printenv" mostra i valori predefiniti.

Per modificare i valori predefiniti, è necessario ricostruire il proprio u-boot.bin con le modifiche, ad es. CONFIG_EXTRA_ENV_SETTINGS.

+0

Ho trovato la configurazione in ./u-boot/include/configs/board-vendor.h.template. Tuttavia, in quella sezione per CONFIG_EXTRA_ENV_SETTINGS, vedo cose come: "loadaddr = @ nstart @ \ 0" Sai dove sono impostate 'nstart' e altre variabili simili? Preferirei non solo sostituirli con un numero se c'è un modo migliore. – KyleL

+0

U-boot attuale non sembra avere board-vendor.h, e non riconosco la sintassi della variabile @nstart, mi spiace. –

+0

Deve essere qualcosa di specifico per il mio kit (Avnet Zedboard che utilizza Xilinx Petalinux). Grazie per l'aiuto! – KyleL

0

Per utilizzare Vars predefiniti senza rimuoverli dalla memoria flash eseguire

env default -a 

all'interno di u-boot e quindi eseguire $bootcmd. Joe Kul soluzione.

Per erase the vars from the SPI flash eseguire

run eraseenv 

all'interno di u-boot e quindi riavviare.