Difference between revisions of "Uboot FPGA firmware update from Linux"
From ArmadeusWiki
(Apply Wiki writing rules) |
|||
Line 7: | Line 7: | ||
# tftp -g -r my_firmware.bit 192.168.0.2 | # tftp -g -r my_firmware.bit 192.168.0.2 | ||
</pre> | </pre> | ||
+ | |||
+ | * Then, determine which partition in the flash is the firmware partition: | ||
+ | <pre class="apf"> | ||
+ | # cat /proc/mtd | ||
+ | dev: size erasesize name | ||
+ | mtd0: 00100000 00020000 "u-boot" | ||
+ | mtd1: 00080000 00020000 "env" | ||
+ | mtd2: 00080000 00020000 "env2" | ||
+ | mtd3: 00100000 00020000 "firmware" | ||
+ | mtd4: 00080000 00020000 "dtb" | ||
+ | mtd5: 00080000 00020000 "splash" | ||
+ | mtd6: 00800000 00020000 "kernel" | ||
+ | mtd7: 1f400000 00020000 "rootfs" | ||
+ | </pre> | ||
+ | The example above is taken from an APF51 running Armadeus version 5.2 and we can see that mtd3 is the firmware partition. If yours is different, then replace mtd3 by what you found out to be the right one in the following commands. | ||
* Once done, the U-Boot Firmware partition has to be erased: | * Once done, the U-Boot Firmware partition has to be erased: | ||
<pre class="apf"> | <pre class="apf"> | ||
− | # flash_eraseall /dev/ | + | # flash_eraseall /dev/mtd3/ |
</pre> | </pre> | ||
* Then your FPGA .bit file can be written: | * Then your FPGA .bit file can be written: | ||
<pre class="apf"> | <pre class="apf"> | ||
− | # nandwrite -p /dev/ | + | # nandwrite -p /dev/mtd3 my_firmware.bit |
</pre> | </pre> | ||
That's all ! | That's all ! |
Revision as of 17:10, 20 January 2013
The U-Boot FPGA firmware can be updated by means of U-Boot (Target_Software_Installation#FPGA_firmware_installation) or directly from Linux as described herewith.
Under Linux:
- At first download your FPGA firmware:
# tftp -g -r my_firmware.bit 192.168.0.2
- Then, determine which partition in the flash is the firmware partition:
# cat /proc/mtd dev: size erasesize name mtd0: 00100000 00020000 "u-boot" mtd1: 00080000 00020000 "env" mtd2: 00080000 00020000 "env2" mtd3: 00100000 00020000 "firmware" mtd4: 00080000 00020000 "dtb" mtd5: 00080000 00020000 "splash" mtd6: 00800000 00020000 "kernel" mtd7: 1f400000 00020000 "rootfs"
The example above is taken from an APF51 running Armadeus version 5.2 and we can see that mtd3 is the firmware partition. If yours is different, then replace mtd3 by what you found out to be the right one in the following commands.
- Once done, the U-Boot Firmware partition has to be erased:
# flash_eraseall /dev/mtd3/
- Then your FPGA .bit file can be written:
# nandwrite -p /dev/mtd3 my_firmware.bit
That's all !