framboise u-boot chargement de l'image et de l'exécution de l'image à partir de la carte sd
J'ai compilé et installé u-boot de https://github.com/gonzoua/u-boot-pi/tree/rpi sur le Raspberry PI. Fonctionne très bien. Il bottes fines et fonctionne très bien (voir http://arrizza.org/wiki/index.php/RPI_U-boot). Je peux charger l'exemple des applications en utilisant le s-rec version de l'exécutable.
Maintenant, je voudrais créer une image, la mettre sur la carte sd (la même carte sd les u-boot image est sur) et ensuite de charger et d'exécuter cette image. C'est la même que la s-rec processus: charger l'image par s-rec puis utilisez la fonction "aller" à l'exécution, mais au lieu de la charge à travers le port série qui vient d'obtenir l'image de la carte sd.
J'ai essayé d'utiliser:
load mmc 0 0x0100000 hello_world.bin
et puis
go 0x0100000
il charge ok:
U-Boot> fatload mmc 0 0x01000000 hello_world.bin
reading hello_world.bin
594 bytes read in 27222 ms (0 Bytes/s)
U-Boot> go 0x01000000
## Starting application at 0x01000000 ...
mais le rPI auto-redémarre.
- J'ai aussi essayé fatload avec les mêmes résultats
- J'ai essayé de créer une image à l'aide de ./imagetool-uncompressed.py et puis, à l'aide de la charge ou fatload et aller, mais pas de joie
- J'ai essayé de chargement/fatload avec bootm et toujours pas aller
Rien d'autre de disponible pour m'essayer?
Jean
Mise à jour: @microMolvi souligné, j'ai utilisé la mauvaise adresse. Je re-couru:
U-Boot> load mmc 0 0x01001000 hello_world.bin
reading hello_world.bin
594 bytes read in 27200 ms (0 Bytes/s)
U-Boot> go 0x01001000
## Starting application at 0x01001000 ...
<snip>about 100 garbage characters<snip>
<I pressed Enter here>
## Application terminated, rc = 0x0
U-Boot>
Et voici la sortie de printenv:
U-Boot> printenv
arch=arm
baudrate=115200
board=rpi_b
board_name=rpi_b
bootargs=dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0xe bcm2708.serial=0x4e82105a smsc95xx.macaddr=B8:27:EB:82:10:5A sdhci-bcm2708.emmc_clock_freq=100000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
bootcmd=if mmc rescan ${mmcdev}; then if run loadbootenv; then run importbootenv; fi; if run loadbootscript; then run bootscript; fi; fi
bootenv=uEnv.txt
bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
cpu=arm1176
filesize=0x252
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize
loadaddr=0x00200000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}
loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr
mmcdev=0
soc=bcm2835
stderr=serial,lcd
stdin=serial
stdout=serial,lcd
usbethaddr=B8:27:EB:82:10:5A
vendor=raspberrypi
Environment size: 1092/16380 bytes
U-Boot>
U-Boot>printenv
Voir ci-dessus pour une mise à jour. Je suppose que de votre réponse doit travail ok!?
Par la façon dont j'ai aussi essayé:
load mmc 0 $loadaddr hello_world.bin
et puis go $loadaddr
et enfin j'ai aussi essayé de chargement hello_world.srec. Cette juste réinitialiser le rPI.Non, je n'étais pas sûr au sujet de la procédure, tout simplement pris la typo 😀 j'ai connu le même problème dans le passé sur un arm11mpcore conseil d'administration, et a été incapable de le résoudre. Je vais essayer la solution que vous avez posté ci-dessous, espérons que cela fonctionne pour moi aussi 🙂
OriginalL'auteur JohnA | 2013-06-20
Vous devez vous connecter pour publier un commentaire.
Ok, il semble que vous ne pouvez pas il suffit de charger les fichiers bin n'importe où.
Voici ce que j'ai fait:
1) j'ai rechargé la s-rec version
Note le "Start Addr", c'est 0x0C10-00000
2) - je réinitialiser le rPI, puis chargé de la poubelle en 0x0C10-0000
3) et de l'exécuter à partir de la même adresse:
Je ne suis pas sûr de l'endroit où l'adresse par défaut 0x0C10-0000, donc à ce stade je ne sais pas comment le changer lors de la compilation/lien encore, mais il est documenté ici:
Il affirme que le BRAS de cartes comme le rPI sont chargés et a commencé à 0x0C10-0000:
Le chargement par défaut et les adresses de démarrage les applications sont comme suit:
OriginalL'auteur JohnA
Dans arch/arm/config.mk:
Dans les exemples de fichier/autonome/.hello_world.cmd
Ici l'-Ttext est 0xc100000. Cela signifie que hello_world entrée de l'adresse est 0xc100000. Ainsi, le bonjour.bin doit être chargé à l'adresse de mémoire 0xc100000.
OriginalL'auteur sun wang