<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rtime.felk.cvut.cz/hw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sojka</id>
	<title>HW wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://rtime.felk.cvut.cz/hw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sojka"/>
	<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php/Special:Contributions/Sojka"/>
	<updated>2026-05-20T02:03:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4281</id>
		<title>Xilinx Vivado</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4281"/>
		<updated>2019-09-20T20:56:57Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Tips, Tricks, Workarounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Tips, Tricks, Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* For remote hosts (Tools → Settings → Remote Hosts → Manual Configuration) to work (at least on Debian system) &#039;&#039;sh&#039;&#039; command on local system must run &#039;&#039;bash&#039;&#039;, not &#039;&#039;dash&#039;&#039;. If you don&#039;t want to set this globally, the following command does it only for Vivado: &amp;lt;tt&amp;gt;ln -s /bin/bash /opt/Xilinx/Vivado/2019.1/bin/sh&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DocNav complains about SSL and you cannot download anything. See [https://www.xilinx.com/support/answers/72509.html this]. On Debian, solve it with downloading [https://packages.debian.org/stretch/amd64/libssl1.0.2/download libssl1.0.2] and copying the content of &#039;&#039;/usr/lib/x86_64-linux-gnu/&#039;&#039; to &#039;&#039;/opt/Xilinx/DocNav/lib&#039;&#039;. Then create a symlink as follows: &amp;lt;tt&amp;gt;ln -s libssl.so.1.0.2 /opt/Xilinx/DocNav/lib/libssl.so&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4280</id>
		<title>Xilinx Vivado</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4280"/>
		<updated>2019-09-04T19:45:17Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Tips, Tricks, Workarounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Tips, Tricks, Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* For remote hosts (Tools → Settings → Remote Hosts → Manual Configuration) to work (at least on Debian system) &#039;&#039;sh&#039;&#039; command on local system must run &#039;&#039;bash&#039;&#039;, not &#039;&#039;dash&#039;&#039;. If you don&#039;t want to set this globally, the following command does it only for Vivado: &amp;lt;tt&amp;gt;ln -s /bin/bash /opt/Xilinx/Vivado/2019.1/bin/sh&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DocNav complains about SSL and you cannot download anything. See [https://www.xilinx.com/support/answers/72509.html this]. On Debian, solve it with downloading [https://packages.debian.org/stretch/amd64/libssl1.0.2/download libssl1.0.2] and copying the content of &#039;&#039;/usr/lib/x86_64-linux-gnu/&#039;&#039; to &#039;&#039;/opt/Xilinx/DocNav/lib&#039;&#039;. The create a symlink as follows: &amp;lt;tt&amp;gt;ln -s libssl.so.1.0.2 /opt/Xilinx/DocNav/lib/libssl.so&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4279</id>
		<title>Xilinx Vivado</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4279"/>
		<updated>2019-09-04T19:44:32Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Tips, Tricks, Workarounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Tips, Tricks, Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* For remote hosts (Tools → Settings → Remote Hosts → Manual Configuration) to work (at least on Debian system) &#039;&#039;sh&#039;&#039; command must run &#039;&#039;bash&#039;&#039;, not &#039;&#039;dash&#039;&#039;. If you don&#039;t want to set this globally, the following command does it only for Vivado: &amp;lt;tt&amp;gt;ln -s /bin/bash /opt/Xilinx/Vivado/2019.1/bin/sh&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DocNav complains about SSL and you cannot download anything. See [https://www.xilinx.com/support/answers/72509.html this]. On Debian, solve it with downloading [https://packages.debian.org/stretch/amd64/libssl1.0.2/download libssl1.0.2] and copying the content of &#039;&#039;/usr/lib/x86_64-linux-gnu/&#039;&#039; to &#039;&#039;/opt/Xilinx/DocNav/lib&#039;&#039;. The create a symlink as follows: &amp;lt;tt&amp;gt;ln -s libssl.so.1.0.2 /opt/Xilinx/DocNav/lib/libssl.so&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4278</id>
		<title>Xilinx Vivado</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4278"/>
		<updated>2019-09-04T19:44:22Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Tips, Tricks, Workarounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Tips, Tricks, Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* For remote hosts (Tools → Settings → Remote Hosts → Manual Configuration) to work (at least on Debian system) &#039;&#039;sh&#039;&#039; command must run &#039;&#039;bash&#039;&#039;, not &#039;&#039;dash&#039;&#039;. If you don&#039;t want to set this globally, the following command does it only for Vivado: &amp;lt;tt&amp;gt;ln -s /bin/bash /opt/Xilinx/Vivado/2019.1/bin/sh&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DocNav complains about SSL and you cannot download anything. See [https://www.xilinx.com/support/answers/72509.html this]. On Debian, solve it with downloading [https://packages.debian.org/stretch/amd64/libssl1.0.2/download libssl1.0.2] and copying the content of &#039;&#039;/usr/lib/x86_64-linux-gnu/&#039;&#039; to &#039;&#039;/opt/Xilinx/DocNav/lib&#039;&#039;. The create a symlink as follows: &amp;lt;tt&amp;gt;ln -s libssl.so.1.0.2&lt;br /&gt;
/opt/Xilinx/DocNav/lib/libssl.so&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4277</id>
		<title>Xilinx Vivado</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4277"/>
		<updated>2019-09-04T19:39:40Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Tips, Tricks, Workarounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Tips, Tricks, Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* For remote hosts (Tools → Settings → Remote Hosts → Manual Configuration) to work (at least on Debian system) &#039;&#039;sh&#039;&#039; command must run &#039;&#039;bash&#039;&#039;, not &#039;&#039;dash&#039;&#039;. If you don&#039;t want to set this globally, the following command does it only for Vivado: &amp;lt;tt&amp;gt;ln -s /bin/bash /opt/Xilinx/Vivado/2019.1/bin/sh&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4276</id>
		<title>Xilinx Vivado</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Xilinx_Vivado&amp;diff=4276"/>
		<updated>2019-09-04T19:39:11Z</updated>

		<summary type="html">&lt;p&gt;Sojka: Created page with &amp;quot; == Tips, Tricks, Workarounds ==  * For remote hosts (Tools → Settings → Remote Hosts → Manual Configuration) to work (at least on Debian system) &amp;#039;&amp;#039;sh&amp;#039;&amp;#039; command must run...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Tips, Tricks, Workarounds ==&lt;br /&gt;
&lt;br /&gt;
* For remote hosts (Tools → Settings → Remote Hosts → Manual Configuration) to work (at least on Debian system) &#039;&#039;sh&#039;&#039; command must run &#039;&#039;bash&#039;&#039;, not &#039;&#039;dash&#039;&#039;. If you don&#039;t want to set this globally, the following command does it only for Vivado: &amp;lt;tt&amp;gt;&lt;br /&gt;
ln -s /bin/bash /opt/Xilinx/Vivado/2019.1/bin/sh&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Template:Main_Page/Software&amp;diff=4275</id>
		<title>Template:Main Page/Software</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Template:Main_Page/Software&amp;diff=4275"/>
		<updated>2019-09-04T19:33:44Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Software ==&lt;br /&gt;
&lt;br /&gt;
* [[System-Less Framework]]&lt;br /&gt;
* [[OMK]]&lt;br /&gt;
* [[OSELAS.Toolchain]]&lt;br /&gt;
* [[Cross compilers]]&lt;br /&gt;
* [[How to build GNU cross-compilers]]&lt;br /&gt;
* [[RTEMS]]&lt;br /&gt;
* [[Code Porting]]&lt;br /&gt;
* [[Xilinx ISE]]&lt;br /&gt;
* [[Xilinx Vivado]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4274</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4274"/>
		<updated>2019-04-12T13:54:51Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Creating repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways. Note that under Windows, methods 1 and 2 only work if [[Media:git-plink.jpg|OpenSSH]] has been selected during Git installation.&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Plink]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are two ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (login or email) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
Such repository is by default accessible only to the creator. If you want this repository to be public, run&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «login»/«whatever» + READERS @all&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for public repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
 git clone http://rtime.felk.cvut.cz/git/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on [https://rtime.felk.cvut.cz/gitweb/ gitweb], run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4273</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4273"/>
		<updated>2019-02-26T11:11:44Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* SSH key creation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways. Note that under Windows, methods 1 and 2 only work if [[Media:git-plink.jpg|OpenSSH]] has been selected during Git installation.&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Plink]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (login or email) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
Such repository is by default accessible only to the creator. If you want this repository to be public, run&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «login»/«whatever» + READERS @all&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for public repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
 git clone http://rtime.felk.cvut.cz/git/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on [https://rtime.felk.cvut.cz/gitweb/ gitweb], run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4272</id>
		<title>NVIDIA Jetson TX2</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4272"/>
		<updated>2019-01-28T11:36:13Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Tips and tricks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Remote access to the TX2 board ==&lt;br /&gt;
&lt;br /&gt;
We have a remotely manageable NVIDIA Jetson TX2 kit. You can remotely power on/off and reset the board. Also the serial debug interface is available through the SSH connection. Maintainer of this board is [mailto:michal.sojka@cvut.cz Michal Sojka]. If you want to get access to the board or something does not work as expected, contact him.&lt;br /&gt;
&lt;br /&gt;
The TX2 is connected to a local network accessible from rtime.felk.cvut.cz server.&lt;br /&gt;
&lt;br /&gt;
Only single user can be logged remotely at the same time using the following procedure. In case another user is already logged in you will see a message indicating this and you will be granted access to the kit as soon as the other user disconnects.&lt;br /&gt;
&lt;br /&gt;
For remote access to the kit you need to follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Use Linux distribution and have SSH client installed. On Debian-based distributions you can use the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install openssh-client&lt;br /&gt;
&lt;br /&gt;
2. Generate a public/private SSH keypair.&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&lt;br /&gt;
3. Send the generated public key to [mailto:michal.sojka@cvut.cz Michal Sojka]. You should get a response afterwards indicating, that You now have access to the TX2.&lt;br /&gt;
&lt;br /&gt;
4. Now You can remotely access the TX2 by issuing commands from next sections:&lt;br /&gt;
&lt;br /&gt;
=== Remote power-cycle/reset === &lt;br /&gt;
&lt;br /&gt;
To power on the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz on&lt;br /&gt;
&lt;br /&gt;
To forcefully power off the kit (i.e. equivalent to holding the power button on the TX2 for a few seconds) use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
To reset the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz reset&lt;br /&gt;
&lt;br /&gt;
=== Command line access ===&lt;br /&gt;
&lt;br /&gt;
==== Serial console over SSH ====&lt;br /&gt;
&lt;br /&gt;
To gain access to the serial console use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
==== SSH from CIIRC network (IIG vlan) ====&lt;br /&gt;
&lt;br /&gt;
If you are in CIIRC and your IP address starts with 10.35.95.*, don&#039;t need to use port forwarding. Just use:&lt;br /&gt;
&lt;br /&gt;
 $ ssh nvidia@tx2-stud&lt;br /&gt;
&lt;br /&gt;
==== SSH from non-CIIRC network ====&lt;br /&gt;
&lt;br /&gt;
In order to login through SSH to TX2 you need to setup port forwarding in the above (serial console) command:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use ROS nodes on both the TX2 and your own PC, then you will need to forward additional ports:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 -L 11311:tx2-stud:11311 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
These commands will open a remote serial console on the TX2 and forward port 22 (used by SSH server) to port 2222 your local machine (the second command forwards also port 11311 used by ROS). Then you can finally connect to the TX2 through SSH by opening another terminal and issuing the following command (do no disconnect the previous ssh connection, otherwise the port forwarding from the internal CTU network will stop working):&lt;br /&gt;
 $ ssh -p 2222 nvidia@localhost&lt;br /&gt;
&lt;br /&gt;
You can use whatever user account on the TX2 you want instead of &#039;nvidia&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Disconnect ===&lt;br /&gt;
&lt;br /&gt;
In order to disconnect from the TX2, you first close the ssh opened through the forwarded port (by pressing Ctrl+D) and then you press &#039;~.&#039; to close the serial console ssh session. Sometimes it does not work for the first time, if this is the case you have to press Enter and input &#039;~.&#039; again.&lt;br /&gt;
&lt;br /&gt;
There is an auto power down feature, that ensures the TX2 is switched off if not used for prolonged periods in order to save energy. This is accomplished in a way that is equivalent to using:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
This can cause data loss. In order to avoid that use the following command before logging out of the TX2:&lt;br /&gt;
 $ sync&lt;br /&gt;
&lt;br /&gt;
It is also advisable not to leave tasks running (e.g. by launching the &#039;screen&#039; program and then detaching) on the TX2 and logout, because the board might shut down.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
* When you want to copy the filesystem from one board to another or to a NFS server for network boot, delete &amp;lt;tt&amp;gt;/var/lib/dhcp/dhclient.leases&amp;lt;/tt&amp;gt; file. Otherwise the board changes its IP address during boot to that of the original board, which causes things like IP address collision or inability to communicate with the NFS server.&lt;br /&gt;
&lt;br /&gt;
* When you add a new user, add him/her at least to the &amp;lt;tt&amp;gt;video&amp;lt;/tt&amp;gt; group. This is necessary to run CUDA programs.&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4271</id>
		<title>NVIDIA Jetson TX2</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4271"/>
		<updated>2019-01-23T14:30:06Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Remote access to the TX2 board ==&lt;br /&gt;
&lt;br /&gt;
We have a remotely manageable NVIDIA Jetson TX2 kit. You can remotely power on/off and reset the board. Also the serial debug interface is available through the SSH connection. Maintainer of this board is [mailto:michal.sojka@cvut.cz Michal Sojka]. If you want to get access to the board or something does not work as expected, contact him.&lt;br /&gt;
&lt;br /&gt;
The TX2 is connected to a local network accessible from rtime.felk.cvut.cz server.&lt;br /&gt;
&lt;br /&gt;
Only single user can be logged remotely at the same time using the following procedure. In case another user is already logged in you will see a message indicating this and you will be granted access to the kit as soon as the other user disconnects.&lt;br /&gt;
&lt;br /&gt;
For remote access to the kit you need to follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Use Linux distribution and have SSH client installed. On Debian-based distributions you can use the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install openssh-client&lt;br /&gt;
&lt;br /&gt;
2. Generate a public/private SSH keypair.&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&lt;br /&gt;
3. Send the generated public key to [mailto:michal.sojka@cvut.cz Michal Sojka]. You should get a response afterwards indicating, that You now have access to the TX2.&lt;br /&gt;
&lt;br /&gt;
4. Now You can remotely access the TX2 by issuing commands from next sections:&lt;br /&gt;
&lt;br /&gt;
=== Remote power-cycle/reset === &lt;br /&gt;
&lt;br /&gt;
To power on the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz on&lt;br /&gt;
&lt;br /&gt;
To forcefully power off the kit (i.e. equivalent to holding the power button on the TX2 for a few seconds) use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
To reset the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz reset&lt;br /&gt;
&lt;br /&gt;
=== Command line access ===&lt;br /&gt;
&lt;br /&gt;
==== Serial console over SSH ====&lt;br /&gt;
&lt;br /&gt;
To gain access to the serial console use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
==== SSH from CIIRC network (IIG vlan) ====&lt;br /&gt;
&lt;br /&gt;
If you are in CIIRC and your IP address starts with 10.35.95.*, don&#039;t need to use port forwarding. Just use:&lt;br /&gt;
&lt;br /&gt;
 $ ssh nvidia@tx2-stud&lt;br /&gt;
&lt;br /&gt;
==== SSH from non-CIIRC network ====&lt;br /&gt;
&lt;br /&gt;
In order to login through SSH to TX2 you need to setup port forwarding in the above (serial console) command:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use ROS nodes on both the TX2 and your own PC, then you will need to forward additional ports:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 -L 11311:tx2-stud:11311 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
These commands will open a remote serial console on the TX2 and forward port 22 (used by SSH server) to port 2222 your local machine (the second command forwards also port 11311 used by ROS). Then you can finally connect to the TX2 through SSH by opening another terminal and issuing the following command (do no disconnect the previous ssh connection, otherwise the port forwarding from the internal CTU network will stop working):&lt;br /&gt;
 $ ssh -p 2222 nvidia@localhost&lt;br /&gt;
&lt;br /&gt;
You can use whatever user account on the TX2 you want instead of &#039;nvidia&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Disconnect ===&lt;br /&gt;
&lt;br /&gt;
In order to disconnect from the TX2, you first close the ssh opened through the forwarded port (by pressing Ctrl+D) and then you press &#039;~.&#039; to close the serial console ssh session. Sometimes it does not work for the first time, if this is the case you have to press Enter and input &#039;~.&#039; again.&lt;br /&gt;
&lt;br /&gt;
There is an auto power down feature, that ensures the TX2 is switched off if not used for prolonged periods in order to save energy. This is accomplished in a way that is equivalent to using:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
This can cause data loss. In order to avoid that use the following command before logging out of the TX2:&lt;br /&gt;
 $ sync&lt;br /&gt;
&lt;br /&gt;
It is also advisable not to leave tasks running (e.g. by launching the &#039;screen&#039; program and then detaching) on the TX2 and logout, because the board might shut down.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
* When you want to copy the filesystem from one board to another or to a NFS server for network boot, delete &amp;lt;tt&amp;gt;/var/lib/dhcp/dhclient.leases&amp;lt;/tt&amp;gt; file. Otherwise the board changes its IP address during boot to that of the original board, which causes things like IP address collision or inability to communicate with the NFS server.&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4270</id>
		<title>NVIDIA Jetson TX2</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4270"/>
		<updated>2019-01-23T14:27:50Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Remote access to the TX2 board ==&lt;br /&gt;
&lt;br /&gt;
We have a remotely manageable NVIDIA Jetson TX2 kit. You can remotely power on/off and reset the board. Also the serial debug interface is available through the SSH connection. Maintainer of this board is [mailto:michal.sojka@cvut.cz Michal Sojka]. If you want to get access to the board or something does not work as expected, contact him.&lt;br /&gt;
&lt;br /&gt;
The TX2 is connected to a local network accessible from rtime.felk.cvut.cz server.&lt;br /&gt;
&lt;br /&gt;
Only single user can be logged remotely at the same time using the following procedure. In case another user is already logged in you will see a message indicating this and you will be granted access to the kit as soon as the other user disconnects.&lt;br /&gt;
&lt;br /&gt;
For remote access to the kit you need to follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Use Linux distribution and have SSH client installed. On Debian-based distributions you can use the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install openssh-client&lt;br /&gt;
&lt;br /&gt;
2. Generate a public/private SSH keypair.&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&lt;br /&gt;
3. Send the generated public key to [mailto:michal.sojka@cvut.cz Michal Sojka]. You should get a response afterwards indicating, that You now have access to the TX2.&lt;br /&gt;
&lt;br /&gt;
4. Now You can remotely access the TX2 by issuing commands from next sections:&lt;br /&gt;
&lt;br /&gt;
=== Remote power-cycle/reset === &lt;br /&gt;
&lt;br /&gt;
To power on the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz on&lt;br /&gt;
&lt;br /&gt;
To forcefully power off the kit (i.e. equivalent to holding the power button on the TX2 for a few seconds) use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
To reset the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz reset&lt;br /&gt;
&lt;br /&gt;
=== Command line access ===&lt;br /&gt;
&lt;br /&gt;
==== Serial console over SSH ====&lt;br /&gt;
&lt;br /&gt;
To gain access to the serial console use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
==== SSH from CIIRC network (IIG vlan) ====&lt;br /&gt;
&lt;br /&gt;
If you are in CIIRC and your IP address starts with 10.35.95.*, don&#039;t need to use port forwarding. Just use:&lt;br /&gt;
&lt;br /&gt;
 $ ssh nvidia@tx2-stud&lt;br /&gt;
&lt;br /&gt;
==== SSH from non-CIIRC network ====&lt;br /&gt;
&lt;br /&gt;
In order to login through SSH to TX2 you need to setup port forwarding in the above (serial console) command:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use ROS nodes on both the TX2 and your own PC, then you will need to forward additional ports:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 -L 11311:tx2-stud:11311 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
These commands will open a remote serial console on the TX2 and forward port 22 (used by SSH server) to port 2222 your local machine (the second command forwards also port 11311 used by ROS). Then you can finally connect to the TX2 through SSH by opening another terminal and issuing the following command (do no disconnect the previous ssh connection, otherwise the port forwarding from the internal CTU network will stop working):&lt;br /&gt;
 $ ssh -p 2222 nvidia@localhost&lt;br /&gt;
&lt;br /&gt;
You can use whatever user account on the TX2 you want instead of &#039;nvidia&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Disconnect ===&lt;br /&gt;
&lt;br /&gt;
In order to disconnect from the TX2, you first close the ssh opened through the forwarded port (by pressing Ctrl+D) and then you press &#039;~.&#039; to close the serial console ssh session. Sometimes it does not work for the first time, if this is the case you have to press Enter and input &#039;~.&#039; again.&lt;br /&gt;
&lt;br /&gt;
There is an auto power down feature, that ensures the TX2 is switched off if not used for prolonged periods in order to save energy. This is accomplished in a way that is equivalent to using:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
This can cause data loss. In order to avoid that use the following command before logging out of the TX2:&lt;br /&gt;
 $ sync&lt;br /&gt;
&lt;br /&gt;
It is also advisable not to leave tasks running (e.g. by launching the &#039;screen&#039; program and then detaching) on the TX2 and logout, because the board might shut down.&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4269</id>
		<title>NVIDIA Jetson TX2</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4269"/>
		<updated>2018-12-13T09:47:35Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We have a remotely manageable NVIDIA Jetson TX2 kit. You can remotely power on/off and reset the board. Also the serial debug interface is available through the SSH connection. Maintainer of this board is [mailto:martin.vajnar@cvut.cz Martin Vajnar]. If you want to get access to the board or something does not work as expected, contact him.&lt;br /&gt;
&lt;br /&gt;
The TX2 is connected to a local network accessible from rtime.felk.cvut.cz server.&lt;br /&gt;
&lt;br /&gt;
Only single user can be logged remotely at the same time using the following procedure. In case another user is already logged in you will see a message indicating this and you will be granted access to the kit as soon as the other user disconnects.&lt;br /&gt;
&lt;br /&gt;
== Remote SSH access to the TX2 ==&lt;br /&gt;
&lt;br /&gt;
For remote access to the kit you need to follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Use Linux distribution and have SSH client installed. On Debian-based distributions you can use the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install openssh-client&lt;br /&gt;
&lt;br /&gt;
2. Generate a public/private SSH keypair.&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&lt;br /&gt;
3. Send the generated public key to [mailto:michal.sojka@cvut.cz Michal Sojka]. You should get a response afterwards indicating, that You now have access to the TX2.&lt;br /&gt;
&lt;br /&gt;
4. Now You can remotely access the TX2 by issuing commands from next sections:&lt;br /&gt;
&lt;br /&gt;
=== Remote power-cycle/reset === &lt;br /&gt;
&lt;br /&gt;
To power on the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz on&lt;br /&gt;
&lt;br /&gt;
To forcefully power off the kit (i.e. equivalent to holding the power button on the TX2 for a few seconds) use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
To reset the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz reset&lt;br /&gt;
&lt;br /&gt;
=== Command line access ===&lt;br /&gt;
&lt;br /&gt;
==== Serial console over SSH ====&lt;br /&gt;
&lt;br /&gt;
To gain access to the serial command line use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
==== SSH from non-CIIRC network ====&lt;br /&gt;
&lt;br /&gt;
In order to login through SSH to TX2 you need to setup port forwarding in the above command:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use ROS nodes on both the TX2 and your own PC, then you will need to forward additional ports:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 -L 11311:tx2-stud:11311 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
These commands will open a remote serial console on the TX2 and forward port 22 (used by SSH server) to port 2222 your local machine (the second command forwards also port 11311 used by ROS). Then you can finally connect to the TX2 through SSH by opening another terminal and issuing the following command (do no disconnect the previous ssh connection, otherwise the port forwarding from the internal CTU network will stop working):&lt;br /&gt;
 $ ssh -p 2222 nvidia@localhost&lt;br /&gt;
&lt;br /&gt;
You can use whatever user account on the TX2 you want instead of &#039;nvidia&#039;.&lt;br /&gt;
&lt;br /&gt;
==== SSH from CIIRC network (IIG vlan) ====&lt;br /&gt;
&lt;br /&gt;
If you are in CIIRC and your IP address starts with 10.35.95.*, don&#039;t need to use port forwarding. Just use:&lt;br /&gt;
&lt;br /&gt;
 $ ssh nvidia@tx2-stud&lt;br /&gt;
&lt;br /&gt;
=== Disconnect ===&lt;br /&gt;
&lt;br /&gt;
In order to disconnect from the TX2, you first close the ssh opened through the forwarded port (by pressing Ctrl+D) and then you press &#039;~.&#039; to close the serial console ssh session. Sometimes it does not work for the first time, if this is the case you have to press Enter and input &#039;~.&#039; again.&lt;br /&gt;
&lt;br /&gt;
There is an auto power down feature, that ensures the TX2 is switched off if not used for prolonged periods in order to save energy. This is accomplished in a way that is equivalent to using:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
This can cause data loss. In order to avoid that use the following command before logging out of the TX2:&lt;br /&gt;
 $ sync&lt;br /&gt;
&lt;br /&gt;
It is also advisable not to leave tasks running (e.g. by launching the &#039;screen&#039; program and then detaching) on the TX2 and logout, because the board might shut down.&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4268</id>
		<title>NVIDIA Jetson TX2</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=NVIDIA_Jetson_TX2&amp;diff=4268"/>
		<updated>2018-02-20T14:31:01Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We have a remotely manageable NVIDIA Jetson TX2 kit. You can remotely power on/off and reset the board. Also the serial debug interface is available through the SSH connection. Maintainer of this board is [mailto:martin.vajnar@cvut.cz Martin Vajnar]. If you want to get access to the board or something does not work as expected, contact him.&lt;br /&gt;
&lt;br /&gt;
The TX2 is connected to a local network accessible from rtime.felk.cvut.cz server.&lt;br /&gt;
&lt;br /&gt;
Only single user can be logged remotely at the same time using the following procedure. In case another user is already logged in you will see a message indicating this and you will be granted access to the kit as soon as the other user disconnects.&lt;br /&gt;
&lt;br /&gt;
== Remote SSH access to the TX2 ==&lt;br /&gt;
&lt;br /&gt;
For remote access to the kit you need to follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Use Linux distribution and have SSH client installed. On Debian-based distributions you can use the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install openssh-client&lt;br /&gt;
&lt;br /&gt;
2. Generate a public/private SSH keypair.&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&lt;br /&gt;
3. Send the generated public key to [mailto:martin.vajnar@cvut.cz Martin Vajnar]. You should get a response afterwards indicating, that You now have access to the TX2.&lt;br /&gt;
&lt;br /&gt;
4. Now You can remotely access the TX2 by issuing commands from next sections:&lt;br /&gt;
&lt;br /&gt;
=== Remote power-cycle/reset === &lt;br /&gt;
&lt;br /&gt;
To power on the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz on&lt;br /&gt;
&lt;br /&gt;
To forcefully power off the kit (i.e. equivalent to holding the power button on the TX2 for a few seconds) use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
To reset the kit use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz reset&lt;br /&gt;
&lt;br /&gt;
=== Command line access ===&lt;br /&gt;
&lt;br /&gt;
==== Serial console over SSH ====&lt;br /&gt;
&lt;br /&gt;
To gain access to the serial command line use:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
==== SSH from non-CIIRC network ====&lt;br /&gt;
&lt;br /&gt;
In order to login through SSH to TX2 you need to setup port forwarding in the above command:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
If you want to be able to use ROS nodes on both the TX2 and your own PC, then you will need to forward additional ports:&lt;br /&gt;
 $ ssh -L 2222:tx2-stud:22 -L 11311:tx2-stud:11311 tx2@rtime.felk.cvut.cz&lt;br /&gt;
&lt;br /&gt;
These commands will open a remote serial console on the TX2 and forward port 22 (used by SSH server) to port 2222 your local machine (the second command forwards also port 11311 used by ROS). Then you can finally connect to the TX2 through SSH by opening another terminal and issuing the following command (do no disconnect the previous ssh connection, otherwise the port forwarding from the internal CTU network will stop working):&lt;br /&gt;
 $ ssh -p 2222 nvidia@localhost&lt;br /&gt;
&lt;br /&gt;
You can use whatever user account on the TX2 you want instead of &#039;nvidia&#039;.&lt;br /&gt;
&lt;br /&gt;
==== SSH from CIIRC network (IIG vlan) ====&lt;br /&gt;
&lt;br /&gt;
If you are in CIIRC and your IP address starts with 10.35.95.*, don&#039;t need to use port forwarding. Just use:&lt;br /&gt;
&lt;br /&gt;
 $ ssh nvidia@tx2-stud&lt;br /&gt;
&lt;br /&gt;
=== Disconnect ===&lt;br /&gt;
&lt;br /&gt;
In order to disconnect from the TX2, you first close the ssh opened through the forwarded port (by pressing Ctrl+D) and then you press &#039;~.&#039; to close the serial console ssh session. Sometimes it does not work for the first time, if this is the case you have to press Enter and input &#039;~.&#039; again.&lt;br /&gt;
&lt;br /&gt;
There is an auto power down feature, that ensures the TX2 is switched off if not used for prolonged periods in order to save energy. This is accomplished in a way that is equivalent to using:&lt;br /&gt;
 $ ssh tx2@rtime.felk.cvut.cz off&lt;br /&gt;
&lt;br /&gt;
This can cause data loss. In order to avoid that use the following command before logging out of the TX2:&lt;br /&gt;
 $ sync&lt;br /&gt;
&lt;br /&gt;
It is also advisable not to leave tasks running (e.g. by launching the &#039;screen&#039; program and then detaching) on the TX2 and logout, because the board might shut down.&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Zynq&amp;diff=4267</id>
		<title>Zynq</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Zynq&amp;diff=4267"/>
		<updated>2017-12-13T10:02:57Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page applies mostly to [http://microzed.org/product/microzed Microzed board] and to Microzed with our [https://cw.fel.cvut.cz/wiki/courses/b35apo/documentation/mz_apo/start MZ_APO extension board].&lt;br /&gt;
&lt;br /&gt;
* Linux kenrel for Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux.git&lt;br /&gt;
&lt;br /&gt;
* Configs, Makefiles etc. for Linux on Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux-build.git&lt;br /&gt;
&lt;br /&gt;
* eLinux Wiki Zynq category http://elinux.org/Category:Zynq&lt;br /&gt;
&lt;br /&gt;
* Toolchain for Debian or Ubuntu&lt;br /&gt;
&lt;br /&gt;
* [https://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf Zynq-7000 Technical Reference Manual]&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb http://debian.pengutronix.de/debian/ sid main contrib non-free&amp;quot; &amp;gt;/etc/apt/sources.list.d/pengutronix.list&lt;br /&gt;
 aptitude update&lt;br /&gt;
 aptitude install oselas.toolchain-2014.12.2-arm-cortexa8-linux-gnueabihf-gcc-4.9.2-glibc-2.20-binutils-2.24-kernel-3.16-sanitized&lt;br /&gt;
&lt;br /&gt;
Build kernel&lt;br /&gt;
&lt;br /&gt;
 mkdir zynq&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/zynq/linux-build.git&lt;br /&gt;
 cd linux-build&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
&lt;br /&gt;
Check that toolchain location matches CROSS_COMPILE variable in [http://rtime.felk.cvut.cz/gitweb/zynq/linux-build.git/blob/refs/heads/master:/build/xlnx_4.0.8-rt6/linux/GNUmakefile build/xlnx_4.0.8-rt6/linux/GNUmakefile]. Then invoke&lt;br /&gt;
&lt;br /&gt;
 cd build/xlnx_4.0.8-rt6/linux/&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
U-boot arguments for MicroZed board&lt;br /&gt;
&lt;br /&gt;
 bootargs=root=/dev/mmcblk0p2 rw console=ttyPS1,115200 earlyprintk&lt;br /&gt;
&lt;br /&gt;
Install Debian ARMhf distribution to the media on x86 host with use of chroot and qemu&lt;br /&gt;
&lt;br /&gt;
Preparation of FPGA configuration files for direct FPGA configuration by Linux or U-boot requires to prepare &amp;lt;code&amp;gt;system.bif&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 all:&lt;br /&gt;
 {&lt;br /&gt;
 system.bit&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
then &amp;lt;code&amp;gt;bootgen&amp;lt;/code&amp;gt; is used to prepare binary file&lt;br /&gt;
&lt;br /&gt;
 bootgen -image system.bif -w -process_bitstream bin&lt;br /&gt;
&lt;br /&gt;
Runtime FPGA reconfiguration&lt;br /&gt;
&lt;br /&gt;
 cat system.bit.bin &amp;gt; /dev/xdevcfg&lt;br /&gt;
&lt;br /&gt;
=== Debian Linux Install ===&lt;br /&gt;
&lt;br /&gt;
Debootstrap on x86 system&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
&lt;br /&gt;
 apt-get install binfmt-support qemu qemu-user-static debootstrap&lt;br /&gt;
&lt;br /&gt;
Create directory for target system&lt;br /&gt;
&lt;br /&gt;
 mkdir debian_armhf&lt;br /&gt;
&lt;br /&gt;
 debootstrap --arch=armhf --foreign --include=debian-keyring,mc,libc6-de,libstdc ++6,busybox,aptitude jessie debian-armhf/ ftp://ftp.cz.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
Install static version of QEMU which is able to interpret target architecture userspace programs  &lt;br /&gt;
&lt;br /&gt;
 cp /usr/bin/qemu-arm-static debian_armhf/usr/bin&lt;br /&gt;
&lt;br /&gt;
Finish the second stage of deboostrap&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf /debootstrap/debootstrap --second-stage&lt;br /&gt;
 LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf dpkg --configure -a&lt;br /&gt;
&lt;br /&gt;
=== Booting VxWorks ===&lt;br /&gt;
&lt;br /&gt;
In U-Boot:&lt;br /&gt;
&lt;br /&gt;
 dhcp&lt;br /&gt;
 tftpboot 0x1000000 /zynq/vxWorks&lt;br /&gt;
 setenv bootaddr 0x101100&lt;br /&gt;
 setenv bootdev gem(0,0)&lt;br /&gt;
 bootvx 0x1000000&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Zynq&amp;diff=4266</id>
		<title>Zynq</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Zynq&amp;diff=4266"/>
		<updated>2017-12-13T10:00:44Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Debian Linux Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page applies mostly to [http://microzed.org/product/microzed Microzed board] and to Microzed with our [https://cw.fel.cvut.cz/wiki/courses/b35apo/documentation/mz_apo/start MZ_APO extension board].&lt;br /&gt;
&lt;br /&gt;
* Linux kenrel for Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux.git&lt;br /&gt;
&lt;br /&gt;
* Configs, Makefiles etc. for Linux on Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux-build.git&lt;br /&gt;
&lt;br /&gt;
* eLinux Wiki Zynq category http://elinux.org/Category:Zynq&lt;br /&gt;
&lt;br /&gt;
* Toolchain for Debian or Ubuntu&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb http://debian.pengutronix.de/debian/ sid main contrib non-free&amp;quot; &amp;gt;/etc/apt/sources.list.d/pengutronix.list&lt;br /&gt;
 aptitude update&lt;br /&gt;
 aptitude install oselas.toolchain-2014.12.2-arm-cortexa8-linux-gnueabihf-gcc-4.9.2-glibc-2.20-binutils-2.24-kernel-3.16-sanitized&lt;br /&gt;
&lt;br /&gt;
Build kernel&lt;br /&gt;
&lt;br /&gt;
 mkdir zynq&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/zynq/linux-build.git&lt;br /&gt;
 cd linux-build&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
&lt;br /&gt;
Check that toolchain location matches CROSS_COMPILE variable in [http://rtime.felk.cvut.cz/gitweb/zynq/linux-build.git/blob/refs/heads/master:/build/xlnx_4.0.8-rt6/linux/GNUmakefile build/xlnx_4.0.8-rt6/linux/GNUmakefile]. Then invoke&lt;br /&gt;
&lt;br /&gt;
 cd build/xlnx_4.0.8-rt6/linux/&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
U-boot arguments for MicroZed board&lt;br /&gt;
&lt;br /&gt;
 bootargs=root=/dev/mmcblk0p2 rw console=ttyPS1,115200 earlyprintk&lt;br /&gt;
&lt;br /&gt;
Install Debian ARMhf distribution to the media on x86 host with use of chroot and qemu&lt;br /&gt;
&lt;br /&gt;
Preparation of FPGA configuration files for direct FPGA configuration by Linux or U-boot requires to prepare &amp;lt;code&amp;gt;system.bif&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 all:&lt;br /&gt;
 {&lt;br /&gt;
 system.bit&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
then &amp;lt;code&amp;gt;bootgen&amp;lt;/code&amp;gt; is used to prepare binary file&lt;br /&gt;
&lt;br /&gt;
 bootgen -image system.bif -w -process_bitstream bin&lt;br /&gt;
&lt;br /&gt;
Runtime FPGA reconfiguration&lt;br /&gt;
&lt;br /&gt;
 cat system.bit.bin &amp;gt; /dev/xdevcfg&lt;br /&gt;
&lt;br /&gt;
=== Debian Linux Install ===&lt;br /&gt;
&lt;br /&gt;
Debootstrap on x86 system&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
&lt;br /&gt;
 apt-get install binfmt-support qemu qemu-user-static debootstrap&lt;br /&gt;
&lt;br /&gt;
Create directory for target system&lt;br /&gt;
&lt;br /&gt;
 mkdir debian_armhf&lt;br /&gt;
&lt;br /&gt;
 debootstrap --arch=armhf --foreign --include=debian-keyring,mc,libc6-de,libstdc ++6,busybox,aptitude jessie debian-armhf/ ftp://ftp.cz.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
Install static version of QEMU which is able to interpret target architecture userspace programs  &lt;br /&gt;
&lt;br /&gt;
 cp /usr/bin/qemu-arm-static debian_armhf/usr/bin&lt;br /&gt;
&lt;br /&gt;
Finish the second stage of deboostrap&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf /debootstrap/debootstrap --second-stage&lt;br /&gt;
 LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf dpkg --configure -a&lt;br /&gt;
&lt;br /&gt;
=== Booting VxWorks ===&lt;br /&gt;
&lt;br /&gt;
In U-Boot:&lt;br /&gt;
&lt;br /&gt;
 dhcp&lt;br /&gt;
 tftpboot 0x1000000 /zynq/vxWorks&lt;br /&gt;
 setenv bootaddr 0x101100&lt;br /&gt;
 setenv bootdev gem(0,0)&lt;br /&gt;
 bootvx 0x1000000&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Zynq&amp;diff=4265</id>
		<title>Zynq</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Zynq&amp;diff=4265"/>
		<updated>2017-12-13T09:59:04Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page applies mostly to [http://microzed.org/product/microzed Microzed board] and to Microzed with our [https://cw.fel.cvut.cz/wiki/courses/b35apo/documentation/mz_apo/start MZ_APO extension board].&lt;br /&gt;
&lt;br /&gt;
* Linux kenrel for Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux.git&lt;br /&gt;
&lt;br /&gt;
* Configs, Makefiles etc. for Linux on Xilinx Zynq http://rtime.felk.cvut.cz/gitweb/zynq/linux-build.git&lt;br /&gt;
&lt;br /&gt;
* eLinux Wiki Zynq category http://elinux.org/Category:Zynq&lt;br /&gt;
&lt;br /&gt;
* Toolchain for Debian or Ubuntu&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;deb http://debian.pengutronix.de/debian/ sid main contrib non-free&amp;quot; &amp;gt;/etc/apt/sources.list.d/pengutronix.list&lt;br /&gt;
 aptitude update&lt;br /&gt;
 aptitude install oselas.toolchain-2014.12.2-arm-cortexa8-linux-gnueabihf-gcc-4.9.2-glibc-2.20-binutils-2.24-kernel-3.16-sanitized&lt;br /&gt;
&lt;br /&gt;
Build kernel&lt;br /&gt;
&lt;br /&gt;
 mkdir zynq&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/zynq/linux-build.git&lt;br /&gt;
 cd linux-build&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
&lt;br /&gt;
Check that toolchain location matches CROSS_COMPILE variable in [http://rtime.felk.cvut.cz/gitweb/zynq/linux-build.git/blob/refs/heads/master:/build/xlnx_4.0.8-rt6/linux/GNUmakefile build/xlnx_4.0.8-rt6/linux/GNUmakefile]. Then invoke&lt;br /&gt;
&lt;br /&gt;
 cd build/xlnx_4.0.8-rt6/linux/&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
U-boot arguments for MicroZed board&lt;br /&gt;
&lt;br /&gt;
 bootargs=root=/dev/mmcblk0p2 rw console=ttyPS1,115200 earlyprintk&lt;br /&gt;
&lt;br /&gt;
Install Debian ARMhf distribution to the media on x86 host with use of chroot and qemu&lt;br /&gt;
&lt;br /&gt;
Preparation of FPGA configuration files for direct FPGA configuration by Linux or U-boot requires to prepare &amp;lt;code&amp;gt;system.bif&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 all:&lt;br /&gt;
 {&lt;br /&gt;
 system.bit&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
then &amp;lt;code&amp;gt;bootgen&amp;lt;/code&amp;gt; is used to prepare binary file&lt;br /&gt;
&lt;br /&gt;
 bootgen -image system.bif -w -process_bitstream bin&lt;br /&gt;
&lt;br /&gt;
Runtime FPGA reconfiguration&lt;br /&gt;
&lt;br /&gt;
 cat system.bit.bin &amp;gt; /dev/xdevcfg&lt;br /&gt;
&lt;br /&gt;
=== Debian Linux Install ===&lt;br /&gt;
&lt;br /&gt;
Debootstrap on x86 system&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
&lt;br /&gt;
 apt-get install binfmt-support qemu qemu-user-static debootstrap&lt;br /&gt;
&lt;br /&gt;
Create directory for target system&lt;br /&gt;
&lt;br /&gt;
 mkdir debian_armhf&lt;br /&gt;
&lt;br /&gt;
 debootstrap --arch=armhf --foreign --include=debian-keyring,mc,libc6-de,libstdc ++6,busybox,aptitude jessie debian-armhf/ ftp://ftp.cz.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
Install static version of QEMU which is able to interpret target architecture userspace programs  &lt;br /&gt;
&lt;br /&gt;
 cp /usr/bin/qemu-arm-static debian_armhf/usr/bin&lt;br /&gt;
&lt;br /&gt;
Finish the second stage of deboostrap&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf /debootstrap/debootstrap --second-stage&lt;br /&gt;
 LC_ALL=C LANGUAGE=C LANG=C chroot debian_armhf dpkg --configure -a&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Template:Main_Page/Hardware&amp;diff=4254</id>
		<title>Template:Main Page/Hardware</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Template:Main_Page/Hardware&amp;diff=4254"/>
		<updated>2017-11-16T09:58:35Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[A0B36APO Virtual Hardware]]&lt;br /&gt;
* [[Alpha PWS500a]]&lt;br /&gt;
* [[AT91SAM7X256]]&lt;br /&gt;
* [[Boa5200]]&lt;br /&gt;
* [[ColdFire_DEMO52233 | ColdFire DEMO52233 (Board from Freescale)]] &lt;br /&gt;
* [[ColdFire_MCF548x | ColdFire MCF548x (resources and experiments)]] &lt;br /&gt;
* [[Dell XPS12]]&lt;br /&gt;
* [[FPGA]]&lt;br /&gt;
* [[FTDI2232 JTAG]]&lt;br /&gt;
* [[H8S/2638]]&lt;br /&gt;
* [[HC12 | Motorola HC12]]&lt;br /&gt;
* [[Humusoft MF6xx]]&lt;br /&gt;
* [[LX CPU1]]&lt;br /&gt;
* [[LPC21xx]]&lt;br /&gt;
* [[MIDAM MPC5200 DB1]] (Mikroklima)&lt;br /&gt;
* [[ML403 | ML403 Xilinx Virtex-4]]&lt;br /&gt;
* [[MSP430F5529 Launchpad]]&lt;br /&gt;
* [[NetFPGA]]&lt;br /&gt;
* [[NVIDIA_Jetson_TX1 | NVIDIA Jetson TX1]]&lt;br /&gt;
* [[NVIDIA_Jetson_TX2 | NVIDIA Jetson TX2]]&lt;br /&gt;
* [[OJ10 - welding robot]]&lt;br /&gt;
* [[PiMX1]] i.MX1 processor based board&lt;br /&gt;
* [[Raspberry Pi]] (RPi, BCM2835)&lt;br /&gt;
* [[STM32 VLDISCOVERY]]&lt;br /&gt;
* [[TC1798|TC1798 - Infineon AUDO MAX]]&lt;br /&gt;
* [[TMS570LS3137]]&lt;br /&gt;
* [[USB2CAN 8devices]]&lt;br /&gt;
* [[Wireless_Sensor_Networks | Wireless Sensor Networks (WSNs)]]&lt;br /&gt;
* [[XC2S100-kit|Xilinx Spartan II XC2S100 Demo Board]]&lt;br /&gt;
* [[XC2V1000-kit|Xilinx Virtex II XC2V1000 Demo Board]]&lt;br /&gt;
* [[Zynq|Xilinx Zynq-7000]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4228</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4228"/>
		<updated>2016-02-29T16:02:56Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Permissions to automatic repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways. Note that under Windows, methods 1 and 2 only work if [[Media:git-plink.jpg|OpenSSH]] has been selected during Git installation.&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (login or email) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
Such repository is by default accessible only to the creator. If you want this repository to be public, run&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «login»/«whatever» + READERS @all&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for public repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
 git clone http://rtime.felk.cvut.cz/git/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on [https://rtime.felk.cvut.cz/gitweb/ gitweb], run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=USB2CAN_8devices&amp;diff=4207</id>
		<title>USB2CAN 8devices</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=USB2CAN_8devices&amp;diff=4207"/>
		<updated>2014-12-11T13:47:24Z</updated>

		<summary type="html">&lt;p&gt;Sojka: Created page with &amp;quot;* http://www.8devices.com/usb2can   == Use under Linux ==   ip link set can0 up type can bitrate 500000  candump can0  cansend can0 123#45&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* http://www.8devices.com/usb2can&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use under Linux ==&lt;br /&gt;
&lt;br /&gt;
 ip link set can0 up type can bitrate 500000&lt;br /&gt;
 candump can0&lt;br /&gt;
 cansend can0 123#45&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Template:Main_Page/Hardware&amp;diff=4206</id>
		<title>Template:Main Page/Hardware</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Template:Main_Page/Hardware&amp;diff=4206"/>
		<updated>2014-12-11T13:46:04Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[A0B36APO Virtual Hardware]]&lt;br /&gt;
* [[Alpha PWS500a]]&lt;br /&gt;
* [[AT91SAM7X256]]&lt;br /&gt;
* [[Boa5200]]&lt;br /&gt;
* [[ColdFire_DEMO52233 | ColdFire DEMO52233 (Board from Freescale)]] &lt;br /&gt;
* [[ColdFire_MCF548x | ColdFire MCF548x (resources and experiments)]] &lt;br /&gt;
* [[Dell XPS12]]&lt;br /&gt;
* [[FPGA]]&lt;br /&gt;
* [[FTDI2232 JTAG]]&lt;br /&gt;
* [[H8S/2638]]&lt;br /&gt;
* [[HC12 | Motorola HC12]]&lt;br /&gt;
* [[Humusoft MF6xx]]&lt;br /&gt;
* [[LX CPU1]]&lt;br /&gt;
* [[LPC21xx]]&lt;br /&gt;
* [[MIDAM MPC5200 DB1]] (Mikroklima)&lt;br /&gt;
* [[ML403 | ML403 Xilinx Virtex-4]]&lt;br /&gt;
* [[MSP430F5529 Launchpad]]&lt;br /&gt;
* [[OJ10 - welding robot]]&lt;br /&gt;
* [[PiMX1]] i.MX1 processor based board&lt;br /&gt;
* [[Raspberry Pi]] (RPi, BCM2835)&lt;br /&gt;
* [[STM32 VLDISCOVERY]]&lt;br /&gt;
* [[TC1798|TC1798 - Infineon AUDO MAX]]&lt;br /&gt;
* [[TMS570LS3137]]&lt;br /&gt;
* [[USB2CAN 8devices]]&lt;br /&gt;
* [[Wireless_Sensor_Networks | Wireless Sensor Networks (WSNs)]]&lt;br /&gt;
* [[XC2S100-kit|Xilinx Spartan II XC2S100 Demo Board]]&lt;br /&gt;
* [[XC2V1000-kit|Xilinx Virtex II XC2V1000 Demo Board]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4192</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4192"/>
		<updated>2014-08-14T19:03:19Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* SSH key creation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways. Note that under Windows, methods 1 and 2 only work if [[Media:git-plink.jpg|OpenSSH]] has been selected during Git installation.&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (login or email) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
Such repository is by default accessible only to the creator. If you want this repository to be public, run&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «login»/«whatever» + READERS @all&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for public repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
 git clone http://rtime.felk.cvut.cz/git/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4190</id>
		<title>TMS570LS3137</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4190"/>
		<updated>2014-08-12T15:43:22Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* NHET Assembler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TMS570LS31x HDK Kit.jpg|right|300px]]&lt;br /&gt;
[[File:Rpp.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://www.ti.com/product/tms570ls3137 Main TI page] containing datasheets.&lt;br /&gt;
* [http://e2e.ti.com/support/microcontrollers/hercules/f/312.aspx TI TMS570 related forum]&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:TMS570 TMS570 Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration LwIP integration]&lt;br /&gt;
&lt;br /&gt;
* [[Media:Studim_procesoru.pdf]] Notes from documentation (in Czech language)&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Tools recommended by TI for programming of this microcontroller:&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5 Code Composer Studio] (runs on Win and Linux).&lt;br /&gt;
* [http://www.ti.com/tool/halcogen HalCoGen] (for Windows only, but also runs quite well in Wine).&lt;br /&gt;
** [[TMS570LS3137 HalCoGen Bugs|TMS570LS3137 HalCoGen Bugs]]&lt;br /&gt;
&lt;br /&gt;
=== CCS5.3.0.00090_linux in Ubuntu 12.04 64bits ===&lt;br /&gt;
&lt;br /&gt;
After installation the application can be run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/&lt;br /&gt;
&lt;br /&gt;
./ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application fails to start is because CCS5 is a 32bits application a thus requires 32bits libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install libgtk2.0-0:i386 libxtst6:i386  gtk2-engines-pixbuf:i386 libcanberra-gtk-module:i386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application crashes with a segmentation fault do:&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/ccsv5/eclipse/plugins/com.ti.ccstudio.branding_&amp;lt;your version number&amp;gt;/plugin_customization.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And change key &amp;lt;code&amp;gt;org.eclipse.ui/showIntro&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;FREE License - for use with XDS100 JTAG Emulators&amp;quot; on the licensing options.&lt;br /&gt;
&lt;br /&gt;
You may create a symbolic link and a desktop entry:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo ln -s &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/ccstudio /usr/local/bin/ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And put in &amp;lt;code&amp;gt;~/.local/share/applications/ccs5.desktop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Type=Application&lt;br /&gt;
Terminal=false&lt;br /&gt;
Exec=ccstudio&lt;br /&gt;
Name=Code Composer Studio&lt;br /&gt;
Icon=/usr/local/ti/ccsv5/eclipse/icon.xpm&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CCS5.5.0.00077_windows on Windows 7x64 ===&lt;br /&gt;
&lt;br /&gt;
Download ccs_setup_5.5.0.00077.exe from http://ti.com and run.&lt;br /&gt;
&lt;br /&gt;
Choose component:&lt;br /&gt;
* Safety MCUs&lt;br /&gt;
&lt;br /&gt;
Choose Compiler tools:&lt;br /&gt;
* TI ARM Compiler Tools&lt;br /&gt;
* TI Documentation&lt;br /&gt;
&lt;br /&gt;
Coose JTAG Emulator Support&lt;br /&gt;
* XDS100 Class Emulator Support&lt;br /&gt;
&lt;br /&gt;
=== NHET Assembler ===&lt;br /&gt;
&lt;br /&gt;
http://www.ti.com/tool/nhet-assembler&lt;br /&gt;
&lt;br /&gt;
Installer doesn&#039;t work under Wine (Debian unstable, wine-1.6.2) even after installing the following packages, which wine complained about: &amp;lt;tt&amp;gt;apt-get install p11-kit-modules:i386 gnome-keyring:i386&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it is installed under windows, the resulting &#039;&#039;hetp.exe&#039;&#039; runs under Wine correctly.&lt;br /&gt;
&lt;br /&gt;
== FreeRTOS ==&lt;br /&gt;
Installation is easy, simply create new project in HalCoGen &lt;br /&gt;
&lt;br /&gt;
* New -&amp;gt; Project&lt;br /&gt;
* Select Family:TMS570LS31x&lt;br /&gt;
* Select Device: TMS570LS3137ZWT_FREERTOS&lt;br /&gt;
&lt;br /&gt;
All necessary files will be added into project automaticaly.&lt;br /&gt;
&lt;br /&gt;
== Matlab/Simulink Embedded Coder target ==&lt;br /&gt;
We have implemented support for Matlab/Simulink which allows to use&lt;br /&gt;
designed peripherals support libraries from Simulink model design.&lt;br /&gt;
&lt;br /&gt;
For further information look at separate pages for the target&lt;br /&gt;
&lt;br /&gt;
http://rtime.felk.cvut.cz/rpp-tms570/&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Developement board we are using: [http://processors.wiki.ti.com/index.php?title=TMS570LS31x_HDK_Kit TMS570LS31x_HDK_Kit]&lt;br /&gt;
&lt;br /&gt;
=== SDRAM setup ===&lt;br /&gt;
&lt;br /&gt;
* Simple code to setup SDRAM for use from OpenOCD and others code loaders&lt;br /&gt;
** https://github.com/hornmich/tms570ls3137-hdk-sdram&lt;br /&gt;
&lt;br /&gt;
Setup of bit 31 in GPREG1 is required ele EMIF does not work as expected.&lt;br /&gt;
From UM 4.3.3 Control of Special Multiplexed Options: Any application that requires the EMIF functionality&lt;br /&gt;
must set GPREG1[31]. This allows these 8 EMIF module outputs to be driven on to the assigned balls.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemREG1-&amp;gt;GPREG1 |= 0x80000000;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Parameter !! Value for HDK / Conn test !! Value for RPP !! Notice&lt;br /&gt;
|-&lt;br /&gt;
| Chip	|| IS42S16400F-7BL	|| IS45S16320	|| &lt;br /&gt;
|-&lt;br /&gt;
| banks	|| 4 (2 bits)	|| 4 (2 bits)	|| &lt;br /&gt;
|-&lt;br /&gt;
| rows	|| 4096 (12 bits)	|| 8192 (13 bits)	|| &lt;br /&gt;
|-&lt;br /&gt;
| columns	|| 256 (8 bit)	|| 1024 (10 bits)	|| &lt;br /&gt;
|-&lt;br /&gt;
| CL	|| 2/3	|| 2/3	|| &lt;br /&gt;
|-&lt;br /&gt;
| refresh [ms]	|| 	|| 64 / 16 @ 80 °C || &lt;br /&gt;
|-&lt;br /&gt;
| self. ref. exit [ns]	|| 	|| 67	|| &lt;br /&gt;
|-&lt;br /&gt;
| HCLK [MHz]	|| 160 / 160	|| 160	|| &lt;br /&gt;
|-&lt;br /&gt;
| EMIF Clock / VCLK3	|| 80 / 80??	|| 80	|| &lt;br /&gt;
|-&lt;br /&gt;
! CLK2CNTL	!! 	!! 	!!  Clock 2 Control Register&lt;br /&gt;
|-&lt;br /&gt;
| VCLK3R (3-0)	|| 2-1 / 4-1??	|| 2-1	|| HCKL to EMIF VCLK3 ration&lt;br /&gt;
|-&lt;br /&gt;
! SDTIMR	!! 	!! 	!! SDRAM Timing Register&lt;br /&gt;
|-&lt;br /&gt;
| TRF_C (31-27)	|| 6-1 / 6	|| 9-1	|| REFR to REFR&lt;br /&gt;
|-&lt;br /&gt;
| T_RP (26-24)	|| 2-1 / 1	|| 3-1	|| PRE to ACTIV or REFR&lt;br /&gt;
|-&lt;br /&gt;
| (23)	|| 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
| T_RCD (22-20)	|| 2-1 / 1 	|| 3-1	|| ACTIV to RD/WR&lt;br /&gt;
|-&lt;br /&gt;
| (19)	|| 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
| T_WR (18-16)	|| 2-1 / 2	|| 2-1	|| WRITE to PRE&lt;br /&gt;
|-&lt;br /&gt;
| T_RAS (15-12)	|| 4-1 / 4	|| 6-1	|| ACTIV to PRE&lt;br /&gt;
|-&lt;br /&gt;
| T_RC (11-8)	|| 6-1 / 3	|| 9-1	|| ACTIV to ACTIV&lt;br /&gt;
|-&lt;br /&gt;
| (7)	|| 0 / 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
| T_RRD (6-4)	|| 2-1 / 1	|| 2-1	|| ACTIV to ACTIV other bank&lt;br /&gt;
|-&lt;br /&gt;
| (3)	|| 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
! SDSRETR 	!! 	!! 	!! Self Refresh Exit Timing Register&lt;br /&gt;
|-&lt;br /&gt;
| T_XS	(XSR)	|| 5 / 6 	|| 5+3-1	|| &lt;br /&gt;
|-&lt;br /&gt;
! SDRCR	!! 	!! 	!! &lt;br /&gt;
|-&lt;br /&gt;
| RR (12-0)	|| 312 / 1250	|| 156	|| 80e6 * 16e-3 / 8192 =&amp;gt; less or equal to 156&lt;br /&gt;
|-&lt;br /&gt;
! SDCR	!! 	!! 	!!  SDRAM Configuration Register&lt;br /&gt;
|-&lt;br /&gt;
| SR (31)	|| 0 / 0	|| 0	|| self refresh mode&lt;br /&gt;
|-&lt;br /&gt;
| PD (30)	|| 0 / 0	|| 0	|| power down&lt;br /&gt;
|-&lt;br /&gt;
| PDWR (29)	|| 0 / 0	|| 0	|| refresh in PD&lt;br /&gt;
|-&lt;br /&gt;
| NM (14)	|| 1 / 1	|| 1	|| narrow mode&lt;br /&gt;
|-&lt;br /&gt;
| CL (11-9)	|| 2 / 3	|| 3	|| CAS latency&lt;br /&gt;
|-&lt;br /&gt;
| BIT11_9LOCK (8)	|| 1 / 1	|| 1	|| CAS latency lock&lt;br /&gt;
|-&lt;br /&gt;
| IBANK (6-4)	|| 2 / 2	|| 2 (4 banks)	|| banks&lt;br /&gt;
|-&lt;br /&gt;
| PAGESIZE (2-0)	|| 0 / 0	|| 2 (10 bit)	|| counted in elements&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===SCI port===&lt;br /&gt;
We have connected serial port on Expansion Connector P3 (see HDK documentation) pin W3 and N2. TX is connected to N2 pin and RX to W3 pin. This brings us consequences as both pins are mutexed.&lt;br /&gt;
&lt;br /&gt;
When you want to use SCI, you have to set few things in HalCoGen.&lt;br /&gt;
* Enable driver SCI (not LIN or SCI2 driver)&lt;br /&gt;
* In tab PINMUX select SCI and check conflict with other drivers&lt;br /&gt;
* In tab SCI choose and set data format.&lt;br /&gt;
When you want use interrupts in adittion, do the following:&lt;br /&gt;
* In tab VIM Channel 64-95 select interrupt 64: SCI level0 interrupt for high level interrupt or 74: SCI Level1 for low level interrupt&lt;br /&gt;
* In SCI tab enable TX and/or RX interrupt and select High or Low.&lt;br /&gt;
* In your code enable IRQ using _enable_IRQ() function, than enable notification using sciEnableNotification() function.&lt;br /&gt;
* Implement notification callback sciNotification() in notificatin.c&lt;br /&gt;
&lt;br /&gt;
In your code don&#039;t forget to initialize sci using sciInit() function.&lt;br /&gt;
&lt;br /&gt;
== Debug over JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== XDS100v2 JTAG Interface from Ti ===&lt;br /&gt;
&lt;br /&gt;
The XDS100v2 is equipped with Ti specific 14-pin JTAG connector.&lt;br /&gt;
Next cable wires placement allows to use it with TMS570LS31x_HDK_Kit&lt;br /&gt;
or other device with ARM JTAG pin placement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 14 pin Ti&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 20 pin ARM&lt;br /&gt;
|-&lt;br /&gt;
| 1	|| TMS	|| TMS	|| 7&lt;br /&gt;
|-&lt;br /&gt;
| 2	|| TRST	|| NTRST	|| 3&lt;br /&gt;
|-&lt;br /&gt;
| 3	|| TDI	|| TDI	|| 5&lt;br /&gt;
|-&lt;br /&gt;
| 4	|| DIS	|| GND	|| 6&lt;br /&gt;
|-&lt;br /&gt;
| 5	|| VD	|| VREF	|| 1 (2)&lt;br /&gt;
|-&lt;br /&gt;
| 6	|| NC || || --&lt;br /&gt;
|-&lt;br /&gt;
| 7	|| TDO	|| TDO	|| 13&lt;br /&gt;
|-&lt;br /&gt;
| 8	|| GND	|| GND	|| (4)&lt;br /&gt;
|-&lt;br /&gt;
| 9	|| RTCK	|| RTCK	|| 11&lt;br /&gt;
|-&lt;br /&gt;
| 10	|| GND	|| GND	|| 8 (12)&lt;br /&gt;
|-&lt;br /&gt;
| 11	|| TCK	|| TCK	|| 9&lt;br /&gt;
|-&lt;br /&gt;
| 12	|| GND	|| GND	|| 10 (14)&lt;br /&gt;
|-&lt;br /&gt;
| 13	|| EMU0	|| 	||&lt;br /&gt;
|-&lt;br /&gt;
| 14	|| EMU1	|| 	|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setup XDS100v2 on Linux ===&lt;br /&gt;
&lt;br /&gt;
By default the device (if nothing more connected then &amp;lt;code&amp;gt;/dev/ttyUSB0&amp;lt;/code&amp;gt;) is added with permissions 664 with &lt;br /&gt;
&amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; as user and group. You access the device we need write access for current user. To do so we need &lt;br /&gt;
to create a new udev rules:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/udev/rules.d/45-pes-rpp.rules&lt;br /&gt;
&lt;br /&gt;
And add line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0403&amp;quot;, ATTR{idProduct}==&amp;quot;a6d0&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then reload udev rules with:&lt;br /&gt;
&lt;br /&gt;
 sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
You can check device properties like &amp;lt;code&amp;gt;idVendor&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;idProduct&amp;lt;/code&amp;gt; with the following command:&lt;br /&gt;
&lt;br /&gt;
 udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)&lt;br /&gt;
&lt;br /&gt;
== RS232 communication setup ==&lt;br /&gt;
&lt;br /&gt;
Connect serial communication pins to computer&#039;s RS232 port or to USB through a FTDI adapter. If using RS232 port the&lt;br /&gt;
device should be &amp;lt;code&amp;gt;/dev/ttyS0&amp;lt;/code&amp;gt;, if using FTDI it should be something like &amp;lt;code&amp;gt;/dev/ttyUSBx&amp;lt;/code&amp;gt; &lt;br /&gt;
(check &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt; for details).&lt;br /&gt;
&lt;br /&gt;
Make sure minicom or similar terminal program is installed:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Then configure minicon:&lt;br /&gt;
&lt;br /&gt;
 sudo minicom -s&lt;br /&gt;
&lt;br /&gt;
And use the following configuration &amp;quot;9600 81N&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Serial Device         : /dev/ttyS0&lt;br /&gt;
 Lockfile Location     : /var/lock&lt;br /&gt;
 Callin Program        :&lt;br /&gt;
 Callout Program       :&lt;br /&gt;
 Bps/Par/Bits          : 9600 8N1&lt;br /&gt;
 Hardware Flow Control : No&lt;br /&gt;
 Software Flow Control : No&lt;br /&gt;
&lt;br /&gt;
Start terminal session and type &amp;lt;code&amp;gt;HELP&amp;lt;/code&amp;gt; command to test communication.&lt;br /&gt;
&lt;br /&gt;
== GCC build for Cortex-R4 Big-Endian ==&lt;br /&gt;
&lt;br /&gt;
GCC options &amp;lt;pre&amp;gt;-mbig-endian -march=armv7-r -mthumb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GCC options with hard float &amp;lt;pre&amp;gt;-mbig-endian -mthumb -march=armv7-r -mfpu=vfpv3-d16 -mfloat-abi=hard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GCC multilib options&lt;br /&gt;
&lt;br /&gt;
 armv7-r/thumb2/be;@mbig-endian@mthumb@march=armv7-r&lt;br /&gt;
 armv7-r/thumb2/vfpv3/be;@mbig-endian@mthumb@mfloat-abi=hard@march=armv7-r@mfpu=vfpv3-d16&lt;br /&gt;
&lt;br /&gt;
* https://answers.launchpad.net/gcc-arm-embedded/+question/189066&lt;br /&gt;
&lt;br /&gt;
* Patch to enable GCC and Newlib with big-endian support for RTEMS proposal&lt;br /&gt;
** http://lists.rtems.org/pipermail/devel/2014-June/007232.html&lt;br /&gt;
** Toolchain for RTEMS port to Cortex-R4F big-endian (TMS570LS3137)&lt;br /&gt;
&lt;br /&gt;
* Sebastian Huber&#039;s version to push upstream &lt;br /&gt;
** http://lists.rtems.org/pipermail/devel/2014-July/007244.html&lt;br /&gt;
** RTEMS: Add multilibs for ARM&lt;br /&gt;
&lt;br /&gt;
* Newlib correction&lt;br /&gt;
** http://lists.rtems.org/pipermail/devel/2014-July/007251.html&lt;br /&gt;
** Remaining arch issue in Newlib optimized ARM ASM memchr for Cortex-R&lt;br /&gt;
&lt;br /&gt;
== RTEMS Cortex-R4 TMS570 BSP Deveopment (GSoC 2014 project) ==&lt;br /&gt;
&lt;br /&gt;
* http://wiki.rtems.org/wiki/index.php/RTEMSPortToCortexR4&lt;br /&gt;
* http://github.com/AoLaD/rtems/tree/tms570-bsp&lt;br /&gt;
* http://github.com/AoLaD/rtems-tms570-utils&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
* Management: [http://dce.felk.cvut.cz/hanzalek/ Prof. Zdeněk Hanzálek]&lt;br /&gt;
* Technical: [http://cmp.felk.cvut.cz/~pisa/ Pavel Píša, Ph.D.]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4189</id>
		<title>TMS570LS3137</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4189"/>
		<updated>2014-08-12T15:20:16Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* CCS5.5.0.00077_windows on Windows 7x64 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TMS570LS31x HDK Kit.jpg|right|300px]]&lt;br /&gt;
[[File:Rpp.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://www.ti.com/product/tms570ls3137 Main TI page] containing datasheets.&lt;br /&gt;
* [http://e2e.ti.com/support/microcontrollers/hercules/f/312.aspx TI TMS570 related forum]&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:TMS570 TMS570 Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration LwIP integration]&lt;br /&gt;
&lt;br /&gt;
* [[Media:Studim_procesoru.pdf]] Notes from documentation (in Czech language)&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Tools recommended by TI for programming of this microcontroller:&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5 Code Composer Studio] (runs on Win and Linux).&lt;br /&gt;
* [http://www.ti.com/tool/halcogen HalCoGen] (for Windows only, but also runs quite well in Wine).&lt;br /&gt;
** [[TMS570LS3137 HalCoGen Bugs|TMS570LS3137 HalCoGen Bugs]]&lt;br /&gt;
&lt;br /&gt;
=== CCS5.3.0.00090_linux in Ubuntu 12.04 64bits ===&lt;br /&gt;
&lt;br /&gt;
After installation the application can be run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/&lt;br /&gt;
&lt;br /&gt;
./ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application fails to start is because CCS5 is a 32bits application a thus requires 32bits libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install libgtk2.0-0:i386 libxtst6:i386  gtk2-engines-pixbuf:i386 libcanberra-gtk-module:i386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application crashes with a segmentation fault do:&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/ccsv5/eclipse/plugins/com.ti.ccstudio.branding_&amp;lt;your version number&amp;gt;/plugin_customization.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And change key &amp;lt;code&amp;gt;org.eclipse.ui/showIntro&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;FREE License - for use with XDS100 JTAG Emulators&amp;quot; on the licensing options.&lt;br /&gt;
&lt;br /&gt;
You may create a symbolic link and a desktop entry:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo ln -s &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/ccstudio /usr/local/bin/ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And put in &amp;lt;code&amp;gt;~/.local/share/applications/ccs5.desktop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Type=Application&lt;br /&gt;
Terminal=false&lt;br /&gt;
Exec=ccstudio&lt;br /&gt;
Name=Code Composer Studio&lt;br /&gt;
Icon=/usr/local/ti/ccsv5/eclipse/icon.xpm&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CCS5.5.0.00077_windows on Windows 7x64 ===&lt;br /&gt;
&lt;br /&gt;
Download ccs_setup_5.5.0.00077.exe from http://ti.com and run.&lt;br /&gt;
&lt;br /&gt;
Choose component:&lt;br /&gt;
* Safety MCUs&lt;br /&gt;
&lt;br /&gt;
Choose Compiler tools:&lt;br /&gt;
* TI ARM Compiler Tools&lt;br /&gt;
* TI Documentation&lt;br /&gt;
&lt;br /&gt;
Coose JTAG Emulator Support&lt;br /&gt;
* XDS100 Class Emulator Support&lt;br /&gt;
&lt;br /&gt;
=== NHET Assembler ===&lt;br /&gt;
&lt;br /&gt;
http://www.ti.com/tool/nhet-assembler&lt;br /&gt;
&lt;br /&gt;
It doesn&#039;t work on Wine (Debian unstable, wine-1.6.2) even after installing the following packages, which wine complained about:&lt;br /&gt;
&lt;br /&gt;
 apt-get install p11-kit-modules:i386 gnome-keyring:i386&lt;br /&gt;
&lt;br /&gt;
== FreeRTOS ==&lt;br /&gt;
Installation is easy, simply create new project in HalCoGen &lt;br /&gt;
&lt;br /&gt;
* New -&amp;gt; Project&lt;br /&gt;
* Select Family:TMS570LS31x&lt;br /&gt;
* Select Device: TMS570LS3137ZWT_FREERTOS&lt;br /&gt;
&lt;br /&gt;
All necessary files will be added into project automaticaly.&lt;br /&gt;
&lt;br /&gt;
== Matlab/Simulink Embedded Coder target ==&lt;br /&gt;
We have implemented support for Matlab/Simulink which allows to use&lt;br /&gt;
designed peripherals support libraries from Simulink model design.&lt;br /&gt;
&lt;br /&gt;
For further information look at separate pages for the target&lt;br /&gt;
&lt;br /&gt;
http://rtime.felk.cvut.cz/rpp-tms570/&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Developement board we are using: [http://processors.wiki.ti.com/index.php?title=TMS570LS31x_HDK_Kit TMS570LS31x_HDK_Kit]&lt;br /&gt;
&lt;br /&gt;
=== SDRAM setup ===&lt;br /&gt;
&lt;br /&gt;
* Simple code to setup SDRAM for use from OpenOCD and others code loaders&lt;br /&gt;
** https://github.com/hornmich/tms570ls3137-hdk-sdram&lt;br /&gt;
&lt;br /&gt;
Setup of bit 31 in GPREG1 is required ele EMIF does not work as expected.&lt;br /&gt;
From UM 4.3.3 Control of Special Multiplexed Options: Any application that requires the EMIF functionality&lt;br /&gt;
must set GPREG1[31]. This allows these 8 EMIF module outputs to be driven on to the assigned balls.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemREG1-&amp;gt;GPREG1 |= 0x80000000;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Parameter !! Value for HDK / Conn test !! Value for RPP !! Notice&lt;br /&gt;
|-&lt;br /&gt;
| Chip	|| IS42S16400F-7BL	|| IS45S16320	|| &lt;br /&gt;
|-&lt;br /&gt;
| banks	|| 4 (2 bits)	|| 4 (2 bits)	|| &lt;br /&gt;
|-&lt;br /&gt;
| rows	|| 4096 (12 bits)	|| 8192 (13 bits)	|| &lt;br /&gt;
|-&lt;br /&gt;
| columns	|| 256 (8 bit)	|| 1024 (10 bits)	|| &lt;br /&gt;
|-&lt;br /&gt;
| CL	|| 2/3	|| 2/3	|| &lt;br /&gt;
|-&lt;br /&gt;
| refresh [ms]	|| 	|| 64 / 16 @ 80 °C || &lt;br /&gt;
|-&lt;br /&gt;
| self. ref. exit [ns]	|| 	|| 67	|| &lt;br /&gt;
|-&lt;br /&gt;
| HCLK [MHz]	|| 160 / 160	|| 160	|| &lt;br /&gt;
|-&lt;br /&gt;
| EMIF Clock / VCLK3	|| 80 / 80??	|| 80	|| &lt;br /&gt;
|-&lt;br /&gt;
! CLK2CNTL	!! 	!! 	!!  Clock 2 Control Register&lt;br /&gt;
|-&lt;br /&gt;
| VCLK3R (3-0)	|| 2-1 / 4-1??	|| 2-1	|| HCKL to EMIF VCLK3 ration&lt;br /&gt;
|-&lt;br /&gt;
! SDTIMR	!! 	!! 	!! SDRAM Timing Register&lt;br /&gt;
|-&lt;br /&gt;
| TRF_C (31-27)	|| 6-1 / 6	|| 9-1	|| REFR to REFR&lt;br /&gt;
|-&lt;br /&gt;
| T_RP (26-24)	|| 2-1 / 1	|| 3-1	|| PRE to ACTIV or REFR&lt;br /&gt;
|-&lt;br /&gt;
| (23)	|| 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
| T_RCD (22-20)	|| 2-1 / 1 	|| 3-1	|| ACTIV to RD/WR&lt;br /&gt;
|-&lt;br /&gt;
| (19)	|| 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
| T_WR (18-16)	|| 2-1 / 2	|| 2-1	|| WRITE to PRE&lt;br /&gt;
|-&lt;br /&gt;
| T_RAS (15-12)	|| 4-1 / 4	|| 6-1	|| ACTIV to PRE&lt;br /&gt;
|-&lt;br /&gt;
| T_RC (11-8)	|| 6-1 / 3	|| 9-1	|| ACTIV to ACTIV&lt;br /&gt;
|-&lt;br /&gt;
| (7)	|| 0 / 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
| T_RRD (6-4)	|| 2-1 / 1	|| 2-1	|| ACTIV to ACTIV other bank&lt;br /&gt;
|-&lt;br /&gt;
| (3)	|| 0	|| 0	|| &lt;br /&gt;
|-&lt;br /&gt;
! SDSRETR 	!! 	!! 	!! Self Refresh Exit Timing Register&lt;br /&gt;
|-&lt;br /&gt;
| T_XS	(XSR)	|| 5 / 6 	|| 5+3-1	|| &lt;br /&gt;
|-&lt;br /&gt;
! SDRCR	!! 	!! 	!! &lt;br /&gt;
|-&lt;br /&gt;
| RR (12-0)	|| 312 / 1250	|| 156	|| 80e6 * 16e-3 / 8192 =&amp;gt; less or equal to 156&lt;br /&gt;
|-&lt;br /&gt;
! SDCR	!! 	!! 	!!  SDRAM Configuration Register&lt;br /&gt;
|-&lt;br /&gt;
| SR (31)	|| 0 / 0	|| 0	|| self refresh mode&lt;br /&gt;
|-&lt;br /&gt;
| PD (30)	|| 0 / 0	|| 0	|| power down&lt;br /&gt;
|-&lt;br /&gt;
| PDWR (29)	|| 0 / 0	|| 0	|| refresh in PD&lt;br /&gt;
|-&lt;br /&gt;
| NM (14)	|| 1 / 1	|| 1	|| narrow mode&lt;br /&gt;
|-&lt;br /&gt;
| CL (11-9)	|| 2 / 3	|| 3	|| CAS latency&lt;br /&gt;
|-&lt;br /&gt;
| BIT11_9LOCK (8)	|| 1 / 1	|| 1	|| CAS latency lock&lt;br /&gt;
|-&lt;br /&gt;
| IBANK (6-4)	|| 2 / 2	|| 2 (4 banks)	|| banks&lt;br /&gt;
|-&lt;br /&gt;
| PAGESIZE (2-0)	|| 0 / 0	|| 2 (10 bit)	|| counted in elements&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===SCI port===&lt;br /&gt;
We have connected serial port on Expansion Connector P3 (see HDK documentation) pin W3 and N2. TX is connected to N2 pin and RX to W3 pin. This brings us consequences as both pins are mutexed.&lt;br /&gt;
&lt;br /&gt;
When you want to use SCI, you have to set few things in HalCoGen.&lt;br /&gt;
* Enable driver SCI (not LIN or SCI2 driver)&lt;br /&gt;
* In tab PINMUX select SCI and check conflict with other drivers&lt;br /&gt;
* In tab SCI choose and set data format.&lt;br /&gt;
When you want use interrupts in adittion, do the following:&lt;br /&gt;
* In tab VIM Channel 64-95 select interrupt 64: SCI level0 interrupt for high level interrupt or 74: SCI Level1 for low level interrupt&lt;br /&gt;
* In SCI tab enable TX and/or RX interrupt and select High or Low.&lt;br /&gt;
* In your code enable IRQ using _enable_IRQ() function, than enable notification using sciEnableNotification() function.&lt;br /&gt;
* Implement notification callback sciNotification() in notificatin.c&lt;br /&gt;
&lt;br /&gt;
In your code don&#039;t forget to initialize sci using sciInit() function.&lt;br /&gt;
&lt;br /&gt;
== Debug over JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== XDS100v2 JTAG Interface from Ti ===&lt;br /&gt;
&lt;br /&gt;
The XDS100v2 is equipped with Ti specific 14-pin JTAG connector.&lt;br /&gt;
Next cable wires placement allows to use it with TMS570LS31x_HDK_Kit&lt;br /&gt;
or other device with ARM JTAG pin placement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 14 pin Ti&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 20 pin ARM&lt;br /&gt;
|-&lt;br /&gt;
| 1	|| TMS	|| TMS	|| 7&lt;br /&gt;
|-&lt;br /&gt;
| 2	|| TRST	|| NTRST	|| 3&lt;br /&gt;
|-&lt;br /&gt;
| 3	|| TDI	|| TDI	|| 5&lt;br /&gt;
|-&lt;br /&gt;
| 4	|| DIS	|| GND	|| 6&lt;br /&gt;
|-&lt;br /&gt;
| 5	|| VD	|| VREF	|| 1 (2)&lt;br /&gt;
|-&lt;br /&gt;
| 6	|| NC || || --&lt;br /&gt;
|-&lt;br /&gt;
| 7	|| TDO	|| TDO	|| 13&lt;br /&gt;
|-&lt;br /&gt;
| 8	|| GND	|| GND	|| (4)&lt;br /&gt;
|-&lt;br /&gt;
| 9	|| RTCK	|| RTCK	|| 11&lt;br /&gt;
|-&lt;br /&gt;
| 10	|| GND	|| GND	|| 8 (12)&lt;br /&gt;
|-&lt;br /&gt;
| 11	|| TCK	|| TCK	|| 9&lt;br /&gt;
|-&lt;br /&gt;
| 12	|| GND	|| GND	|| 10 (14)&lt;br /&gt;
|-&lt;br /&gt;
| 13	|| EMU0	|| 	||&lt;br /&gt;
|-&lt;br /&gt;
| 14	|| EMU1	|| 	|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setup XDS100v2 on Linux ===&lt;br /&gt;
&lt;br /&gt;
By default the device (if nothing more connected then &amp;lt;code&amp;gt;/dev/ttyUSB0&amp;lt;/code&amp;gt;) is added with permissions 664 with &lt;br /&gt;
&amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; as user and group. You access the device we need write access for current user. To do so we need &lt;br /&gt;
to create a new udev rules:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/udev/rules.d/45-pes-rpp.rules&lt;br /&gt;
&lt;br /&gt;
And add line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0403&amp;quot;, ATTR{idProduct}==&amp;quot;a6d0&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then reload udev rules with:&lt;br /&gt;
&lt;br /&gt;
 sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
You can check device properties like &amp;lt;code&amp;gt;idVendor&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;idProduct&amp;lt;/code&amp;gt; with the following command:&lt;br /&gt;
&lt;br /&gt;
 udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)&lt;br /&gt;
&lt;br /&gt;
== RS232 communication setup ==&lt;br /&gt;
&lt;br /&gt;
Connect serial communication pins to computer&#039;s RS232 port or to USB through a FTDI adapter. If using RS232 port the&lt;br /&gt;
device should be &amp;lt;code&amp;gt;/dev/ttyS0&amp;lt;/code&amp;gt;, if using FTDI it should be something like &amp;lt;code&amp;gt;/dev/ttyUSBx&amp;lt;/code&amp;gt; &lt;br /&gt;
(check &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt; for details).&lt;br /&gt;
&lt;br /&gt;
Make sure minicom or similar terminal program is installed:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Then configure minicon:&lt;br /&gt;
&lt;br /&gt;
 sudo minicom -s&lt;br /&gt;
&lt;br /&gt;
And use the following configuration &amp;quot;9600 81N&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Serial Device         : /dev/ttyS0&lt;br /&gt;
 Lockfile Location     : /var/lock&lt;br /&gt;
 Callin Program        :&lt;br /&gt;
 Callout Program       :&lt;br /&gt;
 Bps/Par/Bits          : 9600 8N1&lt;br /&gt;
 Hardware Flow Control : No&lt;br /&gt;
 Software Flow Control : No&lt;br /&gt;
&lt;br /&gt;
Start terminal session and type &amp;lt;code&amp;gt;HELP&amp;lt;/code&amp;gt; command to test communication.&lt;br /&gt;
&lt;br /&gt;
== GCC build for Cortex-R4 Big-Endian ==&lt;br /&gt;
&lt;br /&gt;
GCC options &amp;lt;pre&amp;gt;-mbig-endian -march=armv7-r -mthumb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GCC options with hard float &amp;lt;pre&amp;gt;-mbig-endian -mthumb -march=armv7-r -mfpu=vfpv3-d16 -mfloat-abi=hard&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GCC multilib options&lt;br /&gt;
&lt;br /&gt;
 armv7-r/thumb2/be;@mbig-endian@mthumb@march=armv7-r&lt;br /&gt;
 armv7-r/thumb2/vfpv3/be;@mbig-endian@mthumb@mfloat-abi=hard@march=armv7-r@mfpu=vfpv3-d16&lt;br /&gt;
&lt;br /&gt;
* https://answers.launchpad.net/gcc-arm-embedded/+question/189066&lt;br /&gt;
&lt;br /&gt;
* Patch to enable GCC and Newlib with big-endian support for RTEMS proposal&lt;br /&gt;
** http://lists.rtems.org/pipermail/devel/2014-June/007232.html&lt;br /&gt;
** Toolchain for RTEMS port to Cortex-R4F big-endian (TMS570LS3137)&lt;br /&gt;
&lt;br /&gt;
* Sebastian Huber&#039;s version to push upstream &lt;br /&gt;
** http://lists.rtems.org/pipermail/devel/2014-July/007244.html&lt;br /&gt;
** RTEMS: Add multilibs for ARM&lt;br /&gt;
&lt;br /&gt;
* Newlib correction&lt;br /&gt;
** http://lists.rtems.org/pipermail/devel/2014-July/007251.html&lt;br /&gt;
** Remaining arch issue in Newlib optimized ARM ASM memchr for Cortex-R&lt;br /&gt;
&lt;br /&gt;
== RTEMS Cortex-R4 TMS570 BSP Deveopment (GSoC 2014 project) ==&lt;br /&gt;
&lt;br /&gt;
* http://wiki.rtems.org/wiki/index.php/RTEMSPortToCortexR4&lt;br /&gt;
* http://github.com/AoLaD/rtems/tree/tms570-bsp&lt;br /&gt;
* http://github.com/AoLaD/rtems-tms570-utils&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
* Management: [http://dce.felk.cvut.cz/hanzalek/ Prof. Zdeněk Hanzálek]&lt;br /&gt;
* Technical: [http://cmp.felk.cvut.cz/~pisa/ Pavel Píša, Ph.D.]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4170</id>
		<title>TMS570LS3137</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4170"/>
		<updated>2014-07-02T22:05:26Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* CCS5.3.0.00090_linux in Ubuntu 12.04 64bits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TMS570LS31x HDK Kit.jpg|right|300px]]&lt;br /&gt;
[[File:Rpp.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://www.ti.com/product/tms570ls3137 Main TI page] containing datasheets.&lt;br /&gt;
* [http://e2e.ti.com/support/microcontrollers/hercules/f/312.aspx TI TMS570 related forum]&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:TMS570 TMS570 Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration LwIP integration]&lt;br /&gt;
&lt;br /&gt;
* [[Media:Studim_procesoru.pdf]] Notes from documentation (in Czech language)&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Tools recommended by TI for programming of this microcontroller:&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5 Code Composer Studio] (runs on Win and Linux).&lt;br /&gt;
* [http://www.ti.com/tool/halcogen HalCoGen] (for Windows only, but also runs quite well in Wine).&lt;br /&gt;
** [[TMS570LS3137 HalCoGen Bugs|TMS570LS3137 HalCoGen Bugs]]&lt;br /&gt;
&lt;br /&gt;
=== CCS5.3.0.00090_linux in Ubuntu 12.04 64bits ===&lt;br /&gt;
&lt;br /&gt;
After installation the application can be run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/&lt;br /&gt;
&lt;br /&gt;
./ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application fails to start is because CCS5 is a 32bits application a thus requires 32bits libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install libgtk2.0-0:i386 libxtst6:i386  gtk2-engines-pixbuf:i386 libcanberra-gtk-module:i386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application crashes with a segmentation fault do:&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/ccsv5/eclipse/plugins/com.ti.ccstudio.branding_&amp;lt;your version number&amp;gt;/plugin_customization.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And change key &amp;lt;code&amp;gt;org.eclipse.ui/showIntro&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;FREE License - for use with XDS100 JTAG Emulators&amp;quot; on the licensing options.&lt;br /&gt;
&lt;br /&gt;
You may create a symbolic link and a desktop entry:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo ln -s &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/ccstudio /usr/local/bin/ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And put in &amp;lt;code&amp;gt;~/.local/share/applications/ccs5.desktop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Type=Application&lt;br /&gt;
Terminal=false&lt;br /&gt;
Exec=ccstudio&lt;br /&gt;
Name=Code Composer Studio&lt;br /&gt;
Icon=/usr/local/ti/ccsv5/eclipse/icon.xpm&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CCS5.5.0.00077_windows on Windows 7x64 ===&lt;br /&gt;
&lt;br /&gt;
Download ccs_setup_5.5.0.00077.exe from http://ti.com and run.&lt;br /&gt;
&lt;br /&gt;
Choose component:&lt;br /&gt;
* Safety MCUs&lt;br /&gt;
&lt;br /&gt;
Choose Compiler tools:&lt;br /&gt;
* TI ARM Compiler Tools&lt;br /&gt;
* TI Documentation&lt;br /&gt;
&lt;br /&gt;
Coose JTAG Emulator Support&lt;br /&gt;
* XDS100 Class Emulator Support&lt;br /&gt;
&lt;br /&gt;
== FreeRTOS ==&lt;br /&gt;
Installation is easy, simply create new project in HalCoGen &lt;br /&gt;
&lt;br /&gt;
* New -&amp;gt; Project&lt;br /&gt;
* Select Family:TMS570LS31x&lt;br /&gt;
* Select Device: TMS570LS3137ZWT_FREERTOS&lt;br /&gt;
&lt;br /&gt;
All necessary files will be added into project automaticaly.&lt;br /&gt;
&lt;br /&gt;
== Matlab/Simulink Embedded Coder target ==&lt;br /&gt;
We have implemented support for Matlab/Simulink which allows to use&lt;br /&gt;
designed peripherals support libraries from Simulink model design.&lt;br /&gt;
&lt;br /&gt;
For further information look at separate pages for the target&lt;br /&gt;
&lt;br /&gt;
http://rtime.felk.cvut.cz/rpp-tms570/&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Developement board we are using: [http://processors.wiki.ti.com/index.php?title=TMS570LS31x_HDK_Kit TMS570LS31x_HDK_Kit]&lt;br /&gt;
&lt;br /&gt;
===SCI port===&lt;br /&gt;
We have connected serial port on Expansion Connector P3 (see HDK documentation) pin W3 and N2. TX is connected to N2 pin and RX to W3 pin. This brings us consequences as both pins are mutexed.&lt;br /&gt;
&lt;br /&gt;
When you want to use SCI, you have to set few things in HalCoGen.&lt;br /&gt;
* Enable driver SCI (not LIN or SCI2 driver)&lt;br /&gt;
* In tab PINMUX select SCI and check conflict with other drivers&lt;br /&gt;
* In tab SCI choose and set data format.&lt;br /&gt;
When you want use interrupts in adittion, do the following:&lt;br /&gt;
* In tab VIM Channel 64-95 select interrupt 64: SCI level0 interrupt for high level interrupt or 74: SCI Level1 for low level interrupt&lt;br /&gt;
* In SCI tab enable TX and/or RX interrupt and select High or Low.&lt;br /&gt;
* In your code enable IRQ using _enable_IRQ() function, than enable notification using sciEnableNotification() function.&lt;br /&gt;
* Implement notification callback sciNotification() in notificatin.c&lt;br /&gt;
&lt;br /&gt;
In your code don&#039;t forget to initialize sci using sciInit() function.&lt;br /&gt;
&lt;br /&gt;
== Debug over JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== XDS100v2 JTAG Interface from Ti ===&lt;br /&gt;
&lt;br /&gt;
The XDS100v2 is equipped with Ti specific 14-pin JTAG connector.&lt;br /&gt;
Next cable wires placement allows to use it with TMS570LS31x_HDK_Kit&lt;br /&gt;
or other device with ARM JTAG pin placement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 14 pin Ti&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 20 pin ARM&lt;br /&gt;
|-&lt;br /&gt;
| 1	|| TMS	|| TMS	|| 7&lt;br /&gt;
|-&lt;br /&gt;
| 2	|| TRST	|| NTRST	|| 3&lt;br /&gt;
|-&lt;br /&gt;
| 3	|| TDI	|| TDI	|| 5&lt;br /&gt;
|-&lt;br /&gt;
| 4	|| DIS	|| GND	|| 6&lt;br /&gt;
|-&lt;br /&gt;
| 5	|| VD	|| VREF	|| 1 (2)&lt;br /&gt;
|-&lt;br /&gt;
| 6	|| NC || || --&lt;br /&gt;
|-&lt;br /&gt;
| 7	|| TDO	|| TDO	|| 13&lt;br /&gt;
|-&lt;br /&gt;
| 8	|| GND	|| GND	|| (4)&lt;br /&gt;
|-&lt;br /&gt;
| 9	|| RTCK	|| RTCK	|| 11&lt;br /&gt;
|-&lt;br /&gt;
| 10	|| GND	|| GND	|| 8 (12)&lt;br /&gt;
|-&lt;br /&gt;
| 11	|| TCK	|| TCK	|| 9&lt;br /&gt;
|-&lt;br /&gt;
| 12	|| GND	|| GND	|| 10 (14)&lt;br /&gt;
|-&lt;br /&gt;
| 13	|| EMU0	|| 	||&lt;br /&gt;
|-&lt;br /&gt;
| 14	|| EMU1	|| 	|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setup XDS100v2 on Linux ===&lt;br /&gt;
&lt;br /&gt;
By default the device (if nothing more connected then &amp;lt;code&amp;gt;/dev/ttyUSB0&amp;lt;/code&amp;gt;) is added with permissions 664 with &lt;br /&gt;
&amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; as user and group. You access the device we need write access for current user. To do so we need &lt;br /&gt;
to create a new udev rules:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/udev/rules.d/45-pes-rpp.rules&lt;br /&gt;
&lt;br /&gt;
And add line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0403&amp;quot;, ATTR{idProduct}==&amp;quot;a6d0&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then reload udev rules with:&lt;br /&gt;
&lt;br /&gt;
 sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
You can check device properties like &amp;lt;code&amp;gt;idVendor&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;idProduct&amp;lt;/code&amp;gt; with the following command:&lt;br /&gt;
&lt;br /&gt;
 udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)&lt;br /&gt;
&lt;br /&gt;
== RS232 communication setup ==&lt;br /&gt;
&lt;br /&gt;
Connect serial communication pins to computer&#039;s RS232 port or to USB through a FTDI adapter. If using RS232 port the&lt;br /&gt;
device should be &amp;lt;code&amp;gt;/dev/ttyS0&amp;lt;/code&amp;gt;, if using FTDI it should be something like &amp;lt;code&amp;gt;/dev/ttyUSBx&amp;lt;/code&amp;gt; &lt;br /&gt;
(check &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt; for details).&lt;br /&gt;
&lt;br /&gt;
Make sure minicom or similar terminal program is installed:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Then configure minicon:&lt;br /&gt;
&lt;br /&gt;
 sudo minicom -s&lt;br /&gt;
&lt;br /&gt;
And use the following configuration &amp;quot;9600 81N&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Serial Device         : /dev/ttyS0&lt;br /&gt;
 Lockfile Location     : /var/lock&lt;br /&gt;
 Callin Program        :&lt;br /&gt;
 Callout Program       :&lt;br /&gt;
 Bps/Par/Bits          : 9600 8N1&lt;br /&gt;
 Hardware Flow Control : No&lt;br /&gt;
 Software Flow Control : No&lt;br /&gt;
&lt;br /&gt;
Start terminal session and type &amp;lt;code&amp;gt;HELP&amp;lt;/code&amp;gt; command to test communication.&lt;br /&gt;
&lt;br /&gt;
== GCC build for Cortex-R4 Big-Endian ==&lt;br /&gt;
&lt;br /&gt;
GCC multilib options&lt;br /&gt;
&lt;br /&gt;
 armv7-r/thumb2/be;@mbig-endian@mthumb@march=armv7-r&lt;br /&gt;
 armv7-r/thumb2/vfpv3/be;@mbig-endian@mthumb@mfloat-abi=hard@march=armv7-r@mfpu=vfpv3-d16&lt;br /&gt;
&lt;br /&gt;
* https://answers.launchpad.net/gcc-arm-embedded/+question/189066&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
* Management: [http://dce.felk.cvut.cz/hanzalek/ Prof. Zdeněk Hanzálek]&lt;br /&gt;
* Technical: [http://cmp.felk.cvut.cz/~pisa/ Pavel Píša, Ph.D.]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=MIDAM_MPC5200_DB1&amp;diff=4153</id>
		<title>MIDAM MPC5200 DB1</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=MIDAM_MPC5200_DB1&amp;diff=4153"/>
		<updated>2014-01-23T22:55:06Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Root file system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
&lt;br /&gt;
Two sets of the MIDAM MPC5200 was delivered by the Mikroklima s.r.o. for our purposes. Each set consist of the:&lt;br /&gt;
&lt;br /&gt;
* Shark MPC52000 CPU module (pin compatible with TQ Components TQM5200 module),&lt;br /&gt;
* MPC5200 v1.1 2008/02 carrier board.&lt;br /&gt;
&lt;br /&gt;
Set #1 has s/n: &#039;&#039;&#039;008770&#039;&#039;&#039; and set #2 has s/n: &#039;&#039;&#039;008771&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* [[Media:SHARK_V1_1_DOC_CZ.pdf|SHARK_V1_1_DOC_CZ.pdf‎]]&lt;br /&gt;
* [[Media:SHARK_V1_0_linux_DOC_CZ.pdf|SHARK_V1_0_linux_DOC_CZ.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Schematics and components==&lt;br /&gt;
Download schematics in PDF: [[:File:Midam_expand_v1b.pdf]]&lt;br /&gt;
&lt;br /&gt;
===List of components===&lt;br /&gt;
This list is not complete. It is just a subset of components needed for educational purpose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER SUPPLY&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 C9  CAP1206 220pF&lt;br /&gt;
 C10 CAP1206 22nF&lt;br /&gt;
 C11 CAP1206 10uF&lt;br /&gt;
 C12 tantal el. 330uF 6.3V D&lt;br /&gt;
 C23 el. 470uF, 50V &lt;br /&gt;
 C29 CAP0805 100n&lt;br /&gt;
 C30 CAP0805 100n&lt;br /&gt;
 C31 CAP0805 100n&lt;br /&gt;
 C32 CAP0805 100n&lt;br /&gt;
 C35 CAP0805 100n&lt;br /&gt;
 C36 47uF10V B&lt;br /&gt;
 C37 47uF10V B&lt;br /&gt;
 C38 47uF10V B&lt;br /&gt;
 C39 47uF10V B&lt;br /&gt;
 D6  STPS2L30A&lt;br /&gt;
 D9  LED 1206 &lt;br /&gt;
 D10 STPS2L30A&lt;br /&gt;
 J7  PWR-CON&lt;br /&gt;
 J10 SMD switch&lt;br /&gt;
 L2  INDUCTOR DR127-150 &lt;br /&gt;
 R19 RES0805 4k7&lt;br /&gt;
 R20 RES0805 5k6&lt;br /&gt;
 R21 RES0805 3k3&lt;br /&gt;
 R25 RES0805 330R&lt;br /&gt;
 U11 STM811SW16F MPU LOW RESET 2.93V&lt;br /&gt;
 U9  ST-L5973D &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MIDAM HEADER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 R34 RES0805 10k&lt;br /&gt;
 R35 RES0805 10k&lt;br /&gt;
 J1  Socket &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;USB-CLIENT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 C5  CAP0805 100nF&lt;br /&gt;
 C26 CAP0805 100n&lt;br /&gt;
 D3  LED 1206 &lt;br /&gt;
 D4  LED 1206 &lt;br /&gt;
 L7  BLM21AG601SN1D FERRITE, BEAD, 0805, 0.21OHM, 0.6A&lt;br /&gt;
 J4  USB-B&lt;br /&gt;
 R9  RES0805 4k7&lt;br /&gt;
 R10 RES0805 10k&lt;br /&gt;
 R11 RES0805 270R&lt;br /&gt;
 R12 RES0805 270R&lt;br /&gt;
 R48 RES0805 10k&lt;br /&gt;
 R49 RES0805 10k&lt;br /&gt;
 U2  FT232RL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EXPAND HEADER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 D5  ULN2803 DIO&lt;br /&gt;
 D11 LED 1206 &lt;br /&gt;
 D12 LED 1206 &lt;br /&gt;
 D13 LED 1206 &lt;br /&gt;
 D14 LED 1206 &lt;br /&gt;
 D15 LED 1206 &lt;br /&gt;
 D16 LED 1206 &lt;br /&gt;
 D17 LED 1206 &lt;br /&gt;
 D18 LED 1206 &lt;br /&gt;
 D19 LED 1206 &lt;br /&gt;
 D20 LED 1206 &lt;br /&gt;
 J8  SMD SWITCH&lt;br /&gt;
 J9  SMD SWITCH&lt;br /&gt;
 R13 RES0805 330R&lt;br /&gt;
 R14 RES0805 1k&lt;br /&gt;
 R15 RES0805 1k&lt;br /&gt;
 R16 RES0805 1k&lt;br /&gt;
 R17 RES0805 330R&lt;br /&gt;
 R18 RES0805 330R&lt;br /&gt;
 R28 RES0805 10k&lt;br /&gt;
 R29 RES0805 10k&lt;br /&gt;
 R30 RES0805 2k&lt;br /&gt;
 R31 RES0805 330R&lt;br /&gt;
 R32 RES0805 2k&lt;br /&gt;
 R33 RES0805 330R&lt;br /&gt;
 R38 RES0805 330R&lt;br /&gt;
 R39 RES0805 330R&lt;br /&gt;
 R40 RES0805 330R&lt;br /&gt;
 R41 RES0805 330R&lt;br /&gt;
 R42 RES0805 330R&lt;br /&gt;
 R43 RES0805 330R&lt;br /&gt;
 R44 RES0805 330R&lt;br /&gt;
 U3  BSS138 ANA&lt;br /&gt;
 U4  BSS138 ANA&lt;br /&gt;
 U6  BSS138 ANA&lt;br /&gt;
 U7  BSS138 ANA&lt;br /&gt;
 U8  BSS138 ANA&lt;br /&gt;
 Q1  BC856ALT1G TRANSISTOR, PNP&lt;br /&gt;
 Q2  BC856ALT1G TRANSISTOR, PNP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ETHERNET&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 C18 CAP0805 22nF&lt;br /&gt;
 J2  TE Connectivity AMP 5-6605758-1&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
Discussion related to this board happen in a [http://rtime.felk.cvut.cz/mailman/listinfo/shark5200 mailing list].&lt;br /&gt;
&lt;br /&gt;
==Board overview==&lt;br /&gt;
&lt;br /&gt;
[[Image:Board overview.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Serial line (system console)==&lt;br /&gt;
&lt;br /&gt;
* Loader system console is attached to the ttyPSC0 port.&lt;br /&gt;
* The &#039;&#039;&#039;ttyPSC0 port is done in the LVTTL 3.3V logic&#039;&#039;&#039;, so appropriate 3.3V to RS-232 converter (e.g. [http://pdfserv.maxim-ic.com/en/ds/MAX3222-MAX3241.pdf MAX3232]) is required for the serial console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Communication parameters:&#039;&#039;&#039;&lt;br /&gt;
* baud rate: 115200 bps&lt;br /&gt;
* bits: 8 bit&lt;br /&gt;
* stop bits: 1 bit&lt;br /&gt;
* Parity: none&lt;br /&gt;
* Flow control: none&lt;br /&gt;
&lt;br /&gt;
==Module memory map==&lt;br /&gt;
The MPC5200B is 32 bit CPU, so it has a 32 bit address space. It is able to address up to 4 294 967 295 B (0xFFFFFFFF) - 4096 MB. The Shark module has been equipped with &#039;&#039;&#039;128 MB&#039;&#039;&#039; DDR RAM and &#039;&#039;&#039;64 MB&#039;&#039;&#039; NOR flash memory.&lt;br /&gt;
* RAM chips: Samsung K4S511632D-UC(L)75, order: 32M x 16&lt;br /&gt;
* Address space &#039;&#039;&#039;BASE address&#039;&#039;&#039; is 0x00000000&lt;br /&gt;
* RAM is from 0x00000000 to 0x08000000 (128 MB)&lt;br /&gt;
&lt;br /&gt;
Flash memory is being mapped at the and of address space (from 3.9375 GB).&lt;br /&gt;
* &#039;&#039;&#039;Flash BASE address&#039;&#039;&#039; is 0xFC000000 (last address is 0xFFFFFFFF)&lt;br /&gt;
* Flash memory size is 0x04000000 (64 MB)&lt;br /&gt;
&lt;br /&gt;
There are three MTD partitions in the flash (defined in shark.dts). The flat device tree file syntax uses first address and length of the partition for its definition.&lt;br /&gt;
* u-Boot (1 MB) from 0x00000000 to 0x00100000, length 0x00100000&lt;br /&gt;
* kernel (3 MB) from 0x00100000 to 0x00400000, length 0x00300000&lt;br /&gt;
* &#039;&#039;&#039;file-system&#039;&#039;&#039; (56 MB) from 0x00400000 to 0x04000000, length 0x03C00000&lt;br /&gt;
All these addresses are offsets against Flash BASE.&lt;br /&gt;
&lt;br /&gt;
==Boot loader==&lt;br /&gt;
These boards are preinstalled with [http://www.denx.de/wiki/DULG/Manual Das u-Boot] boot loader.&lt;br /&gt;
Behaviour of the u-Boot can be handled by its environment variables. Here are some useful commands:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;printenv [variable]&#039;&#039;&#039; - prints complete environment or only given variable.&lt;br /&gt;
*&#039;&#039;&#039;saveenv&#039;&#039;&#039; - commits whole environment in flash memory&lt;br /&gt;
&lt;br /&gt;
For running linux kernel &amp;gt;2.6.25 it&#039;s necessary to have u-Boot 1.3.2 or later, which is able to hand over flat device tree to the kernel. When older revision is present, it is necessary to upgrade. Binary of u-Boot can be downloaded here: [ftp://rtime.felk.cvut.cz/shark-mpc5200/u-boot.bin u-boot.bin].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;U-Boot upgrade howto:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the upgrade procedure it is necessary to proceed with utmost precaution, because &#039;&#039;&#039;there is no backup image&#039;&#039;&#039; of the u-Boot in the flash for recovery purposes. Fail-flash recovery isn&#039;t possible without JTAG interface. So, you have been warned. In future builds of the u-Boot there should be a support for recovery image. Follow this commands to upgrade U-Boot&#039;s image in flash memory:&lt;br /&gt;
&lt;br /&gt;
 dhcp&lt;br /&gt;
 tftp 800000 u-boot.bin&lt;br /&gt;
 protect off fc000000 fc09ffff&lt;br /&gt;
 erase fc000000 fc09ffff&lt;br /&gt;
 cp.b 800000 fc000000 ${filesize}&lt;br /&gt;
 protect on fc000000 fc09ffff&lt;br /&gt;
&lt;br /&gt;
Now reboot and than commit new default environment:&lt;br /&gt;
&lt;br /&gt;
 saveenv&lt;br /&gt;
&lt;br /&gt;
===How to access U-Boot environment variables from Linux ?===&lt;br /&gt;
The U-Boot environment variables is possible to read and write trough utilities ... TO DO&lt;br /&gt;
&lt;br /&gt;
==Cross-tool chain==&lt;br /&gt;
Necessary cross-tool chain for PowerPC platform can be build using Crossdev tool. You can install Crossdev on your Gentoo distro very simply:&lt;br /&gt;
&lt;br /&gt;
 emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
Some dependencies may go before. Building of tool chain itself will take some time, so let&#039;s go to take some coffee.&lt;br /&gt;
&lt;br /&gt;
 crossdev --b 2.18-r3 --k 2.6.23-r3 --g 4.1.2 --without-headers -t powerpc-unknown-linux-gnu&lt;br /&gt;
&lt;br /&gt;
For Debian, you can use a [[Cross compilers|packages]] prepared by Pavel Píša.&lt;br /&gt;
&lt;br /&gt;
== Linux kernel ==&lt;br /&gt;
&lt;br /&gt;
=== Instructions for recent kernels ===&lt;br /&gt;
&lt;br /&gt;
You need [https://rtime.felk.cvut.cz/gitweb/shark/linux.git/commitdiff/87a8e2b9406cc7f8779f02047e0cd1594c570b78 this simple patch] to boot Linux on MIDAM/RYU board.&lt;br /&gt;
&lt;br /&gt;
=== Instructions for old kernels ===&lt;br /&gt;
&lt;br /&gt;
It is necessary to use patched Linux sources. We maintain them in our [[Git]] [http://rtime.felk.cvut.cz/gitweb/shark/linux.git repository]. You can clone it by:&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/shark/linux.git&lt;br /&gt;
&lt;br /&gt;
Now you can choose the kernel revision you want to compile:&lt;br /&gt;
&lt;br /&gt;
 git branch -r # there you can see all branches available&lt;br /&gt;
 git checkout origin/shark/2.6.28.8 # choose the one you desire&lt;br /&gt;
&lt;br /&gt;
Note: See [[Linux sources]] for the description of the repository and patch management techniques we use.&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s begin with the kernel configuration and compilation. The following recipe can be used to compile the kernel out of source directory, which is helpful if you want to compile a single kernel version with several configurations.&lt;br /&gt;
* &amp;lt;tt&amp;gt;cd linux&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;mkdir -p _build/midam&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;cd _build/midam&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy the following code to &amp;lt;tt&amp;gt;GNUmakefile&amp;lt;/tt&amp;gt; file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
VERSION = 2&lt;br /&gt;
PATCHLEVEL = 6&lt;br /&gt;
&lt;br /&gt;
KERNELSRC    := $(shell cd ../..; pwd)&lt;br /&gt;
KERNELOUTPUT := $(patsubst $(KERNELSRC)/%,%,$(shell pwd))&lt;br /&gt;
&lt;br /&gt;
KERNELRELEASE = $(shell cat include/config/kernel.release 2&amp;gt; /dev/null)&lt;br /&gt;
&lt;br /&gt;
MAKEFLAGS += --no-print-directory&lt;br /&gt;
&lt;br /&gt;
ARCH=powerpc&lt;br /&gt;
CROSS_COMPILE=powerpc-linux-gnu-&lt;br /&gt;
&lt;br /&gt;
TFTPBOOT=/var/lib/tftpboot/ryu&lt;br /&gt;
&lt;br /&gt;
export INSTALL_MOD_PATH=$(KERNELSRC)/../MPC5200_root&lt;br /&gt;
&lt;br /&gt;
.PHONY: install all $(MAKECMDGOALS)&lt;br /&gt;
&lt;br /&gt;
all:&lt;br /&gt;
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELSRC) O=$(KERNELOUTPUT)&lt;br /&gt;
&lt;br /&gt;
Makefile:;&lt;br /&gt;
&lt;br /&gt;
$(filter-out all Makefile,$(MAKECMDGOALS)) %/:&lt;br /&gt;
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELSRC) O=$(KERNELOUTPUT) $@&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;make 52xx/midam_defconfig&amp;lt;/tt&amp;gt; # or use &amp;lt;tt&amp;gt;52xx/ryu_defconfig&amp;lt;/tt&amp;gt; for RYU board&lt;br /&gt;
* &amp;lt;tt&amp;gt;make menuconfig&amp;lt;/tt&amp;gt;    # if you need additional configuration&lt;br /&gt;
* &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; # start compilation; &amp;lt;tt&amp;gt;u-boot-tools&amp;lt;/tt&amp;gt; should be properly installed before compilation&lt;br /&gt;
&lt;br /&gt;
The compiled image can be found in linux/_build/midam/arch/powerpc/boot&lt;br /&gt;
It is the file uImage. Copy it to your tftpboot directory.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to build the Flat Device Tree file&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Since kernel version 2.6.25 is description of the platform hardware provided trough the Flat Device Tree. Necessary sources are now part of the kernel sources. Appropriate image could be build with this command:&lt;br /&gt;
&lt;br /&gt;
 make ARCH=powerpc shark.dtb DTS_FLAGS=&amp;quot;-S65536&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If DTS_FLAGS parameter omitted than following error will occur, because there is not enough space in the file, where the u-Boot can store some additional data about buses timing, etc.:&lt;br /&gt;
&lt;br /&gt;
 WARNING: could not create /chosen FDT_ERR_NOSPACE.&lt;br /&gt;
 ERROR: /chosen node create failed - must RESET the board to recover.&lt;br /&gt;
&lt;br /&gt;
==Root file system==&lt;br /&gt;
&lt;br /&gt;
Use [http://buildroot.uclibc.org/ buildroot] to build one.&lt;br /&gt;
&lt;br /&gt;
== TO DO - UnionFS for root FS in flash ==&lt;br /&gt;
&lt;br /&gt;
For long term usage is not really good to repeatedly overwrite block in the NOR flash chip, because memory cells are being punished. So it would be better to use jffs2 root FS only as RO file system and create RW tmpfs of same size. UnionFS than could be used to merge these two file systems and provide one RW file system. Changes in FS as a lock and log files can be made without permanent effect.&lt;br /&gt;
&lt;br /&gt;
==SocketCan==&lt;br /&gt;
&lt;br /&gt;
SocketCan is currently tested only with kernels 2.6.28 or lower. If you want to use Socket Can, it is currently recommended to use kernel 2.6.28. To enable SocketCan support, it is neccesary to run&lt;br /&gt;
&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
before building the kernel and set the following:&lt;br /&gt;
&lt;br /&gt;
 Networking Support / CAN bus subsystem support (yes)&lt;br /&gt;
 Raw CAN Protocol (raw access with CAN-ID filtering) (yes)&lt;br /&gt;
 CAN Device Drivers / Virtual Local CAN Interface (vcan) (yes)&lt;br /&gt;
 Prompt for platform CAN drivers with sysfs support (yes)&lt;br /&gt;
 Support for a Freescale MSCAN based chips (yes)&lt;br /&gt;
 Freescale MPC5200 onboard CAN controller (yes)&lt;br /&gt;
&lt;br /&gt;
 make KERNELDIR=/home/marsark/src/linux-2.6.26.5/_build/mpc5200_ryu/ CONFIG_CAN_MPC52XX=m CONFIG_CAN_MSCAN=m&lt;br /&gt;
&lt;br /&gt;
CAN subsystem init script:&lt;br /&gt;
&lt;br /&gt;
 modprobe can&lt;br /&gt;
 modprobe mscan-mpc52xx&lt;br /&gt;
 modprobe can-raw&lt;br /&gt;
&lt;br /&gt;
 echo 1000000 &amp;gt; /sys/class/net/can0/can_bittiming/bitrate&lt;br /&gt;
 echo 1000000 &amp;gt; /sys/class/net/can1/can_bittiming/bitrate&lt;br /&gt;
&lt;br /&gt;
If the above commands fail, you have a new version of socketcan and you need to use ip tool to set bitrate. See bellow.&lt;br /&gt;
&lt;br /&gt;
 ifconfig can0 up&lt;br /&gt;
 ifconfig can1 up&lt;br /&gt;
&lt;br /&gt;
Warning - the ip tool is not working properly yet!&lt;br /&gt;
&lt;br /&gt;
Test the setup:&lt;br /&gt;
&lt;br /&gt;
 cansend can0 123#4567&lt;br /&gt;
&lt;br /&gt;
=== Using ip tool ===&lt;br /&gt;
&lt;br /&gt;
 ip link set can0 type can bitrate 1000000&lt;br /&gt;
 ip link set up dev can0&lt;br /&gt;
 ip link set can1 type can bitrate 1000000&lt;br /&gt;
 ip link set up dev can1&lt;br /&gt;
&lt;br /&gt;
==== Compilation ====&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.kernel.org/pub/scm/network/iproute2/iproute2.git&lt;br /&gt;
 cd iproute2&lt;br /&gt;
 make CC=powerpc-linux-gnu-gcc&lt;br /&gt;
&lt;br /&gt;
The make will probably fail but fortunately the &amp;lt;tt&amp;gt;ip/ip&amp;lt;/tt&amp;gt; is already compiled.&lt;br /&gt;
&lt;br /&gt;
== GPIO how set pin value ==&lt;br /&gt;
In MPC5200 have two kind of GPIO. The first one have wakeup capability, the second one is standard GPIO pins. Each of this sets have its own register sets, so some PSC ports are splitted in to two parts. See MOC5200B documentation section 7.3.2.1 and 7.3.2.2. The availability GPIO of PSC depends on GPS Port Configuration Register settings. For RYU boards is available all GPIO in PSC3 port (HW notation).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO: kernel still fails to initialise GPIO drivers on our boards !!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cat /sys/class/gpio/gpiochip248/label    //todo&lt;br /&gt;
&lt;br /&gt;
=== Setting GPIO with wakeup capability ===&lt;br /&gt;
GPIO with wakeup using &lt;br /&gt;
 /sys/class/gpio/gpiochip248/&lt;br /&gt;
&lt;br /&gt;
Pin notation:&lt;br /&gt;
  0 -&amp;gt; GPIO_WKUP_7&lt;br /&gt;
  1 -&amp;gt; GPIO_WKUP_6&lt;br /&gt;
  2 -&amp;gt; PSC6_1&lt;br /&gt;
  3 -&amp;gt; PSC6_0&lt;br /&gt;
  4 -&amp;gt; ETH_17&lt;br /&gt;
  5 -&amp;gt; PSC3_9&lt;br /&gt;
  6 -&amp;gt; PSC2_4&lt;br /&gt;
  7 -&amp;gt; PSC1_4&lt;br /&gt;
&lt;br /&gt;
Final value is 248 + requested pin  (example for PSC2_4 248+6 =&amp;gt; 254)&lt;br /&gt;
&lt;br /&gt;
Enable PIN for GPIO:&lt;br /&gt;
 echo 254 &amp;gt;/sys/class/gpio/export&lt;br /&gt;
Set GPIO as output or input&lt;br /&gt;
 echo out &amp;gt;/sys/class/gpio/gpio254/direction&lt;br /&gt;
 echo in &amp;gt;/sys/class/gpio/gpio254/direction&lt;br /&gt;
Set GPIO to 0 or 1 if configured as output pin&lt;br /&gt;
 echo 0 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
 echo 1 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Setting standard GPIO  not tested ===&lt;br /&gt;
Standard GPIO using &lt;br /&gt;
 /sys/class/gpio/gpiochip216/&lt;br /&gt;
&lt;br /&gt;
Pin notation:&lt;br /&gt;
 0..1  &amp;gt; reserved&lt;br /&gt;
 2..3  &amp;gt; IRDA&lt;br /&gt;
 4..7  &amp;gt; ETHR&lt;br /&gt;
 8..11 &amp;gt; reserved&lt;br /&gt;
 12..15 &amp;gt; USB&lt;br /&gt;
 16..17 &amp;gt; reserved&lt;br /&gt;
 18..23 &amp;gt; PSC3&lt;br /&gt;
 24..27 &amp;gt; PSC2&lt;br /&gt;
 28..31 &amp;gt; PSC1 &lt;br /&gt;
&lt;br /&gt;
Final value is 216 + requested pin  (example for PSC3_3 216+20 =&amp;gt; 236)&lt;br /&gt;
&lt;br /&gt;
Enable PIN for GPIO:&lt;br /&gt;
 echo 236 &amp;gt;/sys/class/gpio/export&lt;br /&gt;
Set GPIO as output or input&lt;br /&gt;
 echo out &amp;gt;/sys/class/gpio/gpio236/direction&lt;br /&gt;
 echo in &amp;gt;/sys/class/gpio/gpio236/direction&lt;br /&gt;
Set GPIO to 0 or 1 if configured as output pin&lt;br /&gt;
 echo 0 &amp;gt;/sys/class/gpio/gpio236/value&lt;br /&gt;
 echo 1 &amp;gt;/sys/class/gpio/gpio236/value&lt;br /&gt;
&lt;br /&gt;
== RS485/RS422 selection on PSC1 ==&lt;br /&gt;
&lt;br /&gt;
In MPC5200 or schematic it is PSC2. In linux is PSC numbered from 0 so it is PSC1.&lt;br /&gt;
 &lt;br /&gt;
Pin configuration:&lt;br /&gt;
 echo 254 &amp;gt;/sys/class/gpio/export&lt;br /&gt;
 echo out &amp;gt;/sys/class/gpio/gpio254/direction&lt;br /&gt;
 &lt;br /&gt;
Run for RS485:&lt;br /&gt;
 echo 1 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
&lt;br /&gt;
Run for RS422:&lt;br /&gt;
 echo 0 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
&lt;br /&gt;
== Linux boot possibilities ==&lt;br /&gt;
=== PIN configuration ===&lt;br /&gt;
Bootloader is responsible for pin configuration. This is done by writing to &#039;&#039;&#039;GPS Port Configuration Register&#039;&#039;&#039;. The value written there is set by:&lt;br /&gt;
 set psc_cfg 91551044&lt;br /&gt;
&lt;br /&gt;
GPS Port Configuration Register values for our boards:&lt;br /&gt;
* original Midam board: 0x90552444&lt;br /&gt;
* RYU_EDU_midam v1.B: 0x91551044&lt;br /&gt;
&lt;br /&gt;
=== Kernel and root filesystem from flash ===&lt;br /&gt;
&lt;br /&gt;
This is the default boot command. If you want to quickly switch several boot combinations, you can store these commands to a variable and use run command to boot linux from flash quickly.&lt;br /&gt;
&lt;br /&gt;
 set bootcmd_linux &#039;set bootargs ${linux_console} ${bootargs_flash}; mw f0000b00 ${psc_cfg}; bootm fc120000 - fc100000&#039;&lt;br /&gt;
 set bootcmd &#039;run bootcmd_linux&#039;&lt;br /&gt;
=== Kernel from flash and root filesystem over NFS===&lt;br /&gt;
&lt;br /&gt;
 set bootcmd_nfsroot &#039;set bootargs ${linux_console} ${bootargs_nfs}; dhcp; mw f0000b00 ${psc_cfg}; bootm fc120000 - fc100000&#039;&lt;br /&gt;
 set bootargs_nfs &#039;root=/dev/nfs nfsroot=/midam rw ip=dhcp&#039;&lt;br /&gt;
 run bootcmd_nfsroot&lt;br /&gt;
&lt;br /&gt;
=== Kernel from TFTP and root filesystem over NFS===&lt;br /&gt;
&lt;br /&gt;
 set serverip 147.32.86.30&lt;br /&gt;
 set nfspath &amp;quot;/home/wsh/ppc/MPC5200/root-shark&amp;quot;&lt;br /&gt;
 set imagefile /srv/tftp/ryu/uImage&lt;br /&gt;
 set devicetreefile /srv/tftp/ryu/shark-ryu.dtb&lt;br /&gt;
 set bootcmd_tftpnfs &#039;dhcp; tftp 800000 ${imagefile}; tftp 7f0000 ${devicetreefile}; set bootargs ${linux_console} root=/dev/nfs nfsroot=${serverip}:${nfspath} rw ip=dhcp; mw f0000b00 ${psc_cfg}; bootm 800000 - 7f0000&#039;&lt;br /&gt;
 run bootcmd_tftpnfs&lt;br /&gt;
&lt;br /&gt;
==== Without DHCP server (static IP configuration) ====&lt;br /&gt;
&lt;br /&gt;
 set ipaddr 192.168.2.3&lt;br /&gt;
 set netmask 255.255.255.0&lt;br /&gt;
 set serverip 192.168.2.2 &lt;br /&gt;
 set imagefile ryu/uImage&lt;br /&gt;
 set devicetreefile ryu/shark-ryu.dtb&lt;br /&gt;
 set nfspath /srv/nfs/root-shark&lt;br /&gt;
 set bootcmd_tftpnfs_static &#039;tftp 800000 ${imagefile}; tftp 7f0000 ${devicetreefile}; set bootargs ${linux_console} root=/dev/nfs nfsroot=${serverip}:${nfspath} rw ip=${ipaddr}; mw f0000b00 ${psc_cfg}; bootm 800000 - 7f0000&#039;&lt;br /&gt;
 set bootcmd &#039;run bootcmd_tftpnfs_static&#039;&lt;br /&gt;
&lt;br /&gt;
=== Updating kernel image in flash memory ===&lt;br /&gt;
&lt;br /&gt;
 set serverip 10.1.1.101&lt;br /&gt;
 set imagefile /srv/tftp/ryu/uImage&lt;br /&gt;
 set devicetreefile /srv/tftp/ryu/shark-ryu.dtb&lt;br /&gt;
 run update_kernel&lt;br /&gt;
&lt;br /&gt;
It is supposed that update_kernel is set to the following value&lt;br /&gt;
 set update_kernel &#039;dhcp; tftp 800000 ${imagefile}; erase fc100000 fc3fffff; cp.b 800000 fc120000 ${filesize}; tftp 800000 ${devicetreefile}; cp.b 800000 fc100000 ${filesize};&#039;&lt;br /&gt;
&lt;br /&gt;
=== Updating root filesystem image in flash memory ===&lt;br /&gt;
&lt;br /&gt;
==== From Linux with NFS root ====&lt;br /&gt;
Erase flash in U-Boot:&lt;br /&gt;
 erase fc400000 ffffffff&lt;br /&gt;
&lt;br /&gt;
Boot Linux with NFS root and run:&lt;br /&gt;
 mount -t jffs2 /dev/mtdblock2 /mnt&lt;br /&gt;
 cd /&lt;br /&gt;
 cp -a `ls | grep -v &#039;\(mnt\|proc\|sys\|tmp\)&#039;` /mnt&lt;br /&gt;
 cd /mnt; mkdir mnt proc sys tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running RT kernel ==&lt;br /&gt;
&lt;br /&gt;
 cyclictest -p 80 -t5 -n&lt;br /&gt;
 0.93 0.68 0.28 1/51 562&lt;br /&gt;
&lt;br /&gt;
 T: 0 (  544) P:80 I:1000 C: 354314 Min:     16 Act:   76 Avg:   69 Max:     190&lt;br /&gt;
 T: 1 (  545) P:79 I:1500 C: 236209 Min:     17 Act:   35 Avg:   53 Max:     131&lt;br /&gt;
 T: 2 (  546) P:78 I:2000 C: 177157 Min:     21 Act:   46 Avg:   56 Max:     123&lt;br /&gt;
 T: 3 (  547) P:77 I:2500 C: 141726 Min:     21 Act:   41 Avg:   53 Max:     155&lt;br /&gt;
 T: 4 (  548) P:76 I:3000 C: 118105 Min:     23 Act:   30 Avg:   56 Max:     126&lt;br /&gt;
&lt;br /&gt;
==== Kernel shark/2.6.33.7-rt29 ====&lt;br /&gt;
&lt;br /&gt;
 root@shark ~&amp;gt; cyclictest -p 80 -t5 -n&lt;br /&gt;
 policy: fifo: loadavg: 117.09 33.86 11.60 1/47 981             &lt;br /&gt;
 &lt;br /&gt;
 T: 0 (  550) P:80 I:1000 C: 293846 Min:     26 Act:   77 Avg:   58 Max:     132&lt;br /&gt;
 T: 1 (  551) P:79 I:1500 C: 195897 Min:     31 Act:   60 Avg:   68 Max:     170&lt;br /&gt;
 T: 2 (  552) P:78 I:2000 C: 146924 Min:     32 Act:   78 Avg:   65 Max:     137&lt;br /&gt;
 T: 3 (  553) P:77 I:2500 C: 117539 Min:     36 Act:   62 Avg:   60 Max:     199&lt;br /&gt;
 T: 4 (  554) P:76 I:3000 C:  97949 Min:     32 Act:   41 Avg:   62 Max:     128&lt;br /&gt;
&lt;br /&gt;
Note: hackbench was executed during the test to load the CPU.&lt;br /&gt;
&lt;br /&gt;
== VxWorks Support ==&lt;br /&gt;
&lt;br /&gt;
=== Booting VxWorks ===&lt;br /&gt;
&lt;br /&gt;
 set ethaddr 00:04:9f:00:27:xx&lt;br /&gt;
 set psc_cfg 91551044&lt;br /&gt;
 set bootcmd_vxworks &#039;set serverip 147.32.87.34; dhcp; mw f0000b00 ${psc_cfg}; tftp 0x100000 vxworks/vxWorks-midam.bin; go 0x100000&#039;&lt;br /&gt;
 set bootcmd &#039;run bootcmd_vxworks&#039;&lt;br /&gt;
 saveenv&lt;br /&gt;
&lt;br /&gt;
Older tests:&lt;br /&gt;
 dhcp; set serverip 147.32.86.187; set bootfile vxWorks.bin; tftp 0x00100000; go 0x00100000&lt;br /&gt;
&lt;br /&gt;
=== Compiling VxWorks ===&lt;br /&gt;
&lt;br /&gt;
It is assumed that VxWorks in installed under &amp;lt;tt&amp;gt;/opt/WindRiver&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/WindRiver/wrenv.sh -p vxworks-6.7&lt;br /&gt;
 cd &amp;lt;bsp_project&amp;gt;&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
VxWorks BSP and kernel projects used for [http://rtime.felk.cvut.cz/psr/ PSR course] can be downloaded [http://rtime.felk.cvut.cz/~sojka/vxworks/midam-vxworks.tar.gz as a tarball].&lt;br /&gt;
&lt;br /&gt;
== RTEMS Support ==&lt;br /&gt;
&lt;br /&gt;
MIDAM MPC5200 board is compatible with [http://www.rtems.org/ RTEMS] [http://www.rtems.org/wiki/index.php/Gen5200#IceCube IceCube] BSP.&lt;br /&gt;
&lt;br /&gt;
The PowerPC [[Cross compilers| cross-compiler]] tool-chain for RTEMS-4.9 branch for Debian Intel 32 and 64-bit hosts&lt;br /&gt;
can be installed from Rtime local DEB repository [ftp://rtime.felk.cvut.cz/debian/pool/rtems-4.9/].&lt;br /&gt;
&lt;br /&gt;
* Add APT source:&lt;br /&gt;
 echo deb ftp://rtime.felk.cvut.cz/debian unstable main  &amp;gt;/etc/apt/sources.list.d/rtime-debs.list&lt;br /&gt;
* Update list of available packages&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
Next packages can be installed from cross-dev section (e.g. using apt-get, aptitude or synaptic)&lt;br /&gt;
* binutils-powerpc-rtems4.10&lt;br /&gt;
* gcc-powerpc-rtems4.10&lt;br /&gt;
* rtems4.10-common&lt;br /&gt;
* rtems4.10-icecube&lt;br /&gt;
&lt;br /&gt;
The configurations used for above binutils, GCC and RTEMS BSP packages build are stored&lt;br /&gt;
in [http://rtime.felk.cvut.cz/gitweb/rtems-devel.git local RTEMS development GIT repository]&lt;br /&gt;
in a [http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/HEAD:/rtems-build/powerpc-rtems build directory for PowerPC architecture].&lt;br /&gt;
&lt;br /&gt;
The short cross-tools build recipe:&lt;br /&gt;
  git clone git://rtime.felk.cvut.cz/rtems-devel.git&lt;br /&gt;
  cd rtems-devel&lt;br /&gt;
  mkdir src&lt;br /&gt;
  cd src&lt;br /&gt;
  tar -xjf path-to/gcc-4.3.4.tar.bz2&lt;br /&gt;
  ln -s gcc-4.3.4 gcc&lt;br /&gt;
  tar -xjf path-to/binutils-2.20&lt;br /&gt;
  ln -s binutils-2.20 binutils&lt;br /&gt;
  tar -xzf path-to/newlib-1.16.0.tar.gz&lt;br /&gt;
  ln -s newlib-1.16.0 newlib&lt;br /&gt;
  cd gcc&lt;br /&gt;
  ln -s ../newlib/newlib .&lt;br /&gt;
  ln -s ../../gcc-patches/4.3.4 patches&lt;br /&gt;
  quilt push -a&lt;br /&gt;
  cd ../newlib&lt;br /&gt;
  ln -s ../../newlib-patches/newlib-1.16.0 patches&lt;br /&gt;
  quilt push -a&lt;br /&gt;
  cd ../..&lt;br /&gt;
  ln -s src/gcc src/binutils src/rtems .&lt;br /&gt;
  ( cd rtems-build/powerpc-rtems/binutils &amp;amp;&amp;amp; ./binutils-powerpc-rtems.cfg &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install )&lt;br /&gt;
  ( cd rtems-build/powerpc-rtems/gcc &amp;amp;&amp;amp; ./gcc-powerpc-rtems.cfg &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install )&lt;br /&gt;
  ( cd rtems-build/powerpc-rtems/rtems-icecube &amp;amp;&amp;amp; ./rtems-mpc5200-sys.cfg &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install )&lt;br /&gt;
&lt;br /&gt;
Applications can be easily build by starting from&lt;br /&gt;
[http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/HEAD:/rtems-omk-template RTEMS application template]&lt;br /&gt;
based on [http://rtime.felk.cvut.cz/omk OMK] rules: &lt;br /&gt;
  cd rtems-omk-template&lt;br /&gt;
  echo &amp;quot;RTEMS_MAKEFILE_PATH=/opt/rtems4.9/powerpc-rtems4.9/icecube&amp;quot; &amp;gt;config.target&lt;br /&gt;
  make default-config all&lt;br /&gt;
&lt;br /&gt;
Compiled application ELF images are located in _compiled/icecube/bin directory. The ELF file needs to be&lt;br /&gt;
be converted into U-boot image to be transferred and started on target board &lt;br /&gt;
 powerpc-rtems4.9-objcopy -R -S -O binary appfoo appfoo.bin&lt;br /&gt;
 cat appfoo.bin | gzip -9 &amp;gt;appfoo.gz&lt;br /&gt;
 mkimage -A ppc -O rtems -T kernel -a 0x00010000 -e 0x00010000 -n RTEMS -d appfoo.gz appfoo.img&lt;br /&gt;
&lt;br /&gt;
The image tranfer and boot sequence can be initiated from target board U-boot prompt &lt;br /&gt;
 mw f0000b00 ${psc_cfg}&lt;br /&gt;
 dhcp&lt;br /&gt;
 #set serverip 192.168.202.251&lt;br /&gt;
 tftp 1000000 appfoo.img&lt;br /&gt;
 bootm&lt;br /&gt;
&lt;br /&gt;
The [http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/blob/HEAD:/rtems-build/powerpc-rtems/rtems-icecube/rtems-mpc5200-mkimg script rtems-mpc5200-mkimg]&lt;br /&gt;
to pack ELF file to U-boot image is part of development repository as well.&lt;br /&gt;
&lt;br /&gt;
=== NFS on RTEMS  ===&lt;br /&gt;
&lt;br /&gt;
Following OMK based example includes configuration required&lt;br /&gt;
to build network and NFS enabled application on RTEMS&lt;br /&gt;
&lt;br /&gt;
[http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/HEAD:/rtems-omk-template/appnet rtems-omk-template/appnet]&lt;br /&gt;
&lt;br /&gt;
Mounting NFS into RTEMS&lt;br /&gt;
 mkdir /mnt&lt;br /&gt;
 mkdir /mnt/nfs&lt;br /&gt;
 mount -t nfs 192.168.2.2:/srv/nfs/root-shark /mnt/nfs&lt;br /&gt;
&lt;br /&gt;
=== Open Real-Time Ethernet (ORTE) on RTEMS  ===&lt;br /&gt;
&lt;br /&gt;
ORTE is an open source C implementation of the Data Distribution&lt;br /&gt;
Service (DDS) and RTPS protocol.&lt;br /&gt;
&lt;br /&gt;
ORTE project home page: http://orte.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
Example fro RTEMS shell is included in ORTE code main repository&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/p/orte/orte/ci/master/tree/orte/examples/rtems-shell/ orte/examples/rtems-shell/]&lt;br /&gt;
&lt;br /&gt;
Running [http://orte.sourceforge.net/ ORTE] manager&lt;br /&gt;
 spawn ortemanager -p 192.168.2.2 -e&lt;br /&gt;
&lt;br /&gt;
Running [http://orte.sourceforge.net/ ORTE] ping&lt;br /&gt;
 spawn orteping -s&lt;br /&gt;
 spawn orteping -p&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:MPC5200]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=MIDAM_MPC5200_DB1&amp;diff=4152</id>
		<title>MIDAM MPC5200 DB1</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=MIDAM_MPC5200_DB1&amp;diff=4152"/>
		<updated>2014-01-23T22:53:44Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Linux kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
&lt;br /&gt;
Two sets of the MIDAM MPC5200 was delivered by the Mikroklima s.r.o. for our purposes. Each set consist of the:&lt;br /&gt;
&lt;br /&gt;
* Shark MPC52000 CPU module (pin compatible with TQ Components TQM5200 module),&lt;br /&gt;
* MPC5200 v1.1 2008/02 carrier board.&lt;br /&gt;
&lt;br /&gt;
Set #1 has s/n: &#039;&#039;&#039;008770&#039;&#039;&#039; and set #2 has s/n: &#039;&#039;&#039;008771&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* [[Media:SHARK_V1_1_DOC_CZ.pdf|SHARK_V1_1_DOC_CZ.pdf‎]]&lt;br /&gt;
* [[Media:SHARK_V1_0_linux_DOC_CZ.pdf|SHARK_V1_0_linux_DOC_CZ.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Schematics and components==&lt;br /&gt;
Download schematics in PDF: [[:File:Midam_expand_v1b.pdf]]&lt;br /&gt;
&lt;br /&gt;
===List of components===&lt;br /&gt;
This list is not complete. It is just a subset of components needed for educational purpose.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER SUPPLY&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 C9  CAP1206 220pF&lt;br /&gt;
 C10 CAP1206 22nF&lt;br /&gt;
 C11 CAP1206 10uF&lt;br /&gt;
 C12 tantal el. 330uF 6.3V D&lt;br /&gt;
 C23 el. 470uF, 50V &lt;br /&gt;
 C29 CAP0805 100n&lt;br /&gt;
 C30 CAP0805 100n&lt;br /&gt;
 C31 CAP0805 100n&lt;br /&gt;
 C32 CAP0805 100n&lt;br /&gt;
 C35 CAP0805 100n&lt;br /&gt;
 C36 47uF10V B&lt;br /&gt;
 C37 47uF10V B&lt;br /&gt;
 C38 47uF10V B&lt;br /&gt;
 C39 47uF10V B&lt;br /&gt;
 D6  STPS2L30A&lt;br /&gt;
 D9  LED 1206 &lt;br /&gt;
 D10 STPS2L30A&lt;br /&gt;
 J7  PWR-CON&lt;br /&gt;
 J10 SMD switch&lt;br /&gt;
 L2  INDUCTOR DR127-150 &lt;br /&gt;
 R19 RES0805 4k7&lt;br /&gt;
 R20 RES0805 5k6&lt;br /&gt;
 R21 RES0805 3k3&lt;br /&gt;
 R25 RES0805 330R&lt;br /&gt;
 U11 STM811SW16F MPU LOW RESET 2.93V&lt;br /&gt;
 U9  ST-L5973D &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MIDAM HEADER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 R34 RES0805 10k&lt;br /&gt;
 R35 RES0805 10k&lt;br /&gt;
 J1  Socket &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;USB-CLIENT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 C5  CAP0805 100nF&lt;br /&gt;
 C26 CAP0805 100n&lt;br /&gt;
 D3  LED 1206 &lt;br /&gt;
 D4  LED 1206 &lt;br /&gt;
 L7  BLM21AG601SN1D FERRITE, BEAD, 0805, 0.21OHM, 0.6A&lt;br /&gt;
 J4  USB-B&lt;br /&gt;
 R9  RES0805 4k7&lt;br /&gt;
 R10 RES0805 10k&lt;br /&gt;
 R11 RES0805 270R&lt;br /&gt;
 R12 RES0805 270R&lt;br /&gt;
 R48 RES0805 10k&lt;br /&gt;
 R49 RES0805 10k&lt;br /&gt;
 U2  FT232RL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EXPAND HEADER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 D5  ULN2803 DIO&lt;br /&gt;
 D11 LED 1206 &lt;br /&gt;
 D12 LED 1206 &lt;br /&gt;
 D13 LED 1206 &lt;br /&gt;
 D14 LED 1206 &lt;br /&gt;
 D15 LED 1206 &lt;br /&gt;
 D16 LED 1206 &lt;br /&gt;
 D17 LED 1206 &lt;br /&gt;
 D18 LED 1206 &lt;br /&gt;
 D19 LED 1206 &lt;br /&gt;
 D20 LED 1206 &lt;br /&gt;
 J8  SMD SWITCH&lt;br /&gt;
 J9  SMD SWITCH&lt;br /&gt;
 R13 RES0805 330R&lt;br /&gt;
 R14 RES0805 1k&lt;br /&gt;
 R15 RES0805 1k&lt;br /&gt;
 R16 RES0805 1k&lt;br /&gt;
 R17 RES0805 330R&lt;br /&gt;
 R18 RES0805 330R&lt;br /&gt;
 R28 RES0805 10k&lt;br /&gt;
 R29 RES0805 10k&lt;br /&gt;
 R30 RES0805 2k&lt;br /&gt;
 R31 RES0805 330R&lt;br /&gt;
 R32 RES0805 2k&lt;br /&gt;
 R33 RES0805 330R&lt;br /&gt;
 R38 RES0805 330R&lt;br /&gt;
 R39 RES0805 330R&lt;br /&gt;
 R40 RES0805 330R&lt;br /&gt;
 R41 RES0805 330R&lt;br /&gt;
 R42 RES0805 330R&lt;br /&gt;
 R43 RES0805 330R&lt;br /&gt;
 R44 RES0805 330R&lt;br /&gt;
 U3  BSS138 ANA&lt;br /&gt;
 U4  BSS138 ANA&lt;br /&gt;
 U6  BSS138 ANA&lt;br /&gt;
 U7  BSS138 ANA&lt;br /&gt;
 U8  BSS138 ANA&lt;br /&gt;
 Q1  BC856ALT1G TRANSISTOR, PNP&lt;br /&gt;
 Q2  BC856ALT1G TRANSISTOR, PNP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ETHERNET&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 C18 CAP0805 22nF&lt;br /&gt;
 J2  TE Connectivity AMP 5-6605758-1&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
Discussion related to this board happen in a [http://rtime.felk.cvut.cz/mailman/listinfo/shark5200 mailing list].&lt;br /&gt;
&lt;br /&gt;
==Board overview==&lt;br /&gt;
&lt;br /&gt;
[[Image:Board overview.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Serial line (system console)==&lt;br /&gt;
&lt;br /&gt;
* Loader system console is attached to the ttyPSC0 port.&lt;br /&gt;
* The &#039;&#039;&#039;ttyPSC0 port is done in the LVTTL 3.3V logic&#039;&#039;&#039;, so appropriate 3.3V to RS-232 converter (e.g. [http://pdfserv.maxim-ic.com/en/ds/MAX3222-MAX3241.pdf MAX3232]) is required for the serial console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Communication parameters:&#039;&#039;&#039;&lt;br /&gt;
* baud rate: 115200 bps&lt;br /&gt;
* bits: 8 bit&lt;br /&gt;
* stop bits: 1 bit&lt;br /&gt;
* Parity: none&lt;br /&gt;
* Flow control: none&lt;br /&gt;
&lt;br /&gt;
==Module memory map==&lt;br /&gt;
The MPC5200B is 32 bit CPU, so it has a 32 bit address space. It is able to address up to 4 294 967 295 B (0xFFFFFFFF) - 4096 MB. The Shark module has been equipped with &#039;&#039;&#039;128 MB&#039;&#039;&#039; DDR RAM and &#039;&#039;&#039;64 MB&#039;&#039;&#039; NOR flash memory.&lt;br /&gt;
* RAM chips: Samsung K4S511632D-UC(L)75, order: 32M x 16&lt;br /&gt;
* Address space &#039;&#039;&#039;BASE address&#039;&#039;&#039; is 0x00000000&lt;br /&gt;
* RAM is from 0x00000000 to 0x08000000 (128 MB)&lt;br /&gt;
&lt;br /&gt;
Flash memory is being mapped at the and of address space (from 3.9375 GB).&lt;br /&gt;
* &#039;&#039;&#039;Flash BASE address&#039;&#039;&#039; is 0xFC000000 (last address is 0xFFFFFFFF)&lt;br /&gt;
* Flash memory size is 0x04000000 (64 MB)&lt;br /&gt;
&lt;br /&gt;
There are three MTD partitions in the flash (defined in shark.dts). The flat device tree file syntax uses first address and length of the partition for its definition.&lt;br /&gt;
* u-Boot (1 MB) from 0x00000000 to 0x00100000, length 0x00100000&lt;br /&gt;
* kernel (3 MB) from 0x00100000 to 0x00400000, length 0x00300000&lt;br /&gt;
* &#039;&#039;&#039;file-system&#039;&#039;&#039; (56 MB) from 0x00400000 to 0x04000000, length 0x03C00000&lt;br /&gt;
All these addresses are offsets against Flash BASE.&lt;br /&gt;
&lt;br /&gt;
==Boot loader==&lt;br /&gt;
These boards are preinstalled with [http://www.denx.de/wiki/DULG/Manual Das u-Boot] boot loader.&lt;br /&gt;
Behaviour of the u-Boot can be handled by its environment variables. Here are some useful commands:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;printenv [variable]&#039;&#039;&#039; - prints complete environment or only given variable.&lt;br /&gt;
*&#039;&#039;&#039;saveenv&#039;&#039;&#039; - commits whole environment in flash memory&lt;br /&gt;
&lt;br /&gt;
For running linux kernel &amp;gt;2.6.25 it&#039;s necessary to have u-Boot 1.3.2 or later, which is able to hand over flat device tree to the kernel. When older revision is present, it is necessary to upgrade. Binary of u-Boot can be downloaded here: [ftp://rtime.felk.cvut.cz/shark-mpc5200/u-boot.bin u-boot.bin].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;U-Boot upgrade howto:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the upgrade procedure it is necessary to proceed with utmost precaution, because &#039;&#039;&#039;there is no backup image&#039;&#039;&#039; of the u-Boot in the flash for recovery purposes. Fail-flash recovery isn&#039;t possible without JTAG interface. So, you have been warned. In future builds of the u-Boot there should be a support for recovery image. Follow this commands to upgrade U-Boot&#039;s image in flash memory:&lt;br /&gt;
&lt;br /&gt;
 dhcp&lt;br /&gt;
 tftp 800000 u-boot.bin&lt;br /&gt;
 protect off fc000000 fc09ffff&lt;br /&gt;
 erase fc000000 fc09ffff&lt;br /&gt;
 cp.b 800000 fc000000 ${filesize}&lt;br /&gt;
 protect on fc000000 fc09ffff&lt;br /&gt;
&lt;br /&gt;
Now reboot and than commit new default environment:&lt;br /&gt;
&lt;br /&gt;
 saveenv&lt;br /&gt;
&lt;br /&gt;
===How to access U-Boot environment variables from Linux ?===&lt;br /&gt;
The U-Boot environment variables is possible to read and write trough utilities ... TO DO&lt;br /&gt;
&lt;br /&gt;
==Cross-tool chain==&lt;br /&gt;
Necessary cross-tool chain for PowerPC platform can be build using Crossdev tool. You can install Crossdev on your Gentoo distro very simply:&lt;br /&gt;
&lt;br /&gt;
 emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
Some dependencies may go before. Building of tool chain itself will take some time, so let&#039;s go to take some coffee.&lt;br /&gt;
&lt;br /&gt;
 crossdev --b 2.18-r3 --k 2.6.23-r3 --g 4.1.2 --without-headers -t powerpc-unknown-linux-gnu&lt;br /&gt;
&lt;br /&gt;
For Debian, you can use a [[Cross compilers|packages]] prepared by Pavel Píša.&lt;br /&gt;
&lt;br /&gt;
== Linux kernel ==&lt;br /&gt;
&lt;br /&gt;
=== Instructions for recent kernels ===&lt;br /&gt;
&lt;br /&gt;
You need [https://rtime.felk.cvut.cz/gitweb/shark/linux.git/commitdiff/87a8e2b9406cc7f8779f02047e0cd1594c570b78 this simple patch] to boot Linux on MIDAM/RYU board.&lt;br /&gt;
&lt;br /&gt;
=== Instructions for old kernels ===&lt;br /&gt;
&lt;br /&gt;
It is necessary to use patched Linux sources. We maintain them in our [[Git]] [http://rtime.felk.cvut.cz/gitweb/shark/linux.git repository]. You can clone it by:&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/shark/linux.git&lt;br /&gt;
&lt;br /&gt;
Now you can choose the kernel revision you want to compile:&lt;br /&gt;
&lt;br /&gt;
 git branch -r # there you can see all branches available&lt;br /&gt;
 git checkout origin/shark/2.6.28.8 # choose the one you desire&lt;br /&gt;
&lt;br /&gt;
Note: See [[Linux sources]] for the description of the repository and patch management techniques we use.&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s begin with the kernel configuration and compilation. The following recipe can be used to compile the kernel out of source directory, which is helpful if you want to compile a single kernel version with several configurations.&lt;br /&gt;
* &amp;lt;tt&amp;gt;cd linux&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;mkdir -p _build/midam&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;cd _build/midam&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy the following code to &amp;lt;tt&amp;gt;GNUmakefile&amp;lt;/tt&amp;gt; file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
VERSION = 2&lt;br /&gt;
PATCHLEVEL = 6&lt;br /&gt;
&lt;br /&gt;
KERNELSRC    := $(shell cd ../..; pwd)&lt;br /&gt;
KERNELOUTPUT := $(patsubst $(KERNELSRC)/%,%,$(shell pwd))&lt;br /&gt;
&lt;br /&gt;
KERNELRELEASE = $(shell cat include/config/kernel.release 2&amp;gt; /dev/null)&lt;br /&gt;
&lt;br /&gt;
MAKEFLAGS += --no-print-directory&lt;br /&gt;
&lt;br /&gt;
ARCH=powerpc&lt;br /&gt;
CROSS_COMPILE=powerpc-linux-gnu-&lt;br /&gt;
&lt;br /&gt;
TFTPBOOT=/var/lib/tftpboot/ryu&lt;br /&gt;
&lt;br /&gt;
export INSTALL_MOD_PATH=$(KERNELSRC)/../MPC5200_root&lt;br /&gt;
&lt;br /&gt;
.PHONY: install all $(MAKECMDGOALS)&lt;br /&gt;
&lt;br /&gt;
all:&lt;br /&gt;
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELSRC) O=$(KERNELOUTPUT)&lt;br /&gt;
&lt;br /&gt;
Makefile:;&lt;br /&gt;
&lt;br /&gt;
$(filter-out all Makefile,$(MAKECMDGOALS)) %/:&lt;br /&gt;
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELSRC) O=$(KERNELOUTPUT) $@&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;make 52xx/midam_defconfig&amp;lt;/tt&amp;gt; # or use &amp;lt;tt&amp;gt;52xx/ryu_defconfig&amp;lt;/tt&amp;gt; for RYU board&lt;br /&gt;
* &amp;lt;tt&amp;gt;make menuconfig&amp;lt;/tt&amp;gt;    # if you need additional configuration&lt;br /&gt;
* &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; # start compilation; &amp;lt;tt&amp;gt;u-boot-tools&amp;lt;/tt&amp;gt; should be properly installed before compilation&lt;br /&gt;
&lt;br /&gt;
The compiled image can be found in linux/_build/midam/arch/powerpc/boot&lt;br /&gt;
It is the file uImage. Copy it to your tftpboot directory.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to build the Flat Device Tree file&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Since kernel version 2.6.25 is description of the platform hardware provided trough the Flat Device Tree. Necessary sources are now part of the kernel sources. Appropriate image could be build with this command:&lt;br /&gt;
&lt;br /&gt;
 make ARCH=powerpc shark.dtb DTS_FLAGS=&amp;quot;-S65536&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If DTS_FLAGS parameter omitted than following error will occur, because there is not enough space in the file, where the u-Boot can store some additional data about buses timing, etc.:&lt;br /&gt;
&lt;br /&gt;
 WARNING: could not create /chosen FDT_ERR_NOSPACE.&lt;br /&gt;
 ERROR: /chosen node create failed - must RESET the board to recover.&lt;br /&gt;
&lt;br /&gt;
==Root file system==&lt;br /&gt;
&lt;br /&gt;
New root file system has been built for MIDAM MPC5200 board. It&#039;s based on:&lt;br /&gt;
* Vanilla linux kernel v2.6.26.5&lt;br /&gt;
* Busybox v1.12.1&lt;br /&gt;
* Dropbear v0.51&lt;br /&gt;
* thttpd v2.25b&lt;br /&gt;
&lt;br /&gt;
TODO: How to build a new root file system&lt;br /&gt;
&lt;br /&gt;
== TO DO - UnionFS for root FS in flash ==&lt;br /&gt;
&lt;br /&gt;
For long term usage is not really good to repeatedly overwrite block in the NOR flash chip, because memory cells are being punished. So it would be better to use jffs2 root FS only as RO file system and create RW tmpfs of same size. UnionFS than could be used to merge these two file systems and provide one RW file system. Changes in FS as a lock and log files can be made without permanent effect.&lt;br /&gt;
&lt;br /&gt;
==SocketCan==&lt;br /&gt;
&lt;br /&gt;
SocketCan is currently tested only with kernels 2.6.28 or lower. If you want to use Socket Can, it is currently recommended to use kernel 2.6.28. To enable SocketCan support, it is neccesary to run&lt;br /&gt;
&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
before building the kernel and set the following:&lt;br /&gt;
&lt;br /&gt;
 Networking Support / CAN bus subsystem support (yes)&lt;br /&gt;
 Raw CAN Protocol (raw access with CAN-ID filtering) (yes)&lt;br /&gt;
 CAN Device Drivers / Virtual Local CAN Interface (vcan) (yes)&lt;br /&gt;
 Prompt for platform CAN drivers with sysfs support (yes)&lt;br /&gt;
 Support for a Freescale MSCAN based chips (yes)&lt;br /&gt;
 Freescale MPC5200 onboard CAN controller (yes)&lt;br /&gt;
&lt;br /&gt;
 make KERNELDIR=/home/marsark/src/linux-2.6.26.5/_build/mpc5200_ryu/ CONFIG_CAN_MPC52XX=m CONFIG_CAN_MSCAN=m&lt;br /&gt;
&lt;br /&gt;
CAN subsystem init script:&lt;br /&gt;
&lt;br /&gt;
 modprobe can&lt;br /&gt;
 modprobe mscan-mpc52xx&lt;br /&gt;
 modprobe can-raw&lt;br /&gt;
&lt;br /&gt;
 echo 1000000 &amp;gt; /sys/class/net/can0/can_bittiming/bitrate&lt;br /&gt;
 echo 1000000 &amp;gt; /sys/class/net/can1/can_bittiming/bitrate&lt;br /&gt;
&lt;br /&gt;
If the above commands fail, you have a new version of socketcan and you need to use ip tool to set bitrate. See bellow.&lt;br /&gt;
&lt;br /&gt;
 ifconfig can0 up&lt;br /&gt;
 ifconfig can1 up&lt;br /&gt;
&lt;br /&gt;
Warning - the ip tool is not working properly yet!&lt;br /&gt;
&lt;br /&gt;
Test the setup:&lt;br /&gt;
&lt;br /&gt;
 cansend can0 123#4567&lt;br /&gt;
&lt;br /&gt;
=== Using ip tool ===&lt;br /&gt;
&lt;br /&gt;
 ip link set can0 type can bitrate 1000000&lt;br /&gt;
 ip link set up dev can0&lt;br /&gt;
 ip link set can1 type can bitrate 1000000&lt;br /&gt;
 ip link set up dev can1&lt;br /&gt;
&lt;br /&gt;
==== Compilation ====&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.kernel.org/pub/scm/network/iproute2/iproute2.git&lt;br /&gt;
 cd iproute2&lt;br /&gt;
 make CC=powerpc-linux-gnu-gcc&lt;br /&gt;
&lt;br /&gt;
The make will probably fail but fortunately the &amp;lt;tt&amp;gt;ip/ip&amp;lt;/tt&amp;gt; is already compiled.&lt;br /&gt;
&lt;br /&gt;
== GPIO how set pin value ==&lt;br /&gt;
In MPC5200 have two kind of GPIO. The first one have wakeup capability, the second one is standard GPIO pins. Each of this sets have its own register sets, so some PSC ports are splitted in to two parts. See MOC5200B documentation section 7.3.2.1 and 7.3.2.2. The availability GPIO of PSC depends on GPS Port Configuration Register settings. For RYU boards is available all GPIO in PSC3 port (HW notation).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO: kernel still fails to initialise GPIO drivers on our boards !!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cat /sys/class/gpio/gpiochip248/label    //todo&lt;br /&gt;
&lt;br /&gt;
=== Setting GPIO with wakeup capability ===&lt;br /&gt;
GPIO with wakeup using &lt;br /&gt;
 /sys/class/gpio/gpiochip248/&lt;br /&gt;
&lt;br /&gt;
Pin notation:&lt;br /&gt;
  0 -&amp;gt; GPIO_WKUP_7&lt;br /&gt;
  1 -&amp;gt; GPIO_WKUP_6&lt;br /&gt;
  2 -&amp;gt; PSC6_1&lt;br /&gt;
  3 -&amp;gt; PSC6_0&lt;br /&gt;
  4 -&amp;gt; ETH_17&lt;br /&gt;
  5 -&amp;gt; PSC3_9&lt;br /&gt;
  6 -&amp;gt; PSC2_4&lt;br /&gt;
  7 -&amp;gt; PSC1_4&lt;br /&gt;
&lt;br /&gt;
Final value is 248 + requested pin  (example for PSC2_4 248+6 =&amp;gt; 254)&lt;br /&gt;
&lt;br /&gt;
Enable PIN for GPIO:&lt;br /&gt;
 echo 254 &amp;gt;/sys/class/gpio/export&lt;br /&gt;
Set GPIO as output or input&lt;br /&gt;
 echo out &amp;gt;/sys/class/gpio/gpio254/direction&lt;br /&gt;
 echo in &amp;gt;/sys/class/gpio/gpio254/direction&lt;br /&gt;
Set GPIO to 0 or 1 if configured as output pin&lt;br /&gt;
 echo 0 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
 echo 1 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Setting standard GPIO  not tested ===&lt;br /&gt;
Standard GPIO using &lt;br /&gt;
 /sys/class/gpio/gpiochip216/&lt;br /&gt;
&lt;br /&gt;
Pin notation:&lt;br /&gt;
 0..1  &amp;gt; reserved&lt;br /&gt;
 2..3  &amp;gt; IRDA&lt;br /&gt;
 4..7  &amp;gt; ETHR&lt;br /&gt;
 8..11 &amp;gt; reserved&lt;br /&gt;
 12..15 &amp;gt; USB&lt;br /&gt;
 16..17 &amp;gt; reserved&lt;br /&gt;
 18..23 &amp;gt; PSC3&lt;br /&gt;
 24..27 &amp;gt; PSC2&lt;br /&gt;
 28..31 &amp;gt; PSC1 &lt;br /&gt;
&lt;br /&gt;
Final value is 216 + requested pin  (example for PSC3_3 216+20 =&amp;gt; 236)&lt;br /&gt;
&lt;br /&gt;
Enable PIN for GPIO:&lt;br /&gt;
 echo 236 &amp;gt;/sys/class/gpio/export&lt;br /&gt;
Set GPIO as output or input&lt;br /&gt;
 echo out &amp;gt;/sys/class/gpio/gpio236/direction&lt;br /&gt;
 echo in &amp;gt;/sys/class/gpio/gpio236/direction&lt;br /&gt;
Set GPIO to 0 or 1 if configured as output pin&lt;br /&gt;
 echo 0 &amp;gt;/sys/class/gpio/gpio236/value&lt;br /&gt;
 echo 1 &amp;gt;/sys/class/gpio/gpio236/value&lt;br /&gt;
&lt;br /&gt;
== RS485/RS422 selection on PSC1 ==&lt;br /&gt;
&lt;br /&gt;
In MPC5200 or schematic it is PSC2. In linux is PSC numbered from 0 so it is PSC1.&lt;br /&gt;
 &lt;br /&gt;
Pin configuration:&lt;br /&gt;
 echo 254 &amp;gt;/sys/class/gpio/export&lt;br /&gt;
 echo out &amp;gt;/sys/class/gpio/gpio254/direction&lt;br /&gt;
 &lt;br /&gt;
Run for RS485:&lt;br /&gt;
 echo 1 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
&lt;br /&gt;
Run for RS422:&lt;br /&gt;
 echo 0 &amp;gt;/sys/class/gpio/gpio254/value&lt;br /&gt;
&lt;br /&gt;
== Linux boot possibilities ==&lt;br /&gt;
=== PIN configuration ===&lt;br /&gt;
Bootloader is responsible for pin configuration. This is done by writing to &#039;&#039;&#039;GPS Port Configuration Register&#039;&#039;&#039;. The value written there is set by:&lt;br /&gt;
 set psc_cfg 91551044&lt;br /&gt;
&lt;br /&gt;
GPS Port Configuration Register values for our boards:&lt;br /&gt;
* original Midam board: 0x90552444&lt;br /&gt;
* RYU_EDU_midam v1.B: 0x91551044&lt;br /&gt;
&lt;br /&gt;
=== Kernel and root filesystem from flash ===&lt;br /&gt;
&lt;br /&gt;
This is the default boot command. If you want to quickly switch several boot combinations, you can store these commands to a variable and use run command to boot linux from flash quickly.&lt;br /&gt;
&lt;br /&gt;
 set bootcmd_linux &#039;set bootargs ${linux_console} ${bootargs_flash}; mw f0000b00 ${psc_cfg}; bootm fc120000 - fc100000&#039;&lt;br /&gt;
 set bootcmd &#039;run bootcmd_linux&#039;&lt;br /&gt;
=== Kernel from flash and root filesystem over NFS===&lt;br /&gt;
&lt;br /&gt;
 set bootcmd_nfsroot &#039;set bootargs ${linux_console} ${bootargs_nfs}; dhcp; mw f0000b00 ${psc_cfg}; bootm fc120000 - fc100000&#039;&lt;br /&gt;
 set bootargs_nfs &#039;root=/dev/nfs nfsroot=/midam rw ip=dhcp&#039;&lt;br /&gt;
 run bootcmd_nfsroot&lt;br /&gt;
&lt;br /&gt;
=== Kernel from TFTP and root filesystem over NFS===&lt;br /&gt;
&lt;br /&gt;
 set serverip 147.32.86.30&lt;br /&gt;
 set nfspath &amp;quot;/home/wsh/ppc/MPC5200/root-shark&amp;quot;&lt;br /&gt;
 set imagefile /srv/tftp/ryu/uImage&lt;br /&gt;
 set devicetreefile /srv/tftp/ryu/shark-ryu.dtb&lt;br /&gt;
 set bootcmd_tftpnfs &#039;dhcp; tftp 800000 ${imagefile}; tftp 7f0000 ${devicetreefile}; set bootargs ${linux_console} root=/dev/nfs nfsroot=${serverip}:${nfspath} rw ip=dhcp; mw f0000b00 ${psc_cfg}; bootm 800000 - 7f0000&#039;&lt;br /&gt;
 run bootcmd_tftpnfs&lt;br /&gt;
&lt;br /&gt;
==== Without DHCP server (static IP configuration) ====&lt;br /&gt;
&lt;br /&gt;
 set ipaddr 192.168.2.3&lt;br /&gt;
 set netmask 255.255.255.0&lt;br /&gt;
 set serverip 192.168.2.2 &lt;br /&gt;
 set imagefile ryu/uImage&lt;br /&gt;
 set devicetreefile ryu/shark-ryu.dtb&lt;br /&gt;
 set nfspath /srv/nfs/root-shark&lt;br /&gt;
 set bootcmd_tftpnfs_static &#039;tftp 800000 ${imagefile}; tftp 7f0000 ${devicetreefile}; set bootargs ${linux_console} root=/dev/nfs nfsroot=${serverip}:${nfspath} rw ip=${ipaddr}; mw f0000b00 ${psc_cfg}; bootm 800000 - 7f0000&#039;&lt;br /&gt;
 set bootcmd &#039;run bootcmd_tftpnfs_static&#039;&lt;br /&gt;
&lt;br /&gt;
=== Updating kernel image in flash memory ===&lt;br /&gt;
&lt;br /&gt;
 set serverip 10.1.1.101&lt;br /&gt;
 set imagefile /srv/tftp/ryu/uImage&lt;br /&gt;
 set devicetreefile /srv/tftp/ryu/shark-ryu.dtb&lt;br /&gt;
 run update_kernel&lt;br /&gt;
&lt;br /&gt;
It is supposed that update_kernel is set to the following value&lt;br /&gt;
 set update_kernel &#039;dhcp; tftp 800000 ${imagefile}; erase fc100000 fc3fffff; cp.b 800000 fc120000 ${filesize}; tftp 800000 ${devicetreefile}; cp.b 800000 fc100000 ${filesize};&#039;&lt;br /&gt;
&lt;br /&gt;
=== Updating root filesystem image in flash memory ===&lt;br /&gt;
&lt;br /&gt;
==== From Linux with NFS root ====&lt;br /&gt;
Erase flash in U-Boot:&lt;br /&gt;
 erase fc400000 ffffffff&lt;br /&gt;
&lt;br /&gt;
Boot Linux with NFS root and run:&lt;br /&gt;
 mount -t jffs2 /dev/mtdblock2 /mnt&lt;br /&gt;
 cd /&lt;br /&gt;
 cp -a `ls | grep -v &#039;\(mnt\|proc\|sys\|tmp\)&#039;` /mnt&lt;br /&gt;
 cd /mnt; mkdir mnt proc sys tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running RT kernel ==&lt;br /&gt;
&lt;br /&gt;
 cyclictest -p 80 -t5 -n&lt;br /&gt;
 0.93 0.68 0.28 1/51 562&lt;br /&gt;
&lt;br /&gt;
 T: 0 (  544) P:80 I:1000 C: 354314 Min:     16 Act:   76 Avg:   69 Max:     190&lt;br /&gt;
 T: 1 (  545) P:79 I:1500 C: 236209 Min:     17 Act:   35 Avg:   53 Max:     131&lt;br /&gt;
 T: 2 (  546) P:78 I:2000 C: 177157 Min:     21 Act:   46 Avg:   56 Max:     123&lt;br /&gt;
 T: 3 (  547) P:77 I:2500 C: 141726 Min:     21 Act:   41 Avg:   53 Max:     155&lt;br /&gt;
 T: 4 (  548) P:76 I:3000 C: 118105 Min:     23 Act:   30 Avg:   56 Max:     126&lt;br /&gt;
&lt;br /&gt;
==== Kernel shark/2.6.33.7-rt29 ====&lt;br /&gt;
&lt;br /&gt;
 root@shark ~&amp;gt; cyclictest -p 80 -t5 -n&lt;br /&gt;
 policy: fifo: loadavg: 117.09 33.86 11.60 1/47 981             &lt;br /&gt;
 &lt;br /&gt;
 T: 0 (  550) P:80 I:1000 C: 293846 Min:     26 Act:   77 Avg:   58 Max:     132&lt;br /&gt;
 T: 1 (  551) P:79 I:1500 C: 195897 Min:     31 Act:   60 Avg:   68 Max:     170&lt;br /&gt;
 T: 2 (  552) P:78 I:2000 C: 146924 Min:     32 Act:   78 Avg:   65 Max:     137&lt;br /&gt;
 T: 3 (  553) P:77 I:2500 C: 117539 Min:     36 Act:   62 Avg:   60 Max:     199&lt;br /&gt;
 T: 4 (  554) P:76 I:3000 C:  97949 Min:     32 Act:   41 Avg:   62 Max:     128&lt;br /&gt;
&lt;br /&gt;
Note: hackbench was executed during the test to load the CPU.&lt;br /&gt;
&lt;br /&gt;
== VxWorks Support ==&lt;br /&gt;
&lt;br /&gt;
=== Booting VxWorks ===&lt;br /&gt;
&lt;br /&gt;
 set ethaddr 00:04:9f:00:27:xx&lt;br /&gt;
 set psc_cfg 91551044&lt;br /&gt;
 set bootcmd_vxworks &#039;set serverip 147.32.87.34; dhcp; mw f0000b00 ${psc_cfg}; tftp 0x100000 vxworks/vxWorks-midam.bin; go 0x100000&#039;&lt;br /&gt;
 set bootcmd &#039;run bootcmd_vxworks&#039;&lt;br /&gt;
 saveenv&lt;br /&gt;
&lt;br /&gt;
Older tests:&lt;br /&gt;
 dhcp; set serverip 147.32.86.187; set bootfile vxWorks.bin; tftp 0x00100000; go 0x00100000&lt;br /&gt;
&lt;br /&gt;
=== Compiling VxWorks ===&lt;br /&gt;
&lt;br /&gt;
It is assumed that VxWorks in installed under &amp;lt;tt&amp;gt;/opt/WindRiver&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/WindRiver/wrenv.sh -p vxworks-6.7&lt;br /&gt;
 cd &amp;lt;bsp_project&amp;gt;&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
VxWorks BSP and kernel projects used for [http://rtime.felk.cvut.cz/psr/ PSR course] can be downloaded [http://rtime.felk.cvut.cz/~sojka/vxworks/midam-vxworks.tar.gz as a tarball].&lt;br /&gt;
&lt;br /&gt;
== RTEMS Support ==&lt;br /&gt;
&lt;br /&gt;
MIDAM MPC5200 board is compatible with [http://www.rtems.org/ RTEMS] [http://www.rtems.org/wiki/index.php/Gen5200#IceCube IceCube] BSP.&lt;br /&gt;
&lt;br /&gt;
The PowerPC [[Cross compilers| cross-compiler]] tool-chain for RTEMS-4.9 branch for Debian Intel 32 and 64-bit hosts&lt;br /&gt;
can be installed from Rtime local DEB repository [ftp://rtime.felk.cvut.cz/debian/pool/rtems-4.9/].&lt;br /&gt;
&lt;br /&gt;
* Add APT source:&lt;br /&gt;
 echo deb ftp://rtime.felk.cvut.cz/debian unstable main  &amp;gt;/etc/apt/sources.list.d/rtime-debs.list&lt;br /&gt;
* Update list of available packages&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
Next packages can be installed from cross-dev section (e.g. using apt-get, aptitude or synaptic)&lt;br /&gt;
* binutils-powerpc-rtems4.10&lt;br /&gt;
* gcc-powerpc-rtems4.10&lt;br /&gt;
* rtems4.10-common&lt;br /&gt;
* rtems4.10-icecube&lt;br /&gt;
&lt;br /&gt;
The configurations used for above binutils, GCC and RTEMS BSP packages build are stored&lt;br /&gt;
in [http://rtime.felk.cvut.cz/gitweb/rtems-devel.git local RTEMS development GIT repository]&lt;br /&gt;
in a [http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/HEAD:/rtems-build/powerpc-rtems build directory for PowerPC architecture].&lt;br /&gt;
&lt;br /&gt;
The short cross-tools build recipe:&lt;br /&gt;
  git clone git://rtime.felk.cvut.cz/rtems-devel.git&lt;br /&gt;
  cd rtems-devel&lt;br /&gt;
  mkdir src&lt;br /&gt;
  cd src&lt;br /&gt;
  tar -xjf path-to/gcc-4.3.4.tar.bz2&lt;br /&gt;
  ln -s gcc-4.3.4 gcc&lt;br /&gt;
  tar -xjf path-to/binutils-2.20&lt;br /&gt;
  ln -s binutils-2.20 binutils&lt;br /&gt;
  tar -xzf path-to/newlib-1.16.0.tar.gz&lt;br /&gt;
  ln -s newlib-1.16.0 newlib&lt;br /&gt;
  cd gcc&lt;br /&gt;
  ln -s ../newlib/newlib .&lt;br /&gt;
  ln -s ../../gcc-patches/4.3.4 patches&lt;br /&gt;
  quilt push -a&lt;br /&gt;
  cd ../newlib&lt;br /&gt;
  ln -s ../../newlib-patches/newlib-1.16.0 patches&lt;br /&gt;
  quilt push -a&lt;br /&gt;
  cd ../..&lt;br /&gt;
  ln -s src/gcc src/binutils src/rtems .&lt;br /&gt;
  ( cd rtems-build/powerpc-rtems/binutils &amp;amp;&amp;amp; ./binutils-powerpc-rtems.cfg &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install )&lt;br /&gt;
  ( cd rtems-build/powerpc-rtems/gcc &amp;amp;&amp;amp; ./gcc-powerpc-rtems.cfg &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install )&lt;br /&gt;
  ( cd rtems-build/powerpc-rtems/rtems-icecube &amp;amp;&amp;amp; ./rtems-mpc5200-sys.cfg &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install )&lt;br /&gt;
&lt;br /&gt;
Applications can be easily build by starting from&lt;br /&gt;
[http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/HEAD:/rtems-omk-template RTEMS application template]&lt;br /&gt;
based on [http://rtime.felk.cvut.cz/omk OMK] rules: &lt;br /&gt;
  cd rtems-omk-template&lt;br /&gt;
  echo &amp;quot;RTEMS_MAKEFILE_PATH=/opt/rtems4.9/powerpc-rtems4.9/icecube&amp;quot; &amp;gt;config.target&lt;br /&gt;
  make default-config all&lt;br /&gt;
&lt;br /&gt;
Compiled application ELF images are located in _compiled/icecube/bin directory. The ELF file needs to be&lt;br /&gt;
be converted into U-boot image to be transferred and started on target board &lt;br /&gt;
 powerpc-rtems4.9-objcopy -R -S -O binary appfoo appfoo.bin&lt;br /&gt;
 cat appfoo.bin | gzip -9 &amp;gt;appfoo.gz&lt;br /&gt;
 mkimage -A ppc -O rtems -T kernel -a 0x00010000 -e 0x00010000 -n RTEMS -d appfoo.gz appfoo.img&lt;br /&gt;
&lt;br /&gt;
The image tranfer and boot sequence can be initiated from target board U-boot prompt &lt;br /&gt;
 mw f0000b00 ${psc_cfg}&lt;br /&gt;
 dhcp&lt;br /&gt;
 #set serverip 192.168.202.251&lt;br /&gt;
 tftp 1000000 appfoo.img&lt;br /&gt;
 bootm&lt;br /&gt;
&lt;br /&gt;
The [http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/blob/HEAD:/rtems-build/powerpc-rtems/rtems-icecube/rtems-mpc5200-mkimg script rtems-mpc5200-mkimg]&lt;br /&gt;
to pack ELF file to U-boot image is part of development repository as well.&lt;br /&gt;
&lt;br /&gt;
=== NFS on RTEMS  ===&lt;br /&gt;
&lt;br /&gt;
Following OMK based example includes configuration required&lt;br /&gt;
to build network and NFS enabled application on RTEMS&lt;br /&gt;
&lt;br /&gt;
[http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/HEAD:/rtems-omk-template/appnet rtems-omk-template/appnet]&lt;br /&gt;
&lt;br /&gt;
Mounting NFS into RTEMS&lt;br /&gt;
 mkdir /mnt&lt;br /&gt;
 mkdir /mnt/nfs&lt;br /&gt;
 mount -t nfs 192.168.2.2:/srv/nfs/root-shark /mnt/nfs&lt;br /&gt;
&lt;br /&gt;
=== Open Real-Time Ethernet (ORTE) on RTEMS  ===&lt;br /&gt;
&lt;br /&gt;
ORTE is an open source C implementation of the Data Distribution&lt;br /&gt;
Service (DDS) and RTPS protocol.&lt;br /&gt;
&lt;br /&gt;
ORTE project home page: http://orte.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
Example fro RTEMS shell is included in ORTE code main repository&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/p/orte/orte/ci/master/tree/orte/examples/rtems-shell/ orte/examples/rtems-shell/]&lt;br /&gt;
&lt;br /&gt;
Running [http://orte.sourceforge.net/ ORTE] manager&lt;br /&gt;
 spawn ortemanager -p 192.168.2.2 -e&lt;br /&gt;
&lt;br /&gt;
Running [http://orte.sourceforge.net/ ORTE] ping&lt;br /&gt;
 spawn orteping -s&lt;br /&gt;
 spawn orteping -p&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:MPC5200]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4146</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4146"/>
		<updated>2013-11-01T16:23:48Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Cloning the repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (login or email) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
Such repository is by default accessible only to the creator. If you want this repository to be public, run&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «login»/«whatever» + READERS @all&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for public repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
 git clone http://rtime.felk.cvut.cz/git/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4145</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4145"/>
		<updated>2013-11-01T16:22:43Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Automatic creation of repositories (staff members only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (login or email) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
Such repository is by default accessible only to the creator. If you want this repository to be public, run&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «login»/«whatever» + READERS @all&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for public repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4144</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4144"/>
		<updated>2013-11-01T16:19:52Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Creating repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (login or email) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4143</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4143"/>
		<updated>2013-11-01T16:18:02Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Getting write access to repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who send the following information to the [http://rtime.felk.cvut.cz/~sojka/ administrator]:&lt;br /&gt;
&lt;br /&gt;
# OpenSSH public key&lt;br /&gt;
# Login name (for ČVUT people) or email address (for others). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4142</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4142"/>
		<updated>2013-11-01T16:14:52Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online].&lt;br /&gt;
&lt;br /&gt;
In addition to gitolite repositories, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]]. This does not require any coordination with the administrator.&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4123</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4123"/>
		<updated>2013-09-12T13:47:24Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Getting write access to repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). &lt;br /&gt;
&lt;br /&gt;
=== SSH key creation ===&lt;br /&gt;
&lt;br /&gt;
The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Password-protected keys ===&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the passphrase, it will need to be entered whenever you want to push to or pull from the server. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command (or Pageant program under Windows) you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4122</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4122"/>
		<updated>2013-09-12T13:43:37Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Getting write access to repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose [[Media:Git-gui-key.jpg|Help -&amp;gt; Show SSH key -&amp;gt; Generate key]].&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to [[Media:git-plink.jpg|use Pling]] during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=File:Git-gui-key.jpg&amp;diff=4121</id>
		<title>File:Git-gui-key.jpg</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=File:Git-gui-key.jpg&amp;diff=4121"/>
		<updated>2013-09-12T13:41:01Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=File:Putty-key-import.png&amp;diff=4120</id>
		<title>File:Putty-key-import.png</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=File:Putty-key-import.png&amp;diff=4120"/>
		<updated>2013-09-12T13:40:51Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=File:Git-plink.jpg&amp;diff=4119</id>
		<title>File:Git-plink.jpg</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=File:Git-plink.jpg&amp;diff=4119"/>
		<updated>2013-09-12T13:40:36Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=File:Git-path.jpg&amp;diff=4118</id>
		<title>File:Git-path.jpg</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=File:Git-path.jpg&amp;diff=4118"/>
		<updated>2013-09-12T13:40:26Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4117</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4117"/>
		<updated>2013-09-12T13:39:49Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Getting write access to repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# Under Linux/Unix (or in Git Bash under Windows) run: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# In Git Gui (under Linux or Windows) choose &#039;&#039;Help -&amp;gt; Show SSH key -&amp;gt; Generate key&#039;&#039;.&lt;br /&gt;
# Under Windows use PuTTYgen. Use this if you have chosen to use Pling during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4116</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4116"/>
		<updated>2013-09-12T13:37:30Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Getting write access to repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# under Linux/Unix (or in [http://code.google.com/p/msysgit/ MSysGit] shell in Windows) by: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# in Git Gui (under Linux or Windows) by choosing Help -&amp;gt; Show SSH key -&amp;gt; Generate key.&lt;br /&gt;
# under Windows with PuTTYgen. Use this if you have chosen to use Pling during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4115</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4115"/>
		<updated>2013-09-12T13:37:16Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Getting write access to repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created with one of the following ways:&lt;br /&gt;
&lt;br /&gt;
# under Linux/Unix (or in [http://code.google.com/p/msysgit/ MSysGit] shell in Windows) by: &amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
# in Git Gui (under Linux or Windows) by choosing Help -&amp;gt; Show SSH key -&amp;gt; Generate key&lt;br /&gt;
# under Windows with PuTTYgen. Use this if you have chosen to use Pling during Git installation.&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4087</id>
		<title>TMS570LS3137</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4087"/>
		<updated>2013-07-10T08:43:49Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* CCS5 in Ubuntu 12.04 64bits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TMS570LS31x HDK Kit.jpg|right|300px]]&lt;br /&gt;
[[File:Rpp.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://www.ti.com/product/tms570ls3137 Main TI page] containing datasheets.&lt;br /&gt;
* [http://e2e.ti.com/support/microcontrollers/hercules/f/312.aspx TI TMS570 related forum]&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:TMS570 TMS570 Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration LwIP integration]&lt;br /&gt;
&lt;br /&gt;
* [[Media:Studim_procesoru.pdf]] Notes from documentation (in Czech language)&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Tools recommended by TI for programming of this microcontroller:&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5 Code Composer Studio] (runs on Win and Linux).&lt;br /&gt;
* [http://www.ti.com/tool/halcogen HalCoGen] (for Windows only, but also runs quite well in Wine).&lt;br /&gt;
** [[TMS570LS3137 HalCoGen Bugs|TMS570LS3137 HalCoGen Bugs]]&lt;br /&gt;
&lt;br /&gt;
=== CCS5.3.0.00090_linux in Ubuntu 12.04 64bits ===&lt;br /&gt;
&lt;br /&gt;
After installation the application can be run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/&lt;br /&gt;
&lt;br /&gt;
./ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application fails to start is because CCS5 is a 32bits application a thus requires 32bits libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install libgtk2.0-0:i386 libxtst6:i386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application crashes with a segmentation fault do:&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/ccsv5/eclipse/plugins/com.ti.ccstudio.branding_&amp;lt;your version number&amp;gt;/plugin_customization.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And change key &amp;lt;code&amp;gt;org.eclipse.ui/showIntro&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;FREE License - for use with XDS100 JTAG Emulators&amp;quot; on the licensing options.&lt;br /&gt;
&lt;br /&gt;
You may create a symbolic link and a desktop entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo ln -s &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/ccstudio /usr/local/bin/ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And put in &amp;lt;code&amp;gt;~/.local/share/applications/ccs5.desktop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Type=Application&lt;br /&gt;
Terminal=false&lt;br /&gt;
Exec=ccstudio&lt;br /&gt;
Name=Code Composer Studio&lt;br /&gt;
Icon=/usr/local/ti/ccsv5/eclipse/icon.xpm&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FreeRTOS ==&lt;br /&gt;
Installation is easy, simply create new project in HalCoGen &lt;br /&gt;
&lt;br /&gt;
* New -&amp;gt; Project&lt;br /&gt;
* Select Family:TMS570LS31x&lt;br /&gt;
* Select Device: TMS570LS3137ZWT_FREERTOS&lt;br /&gt;
&lt;br /&gt;
All necessary files will be added into project automaticaly.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Developement board we are using: [http://processors.wiki.ti.com/index.php?title=TMS570LS31x_HDK_Kit TMS570LS31x_HDK_Kit]&lt;br /&gt;
&lt;br /&gt;
===SCI port===&lt;br /&gt;
We have connected serial port on Expansion Connector P3 (see HDK documentation) pin W3 and N2. TX is connected to N2 pin and RX to W3 pin. This brings us consequences as both pins are mutexed.&lt;br /&gt;
&lt;br /&gt;
When you want to use SCI, you have to set few things in HalCoGen.&lt;br /&gt;
* Enable driver SCI (not LIN or SCI2 driver)&lt;br /&gt;
* In tab PINMUX select SCI and check conflict with other drivers&lt;br /&gt;
* In tab SCI choose and set data format.&lt;br /&gt;
When you want use interrupts in adittion, do the following:&lt;br /&gt;
* In tab VIM Channel 64-95 select interrupt 64: SCI level0 interrupt for high level interrupt or 74: SCI Level1 for low level interrupt&lt;br /&gt;
* In SCI tab enable TX and/or RX interrupt and select High or Low.&lt;br /&gt;
* In your code enable IRQ using _enable_IRQ() function, than enable notification using sciEnableNotification() function.&lt;br /&gt;
* Implement notification callback sciNotification() in notificatin.c&lt;br /&gt;
&lt;br /&gt;
In your code don&#039;t forget to initialize sci using sciInit() function.&lt;br /&gt;
&lt;br /&gt;
== Debug over JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== XDS100v2 JTAG Interface from Ti ===&lt;br /&gt;
&lt;br /&gt;
The XDS100v2 is equipped with Ti specific 14-pin JTAG connector.&lt;br /&gt;
Next cable wires placement allows to use it with TMS570LS31x_HDK_Kit&lt;br /&gt;
or other device with ARM JTAG pin placement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 14 pin Ti&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 20 pin ARM&lt;br /&gt;
|-&lt;br /&gt;
| 1	|| TMS	|| TMS	|| 7&lt;br /&gt;
|-&lt;br /&gt;
| 2	|| TRST	|| NTRST	|| 3&lt;br /&gt;
|-&lt;br /&gt;
| 3	|| TDI	|| TDI	|| 5&lt;br /&gt;
|-&lt;br /&gt;
| 4	|| DIS	|| GND	|| 6&lt;br /&gt;
|-&lt;br /&gt;
| 5	|| VD	|| VREF	|| 1 (2)&lt;br /&gt;
|-&lt;br /&gt;
| 6	|| NC || || --&lt;br /&gt;
|-&lt;br /&gt;
| 7	|| TDO	|| TDO	|| 13&lt;br /&gt;
|-&lt;br /&gt;
| 8	|| GND	|| GND	|| (4)&lt;br /&gt;
|-&lt;br /&gt;
| 9	|| RTCK	|| RTCK	|| 11&lt;br /&gt;
|-&lt;br /&gt;
| 10	|| GND	|| GND	|| 8 (12)&lt;br /&gt;
|-&lt;br /&gt;
| 11	|| TCK	|| TCK	|| 9&lt;br /&gt;
|-&lt;br /&gt;
| 12	|| GND	|| GND	|| 10 (14)&lt;br /&gt;
|-&lt;br /&gt;
| 13	|| EMU0	|| 	||&lt;br /&gt;
|-&lt;br /&gt;
| 14	|| EMU1	|| 	|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setup XDS100v2 on Linux ===&lt;br /&gt;
&lt;br /&gt;
By default the device (if nothing more connected then &amp;lt;code&amp;gt;/dev/ttyUSB0&amp;lt;/code&amp;gt;) is added with permissions 664 with &lt;br /&gt;
&amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; as user and group. You access the device we need write access for current user. To do so we need &lt;br /&gt;
to create a new udev rules:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/udev/rules.d/45-pes-rpp.rules&lt;br /&gt;
&lt;br /&gt;
And add line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0403&amp;quot;, ATTR{idProduct}==&amp;quot;a6d0&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then reload udev rules with:&lt;br /&gt;
&lt;br /&gt;
 sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
You can check device properties like &amp;lt;code&amp;gt;idVendor&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;idProduct&amp;lt;/code&amp;gt; with the following command:&lt;br /&gt;
&lt;br /&gt;
 udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)&lt;br /&gt;
&lt;br /&gt;
== RS232 communication setup ==&lt;br /&gt;
&lt;br /&gt;
Connect serial communication pins to computer&#039;s RS232 port or to USB through a FTDI adapter. If using RS232 port the&lt;br /&gt;
device should be &amp;lt;code&amp;gt;/dev/ttyS0&amp;lt;/code&amp;gt;, if using FTDI it should be something like &amp;lt;code&amp;gt;/dev/ttyUSBx&amp;lt;/code&amp;gt; &lt;br /&gt;
(check &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt; for details).&lt;br /&gt;
&lt;br /&gt;
Make sure minicom or similar terminal program is installed:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Then configure minicon:&lt;br /&gt;
&lt;br /&gt;
 sudo minicom -s&lt;br /&gt;
&lt;br /&gt;
And use the following configuration &amp;quot;9600 81N&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Serial Device         : /dev/ttyS0&lt;br /&gt;
 Lockfile Location     : /var/lock&lt;br /&gt;
 Callin Program        :&lt;br /&gt;
 Callout Program       :&lt;br /&gt;
 Bps/Par/Bits          : 9600 8N1&lt;br /&gt;
 Hardware Flow Control : No&lt;br /&gt;
 Software Flow Control : No&lt;br /&gt;
&lt;br /&gt;
Start terminal session and type &amp;lt;code&amp;gt;HELP&amp;lt;/code&amp;gt; command to test communication.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
* Management: [http://dce.felk.cvut.cz/hanzalek/ Prof. Zdeněk Hanzálek]&lt;br /&gt;
* Technical: [http://cmp.felk.cvut.cz/~pisa/ Pavel Píša, Ph.D.]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Main_Page&amp;diff=4086</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Main_Page&amp;diff=4086"/>
		<updated>2013-07-09T13:44:37Z</updated>

		<summary type="html">&lt;p&gt;Sojka: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Czech students:&#039;&#039;&#039; Tato wiki by měla sloužit ke sdílení informací při vývoji různého HW na [http://dce.felk.cvut.cz/ katedře řídící techniky] FEL ČVUT. Důvod vzniku této wiki je ten, že se často vyskytuje případ, kdy několik studentu pracuje na stejném a nebo podobném hardwaru a jeden člověk dělá práci, která by se mohla hodit i ostatním. Pokud se to ujme, mohla by tato Wiki sloužit jako místo, kde by se publikovaly výsledky práce jednotlivých lidí tak, aby tato práce mohla být užitečná i pro ostatní. Mohly by se zde vyskytovat různé návody, odkazy na aktuální verze softwaru apod.&lt;br /&gt;
&lt;br /&gt;
Konkrétní obsah závisí jen na vás. Pokud pracujete s nějakým hardwarem, [http://rtime.felk.cvut.cz/~sojka/ kontaktujte mě] a já vám zde zřídím účet. Anonymní editace je zakázaná kvůli spamerům.&lt;br /&gt;
&lt;br /&gt;
--[[Wikipedista:Sojka|Sojka]] 20:29, 5. 5. 2005 (CEST)&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color:#fff2f2; border:2px solid #b26b6b; width:30%; margin:0.5em; padding:0.5em&amp;quot;&amp;gt;&lt;br /&gt;
{{Main Page/Hardware}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color:#f9fff2; border:2px solid #8fb26b; margin:0.5em; padding:0.5em&amp;quot;&amp;gt;&lt;br /&gt;
{{Main Page/Software}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color:#f2ffff; border:2px solid #6bb2b2; padding:0.5em&amp;quot;&amp;gt;&lt;br /&gt;
{{MainPage/Version Control}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#f9f2ff; border:2px solid #8f6bb2; margin:0.5em; padding:0.5em; clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
{{Main Page/HW Links}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
== Wiki documentation ==&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User&#039;s_Guide User&#039;s Guide] for usage and configuration help.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4085</id>
		<title>TMS570LS3137</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4085"/>
		<updated>2013-05-06T08:04:17Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* CCS5 in Ubuntu 12.04 65bits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TMS570LS31x HDK Kit.jpg|right|300px]]&lt;br /&gt;
[[File:Rpp.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://www.ti.com/product/tms570ls3137 Main TI page] containing datasheets.&lt;br /&gt;
* [http://e2e.ti.com/support/microcontrollers/hercules/f/312.aspx TI TMS570 related forum]&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:TMS570 TMS570 Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration LwIP integration]&lt;br /&gt;
&lt;br /&gt;
* [[Media:Studim_procesoru.pdf]] Notes from documentation (in Czech language)&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Tools recommended by TI for programming of this microcontroller:&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5 Code Composer Studio] (runs on Win and Linux).&lt;br /&gt;
* [http://www.ti.com/tool/halcogen HalCoGen] (for Windows only, but also runs quite well in Wine).&lt;br /&gt;
** [[TMS570LS3137 HalCoGen Bugs|TMS570LS3137 HalCoGen Bugs]]&lt;br /&gt;
&lt;br /&gt;
=== CCS5 in Ubuntu 12.04 64bits ===&lt;br /&gt;
&lt;br /&gt;
After installation the application can be run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/&lt;br /&gt;
&lt;br /&gt;
./ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application fails to start is because CCS5 is a 32bits application a thus requires 32bits libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo apt-get install libgtk2.0-0:i386 libxtst6:i386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application crashes with a segmentation fault do:&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/ccsv5/eclipse/plugins/com.ti.ccstudio.branding_&amp;lt;your version number&amp;gt;/plugin_customization.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And change key &amp;lt;code&amp;gt;org.eclipse.ui/showIntro&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;FREE License - for use with XDS100 JTAG Emulators&amp;quot; on the licensing options.&lt;br /&gt;
&lt;br /&gt;
You may create a symbolic link and a desktop entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo ln -s &amp;lt;install_dir&amp;gt;/ccsv5/eclipse/ccstudio /usr/local/bin/ccstudio&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And put in &amp;lt;code&amp;gt;~/.local/share/applications/ccs5.desktop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Type=Application&lt;br /&gt;
Terminal=false&lt;br /&gt;
Exec=ccstudio&lt;br /&gt;
Name=Code Composer Studio&lt;br /&gt;
Icon=/usr/local/ti/ccsv5/eclipse/icon.xpm&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FreeRTOS ==&lt;br /&gt;
Installation is easy, simply create new project in HalCoGen &lt;br /&gt;
&lt;br /&gt;
* New -&amp;gt; Project&lt;br /&gt;
* Select Family:TMS570LS31x&lt;br /&gt;
* Select Device: TMS570LS3137ZWT_FREERTOS&lt;br /&gt;
&lt;br /&gt;
All necessary files will be added into project automaticaly.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Developement board we are using: [http://processors.wiki.ti.com/index.php?title=TMS570LS31x_HDK_Kit TMS570LS31x_HDK_Kit]&lt;br /&gt;
&lt;br /&gt;
===SCI port===&lt;br /&gt;
We have connected serial port on Expansion Connector P3 (see HDK documentation) pin W3 and N2. TX is connected to N2 pin and RX to W3 pin. This brings us consequences as both pins are mutexed.&lt;br /&gt;
&lt;br /&gt;
When you want to use SCI, you have to set few things in HalCoGen.&lt;br /&gt;
* Enable driver SCI (not LIN or SCI2 driver)&lt;br /&gt;
* In tab PINMUX select SCI and check conflict with other drivers&lt;br /&gt;
* In tab SCI choose and set data format.&lt;br /&gt;
When you want use interrupts in adittion, do the following:&lt;br /&gt;
* In tab VIM Channel 64-95 select interrupt 64: SCI level0 interrupt for high level interrupt or 74: SCI Level1 for low level interrupt&lt;br /&gt;
* In SCI tab enable TX and/or RX interrupt and select High or Low.&lt;br /&gt;
* In your code enable IRQ using _enable_IRQ() function, than enable notification using sciEnableNotification() function.&lt;br /&gt;
* Implement notification callback sciNotification() in notificatin.c&lt;br /&gt;
&lt;br /&gt;
In your code don&#039;t forget to initialize sci using sciInit() function.&lt;br /&gt;
&lt;br /&gt;
== Debug over JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== XDS100v2 JTAG Interface from Ti ===&lt;br /&gt;
&lt;br /&gt;
The XDS100v2 is equipped with Ti specific 14-pin JTAG connector.&lt;br /&gt;
Next cable wires placement allows to use it with TMS570LS31x_HDK_Kit&lt;br /&gt;
or other device with ARM JTAG pin placement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 14 pin Ti&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 20 pin ARM&lt;br /&gt;
|-&lt;br /&gt;
| 1	|| TMS	|| TMS	|| 7&lt;br /&gt;
|-&lt;br /&gt;
| 2	|| TRST	|| NTRST	|| 3&lt;br /&gt;
|-&lt;br /&gt;
| 3	|| TDI	|| TDI	|| 5&lt;br /&gt;
|-&lt;br /&gt;
| 4	|| DIS	|| GND	|| 6&lt;br /&gt;
|-&lt;br /&gt;
| 5	|| VD	|| VREF	|| 1 (2)&lt;br /&gt;
|-&lt;br /&gt;
| 6	|| NC || || --&lt;br /&gt;
|-&lt;br /&gt;
| 7	|| TDO	|| TDO	|| 13&lt;br /&gt;
|-&lt;br /&gt;
| 8	|| GND	|| GND	|| (4)&lt;br /&gt;
|-&lt;br /&gt;
| 9	|| RTCK	|| RTCK	|| 11&lt;br /&gt;
|-&lt;br /&gt;
| 10	|| GND	|| GND	|| 8 (12)&lt;br /&gt;
|-&lt;br /&gt;
| 11	|| TCK	|| TCK	|| 9&lt;br /&gt;
|-&lt;br /&gt;
| 12	|| GND	|| GND	|| 10 (14)&lt;br /&gt;
|-&lt;br /&gt;
| 13	|| EMU0	|| 	||&lt;br /&gt;
|-&lt;br /&gt;
| 14	|| EMU1	|| 	|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setup XDS100v2 on Linux ===&lt;br /&gt;
&lt;br /&gt;
By default the device (if nothing more connected then &amp;lt;code&amp;gt;/dev/ttyUSB0&amp;lt;/code&amp;gt;) is added with permissions 664 with &lt;br /&gt;
&amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; as user and group. You access the device we need write access for current user. To do so we need &lt;br /&gt;
to create a new udev rules:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/udev/rules.d/45-pes-rpp.rules&lt;br /&gt;
&lt;br /&gt;
And add line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0403&amp;quot;, ATTR{idProduct}==&amp;quot;a6d0&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then reload udev rules with:&lt;br /&gt;
&lt;br /&gt;
 sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
You can check device properties like &amp;lt;code&amp;gt;idVendor&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;idProduct&amp;lt;/code&amp;gt; with the following command:&lt;br /&gt;
&lt;br /&gt;
 udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)&lt;br /&gt;
&lt;br /&gt;
== RS232 communication setup ==&lt;br /&gt;
&lt;br /&gt;
Connect serial communication pins to computer&#039;s RS232 port or to USB through a FTDI adapter. If using RS232 port the&lt;br /&gt;
device should be &amp;lt;code&amp;gt;/dev/ttyS0&amp;lt;/code&amp;gt;, if using FTDI it should be something like &amp;lt;code&amp;gt;/dev/ttyUSBx&amp;lt;/code&amp;gt; &lt;br /&gt;
(check &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt; for details).&lt;br /&gt;
&lt;br /&gt;
Make sure minicom or similar terminal program is installed:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Then configure minicon:&lt;br /&gt;
&lt;br /&gt;
 sudo minicom -s&lt;br /&gt;
&lt;br /&gt;
And use the following configuration &amp;quot;9600 81N&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Serial Device         : /dev/ttyS0&lt;br /&gt;
 Lockfile Location     : /var/lock&lt;br /&gt;
 Callin Program        :&lt;br /&gt;
 Callout Program       :&lt;br /&gt;
 Bps/Par/Bits          : 9600 8N1&lt;br /&gt;
 Hardware Flow Control : No&lt;br /&gt;
 Software Flow Control : No&lt;br /&gt;
&lt;br /&gt;
Start terminal session and type &amp;lt;code&amp;gt;HELP&amp;lt;/code&amp;gt; command to test communication.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
* Management: [http://dce.felk.cvut.cz/hanzalek/ Prof. Zdeněk Hanzálek]&lt;br /&gt;
* Technical: [http://cmp.felk.cvut.cz/~pisa/ Pavel Píša, Ph.D.]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4081</id>
		<title>TMS570LS3137</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=TMS570LS3137&amp;diff=4081"/>
		<updated>2013-04-12T12:00:16Z</updated>

		<summary type="html">&lt;p&gt;Sojka: Contacts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:TMS570LS31x HDK Kit.jpg|right|300px]]&lt;br /&gt;
[[File:Rpp.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://www.ti.com/product/tms570ls3137 Main TI page] containing datasheets.&lt;br /&gt;
* [http://e2e.ti.com/support/microcontrollers/hercules/f/312.aspx TI TMS570 related forum]&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:TMS570 TMS570 Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration LwIP integration]&lt;br /&gt;
&lt;br /&gt;
* [[Media:Studim_procesoru.pdf]] Notes from documentation (in Czech language)&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
Tools recommended by TI for programming of this microcontroller:&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5 Code Composer Studio] (runs on Win and Linux)&lt;br /&gt;
* [http://www.ti.com/tool/halcogen HalCoGen] (for WIn only, but also runs quite well in Wine)&lt;br /&gt;
** [[TMS570LS3137 HalCoGen Bugs|TMS570LS3137 HalCoGen Bugs]] &lt;br /&gt;
&lt;br /&gt;
== FreeRTOS ==&lt;br /&gt;
Installation is easy, simply create new project in HalCoGen &lt;br /&gt;
&lt;br /&gt;
* New -&amp;gt; Project&lt;br /&gt;
* Select Family:TMS570LS31x&lt;br /&gt;
* Select Device: TMS570LS3137ZWT_FREERTOS&lt;br /&gt;
&lt;br /&gt;
All necessary files will be added into project automaticaly.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Developement board we are using: [http://processors.wiki.ti.com/index.php?title=TMS570LS31x_HDK_Kit TMS570LS31x_HDK_Kit]&lt;br /&gt;
&lt;br /&gt;
===SCI port===&lt;br /&gt;
We have connected serial port on Expansion Connector P3 (see HDK documentation) pin W3 and N2. TX is connected to N2 pin and RX to W3 pin. This brings us consequences as both pins are mutexed.&lt;br /&gt;
&lt;br /&gt;
When you want to use SCI, you have to set few things in HalCoGen.&lt;br /&gt;
* Enable driver SCI (not LIN or SCI2 driver)&lt;br /&gt;
* In tab PINMUX select SCI and check conflict with other drivers&lt;br /&gt;
* In tab SCI choose and set data format.&lt;br /&gt;
When you want use interrupts in adittion, do the following:&lt;br /&gt;
* In tab VIM Channel 64-95 select interrupt 64: SCI level0 interrupt for high level interrupt or 74: SCI Level1 for low level interrupt&lt;br /&gt;
* In SCI tab enable TX and/or RX interrupt and select High or Low.&lt;br /&gt;
* In your code enable IRQ using _enable_IRQ() function, than enable notification using sciEnableNotification() function.&lt;br /&gt;
* Implement notification callback sciNotification() in notificatin.c&lt;br /&gt;
&lt;br /&gt;
In your code don&#039;t forget to initialize sci using sciInit() function.&lt;br /&gt;
&lt;br /&gt;
== Debug over JTAG ==&lt;br /&gt;
&lt;br /&gt;
=== XDS100v2 JTAG Interface from Ti ===&lt;br /&gt;
&lt;br /&gt;
The XDS100v2 is equipped with Ti specific 14-pin JTAG connector.&lt;br /&gt;
Next cable wires placement allows to use it with TMS570LS31x_HDK_Kit&lt;br /&gt;
or other device with ARM JTAG pin placement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 14 pin Ti&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 20 pin ARM&lt;br /&gt;
|-&lt;br /&gt;
| 1	|| TMS	|| TMS	|| 7&lt;br /&gt;
|-&lt;br /&gt;
| 2	|| TRST	|| NTRST	|| 3&lt;br /&gt;
|-&lt;br /&gt;
| 3	|| TDI	|| TDI	|| 5&lt;br /&gt;
|-&lt;br /&gt;
| 4	|| DIS	|| GND	|| 6&lt;br /&gt;
|-&lt;br /&gt;
| 5	|| VD	|| VREF	|| 1 (2)&lt;br /&gt;
|-&lt;br /&gt;
| 6	|| NC || || --&lt;br /&gt;
|-&lt;br /&gt;
| 7	|| TDO	|| TDO	|| 13&lt;br /&gt;
|-&lt;br /&gt;
| 8	|| GND	|| GND	|| (4)&lt;br /&gt;
|-&lt;br /&gt;
| 9	|| RTCK	|| RTCK	|| 11&lt;br /&gt;
|-&lt;br /&gt;
| 10	|| GND	|| GND	|| 8 (12)&lt;br /&gt;
|-&lt;br /&gt;
| 11	|| TCK	|| TCK	|| 9&lt;br /&gt;
|-&lt;br /&gt;
| 12	|| GND	|| GND	|| 10 (14)&lt;br /&gt;
|-&lt;br /&gt;
| 13	|| EMU0	|| 	||&lt;br /&gt;
|-&lt;br /&gt;
| 14	|| EMU1	|| 	|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setup XDS100v2 on Linux ===&lt;br /&gt;
&lt;br /&gt;
By default the device (if nothing more connected then &amp;lt;code&amp;gt;/dev/ttyUSB0&amp;lt;/code&amp;gt;) is added with permissions 664 with &lt;br /&gt;
&amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; as user and group. You access the device we need write access for current user. To do so we need &lt;br /&gt;
to create a new udev rules:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/udev/rules.d/45-pes-rpp.rules&lt;br /&gt;
&lt;br /&gt;
And add line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;0403&amp;quot;, ATTR{idProduct}==&amp;quot;a6d0&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then reload udev rules with:&lt;br /&gt;
&lt;br /&gt;
 sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
You can check device properties like &amp;lt;code&amp;gt;idVendor&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;idProduct&amp;lt;/code&amp;gt; with the following command:&lt;br /&gt;
&lt;br /&gt;
 udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)&lt;br /&gt;
&lt;br /&gt;
== RS232 communication setup ==&lt;br /&gt;
&lt;br /&gt;
Connect serial communication pins to computer&#039;s RS232 port or to USB through a FTDI adapter. If using RS232 port the&lt;br /&gt;
device should be &amp;lt;code&amp;gt;/dev/ttyS0&amp;lt;/code&amp;gt;, if using FTDI it should be something like &amp;lt;code&amp;gt;/dev/ttyUSBx&amp;lt;/code&amp;gt; &lt;br /&gt;
(check &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt; for details).&lt;br /&gt;
&lt;br /&gt;
Make sure minicom or similar terminal program is installed:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Then configure minicon:&lt;br /&gt;
&lt;br /&gt;
 sudo minicom -s&lt;br /&gt;
&lt;br /&gt;
And use the following configuration &amp;quot;9600 81N&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Serial Device         : /dev/ttyS0&lt;br /&gt;
 Lockfile Location     : /var/lock&lt;br /&gt;
 Callin Program        :&lt;br /&gt;
 Callout Program       :&lt;br /&gt;
 Bps/Par/Bits          : 9600 8N1&lt;br /&gt;
 Hardware Flow Control : No&lt;br /&gt;
 Software Flow Control : No&lt;br /&gt;
&lt;br /&gt;
Start terminal session and type &amp;lt;code&amp;gt;HELP&amp;lt;/code&amp;gt; command to test communication.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
&lt;br /&gt;
* Management: [http://dce.felk.cvut.cz/hanzalek/ Prof. Zdeněk Hanzálek]&lt;br /&gt;
* Technical: [http://cmp.felk.cvut.cz/~pisa/ Pavel Píša, Ph.D.]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4076</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4076"/>
		<updated>2013-02-21T15:22:12Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Automatic creation of repositories (staff members only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created in Linux/Unix (or in [http://code.google.com/p/msysgit/ MSysGit] shell in Windows) by:&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s desc commands. I.e. you can set the description by:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz desc «login»/«whatever» &amp;quot;Description&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4075</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4075"/>
		<updated>2013-02-21T15:19:59Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Permissions to automatic repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created in Linux/Unix (or in [http://code.google.com/p/msysgit/ MSysGit] shell in Windows) by:&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s getdesc/setdesc commands. I.e. you can set the description by:&lt;br /&gt;
 echo &amp;quot;Description&amp;quot; | ssh git@rtime.felk.cvut.cz setdesc «login»/«whatever»&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make your repository visible on gitweb, run:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS @all&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4074</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4074"/>
		<updated>2013-02-21T15:19:10Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Finding available repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created in Linux/Unix (or in [http://code.google.com/p/msysgit/ MSysGit] shell in Windows) by:&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s getdesc/setdesc commands. I.e. you can set the description by:&lt;br /&gt;
 echo &amp;quot;Description&amp;quot; | ssh git@rtime.felk.cvut.cz setdesc «login»/«whatever»&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4073</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4073"/>
		<updated>2013-02-21T15:17:41Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* Managing central repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created in Linux/Unix (or in [http://code.google.com/p/msysgit/ MSysGit] shell in Windows) by:&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s getdesc/setdesc commands. I.e. you can set the description by:&lt;br /&gt;
 echo &amp;quot;Description&amp;quot; | ssh git@rtime.felk.cvut.cz setdesc «login»/«whatever»&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
It there are wildcard (automatic) repositories, as in the example below, you will only see the wildcard pattern and not the created repositories.&lt;br /&gt;
&lt;br /&gt;
  C  R   W      fpga/[a-zA-Z0-9].*&lt;br /&gt;
&lt;br /&gt;
To expand the wildcards, use the command &amp;lt;tt&amp;gt;expand&amp;lt;/tt&amp;gt; instead of info. This command is a way slower than info command!&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz expand&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz expand fpga&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
	<entry>
		<id>https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4072</id>
		<title>Git repository on this server</title>
		<link rel="alternate" type="text/html" href="https://rtime.felk.cvut.cz/hw/index.php?title=Git_repository_on_this_server&amp;diff=4072"/>
		<updated>2013-02-21T15:17:17Z</updated>

		<summary type="html">&lt;p&gt;Sojka: /* First push */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Repositories on rtime server are managed by [http://github.com/sitaramc/gitolite Gitolite tool], which allows to conveniently manage repository permissions.  World readable repositories can be [http://rtime.felk.cvut.cz/gitweb browsed online]. Alternatively, users with shell account can create [[Git repositories in home directories|Git repositories in their home directory]].&lt;br /&gt;
&lt;br /&gt;
== Getting write access to repositories ==&lt;br /&gt;
&lt;br /&gt;
Write access to the repositories can only be given to users who sent their Open SSH public key to the [http://rtime.felk.cvut.cz/~sojka/ administrator] together with their university assigned login name (if any). The SSH key can be created in Linux/Unix (or in [http://code.google.com/p/msysgit/ MSysGit] shell in Windows) by:&lt;br /&gt;
&lt;br /&gt;
  ssh-keygen&lt;br /&gt;
&lt;br /&gt;
It is stored by default at &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
During the key creation you will be asked for a passphrase. If you do not specify any passphrase, anybody with access to your &amp;lt;tt&amp;gt;~/.ssh&amp;lt;/tt&amp;gt; directory could access your repositories. If you specify the key, the passphrase will need to be entered whenever to use the key. By using &amp;lt;tt&amp;gt;ssh-add&amp;lt;/tt&amp;gt; command you can specify the passphrase only once and the decrypted key will be remembered in the memory.&lt;br /&gt;
&lt;br /&gt;
== Creating repositories ==&lt;br /&gt;
&lt;br /&gt;
There are to ways how a repository can be created:&lt;br /&gt;
&lt;br /&gt;
# Send an email to the [http://rtime.felk.cvut.cz/~sojka/ administrator] with the name of the repository, a short description and a list of people (SSH public keys) who should have access to the repository. The administrator creates the repository for you and notifies you when it&#039;s done.&lt;br /&gt;
# Our group staff members can create their repositories without asking the administrator. See below.&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of repositories (staff members only) ===&lt;br /&gt;
&lt;br /&gt;
It is simply a matter of pushing the repository to a special URL containing the login, like this:&lt;br /&gt;
&lt;br /&gt;
 git push --set-upstream ssh://git@rtime.felk.cvut.cz/«login»/«whatever» HEAD&lt;br /&gt;
&lt;br /&gt;
This will create a new repository called «whatever» (if it does not exist yet) and push the current HEAD to it. It also makes this repository the default for pushing and pulling (this is what --set-upstream does).&lt;br /&gt;
&lt;br /&gt;
If you want to set a [https://rtime.felk.cvut.cz/gitweb/orte.git Gitweb description] for repositories created this way, use gitolite&#039;s getdesc/setdesc commands. I.e. you can set the description by:&lt;br /&gt;
 echo &amp;quot;Description&amp;quot; | ssh git@rtime.felk.cvut.cz setdesc «login»/«whatever»&lt;br /&gt;
&lt;br /&gt;
== Accessing the repository ==&lt;br /&gt;
&lt;br /&gt;
After [[Git#Install_Git|installing Git]] on your local computer, you&lt;br /&gt;
can access the repository as follows.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
&lt;br /&gt;
Read/Write access (for users with registered SSH key):&lt;br /&gt;
 git clone ssh://git@rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read-only access (for public repositories only):&lt;br /&gt;
 git clone git://rtime.felk.cvut.cz/&#039;&#039;repo-name&#039;&#039;.git&lt;br /&gt;
&lt;br /&gt;
=== First push to admin-created repositories ===&lt;br /&gt;
&lt;br /&gt;
After an empty repository is created by the admin, you can push (i.e. upload) the data to it:&lt;br /&gt;
&lt;br /&gt;
* [[#Cloning the repository|Clone]] the empty repository.&lt;br /&gt;
* Put your sources into your cloned repository&lt;br /&gt;
 git add .             # tells git to track all files in your project&lt;br /&gt;
 git commit            # commits the added files to the repository&lt;br /&gt;
* Push your sources to the server&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
=== Pushing to non-master branches ===&lt;br /&gt;
&lt;br /&gt;
If you are not allowed to push to the master branch but to a different one, you have to push like this:&lt;br /&gt;
 git push origin master:your-branch&lt;br /&gt;
which pushes your local master branch to the remote branch &#039;&#039;your-branch&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To make this behavior default run&lt;br /&gt;
 git config remote.origin.push master:your-branch&lt;br /&gt;
&lt;br /&gt;
And from now on, it is sufficient to run only&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
== Managing central repositories ==&lt;br /&gt;
&lt;br /&gt;
=== Finding available repositories ===&lt;br /&gt;
&lt;br /&gt;
You can find the list of repositories you have access to by running:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz info [filter]&lt;br /&gt;
&lt;br /&gt;
where filter is optional string used to filter the list.&lt;br /&gt;
&lt;br /&gt;
It there are wildcard (automatic) repositories, as in the example below, you will only see the wildcard pattern and not the created repositories.&lt;br /&gt;
&lt;br /&gt;
  C  R   W      fpga/[a-zA-Z0-9].*&lt;br /&gt;
&lt;br /&gt;
To expand the wildcards, use the command &amp;lt;tt&amp;gt;expand&amp;lt;/tt&amp;gt; instead of info. This command is a way slower than info command!&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz expand&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz expand fpga&lt;br /&gt;
&lt;br /&gt;
=== Permissions to automatic repositories ===&lt;br /&gt;
&lt;br /&gt;
The owners of automatically created repositories can manage the access permissions by themselves.&lt;br /&gt;
&lt;br /&gt;
The current permissions can be listed by:&lt;br /&gt;
&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms -l «repo»&lt;br /&gt;
&lt;br /&gt;
You can add permissions for either reading of writing the repo with:&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + READERS «login»&lt;br /&gt;
 ssh git@rtime.felk.cvut.cz perms «repo» + WRITERS «login»&lt;br /&gt;
&lt;br /&gt;
The permissions can be removed by replacing &#039;&#039;&#039;+&#039;&#039;&#039; with &#039;&#039;&#039;-&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Links to git related documents ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.dce.felk.cvut.cz/mediawiki/index.php/gitolite Gitolite documentation on DCE IT pages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Sojka</name></author>
	</entry>
</feed>