<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FlorianGa</id>
	<title>ArmadeusWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FlorianGa"/>
	<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Special:Contributions/FlorianGa"/>
	<updated>2026-04-28T00:18:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Target_Software_Installation&amp;diff=4460</id>
		<title>Target Software Installation</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Target_Software_Installation&amp;diff=4460"/>
		<updated>2008-07-26T22:35:51Z</updated>

		<summary type="html">&lt;p&gt;FlorianGa: /* Linux kernel building and installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Flash memory partitions (APF9328)===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;Signal connections&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! width=&amp;quot;66%&amp;quot; | Address range (index from FLASH physical @ 0x10000000) !! Type&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x000000 - 0x03FFFF ( 256KB )&lt;br /&gt;
| U-Boot&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x040000 - 0x5FFFF ( 128KB )&lt;br /&gt;
| U-Boot environment variables&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x060000 - 0x9FFFF ( 256KB )&lt;br /&gt;
| FPGA bitfile&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x0A0000 - 0x21FFFF ( 1.5MB )&lt;br /&gt;
| Linux kernel image&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x220000 - End of FLASH ( ~6 MB or ~14MB  )&lt;br /&gt;
| Root filesystem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Configure U-Boot==&lt;br /&gt;
&lt;br /&gt;
===Environment variables===&lt;br /&gt;
U-Boot can be customized in a flexible way with the use of &amp;quot;environment variables/scripts&amp;quot;.&lt;br /&gt;
The command &#039;&#039;&#039;printenv&#039;&#039;&#039; shows you most of them and their current value:&lt;br /&gt;
 BIOS&amp;gt; printenv&lt;br /&gt;
 bootcmd=run jffsboot&lt;br /&gt;
 bootdelay=20&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 ethaddr=00:0E:32:00:00:01&lt;br /&gt;
 autoload=no&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Use the command &#039;&#039;&#039;setenv&#039;&#039;&#039; to change these variables. For example, to set the IP address:&lt;br /&gt;
 BIOS&amp;gt; setenv ipaddr 192.168.0.3&lt;br /&gt;
&lt;br /&gt;
Use the command &#039;&#039;&#039;saveenv&#039;&#039;&#039; to save the state of your environment variables in FLASH memory:&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
 Saving Environment to Flash...&lt;br /&gt;
 . done&lt;br /&gt;
 Un-Protected 1 sectors&lt;br /&gt;
 Erasing Flash...&lt;br /&gt;
 . done&lt;br /&gt;
 Erased 1 sectors&lt;br /&gt;
 Writing to Flash... done&lt;br /&gt;
 . done&lt;br /&gt;
 Protected 1 sectors&lt;br /&gt;
&lt;br /&gt;
===Network configuration===&lt;br /&gt;
In order to use the U-Boot&#039;s network features, you have to set the network environment variables:&lt;br /&gt;
 BIOS&amp;gt; setenv netmask 255.255.255.0 (this default value should be fine in most situations)&lt;br /&gt;
 BIOS&amp;gt; setenv ipaddr 192.168.0.3 &lt;br /&gt;
 BIOS&amp;gt; setenv serverip 192.168.0.5 (the IP address of your tftp server/PC hosting the files to download)&lt;br /&gt;
 BIOS&amp;gt; setenv rootpath &amp;quot;/tftpboot/root&amp;quot; (to boot Linux over NFS)&lt;br /&gt;
&lt;br /&gt;
You can use the &#039;&#039;&#039;dhcp&#039;&#039;&#039; command to configure these variables from your DHCP server. You probably will have to adjust the &#039;&#039;&#039;serverip&#039;&#039;&#039; variable manually.&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; dhcp&lt;br /&gt;
 dm9000 i/o: 0x15c00000, id: 0x90000a46&lt;br /&gt;
 MAC: 00:0e:32:00:00:01&lt;br /&gt;
 operating at 100M full duplex mode&lt;br /&gt;
 BOOTP broadcast 1&lt;br /&gt;
 DHCP client bound to address 192.168.0.3&lt;br /&gt;
 BIOS&amp;gt; setenv serverip 192.168.0.5&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&lt;br /&gt;
Do not forget to save your changes in FLASH, to have them available at next power up:&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
In case of troubles you can use the following U-Boot script to reset the variables to the &amp;quot;factory&amp;quot;/default settings:&lt;br /&gt;
 BIOS&amp;gt; run flash_reset_env&lt;br /&gt;
&lt;br /&gt;
===Linux kernel building and installation===&lt;br /&gt;
&lt;br /&gt;
* configure your Linux kernel:&lt;br /&gt;
 [armadeus]$ make linux-menuconfig&lt;br /&gt;
&lt;br /&gt;
* save your configuration and then rebuild your kernel image:&lt;br /&gt;
 [armadeus]$ make linux&lt;br /&gt;
&lt;br /&gt;
* check that your Armadeus kernel image size is smaller than the U-Boot partition (1,5MB):&lt;br /&gt;
 [armadeus]$ ls -al buildroot/binaries/armadeus/&lt;br /&gt;
 ...&lt;br /&gt;
 [armadeus]$ cp buildroot/binaries/armadeus/linux-kernel-2.6.23.1-arm.bin /tftpboot/&lt;br /&gt;
&lt;br /&gt;
* Load kernel image with U-Boot through network:&lt;br /&gt;
    BIOS&amp;gt; tftp 08000000 /tftpboot/linux-kernel-2.6.23.1-arm.bin&lt;br /&gt;
or with the serial line:&lt;br /&gt;
    BIOS&amp;gt; loadb 08000000&lt;br /&gt;
    Ctrl+Altgr+\+c to access kermit command line then...&lt;br /&gt;
    send pathtoyourhostedbuildrootdir/linux-kernel-2.6.23.1-arm.bin&lt;br /&gt;
    the you can type the c command to reconnect to the terminal&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;!!! WARNING !! If the loaded kernel image is too large, the following operation can destroy data that are stored after the partition limits (e.g. RootFS) !!!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Check that transfered size value is less than 1572864 (0x180000 hex)&lt;br /&gt;
 Bytes transferred = 1313216 (1409c0 hex) &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* You can test your new kernel image without flashing it with:&lt;br /&gt;
    BIOS&amp;gt; bootm 08000000&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Unprotect flash sectors bank 1 sectors 0 to 127:&lt;br /&gt;
    BIOS&amp;gt; protect off 1:0-127&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Flash kernel image with:&lt;br /&gt;
    BIOS&amp;gt; run flash_kernel&lt;br /&gt;
&lt;br /&gt;
* To make it easier next time, you can write a small U-Boot script:&lt;br /&gt;
 BIOS&amp;gt; setenv kernel_img linux-kernel-2.6.23.1-arm.bin&lt;br /&gt;
 BIOS&amp;gt; setenv update_kernel_tftp if tftp 08000000 \${kernel_img}\; then run flash_kernel\; fi&lt;br /&gt;
* So next time you will only launch:&lt;br /&gt;
 BIOS&amp;gt; run update_kernel_tftp&lt;br /&gt;
&lt;br /&gt;
* If you only want to try a new kernel without flashing the kernel image you can launch it directly from RAM:&lt;br /&gt;
 BIOS&amp;gt; setenv bootargs ${console} ${mtdparts}; run addjffsargs addipargs; bootm&lt;br /&gt;
(the kernel image you want to try must have been loaded at 0x08000000)&lt;br /&gt;
&lt;br /&gt;
===Linux RootFS installation===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* check that your Armadeus RootFS image size is smaller than the RootFS partition :&lt;br /&gt;
 [armadeus]$ ls -al buildroot/binaries/armadeus/&lt;br /&gt;
 ...&lt;br /&gt;
 [armadeus]$ cp buildroot/binaries/armadeus/rootfs.arm.jffs2 /tftpboot/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Load RootFS image with U-Boot through network:&lt;br /&gt;
    BIOS&amp;gt; tftp 08000000 /tftpboot/rootfs.arm.jffs2&lt;br /&gt;
or serial line:&lt;br /&gt;
    BIOS&amp;gt; loadb 08000000&lt;br /&gt;
    Ctrl+Altgr+\+c to access kermit command line then...&lt;br /&gt;
    send pathtoyourhostedbuildrootdir/rootfs.arm.jffs2&lt;br /&gt;
then you can type the c command to reconnect to the terminal&lt;br /&gt;
&lt;br /&gt;
* Flash RootFS image with:&lt;br /&gt;
    BIOS&amp;gt; run flash_rootfs&lt;br /&gt;
&lt;br /&gt;
* Now you should be ready to test Linux:&lt;br /&gt;
    BIOS&amp;gt; boot&lt;br /&gt;
&lt;br /&gt;
*  To make it easier next time, you can write a small U-Boot script:&lt;br /&gt;
 BIOS&amp;gt; setenv rootfs_img rootfs.arm.jffs2&lt;br /&gt;
 BIOS&amp;gt; setenv update_rootfs_tftp if tftp 08000000 \${rootfs_img}\; then run flash_rootfs\; fi&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&lt;br /&gt;
* So next time you will only launch: &lt;br /&gt;
 BIOS&amp;gt; run update_rootfs_tftp&lt;br /&gt;
&lt;br /&gt;
===FPGA firmware installation===&lt;br /&gt;
&lt;br /&gt;
The FPGA firmwares are all located in the &#039;&#039;firmware/&#039;&#039; directory of your Armadeus view:&lt;br /&gt;
 [armadeus]$ ls firmware/&lt;br /&gt;
 BRAMTest  led  PS2  PS2_Opencore  sram_test&lt;br /&gt;
You can make some trials with the &#039;&#039;firmware/PS2/ps2_top.bit&#039;&#039; file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;!!! Check that your bitfile size is smaller than the firmware partition size (256KB) before trying the following commands or you may corrupt your Linux kernel FLASH partition !!!&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Load FPGA firmware image file with U-Boot through:&amp;lt;br&amp;gt;&lt;br /&gt;
Ethernet:&lt;br /&gt;
    BIOS&amp;gt; tftp 08000000 fpgafirmware.bit&lt;br /&gt;
fpgafirmware.bit is of course the name of your bitfile stored in your TFTP shared directory (/tftpboot/)&lt;br /&gt;
&lt;br /&gt;
or serial line:&lt;br /&gt;
    BIOS&amp;gt; loadb 08000000&lt;br /&gt;
    Ctrl+Altgr+\+c to access kermit command line then...&lt;br /&gt;
    C-Kermit&amp;gt; send path_to_your_tftp/fpgafirmware.bit&lt;br /&gt;
then you can type the c command to reconnect to the terminal&lt;br /&gt;
&lt;br /&gt;
* Flash your firmware image with:&lt;br /&gt;
    BIOS&amp;gt; run flash_firmware&lt;br /&gt;
&lt;br /&gt;
* Test your new FPGA firmware:&lt;br /&gt;
    BIOS&amp;gt; fpga load 0 ${firmware_addr} ${firmware_len}&lt;br /&gt;
&lt;br /&gt;
* When your are satisfied with your firmware you can make it &amp;quot;autoloaded&amp;quot; at power up:&lt;br /&gt;
    BIOS&amp;gt; setenv firmware_autoload 1&lt;br /&gt;
    BIOS&amp;gt; saveenv&lt;br /&gt;
&lt;br /&gt;
==Update U-Boot==&lt;br /&gt;
&lt;br /&gt;
There are two steps to update U-Boot:&lt;br /&gt;
*1] Load the new U-Boot code in RAM&lt;br /&gt;
You can use the following commands to download U-boot:&amp;lt;br&amp;gt;&lt;br /&gt;
With Ethernet and a TFTP server:&lt;br /&gt;
 BIOS&amp;gt; tftp 08000000 /tftpboot_path_to_buildroot/u-boot.bin&lt;br /&gt;
With Ethernet and a NFS server:&lt;br /&gt;
 BIOS&amp;gt; nfs 08000000 host_ip_addr:/nfs_path_to_buildroot/u-boot.bin&lt;br /&gt;
With the kermit and a serial line&lt;br /&gt;
 BIOS&amp;gt; loadb 08000000&lt;br /&gt;
    &amp;lt;CTRL&amp;gt;&amp;lt;ALT GR&amp;gt;\&lt;br /&gt;
    c&lt;br /&gt;
    send path_to_buildroot/u_boot.bin&lt;br /&gt;
    c&lt;br /&gt;
&lt;br /&gt;
*2] Transfer code from RAM to Flash memory&lt;br /&gt;
There is a simple U-Boot command/script to do that:&lt;br /&gt;
    BIOS&amp;gt; run flash_uboot&lt;br /&gt;
&lt;br /&gt;
Advanced informations can be found at the [[BootLoader]] wiki page.&lt;/div&gt;</summary>
		<author><name>FlorianGa</name></author>
	</entry>
</feed>