https://linux-sunxi.org/api.php?action=feedcontributions&user=Lowtex&feedformat=atomlinux-sunxi.org - User contributions [en]2024-03-28T23:14:39ZUser contributionsMediaWiki 1.35.8https://linux-sunxi.org/index.php?title=User:Lowtex&diff=12873User:Lowtex2015-01-23T16:35:55Z<p>Lowtex: </p>
<hr />
<div>I have the following hardware:<br />
<br />
* A10<br />
:* [[Cubietech Cubieboard]]<br />
:* Point of View ProTab 2 IPS<br />
<br />
* A20<br />
<br />
:* [[Olimex A20-OLinuXino-Lime2]]<br />
:* [[Inet_K970]] (Tristan Auron Planet 1)<br />
<br />
I'm interested in getting NAND going with mainline linux and booting without boot0,boot1.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12850Device Tree2015-01-21T15:54:57Z<p>Lowtex: typo</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Writing a Device Tree =<br />
<br />
It is good to start with an example of a device which is close to<br />
the one you're working on. Trim down the original device's<br />
dts to what your device actually provides.<br />
If your device came with a fex file, check settings like the gpio<br />
for enabling the usb vbus in the fex file and adjust them in the dts<br />
file as necessary.<br />
Finally, work on activating drivers particular to your device. Again<br />
parameters might be taken over from a fex file.<br />
<br />
== Coding Style ==<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.<br />
<br />
<br />
[[Category:Tutorial]]<br />
[[Category:Software]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12849Device Tree2015-01-21T15:54:25Z<p>Lowtex: typo</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Writing a Device Tree =<br />
<br />
It is good to start with an example of a device which is close to<br />
the one you're working on. Trim down the original device's<br />
dts to what your devices actually provides.<br />
If your device came with a fex file, check settings like the gpio<br />
for enabling the usb vbus in the fex file and adjust them in the dts<br />
file as necessary.<br />
Finally, work on activating drivers particular to your device. Again<br />
parameters might be taken over from a fex file.<br />
<br />
== Coding Style ==<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.<br />
<br />
<br />
[[Category:Tutorial]]<br />
[[Category:Software]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12848Device Tree2015-01-21T15:51:04Z<p>Lowtex: /* Adding a new device */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Writing a Device Tree =<br />
<br />
It is good to start with an example of a device which is close to<br />
the one you're working on. Trim down the original devices<br />
dts to what your devices actually provides.<br />
If your device came with a fex file, check settings like the gpio<br />
for enabling the usb vbus in the fex file and adjust them in the dts<br />
file as necessary.<br />
Finally, work on activating drivers particular to your device. Again<br />
parameters might be taken over from a fex file.<br />
<br />
== Coding Style ==<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.<br />
<br />
<br />
[[Category:Tutorial]]<br />
[[Category:Software]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12847Device Tree2015-01-21T15:46:50Z<p>Lowtex: reorganizing sections</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Writing a Device Tree =<br />
<br />
It is good to start with an example of a device which is close to<br />
the one you're working on. Trim down the original devices<br />
dts to what your devices actually provides.<br />
If your device came with a fex file, check settings like the gpio<br />
for enabling the usb vbus in the fex file and adjust them in the dts<br />
file as necessary.<br />
Finally, work on activating drivers particular to your device. Again<br />
parameters might be taken over from a fex file.<br />
<br />
== Coding Style ==<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12846Device Tree2015-01-21T15:44:08Z<p>Lowtex: typo</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Writing a Device Tree =<br />
<br />
It is good to start with an example of a device which is close to<br />
the one you're working on. Trim down the original devices<br />
dts to what your devices actually provides.<br />
If your device came with a fex file, check settings like the gpio<br />
for enabling the usb vbus in the fex file and adjust them in the dts<br />
file as necessary.<br />
Finally, work on activating drivers particular to your device. Again<br />
parameters might be taken over from a fex file.<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Coding Style =<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12845Device Tree2015-01-21T15:42:41Z<p>Lowtex: /* Writing a Device Tree */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Writing a Device Tree =<br />
<br />
It is good to start with an example of a device which is close to<br />
the one you're you're working on. Trim down the original devices<br />
dts to what your devices actually provides.<br />
If your device came with a fex file, check settings like the gpio<br />
for enabling the usb vbus in the fex file and adjust them in the dts<br />
file as necessary.<br />
Finally, work on activating drivers particular to your device. Again<br />
parameters might be taken over from a fex file.<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Coding Style =<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12844Device Tree2015-01-21T15:41:23Z<p>Lowtex: adding new section</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Writing a Device Tree =<br />
<br />
It is good to start with an example of a device which is close to<br />
the one you're you're working on. Trim down the original devices<br />
dts to what your devices actually provides.<br />
<br />
If your device came with a fex file, check settings like the gpio<br />
for enabling the usb vbus in the fex file and adjust them in the dts<br />
file as necessary.<br />
<br />
Finally, work on activating drivers particular to your device. Again<br />
parameter might be taken over from a fex file.<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Coding Style =<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12843Device Tree2015-01-21T15:16:10Z<p>Lowtex: /* Device Tree Coding Style */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Coding Style =<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12842Device Tree2015-01-21T15:15:59Z<p>Lowtex: typo</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drivers ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Device Tree Coding Style =<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Mainline_Kernel_Howto&diff=12840Mainline Kernel Howto2015-01-21T14:44:00Z<p>Lowtex: /* Adding a new device */</p>
<hr />
<div>This page describes how you can compile and use the Linux mainline kernel. <br />
<br />
= Current status =<br />
<br />
Please refer to the [[Linux mainlining effort]] page for detailed status of mainlining effort, and supported boards and driver coverage. The upstream code does not support various drivers and lacks sound, display, 3D, 2D and media support.<br />
<br />
NAND support is also not supported at the moment. This is a work in progress, but the driver that will eventually get merged will be incompatible with Allwinner's. Indeed, both use different storage format.<br />
<br />
If you simply want a more-or-less usable device for multimedia support, then use [[Linux_Kernel|our own 3.4 branch]].<br />
<br />
= Prerequisites =<br />
<br />
You should not attempt anything on this page, unless you are first comfortable with our [[Manual build howto]] which uses [[Linux_Kernel|our sunxi-3.4 kernel]]. This [[Manual build howto]] will guide you through setting up a full working system, and once you have that, you can start thinking about replacing the kernel with the mainline kernel. Apart from a fully set up SD-Card, this howto will also get you a working [[Toolchain|toolchain]] and a recent [[U-Boot]].<br />
<br />
While the mainline kernel should work on any bootloader (with the major exception being the A20), you'll need a recent sunxi [[U-boot]], or even better a [[Mainline_U-boot]]. SMP, virtualization and simplefb are the features you will most likely miss.<br />
<br />
= Kernel source =<br />
== Stable releases ==<br />
<br />
The stable releases are released by Linus Torvalds. Since Linux 3.8, the Allwinner support is added gradually. It is still quite sparse, but we are making good progress. This is probably what you should choose if you are looking for stability.<br />
<br />
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git<br />
<br />
== Patches merged in the next stable release ==<br />
<br />
There is also a sunxi-next branch maintained with all the inclusions that have been accepted, merged and will included in the next stable release. If you want to do some development, it's probably the best pick.<br />
<br />
git clone [http://github.com/mripard/linux/tree/sunxi-next git://github.com/mripard/linux.git] -b sunxi-next<br />
<br />
= Kernel Configuration =<br />
<br />
To get a working kernel, just use the following for configuration</pre><br />
<pre>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig</pre><br />
<br />
If you wish to alter configuration, run:<br />
<pre>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig</pre><br />
<br />
== Enable modules ==<br />
<br />
If you need certain drivers as modules, at the top level menu, enable:<br />
<br />
<pre>[*] Enable loadable module support ---></pre><br />
<br />
Remember to [[#Kernel_Compilation|build modules]] as well later on, next to ''uImage'' and ''dtbs''. Then, also remember to install your modules into your rootfs.<br />
<br />
== Early printk ==<br />
<br />
If and only if your kernel does nothing, it pays to enable early printk support.<br />
<br />
Go to:<br />
<pre> Kernel hacking ---></pre><br />
<br />
Then enable:<br />
<pre>[*] Kernel debugging</pre><br />
<br />
To actually get early printk, you need to also enable:<br />
<pre>[*] Kernel low-level debugging functions (read help!)<br />
Kernel low-level debugging port (Kernel low-level debugging messages via sunXi UART0) ---><br />
[*] Early printk</pre><br />
<br />
On all supported SoCs, a good rule of thumb is that you will need ''UART0'', unless you are on the A13 (''UART1'') or the A23 (''R_UART'').<br />
<br />
The Kconfig options needed are CONFIG_DEBUG_KERNEL, CONFIG_DEBUG_LL, CONFIG_EARLY_PRINTK and one of the CONFIG_DEBUG_SUNXI options, depending on your board.<br />
<br />
== simplefb ==<br />
<br />
While a KMS driver still is being worked on, a quick and easy way to get a display up on a HDMI monitor is to build (upcoming) U-Boot with sunxi cfb console support.<br />
<br />
The kernel side support can be enabled through:<br />
<pre> Device Drivers ---></pre><br />
End then:<br />
<pre> Graphics support ---></pre><br />
Followed by:<br />
<pre> Frame buffer Devices ---></pre><br />
Enabled frame buffer devices, and descend into that menu:<br />
<pre>[*] Support for frame buffer devices ---></pre><br />
Then enable simplefb:<br />
<pre>[*] Simple framebuffer support</pre><br />
<br />
= Adding a new device =<br />
<br />
Mainly, you have to write a [[Device Tree|device description]]. Please [[Sending_patches|send a patch]] to help other finding good examples.<br />
<br />
= Kernel Compilation =<br />
<br />
To build the kernel, now run:<br />
<br />
<pre>ARCH=arm CROSS_COMPILE=<toolchain-prefix> LOADADDR=0x40008000 make uImage dtbs</pre><br />
<br />
After the compilation ended, you should have generated both the uImage in ''arch/arm/boot'', and a device tree blob (''.dtb'') in ''arch/arm/boot/dts''.<br />
<br />
This device tree blob (or simply dtb) gives to the kernel the description of the hardware it's currently running on. In its goal, it's pretty similar to the FEX scripts that Allwinner uses, yet far more generic. It allows to compile a single kernel image that will run on several platforms.<br />
<br />
To identify the dtb file that you will use on your board, first look into ''arch/arm/boot/dts''. You should see a whole bunch of them, most being irrelevant to us because targeting boards based on other ARM SoCs. All the sunxi dtb follow the pattern <family>-<soc>-<board>.dtb (for example sun5i-a13-olinuxino.dtb, refer to [[Allwinner SoC Family]] for an exhaustive list).<br />
<br />
= Boot =<br />
== SD-Card Boot partition ==<br />
<br />
Like with our [[Manual_build_howto#Setting_up_the_boot_partition | Manual build howto]], you need to set up the boot partition. Instead of ''script.bin'', you need install your boards dtb to the boot partition.<br />
<br />
=== boot.cmd ===<br />
Like in the [[Manual_build_howto#boot.cmd| Manual build howto]], create a boot.cmd with the following contents:<br />
<br />
<pre>fatload mmc 0 0x46000000 uImage<br />
fatload mmc 0 0x49000000 <board>.dtb<br />
<br />
setenv bootargs console=ttyS0,115200 <earlyprintk> root=/dev/mmcblk0p<partition> rootwait panic=10 ${extra}<br />
<br />
bootm 0x46000000 - 0x49000000</pre><br />
<br />
Replace ''fatload'' with ''ext2load'' if needed.<br />
<br />
If you are using an older U-Boot (you shouldn't - {{Remove|Which?}}), you might require the following line, to keep the extracted kernel from overwriting the device tree configuration:<br />
<pre>setenv fdt_high ffffffff</pre><br />
<br />
If you wish to use an initramfs, then the ''bootm'' command becomes:<br />
<pre>bootm 0x46000000 0x<initramfs-address> 0x49000000</pre><br />
<br />
Now [[Manual_build_howto#boot.scr|generate boot.scr]]. Don't forget to copy over your ''uImage'' and <board>.dtb files as well.<br />
<br />
== Network boot setup ==<br />
<br />
{{Remove|TODO.}} Fold in [[Possible setups for hacking on mainline]].<br />
<br />
=See also=<br />
* [[Manual build howto]]<br />
* [[Linux mainlining effort]]<br />
* [[Possible setups for hacking on mainline]]<br />
<br />
[[Category:Tutorial]]<br />
[[Category:Software]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12839Device Tree2015-01-21T14:36:02Z<p>Lowtex: /* Adding a new device */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Device Tree Coding Style =<br />
<br />
Recently, coding style moved over from using a full node<br />
hierarchy to using label references in board dts files, see e.g. :<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/commit/?h=sunxi/dt-for-3.20&id=327f121fea91fd79d6b71f47a8e1bc62a7fd86e5<br />
<br />
Note that the nodes should be sorted alphabetically.<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12838Device Tree2015-01-21T14:30:26Z<p>Lowtex: /* Adding a new device */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =<br />
<br />
Add your &lt;device>.dts file to /arch/arm/boot/dts/ and include it to /arch/arm/boot/dts/Makefile as done in this [https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ patch]. Help other by [[Sending patches|publishing]] your device tree as a patch.</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12837Device Tree2015-01-21T14:22:35Z<p>Lowtex: /* Compiling the Device Tree */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12836Device Tree2015-01-21T14:21:23Z<p>Lowtex: /* Compiling the Device Tree */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
<br />
The syntax device tree sources in the kernel deviates from its<br />
regular syntax by using the cpp-preprocessor for includes and<br />
substition. This proceeds as follows.<br />
<br />
<pre><br />
IDE=<your-device-name><br />
SRC=$IDE.dts<br />
TMP=$IDE.tmp.dts<br />
DST=$IDE.dtb<br />
<br />
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP<br />
dtc -O dtb -b 0 -o $DST $TMP<br />
rm $TMP<br />
</pre><br />
<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12835Device Tree2015-01-21T14:15:20Z<p>Lowtex: /* Compiling the Device Tree */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
= Using the Device Tree =<br />
<br />
For actually making the kernel use the device tree, see [[Mainline_Kernel_Howto#Boot]].<br />
<br />
= Adding a new device =</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12834Device Tree2015-01-21T14:11:47Z<p>Lowtex: /* Compiling the Device Tree */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =<br />
= Adding a new device =</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12833Device Tree2015-01-21T14:10:38Z<p>Lowtex: /* Introduction */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided by more attributes or sub-section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12832Device Tree2015-01-21T14:08:34Z<p>Lowtex: /* Compiling the Device Tree */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided in the section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
= Compiling the Device Tree =</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12831Device Tree2015-01-21T14:08:12Z<p>Lowtex: /* Particular Devices */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided in the section.<br />
<br />
== Particular Drives ==<br />
<br />
Every driver has its particular parameters, documented in:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
<br />
== Complete Examples ==<br />
<br />
Writing a device tree for your board, you might want to look at:<br />
<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
== Compiling the Device Tree ==</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12830Device Tree2015-01-21T14:05:08Z<p>Lowtex: /* Introduction */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
For a general introduction on device trees see:<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
In a nut shell, the kernel uses properties of the form<br />
<pre><br />
compatible = "<manufacturer>,<model>"<br />
</pre><br />
to identify a driver and initialize it with the configuration<br />
additionally provided in the section.<br />
<br />
== Particular Devices ==<br />
<br />
In the kernel sources, you're working with, see<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
== Compiling the Device Tree ==</div>Lowtexhttps://linux-sunxi.org/index.php?title=Mainline_Kernel_Howto&diff=12829Mainline Kernel Howto2015-01-21T13:57:52Z<p>Lowtex: moved page</p>
<hr />
<div>This page describes how you can compile and use the Linux mainline kernel. <br />
<br />
= Current status =<br />
<br />
Please refer to the [[Linux mainlining effort]] page for detailed status of mainlining effort, and supported boards and driver coverage. The upstream code does not support various drivers and lacks sound, display, 3D, 2D and media support.<br />
<br />
NAND support is also not supported at the moment. This is a work in progress, but the driver that will eventually get merged will be incompatible with Allwinner's. Indeed, both use different storage format.<br />
<br />
If you simply want a more-or-less usable device for multimedia support, then use [[Linux_Kernel|our own 3.4 branch]].<br />
<br />
= Prerequisites =<br />
<br />
You should not attempt anything on this page, unless you are first comfortable with our [[Manual build howto]] which uses [[Linux_Kernel|our sunxi-3.4 kernel]]. This [[Manual build howto]] will guide you through setting up a full working system, and once you have that, you can start thinking about replacing the kernel with the mainline kernel. Apart from a fully set up SD-Card, this howto will also get you a working [[Toolchain|toolchain]] and a recent [[U-Boot]].<br />
<br />
While the mainline kernel should work on any bootloader (with the major exception being the A20), you'll need a recent sunxi [[U-boot]], or even better a [[Mainline_U-boot]]. SMP, virtualization and simplefb are the features you will most likely miss.<br />
<br />
= Kernel source =<br />
== Stable releases ==<br />
<br />
The stable releases are released by Linus Torvalds. Since Linux 3.8, the Allwinner support is added gradually. It is still quite sparse, but we are making good progress. This is probably what you should choose if you are looking for stability.<br />
<br />
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git<br />
<br />
== Patches merged in the next stable release ==<br />
<br />
There is also a sunxi-next branch maintained with all the inclusions that have been accepted, merged and will included in the next stable release. If you want to do some development, it's probably the best pick.<br />
<br />
git clone [http://github.com/mripard/linux/tree/sunxi-next git://github.com/mripard/linux.git] -b sunxi-next<br />
<br />
= Kernel Configuration =<br />
<br />
To get a working kernel, just use the following for configuration</pre><br />
<pre>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig</pre><br />
<br />
If you wish to alter configuration, run:<br />
<pre>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig</pre><br />
<br />
== Enable modules ==<br />
<br />
If you need certain drivers as modules, at the top level menu, enable:<br />
<br />
<pre>[*] Enable loadable module support ---></pre><br />
<br />
Remember to [[#Kernel_Compilation|build modules]] as well later on, next to ''uImage'' and ''dtbs''. Then, also remember to install your modules into your rootfs.<br />
<br />
== Early printk ==<br />
<br />
If and only if your kernel does nothing, it pays to enable early printk support.<br />
<br />
Go to:<br />
<pre> Kernel hacking ---></pre><br />
<br />
Then enable:<br />
<pre>[*] Kernel debugging</pre><br />
<br />
To actually get early printk, you need to also enable:<br />
<pre>[*] Kernel low-level debugging functions (read help!)<br />
Kernel low-level debugging port (Kernel low-level debugging messages via sunXi UART0) ---><br />
[*] Early printk</pre><br />
<br />
On all supported SoCs, a good rule of thumb is that you will need ''UART0'', unless you are on the A13 (''UART1'') or the A23 (''R_UART'').<br />
<br />
The Kconfig options needed are CONFIG_DEBUG_KERNEL, CONFIG_DEBUG_LL, CONFIG_EARLY_PRINTK and one of the CONFIG_DEBUG_SUNXI options, depending on your board.<br />
<br />
== simplefb ==<br />
<br />
While a KMS driver still is being worked on, a quick and easy way to get a display up on a HDMI monitor is to build (upcoming) U-Boot with sunxi cfb console support.<br />
<br />
The kernel side support can be enabled through:<br />
<pre> Device Drivers ---></pre><br />
End then:<br />
<pre> Graphics support ---></pre><br />
Followed by:<br />
<pre> Frame buffer Devices ---></pre><br />
Enabled frame buffer devices, and descend into that menu:<br />
<pre>[*] Support for frame buffer devices ---></pre><br />
Then enable simplefb:<br />
<pre>[*] Simple framebuffer support</pre><br />
<br />
= Adding a new device =<br />
<br />
Currently, there is only few information available for this topic in this wiki.<br />
Mainly, you have to write a [[Device Tree|device description]]. Please [[Sending_patches|send a patch]] to help other finding good examples.<br />
<br />
= Kernel Compilation =<br />
<br />
To build the kernel, now run:<br />
<br />
<pre>ARCH=arm CROSS_COMPILE=<toolchain-prefix> LOADADDR=0x40008000 make uImage dtbs</pre><br />
<br />
After the compilation ended, you should have generated both the uImage in ''arch/arm/boot'', and a device tree blob (''.dtb'') in ''arch/arm/boot/dts''.<br />
<br />
This device tree blob (or simply dtb) gives to the kernel the description of the hardware it's currently running on. In its goal, it's pretty similar to the FEX scripts that Allwinner uses, yet far more generic. It allows to compile a single kernel image that will run on several platforms.<br />
<br />
To identify the dtb file that you will use on your board, first look into ''arch/arm/boot/dts''. You should see a whole bunch of them, most being irrelevant to us because targeting boards based on other ARM SoCs. All the sunxi dtb follow the pattern <family>-<soc>-<board>.dtb (for example sun5i-a13-olinuxino.dtb, refer to [[Allwinner SoC Family]] for an exhaustive list).<br />
<br />
= Boot =<br />
== SD-Card Boot partition ==<br />
<br />
Like with our [[Manual_build_howto#Setting_up_the_boot_partition | Manual build howto]], you need to set up the boot partition. Instead of ''script.bin'', you need install your boards dtb to the boot partition.<br />
<br />
=== boot.cmd ===<br />
Like in the [[Manual_build_howto#boot.cmd| Manual build howto]], create a boot.cmd with the following contents:<br />
<br />
<pre>fatload mmc 0 0x46000000 uImage<br />
fatload mmc 0 0x49000000 <board>.dtb<br />
<br />
setenv bootargs console=ttyS0,115200 <earlyprintk> root=/dev/mmcblk0p<partition> rootwait panic=10 ${extra}<br />
<br />
bootm 0x46000000 - 0x49000000</pre><br />
<br />
Replace ''fatload'' with ''ext2load'' if needed.<br />
<br />
If you are using an older U-Boot (you shouldn't - {{Remove|Which?}}), you might require the following line, to keep the extracted kernel from overwriting the device tree configuration:<br />
<pre>setenv fdt_high ffffffff</pre><br />
<br />
If you wish to use an initramfs, then the ''bootm'' command becomes:<br />
<pre>bootm 0x46000000 0x<initramfs-address> 0x49000000</pre><br />
<br />
Now [[Manual_build_howto#boot.scr|generate boot.scr]]. Don't forget to copy over your ''uImage'' and <board>.dtb files as well.<br />
<br />
== Network boot setup ==<br />
<br />
{{Remove|TODO.}} Fold in [[Possible setups for hacking on mainline]].<br />
<br />
=See also=<br />
* [[Manual build howto]]<br />
* [[Linux mainlining effort]]<br />
* [[Possible setups for hacking on mainline]]<br />
<br />
[[Category:Tutorial]]<br />
[[Category:Software]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_tree&diff=12828Device tree2015-01-21T13:57:06Z<p>Lowtex: Lowtex moved page Device tree to Device Tree: typo</p>
<hr />
<div>#REDIRECT [[Device Tree]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12827Device Tree2015-01-21T13:57:06Z<p>Lowtex: Lowtex moved page Device tree to Device Tree: typo</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
== Particular Devices ==<br />
<br />
In the kernel sources, you're working with, see<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
== Compiling the Device Tree ==</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12826Device Tree2015-01-21T13:56:42Z<p>Lowtex: /* Particular Devices */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
== Particular Devices ==<br />
<br />
In the kernel sources, you're working with, see<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]<br />
<br />
== Compiling the Device Tree ==</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12825Device Tree2015-01-21T13:54:42Z<p>Lowtex: /* Particular Devices */</p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
== Particular Devices ==<br />
<br />
In the kernel sources, you're working with, see<br />
<br />
* [https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]<br />
* [https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts arch/arm/boot/dts]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12824Device Tree2015-01-21T13:49:06Z<p>Lowtex: </p>
<hr />
<div>The Device Tree is a data structure for describing hardware. In upstream kernel it is used like [[Script.bin]] for linux-sunxi to activate and configure the drivers available in the kernel's binary.<br />
<br />
= Sources for information =<br />
<br />
== Introduction ==<br />
<br />
* [http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf Device tree for Dummies]<br />
* [http://www.devicetree.org/Main_Page DeviceTree.org]<br />
<br />
== Particular Devices ==<br />
<br />
* [https://www.kernel.org/doc/Documentation/devicetree/bindings/ Documentation/devicetree/bindings]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12823Sending patches2015-01-21T13:32:53Z<p>Lowtex: /* Patches for New Devices */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. Find information how to actually make the modifications in the section linked<br />
in the ''Topic'' column.<br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/fex/linux-sunxi/WzSXGbtv_KY/OyfzdMdfv64J]<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/u-boot$20patch/linux-sunxi/QH_pNnofdhA/IvONhc3kMmYJ]<br />
|-<br />
| [[Mainline_U-boot#Adding a new device to upstream U-Boot|mainline u-boot]] || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||[http://lists.denx.de/pipermail/u-boot/2015-January/201954.html], [http://lists.denx.de/pipermail/u-boot/2015-January/201959.html]<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/patch/linux-sunxi/bf2od9vmUUU/RbYsI5TSFgkJ]<br />
|-<br />
| [[Mainline_Kernel_Howto#Adding_a_new_device|mainline kernel (.dts)]] || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Mainline_Kernel_Howto&diff=12822Mainline Kernel Howto2015-01-21T13:31:19Z<p>Lowtex: /* Kernel Compilation */</p>
<hr />
<div>This page describes how you can compile and use the Linux mainline kernel. <br />
<br />
= Current status =<br />
<br />
Please refer to the [[Linux mainlining effort]] page for detailed status of mainlining effort, and supported boards and driver coverage. The upstream code does not support various drivers and lacks sound, display, 3D, 2D and media support.<br />
<br />
NAND support is also not supported at the moment. This is a work in progress, but the driver that will eventually get merged will be incompatible with Allwinner's. Indeed, both use different storage format.<br />
<br />
If you simply want a more-or-less usable device for multimedia support, then use [[Linux_Kernel|our own 3.4 branch]].<br />
<br />
= Prerequisites =<br />
<br />
You should not attempt anything on this page, unless you are first comfortable with our [[Manual build howto]] which uses [[Linux_Kernel|our sunxi-3.4 kernel]]. This [[Manual build howto]] will guide you through setting up a full working system, and once you have that, you can start thinking about replacing the kernel with the mainline kernel. Apart from a fully set up SD-Card, this howto will also get you a working [[Toolchain|toolchain]] and a recent [[U-Boot]].<br />
<br />
While the mainline kernel should work on any bootloader (with the major exception being the A20), you'll need a recent sunxi [[U-boot]], or even better a [[Mainline_U-boot]]. SMP, virtualization and simplefb are the features you will most likely miss.<br />
<br />
= Kernel source =<br />
== Stable releases ==<br />
<br />
The stable releases are released by Linus Torvalds. Since Linux 3.8, the Allwinner support is added gradually. It is still quite sparse, but we are making good progress. This is probably what you should choose if you are looking for stability.<br />
<br />
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git<br />
<br />
== Patches merged in the next stable release ==<br />
<br />
There is also a sunxi-next branch maintained with all the inclusions that have been accepted, merged and will included in the next stable release. If you want to do some development, it's probably the best pick.<br />
<br />
git clone [http://github.com/mripard/linux/tree/sunxi-next git://github.com/mripard/linux.git] -b sunxi-next<br />
<br />
= Kernel Configuration =<br />
<br />
To get a working kernel, just use the following for configuration</pre><br />
<pre>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig</pre><br />
<br />
If you wish to alter configuration, run:<br />
<pre>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig</pre><br />
<br />
== Enable modules ==<br />
<br />
If you need certain drivers as modules, at the top level menu, enable:<br />
<br />
<pre>[*] Enable loadable module support ---></pre><br />
<br />
Remember to [[#Kernel_Compilation|build modules]] as well later on, next to ''uImage'' and ''dtbs''. Then, also remember to install your modules into your rootfs.<br />
<br />
== Early printk ==<br />
<br />
If and only if your kernel does nothing, it pays to enable early printk support.<br />
<br />
Go to:<br />
<pre> Kernel hacking ---></pre><br />
<br />
Then enable:<br />
<pre>[*] Kernel debugging</pre><br />
<br />
To actually get early printk, you need to also enable:<br />
<pre>[*] Kernel low-level debugging functions (read help!)<br />
Kernel low-level debugging port (Kernel low-level debugging messages via sunXi UART0) ---><br />
[*] Early printk</pre><br />
<br />
On all supported SoCs, a good rule of thumb is that you will need ''UART0'', unless you are on the A13 (''UART1'') or the A23 (''R_UART'').<br />
<br />
The Kconfig options needed are CONFIG_DEBUG_KERNEL, CONFIG_DEBUG_LL, CONFIG_EARLY_PRINTK and one of the CONFIG_DEBUG_SUNXI options, depending on your board.<br />
<br />
== simplefb ==<br />
<br />
While a KMS driver still is being worked on, a quick and easy way to get a display up on a HDMI monitor is to build (upcoming) U-Boot with sunxi cfb console support.<br />
<br />
The kernel side support can be enabled through:<br />
<pre> Device Drivers ---></pre><br />
End then:<br />
<pre> Graphics support ---></pre><br />
Followed by:<br />
<pre> Frame buffer Devices ---></pre><br />
Enabled frame buffer devices, and descend into that menu:<br />
<pre>[*] Support for frame buffer devices ---></pre><br />
Then enable simplefb:<br />
<pre>[*] Simple framebuffer support</pre><br />
<br />
= Adding a new device =<br />
<br />
Currently, there is only few information available for this topic in this wiki.<br />
Mainly, you have to write a [[Device tree|device description]]. Please [[Sending_patches|send a patch]] to help other finding good examples.<br />
<br />
= Kernel Compilation =<br />
<br />
To build the kernel, now run:<br />
<br />
<pre>ARCH=arm CROSS_COMPILE=<toolchain-prefix> LOADADDR=0x40008000 make uImage dtbs</pre><br />
<br />
After the compilation ended, you should have generated both the uImage in ''arch/arm/boot'', and a device tree blob (''.dtb'') in ''arch/arm/boot/dts''.<br />
<br />
This device tree blob (or simply dtb) gives to the kernel the description of the hardware it's currently running on. In its goal, it's pretty similar to the FEX scripts that Allwinner uses, yet far more generic. It allows to compile a single kernel image that will run on several platforms.<br />
<br />
To identify the dtb file that you will use on your board, first look into ''arch/arm/boot/dts''. You should see a whole bunch of them, most being irrelevant to us because targeting boards based on other ARM SoCs. All the sunxi dtb follow the pattern <family>-<soc>-<board>.dtb (for example sun5i-a13-olinuxino.dtb, refer to [[Allwinner SoC Family]] for an exhaustive list).<br />
<br />
= Boot =<br />
== SD-Card Boot partition ==<br />
<br />
Like with our [[Manual_build_howto#Setting_up_the_boot_partition | Manual build howto]], you need to set up the boot partition. Instead of ''script.bin'', you need install your boards dtb to the boot partition.<br />
<br />
=== boot.cmd ===<br />
Like in the [[Manual_build_howto#boot.cmd| Manual build howto]], create a boot.cmd with the following contents:<br />
<br />
<pre>fatload mmc 0 0x46000000 uImage<br />
fatload mmc 0 0x49000000 <board>.dtb<br />
<br />
setenv bootargs console=ttyS0,115200 <earlyprintk> root=/dev/mmcblk0p<partition> rootwait panic=10 ${extra}<br />
<br />
bootm 0x46000000 - 0x49000000</pre><br />
<br />
Replace ''fatload'' with ''ext2load'' if needed.<br />
<br />
If you are using an older U-Boot (you shouldn't - {{Remove|Which?}}), you might require the following line, to keep the extracted kernel from overwriting the device tree configuration:<br />
<pre>setenv fdt_high ffffffff</pre><br />
<br />
If you wish to use an initramfs, then the ''bootm'' command becomes:<br />
<pre>bootm 0x46000000 0x<initramfs-address> 0x49000000</pre><br />
<br />
Now [[Manual_build_howto#boot.scr|generate boot.scr]]. Don't forget to copy over your ''uImage'' and <board>.dtb files as well.<br />
<br />
== Network boot setup ==<br />
<br />
{{Remove|TODO.}} Fold in [[Possible setups for hacking on mainline]].<br />
<br />
=See also=<br />
* [[Manual build howto]]<br />
* [[Linux mainlining effort]]<br />
* [[Possible setups for hacking on mainline]]<br />
<br />
[[Category:Tutorial]]<br />
[[Category:Software]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Device_Tree&diff=12821Device Tree2015-01-21T13:24:15Z<p>Lowtex: Created page with "{{Edit|work in progress...}}"</p>
<hr />
<div>{{Edit|work in progress...}}</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12819Sending patches2015-01-21T12:58:57Z<p>Lowtex: /* Patches for New Devices */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. Find information how to actually make the modifications in the section linked<br />
in the ''Topic'' column.<br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/fex/linux-sunxi/WzSXGbtv_KY/OyfzdMdfv64J]<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/u-boot$20patch/linux-sunxi/QH_pNnofdhA/IvONhc3kMmYJ]<br />
|-<br />
| [[Mainline_U-boot#Adding a new device to upstream U-Boot|mainline u-boot]] || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/3KE-dv08sww]<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/patch/linux-sunxi/bf2od9vmUUU/RbYsI5TSFgkJ]<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12818Sending patches2015-01-21T12:56:06Z<p>Lowtex: reference to mainline u-boot howto</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/fex/linux-sunxi/WzSXGbtv_KY/OyfzdMdfv64J]<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/u-boot$20patch/linux-sunxi/QH_pNnofdhA/IvONhc3kMmYJ]<br />
|-<br />
| [[Mainline_U-boot#Adding a new device to upstream U-Boot|mainline u-boot]] || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/3KE-dv08sww]<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/patch/linux-sunxi/bf2od9vmUUU/RbYsI5TSFgkJ]<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12817Sending patches2015-01-21T12:52:11Z<p>Lowtex: example</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/fex/linux-sunxi/WzSXGbtv_KY/OyfzdMdfv64J]<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/u-boot$20patch/linux-sunxi/QH_pNnofdhA/IvONhc3kMmYJ]<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/3KE-dv08sww]<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/patch/linux-sunxi/bf2od9vmUUU/RbYsI5TSFgkJ]<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12816Sending patches2015-01-21T12:47:41Z<p>Lowtex: /* Patches for New Devices */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/fex/linux-sunxi/WzSXGbtv_KY/OyfzdMdfv64J]<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/u-boot$20patch/linux-sunxi/QH_pNnofdhA/IvONhc3kMmYJ]<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/3KE-dv08sww]<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12815Sending patches2015-01-21T12:43:32Z<p>Lowtex: more examples</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/fex/linux-sunxi/WzSXGbtv_KY/OyfzdMdfv64J]<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/u-boot$20patch/linux-sunxi/QH_pNnofdhA/IvONhc3kMmYJ]<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12814Sending patches2015-01-21T12:38:54Z<p>Lowtex: added example</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!searchin/linux-sunxi/fex/linux-sunxi/WzSXGbtv_KY/OyfzdMdfv64J]<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Inet_K970&diff=12813Inet K9702015-01-21T12:33:35Z<p>Lowtex: removed u-boot material</p>
<hr />
<div>{{Infobox Board<br />
| image = [[File:Planet-1-Total.jpg|250px]]<br />
| manufacturer = [http://www.inet-tek.com/ Inet Tek]<br />
| dimensions = 260 ''mm'' x 170 ''mm'' x 11,5 ''mm''<br />
| release_date = August 2014<br />
| website = [http://www.inet-tek.com/a/English/Middle_board_display/20130723/84.html Board page]<br />
| soc = [[A20]] @ 1 Ghz<br />
| dram = 1 GiB @ 408 MHz<br />
| nand = 8 GB<br />
| power = DC 5V @ 2A, 8000mAh 3.7V Polymer battery<br />
| lcd = 1024x768 (9.7" 4:3)<br />
| touchscreen = 5-finger capacitive ([[Touchscreen#Focaltech|Focaltech&nbsp;FT5406EE8]])<br />
| video = HDMI (Type C - mini)<br />
| audio = 3.5mm headphone plug, HDMI, internal stereo speakers, internal microphone<br />
| network = WiFi 802.11 b/g/n ([[Wifi#Realtek|Realtek&nbsp;RTL8723AU]])<br />
| storage = µSD<br />
| usb = 1 USB2.0 Host, 1 USB2.0 OTG<br />
| camera = 0.3MP (640×480) front (Device: gc0308), 2.0MP (1616×1232{{Edit|??? Why is this not 1920x1080???}}) rear (Device: gc2035)<br />
| other = Accelerometer ([[Accelerometer#MMA8652|Freescale MMA8652]] / [[Accelerometer#MMA8653|Freescale MMA8653]]), Bluetooth ([[Bluetooth#Realtek|Realtek&nbsp;RTL8723AU]]), [[Tablet Buttons|Buttons]]<br />
| headers = [[#Adding a serial port (voids warranty)|UART]]<br />
}}<br />
<br />
{{Remove_only_when_finished|This page needs to be properly filled according to the [[New_Device_howto |New Device Howto]] and the [[New_Device_page|New Device Page guide]].}}<br />
<br />
= Identification =<br />
<br />
On the back of the device, the following is printed:<br />
<pre>Tristan Auron<br />
Planet 1<br />
</pre><br />
<br />
The PCB has the following silkscreened on it:<br />
<pre>INET-K970-REV02<br />
Zeng-gc<br />
2013-08-27</pre><br />
<br />
In android, under Settings->About Tablet, you will find:<br />
* Model Number: ''planet 1''<br />
* Build Number: ''A20_K9701_K9701L2B_1210239.20121030''<br />
<br />
= Sunxi support =<br />
<br />
== Current status ==<br />
<br />
Supported by the legacy u-boot-sunxi and sunxi-3.4 kernel. <br />
<br />
Only partially working are:<br />
* Bluetooth<br />
<br />
Currently broken for A20 is:<br />
* USB OTG<br />
<br />
No drivers or suitable dts are readily at hand for the following devices:<br />
* Power Status, (mainline, in RFC state, see following [https://groups.google.com/forum/#!topic/linux-sunxi/PmBzOtrbtW4 thread])<br />
* Nand (mainline, see [[MTD Driver]])<br />
* G-Sensor<br />
* Cameras<br />
<br />
== Images ==<br />
<br />
== HW-Pack ==<br />
<br />
== BSP ==<br />
<br />
== Manual build ==<br />
<br />
* u-boot-sunxi is deprecated, use mainline u-boot as delineated below.<br />
* The .fex file can be found in sunxi-boards as [https://github.com/linux-sunxi/sunxi-boards/blob/master/sys_config/a20/inet-k970.fex inet-k970.fex]<br />
<br />
Everything else is the same as the [[Manual_build_howto | Manual build howto]].<br />
<br />
== Mainline U-Boot ==<br />
[[File:Console-U-Boot.jpg|thumb|U-boot showing its dialog on the LCD.]]<br />
<br />
{{Remove|Fix target naming.}}<br />
For [[Mainline_U-boot#Compile_U-Boot | building mainline u-boot]], use the ''Tristan_Auron_Planet_1_defconfig'' target.<br />
<br />
A [https://groups.google.com/forum/#!topic/linux-sunxi/9cvlicuP8k0 patch] is currently under review.<br />
<br />
Until the patch and new various features hit the main repository, use the following u-boot as mainline:<br />
<pre>$ git clone -b sunxi-wip https://github.com/jwrdegoede/u-boot-sunxi/tree/sunxi-wip</pre><br />
In particular, this allows an u-boot dialog using an usb-keyboard and the tablet's LCD.<br />
<br />
== Mainline kernel ==<br />
<br />
Use the ''sun7i-a20-inet-k970.dtb'' ([https://groups.google.com/forum/#!topic/linux-sunxi/n9mdsG8j5Yk once accepted]) device-tree file for the [[Mainline_Kernel_Howto|mainline kernel]].<br />
<br />
= Tips, Tricks, Caveats =<br />
<br />
== FEL mode ==<br />
<br />
The ''Vol+'' button triggers [[FEL | FEL mode]].<br />
<br />
== Reset button ==<br />
<br />
Like with most Inet-tek tablets, a reset button is available through the pinhole on the back.<br />
<br />
= Adding a serial port ('''voids warranty''') =<br />
<br />
[[File:Planet-1-Opened.jpg|thumb|240px|tablet with opened back cover]]<br />
<br />
While the UART is located as delineated below and works properly, note that this is an option, and I'm not advising to use it. I fact, I for one was not able to get the touchscreen going again, after reconnecting the ribbon. In case you do need an UART, which I didn't, you might want to consider using a less intrusive approach, e.g. the [[MicroSD_Breakout]]. Additionally, current [[#Mainline U-boot|mainline U-boot]] provides output to HDMI, until you have setup [[LCD]] parameters.<br />
<br />
== Device disassembly ==<br />
<br />
To open the tablet, first remove the two screws on the connector's side. As the picture aside shows, the back cover can most safely be lifted from the side opposite to the connectors. Try using a [[Plastic tool]]. A spool-like tool, shown with the opened device, worked better for me. Before trying to open the tablet, notice the eyelets on the back cover clearly visible both at the cover itself and its shadows. I found it best to open it first at one of the loops in the middle. Further take care of the speaker cables when lifting the back cover.<br />
<br />
[[File:Planet-1-Uart-1.jpg|thumb|240px|UART pads]]<br />
<br />
== Locating the UART ==<br />
<br />
The RX,TX pads are hidden under the touchscreen ribbon located on the right side of the board's front picture.<br />
To remove the ribbon, lift the connector's lever visible as a narrow dark bar at the upper edge of the<br />
white connector. The ribbon is released then and can be pulled out of the connector without force.<br />
The GND is textually marked at another place on the board close to the right upper edge<br />
of the board's front picture and connected to the large cooper area. See the gallery below for details.<br />
<br />
= Pictures =<br />
<br />
<gallery><br />
File:Planet-1-Front.jpg<br />
File:Planet-1-Back.jpg<br />
File:Planet-1-Connectors.jpg<br />
File:Device_buttons_2.jpg<br />
File:Planet-1-Board-01.jpg<br />
File:Device_board_back.jpg<br />
</gallery><br />
<br />
<gallery><br />
File:Planet-1-Uart-2.jpg<br />
File:Planet-1-Uart-3.jpg<br />
</gallery><br />
<br />
= Also known as =<br />
<br />
* [http://www.tristan-auron.de/shop_de.php?wpf_shops_products_id=3&wpf_shops_products_group=3 Tristan Auron Planet 1]<br />
* [http://www.inet-tek.com/a/K970/20130831/131.html M973]<br />
<br />
= See also =<br />
<br />
[[Category:Devices]]<br />
[[Category:A20 Tablets]]<br />
[[Category:Devices with HDMI port]]<br />
[[Category:Mainline U-boot]]<br />
[[Category:Mainline_Kernel]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12811Sending patches2015-01-21T12:29:28Z<p>Lowtex: added example column</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s) || Example<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com ||<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] ({{Remove|Deprecated!}}) || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com ||<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com ||<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com ||<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com ||[https://groups.google.com/forum/#!topic/linux-sunxi/Xu0qNroC7HQ]<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12808Sending patches2015-01-21T12:10:08Z<p>Lowtex: /* Patches for New Devices */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Topic || Repository to patch against || Patch receiver(s)<br />
|-<br />
| [[New Device howto#Step 6: Add support to sunxi-boards|Fex]]|| https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| [[U-boot#Adding_a_new_device_to_U-Boot|u-boot-sunxi]] || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12806Sending patches2015-01-21T12:01:53Z<p>Lowtex: /* Patches for New Devices */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches. To ensure your patches integrate well, use<br />
the following repositories. <br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| u-boot-sunxi || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12805Sending patches2015-01-21T11:51:21Z<p>Lowtex: added note</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
Patches going upstream (mainline) are managed on other mailing lists and by their particular maintainers.<br />
You need not subscribe to these list for sending patches.<br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| u-boot-sunxi || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12802Sending patches2015-01-21T11:38:19Z<p>Lowtex: adjusting repositories</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| u-boot-sunxi || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline u-boot || http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=tree;hb=refs/heads/next ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://git.kernel.org/cgit/linux/kernel/git/mripard/linux.git/tree/?h=sunxi/for-next || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12801Sending patches2015-01-21T11:30:03Z<p>Lowtex: </p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Patches for New Devices ==<br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| u-boot-sunxi || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline u-boot || https://github.com/jwrdegoede/u-boot-sunxi/tree/sunxi-wip ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://github.com/torvalds/linux || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Patches for Tools and Drivers ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12800Sending patches2015-01-21T11:28:20Z<p>Lowtex: /* Base and destination */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Git repositories ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Patches for New Devices ==<br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| u-boot-sunxi || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline u-boot || https://github.com/jwrdegoede/u-boot-sunxi/tree/sunxi-wip ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://github.com/torvalds/linux || Use the get_maintainer script as shown below<br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
If you're sending patches to the mainline kernel, you can get a list of the recipients of the patch using:<br />
# <code>$ ./scripts/get_maintainer.pl ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=User:Lowtex&diff=12728User:Lowtex2015-01-20T18:26:22Z<p>Lowtex: </p>
<hr />
<div>I have the following hardware:<br />
<br />
* A10<br />
:* [[Cubietech Cubieboard]]<br />
:* Point of View ProTab 2 IPS<br />
<br />
* A20<br />
<br />
:* [[Olimex A20-OLinuXino-Lime2]]<br />
:* [[Inet_K970]] (Tristan Auron Planet 1)<br />
<br />
I'm interested in getting NAND going with mainline linux and booting without boot0,boot1.<br />
<br />
I currently consider to write Wiki pages on following topics:<br />
<br />
:* Adding a new device to mainline U-Boot<br />
:* Adding a new device to mainline Linux</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12726Sending patches2015-01-20T17:06:30Z<p>Lowtex: /* Base and destination */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Git repositories ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Base and destination ==<br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| u-boot-sunxi || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline u-boot || https://github.com/jwrdegoede/u-boot-sunxi/tree/sunxi-wip ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://github.com/torvalds/linux || To:Maxime Ripard &lt;maxime.ripard@free-electrons.com><br>To:linux-arm-kernel &lt;linux-arm-kernel@lists.infradead.org><br>To:devicetree <devicetree@vger.kernel.org><br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12725Sending patches2015-01-20T17:05:05Z<p>Lowtex: /* Base and destination */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Git repositories ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Base and destination ==<br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| u-boot-sunxi || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline uboot || https://github.com/jwrdegoede/u-boot-sunxi/tree/sunxi-wip ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| linux-sunxi || https://github.com/linux-sunxi/linux-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://github.com/torvalds/linux || To:Maxime Ripard &lt;maxime.ripard@free-electrons.com><br>To:linux-arm-kernel &lt;linux-arm-kernel@lists.infradead.org><br>To:devicetree <devicetree@vger.kernel.org><br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=Sending_patches&diff=12724Sending patches2015-01-20T16:48:38Z<p>Lowtex: /* Setting up git send-email */</p>
<hr />
<div>We currently use the [[Mailing list]] as a code review and integration tool, feel free to send your patches using ''git send-email''.<br />
<br />
== Git repositories ==<br />
<br />
The main repositories to clone and base from are all maintained at [https://github.com/linux-sunxi/ GitHub ( https://github.com/linux-sunxi/ )] - these include linux kernel sources, u-boot sources, tools and other associated libraries such as MALI 3D graphics and CEDARX Video.<br />
<br />
We also have older repositories available on [http://git.linux-sunxi.org/ linux-sunxi.org ( http://git.linux-sunxi.org/ )] and [https://gitorious.org/linux-sunxi Gitorius ( https://gitorious.org/linux-sunxi )].<br />
<br />
== Base and destination ==<br />
<br />
{| class="wikitable"<br />
|- <br />
! Patch || Repository to patch against || Patch receiver(s)<br />
|-<br />
| Fex || https://github.com/linux-sunxi/sunxi-boards || To:linux-sunxi@googlegroups.com<br />
|-<br />
| sunxi-uboot || https://github.com/linux-sunxi/u-boot-sunxi.git || To:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline uboot || https://github.com/jwrdegoede/u-boot-sunxi/tree/sunxi-wip ||To:u-boot@lists.denx.de<br>Cc:linux-sunxi@googlegroups.com<br />
|-<br />
| mainline kernel (.dts) || https://github.com/torvalds/linux || To:Maxime Ripard &lt;maxime.ripard@free-electrons.com><br>To:linux-arm-kernel &lt;linux-arm-kernel@lists.infradead.org><br>To:devicetree <devicetree@vger.kernel.org><br>Cc:linux-sunxi@googlegroups.com<br />
|}<br />
<br />
== Setting up git send-email ==<br />
<br />
# Install git-email addon using your favorite package manager<br />
# <code>$ git config --global sendemail.smtpserver ''smtp.yourisp.com''</code><br />
# <code>$ git config --global sendemail.smtpuser ''yourusernameforsmtp''</code><br />
# <code>$ git config --global sendemail.smtppass ''yourpassword''</code><br />
# <code>$ git config --global sendemail.from ''your@email.com''</code><br />
# <code>$ git config --global sendemail.chainreplyto false</code><br />
<br />
== Using git send-email ==<br />
<br />
# <code>$ git format-patch -1 ''longcommithashhere''</code><br />
# <code>$ git send-email ''0001-whatever-file-it-generated.patch''</code><br />
<br />
It will ask you whom to send it to (use ''dev@linux-sunxi.org'') and that's it!<br />
<br />
== More information ==<br />
* [http://garbas.si/blog/2011/send-patches-using-git-send-email Send patches using git send-email]<br />
* [https://felipec.wordpress.com/2009/10/25/git-send-email-tricks/ git send-email tricks]<br />
* [http://lxr.free-electrons.com/source/Documentation/SubmittingPatches Linux Documentation: Submitting patches]<br />
* [https://www.youtube.com/watch?v=LLBrBBImJt4 Youtube: Write and Submit your first Linux kernel Patch By Greg Kroah-Hartman]<br />
<br />
[[Category:Community]]<br />
[[Category:Development]]</div>Lowtexhttps://linux-sunxi.org/index.php?title=User:Lowtex&diff=12723User:Lowtex2015-01-20T16:11:50Z<p>Lowtex: </p>
<hr />
<div>I have the following hardware:<br />
<br />
* A10<br />
:* [[Cubietech Cubieboard]]<br />
:* Point of View ProTab 2 IPS<br />
<br />
* A20<br />
<br />
:* [[Olimex A20-OLinuXino-Lime2]]<br />
:* [[Inet_K970]] (Tristan Auron Planet 1)<br />
<br />
I'm interested in getting NAND going with mainline linux and booting without boot0,boot1.<br />
<br />
I currently consider to write Wiki pages on following topics:<br />
<br />
:* Adding a new device to mainline U-Boot<br />
:* Adding a new device to mainline Linux<br />
:* Sending patches -- what to post where?</div>Lowtexhttps://linux-sunxi.org/index.php?title=User:Lowtex&diff=12721User:Lowtex2015-01-20T15:44:30Z<p>Lowtex: </p>
<hr />
<div>I have the following hardware:<br />
<br />
* A10<br />
:* [[Cubietech Cubieboard]]<br />
:* Point of View ProTab 2 IPS<br />
<br />
* A20<br />
<br />
:* [[Olimex A20-OLinuXino-Lime2]]<br />
:* [[Inet_K970]] (Tristan Auron Planet 1)<br />
<br />
I'm interested in getting NAND going with mainline linux and booting without boot0,boot1.<br />
<br />
I currently consider to write Wiki pages on following topics:<br />
<br />
:* Adding a new device to mainline U-Boot<br />
:* Adding a new device to mainline Linux</div>Lowtex