Changes

Jump to: navigation, search

Axel Embedded Linux Kit (XELK)

8,020 bytes added, 14:47, 11 March 2019
XELK software components
==Introduction==
{{ImportantMessage|text='''Customers are strongly recommended to register their kits'''. Registration grants access to reserved material such as source code and additional documentation.
 
To register the kit, please send an email to [mailto:support-axel@dave.eu support-axel@dave.eu], [[Development_Kits_Identification_Codes|providing the kit P/N and S/N]].}}
[[File:Axel-on-evb-02.png|500px]]
!Notes
|-
|style="text-align: center;" | [[File:Axel-01.png|60px]]
|Axel Ultra SOM (or Axel Lite SOM) <br>CPU: Freescale i.MX6<br>SDRAM: 2 GB DDR3<br>NOR: bootable SPI flash 32 MB<br>NAND: 1GB
|Please refer to [[Hardware Manual (AxelUltra) | Axel Ultra Hardware Manual]]
|-
|style="text-align: center;" | [[File:Axelevb-lite-01.png|60px]]
|AxelEVB-Lite Carrier board
|Please refer to [[AxelEVB-Lite | AxelEVB-Lite]] page
|-
|style="text-align: center;" | [[File:Dacu-top-view.png|80px]]
|Dacu Carrier board
|Please refer to [[Dacu | Dacu]] page
|-
|style="text-align: center;" | [[File:Display.jpg|60px]]
|Ampire AM-800480STMQW<br>7” 800x480 LCD display<br>LVDS interface
|Please refer to [[XELK Quick Start Guide]]
|-
|style="text-align: center;" | [[File:Alimentatore.jpg|40px]]
|AC/DC Single Output Wall Mount adapter<br>Output: +12V – 2.0 A
|Please refer to [[XELK Quick Start Guide]]
|-
|style="text-align: center;" | [[File:Cavetto-seriale2.jpg|50px]]
|DB9 Male Serial port adapter
|Please refer to [[XELK Quick Start Guide]]
|-
|style="text-align: center;" | [[File:ProdSDC-MBLY-thumb.png|50px]]
|MicroSDHC card with SD adapter and USB adapter
|Please refer to [[XELK Quick Start Guide]]
== XELK software components ==
'''DAVE Embedded Systems''' adds to the latest Linux BSP from NXP/Freescale the customization required to support the Axel platform. For this reason most of the documentation provided by NXP/Freescale remains valid for the XELK development kit. However, some customization is required, in particular at bootloader and linux kernel levels.
The following table reports the XELK releases information.
{| class="wikitable"
!
!colspan="79" | XELK version
|-
|Release number
|2.1.0
|2.2.0
|2.3.1|3.0.1|4.0.0
|-
|Release type
|Maintenance
|Major
|Maintenance
|Maintenance
|Maintenance
|Major
|Major
|-
|Released
|Released
|Release CandidateReleased|Released|Planned
|-
|Release date
|May 2015
|February 2016
|1Q October 2016|November 2017|Q2 2019
|-
|'''Release notes'''
|[[Axel_Embedded_Linux_Kit_(XELK)#XELK 1.0.0 | Ver 1.0.0]]|[[Axel_Embedded_Linux_Kit_(XELK)#XELK 1.1.0 | Ver 1.1.0]]|[[Axel_Embedded_Linux_Kit_(XELK)#XELK 1.2.0 | Ver 1.2.0]]|[[Axel_Embedded_Linux_Kit_(XELK)#XELK 2.0.0 | Ver 2.0.0]]|[[Axel_Embedded_Linux_Kit_(XELK)#XELK 2.1.0 | Ver 2.1.0]]|[[Axel_Embedded_Linux_Kit_(XELK)#XELK 2.2.0 | Ver 2.2.0]]|[[Axel_Embedded_Linux_Kit_(#XELK)2.3.1 | Ver 2.3.1]]|[[#XELK 3.0.1 | Ver 3.0.1]]|[[#XELK 4.0.0 | Ver 34.0.0]]
|-
|SOM PCB version
|Axel Ultra: CS030713A
|Axel Ultra: CS030713A<br>Axel Lite: CS335013A
|Axel Ultra: CS030713A<br>Axel Lite: CS335013BCS335013A|Axel Ultra: CS030713B<br>Axel Lite: CS335013BCS335013A|Axel Ultra: CS030713B<br>Axel Lite: CS335013BCS335013A|Axel Ultra: CS030713B<br>Axel Lite: CS335013A<br>Axel Lite: CS335013C|Axel Lite: CS335013A<br>Axel Lite: CS335013C|Axel Lite: CS335013A<br>Axel Lite: CS335013C
|--
|Supported carrier boards
|<span class="plainlinks">[http{{fullurl://wiki.dave.eu/index.php?title=AxelEVB-Lite&|oldid=2970 }} AxelEVB-Lite]</span><br>[[:Category:Dacu | Dacu]]|{{pageoldid|AxelEVB-Lite|2970}}<br>[[http://wiki.dave.eu/index.php?title=Category:Dacu | Dacu]]|{{pageoldid|AxelEVB-Lite&oldid=|2970 }}<br>[[:Category:Dacu | Dacu]]|{{pageoldid|AxelEVB-Lite]|2970}}<br>[[:Category:Dacu | Dacu]]|{{pageoldid|AxelEVB-Lite|2970}}<br>[[http://wiki.dave.eu/index.php?title=AxelEVB-Lite&oldid=2970 |AxelEVB-Literev.A]]<br>[[:Category:Dacu | Dacu]]|{{pageoldid|AxelEVB-Lite|2970}}<br>[[http://wiki.dave.eu/index.php?title=AxelEVB-Lite&oldid=2970 |AxelEVB-Literev.A]]<br>[[:Category:Dacu | Dacu]]<br>[[:Category:SBC-AXEL | SBCX]]|[http://wiki.dave.eu/index.php?title={{pageoldid|AxelEVB-Lite&oldid=|2970 AxelEVB-Lite]}}<br>[[AxelEVB-Lite|AxelEVB-Lite rev.A]]<br>[[:Category:Dacu | Dacu]]<br>[[:Category:SBC-AXEL | SBCX]]|[http://wiki.dave.eu/index.php?title={{pageoldid|AxelEVB-Lite&oldid=|2970 AxelEVB-Lite]}}<br>[[AxelEVB-Lite|AxelEVB-Lite rev.A]]<br>[[:Category:Dacu | Dacu]]<br>[[:Category:SBC-AXEL | SBCX]]|[http://wiki.dave.eu/index.php?title={{pageoldid|AxelEVB-Lite&oldid=|2970 AxelEVB-Lite]}}<br>[[AxelEVB-Lite|AxelEVB-Lite rev.A]]<br>[[:Category:Dacu | Dacu]]<br>[[:Category:SBC-AXEL | SBCX]]
|-
|U-Boot version
|2013.04-xelk-2.1.0
|2013.04-xelk-2.2.0
|2013.04-xelk-2.3.1|2016.03-xelk-3.0.2|2017.03-xelk-4.0.0
|-
|Linux version
|3.10.17-xelk-2.1.0
|3.10.17-xelk-2.2.0
|3.10.17-xelk-2.3.1
|4.1.15-xelk-3.0.0
|4.9.11-xelk-4.0.0
|-
|Drivers
|valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HMDIHDMI<br>LVDS1LVDS0|valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HMDIHDMI<br>LVDS1LVDS0<br>NAND<br>RTC<br>I2C<br>SPI|valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HMDIHDMI<br>LVDS1LVDS0<br>NAND<br>RTC<br>I2C<br>SPI|valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HMDIHDMI<br>LVDS1LVDS0<br>NAND<br>RTC<br>I2C<br>SPI<br>Video Input (MIPI)|valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HMDIHDMI<br>LVDS1LVDS0<br>NAND<br>RTC<br>I2C<br>SPI<br>Video Input (MIPI)<br>PCIe<br>[[ConfigID_and_UniqueID | ConfigID]]|valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HMDIHDMI<br>LVDS1LVDS0<br>NAND<br>RTC<br>I2C<br>SPI<br>Video Input (MIPI)<br>PCIe<br>[[ConfigID_and_UniqueID | ConfigID]]<br>Splash screen (U-Boot)[1]| valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HDMI<br>LVDS0<br>NAND<br>RTC<br>I2C<br>SPI<br>Video Input (MIPI)<br>PCIe<br>[[ConfigID_and_UniqueID | ConfigID]]<br>Splash screen (U-Boot) [1]| valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HDMI<br>LVDS0<br>NAND<br>RTC<br>I2C<br>SPI<br>Video Input (MIPI)<br>PCIe<br>[[ConfigID_and_UniqueID | ConfigID]]<br>Splash screen (U-Boot) [1]|valign="top" | SPI NOR Flash (boot)<br>UART debug (2-wire)<br>USB Host<br>USB OTG<br>SD/MMC1<br>CAN<br>Touch screen controller<br>EMAC<br>SATA<br>HMDIHDMI<br>LVDS1LVDS0<br>NAND<br>RTC<br>I2C<br>SPI<br>Video Input (MIPI)<br>PCIe<br>[[ConfigID_and_UniqueID | ConfigID]]<br>Splash screen (U-Boot)[1]
|-
|NXP/Freescale BSP version
|L3.0.35-4.1.0
|L3.0.35-4.1.0
|L3.10.17-1.0.0
|L3.10.17-1.0.0
|L3.10.17-1.0.3
|L3.10.17-1.0.3
|L4.1.15-2.0.0
|L4.9.11_1.0.0
|-
|Graphic libraries
|Qt 5.3.2
|Qt 5.3.2
|Qt 5.3.2|Qt 5.6.2|Qt 5.8
|-
|Build System
|LTIB
|LTIB
|Yocto Dora (1.5)
|Yocto Dora (1.5)
|Yocto Dora (1.5)
|Yocto Dora (1.5)
|Yocto Krogoth (2.1)
|Yocto Morty (2.2)
|-
|Android
|
|
|Kitkat 4.4.2
|Marshmallow 6.0.1
|
|}
 
[1] Splashscreen on LVDS0
====Downloadable binary images====
A summary of images with a brief description can be found into the table below:
 
{{ImportantMessage|text=In order to boot Linux from SD card files, '''the binary files must be renamed''' as follows:
*bootscript: <code>boot.scr</code>
 
U-boot file <code>u-boot.imx</code> must be stored into first raw sector of the SD card using <code>dd</code> command}}
{| class="wikitable"
|-
! Image !! colspan="5" |XELK version 2.3.1|-| Platform || XELK rev.A || SBCX rev.A || SBCX rev.A || SBCX rev.B || SBCX rev.B
|-
| Carrier Board [[ConfigID_and_UniqueID | ConfigID]]|| 0001 || 0002 || 0003 || 0012 || 0013
|-
|Platform LCD panel || XELK colspan="5" style="text-align: center" |Ampire 800 x 480 7" LVDS 262K colors (RGB666)<br>(AM-800480STMQW-TA1 or AM-800480SETMQW-TA1H)| SBCX -|Touchscreen | SBCX |colspan="1" | SBCX resistive || SBCXcolspan="1" | resistive || colspan="1" | capacitive || colspan="1" | resistive || colspan="1" style="text-align: center" | capacitive|-| bootscript || colspan="1" style="text-align: center" |[[mirror:axel/xelk-2.3.1/xelk-2.3.1_boot.scr|boot.scr]] || colspan="4" style="text-align: center" |[[mirror:axel/xelk-2.3.1/xelk-2.3.1_sbcx_boot.scr|boot.scr]]
|-
| bootscript U-Boot || colspan=5 "1" style="text-align: center" |[[mirror:axel/xelk-2.3.1/xelk-2.3.1_boot1_mx6qaxel_spi_u-boot.scrimx|u-boot (Quad - boot from NOR)]] || colspan="4" style="text-align: center" |[[mirror:axel/xelk-2.3.1/xelk-2.3.1_mx6dlaxel_nand_u-boot.scrimx|u-boot (DualLite - boot from NAND)]]
|-
| U-Boot Linux kernel || colspan=1 style="text-align: center5" |[[mirror:axel/xelk-2.3.1/xelk-2.3.1_mx6qaxel_spi_u-boot.imx|u-boot (Quad - boot from NOR)]] || colspan=4 style="text-align: center" |[[mirror:axel/xelk-2.3.1/xelk-2.3.1_mx6dlaxel_nand_u-boot.imx1_uImage|u-boot (DualLite - boot from NAND)uImage]]
|-
| Linux kernel <br>(Android 4.4.2) || colspan="5 " style="text-align: center" |[[mirror:axel/xelk-2.3.1/xelk-2.3.1_uImage0-andr_uImage|uImage]]
|-
| Device tree (Quad processor) || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6q-xelk-l.dtb|imx6q-xelk-l.dtb]] || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6q-sbcx.dtb|imx6q-sbcx-cb0002.dtb]] || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6q-sbcx-cb0003.dtb|imx6q-sbcx-cb0003.dtb]] Not available || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6q-sbcx-cb0012.dtb|imx6q-sbcx-cb0012.dtb]] || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6q-sbcx-cb0013.dtb|imx6q-sbcx-cb0013.dtb]]Not available
|-
| Device tree (DualLite processor) || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6dl-xelk-l.dtb|imx6dl-xelk-l.dtb]] || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6dl-sbcx.dtb|imx6dl-sbcx-cb0002.dtb]] || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6dl-sbcx-cb0003.dtb|imx6dl-sbcx-cb0003.dtb]] || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6dl-sbcx-cb0012.dtb|imx6dl-sbcx-cb0012.dtb]] || [[mirror:axel/xelk-2.3.1/xelk-2.3.1_imx6dl-sbcx-cb0013.dtb|imx6dl-sbcx-cb0013.dtb]]
|}
{| class="wikitable"
|-
! Image !! colspan="5" |XELK version 3.0.1
|-
| Platform || XELK rev.A || SBCX rev.B || SBCX rev.B
|-
| Carrier Board [[ConfigID_and_UniqueID | ConfigID]]|| 0001 || 0012 || 0013
|-
| LCD panel || colspan="5" style="text-align: center" | Ampire 800 x 480 7" LVDS 262K colors (RGB666)<br>(AM-800480STMQW-TA1 or AM-800480SETMQW-TA1H)
|-
| Touchscreen || colspan="1" | resistive || colspan="1" | resistive || colspan="1" style="text-align: center" | capacitive
|-
| bootscript || colspan="1" style="text-align: center" |[[mirror:axel/xelk-3.0.1/xelk-3.0.1_boot.scr|boot.scr]] || colspan="4" style="text-align: center" |[[mirror:axel/xelk-3.0.1/xelk-3.0.1_boot.scr|boot.scr]]
|-
| U-Boot || colspan="1" style="text-align: center" |[[mirror:axel/xelk-3.0.1/xelk-3.0.2_mx6qaxel_spi_u-boot.imx|u-boot (Quad - boot from NOR)]] || colspan="4" style="text-align: center" |[[mirror:axel/xelk-3.0.1/xelk-3.0.2_mx6dlaxel_nand_u-boot.imx|u-boot (DualLite - boot from NAND)]]
|-
| Linux kernel || colspan="5" style="text-align: center" |[[mirror:axel/xelk-3.0.1/xelk-3.0.0_uImage|uImage]]
|-
| Device tree (Quad processor) || [[mirror:axel/xelk-3.0.1/xelk-3.0.0_imx6q-xelk-l.dtb|imx6q-xelk-l.dtb]] || [[mirror:axel/xelk-3.0.1/xelk-3.0.0_imx6q-sbcx-cb0012.dtb|imx6q-sbcx-cb0012.dtb]] || [[mirror:axel/xelk-3.0.1/xelk-3.0.0_imx6q-sbcx-cb0013.dtb|imx6q-sbcx-cb0013.dtb]]
|-
| Device tree (DualLite processor) || [[mirror:axel/xelk-3.0.1/xelk-3.0.0_imx6dl-xelk-l.dtb|imx6dl-xelk-l.dtb]] || [[mirror:axel/xelk-3.0.1/xelk-3.0.0_imx6dl-sbcx-cb0012.dtb|imx6dl-sbcx-cb0012.dtb]] || [[mirror:axel/xelk-3.0.1/xelk-3.0.0_imx6dl-sbcx-cb0013.dtb|imx6dl-sbcx-cb0013.dtb]]
|}
* Administrator account (dvdk) with autologin. Please note that the user account credentials are provided with the development kit (you can find them into the README file contained in the sw/dvdk folder of the kit distribution)
Please note that XELK u-boot and kernel source trees are derived from the official trees released by NXP/Freescale; these trees have been customized to add support for the Axel SOM.
=== XELK Updates ===
{{ImportantMessage|text=After the XELK DVDK installation, please check for updates of the source tree repositories provided with the kit, as described in [[Axel_Embedded_Linux_Kit_(XELK)#XELK_Updates | XELK Updates]].}}
=== XELK 4.0.0 === * Release date: N.A.* Status: Working In Progress* NXP Linux BSP: L4.9.11-1.0.0* Supported carrier boards: AxelEVB-Lite on Dacu, SBCX ==== Notes ==== {{ImportantMessage|text=New MVM must be installed for using XELK-4.0.0. The VM is available for download on DAVE's XELK Reserved Area for registered users.}} * Major change to NXP BSP 4.9.11* Updated u-boot and kernel versions* Updated Yocto version* Updated Qt version === XELK 3.0.0 1 ===
This is release candidate version* Release date: 17/11/2017* Status: released* NXP Linux BSP: L4.1.15-2.0.0* Supported carrier boards: AxelEVB-Lite on Dacu, which not yet pass all validation tests for production use but is ready for development and evaluation.SBCX
For more information about how to use this release, limitations and known issues, read its [[Axel Embedded Linux Kit (XELK) 3.0.0 RC1 Release ==== Notes|dedicated page on this wiki]]====
{{ImportantMessage|text=New MVM must be installed for using XELK-3.0.1. The VM is available for download on DAVE's XELK Reserved Area for registered users.}}
 
* Major change to NXP BSP 4.1.15
* Updated u-boot and kernel versions
* Updated Yocto version
* Updated Qt version
 
=== XELK 2.3.1 ===
 
* Release date: 18/10/2016
* Status: released
* Freescale Linux BSP: L3.10.17-1.0.3
* Supported carrier boards: SBCX
 
==== Notes ====
 
{{ImportantMessage|text=It's highly recommended to read the [[ConfigID and UniqueID]] page.}}
 
* Added support for other ConfigID splash screen on u-boot
* Added support for other ConfigID on linux with related device-tree source code and binaries
* Bug fixes and minor changes
=== XELK 2.2.0 ===
|-
|}
 
=== XELK 2.0.0 ===
|-
|}
 
=== XELK 1.2.0 ===
|-
|}
 
=== XELK 1.1.0 ===
|-
|}
 
=== XELK 1.0.0 ===
* Freescale Linux BSP: L3.0.35-4.1.0
* Supported carrier boards: AxelEVB-Lite on Dacu
 
==== Notes ====
|-
|}
 
== Quick start guide ==
This chapter describes how to quickly start working with the XELK kit. The following paragraphs will guide you through the setup and installation procedures.
 
===Kit registration===
{{ImportantMessage|text='''Customers are strongly recommended to register their kits'''. Registration grants access to reserved material such as source code and additional documentation.}}
 
To register the kit, please send an email to [mailto:support-axel@dave.eu support-axel@dave.eu], [[Development_Kits_Identification_Codes|providing the kit P/N and S/N]].
 
If you also wish to access git repositories containing source code, please follow the procedure described [[Accessing_DAVE_Embedded_Systems_restricted_git_repositories|here]].
 
===Target setup and first boot===
This section describes how to quick start the AxelEVB board delivered along with XELK kit (see also the following image). The hardware setup is the same for AxelUltra and AxelLite SOMs.
[[File:AxelUltra-AxelEVB.jpg|thumb|center|600px|Axel Ultra/AxelEVB setup]]
The microSD provided with the XELK can be used to boot the system, since it contains a bootable partition (<code>mmcblk0p1</code>) and a root file system partition (<code>mmcblk0p2</code>).
#Insert the MicroSD card provided with the development kit into the microSD slot
#Connect the 12V power supply to the JP2 socket on the DACU board
#(optional) To access the serial console:
#*Connect a serial cable between the J251 connector on the DACU board and PC COM port through a null-modem (https://en.wikipedia.org/wiki/Null_modem) cable (not provided)
#*Start your favorite terminal software on hist side; communication parameters are:
#**Baud rate: 115200 Bps
#**Data bits: 8
#**Stop bits: 1
#**Parity: none
#(optional) To connect the system to Ethernet LAN, please plug cable on connector J6 connector of the AXELEVB-Lite
 
By default, the system is configured to boot automatically from the microSD card when powered up.
 
===Binary images on SD card===
XELK SD card contains all binary images required for booting the system completely from kernel/dtb (stored on first SD <code>fat</code> card partition) to <code>ext3</code> root file system (stored on second SD card partition).
 
Once you got the new binaries compiled from your modified sources, they have to be installed on first SD partition preserving the original file names used into <i>boot.scr</i> u-boot bootscript.
 
Otherwise, you may create a new '''boot.scr''' file using different file names. Here below there is an example on how to create a boot.scr file for booting from SD card:
 
The '''bootscript.txt''' is the text version of the <i>boot.scr</i> file:
 
<pre>
echo 'bootscript generated with command "mkimage -A ARM -T script -C none -n XELK -d bootscript.txt boot.scr"'
 
setenv fdtfile imx6q-xelk-l.dtb
setenv bootfile uImage
 
setenv mmc_loadk 'fatload mmc ${mmcdev}:1 ${loadaddr} ${bootfile}'
setenv mmc_loadfdt 'fatload mmc ${mmcdev}:1 ${fdtaddr} ${fdtfile}'
setenv mmcboot 'run mmc_loadk mmc_loadfdt mmcargs addip addcons addmisc adddisp0; bootm ${loadaddr} - ${fdtaddr}'
 
echo Booting AxelLite-XELK via mmcboot
 
run mmcboot
 
echo mmcboot FAILURE
</pre>
 
and compile it using:
 
<pre>
mkimage -A ARM -T script -C none -n XELK -d bootscript.txt boot.scr
</pre>
 
Then copy the kernel, dtb and boot.scr into the SD card first partion (the FAT one) and boot XELK with the new images.
==Related Documents ==
* [[Hardware Manual (AxelUltra) | Axel Ultra Hardware Manual]]
* [[Hardware Manual (AxelLite) | Axel Lite Hardware Manual]]
* [[XELK Quick Start Guide]]
* [[:Category:Dacu | Dacu category page]]
* [[Dacu | Dacu carrier board]]
8,154
edits

Navigation menu