Getting Started Guide for DM8148 EVM

From RidgeRun Developer Connection

(Difference between revisions)
Jump to:navigation, search
(Created page with '= Introduction = On this page you are going to find all the necessary information to start from scratch to use the RidgeRun SDK on your DM8148 evaluation module (EVM). In the fol...')
(Articles related to this board)
(7 intermediate revisions not shown)
Line 1: Line 1:
-
= Introduction =
+
= Introduction  =
-
On this page you are going to find all the necessary information to start from scratch to use the RidgeRun SDK on your DM8148 evaluation module (EVM). In the following sections we assume that you have already downloaded the [http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/5_02_02_60/index_FDS.html EZSDK] version 5.02.02.60 and that you have installed the [https://www.ridgerun.com/developer/wiki/index.php/Code_Sourcery_ARM_toolchain_2009q1-203 toolchain 2009q1-203] from [http://www.codesourcery.com/sgpp/lite/arm/portal/package4573/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi.bin codesourcery] as well as your DM8148 SDK following the steps on [[RidgeRun 2011Q2 SDK User Guide#Installation | The RidgeRun installation guide]].
+
-
The first section of this guide shows you how to install the EZSDK for DM8148 on your computer and how to configure a TFTP and NFS server. Subsequently, the second section contains instructions about how to configure the RidgeRun's SDK to create a SD card with all software components (uboot, kernel and filesystem) needed to boot to Linux Shell in your EVM. Using this SD card in the third and fourth section of this guide, you will be able to install on NAND images created by the SDK for kernel, uboot as well as your filesystem (JFFS2, UBI, NFS are available). Using the SD card created on the second section to flash the SDK in your EVM is just an option because you could try to use the installer of the RidgeRun's SDK with the uboot version that is running by default in a new EVM, however, we cannot guaranty that it will work as we expect, hence, we recommend to use the SD card instead. Finally, how to run opemax demos to encode and decode 1080p/h264 videos and some pipelines using gstreamer + openMax are shown.
+
On this page you are going to find all the necessary information to start from scratch to use the RidgeRun SDK on your DM8148 evaluation module (EVM). In the following sections we assume that you have already downloaded the [http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/5_02_02_60/index_FDS.html EZSDK] version 5.02.02.60 and that you have installed the [https://www.ridgerun.com/developer/wiki/index.php/Code_Sourcery_ARM_toolchain_2009q1-203 toolchain 2009q1-203] from [http://www.codesourcery.com/sgpp/lite/arm/portal/package4573/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi.bin codesourcery] as well as your DM8148 SDK following the steps on [[RidgeRun 2011Q2 SDK User Guide#Installation|The RidgeRun installation guide]].  
-
On the rest of this document, we refer as $(DEVDIR) to the path where the RidgeRun SDK for DM8148 is installed
+
The first section of this guide shows you how to install the EZSDK for DM8148 on your computer and how to configure a TFTP and NFS server. Subsequently, the second section contains instructions about how to configure the RidgeRun's SDK to create a SD card with all software components (uboot, kernel and filesystem) needed to boot to Linux Shell in your EVM. Using this SD card in the third and fourth section of this guide, you will be able to install on NAND images created by the SDK for kernel, uboot as well as your filesystem (JFFS2, UBI, NFS are available). Using the SD card created on the second section to flash the SDK in your EVM is just an option because you could try to use the installer of the RidgeRun's SDK with the uboot version that is running by default in a new EVM, however, we cannot guaranty that it will work as we expect, hence, we recommend to use the SD card instead. Finally, how to run opemax demos to encode and decode 1080p/h264 videos and some pipelines using gstreamer + openMax are shown.
-
= Basic preliminary work =
+
On the rest of this document, we refer as $(DEVDIR) to the path where the RidgeRun SDK for DM8148 is installed  
-
== Installing the EZSDK ==
+
-
1. Set the ezsdk binary as executable and set correct permissions
+
-
<pre style="background:#d6e4f1">
+
-
sudo chmod 777 ezsdk_dm814x-evm_5_02_02_60_setuplinux
+
-
</pre>
+
-
2. Install EZSDK. For ubuntu versions different than Ubuntu 10.04 LTS 32-bit you will need to add the --force-host argument to install it:
+
-
<pre style="background:#d6e4f1">
+
-
./ezsdk_dm814x-evm_5_02_02_60_setuplinux --force-host
+
-
</pre>
+
-
'''note:''' During the EZSDK installation process you will be asked for the toolchain's path, assuming that you installed it on /opt, the path that you need to provide is /opt/codesourcery/arm-2009q1/bin/
+
-
==Setting up serial access to the Linux console==
+
= Basic preliminary work  =
-
You use the serial port to control u-boot and Linux.  The picocom terminal emulator work well for this purpose.
+
-
::[[Setting up Picocom - Ubuntu]]
+
-
==Setting up a TFTP server==
+
== Installing the EZSDK  ==
-
If you are planning to use the SDK's installer to install images generated by the SDK in NAND, installing a TFTP server you will speed up downloads to the target hardware by using TFTP.
+
-
::[[Setting Up A Tftp Service]]
+
-
==Setting up an NFS server==
+
1. Set the ezsdk binary as executable and set correct permissions
-
For application development, it is convenient to use root NFS mount file system for the target hardware. This allows you to rebuild your application on the host and immediately run the application on the target hardware with no interveining steps.  You host PC needs to be configured as a NFS server for this in order to work properly.  
+
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> sudo chmod 777 ezsdk_dm814x-evm_5_02_02_60_setuplinux
-
::[[Setting Up A NFS Service]]
+
</pre>
 +
2. Install EZSDK. For ubuntu versions different than Ubuntu 10.04 LTS 32-bit you will need to add the --forcehost argument to install it:
 +
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> ./ezsdk_dm814x-evm_5_02_02_60_setuplinux --forcehost
 +
</pre>
 +
'''note:''' During the EZSDK installation process you will be asked for the toolchain's path, assuming that you installed it on /opt, the path that you need to provide is /opt/codesourcery/arm-2009q1/bin/
-
= Booting from a SD card =
+
== Setting up serial access to the Linux console  ==
-
== Setting up your EVM to boot from SD card ==
+
-
In order to boot from a SD card you need to set the MMC as the first boot device to try in the DM8148 boot sequence, this can be done configuring a correct BTMODE through the switch SW1 called BOOT MODE SEL in your EVM (see Fig. 1)
+
-
[[Image:DM8168SW3.JPG|400px|thumb|center|Figure 1. Dip switch to control boot mode (SD card)‎]]
+
-
<div style="text-align: center; ">'''Figure 1'''. Dip switch to control boot mode (SD card)</div>
+
You use the serial port to control u-boot and Linux. The picocom terminal emulator work well for this purpose.  
-
== Configuring SDK to deploy firmware to a SD card==
+
-
This section describes how to configure the DM8148's SDK to deploy all basic firmware components (kernel, uboot and MLO) into a bootable SD card. The RidgeRun SDK support several filesystem types (JFFS2, NFS, etc) however in this case we are going to use it on the SD card as well.
+
-
1. Set your environment variables
+
::[[Setting up Picocom - Ubuntu]]
-
<pre style="background:#d6e4f1">
+
-
  cd $(DEVDIR)
+
-
`make env`
+
-
</pre>
+
-
2. Open a make config menu
+
== Setting up a TFTP server ==
-
<pre style="background:#d6e4f1">
+
-
  make config
+
-
</pre>
+
-
running make config your SDK is going to download all basic packages needed by the SDK build system.
+
If you are planning to use the SDK's installer to install images generated by the SDK in NAND, installing a TFTP server you will speed up downloads to the target hardware by using TFTP.  
-
3. Go to Installer Configuration submenu and configure your installer as is shown in Fig.2
+
::[[Setting Up A Tftp Service]]
-
[[Image:InstallerMenuDM8168.png|400px|thumb|center|Figure 2. Installer configuration to deploy firmware to an SD card‎]]  
+
-
<div style="text-align: center; ">'''Figure 2'''. Installer configuration to deploy firmware to an SD card</div>
+
== Setting up an NFS server  ==
-
Using the ''Firmware deployment mode'' submenu you can set how to deploy your kernel, uboot and filesystem image into your target board. There are three options in this submenu: ''Attached board on communication port'', ''Deploy all the firmware to an SD card'' and ''Create an SD card installer for flash memory''.
+
For application development, it is convenient to use root NFS mount file system for the target hardware. This allows you to rebuild your application on the host and immediately run the application on the target hardware with no interveining steps. You host PC needs to be configured as a NFS server for this in order to work properly.  
-
*'''Attached board on communication port''' will allow you to send images to your target board using a serial port or a TFTP server, more details about this option are explained in the next section.
+
-
*'''Deploy all the firmware to an SD card''' tells to the installer that it must create the needed partitions on a SD card located in ''SD device on Linux host'' (please be sure that the option called '' Flash SD card image into loopback file instead of real SD'' is not selected) and that it have to install there the software's images generated by the SDK.  
+
-
*'''Create an SD card installer for flash memory''' is going to create and SD card with all the logic and software's images needed to flash the EVM's NAND from the SD card.
+
 +
::[[Setting Up A NFS Service]]
-
4. Go to File System Configuration submenu and configure your filesystem as is shown in Fig.3
+
= Booting from a SD card  =
-
[[Image:FSC.png|400px|thumb|center|Figure 3. File system configuration to use it on the SD‎]]
+
-
<div style="text-align: center; ">'''Figure 3'''. File system configuration to use it on the SD‎</div>
+
== Setting up your EVM to boot from SD card  ==
-
5. Compile your SDK
+
In order to boot from a SD card you need to set the MMC as the first boot device to try in the DM8148 boot sequence, this can be done configuring a correct BTMODE through the switch SW1 called BOOT MODE SEL in your EVM (see Fig. 1) [[Image:DM8148SD.JPG|thumb|center|400px]]
-
<pre style="background:#d6e4f1">
+
<div style="text-align: center;">'''Figure 1'''. Dip switch to control boot mode (SD card)</div>  
-
make
+
== Configuring SDK to deploy firmware to a SD card  ==
-
</pre>
+
-
== Installing SDK's firmware to a SD card ==
+
This section describes how to configure the DM8148's SDK to deploy all basic firmware components (kernel, uboot and MLO) into a bootable SD card. The RidgeRun SDK support several filesystem types (JFFS2, NFS, etc) however in this case we are going to use it on the SD card as well.  
-
Once you have built your SDK, you need to install it on the SD card running make install, but before to issue this command you need to unmount your SD card, otherwise the SDK won't let you install it (in order to avoid to erase information in some of your hard disks). Let's suppose that the environment variable called $(SDNAME) contains your mount point's name.
+
-
<pre style="background:#d6e4f1">
+
1. Set your environment variables
-
umount /media/$(SDNAME)
+
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);">  cd $(DEVDIR)
-
  cd $(DEVDIR)
+
  `make env`
-
  make install
+
</pre>  
-
</pre>
+
2. Open a make config menu
 +
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> make config
 +
</pre>
 +
running make config your SDK is going to download all basic packages needed by the SDK build system.
-
you will be asked to confirm the device that you are going to partition and format, please enter ''yes'' if it is correct. After this, the SDK will start to create a bootable SD card
+
3. Go to Installer Configuration submenu and configure your installer as is shown in Fig.2 [[Image:InstallerMenuDM8168.png|thumb|center|400px]]
 +
<div style="text-align: center;">'''Figure 2'''. Installer configuration to deploy firmware to an SD card</div>
 +
Using the ''Firmware deployment mode'' submenu you can set how to deploy your kernel, uboot and filesystem image into your target board. There are three options in this submenu: ''Attached board on communication port'', ''Deploy all the firmware to an SD card'' and ''Create an SD card installer for flash memory''.
-
Now you are ready to test your SDK booting from a SD card. Two partitions were created by the SDK: ''boot partition'' which contains the kernel, uboot and MLO image and the ''rootfs partition'' with your file system. It's important to notice that the environment of uboot is located in a *.txt file in the partition called ''boot'', which allows you to modify it easily.
+
*'''Attached board on communication port''' will allow you to send images to your target board using a serial port or a TFTP server, more details about this option are explained in the next section.
 +
*'''Deploy all the firmware to an SD card''' tells to the installer that it must create the needed partitions on a SD card located in ''SD device on Linux host'' (please be sure that the option called ''Flash SD card image into loopback file instead of real SD'' is not selected) and that it have to install there the software's images generated by the SDK.
 +
*'''Create an SD card installer for flash memory''' is going to create and SD card with all the logic and software's images needed to flash the EVM's NAND from the SD card.
-
= Booting from NAND =
+
<br> 4. Go to File System Configuration submenu and configure your filesystem as is shown in Fig.3 [[Image:FSC.png|thumb|center|400px]]
-
This section describes how to configure the DM8148's SDK to install the SDK's firmware in NAND as well as how to set up your EVM to boot from NAND. First, we are going to start flashing uboot in NAND using the SD card created in the above section, once uboot is running properly from NAND, we can start installing the kernel and finally your filesystem.
+
<div style="text-align: center;">'''Figure 3'''. File system configuration to use it on the SD‎</div>
 +
5. Compile your SDK
 +
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> make
 +
</pre>
 +
== Installing SDK's firmware to a SD card ==
-
== Configuring SDK to install firmware in NAND ==
+
Once you have built your SDK, you need to install it on the SD card running make install, but before to issue this command you need to unmount your SD card, otherwise the SDK won't let you install it (in order to avoid to erase information in some of your hard disks). Let's suppose that the environment variable called $(SDNAME) contains your mount point's name.
-
 
+
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> umount /media/$(SDNAME)
-
1. Set your environment variables
+
-
<pre style="background:#d6e4f1">
+
  cd $(DEVDIR)
  cd $(DEVDIR)
-
  `make env`
+
  make install
-
</pre>
+
</pre>  
 +
you will be asked to confirm the device that you are going to partition and format, please enter ''yes'' if it is correct. After this, the SDK will start to create a bootable SD card
-
2. Open a make config menu
+
Now you are ready to test your SDK booting from a SD card. Two partitions were created by the SDK: ''boot partition'' which contains the kernel, uboot and MLO image and the ''rootfs partition'' with your file system. It's important to notice that the environment of uboot is located in a *.txt file in the partition called ''boot'', which allows you to modify it easily.
-
<pre style="background:#d6e4f1">
+
-
make config
+
-
</pre>
+
-
3. Go to Installer Configuration submenu and configure your installer as is shown in Fig.4
+
= Booting from NAND  =
-
[[Image:InstallerMenuAttachedMethod.png|400px|thumb|center|Figure 4. Installer configuration to deploy firmware in NAND‎]]
+
-
<div style="text-align: center; ">'''Figure 4'''. Installer configuration to deploy firmware in NAND</div>
+
This section describes how to configure the DM8148's SDK to install the SDK's firmware in NAND as well as how to set up your EVM to boot from NAND. First, we are going to start flashing uboot in NAND using the SD card created in the above section, once uboot is running properly from NAND, we can start installing the kernel and finally your filesystem.
 +
== Configuring SDK to install firmware in NAND  ==
-
In this case, you must use the ''Attached board on communication port'' method, this will allow you to install all your firmware directly in nand by means of a serial port or by ethernet using a TFTP server. Here we are going to use a TFTP server and telnet as our communication method with the target board.  
+
1. Set your environment variables
 +
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> cd $(DEVDIR)
 +
`make env`
 +
</pre>
 +
2. Open a make config menu
 +
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> make config
 +
</pre>
 +
3. Go to Installer Configuration submenu and configure your installer as is shown in Fig.4 [[Image:InstallerMenuAttachedMethod.png|thumb|center|400px]]
 +
<div style="text-align: center;">'''Figure 4'''. Installer configuration to deploy firmware in NAND</div>
 +
<br> In this case, you must use the ''Attached board on communication port'' method, this will allow you to install all your firmware directly in nand by means of a serial port or by ethernet using a TFTP server. Here we are going to use a TFTP server and telnet as our communication method with the target board.  
 +
<br> 3.1 Go to the ''Communication method with the target board'' and select ''Telnet-serial adaptor''
-
3.1 Go to the ''Communication method with the target board'' and select ''Telnet-serial adaptor''
+
3.2 Configure the protocol to transfer images as TFTP
-
3.2 Configure the protocol to transfer images as TFTP
+
3.3 Set the IP address of your host machine in ''IP address of telnet-serial adaptor''
-
3.3 Set the IP address of your host machine in ''IP address of telnet-serial adaptor''
+
3.4 Set the port number that you assigned in the telnet configuration file to the serial port where your EVM is connected in ''Network port of telnet-serial adaptor''  
-
3.4 Set the port number that you assigned in the telnet configuration file to the serial port where your EVM is connected in ''Network port of telnet-serial adaptor''
+
4. Close the make config menu and save your changes.
-
4. Close the make config menu and save your changes.
+
== Configuring your Filesystem type  ==
-
== Configuring your Filesystem type ==
+
The RidgeRun SDK for DM8148 EVM supports different filesystem types: UBI, JFFS, NFS and also as we mentioned before you can use it in your SD card as well. In this tutorial we are going to use UBI as our default filesystem.
-
The RidgeRun SDK for DM8148 EVM supports different filesystem types: UBI, JFFS, NFS and also as we mentioned before you can use it in your SD card as well. In this tutorial we are going to use UBI as our default filesystem.
+
1. Set your environment variables  
-
 
+
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> cd $(DEVDIR)
-
1. Set your environment variables
+
-
<pre style="background:#d6e4f1">
+
-
cd $(DEVDIR)
+
  `make env`
  `make env`
-
</pre>
+
</pre>  
 +
2. Open a make config menu
 +
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> make config
 +
</pre>
 +
3. Go to the ''File System Configuration-&gt;File system image target'' and choose UBIFS volume. Please be sure that UBIFS sub-page size is set to 512.
-
2. Open a make config menu
+
4. Save your changes and compile your SDK
-
<pre style="background:#d6e4f1">
+
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> make
-
make config
+
</pre>  
-
</pre>
+
== Flashing uboot, kernel and filesystem in NAND  ==
-
3. Go to the ''File System Configuration->File system image target'' and choose UBIFS volume. Please be sure that UBIFS sub-page size is set to 512.
+
1.Boot the RidgeRun SDK using the SD card created in the [https://www.ridgerun.com/developer/wiki/index.php/Getting_Started_Guide_for_DM8148_EVM#Booting_from_a_SD_card first section] of this guide and stop the uboot countdown. Close your Picocom, minicom or telnet session.
 +
<pre style="background: none repeat scroll 0% 0% rgb(255, 255, 192);">U-Boot 2010.06 (Sep 29 2011 - 12:23:57)
-
4. Save your changes and compile your SDK
+
TI8148-GP rev 2.1
-
<pre style="background:#d6e4f1">
+
-
make
+
-
</pre>
+
-
==Flashing uboot, kernel and filesystem in NAND==
+
ARM clk: 600MHz
-
 
+
DDR clk: 400MHz
-
1.Boot the RidgeRun SDK using the SD card created in the [https://www.ridgerun.com/developer/wiki/index.php/Getting_Started_Guide_for_DM8148#Booting_from_a_SD_card first section] of this guide and stop the uboot countdown. Close your Picocom, minicom or telnet session.
+
-
<pre style="background:#FFFFC0">
+
-
U-Boot 2010.06 (Sep 27 2011 - 11:47:52)
+
DRAM:  2 GiB
DRAM:  2 GiB
Using default environment
Using default environment
 +
The 2nd stage U-Boot will now be auto-loaded
 +
Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed
Hit any key to stop autoboot:  0  
Hit any key to stop autoboot:  0  
mmc1 is available
mmc1 is available
reading u-boot.bin
reading u-boot.bin
-
185432 bytes read
+
185536 bytes read
## Starting application at 0x80800000 ...
## Starting application at 0x80800000 ...
-
U-Boot 2010.06 (Sep 27 2011 - 11:48:05)
+
U-Boot 2010.06 (Sep 30 2011 - 10:37:36)
-
TI8168-GP rev 1.1
+
TI8148-GP rev 2.1
-
ARM clk: 987MHz
+
ARM clk: 600MHz
-
DDR clk: 796MHz
+
DDR clk: 400MHz
I2C:  ready
I2C:  ready
Line 172: Line 158:
*** Warning - booting from SD, using default environment
*** Warning - booting from SD, using default environment
-
:,;;:;:;;;;;;;;r;;:,;;:;:;;;;;;;;:,;;:;:;;;;;;;;:,;;:;:;;;;;;;;:;;;;;;;;:,;;:;:
+
                          .:;rrr;;.                 
-
;,;:::;;;;r;;;rssiSiS552X5252525259GX2X9hX9X9XX2325S55252i5:,;;:;:;;;;;;;;:,;;:
+
                    ,5#@@@@#####@@@@@@#2,           
-
;:;;;;;;;rrssSsS52S22h52299GGAAMHMM#BBH#B#HMM#HMBA&&XX2255S2S5Si:,;;:;:;;;;;;;;
+
                ,A@@@hi;;;r5;;;;r;rrSG@@@A,        
-
;:;;r;;rsrrriiXS5S329&A&MH#BMB#A&9XXA252GXiSXX39AAMMMBB&G22S5i2SSiiiisi:,;;:;:;
+
              r@@#i;:;s222hG;rrsrrrrrr;ri#@@r       
-
;;;;;r;rr2iisiih393HB#B#AA99i22irrrX3X52AGsisss2Xii2299HBMA&X2S5S5iSiisSsi:,;;:
+
            &nbsp;:@@hr:r;SG3ssrr2r;rrsrsrsrsrr;rh@@:    
-
r:r;rrsrsihXSi2&##MHB&Ahh3AGHGA9G9h&#H##@@@##MAMMXXX9SSS29&&HGGX2i5iisiiisisi:,
+
            B@H;;rr;3Hs;rrr;sr;;rrsrsrsrsrsr;;H@B   
-
;;rrrrsSiiiA&ABH&A9GAGhAhBAMHA9HM@@@@@@@@@@@@@@@@@@@HHhAh2S2SX9&Gh22SSiisiiisii
+
          @@s:rrs;5#;;rrrr;r#@H:;;rrsrsrsrsrr:s@@   
-
r:rrssisiS2XM##&h3AGAX&3GG3Ssr5H@M#HM2; ;2X&&&MHMB###GBB#B&XXSSs529XX55iSsisisi
+
          @@;;srs&amp;X#9;r;r;;,2@@@rrr:;;rrsrsrsrr;;@@ 
-
r;rsrisSi2XHAhX99A3XXG&&XS;:,rH#HGhAS  @@@@3rs2XBM@@A552&&AHA2XiisSS252SSsisSs
+
        @@;;rrsrrs@MB#@@@@@###@@@@@@#rsrsrsrsrr;;@@ 
-
r;issi5S22&&3iSSX292&hXsr;;:;h@&G339&S9@@@@2@MA&9&HB##Xris29ABMAAX2ir;rsSi5iss5
+
        G@r;rrsrsr;#X;SX25Ss#@@#M@#9H9rrsrsrsrsrs;r@G
-
rrsSi2XhG&9GXh399&X99i;;;;;;r#H&293H9X#@@@@@@@B&9GhAH@XrrsrsiXABHB&HG2rr;rrSiSi
+
        @9:srsrsrs;2@;:;;:.X@@@@@H::;rrsrsrsrsrsrr:3@
-
;:rsisS599&AA9XG&3A35r;:::;,;BMh&&2iX5A@@@@@@@&392X5GB2;;;r;iSX393A##A&Xi:::rsi
+
      X@;rrsrsrsrr;XAi;;:&amp;@@#@Bs:rrsrsrsrsrsrsrsrr;@X
-
;:rss552222X553&XHMhir;;::,:,h#HhGSXhG3#@@@@#AXXS2XAHA;::;;;;ss55XShBA3239r:,;;
+
      @#;rsrsrsrsrr;r2ir@@@###::rrsrsrsrsrsrsrsrsr:@@
-
r;ii2S5SSi2i53hirsh2srr::,,,,;MMXX359&Ah3h&Si59SX99A#i:,::::;;sri2,.2r;:SGAr;,:
+
      @A:rrsrsrsrr;:2@29@@M@@@;:;rrrrsrsrsrsrsrsrs;H@
-
;:;rrrrssiriXGSi::shs;;;,,,:,,rBBA9h5s5h5iS5isi2SAHB5:,,,:::;rrs5&SrisSX5Srrr:,
+
      @&amp;;rsrsrsrr;A@@@@@@###@@@s::;:;;rrsrsrsrsrsr;G@
-
;,r;;;;rsriSSrrrr;;5Xrr;;,:,,.,;9AA2SsisS5323XXXG9&i:.,,::;;r;;;srrrrrr;;:;::::
+
      @#:rrsrsrsr;G@5Hr25@@@#@@@#9XG9s:rrrrsrsrsrs:#@
-
:,;r;r;rrissrrr;:;::;s;;;;,:,,..,r293h222hXXAAGGGX;:,,,:,:,::;:;::,:,,,,...,,,,
+
      M@;rsrsrsrs;r@&amp;#;::S@@@@@@@M@@@@Grr:;rsrsrsr;@#
-
;,;;;;rrrrrrrrirr;,.,,:::::::,,,,.,;SX&ABAB2hhXir:,,.,,.,,:,,,,..,,,..,..,,,..:
+
      &nbsp;:@s;rsrsrsrr:M#Msrr;;&amp;#@@@@@@@@@@H@@5;rsrsr;s@,
-
:.:;:;;;:;;;;r;rrs;:.. ,,:::::,:,:,,.::rrsrr;;,,.......,..,....,,,,,,,...,.,,:,
+
        @@:rrsrsrsr;S@rrrsr;:;r3MH@@#@M5,S@@irrsrr:@@  
-
:.:::,::::::;;r;rrr;:.......,.,.,,:::,,...............,,::.,,,,:,::,,:,:,,,:,;:
+
        @A:rrsrsrsrrrrrsrsrrr;::;@##@r:;rH@h;srr:H@ 
-
,.::,:,,,,,;;;;;;;;r;;::,..............................;;;:;::::,:::::::,:,:,,,
+
        &nbsp;;@9:rrsrsrsrrrsrsrsrsr;,S@Hi@i:;s;MX;rr:h@;
-
: ,,:,,,,,,,,,,,,,:;rrr;;:;,,,,,,,::,.,.:.,.,;s,:;;;;:;:;;;;;::::,:::,:::,:,:,:
+
          r@B:rrrrsrsrsrsrsrr;;sA@#i,i@h;r;S5;r:H@r 
-
,.,,,,,,,...,,.,,....................................:,............:,,,:,:,,,,,
+
          ,@@r;rrrsrsrsrsrr;2BM3r:;r:G@:rrr;;r@@,  
 +
            B@Mr;rrrrsrsrsr@@S;;;rrr:5M;rr;rM@H     
 +
              .@@@i;;rrrrsrs2i;rrrrr;r@M:;i@@@.      
 +
                .A@@#5r;;;r;;;rrr;r:r#AsM@@H.        
 +
                  &nbsp;;&amp;@@@@MhXS5i5SX9B@@@@G;          
 +
                      &nbsp;:ihM#@@@@@##hs,              
-
Net:  <ethaddr> not set. Reading from E-fuse
+
Net:  &lt;ethaddr&gt; not set. Reading from E-fuse
-
Detected MACID:90:d7:eb:20:62:b4
+
Detected MACID:90:d7:eb:c4:3f:b3
-
Ethernet PHY: GENERIC @ 0x01
+
cpsw
-
DaVinci EMAC
+
Hit any key to stop autoboot:  0  
Hit any key to stop autoboot:  0  
-
TI8168_EVM#
+
TI8148_EVM#
-
</pre>
+
</pre>  
-
2.Run make installbootloader to install uboot in NAND
+
2.Run make installbootloader to install uboot in NAND  
-
<pre style="background:#d6e4f1">
+
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> make installbootloader
-
make installbootloader
+
</pre>  
-
</pre>
+
3.Turn off your EVM and configure it to boot from NAND (please see [https://www.ridgerun.com/developer/wiki/index.php/Getting_Started_Guide_for_DM8148_EVM#Setting_up_your_EVM_to_boot_from_NAND Setting up your EVM to boot from NAND]). Turn on your EVM and repeat step 1.  
-
3.Turn off your EVM and configure it to boot from NAND (please see [https://www.ridgerun.com/developer/wiki/index.php/Getting_Started_Guide_for_DM8148#Setting_up_your_EVM_to_boot_from_NAND Setting up your EVM to boot from NAND]). Turn on your EVM and repeat step 1.
+
-
4. Now, to install your kernel and filesytem run make install
+
4. Now, to install your kernel and filesytem run make install  
-
<pre style="background:#d6e4f1">
+
<pre style="background: none repeat scroll 0% 0% rgb(214, 228, 241);"> make install
-
make install
+
</pre>  
-
</pre>
+
Now you have installed all the SDK components in your DM8148 EVM and you should be able to boot to Linux shell and see the logo of RigeRun on the HDMI output. The RidgeRun SDK for DM8148 EVM loads automatically all the firmware and kernel modules needed to use the video processor subsystem.
-
Now you have installed all the SDK components in your DM8148 EVM and you should be able to boot to Linux shell and see the logo of RigeRun on the HDMI output. The RidgeRun SDK for DM8148 EVM loads automatically all the firmware and kernel modules needed to use the video processor subsystem.
+
== Setting up your EVM to boot from NAND  ==
-
== Setting up your EVM to boot from NAND ==
+
In order to boot from a NAND you need to set it as the first boot device to try in the DM8148 boot sequence, this can be done configuring a correct BTMODE through the switch SW1 called BOOT MODE SEL in your EVM (see Fig. 5) [[Image:DM8148NAND.JPG|thumb|center|400px]]
-
In order to boot from a NAND you need to set it as the first boot device to try in the DM8148 boot sequence, this can be done configuring a correct BTMODE through the switch SW1 called BOOT MODE SEL in your EVM (see Fig. 5)
+
<div style="text-align: center;">'''Figure 5'''. Dip switch to control boot mode (NAND)</div>
-
[[Image:SW3DM8168NAND.JPG|400px|thumb|center|Figure 5. Dip switch to control boot mode (NAND)‎]]
+
= OpenMax Demos  =
-
<div style="text-align: center; ">'''Figure 5'''. Dip switch to control boot mode (NAND)</div>
+
To run the openMax's demos that are located by default in your filesystem in a directory called ''omx'' you need to run first the following commands in your EVM
-
= OpenMax Demos =
+
=== Video initialization  ===
 +
<pre style="background: none repeat scroll 0% 0% rgb(255, 255, 192);">echo 0 &gt; /sys/devices/platform/vpss/graphics0/enabled
 +
echo 0 &gt; /sys/devices/platform/vpss/graphics1/enabled
 +
echo 0 &gt; /sys/devices/platform/vpss/graphics2/enabled
 +
</pre>
 +
'''note''': To run the decode display/encode demo with a 1080p video we recommend to use your filesystem by NFS due to the size of the input and output file.
-
To run the openMax's demos that are located by default in your filesystem in a directory called ''omx'' you need to run first the following commands in your EVM
+
== Decode display demo  ==
-
=== Video initialization ===
+
-
<pre style="background:#FFFFC0">
+
-
echo 0 > /sys/devices/platform/vpss/graphics0/enabled
+
-
echo 0 > /sys/devices/platform/vpss/graphics1/enabled
+
-
echo 0 > /sys/devices/platform/vpss/graphics2/enabled
+
-
</pre>
+
-
 
+
-
'''note''': To run the decode display/encode demo with a 1080p video we recommend to use your filesystem by NFS due to the size of the input and output file.
+
-
==Decode display demo==
+
This demo is the decode-display demo included in the EZSDK. It takes an input file encoded in H264, decodes the stream and sends the output to the HDMI output  
-
This demo is the decode-display demo included in the EZSDK. It takes an input file encoded in H264, decodes the stream and sends the output to the HDMI output
+
<pre style="background: none repeat scroll 0% 0% rgb(255, 255, 192);">./omx/decode_display_a8host_debug.xv5T -i inputFile.h264 -w 1920 -h 1080 -f 60 -g 0
-
<pre style="background:#FFFFC0">
+
</pre>  
-
./omx/decode_display_a8host_debug.xv5T -i inputFile.h264 -w 1920 -h 1080 -f 60 -g 0
+
== Capture encode demo  ==
-
</pre>
+
-
==Capture encode demo==
+
This demo is the capture-encode demo included in the EZSDK. It takes an input video streaming from the component input (case 720p) of the daughter card and encodes it in H264, the output is displayed through the HDMI output.  
-
This demo is the capture-encode demo included in the EZSDK. It takes an input video streaming from the component input (case 720p) of the daughter card and encodes it in H264, the output is displayed through the HDMI output.
+
<pre style="background: none repeat scroll 0% 0% rgb(255, 255, 192);">echo 720p-60 &gt;/sys/devices/platform/vpss/display0/mode
-
<pre style="background:#FFFFC0">
+
-
echo 720p-60 >/sys/devices/platform/vpss/display0/mode
+
./omx/capture_encode_a8host_debug.xv5T -o sample.h264 -m 720p -f 60 -b 1000000 -n 1000
./omx/capture_encode_a8host_debug.xv5T -o sample.h264 -m 720p -f 60 -b 1000000 -n 1000
-
</pre>
+
</pre>  
 +
= Using Gstreamer  =
-
= Using Gstreamer =
+
Some examples of use of GStreamer to implement basic multimedia pipelines can be found at [[DM81xx GStreamer Pipelines - SDK 2011Q2]]. Please be aware that in order to display video you need to do the [https://www.ridgerun.com/developer/wiki/index.php/Getting_Started_Guide_for_DM8148#Video_initialization Video initialization]
-
Some examples of use of GStreamer to implement basic multimedia pipelines can be found at [[DM81xx GStreamer Pipelines - SDK 2011Q2]]. Please be aware that in order to display video you need to do the [https://www.ridgerun.com/developer/wiki/index.php/Getting_Started_Guide_for_DM8148#Video_initialization Video initialization]
+
= Articles related to this board  =
-
= Articles related to this board =
+
:[https://www.ridgerun.com/developer/wiki/index.php/RidgeRun_2011Q2_SDK_User_Guide RidgeRun 2011Q2 SDK User Guide]
-
:[https://www.ridgerun.com/developer/wiki/index.php/RidgeRun_2011Q2_SDK_User_Guide RidgeRun 2011Q2 SDK User Guide]
+
:[https://www.ridgerun.com/developer/wiki/index.php/RidgeRun_Turrialba_SDK_User_Guide RidgeRun Turrialba SDK User Guide]
-
:[http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map EZSDK Memory Map]
+
:[http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map EZSDK Memory Map]  
-
:[http://processors.wiki.ti.com/index.php/OMX_EZSDK_Examples OMX EZSDK Examples]
+
:[http://processors.wiki.ti.com/index.php/OMX_EZSDK_Examples OMX EZSDK Examples]  
-
:[http://www.ti.com/lit/ds/symlink/tms320dm8148.pdf TMS320DM814x DaVinci Digital Media Processor]
+
:[http://www.ti.com/lit/ds/symlink/tms320dm8148.pdf TMS320DM814x DaVinci Digital Media Processor]  
:[http://www.ti.com/lit/ug/sprugz8/sprugz8.pdf Technical Reference Manual]
:[http://www.ti.com/lit/ug/sprugz8/sprugz8.pdf Technical Reference Manual]
[[Category:DM8148]] [[Category:GSG]]
[[Category:DM8148]] [[Category:GSG]]

Revision as of 20:37, 5 February 2013

Contents

Introduction

On this page you are going to find all the necessary information to start from scratch to use the RidgeRun SDK on your DM8148 evaluation module (EVM). In the following sections we assume that you have already downloaded the EZSDK version 5.02.02.60 and that you have installed the toolchain 2009q1-203 from codesourcery as well as your DM8148 SDK following the steps on The RidgeRun installation guide.

The first section of this guide shows you how to install the EZSDK for DM8148 on your computer and how to configure a TFTP and NFS server. Subsequently, the second section contains instructions about how to configure the RidgeRun's SDK to create a SD card with all software components (uboot, kernel and filesystem) needed to boot to Linux Shell in your EVM. Using this SD card in the third and fourth section of this guide, you will be able to install on NAND images created by the SDK for kernel, uboot as well as your filesystem (JFFS2, UBI, NFS are available). Using the SD card created on the second section to flash the SDK in your EVM is just an option because you could try to use the installer of the RidgeRun's SDK with the uboot version that is running by default in a new EVM, however, we cannot guaranty that it will work as we expect, hence, we recommend to use the SD card instead. Finally, how to run opemax demos to encode and decode 1080p/h264 videos and some pipelines using gstreamer + openMax are shown.

On the rest of this document, we refer as $(DEVDIR) to the path where the RidgeRun SDK for DM8148 is installed

Basic preliminary work

Installing the EZSDK

1. Set the ezsdk binary as executable and set correct permissions

 sudo chmod 777 ezsdk_dm814x-evm_5_02_02_60_setuplinux

2. Install EZSDK. For ubuntu versions different than Ubuntu 10.04 LTS 32-bit you will need to add the --forcehost argument to install it:

 ./ezsdk_dm814x-evm_5_02_02_60_setuplinux --forcehost

note: During the EZSDK installation process you will be asked for the toolchain's path, assuming that you installed it on /opt, the path that you need to provide is /opt/codesourcery/arm-2009q1/bin/

Setting up serial access to the Linux console

You use the serial port to control u-boot and Linux. The picocom terminal emulator work well for this purpose.

Setting up Picocom - Ubuntu

Setting up a TFTP server

If you are planning to use the SDK's installer to install images generated by the SDK in NAND, installing a TFTP server you will speed up downloads to the target hardware by using TFTP.

Setting Up A Tftp Service

Setting up an NFS server

For application development, it is convenient to use root NFS mount file system for the target hardware. This allows you to rebuild your application on the host and immediately run the application on the target hardware with no interveining steps. You host PC needs to be configured as a NFS server for this in order to work properly.

Setting Up A NFS Service

Booting from a SD card

Setting up your EVM to boot from SD card

In order to boot from a SD card you need to set the MMC as the first boot device to try in the DM8148 boot sequence, this can be done configuring a correct BTMODE through the switch SW1 called BOOT MODE SEL in your EVM (see Fig. 1)
DM8148SD.JPG
Figure 1. Dip switch to control boot mode (SD card)

Configuring SDK to deploy firmware to a SD card

This section describes how to configure the DM8148's SDK to deploy all basic firmware components (kernel, uboot and MLO) into a bootable SD card. The RidgeRun SDK support several filesystem types (JFFS2, NFS, etc) however in this case we are going to use it on the SD card as well.

1. Set your environment variables

  cd $(DEVDIR)
 `make env`

2. Open a make config menu

 make config

running make config your SDK is going to download all basic packages needed by the SDK build system.

3. Go to Installer Configuration submenu and configure your installer as is shown in Fig.2
InstallerMenuDM8168.png
Figure 2. Installer configuration to deploy firmware to an SD card

Using the Firmware deployment mode submenu you can set how to deploy your kernel, uboot and filesystem image into your target board. There are three options in this submenu: Attached board on communication port, Deploy all the firmware to an SD card and Create an SD card installer for flash memory.


4. Go to File System Configuration submenu and configure your filesystem as is shown in Fig.3
FSC.png
Figure 3. File system configuration to use it on the SD‎

5. Compile your SDK

 make

Installing SDK's firmware to a SD card

Once you have built your SDK, you need to install it on the SD card running make install, but before to issue this command you need to unmount your SD card, otherwise the SDK won't let you install it (in order to avoid to erase information in some of your hard disks). Let's suppose that the environment variable called $(SDNAME) contains your mount point's name.

 umount /media/$(SDNAME)
 cd $(DEVDIR)
 make install

you will be asked to confirm the device that you are going to partition and format, please enter yes if it is correct. After this, the SDK will start to create a bootable SD card

Now you are ready to test your SDK booting from a SD card. Two partitions were created by the SDK: boot partition which contains the kernel, uboot and MLO image and the rootfs partition with your file system. It's important to notice that the environment of uboot is located in a *.txt file in the partition called boot, which allows you to modify it easily.

Booting from NAND

This section describes how to configure the DM8148's SDK to install the SDK's firmware in NAND as well as how to set up your EVM to boot from NAND. First, we are going to start flashing uboot in NAND using the SD card created in the above section, once uboot is running properly from NAND, we can start installing the kernel and finally your filesystem.

Configuring SDK to install firmware in NAND

1. Set your environment variables

 cd $(DEVDIR)
 `make env`

2. Open a make config menu

 make config
3. Go to Installer Configuration submenu and configure your installer as is shown in Fig.4
InstallerMenuAttachedMethod.png
Figure 4. Installer configuration to deploy firmware in NAND


In this case, you must use the Attached board on communication port method, this will allow you to install all your firmware directly in nand by means of a serial port or by ethernet using a TFTP server. Here we are going to use a TFTP server and telnet as our communication method with the target board.


3.1 Go to the Communication method with the target board and select Telnet-serial adaptor

3.2 Configure the protocol to transfer images as TFTP

3.3 Set the IP address of your host machine in IP address of telnet-serial adaptor

3.4 Set the port number that you assigned in the telnet configuration file to the serial port where your EVM is connected in Network port of telnet-serial adaptor

4. Close the make config menu and save your changes.

Configuring your Filesystem type

The RidgeRun SDK for DM8148 EVM supports different filesystem types: UBI, JFFS, NFS and also as we mentioned before you can use it in your SD card as well. In this tutorial we are going to use UBI as our default filesystem.

1. Set your environment variables

 cd $(DEVDIR)
 `make env`

2. Open a make config menu

 make config

3. Go to the File System Configuration->File system image target and choose UBIFS volume. Please be sure that UBIFS sub-page size is set to 512.

4. Save your changes and compile your SDK

 make

Flashing uboot, kernel and filesystem in NAND

1.Boot the RidgeRun SDK using the SD card created in the first section of this guide and stop the uboot countdown. Close your Picocom, minicom or telnet session.

U-Boot 2010.06 (Sep 29 2011 - 12:23:57)

TI8148-GP rev 2.1

ARM clk: 600MHz
DDR clk: 400MHz

DRAM:  2 GiB
Using default environment

The 2nd stage U-Boot will now be auto-loaded
Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed
Hit any key to stop autoboot:  0 
mmc1 is available
reading u-boot.bin

185536 bytes read
## Starting application at 0x80800000 ...


U-Boot 2010.06 (Sep 30 2011 - 10:37:36)

TI8148-GP rev 2.1

ARM clk: 600MHz
DDR clk: 400MHz

I2C:   ready
DRAM:  2 GiB
NAND:  256 MiB
*** Warning - booting from SD, using default environment

                          .:;rrr;;.                   
                    ,5#@@@@#####@@@@@@#2,             
                 ,A@@@hi;;;r5;;;;r;rrSG@@@A,          
               r@@#i;:;s222hG;rrsrrrrrr;ri#@@r        
             :@@hr:r;SG3ssrr2r;rrsrsrsrsrr;rh@@:      
            B@H;;rr;3Hs;rrr;sr;;rrsrsrsrsrsr;;H@B     
           @@s:rrs;5#;;rrrr;r#@H:;;rrsrsrsrsrr:s@@    
          @@;;srs&X#9;r;r;;,2@@@rrr:;;rrsrsrsrr;;@@   
         @@;;rrsrrs@MB#@@@@@###@@@@@@#rsrsrsrsrr;;@@  
        G@r;rrsrsr;#X;SX25Ss#@@#M@#9H9rrsrsrsrsrs;r@G 
        @9:srsrsrs;2@;:;;:.X@@@@@H::;rrsrsrsrsrsrr:3@ 
       X@;rrsrsrsrr;XAi;;:&@@#@Bs:rrsrsrsrsrsrsrsrr;@X
       @#;rsrsrsrsrr;r2ir@@@###::rrsrsrsrsrsrsrsrsr:@@
       @A:rrsrsrsrr;:2@29@@M@@@;:;rrrrsrsrsrsrsrsrs;H@
       @&;rsrsrsrr;A@@@@@@###@@@s::;:;;rrsrsrsrsrsr;G@
       @#:rrsrsrsr;G@5Hr25@@@#@@@#9XG9s:rrrrsrsrsrs:#@
       M@;rsrsrsrs;r@&#;::S@@@@@@@M@@@@Grr:;rsrsrsr;@#
       :@s;rsrsrsrr:M#Msrr;;&#@@@@@@@@@@H@@5;rsrsr;s@,
        @@:rrsrsrsr;S@rrrsr;:;r3MH@@#@M5,S@@irrsrr:@@ 
         @A:rrsrsrsrrrrrsrsrrr;::;@##@r:;rH@h;srr:H@  
         ;@9:rrsrsrsrrrsrsrsrsr;,S@Hi@i:;s;MX;rr:h@;  
          r@B:rrrrsrsrsrsrsrr;;sA@#i,i@h;r;S5;r:H@r   
           ,@@r;rrrsrsrsrsrr;2BM3r:;r:G@:rrr;;r@@,    
             B@Mr;rrrrsrsrsr@@S;;;rrr:5M;rr;rM@H      
              .@@@i;;rrrrsrs2i;rrrrr;r@M:;i@@@.       
                .A@@#5r;;;r;;;rrr;r:r#AsM@@H.         
                   ;&@@@@MhXS5i5SX9B@@@@G;            
                       :ihM#@@@@@##hs,                

Net:   <ethaddr> not set. Reading from E-fuse
Detected MACID:90:d7:eb:c4:3f:b3
cpsw
Hit any key to stop autoboot:  0 
TI8148_EVM#

2.Run make installbootloader to install uboot in NAND

 make installbootloader

3.Turn off your EVM and configure it to boot from NAND (please see Setting up your EVM to boot from NAND). Turn on your EVM and repeat step 1.

4. Now, to install your kernel and filesytem run make install

 make install

Now you have installed all the SDK components in your DM8148 EVM and you should be able to boot to Linux shell and see the logo of RigeRun on the HDMI output. The RidgeRun SDK for DM8148 EVM loads automatically all the firmware and kernel modules needed to use the video processor subsystem.

Setting up your EVM to boot from NAND

In order to boot from a NAND you need to set it as the first boot device to try in the DM8148 boot sequence, this can be done configuring a correct BTMODE through the switch SW1 called BOOT MODE SEL in your EVM (see Fig. 5)
DM8148NAND.JPG
Figure 5. Dip switch to control boot mode (NAND)

OpenMax Demos

To run the openMax's demos that are located by default in your filesystem in a directory called omx you need to run first the following commands in your EVM

Video initialization

echo 0 > /sys/devices/platform/vpss/graphics0/enabled 
echo 0 > /sys/devices/platform/vpss/graphics1/enabled
echo 0 > /sys/devices/platform/vpss/graphics2/enabled

note: To run the decode display/encode demo with a 1080p video we recommend to use your filesystem by NFS due to the size of the input and output file.

Decode display demo

This demo is the decode-display demo included in the EZSDK. It takes an input file encoded in H264, decodes the stream and sends the output to the HDMI output

./omx/decode_display_a8host_debug.xv5T -i inputFile.h264 -w 1920 -h 1080 -f 60 -g 0

Capture encode demo

This demo is the capture-encode demo included in the EZSDK. It takes an input video streaming from the component input (case 720p) of the daughter card and encodes it in H264, the output is displayed through the HDMI output.

echo 720p-60 >/sys/devices/platform/vpss/display0/mode
./omx/capture_encode_a8host_debug.xv5T -o sample.h264 -m 720p -f 60 -b 1000000 -n 1000

Using Gstreamer

Some examples of use of GStreamer to implement basic multimedia pipelines can be found at DM81xx GStreamer Pipelines - SDK 2011Q2. Please be aware that in order to display video you need to do the Video initialization

Articles related to this board

RidgeRun 2011Q2 SDK User Guide
RidgeRun Turrialba SDK User Guide
EZSDK Memory Map
OMX EZSDK Examples
TMS320DM814x DaVinci Digital Media Processor
Technical Reference Manual
Navigation
Toolbox