diff --git a/bin/check_toc_txt.py b/bin/check_toc_txt.py index 634b4895d..18feb1ef8 100755 --- a/bin/check_toc_txt.py +++ b/bin/check_toc_txt.py @@ -18,34 +18,57 @@ logger = logging.getLogger(__name__) -def is_slug(slug): - """Check to see if the given slug is valid. Assumes extension will be rst. +def get_slug_path(slug): + """Convert the given slug to a pathlib path. Assumes extension will be rst. :param slug: String path slug """ path = SOURCE_PATH.joinpath(slug + ".rst") logging.debug("Expanded slug: %s", path) - return path.is_file() + return path def process_toc_txt(path): """Process a single toc.txt file :param path: Pathlib path to toc.txt + :return: Set of valid paths """ + valid_paths = set() with path.open("r", encoding="utf-8") as file: logging.debug("Processing %s", path) for line_number, line in enumerate(file): clean_line = COMMENT_REGEX.sub("", line).strip() - if clean_line and not is_slug(clean_line): - logging.warning("Invalid slug: %s:%i %s", path, line_number + 1, clean_line) + if clean_line: + slug_path = get_slug_path(clean_line) + if slug_path.is_file(): + valid_paths.add(slug_path) + else: + logging.warning( + "Invalid slug: %s:%i %s", path, line_number + 1, clean_line + ) + return valid_paths + + +def process_src_tree(toc_paths): + """Ensure all RST files in the src tree are listed in the given set""" + src_paths = set() + for path in SOURCE_PATH.glob("**/*.rst"): + # files that begin with an underscore are included by other rst files + # they should not be listed in the toc + if path.stem[0] != "_": + src_paths.add(path) + for path in src_paths - toc_paths: + logging.warning("File not in any toc: %s", path) def process_all(): """Process all toc.txt files in the config directory""" + toc_paths = set() for path in CONFIG_PATH.glob("**/*toc.txt"): if path.is_file(): - process_toc_txt(path) + toc_paths |= process_toc_txt(path) + process_src_tree(toc_paths) def main(): diff --git a/source/common/EVM_Hardware_Setup/_66AK2G02_GP_EVM_Hardware_Setup.rst b/source/common/EVM_Hardware_Setup/_66AK2G02_GP_EVM_Hardware_Setup.rst deleted file mode 100644 index 5982b6a77..000000000 --- a/source/common/EVM_Hardware_Setup/_66AK2G02_GP_EVM_Hardware_Setup.rst +++ /dev/null @@ -1,574 +0,0 @@ -.. http://processors.wiki.ti.com/index.php/66AK2G02_GP_EVM_Hardware_Setup - -66AK2GX GP EVM Hardware Setup -==================================================== - -.. rubric:: Description - :name: description - -The EVMK2G is a high performance, cost-efficient, standalone development -platform that enables users to evaluate and develop applications for the -Texas Instrument’s Keystone2 System-on-Chip (SoC) 66AK2GX. The Key -features of EVM are: - -**Processor and controller** - -- K2G SoC 66AK2GX is based on keystone II architecture with ARM cortex - A15 @600MHz and C66x DSP @600MHz -- Board Management Controller (BMC) for board management functions like - system status and Boot mode control - -**Volatile and non volatile Memory/Interfaces:** - -- 2GByte of DDR3L with ECC -- 2Gbit of NAND Flash -- 128Mbit of SPI Flash -- 512Mbit of QSPI Flash -- 128kByte of I2C EEPROM for Boot support from I2C -- Micro SD-Card slot -- 16GByte of eMMC - -**High speed and Serial Interfaces** - -- Gigabit Ethernet port supporting 10/100/1000 Mbps data rate on RJ45 - connector -- PCIe x1 card slot -- COM8 interface -- DCAN and MLB interfaces -- One USB2.0 host and one USB2.0 Dual-role ports -- One RS232 serial interface on DB9 connector or UART over mini-USB - connector, One UART interface on 6 pin header - -**Multimedia and display:** - -- 4.3” LCD display with Capacitive touch (Sold separately) -- HDMI transmitter -- Audio Line In and Line Out - -**JTAG and Emulation:** - -- MIPI 60-Pin JTAG header to support all types of external emulator -- On Board XDS200 Emulator -- Powered by DC power-wall adaptor (12V/5A) - -.. rubric:: EVM Layout and Key Components - :name: evm-layout-and-key-components - -.. Image:: /images/TI_K2GEVM.png - -.. rubric:: JTAG debug probes (aka Emulators) supported - :name: jtag-debug-probes-aka-emulators-supported - -List of standalone JTAG debug probes supported: - -- XDS100-class JTAG debug probes (low cost, low performance). XDS100v1 - is not supported. -- XDS200-class JTAG debug probes (recommended) -- XDS560v2-class JTAG debug probes (high performance) - -| - -.. rubric:: Minimal EVM setup - :name: minimal-evm-setup - -.. _SettingBootSwitches: - -.. rubric:: Setting boot switches - :name: setting-boot-switches - -The DIP Switch /Boot mode switch (SW3) is used for selecting the boot -mode. - -| -| **For EVM Out of box experience uses SD/MMC boot as shown in the - image**: - -.. Image:: /images/Boot_switch_SDboot.jpg - -| -| **For Debugging over emulator use "No Boot/Sleep" Setting as shown - below**: - -.. Image:: /images/Boot_Switch_NoBoot.jpg - :scale: 50% - -| -| The table below provides the list of all the boot modes supported on - the GP EVM - -**Note: Read the PCB marking around the boot switch for your EVM to -interpret of ON and OFF marking on the switch** - -- For Rev C K2G02 GP EVM: ON = '0' and OFF = '1' -- For Rev C/Rev D K2G12 GP EVM: ON = '1' and OFF = '0' - -Other Boot Pin configurations: - -| - -+--------------+-------------------+ -| SW3[4:1] | BOOT MODE | -+==============+===================+ -| 0000 (0x0) | Sleep/No Boot | -+--------------+-------------------+ -| 0001 (0x1) | PCIe boot | -+--------------+-------------------+ -| 0010 (0x2) | Ethernet Boot | -+--------------+-------------------+ -| 0011 (0x3) | I2C PLL Boot | -+--------------+-------------------+ -| 0100 (0x4) | SPI No PLL Boot | -+--------------+-------------------+ -| 0101 (0x5) | SPI PLL-1 Boot | -+--------------+-------------------+ -| 0110 (0x6) | USB Boot | -+--------------+-------------------+ -| 0111 (0x7) | MMC/SD Boot | -+--------------+-------------------+ -| 1000 (0x8) | UART Boot | -+--------------+-------------------+ -| 1001 (0x9) | QSPI 96 Boot | -+--------------+-------------------+ -| 1010 (0xa) | eMMC Boot | -+--------------+-------------------+ -| 1011 (0xb) | NAND Boot | -+--------------+-------------------+ -| 1100 (0xc) | I2C No PLL Boot | -+--------------+-------------------+ -| 1101 (0xd) | SPI PLL-2 Boot | -+--------------+-------------------+ -| 1110 (0xe) | SPI PLL-3 Boot | -+--------------+-------------------+ -| 1111 (0xf) | QSPI 48 Boot | -+--------------+-------------------+ - -.. _ConnectingEmulator: - -.. rubric:: Connecting Emulator - :name: connecting-emulator - -**Note: This EVM setup is only required for developers who need to -connect to cores using Code Composer studio to load application.** - -| -| The EVM supports two types of Emulation - “On-Board-XDS200 emulator” - and “60-pin MIPI Header” - -When external emulator is not connected to MIPI 60-pin connector, -On-board XDS200 embedded JTAG emulator is the default type of emulation -(SoC JTAG signals are routed to XDS200 on-board emulator). When external -emulator is connected to MIPI 60-pin header, it is automatically -detected and SoC JTAG signals are routed to external emulator. - -**On Board XDS200 emulator** - -EVMK2G has on-board XDS200 embedded JTAG emulation circuitry. Hence user -does not require any external emulator to connect EVM with Code Composer -Studio (CCS). User can connect target SoC in EVM to CCS through USB -cable supplied in the EVM kit. - -Use the USB to USB mini-B cable provided. Connect the USB mini-B -connector to the USB mini-B interface near to the audio line in on the -EVM, and the USB connector to your PC. This enables XDS-2xx emulation -and is directly useable by CCS. - -.. Image:: /images/XDS200_connect.png - -| - -.. raw:: html - -
- -**NOTE** -On Rev C boards and earlier revisions of the board, users who plan to -connect the USB cable to USB 3.0 cable need to follow the instructions -to update Emulation firmware using steps described in the article -`Updating\_the\_XDS200\_firmware `__ -Without the firmware update, users are recommended to disconnect the -mini USB cable from the XDS USB connector before powering up the EVM and -reconnect after board power up is complete. - -.. raw:: html - -
- -| -| **MIPI 60-pin header for connecting External emulator** - -If you are using a different JTAG, you can connect it at MIPI60 -connector (EMU1). The MIPI 60-pin JTAG header is provided on-board for -high speed real-time emulation. All JTAG and EMUxx signals are -terminated on MIPI 60-pin header. - -No emulation firmware upgrade is required if users plan to use an -external emulator The MIPI 60-pin JTAG header supports all standard -(XDS510 or XDS560) TI DSP emulators. Please refer to the documentation -supplied with your emulator for connection assistance. - -.. rubric:: Powering up the EVM - :name: powering-up-the-evm - -.. rubric:: Power Supply specifications - :name: power-supply-specifications - -.. [[Image:CUI_Isolated_Power_Supply.png|300px] - -The EVMK2G can be powered from a single +12V / 5.0A DC (60W) external -power supply connected to the DC power jack (J3). Internally, +12V input -is converted into required voltage levels using local DC-DC converters - -Please note that a power supply is included with the 66AK2GX Evaluation -Module. The power supply has the following specs : - -- 12V DC output -- 5A output -- Positive inner and negative outer terminals -- Female barrel with 2.5mm inner diameter and 5.5mm outer diameter -- Isolated power supply - -.. rubric:: CCS Setup - :name: ccs-setup - -This section describes the setup to connect to 66AK2GX GP EVM using -Code composer Studio environment and an emulator. - -There are two scenarios while connecting to the EVM : - -- **Connect to EVM without a SD card boot image to boot the EVM** -- **Connect to EVM after booting an image from the SD card**. - -Before discussing both these scenarios, let us look at how to pull in -the latest KeystoneII device support in CCSv6 - -| - -.. rubric:: Update CCS v6 to install Keystone II device Support package - :name: update-ccs-v6-to-install-keystone-ii-device-support-package - -All revisions of the board require this step to be performed in order to -get the latest GEL files and the target content for the K2G. This step -will not be required for CCS versions higher than version 6.1.3. -CCSv6.1.3 package contain KeystoneII device support package v1.1.4 which -doesn\`t contain 66AK2GX GPEVM specific target files hence we recommend -this update. - -**Step 1** All CCS v6.1.3 and earlier version users are required to -update the Keystone Device Support package by going into the Help->Check -For Updates - -.. Image:: /images/Check_for_Updates.png - -**Step 2** Select Keystone2 device support package. Follow menu options -to continue with the update - -**Step 3** After the update is complete go to Help->Installation details -and check that Keystone2 device support package v1.1.5 or later are -installed as shown below - -.. Image:: /images/KeystoneII_device_support_package.png - -**Note:** The package can be downloaded separately from the link below -and manually unzipped into CCSv6 installation. - -- `Device Support - Files `__ - -| -| **Note for K2G devices:** If using CCS v6.1.2 and Keystone2 device - support v1.1.7, 66AK2G02 would not show up in the list of devices when - creating the target configuration. This is due to an incompatibility - in the XML parser in CCS v6.1.2 with the K2G device xml. In order to - work-around this issue, make the change in 66AK2G02.xml as illustrated - below in order to have 66AK2G02 display in the device list. This - problem does not exist in CCS v6.1.3 onwards as the XML parser has - been updated. - -| C:\\ti\\ccsv6\\ccs\_base\\common\\targetdb\\devices\\66AK2G02.xml - -| Line #1 - -| -| to -| - -| - -| - -.. rubric:: Connect without a SD card boot image - :name: connect-without-a-sd-card-boot-image - -.. _ConfiguringTargetConfigFile: - -.. rubric:: Configuring target configuration files - :name: configuring-target-configuration-files - -Launch CCS and create new target configuration(File->New->Target -Configuration file) as shown in the images below - -.. Image:: /images/CCS_target_configuration.png - -Provide appropriate name to the configuration. Select Spectrum digital -XDS200 emulator and target as K2G GPEVM. - -**Note:** If you don\`t find the 66AK2G02 target make sure you have -installed the CCSv6.1.3 package or for CCSv6.1.2 and earlier ensure that -you have done the software update correctly as shown in the how to -section below. - -.. Image:: /images/K2G_GPEVM_Target_configuration.jpg - -In advance settings, make sure that the gel files are populated -correctly. The following GEL files and their corresponding cores are -provided below: - -- C66X Core: evmk2g.gel -- A15 Core: evmk2g\_arm.gel - -.. rubric:: Connecting to target - :name: connecting-to-target - -**Step1 :** Download Code composer Studio v6.1.3 or for CCSv6.1.2 and -earlier, ensure it contains Keystone device support package version -1.1.5 as described in the how to guide - -`Install Code composer Studio v6 for -K2G `__ - -**Step2:** 66AK2GX GP EVM contains boot switches to configure for "No - boot/sleep" mode. So configure the boot switches to No Boot Mode as - described in the SettingBootSwitches_ - -**Step3:** Connect an XDS200 Emulator to XDS USB of the GP EVM as shown in ConnectingEmulator_ - -**Step4:** Launch CCS and create new target configuration as discussed -in the previous section ConfiguringTargetConfigFile_ - -**Step5**: Launch Target configuration you just created. - -.. Image:: /images/K2G_Launch_targetConfig.png - -**Step6**:K2G can be a DSP or an ARM master boot device so connect to - the C66x or the A15\_0. - -**GEL Log** - -:: - - A15_0: GEL Output: PLL has been configured (24.0 MHz * 100 / 1 / 4 = 600.0 MHz) - A15_0: GEL Output: ARM PLL has been configured with ref clock 24MHz, -sysclkp_period 41.6666 (24.0 MHz * 100 / 1 / 4 = 600.0 MHz) - A15_0: GEL Output: Power on all PSC modules and DSP domains... - A15_0: GEL Output: Power on PCIE PSC modules and DSP domains... Done. - A15_0: GEL Output: UART PLL has been configured (24.0 MHz * 128 / 1 / 8 = 384.0 MHz) - A15_0: GEL Output: NSS PLL has been configured (24.0 MHz * 250 / 3 / 2 = 1000.0 MHz) - A15_0: GEL Output: ICSS PLL has been configured (24.0 MHz * 250 / 3 / 10 = 200.0 MHz) - A15_0: GEL Output: DSS PLL has been configured (24.0 MHz * 198 / 12 / 16 = 24.75 MHz) - A15_0: GEL Output: DDR PLL has been configured (24.0 MHz * 250 / 3 / 10 = 200.0 MHz) - A15_0: GEL Output: XMC setup complete. A15_0: GEL Output: DDR3 PLL Setup ... - A15_0: GEL Output: DDR3 PLL Setup complete, DDR3A clock now running at 400MHz. - A15_0: GEL Output: DDR3A initialization complete - -| - -.. rubric:: Connect with a SD card boot image - :name: connect-with-a-sd-card-boot-image - -Launch CCS and create new target configuration(File->New->Target -Configuration file) as shown in the images below - -.. Image:: /images/CCS_target_configuration.png - -Provide appropriate name to the configuration. Select Spectrum digital -XDS200 emulator and target as 66AK2G02. - -**Note:** If you don\`t find the 66AK2G02 target make sure you have -installed the CCSv6.1.3 package or for CCSv6.1.2 and earlier ensure that -you have done the software update correctly as shown in the how to -section below. - -.. Image:: /images/K2G_GPEVM_Target_configuration_alternate.jpg - -In advance settings, make sure that the no gel files are populated. - -**Step2:** 66AK2G02 GP EVM contains boot switches to configure for -"SD/MMC boot" mode. So configure the boot switches to SD/MMC boot Mode -as described in the SettingBootSwitches_ - -**Step3:** Connect an XDS200 Emulator to XDS USB of the GP EVM as shown in -section ConnectingEmulator_ - -**Step4:** Launch CCS and create new target configuration as discussed -in the previous section ConfiguringTargetConfigFile_ - -**Step5**: Launch Target configuration you just created. - -.. Image:: /images/K2G_Launch_targetConfig.png - -**Step6**:K2G will boot with ARM master boot from the SD card so -connect to the A15\_0. There will be no output on the console when you -connect to the core. - -**Step7** SD card boot image will typically load a secondary bootloader -like u-boot that will put the DSP in reset so user will need to follow -the instructions on the page that talks about `Taking DSP out of reset -`__ - -**Note:** RTOS users don\`t need to follow this step as the Secondary -bootloader (SBL) will put the DSP in idle state and not in reset if -there is no code running on the DSP. - -.. rubric:: How to guide - :name: how-to-guide - -This section guides users who are using older versions of the GP EVM -which may require an update to the firmware flashed on the EVM or -hardware updates to workaround specific issues. Each section specifies -the affected versions and the fix for the issue. - -.. rubric:: Create SD card to boot Linux on the GP EVM - :name: create-sd-card-to-boot-linux-on-the-gp-evm - -All pre-production boards (Rev C and earlier) will not contain a SD card -image in the kit without an image flashed on it for the Out of Box -experience described in the Quick start guide. User are required to -download the image seperately from the Processor SDK Linux portal and -run a script to create the SD boot image. The steps to create the image -are provided below: - -**Step 1** Download the image k2g-evm-linux-xx.xx.xx.xx.img.zip from the -link `Latest Processor SDK -Linux `__ - -**Step 2** Follow instructions to create a SD card for the EVM using the -instruction in the `SD Card Creation Guide -`__ - -.. rubric:: Update the BMC firmware on the EVM - :name: update-the-bmc-firmware-on-the-evm - -The section describes how the Board Management controller firmware on -the board can be updated through the BMC UART interface. All boards -prior to RevC, require a BMC update for the following issue: - -- CDCM chip on the board generates clocks to modules like PCIe and USB. - It is possible to use PCIe only in external clock mode on the EVM. - However there can be use-cases where PCIe clock should be enabled - with SoC running in internal clock mode. - -**Step 1** Install the LM flash programmer from link provided below: - -- `LMflashProgrammer tool `__ - -**Step 2** Obtain latest BMC software for the K2G GP EVM can be -obtained from the board manufacturer or from local TI contact. -Production EVMs are shipped with latest BMC version 0.6.1.0. You can -check the version of the BMC software by observing the version -indicated on BMC LCD on the GP EVM after power up. - -**Step 3** Connect the mini USB cable between host PC and ‘USB to SoC -UART0’ port (J23) on EVM - -**Step 4** Remove the jumper J10 and power on the K2G EVM - -**Step 5** Open the LM Flash programmer utility on the windows host -machine. - -**Step 6** In the LM Flash Programmer Utility ‘Configuration’ tab, in -the interface section, select ‘Serial (UART)’ from the drop-down box on -the left.Refer to the image provided below: - -.. Image:: /images/LMflashProg_Config.png - - -**Step 7** Select the BMC COM Port and set the ‘Baud Rate’ to 115200. - -- There will be two COM ports that appears on EVMs ‘USB to SoC UART0’ - port. Select the one which is connected to BMC. To find which port - corresponds to the BMC, you can open a serial terminal program or - Device Manager on your PC and check the port number corresponding to - "Silicon Labs CP210x: USB to UART Bridge: Standard COM Port (COM##)" - as shown below: - -.. Image:: /images/BMCUARTPort.png - -**Note:** BMC outputs boot logs to serial console when EVM is powered -ON. Connect the ‘USB to SoC UART0’ port to standard serial console -application to find the right COM port that is connected to BMC. - -**Step 8** Set ‘Transfer Size’ to 60, and make sure ‘Disable Auto Baud -Support’ is unchecked. - -**Step 9** In the 'Program' tab, select the binary image file -bmc\_evmKS2\_K2G.bin in the section 'Select.bin file'. - -.. Image:: /images/LMflashProg_program.png - -**Step 10** Leave all other options as default, and press the ‘Program’ -button. - -**Step 11** Wait till 'Program Complete' status in the status bar. - -**Step 12** Connect the jumper J10 and reboot the EVM - -.. rubric:: Update XDS200 firmware and hardware components on the GP EVM - :name: update-xds200-firmware-and-hardware-components-on-the-gp-evm - -**Note: This update is only required if you are using the on board -XDS200 debug probe.** - -The RevB and RevC boards are using an earlier version of the XDS200 -firmware. We have observed the following issues when hooking up the -internal XDS200 USB debug probe to a host machine. - -- **XDS200 Emulator USB cable need to be re-plugged every time board is - power cycled/reset to avoid leakage on power supply VCC1V8\_XDS which - can damage the regulator or other ICs** - -.. rubric:: Workaround for this issue - :name: workaround-for-this-issue - -- Use external emulators with the MIPI 60 adapter included int he kit. -- Perform following firmware and hardware updates to the GP EVM (RevC - and earlier) - -.. rubric:: Software Update Required - :name: software-update-required - -Steps to update the XDS200 firmware on the EVM are archived on the article -`Updating\_the\_XDS200\_firmware `__ - -.. rubric:: Hardware updates required - :name: hardware-updates-required - -- Replace R431 & R442 to 200E -- Mount resistors R95, R107, R108, R115. -- Mount D2, R600, R599 components. -- Remove FB3 and connect a wire from R64.2 ‘rVCC\_VBUS\_XDS’ and R67.2 - ‘VCC5V0\_DCDC’ as shown in the image below: - -.. Image:: /images/R64_to_R67_HWMod.png - :scale: 70% - -.. rubric:: Update the EVM for improved USB performance - :name: update-the-evm-for-improved-usb-performance - -The external resistors for the USB (R442 and R431) are currently 10k Ω. -We recommend that users need to replace these with 200 Ω / 1%. - -| - -| - -.. rubric:: Useful Resources and Support - :name: useful-resources-and-support - -- `66AK2G02 Product folder `__ -- `66AK2G12 Product folder `__ -- `66AK2Gx GP EVM Technical Reference Manual `__ -- `66AK2Gx GP EVM Product folder `__ -- `66AK2Gx 1GHz GP EVM Product folder `__ -- `Keystone E2E Support - Forum `__ - diff --git a/source/common/EVM_Hardware_Setup/_66AK2G02_ICE_EVM_Hardware_setup.rst b/source/common/EVM_Hardware_Setup/_66AK2G02_ICE_EVM_Hardware_setup.rst deleted file mode 100644 index b98f8bd8e..000000000 --- a/source/common/EVM_Hardware_Setup/_66AK2G02_ICE_EVM_Hardware_setup.rst +++ /dev/null @@ -1,310 +0,0 @@ - -66AK2G02 ICE EVM Hardware Setup -================================ - -Description --------------- - -The K2G ICE EVM is a high performance, cost-efficient, standalone -development platform that enables users to evaluate and develop -industrial communications applications for the Texas Instrument’s -Keystone2 System-on-Chip (SoC) 66AK2G02. The K2G SOC (66AK2G02) is the new -device from TI’s Keystone II architecture with - -- ARM® Cortex® -A15 Microprocessor Unit (ARM A15) Subsystem at up to - 600MHz -- C66x Fixed- and Floating-Point VLIW DSP Subsystem at up to 600MHz -- Two Programmable Real-Time Unit and Industrial Communication - Subsystems (PRU-ICSS) -- Multicore Shared Memory Controller (MSMC) with 1024KB of Shared L2 - RAM -- Up to 36-Bit DDR3 External Memory Interface (EMIF) with ECC (32-Bit - Data + 4-Bit ECC) -- PCI-Express® 2.0 Port with Integrated PHY -- Three Multichannel Audio Serial Port (McASP) Peripherals -- Multichannel Buffered Serial Port (McBSP) -- Six Enhanced High Resolution Pulse Width Modulation (eHRPWM) - -The key features of the EVM are: - -- K2G SoC 66AK2G02 is based on keystone II architecture with ARM cortex - A15 @600MHz and C66x DSP @600MHz -- 515MByte of DDR3L -- 512Mbit of QSPI Flash -- 128kByte of I2C EEPROM -- Micro SD-Card slot -- Gigabit Ethernet port supporting 10/100/1000 Mbps data rate on RJ45 - connector -- 4x 10/100 Industrial Ethernet connectors -- PCIe x1 card edge connector -- LCD display -- Expansion connector for customer designs -- XDS100 Emulator and UART over mini-USB connector -- 20-Pin JTAG header to support all types of external emulator -- RoHS compliant design -- Powered by DC power-wall adaptor (24V/2.5A) or PCIE Edge Connector - -EVM Layout and Key Components ------------------------------------ - -.. Image:: /images/TI_K2G_ICE_EVM_TOP.png - :scale: 50% - -.. Image:: /images/TI_K2G_ICE_EVM_BOTTOM.png - :scale: 50% - -Supported JTAG Debug Probes (Emulators) ---------------------------------------------- - - -- XDS100-class JTAG debug probes (low cost, low performance). The XDS100v1 is not supported. -- XDS200-class JTAG debug probes (recommended) -- XDS560v2-class JTAG debug probes (high performance) - - -Minimal EVM setup -------------------- - -Setting Boot Switches -^^^^^^^^^^^^^^^^^^^^^^ - -The DIP switch (SW3) is used for selecting the boot -mode. - -**For the EVM Out-of-Box experience, use SD/MMC boot mode as shown in the image below**: - -.. Image:: /images/K2GICE_Boot_MODE.png - :scale: 50% - -| - -The table below lists all of the boot modes supported on the ICE EVM. - -.. Image:: /images/K2G_ICE_BOOTSW.png - :scale: 50% - -Connecting an Emulator -^^^^^^^^^^^^^^^^^^^^^^^^ - -.. Note:: This EVM setup is only required for developers who need to connect to cores using Code Composer Studio (CCS) to load their application. - - -The EVM supports two types of emulation via the on-board XDS100 emulator or the 20-pin JTAG header. - -When an external emulator is not connected to the 20-pin JTAG Header, the on-board -XDS100 embedded JTAG emulator is the default type of emulation (SoC JTAG -signals are routed to the XDS100 on-board emulator). When an external emulator -is connected to the 20-pin JTAG Header, it is automatically detected and the SoC -JTAG signals are routed to the external emulator. - -**On-board XDS100 Emulator** - -The K2G ICE EVM has on-board XDS100 embedded JTAG emulation circuitry so an external emulator is not required. -Users can connect to the target SoC via CCS by connecting the USB cable, supplied in the ICE EVM kit, as shown in the image below. - -| - -.. Image:: /images/ICE_K2G_connect.png - :scale: 50% - -| - -**20-pin JTAG Header for Connecting an External Emulator** - -Users have the option of connecting an external at the 20-pin JTAG -Header connector (EMU1). The 20-pin JTAG Header is provided on-board for -high speed real-time emulation. All JTAG and EMUxx signals are -terminated on 20-pin JTAG Header. - -Powering Up the EVM -^^^^^^^^^^^^^^^^^^^^^^^ - -.. rubric:: Power Supply Specifications - :name: power-supply-specifications - -The K2G ICE EVM can be powered from one of two sources. A single +24V / -2.5A DC (60W) external power supply connected to the DC power jack (J6). -In addition, the K2G ICE EVM can be powered from the 12V supply pins on -the PCIE edge connector. A power ANDing circuit is included in the -design which will prevent damage if the +24V is connected while the -board is installed on a PCIE backplane. The +24V supply will supply the -power for the board in that condition. - -CCS Setup ------------ - -This section describes the setup to connect to 66AK2G02 ICE EVM using -Code composer Studio environment and an emulator. - -There are two scenarios while connecting to the EVM : - -- **Connect to EVM without a SD card boot image to boot the EVM** -- **Connect to EVM after booting an image from the SD card**. - -.. Note:: Keystone II device support package in CCSv7.1 includes the support for K2G ICE board but CCSv7.0/ CCSv6 users may need to update the device support package as described in the section "Update CCS to Install Keystone II Device Support Package." - -| - -Update CCS to Install Keystone II Device Support Package -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -All revisions of the board require this step to be performed in order to -get the latest GEL files and the target content for the K2G if you are -using CCSv7.0 and earlier. This step will not be required for CCS -versions higher than version 7.1. CCSv7.0 or CCSv6.1.3 package contain -KeystoneII device support package v1.1.6 which doesn't contain K2GICE -specific target files hence we recommend this update. - -1. All CCS v6.1.3 or CCSv7.0 and earlier version users are -required to update the Keystone Device Support package by going into the -Help->Check For Updates - -.. Image:: /images/Check_for_Updates.png - :scale: 50% - -2. Select Keystone2 device support package. Follow menu options -to continue with the update. - -3. After the update is complete go to Help->Installation details -and check that Keystone2 device support package v1.1.9 or later are -installed as shown below. - -.. Image:: /images/KeystoneII_device_support_package.png - :scale: 50% - -.. Note:: The package can be downloaded separately from the link below and manually unzipped into CCS installation. - -- `Device Support - Files `__ - - -.. Note:: For K2G Devices, if using CCS v6.1.2 and Keystone2 device support v1.1.7, 66AK2G02 would not show up in the list of devices when creating the target configuration. This is due to an incompatibility in the XML parser in CCS v6.1.2 with the K2G device xml. In order to work-around this issue, make the change in 66AK2G02.xml as illustrated below in order to have 66AK2G02 display in the device list. This problem does not exist in CCS v6.1.3 onwards as the XML parser has been updated. - -C:\\ti\\ccsv6\\ccs\_base\\common\\targetdb\\devices\\66AK2G02.xml - -Line #1 - -:: - - - -to - -:: - - - -Connect without an SD Card Boot Image -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. rubric:: Configuring target configuration files - :name: configuring-target-configuration-files - -Launch CCS and create a new target configuration (File->New->Target Configuration file) as shown in the images below. - -.. Image:: /images/CCS_target_configuration.png - :scale: 50% - -Provide an appropriate name to the configuration. Select Spectrum Digital XDS100 emulator and target as K2G ICE EVM. - -.. Note:: If you don't find the K2GICE target make sure you have installed CCSv7.1 or higher. If using CCSv 7.0 or CCSv6.1.x and earlier, ensure that you have done the software update correctly as shown in the how to section below. - -.. Image:: /images/K2G_ICE_target_configuration.png - :scale: 50% - -In advanced settings, make sure that the GEL files are populated correctly. The following GEL files and their corresponding cores are provided below. - -- C66X Core: icek2g.gel -- A15 Core: icek2g\_arm.gel - -.. rubric:: Connecting to target - :name: connecting-to-target - -1. Download Code composer Studio or for CCSv7.0 and earlier, ensure it contains Keystone device support package version 1.1.9 as described in the -how to guide "Update CCS to Install Keystone II Device Support Package." - -2. 66AK2G02 ICE EVM contains boot switches to configure for "No boot/sleep" mode. So configure the boot switches to "No Boot Mode" as described in -the "Setting Boot Switches" section. - -3. Connect an XDS100 Emulator to the XDS USB port of the ICE EVM as shown in the -section "Connecting Emulator." - -4. Launch CCS and create a new target configuration as discussed in -the previous section "Configuring target configuration files." - -5. Launch the newly created -target configuration. - -.. Image:: /images/K2G_Launch_targetConfig.png - :scale: 50% - -6. K2G can be a DSP or an ARM master boot device -so connect to the C66x or the A15\_0. - -**GEL Log** - -:: - - A15_0: GEL Output: PLL has been configured (24.0 MHz * 100 / 1 / 4 = 600.0 MHz) - A15_0: GEL Output: ARM PLL has been configured with ref clock 24MHz, -sysclkp_period 41.6666 (24.0 MHz * 100 / 1 / 4 = 600.0 MHz) - A15_0: GEL Output: Power on all PSC modules and DSP domains... - A15_0: GEL Output: Power on PCIE PSC modules and DSP domains... Done. - A15_0: GEL Output: UART PLL has been configured (24.0 MHz * 128 / 1 / 8 = 384.0 MHz) - A15_0: GEL Output: NSS PLL has been configured (24.0 MHz * 250 / 3 / 2 = 1000.0 MHz) - A15_0: GEL Output: ICSS PLL has been configured (24.0 MHz * 250 / 3 / 10 = 200.0 MHz) - A15_0: GEL Output: DSS PLL has been configured (24.0 MHz * 198 / 12 / 16 = 24.75 MHz) - A15_0: GEL Output: DDR PLL has been configured (24.0 MHz * 250 / 3 / 10 = 200.0 MHz) - A15_0: GEL Output: XMC setup complete. A15_0: GEL Output: DDR3 PLL Setup ... - A15_0: GEL Output: DDR3 PLL Setup complete, DDR3A clock now running at 400MHz. - A15_0: GEL Output: DDR3A initialization complete - -Connect with an SD Card Boot Image -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -1. Launch CCS and create a new target configuration (File->New->Target -Configuration file) as shown in the images below. - -.. Image:: /images/CCS_target_configuration.png - :scale: 50% - -Provide an appropriate name to the configuration. Select Spectrum digital XDS100 emulator and target as 66AK2G02. - -.. Note:: If you don't find the K2GICE target make sure you have installed CCSv7.1 or higher. If using CCSv 7.0 or CCSv6.1.x and earlier, ensure that you have done the software update correctly as shown in the how to section below. - -.. Image:: /images/K2G_GPEVM_Target_configuration_alternate.jpg - :scale: 50% - -In advanced settings, make sure that no GEL files are populated. - -2. 66AK2G02 GP EVM contains boot switches to configure for "SD/MMC boot" mode. So configure the boot switches to "SD/MMC Boot" as described in -the section "Setting Boot Switches." - -3. Connect an XDS100 Emulator to the XDS USB port of the GP EVM as shown in the -section "Connecting Emulator." - -4. Launch CCS and create a new target configuration as discussed in the previous -section "Configuring target configuration files". - -5. Launch the newly created -target configuration. - -.. Image:: /images/K2G_Launch_targetConfig.png - :scale: 50% - -6. K2G will boot with ARM master boot from the SD card so connect to the A15\_0. There will be no output on the console when you -connect to the core. - -7. SD card boot image will typically load a secondary bootloader like u-boot that will put the DSP in reset so users will need to follow -the instructions in the guide `How to take the C66x DSP out of reset with Linux running on A15 `__ - -.. Note:: RTOS users do not need to follow this step as the Secondary Bootloader (SBL) will put the DSP in idle state and not in reset if there is no code running on the DSP. - -Useful Resources and Support --------------------------------- -- `66AK2Gx ICE EVM User Guide `__ -- `66AK2Gx Product folder `__ -- `66AK2Gx GP EVM Technical Reference - Manual `__ -- `66AK2Gx ICE EVM Product folder `__ -- `Keystone E2E Support - Forum `__ diff --git a/source/common/EVM_Hardware_Setup/_EVMK2E_Hardware_Setup.rst b/source/common/EVM_Hardware_Setup/_EVMK2E_Hardware_Setup.rst deleted file mode 100644 index b3f44dd00..000000000 --- a/source/common/EVM_Hardware_Setup/_EVMK2E_Hardware_Setup.rst +++ /dev/null @@ -1,259 +0,0 @@ - -EVMK2E Hardware Setup Guide -============================== - -Hardware Setup ---------------- - -.. note:: The EVM board is sensitive to electrostatic discharges (ESD). Use a grounding strap or other device to prevent damaging the board. Be sure to connect communication cables before applying power to any equipment. - -Attach the Ethernet cable -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Using the Ethernet cable supplied, connect one end of the cable to the -Ethernet Port 0 (At bottom one) on the EVM and the other end to your PC. -The below picture shows which Ethernet Port is port 0: - -.. image:: /images/Evmk2e-image001.jpg - -Connect the JTAG interface -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Use the USB to USB mini-B cable provided. Connect the USB mini-B -connector to the USB mini-B interface near to the RST\_PWR1 (Red color) -button on the EVM, and the USB connector to your PC. This enables -XDS-2xx emulation and is directly useable by CCS. If you are using a -different JTAG, you can connect it at MIPI60 connector (EMU1). - - -K2E Set the boot mode switch SW1 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. rubric:: K2E SPI Little Endian Boot mode (Default factory setting) - :name: k2e-spi-le-boot-mode - -:: - - MSB LSB - SW1 - 1(OFF) 2(OFF) 3(ON) 4(OFF) - -.. image:: /images/Evmk2e-image002.jpg - -.. note:: Here a switch on “ON” position should be considered as “1”. - - -.. rubric:: K2E No Boot/JTAG DSP Little Endian Boot mode - :name: k2e-set-no-boot-mode - -:: - - MSB LSB - SW1 - 1(ON) 2(ON) 3(ON) 4(ON) - -.. image:: /images/Evmk2e-image003.jpg - -Attach the serial port cable to the SoC UART port -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Connect the SoC UART port to PC using the serial cable provided with the -EVM. The SoC UART port is the 4-pin white connector COM1 of the EVM. - -Start TeraTerm or HyperTerminal and set configuration to - -- Baud Rate or Bits per second: 115200 -- Data Bits: 8 -- Parity: None -- Stop Bits: 1 -- Flow Control: None - -Connect the power cable -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Connect the power cable to the EVM power jack on the board. To be ESD -safe, plug in the other end of the power cable only after you have -connected the power cord to the board. Then turn on the board. - -DIP Switch and Bootmode Configurations -------------------------------------------- - -**EVM SW1 switch Bootmode Configuration** - -The table below shows the bootmode combinations for the BMC v1.1.0.x. -and value selected from internal flash memory of LM3s2d93. - -+--------------------+--------------------+--------------------+--------------------+ -| **DIP Switch | **High\_value of | **Low\_value of | **Selected | -| settings | that bootmode** | that bootmode** | bootmode** | -| Selected** | | | | -+--------------------+--------------------+--------------------+--------------------+ -| 0000 | 0x00000000 | 0x00010067 | ARM NAND | -+--------------------+--------------------+--------------------+--------------------+ -| 0001 | 0X00000000 | 0x00100001 | DSP No Boot | -+--------------------+--------------------+--------------------+--------------------+ -| 0010 | 0x00000000 | 0x00008005 | ARM SPI | -+--------------------+--------------------+--------------------+--------------------+ -| 0011 | 0x00000000 | 0x00100003 | ARM I2C Master | -+--------------------+--------------------+--------------------+--------------------+ -| 0100 | 0x00000000 | 0x0000006F | ARM UART Master | -+--------------------+--------------------+--------------------+--------------------+ -| 0101 | 0x00000000 | 0x0001506B | ARM RBL EthNet | -+--------------------+--------------------+--------------------+--------------------+ -| 0110 | 0x00000000 | 0x00001061 | Sleep with Max PLL | -| | | | and ARM Bypass | -+--------------------+--------------------+--------------------+--------------------+ -| 0111 | 0x00000000 | 0x00001061 | Sleep with Max PLL | -+--------------------+--------------------+--------------------+--------------------+ -| 1000 | 0x00000000 | 0x00010167 | DSP NAND | -+--------------------+--------------------+--------------------+--------------------+ -| 1001 | 0x00000000 | 0x00001061 | Sleep with Slow | -| | | | PLL and ARM Bypass | -+--------------------+--------------------+--------------------+--------------------+ -| 1010 | 0x00000000 | 0x00008105 | DSP SPI-boot | -+--------------------+--------------------+--------------------+--------------------+ -| 1011 | 0x00000000 | 0x00100103 | ARM I2C Master | -+--------------------+--------------------+--------------------+--------------------+ -| 1100 | 0x00000000 | 0x0000016F | DSP UART boot | -+--------------------+--------------------+--------------------+--------------------+ -| 1101 | 0x00000000 | 0x0001516B | DSP RBL ENET | -+--------------------+--------------------+--------------------+--------------------+ -| 1110 | 0x00000000 | 0x00003661 | Sleep with Slow | -| | | | PLL and Slow ARM | -| | | | PLL | -+--------------------+--------------------+--------------------+--------------------+ -| 1111 | 0x00000000 | 0x00100001 | DSP No-Boot | -+--------------------+--------------------+--------------------+--------------------+ - -| - -EVM K2E How To Guides ---------------------------------------------- - -Host driver for on-board mini-USB connector -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The K2E EVM has a CP2105 device on-board. A driver must be installed on -the host PC in order to be able to communicate with the EVM using the -CP2105 mini-USB connector located at the corner edge of the EVM. The -driver can be downloaded from `CP2105 driver -download `__. - -Both Linux and Windows host machine drivers can be downloaded from this -page. For Linux host machine, please follow the instructions given in -the release notes. There are two versions of drivers for Linux kernel -version 3.x.x and 2.6.x. Please download appropriate drivers after -identifying the correct kernel version of the user’s host machine. - -.. note:: Before testing the USB connection, make sure that the mini-USB cable is plugged into the port on the base board. - -After installing the driver and connecting the USB cable, two COM ports -should be visible in the list of COM ports available to connect to in -the PC Host terminal console. The lower COM port (Enhanced) corresponds -to the SoC UART and the higher (Standard) one corresponds to the MCU -UART. - -BMC Version Check and Update -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -BMC, or Board Management Controller, takes care of the power, clocks, -resets, bootmodes, etc. of the EVM. - -You can check the version by: - -#. Opening a hyperterminal or another similar type of console - application. -#. Set COM Port to higher value. - - - When you connect to CP2105 mini-USB on the EVM it will provide two - COM port connections, one to the SOC UART and one to BMC UART. - - The SOC UART will always be the “Enhanced” COM port, for example - COM6 (actual COM PORT values will vary.) - -#. Set COM port properties appropriately: - - - Baud Rate or Bits per second: 115200 - - Data Bits: 8 - - Parity: None - - Stop Bits: 1 - - Flow Control: None - -#. At BMC prompt type 'ver' (no quotes). -#. Check BMC version - -.. image:: /images/Evmk2e-image005.jpg - -If an in-field update is needed, downloaded the latest version -`here `__ -(labeled “BMC”) and follow instructions below. - -Prepare EVM for in-field update -""""""""""""""""""""""""""""""""""""""""""""""""" - -#. Remove power to the EVM. -#. Set boot mode to "No Boot mode” (see above). -#. Remove the MCU\_BOOTSELECT (CN4) jumper (see picture below for - location of jumper.) -#. Make sure your - - - USB cable is connected to CP2105 mini-USB (not XDS200 Emulator - USB) or - - Connect 4pin UART cable to COM1: MCU UART connector - -#. Make sure no HyperTerminal/Console connected to BMC COM port are open - or active. -#. Use the LM Flash Programmer (available - `here `__) to update the - firmware, as detailed in the steps below. - -.. image:: /images/Evmk2e-image006.jpg - -Perform in-field update -""""""""""""""""""""""""""""""""""""""""""""""""" - -#. Apply power to the EVM. No LED's will be illuminated and no LCD - backlight or characters will be on because the BMC is waiting for a - command rather than executing from Flash. -#. Open the LM Flash programmer utility. (Default location Start Menu -> - All Programs -> Texas Instruments -> Stellaris -> LM Flash Programmer - -> LM Flash Programmer ) -#. In the LM Flash Programmer Utility ‘Configuration’ tab, in the - interface section, select ‘Serial (UART)’ from the drop-down box on - the left. -#. Select the BMC COM Port (the same COM port used to issue the ver - command earlier), and set the ‘Baud Rate’ to 115200. -#. Set ‘Transfer Size’ to 60, and make sure ‘Disable Auto Baud Support’ - is unchecked. See image below. -#. In the ‘Program’ tab, Browse to the location of the binary file - containing the firmware update, and select it. -#. Leave all other options as default, and press the ‘Program’ button. -#. After the programming is complete, power off the board. -#. Reconnect the jumper. -#. Open the HyperTerminal/Console for the BMC COM port. -#. Apply power to the EVM. When BMC completes initialization of board it - will show latest version of BMC in Console. -#. If step 9 was done after power was applied, just type "ver" at BMC - prompt. - -.. image:: /images/Evmk2e-image007.jpg - -UCD Power Management Update -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There is one power management module (a.k.a. UCD) located on the EVM. It -can be identified by its address: 104(68h). Each module contains -non-volatile registers that determine its operation. It may be necessary -to update these registers in the field after the board has been shipped. - -This update can be performed through the BMC, which can issue commands -to the UCD modules to update the register settings. The **Power -Management Configuration Update Tool** performs the task of sending -commands to the BMC to get the current module versions, and perform -updates using configuration files. - -The latest version of the tool is available from -`here `__ -along with instructions on using the tool, and the latest configuration -files (txt files). Please follow the instructions provided to check the -current module versions, and update them accordingly. - -.. note:: The DIP switch configuration of the board when running the update is irrelevant. - diff --git a/source/common/EVM_Hardware_Setup/_OMAPL138-C6748_LCDK_Hardware_Setup.rst b/source/common/EVM_Hardware_Setup/_OMAPL138-C6748_LCDK_Hardware_Setup.rst deleted file mode 100644 index 6d91a60ef..000000000 --- a/source/common/EVM_Hardware_Setup/_OMAPL138-C6748_LCDK_Hardware_Setup.rst +++ /dev/null @@ -1,164 +0,0 @@ - -OMAP-L138/C6748 LCDK Hardware Setup -==================================== - -Overview ---------------- - -The OMAP-L138/C6748 low-cost development kit (LCDK) enables fast and easy software and hardware development of everyday applications that require real-time signal processing -and control functional, including industrial control, medical diagnostics and communications. - -Hardware -^^^^^^^^ -Information on the LCDK hardware, including DIP switches, LEDs, and user bottons, can be found in the LCDK User's Guide at the following link. - -`OMAP-L138/C6748 Low-Cost Development Kit User's Guide `__ - -Powering the LCDK -^^^^^^^^^^^^^^^^^^ -The board can be powered with 5V input through the J1 barrel connector. - -UART Connection -^^^^^^^^^^^^^^^^^ -Connect a mini-USB cable between UART port (J3) of the EVM and the host PC. Open a serial console (e.g. Tera Term) on the host PC and configure the serial port as follows. - - - Baud rate - 115200 - - Data length - 8 bit - - Parity - None - - Stop bits - 1 - - Flow control - None - -Linux Quick Start Guide ------------------------- - -The quick start guide for booting Linux on the Arm core can be found at the following link. - -`OMAP-L138 DSP+ARM9™ Development Kit (LCDK) Quick Start Guide `__ - -Connecting the LCDK to Code Composer Studio --------------------------------------------- - -The following section describes how to connect to the LCDK and load code via CCS for application development and debug. - -Hardware Setup -^^^^^^^^^^^^^^^ - -- Set the SW1 DIP switches to UART boot mode -- Connect an external emulator to the J6 header. -- Power on the LCDK using the J1 barrel connector. - -Software Setup -^^^^^^^^^^^^^^^^^^^^^^ - -- Code Composer Studio IDE - `Download `__ - -.. Note:: CCS versions 9.0 and later are 64-bit applications. Due to this, 32-bit emulators like the Spectrum Digital XDS510USB emulator are not supported with CCS versions 9.0 and later. - -- Processor SDK RTOS for OMAP-L138/C6748 - `Download `__ - -.. Note:: Please check the `Processor SDK Release Notes `__ for the recommended CCS version. - -- Setup the software environment as described in the "Download and install software" section of the `Processor SDK RTOS Getting Started Guide `__ - -- Build an example. Below are some suggested examples to get started with. - - - `No OS (Bare Metal) Example `__ - - - `TI-RTOS Kernel Example `__ - - - `GPIO LED Blink Example `__ - -Creating a Target Configuration File -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- In CCS, navigate to View -> Target Configurations. - -- In the Target Configurations window, right-click and select "New Target Configuration." - -- For Connection, select your external emulator. - -- For Board or Device, select LCDKC6748 or LCDKOMAPL138 as shown in the following image, and click Save. - -.. Image:: /images/lcdk_targetConfig.png - -| - -- Navigate to the Advanced tab and ensure the GEL file is loaded for the ARM9_0 core (OMAP-L138) or C674X_0 core (C6748). - -**OMAP-L138 LCDK GEL File:** - -.. Image:: /images/lcdk_omapl138_gel.png - :scale: 100% - -**C6748 LCDK GEL File:** - -.. Image:: /images/lcdk_c6748_gel.png - :scale: 100% - - -Connecting to Target and Loading/Running Program -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -**Connecting to Target** - -- In CCS, navigate to the Target Configurations window. - -- Right-click on the newly created target configuration and select "Launch Selected Configuration." - -- Right-click on the ARM9_0 core for OMAP-L138 or C674X_0 core for C6748, and click "Connect Target." - - -The following GEL outputs should appear in the CCS Console view. - -**OMAP-L138 LCDK:** - -:: - - ARM9_0: Output: Target Connected. - ARM9_0: Output: --------------------------------------------- - ARM9_0: Output: Memory Map Cleared. - ARM9_0: Output: --------------------------------------------- - ARM9_0: Output: Memory Map Setup Complete. - ARM9_0: Output: --------------------------------------------- - ARM9_0: Output: PSC Enable Complete. - ARM9_0: Output: --------------------------------------------- - ARM9_0: Output: PLL0 init done for Core:300MHz, EMIFA:25MHz - ARM9_0: Output: DDR initialization is in progress.... - ARM9_0: Output: PLL1 init done for DDR:150MHz - ARM9_0: Output: Using DDR2 settings - ARM9_0: Output: DDR2 init for 150 MHz is done - ARM9_0: Output: --------------------------------------------- - ARM9_0: Output: DSP Wake Complete. - ARM9_0: Output: --------------------------------------------- - -**C6748 LCDK:** - -:: - - C674X_0: Output: Target Connected. - C674X_0: Output: --------------------------------------------- - C674X_0: Output: Memory Map Cleared. - C674X_0: Output: --------------------------------------------- - C674X_0: Output: Memory Map Setup Complete. - C674X_0: Output: --------------------------------------------- - C674X_0: Output: PSC Enable Complete. - C674X_0: Output: --------------------------------------------- - C674X_0: Output: PLL0 init done for Core:300MHz, EMIFA:25MHz - C674X_0: Output: DDR initialization is in progress.... - C674X_0: Output: PLL1 init done for DDR:150MHz - C674X_0: Output: Using DDR2 settings - C674X_0: Output: DDR2 init for 150 MHz is done - C674X_0: Output: --------------------------------------------- - -| - -**Loading Program** - -- Select the desired core (ARM9_0 or C674X_0). -- Go to “Run -> Load -> Load Program.” -- Click “Browse” to choose a prebuilt .out or click “Browse project..” to choose a .out from an open project. -- Select the desired .out and click OK. - -**Running Program** - -- Go to “Run -> Resume” diff --git a/source/devices/AM62AX/linux/Overview/Run_Setup_Scripts.rst b/source/devices/AM62AX/linux/Overview/Run_Setup_Scripts.rst deleted file mode 100644 index cbe43ae9d..000000000 --- a/source/devices/AM62AX/linux/Overview/Run_Setup_Scripts.rst +++ /dev/null @@ -1,252 +0,0 @@ -.. _run-setup-scripts: - -Run Setup Scripts -================= - -.. http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Setup_Script -.. rubric:: Overview - :name: processor-sdk-linux-setup-script-overview - -After installation of the SDK on the Linux host, the setup script -should be run to prepare the host for software development. Some of -the tasks require administrator privileges. The script will prompt you -when these administrator privileges are required. The setup script -does the following things: - -- Verification that the Linux host is the recommended Ubuntu LTS - version -- Installation of required host packages -- Target FileSystem installation -- NFS setup -- TFTP setup -- Minicom setup -- uboot setup -- Load uboot script - -.. note:: - The host setup is common to all TI platforms. - -.. Image:: /images/Linux_Host_Development_System.png - - -.. rubric:: How to run the setup script - :name: how-to-run-the-setup-script - -The Setup Script (**setup.sh**) is located in the |__SDK_FULL_NAME__| installation -directory. By default, this directory has a name that has the form -|__SDK_INSTALL_DIR__|. - - -Change to that ti-processor-sdk-linux install directory. -Then run the script: - -**./setup.sh** - -.. note:: - The Setup Script will first check to see if the user is running the - recommended Ubuntu Long Term Support (LTS) distribution, if not it will - exit. If the user is running on a different Ubuntu version or another - Linux distribution, they are encouraged to modify the environment setup - script to match their distribution. The 18.04 version of Ubuntu is - currently supported. - -.. rubric:: Detailed step by step description through the setup script - :name: detailed-step-by-step-description-through-the-setup-script - -The following sections describe in more detail how to run the script and -what it is doing. - -.. rubric:: Installation of Required Host Packages - :name: installation-of-required-host-packages - -This section will check to make sure you have the proper host support -packages to allow you do the following tasks: - -- telnet -- bring up menuconfig, the kernel configuration tool -- mounting filesystem via nfs -- tftp -- bring up minicom -- rebuild u-boot - -If your host lacks any of the needed packages, they will automatically -be installed in this step. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -The command below is an example of what this script is doing. The actual -packages may vary for different releases: - -**sudo apt-get install xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev autoconf automake dos2unix screen lrzsz lzop u-boot-tools** - -.. rubric:: Add to Dialout Group - :name: add-to-dialout-group - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -This step is required for users using Ubuntu 12.04+. By default the -user does not have the proper permissions to access a serial device ( ex -ttyS0, ttyUSB0, etc...). A user must be apart of a "dialout" group to -access these serial device without root privileges. - -During this step the script will check if the current Linux user is -apart of the dialout group. If not the current Linux user will -automatically be added to the dialout group. The Linux user will still -be required to use sudo when accessing the serial device until the user -logs out and then logs back in. - -.. rubric:: Target FileSystem Installation - :name: target-filesystem-installation - -This step will extract the target filesystem. - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -The default location is: -/home/user/|__SDK_INSTALL_DIR__|/targetNFS - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. code-block:: text - - In which directory do you want to install the target filesystem?(if this directory does not exist it will be created) - [ /home/user/ti-processor-sdk-linux-am62axx-evm-/targetNFS ] - -You can override the default location by typing in another location or -by hitting you can accept the default location. This can take a -little time to untar and unzip the filesytem. - -If you have run this script more than once and the filesystem already -exists, you will be asked to either: - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -.. rubric:: NFS Setup - :name: nfs-setup - -This step will allow you to export your filesystem which was extracted -in the previous step. - -.. note:: - This command requires you to have administrator priviliges (sudo - access). - -- This step adds the path to root filesystem from the previous step to - the file /etc/exports on your host. -- The NFS kernel daemon is then stopped and then restarted to make sure - the exported file system is recognized. - -.. rubric:: TFTP Setup - :name: tftp-setup - -This section will setup tftp access on your host. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -.. code-block:: text - - Which directory do you want to be your tftp root directory?(if this directory does not exist it will be created for you) - [ /tftpboot ] - -The default location is /tftpboot which is off of the root directory on -your linux host and requires administrator privileges. You can hit - to select the default location or type in another path to -override the default. Then the following task occur: - -- A tftp config file is created for you on your host at - /etc/xinetd.d/tftp -- The tftp server is stopped and then restarted to insure the changes - are picked up. - -If you have run this script more than once or the filename already -exists, you will be asked to select one of the following options. - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -Repeat this for any additional prompts about /tftpboot files. - -.. rubric:: Minicom Setup - :name: minicom-setup - -This step will set up minicom (serial communication application) for SDK -development. - -.. code-block:: text - - Which serial port do you want to use with minicom? - [ /dev/ttyUSB0 ] - -For most boards, the default /dev/ttyUSB0 should be selected. - -.. note:: - If you are using a USB-to-Serial converter, your port should be - configured for /dev/ttyUSBx. - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. rubric:: uboot Setup - :name: uboot-setup - - This section will create the necessary u-boot commands to boot up your - board. - - The script will detect your ip address and display it. You can override - the detected value by entering an alternate value. - - :: - - This step will set up the u-boot variables for booting the EVM. - Autodetected the following ip address of your host, correct it if necessary - [ xxx.xxx.xxx.xxx ] - - Next, you will be prompted where you prefer your kernel and file system - to be located. - - - Kernel location - - - TFTP - located on your Host in your designated /tftpboot directory - - SD card - located in the 1st partition named "boot" of your SD - card - - - Filesystem location - - - NFS - located on your Host. The location is where the file system - was extracted in an earlier step. - - SD card - located on the 2nd partition named "rootfs" of your SD - card. - - - Next if you have selected TFTP, you will be prompted which uImage you - want to boot using TFTP. You will be given a list of existing uImage's - and you can type one in from the list or hit to select the - default option. The default option will be the uImage corresponding to - the SDK installation. This will be used in the next step to create the - necessary u-boot options to boot up your device. - - .. rubric:: Load uboot Script - :name: load-uboot-script - - This section creates a minicom script or a uEnv.txt file which will be - used by u-boot to provide the necessary commands to boot up in the - preferred configuration. - - - For boards like AM62A SK with a USB-to-Serial configuration, then a - uEnv.txt script is created and placed in the /boot partition of the - SD card. - - .. note:: - For devices which create a uEnv.txt, the device must already be booted - up with the USB-to-Serial connector attached to the Host. Further the - Host must recognize the boot and START\_HERE partitions. - -| diff --git a/source/devices/AM62DX/linux/Linux_Performance_Guide.rst b/source/devices/AM62DX/linux/Linux_Performance_Guide.rst deleted file mode 100644 index 2f9b718ee..000000000 --- a/source/devices/AM62DX/linux/Linux_Performance_Guide.rst +++ /dev/null @@ -1,16 +0,0 @@ - -==================================== - Linux 11.01.00.00 Performance Guide -==================================== - -.. rubric:: **Read This First** - :name: read-this-first-kernel-perf-guide - -**All performance numbers provided in this document are gathered using -following Evaluation Modules unless otherwise specified.** - -+----------------+----------------------------------------------------------------------------------------------------------------+ -| Name | Description | -+================+================================================================================================================+ -| AM62Dx EVM | | -+----------------+----------------------------------------------------------------------------------------------------------------+ diff --git a/source/devices/AM62DX/linux/Overview/Build_and_Run_the_Demos.rst b/source/devices/AM62DX/linux/Overview/Build_and_Run_the_Demos.rst deleted file mode 100644 index 96231a6a6..000000000 --- a/source/devices/AM62DX/linux/Overview/Build_and_Run_the_Demos.rst +++ /dev/null @@ -1,7 +0,0 @@ -Build and Run the Demos -======================= - -**Build Instructions** - -Processor SDK AM62D support GNU make based build system. - diff --git a/source/devices/AM62DX/linux/Overview/Run_Setup_Scripts.rst b/source/devices/AM62DX/linux/Overview/Run_Setup_Scripts.rst deleted file mode 100644 index 59ae23898..000000000 --- a/source/devices/AM62DX/linux/Overview/Run_Setup_Scripts.rst +++ /dev/null @@ -1,251 +0,0 @@ -.. _run-setup-scripts: - -Run Setup Scripts -================= - -.. rubric:: Overview - :name: processor-sdk-linux-setup-script-overview - -After installation of the SDK on the Linux host, the setup script -should be run to prepare the host for software development. Some of -the tasks require administrator privileges. The script will prompt you -when these administrator privileges are required. The setup script -does the following things: - -- Verification that the Linux host is the recommended Ubuntu LTS - version -- Installation of required host packages -- Target FileSystem installation -- NFS setup -- TFTP setup -- Minicom setup -- uboot setup -- Load uboot script - -.. note:: - The host setup is common to all TI platforms. - -.. Image:: /images/Linux_Host_Development_System.png - - -.. rubric:: How to run the setup script - :name: how-to-run-the-setup-script - -The Setup Script (**setup.sh**) is located in the |__SDK_FULL_NAME__| installation -directory. By default, this directory has a name that has the form -|__SDK_INSTALL_DIR__|. - - -Change to that ti-processor-sdk-linux install directory. -Then run the script: - -**./setup.sh** - -.. note:: - The Setup Script will first check to see if the user is running the - recommended Ubuntu Long Term Support (LTS) distribution, if not it will - exit. If the user is running on a different Ubuntu version or another - Linux distribution, they are encouraged to modify the environment setup - script to match their distribution. The 22.04 version of Ubuntu is - currently supported. - -.. rubric:: Detailed step by step description through the setup script - :name: detailed-step-by-step-description-through-the-setup-script - -The following sections describe in more detail how to run the script and -what it is doing. - -.. rubric:: Installation of Required Host Packages - :name: installation-of-required-host-packages - -This section will check to make sure you have the proper host support -packages to allow you do the following tasks: - -- telnet -- open menuconfig, the kernel configuration tool -- mounting filesystem via nfs -- tftp -- open minicom -- rebuild u-boot - -If your host lacks any of the needed packages, they will automatically -be installed in this step. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -The command below is an example of what this script is doing. The actual -packages may vary for different releases: - -**sudo apt-get install xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev autoconf automake dos2unix screen lrzsz lzop u-boot-tools** - -.. rubric:: Add to Dialout Group - :name: add-to-dialout-group - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -This step is required for users using Ubuntu 12.04+. By default the -user does not have the proper permissions to access a serial device ( ex -ttyS0, ttyUSB0, etc...). A user must be apart of a "dialout" group to -access these serial device without root privileges. - -During this step the script will check if the current Linux user is -apart of the dialout group. If not the current Linux user will -automatically be added to the dialout group. The Linux user will still -be required to use sudo when accessing the serial device until the user -logs out and then logs back in. - -.. rubric:: Target FileSystem Installation - :name: target-filesystem-installation - -This step will extract the target filesystem. - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -The default location is: -/home/user/|__SDK_INSTALL_DIR__|/targetNFS - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. code-block:: text - - In which directory do you want to install the target filesystem?(if this directory does not exist it will be created) - [ /home/user/ti-processor-sdk-linux-am62lxx-evm-/targetNFS ] - -You can override the default location by typing in another location or -by hitting you can accept the default location. This can take a -little time to extract and unzip the filesytem. - -If you have run this script more than once and the filesystem already -exists, you will be asked to either: - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -.. rubric:: NFS Setup - :name: nfs-setup - -This step will allow you to export your filesystem which was extracted -in the previous step. - -.. note:: - This command requires you to have administrator priviliges (sudo - access). - -- This step adds the path to root filesystem from the previous step to - the file /etc/exports on your host. -- The NFS kernel daemon is then stopped and then restarted to make sure - the exported file system is recognized. - -.. rubric:: TFTP Setup - :name: tftp-setup - -This section will setup tftp access on your host. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -.. code-block:: text - - Which directory do you want to be your tftp root directory?(if this directory does not exist it will be created for you) - [ /tftpboot ] - -The default location is /tftpboot which is off of the root directory on -your linux host and requires administrator privileges. You can hit - to select the default location or type in another path to -override the default. Then the following task occur: - -- A tftp config file is created for you on your host at - /etc/xinetd.d/tftp -- The tftp server is stopped and then restarted to insure the changes - are picked up. - -If you have run this script more than once or the filename already -exists, you will be asked to select one of the following options. - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -Repeat this for any additional prompts about /tftpboot files. - -.. rubric:: Minicom Setup - :name: minicom-setup - -This step will set up minicom (serial communication application) for SDK -development. - -.. code-block:: text - - Which serial port do you want to use with minicom? - [ /dev/ttyUSB0 ] - -For most boards, the default /dev/ttyUSB0 should be selected. - -.. note:: - If you are using a USB-to-Serial converter, your port should be - configured for /dev/ttyUSBx. - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. rubric:: uboot Setup - :name: uboot-setup - - This section will create the necessary u-boot commands to boot up your - board. - - The script will detect your ip address and display it. You can override - the detected value by entering an alternate value. - - :: - - This step will set up the u-boot variables for booting the EVM. - Autodetected the following ip address of your host, correct it if necessary - [ xxx.xxx.xxx.xxx ] - - Next, you will be prompted where you prefer your kernel and file system - to be located. - - - Kernel location - - - TFTP - located on your Host in your designated /tftpboot directory - - SD card - located in the 1st partition named "boot" of your SD - card - - - Filesystem location - - - NFS - located on your Host. The location is where the file system - was extracted in an earlier step. - - SD card - located on the 2nd partition named "rootfs" of your SD - card. - - - Next if you have selected TFTP, you will be prompted which uImage you - want to boot using TFTP. You will be given a list of existing uImage's - and you can type one in from the list or hit to select the - default option. The default option will be the uImage corresponding to - the SDK installation. This will be used in the next step to create the - necessary u-boot options to boot up your device. - - .. rubric:: Load uboot Script - :name: load-uboot-script - - This section creates a minicom script or a uEnv.txt file which will be - used by u-boot to provide the necessary commands to boot up in the - preferred configuration. - - - For boards like AM62Px SK with a USB-to-Serial configuration, then a - uEnv.txt script is created and placed in the /boot partition of the - SD card. - - .. note:: - For devices which create a uEnv.txt, the device must already be booted - up with the USB-to-Serial connector attached to the Host. Further the - Host must recognize the boot and START\_HERE partitions. - -| diff --git a/source/devices/AM62DX/linux/RT_Linux_Performance_Guide.rst b/source/devices/AM62DX/linux/RT_Linux_Performance_Guide.rst deleted file mode 100644 index 3256ba301..000000000 --- a/source/devices/AM62DX/linux/RT_Linux_Performance_Guide.rst +++ /dev/null @@ -1,14 +0,0 @@ -======================================= - RT-linux 11.01.00.00 Performance Guide -======================================= - -.. rubric:: **Read This First** - -**All performance numbers in this document are gathered using -Evaluation Modules unless otherwise specified.** - -+----------------+--------------------------------------------------------------------------------------------------------+ -| Name | Description | -+================+========================================================================================================+ -| AM62D EVM | | -+----------------+--------------------------------------------------------------------------------------------------------+ diff --git a/source/devices/AM62DX/linux/Release_Specific_Kernel_Performance_Guide.rst b/source/devices/AM62DX/linux/Release_Specific_Kernel_Performance_Guide.rst deleted file mode 100644 index 510e1c41b..000000000 --- a/source/devices/AM62DX/linux/Release_Specific_Kernel_Performance_Guide.rst +++ /dev/null @@ -1,9 +0,0 @@ -######################## -Kernel Performance Guide -######################## - -.. toctree:: - :maxdepth: 4 - - RT_Linux_Performance_Guide - Linux_Performance_Guide diff --git a/source/devices/AM62DX/linux/Release_Specific_Migration_Guide.rst b/source/devices/AM62DX/linux/Release_Specific_Migration_Guide.rst deleted file mode 100644 index 56fca9d03..000000000 --- a/source/devices/AM62DX/linux/Release_Specific_Migration_Guide.rst +++ /dev/null @@ -1,8 +0,0 @@ -############### -Migration Guide -############### - -.. rubric:: Overview - -This page covers migration information for applications built on top -of the AM62D Linux SDK. diff --git a/source/devices/AM62LX/linux/Overview/Build_and_Run_the_Demos.rst b/source/devices/AM62LX/linux/Overview/Build_and_Run_the_Demos.rst deleted file mode 100644 index ae5c5991e..000000000 --- a/source/devices/AM62LX/linux/Overview/Build_and_Run_the_Demos.rst +++ /dev/null @@ -1,7 +0,0 @@ -Build and Run the Demos -======================= - -**Build Instructions** - -Processor SDK AM62L support GNU make based build system. - diff --git a/source/devices/AM62LX/linux/Overview/Run_Setup_Scripts.rst b/source/devices/AM62LX/linux/Overview/Run_Setup_Scripts.rst deleted file mode 100644 index 559dc739e..000000000 --- a/source/devices/AM62LX/linux/Overview/Run_Setup_Scripts.rst +++ /dev/null @@ -1,251 +0,0 @@ -.. _run-setup-scripts: - -Run Setup Scripts -================= - -.. rubric:: Overview - :name: processor-sdk-linux-setup-script-overview - -After installation of the SDK on the Linux host, the setup script -should be run to prepare the host for software development. Some of -the tasks require administrator privileges. The script will prompt you -when these administrator privileges are required. The setup script -does the following things: - -- Verification that the Linux host is the recommended Ubuntu LTS - version -- Installation of required host packages -- Target FileSystem installation -- NFS setup -- TFTP setup -- Minicom setup -- uboot setup -- Load uboot script - -.. note:: - The host setup is common to all TI platforms. - -.. Image:: /images/Linux_Host_Development_System.png - - -.. rubric:: How to run the setup script - :name: how-to-run-the-setup-script - -The Setup Script (**setup.sh**) is located in the |__SDK_FULL_NAME__| installation -directory. By default, this directory has a name that has the form -|__SDK_INSTALL_DIR__|. - - -Change to that ti-processor-sdk-linux install directory. -Then run the script: - -**./setup.sh** - -.. note:: - The Setup Script will first check to see if the user is running the - recommended Ubuntu Long Term Support (LTS) distribution, if not it will - exit. If the user is running on a different Ubuntu version or another - Linux distribution, they are encouraged to modify the environment setup - script to match their distribution. The 22.04 version of Ubuntu is - currently supported. - -.. rubric:: Detailed step by step description through the setup script - :name: detailed-step-by-step-description-through-the-setup-script - -The following sections describe in more detail how to run the script and -what it is doing. - -.. rubric:: Installation of Required Host Packages - :name: installation-of-required-host-packages - -This section will check to make sure you have the proper host support -packages to allow you do the following tasks: - -- telnet -- bring up menuconfig, the kernel configuration tool -- mounting filesystem via nfs -- tftp -- bring up minicom -- rebuild u-boot - -If your host lacks any of the needed packages, they will automatically -be installed in this step. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -The command below is an example of what this script is doing. The actual -packages may vary for different releases: - -**sudo apt-get install xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev autoconf automake dos2unix screen lrzsz lzop u-boot-tools** - -.. rubric:: Add to Dialout Group - :name: add-to-dialout-group - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -This step is required for users using Ubuntu 12.04+. By default the -user does not have the proper permissions to access a serial device ( ex -ttyS0, ttyUSB0, etc...). A user must be apart of a "dialout" group to -access these serial device without root privileges. - -During this step the script will check if the current Linux user is -apart of the dialout group. If not the current Linux user will -automatically be added to the dialout group. The Linux user will still -be required to use sudo when accessing the serial device until the user -logs out and then logs back in. - -.. rubric:: Target FileSystem Installation - :name: target-filesystem-installation - -This step will extract the target filesystem. - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -The default location is: -/home/user/|__SDK_INSTALL_DIR__|/targetNFS - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. code-block:: text - - In which directory do you want to install the target filesystem?(if this directory does not exist it will be created) - [ /home/user/ti-processor-sdk-linux-am62lxx-evm-/targetNFS ] - -You can override the default location by typing in another location or -by hitting you can accept the default location. This can take a -little time to untar and unzip the filesytem. - -If you have run this script more than once and the filesystem already -exists, you will be asked to either: - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -.. rubric:: NFS Setup - :name: nfs-setup - -This step will allow you to export your filesystem which was extracted -in the previous step. - -.. note:: - This command requires you to have administrator priviliges (sudo - access). - -- This step adds the path to root filesystem from the previous step to - the file /etc/exports on your host. -- The NFS kernel daemon is then stopped and then restarted to make sure - the exported file system is recognized. - -.. rubric:: TFTP Setup - :name: tftp-setup - -This section will setup tftp access on your host. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -.. code-block:: text - - Which directory do you want to be your tftp root directory?(if this directory does not exist it will be created for you) - [ /tftpboot ] - -The default location is /tftpboot which is off of the root directory on -your linux host and requires administrator privileges. You can hit - to select the default location or type in another path to -override the default. Then the following task occur: - -- A tftp config file is created for you on your host at - /etc/xinetd.d/tftp -- The tftp server is stopped and then restarted to insure the changes - are picked up. - -If you have run this script more than once or the filename already -exists, you will be asked to select one of the following options. - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -Repeat this for any additional prompts about /tftpboot files. - -.. rubric:: Minicom Setup - :name: minicom-setup - -This step will set up minicom (serial communication application) for SDK -development. - -.. code-block:: text - - Which serial port do you want to use with minicom? - [ /dev/ttyUSB0 ] - -For most boards, the default /dev/ttyUSB0 should be selected. - -.. note:: - If you are using a USB-to-Serial converter, your port should be - configured for /dev/ttyUSBx. - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. rubric:: uboot Setup - :name: uboot-setup - - This section will create the necessary u-boot commands to boot up your - board. - - The script will detect your ip address and display it. You can override - the detected value by entering an alternate value. - - :: - - This step will set up the u-boot variables for booting the EVM. - Autodetected the following ip address of your host, correct it if necessary - [ xxx.xxx.xxx.xxx ] - - Next, you will be prompted where you prefer your kernel and file system - to be located. - - - Kernel location - - - TFTP - located on your Host in your designated /tftpboot directory - - SD card - located in the 1st partition named "boot" of your SD - card - - - Filesystem location - - - NFS - located on your Host. The location is where the file system - was extracted in an earlier step. - - SD card - located on the 2nd partition named "rootfs" of your SD - card. - - - Next if you have selected TFTP, you will be prompted which uImage you - want to boot using TFTP. You will be given a list of existing uImage's - and you can type one in from the list or hit to select the - default option. The default option will be the uImage corresponding to - the SDK installation. This will be used in the next step to create the - necessary u-boot options to boot up your device. - - .. rubric:: Load uboot Script - :name: load-uboot-script - - This section creates a minicom script or a uEnv.txt file which will be - used by u-boot to provide the necessary commands to boot up in the - preferred configuration. - - - For boards like AM62Px SK with a USB-to-Serial configuration, then a - uEnv.txt script is created and placed in the /boot partition of the - SD card. - - .. note:: - For devices which create a uEnv.txt, the device must already be booted - up with the USB-to-Serial connector attached to the Host. Further the - Host must recognize the boot and START\_HERE partitions. - -| diff --git a/source/devices/AM62PX/linux/Overview/Build_and_Run_the_Demos.rst b/source/devices/AM62PX/linux/Overview/Build_and_Run_the_Demos.rst deleted file mode 100644 index 2ad28cb54..000000000 --- a/source/devices/AM62PX/linux/Overview/Build_and_Run_the_Demos.rst +++ /dev/null @@ -1,21 +0,0 @@ -Build and Run the Demos -======================= - -**Build Instructions** - -Processor SDK AM62Px support GNU make based build system. - -**WiFi Out of Box Demo** - -- Refer :ref:`[WiFi OOB Demo User Guide] ` - -**HMI and 3D Out of Box Demo** - -- Refer :ref:`[HMI and 3D Demo User Guide] ` - -**How to build dependent components** - -Refer the respective user guides to build Linux and other RTOS/NO-RTOS packages - -- For Linux Kernel, u-boot & DTB - `[Use Link] ` -- For RTOS/NO-RTOS source (MCU+ SDK) - `[Use Link] `__ diff --git a/source/devices/AM62PX/linux/Overview/Run_Setup_Scripts.rst b/source/devices/AM62PX/linux/Overview/Run_Setup_Scripts.rst deleted file mode 100644 index 22a49cb03..000000000 --- a/source/devices/AM62PX/linux/Overview/Run_Setup_Scripts.rst +++ /dev/null @@ -1,252 +0,0 @@ -.. _run-setup-scripts: - -Run Setup Scripts -====================================== - -.. http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Setup_Script -.. rubric:: Overview - :name: processor-sdk-linux-setup-script-overview - -After installation of the SDK on the Linux host, the setup script -should be run to prepare the host for software development. Some of -the tasks require administrator privileges. The script will prompt you -when these administrator privileges are required. The setup script -does the following things: - -- Verification that the Linux host is the recommended Ubuntu LTS - version -- Installation of required host packages -- Target FileSystem installation -- NFS setup -- TFTP setup -- Minicom setup -- uboot setup -- Load uboot script - -.. note:: - The host setup is common to all TI platforms. - -.. Image:: /images/Linux_Host_Development_System.png - - -.. rubric:: How to run the setup script - :name: how-to-run-the-setup-script - -The Setup Script (**setup.sh**) is located in the |__SDK_FULL_NAME__| installation -directory. By default, this directory has a name that has the form -|__SDK_INSTALL_DIR__|. - - -Change to that ti-processor-sdk-linux install directory. -Then run the script: - -**./setup.sh** - -.. note:: - The Setup Script will first check to see if the user is running the - recommended Ubuntu Long Term Support (LTS) distribution, if not it will - exit. If the user is running on a different Ubuntu version or another - Linux distribution, they are encouraged to modify the environment setup - script to match their distribution. The 22.04 version of Ubuntu is - currently supported. - -.. rubric:: Detailed step by step description through the setup script - :name: detailed-step-by-step-description-through-the-setup-script - -The following sections describe in more detail how to run the script and -what it is doing. - -.. rubric:: Installation of Required Host Packages - :name: installation-of-required-host-packages - -This section will check to make sure you have the proper host support -packages to allow you do the following tasks: - -- telnet -- bring up menuconfig, the kernel configuration tool -- mounting filesystem via nfs -- tftp -- bring up minicom -- rebuild u-boot - -If your host lacks any of the needed packages, they will automatically -be installed in this step. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -The command below is an example of what this script is doing. The actual -packages may vary for different releases: - -**sudo apt-get install xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev autoconf automake dos2unix screen lrzsz lzop u-boot-tools** - -.. rubric:: Add to Dialout Group - :name: add-to-dialout-group - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -This step is required for users using Ubuntu 12.04+. By default the -user does not have the proper permissions to access a serial device ( ex -ttyS0, ttyUSB0, etc...). A user must be apart of a "dialout" group to -access these serial device without root privileges. - -During this step the script will check if the current Linux user is -apart of the dialout group. If not the current Linux user will -automatically be added to the dialout group. The Linux user will still -be required to use sudo when accessing the serial device until the user -logs out and then logs back in. - -.. rubric:: Target FileSystem Installation - :name: target-filesystem-installation - -This step will extract the target filesystem. - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -The default location is: -/home/user/|__SDK_INSTALL_DIR__|/targetNFS - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. code-block:: text - - In which directory do you want to install the target filesystem?(if this directory does not exist it will be created) - [ /home/user/ti-processor-sdk-linux-am62pxx-evm-/targetNFS ] - -You can override the default location by typing in another location or -by hitting you can accept the default location. This can take a -little time to untar and unzip the filesytem. - -If you have run this script more than once and the filesystem already -exists, you will be asked to either: - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -.. rubric:: NFS Setup - :name: nfs-setup - -This step will allow you to export your filesystem which was extracted -in the previous step. - -.. note:: - This command requires you to have administrator priviliges (sudo - access). - -- This step adds the path to root filesystem from the previous step to - the file /etc/exports on your host. -- The NFS kernel daemon is then stopped and then restarted to make sure - the exported file system is recognized. - -.. rubric:: TFTP Setup - :name: tftp-setup - -This section will setup tftp access on your host. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -.. code-block:: text - - Which directory do you want to be your tftp root directory?(if this directory does not exist it will be created for you) - [ /tftpboot ] - -The default location is /tftpboot which is off of the root directory on -your linux host and requires administrator privileges. You can hit - to select the default location or type in another path to -override the default. Then the following task occur: - -- A tftp config file is created for you on your host at - /etc/xinetd.d/tftp -- The tftp server is stopped and then restarted to insure the changes - are picked up. - -If you have run this script more than once or the filename already -exists, you will be asked to select one of the following options. - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -Repeat this for any additional prompts about /tftpboot files. - -.. rubric:: Minicom Setup - :name: minicom-setup - -This step will set up minicom (serial communication application) for SDK -development. - -.. code-block:: text - - Which serial port do you want to use with minicom? - [ /dev/ttyUSB0 ] - -For most boards, the default /dev/ttyUSB0 should be selected. - -.. note:: - If you are using a USB-to-Serial converter, your port should be - configured for /dev/ttyUSBx. - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. rubric:: uboot Setup - :name: uboot-setup - - This section will create the necessary u-boot commands to boot up your - board. - - The script will detect your ip address and display it. You can override - the detected value by entering an alternate value. - - :: - - This step will set up the u-boot variables for booting the EVM. - Autodetected the following ip address of your host, correct it if necessary - [ xxx.xxx.xxx.xxx ] - - Next, you will be prompted where you prefer your kernel and file system - to be located. - - - Kernel location - - - TFTP - located on your Host in your designated /tftpboot directory - - SD card - located in the 1st partition named "boot" of your SD - card - - - Filesystem location - - - NFS - located on your Host. The location is where the file system - was extracted in an earlier step. - - SD card - located on the 2nd partition named "rootfs" of your SD - card. - - - Next if you have selected TFTP, you will be prompted which uImage you - want to boot using TFTP. You will be given a list of existing uImage's - and you can type one in from the list or hit to select the - default option. The default option will be the uImage corresponding to - the SDK installation. This will be used in the next step to create the - necessary u-boot options to boot up your device. - - .. rubric:: Load uboot Script - :name: load-uboot-script - - This section creates a minicom script or a uEnv.txt file which will be - used by u-boot to provide the necessary commands to boot up in the - preferred configuration. - - - For boards like AM62Px SK with a USB-to-Serial configuration, then a - uEnv.txt script is created and placed in the /boot partition of the - SD card. - - .. note:: - For devices which create a uEnv.txt, the device must already be booted - up with the USB-to-Serial connector attached to the Host. Further the - Host must recognize the boot and START\_HERE partitions. - -| diff --git a/source/devices/AM62X/linux/Overview/Build_and_Run_the_Demos.rst b/source/devices/AM62X/linux/Overview/Build_and_Run_the_Demos.rst deleted file mode 100644 index a235f98f5..000000000 --- a/source/devices/AM62X/linux/Overview/Build_and_Run_the_Demos.rst +++ /dev/null @@ -1,24 +0,0 @@ -Build and Run the Demos -====================================== - -**Build Instructions** - -Processor SDK AM62x support GNU make based build system. - -**WiFi Out of Box Demo** - -- Refer :ref:`[WiFi OOB Demo User Guide] ` - -**HMI and 3D Out of Box Demo** - -- Refer :ref:`[HMI and 3D Demo User Guide] ` - -**How to build dependent components** - -Refer the respective user guides to build Linux and other RTOS/NO-RTOS packages - -- For Linux Kernel, u-boot & DTB - :ref:`[Use Link] ` -- For RTOS/NO-RTOS source (MCU+ SDK) - `[Use Link] `__ - - - diff --git a/source/devices/AM62X/linux/Overview/Run_Setup_Scripts.rst b/source/devices/AM62X/linux/Overview/Run_Setup_Scripts.rst deleted file mode 100644 index de36ab888..000000000 --- a/source/devices/AM62X/linux/Overview/Run_Setup_Scripts.rst +++ /dev/null @@ -1,252 +0,0 @@ -.. _run-setup-scripts: - -Run Setup Scripts -====================================== - -.. http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Setup_Script -.. rubric:: Overview - :name: processor-sdk-linux-setup-script-overview - -After installation of the SDK on the Linux host, the setup script -should be run to prepare the host for software development. Some of -the tasks require administrator privileges. The script will prompt you -when these administrator privileges are required. The setup script -does the following things: - -- Verification that the Linux host is the recommended Ubuntu LTS - version -- Installation of required host packages -- Target FileSystem installation -- NFS setup -- TFTP setup -- Minicom setup -- uboot setup -- Load uboot script - -.. note:: - The host setup is common to all TI platforms. - -.. Image:: /images/Linux_Host_Development_System.png - - -.. rubric:: How to run the setup script - :name: how-to-run-the-setup-script - -The Setup Script (**setup.sh**) is located in the |__SDK_FULL_NAME__| installation -directory. By default, this directory has a name that has the form -|__SDK_INSTALL_DIR__|. - - -Change to that ti-processor-sdk-linux install directory. -Then run the script: - -**./setup.sh** - -.. note:: - The Setup Script will first check to see if the user is running the - recommended Ubuntu Long Term Support (LTS) distribution, if not it will - exit. If the user is running on a different Ubuntu version or another - Linux distribution, they are encouraged to modify the environment setup - script to match their distribution. The 22.04 version of Ubuntu is - currently supported. - -.. rubric:: Detailed step by step description through the setup script - :name: detailed-step-by-step-description-through-the-setup-script - -The following sections describe in more detail how to run the script and -what it is doing. - -.. rubric:: Installation of Required Host Packages - :name: installation-of-required-host-packages - -This section will check to make sure you have the proper host support -packages to allow you do the following tasks: - -- telnet -- bring up menuconfig, the kernel configuration tool -- mounting filesystem via nfs -- tftp -- bring up minicom -- rebuild u-boot - -If your host lacks any of the needed packages, they will automatically -be installed in this step. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -The command below is an example of what this script is doing. The actual -packages may vary for different releases: - -**sudo apt-get install xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev autoconf automake dos2unix screen lrzsz lzop u-boot-tools** - -.. rubric:: Add to Dialout Group - :name: add-to-dialout-group - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -This step is required for users using Ubuntu 12.04+. By default the -user does not have the proper permissions to access a serial device ( ex -ttyS0, ttyUSB0, etc...). A user must be apart of a "dialout" group to -access these serial device without root privileges. - -During this step the script will check if the current Linux user is -apart of the dialout group. If not the current Linux user will -automatically be added to the dialout group. The Linux user will still -be required to use sudo when accessing the serial device until the user -logs out and then logs back in. - -.. rubric:: Target FileSystem Installation - :name: target-filesystem-installation - -This step will extract the target filesystem. - -.. note:: - This part requires you to have administrator priviliges (sudo access). - -The default location is: -/home/user/|__SDK_INSTALL_DIR__|/targetNFS - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. code-block:: text - - In which directory do you want to install the target filesystem?(if this directory does not exist it will be created) - [ /home/user/ti-processor-sdk-linux-am62xx-evm-/targetNFS ] - -You can override the default location by typing in another location or -by hitting you can accept the default location. This can take a -little time to untar and unzip the filesytem. - -If you have run this script more than once and the filesystem already -exists, you will be asked to either: - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -.. rubric:: NFS Setup - :name: nfs-setup - -This step will allow you to export your filesystem which was extracted -in the previous step. - -.. note:: - This command requires you to have administrator priviliges (sudo - access). - -- This step adds the path to root filesystem from the previous step to - the file /etc/exports on your host. -- The NFS kernel daemon is then stopped and then restarted to make sure - the exported file system is recognized. - -.. rubric:: TFTP Setup - :name: tftp-setup - -This section will setup tftp access on your host. - -.. note:: - This command requires you to have administrator priviliges (sudo access) - on your host. - -.. code-block:: text - - Which directory do you want to be your tftp root directory?(if this directory does not exist it will be created for you) - [ /tftpboot ] - -The default location is /tftpboot which is off of the root directory on -your linux host and requires administrator privileges. You can hit - to select the default location or type in another path to -override the default. Then the following task occur: - -- A tftp config file is created for you on your host at - /etc/xinetd.d/tftp -- The tftp server is stopped and then restarted to insure the changes - are picked up. - -If you have run this script more than once or the filename already -exists, you will be asked to select one of the following options. - -- rename the filesystem -- overwrite the filesystem -- skip filesystem extraction - -Repeat this for any additional prompts about /tftpboot files. - -.. rubric:: Minicom Setup - :name: minicom-setup - -This step will set up minicom (serial communication application) for SDK -development. - -.. code-block:: text - - Which serial port do you want to use with minicom? - [ /dev/ttyUSB0 ] - -For most boards, the default /dev/ttyUSB0 should be selected. - -.. note:: - If you are using a USB-to-Serial converter, your port should be - configured for /dev/ttyUSBx. - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. rubric:: uboot Setup - :name: uboot-setup - - This section will create the necessary u-boot commands to boot up your - board. - - The script will detect your ip address and display it. You can override - the detected value by entering an alternate value. - - :: - - This step will set up the u-boot variables for booting the EVM. - Autodetected the following ip address of your host, correct it if necessary - [ xxx.xxx.xxx.xxx ] - - Next, you will be prompted where you prefer your kernel and file system - to be located. - - - Kernel location - - - TFTP - located on your Host in your designated /tftpboot directory - - SD card - located in the 1st partition named "boot" of your SD - card - - - Filesystem location - - - NFS - located on your Host. The location is where the file system - was extracted in an earlier step. - - SD card - located on the 2nd partition named "rootfs" of your SD - card. - - - Next if you have selected TFTP, you will be prompted which uImage you - want to boot using TFTP. You will be given a list of existing uImage's - and you can type one in from the list or hit to select the - default option. The default option will be the uImage corresponding to - the SDK installation. This will be used in the next step to create the - necessary u-boot options to boot up your device. - - .. rubric:: Load uboot Script - :name: load-uboot-script - - This section creates a minicom script or a uEnv.txt file which will be - used by u-boot to provide the necessary commands to boot up in the - preferred configuration. - - - For boards like AM62x SK with a USB-to-Serial configuration, then a - uEnv.txt script is created and placed in the /boot partition of the - SD card. - - .. note:: - For devices which create a uEnv.txt, the device must already be booted - up with the USB-to-Serial connector attached to the Host. Further the - Host must recognize the boot and START\_HERE partitions. - -| diff --git a/source/devices/AM62X/linux/Release_Specific_Workarounds.rst b/source/devices/AM62X/linux/Release_Specific_Workarounds.rst deleted file mode 100644 index 39f4b8f99..000000000 --- a/source/devices/AM62X/linux/Release_Specific_Workarounds.rst +++ /dev/null @@ -1,37 +0,0 @@ -.. _workarounds: - -Workarounds -=========== - -USB Device Firmware Upgrade (DFU) Boot Fix ------------------------------------------- - -In 08.06 release, USB Device Firmware Upgrade (DFU) boot failure was observed as required ENV variable definitions for USB DFU boot from U-Boot SPL were not available, leaving R5 U-Boot SPL unable to continue with the DFU boot process. - -Following steps can be used to fix the issue:- - -1. Cherry-pick this commit inside U-Boot directory in (/board-support/) included in SDK https://git.ti.com/cgit/ti-u-boot/ti-u-boot/commit/?h=ti-u-boot-2021.01-next&id=28c75c2713915a122e5d39311ae7416ca35c0532 - -:: - - git fetch - git cherry-pick 28c75c2713 - -2. Build the bootloader images using default “am62x_evm_r5_usbdfu_defconfig” and “am62x_evm_a53_defconfig” configs files. Following steps can be followed to build bootloader images using top-level makefile in SDK. - -- Following change is needed in Rules.make - -:: - - UBOOT_MACHINE_R5=am62x_evm_r5_usbdfu_defconfig - -- Build the bootloader images using top-level makefile by running following commands in top level of SDK. - -:: - - make u-boot - make sysfw-image - -- To build bootloader binaries without using top-level makefile please refer to :ref:`Build-U-Boot-label`. - -3. USB Device Firmware Upgrade (DFU) Boot now can be used. For steps refer to :ref:`usb-device-firmware-upgrade-label`. diff --git a/source/devices/AM64X/linux/Overview/Build_and_Run_the_Demos.rst b/source/devices/AM64X/linux/Overview/Build_and_Run_the_Demos.rst deleted file mode 100644 index 72a54941c..000000000 --- a/source/devices/AM64X/linux/Overview/Build_and_Run_the_Demos.rst +++ /dev/null @@ -1,36 +0,0 @@ -Build and Run the Demos -====================================== - -**Build Instructions** - -Processor SDK AM64x support GNU make based build system. Refer to -sitara-apps/makerules folder in `this link `__ -for all supported demos and build targets. - -Below is a list of build targets supported by processor SDK AM64x: - -+-----------------------+-----------------------------------------------------------------------+ -| **Build Target** | **Description** | -+-----------------------+-----------------------------------------------------------------------+ -| benchmark_demo_build | Benchmarking demos | -+-----------------------+-----------------------------------------------------------------------+ - - -**Benchmark demos** - -- Refer :ref:`[Benchmark Demo User Guide] ` - -**WiFi OOB demo** - -- Refer :ref:`[WiFi OOB Demo User Guide] ` - -**How to build dependent components** - -Refer the respective user guides to build Linux and other RTOS/NO-RTOS packages - -- For Linux Kernel, u-boot & DTB `[Use Link] <../../../linux/Foundational_Components.html>`__ -- For RTOS/NO-RTOS source (MCU+ SDK) `[Use Link] `__ -- For Industrial Protocols (ECAT) `[Use Link] `__ - - - diff --git a/source/devices/AM64X/linux/Overview/Create_SD_Card.rst b/source/devices/AM64X/linux/Overview/Create_SD_Card.rst deleted file mode 100644 index 1556367cb..000000000 --- a/source/devices/AM64X/linux/Overview/Create_SD_Card.rst +++ /dev/null @@ -1,184 +0,0 @@ - -.. _am64x-create-sd-card: - -Create SD Card -============== - -.. note:: - You will need a micro-SD Card (16GB or larger) and an SD Card Reader. - -.. _am64x-create-sd-card-with-default-images: - -Create SD Card with Default Images ----------------------------------- - -1. Install the AM64x Processor SDK on a Linux or a Windows machine at - -| - -2. The default bootable SD card image (WIC file) is available - at /filesystem/tisdk-default-image-am64xx-evm.wic.xz - -| - -3. Decompress the tisdk-default-image-am64xx-evm.wic.xz to tisdk-default-image-am64xx-evm.wic - - - For Linux: - - :: - - cd /filesystem - unxz tisdk-default-image-am64xx-evm.wic.xz - - - For Windows, decompress the WIC image with a file archiver like 7-zip or - winzip. - -| - -4. Flash the WIC image to SD card - - - - For Linux: - a) First, make sure that the SD card is unmounted. You can use lsblk to - inspect whether the SD card partitions have a MOUNTPOINT. If the SD - card is mounted, use umount to unmount the partitions. - - For example, if lsblk returned this: - - :: - - $ lsblk - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT - : - : - sdc 8:32 1 15G 0 disk - ├─sdc1 8:33 1 131.8M 0 part /media/localUser/boot - └─sdc2 8:34 1 765.9M 0 part /media/localUser/root - - Then we would want to unmount sdc1 and sdc2: - - :: - - $ sudo umount /media/localUser/boot - $ sudo umount /media/localUser/root - $ lsblk - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT - : - : - sdc 8:32 1 15G 0 disk - ├─sdc1 8:33 1 131.8M 0 part - └─sdc2 8:34 1 765.9M 0 part - - b) Next, install bmap-tools using the following command: - - :: - - sudo apt-get install bmap-tools - - Then generate a bmap file from the decompressed WIC image with the following command. - This step can be skipped but the bmap file significantly reduces the time taken to flash the SD card. - - :: - - bmaptool create -o tisdk-default-image.bmap tisdk-default-image-am64xx-evm.wic - - c) Then write the WIC image to the SD card with the following command: - - :: - - sudo bmaptool copy --bmap tisdk-default-image.bmap tisdk-default-image-am64xx-evm.wic /dev/sdx - - In the above example, the SD card is at /dev/sdc. In that case, the - image write command would look like this: - - :: - - sudo bmaptool copy --bmap tisdk-default-image.bmap tisdk-default-image-am64xx-evm.wic /dev/sdc - - - For Windows: - Write the WIC image to the SD card with Win32DiskImager.exe - (https://sourceforge.net/projects/win32diskimager/files/latest/download) - -| - -.. _am64x-create-sd-card-with-custom-images: - -Create SD Card with Custom Images ---------------------------------- - -.. note:: - The TI script used to generate custom SD card images should be run on a Linux - computer. - -For a Linux + RTOS/NO-RTOS application to boot from a SD card, two partitions need to -be created on the SD card: - - - boot partition - - rootfs partition - -create-sdcard-image.sh is provided in the Processor SDK to simplify this card -creation process. Here are the steps on how to use the script to create a custom -WIC image to place on an SD card. - -1. Install the AM64x Processor SDK on a Linux machine at . - -| - -2. Create a rootfs folder. create-sdcard-image.sh will use the rootfs folder - to populate the rootfs partition on the WIC image. - - Let's use the prebuilt rootfs as an example. It is located at - /filesystem/tisdk-default-image-am64xx-evm.tar.xz - - :: - - cd /filesystem - mkdir rootfs - - Un-tar the tisdk-default-image-am64xx-evm.tar.xz to - /filesystem/rootfs - - :: - - tar -xvf tisdk-default-image-am64xx-evm.tar.xz -C rootfs - -| - -3. Create a boot folder. create-sdcard-image.sh will use the boot folder to - populate the boot partition on the WIC image. - - Let's use the prebuilt images as an example. They are located at - /board-support/prebuilt-images - - :: - - mkdir boot - cp ../board-support/prebuilt-images/tispl.bin boot - cp ../board-support/prebuilt-images/tiboot3.bin boot - cp ../board-support/prebuilt-images/u-boot-am64xx-evm.img boot/u-boot.img - cp ../board-support/prebuilt-images/uEnv.txt boot - -| - -4. Use create-sdcard-image.sh to generate a custom WIC file. - - You can give the WIC image any name. In this example, we will name it - custom-image.wic. - - :: - - ../bin/scripts/create-sdcard-image.sh boot rootfs custom-image.wic - -| - -5. If you want make changes to the custom WIC image, simply make changes to the - boot and/or rootfs folders. Then use step 4 to re-create the WIC image. - -| - -6. See section :ref:`am64x-create-sd-card-with-default-images` for steps to - write your custom WIC image to an SD card. - -| - - diff --git a/source/devices/AM64X/linux/Release_Specific_Supported_Platforms_and_Versions.rst b/source/devices/AM64X/linux/Release_Specific_Supported_Platforms_and_Versions.rst deleted file mode 100644 index 8378e456e..000000000 --- a/source/devices/AM64X/linux/Release_Specific_Supported_Platforms_and_Versions.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. _release-specific-supported-platforms-and-versions: - -################################ -Supported Platforms and Versions -################################ - -.. rubric:: Supported Host Operating Systems - -The following operating systems have been validated to work with our -Linux SDK. - -+---------------------------+----------------------------------+ -| **Operating System** | **Version** | -+---------------------------+----------------------------------+ -| Ubuntu | |__LINUX_UBUNTU_VERSION_LONG__| | -+---------------------------+----------------------------------+ - -.. rubric:: Supported Platforms and EVMs - -The following platforms and EVMs are supported with Processor SDK. - -+--------------+-------------+--------------------------------------------------------------------+-------------------+------------------+ -| **Platform** | **EVM** | **Document** | **Processor SDK | **Processor SDK | -| | | | Linux** | RT Linux** | -+--------------+-------------+--------------------------------------------------------------------+-------------------+------------------+ -| AM64x | SK-AM64B | `User's Guide `__ | Y | Y | -+--------------+-------------+--------------------------------------------------------------------+-------------------+------------------+ -| AM64x | TMDS64EVM | `User's Guide `__ | Y | Y | -+--------------+-------------+--------------------------------------------------------------------+-------------------+------------------+ - diff --git a/source/devices/AM64X/linux/Release_Specific_Workarounds.rst b/source/devices/AM64X/linux/Release_Specific_Workarounds.rst deleted file mode 100644 index 39f4b8f99..000000000 --- a/source/devices/AM64X/linux/Release_Specific_Workarounds.rst +++ /dev/null @@ -1,37 +0,0 @@ -.. _workarounds: - -Workarounds -=========== - -USB Device Firmware Upgrade (DFU) Boot Fix ------------------------------------------- - -In 08.06 release, USB Device Firmware Upgrade (DFU) boot failure was observed as required ENV variable definitions for USB DFU boot from U-Boot SPL were not available, leaving R5 U-Boot SPL unable to continue with the DFU boot process. - -Following steps can be used to fix the issue:- - -1. Cherry-pick this commit inside U-Boot directory in (/board-support/) included in SDK https://git.ti.com/cgit/ti-u-boot/ti-u-boot/commit/?h=ti-u-boot-2021.01-next&id=28c75c2713915a122e5d39311ae7416ca35c0532 - -:: - - git fetch - git cherry-pick 28c75c2713 - -2. Build the bootloader images using default “am62x_evm_r5_usbdfu_defconfig” and “am62x_evm_a53_defconfig” configs files. Following steps can be followed to build bootloader images using top-level makefile in SDK. - -- Following change is needed in Rules.make - -:: - - UBOOT_MACHINE_R5=am62x_evm_r5_usbdfu_defconfig - -- Build the bootloader images using top-level makefile by running following commands in top level of SDK. - -:: - - make u-boot - make sysfw-image - -- To build bootloader binaries without using top-level makefile please refer to :ref:`Build-U-Boot-label`. - -3. USB Device Firmware Upgrade (DFU) Boot now can be used. For steps refer to :ref:`usb-device-firmware-upgrade-label`. diff --git a/source/edgeai/dmpac_demos.rst b/source/edgeai/dmpac_demos.rst deleted file mode 100644 index bf639422a..000000000 --- a/source/edgeai/dmpac_demos.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. _pub_dmpac_demos: - -================================= -Depth and Motion Perception Demos -================================= - -The |__PART_FAMILY_NAME__| EVM hosts **Depth and Motion** hardware accelerator pack called **DMPAC** -which consists of **Dense Optical Flow** accelerator which can provide dense flow vector -map for upto 2MP resolution at 60fps and **Stereo Disparity Engine** which can provide -disparity values for upto 2MP resolution at 30fps. Below are example GStreamer -pipelines demonstrating the usage of both. - -.. _pub_dmpac_dof_demo: - -Dense Optical Flow -================== - -The below pipeline shows basic functionality of the ``tiovxdof`` GStreamer element -which uses TI's Dense Optical Flow (DOF) accelerator on the SOC - -.. code-block:: bash - - gst-launch-1.0 \ - v4l2src io-mode=2 device=/dev/video2 ! image/jpeg, width=1280, height=720 ! \ - jpegdec ! tiovxdlcolorconvert ! video/x-raw, format=NV12 ! \ - tiovxpyramid ! application/x-pyramid-tiovx, format=GRAY8 ! tee name=split ! \ - queue ! tiovxdof name=dof ! tiovxdofviz ! \ - kmssink sync=false driver-name=tidss \ - split. ! tiovxdelay delay-size=1 ! dof.delayed_sink - -.. figure:: ../images/edgeai/dof_dataflow.png - :scale: 60 - :align: center - - GStreamer based data-flow pipeline for DOF demo - -.. _pub_dmpac_sde_demo: - -Stereo Disparity -================ - -The below pipeline shows basic functionality of the ``tiovxdof`` GStreamer element -which uses TI's Stereo Disparity Engine (SDE) accelerator on the SOC - -.. code-block:: bash - - gst-launch-1.0 \ - filesrc location=$EDGEAI_DATA_PATH/videos/left-1280x720.avi ! \ - avidemux ! h264parse ! v4l2h264dec ! \ - video/x-raw, format=NV12 ! queue ! sde.left_sink \ - filesrc location=$EDGEAI_DATA_PATH/videos/right-1280x720.avi ! \ - avidemux ! h264parse ! v4l2h264dec ! \ - video/x-raw, format=NV12 ! queue ! sde.right_sink \ - tiovxsde name=sde ! tiovxsdeviz ! kmssink sync=false driver-name=tidss - -.. figure:: ../images/edgeai/sde_dataflow.png - :scale: 60 - :align: center - - GStreamer based data-flow pipeline for SDE demo diff --git a/source/images/7zip_image_file_extracted.png b/source/images/7zip_image_file_extracted.png deleted file mode 100644 index bd694c3e6..000000000 Binary files a/source/images/7zip_image_file_extracted.png and /dev/null differ diff --git a/source/images/7zip_to_extract_image.png b/source/images/7zip_to_extract_image.png deleted file mode 100644 index 8137c997a..000000000 Binary files a/source/images/7zip_to_extract_image.png and /dev/null differ diff --git a/source/images/Am65x_GP_EVM.jpg b/source/images/Am65x_GP_EVM.jpg deleted file mode 100644 index 864ba635a..000000000 Binary files a/source/images/Am65x_GP_EVM.jpg and /dev/null differ diff --git a/source/images/Am65x_idk.jpg b/source/images/Am65x_idk.jpg deleted file mode 100644 index cc4ef664b..000000000 Binary files a/source/images/Am65x_idk.jpg and /dev/null differ diff --git a/source/images/BMCUARTPort.png b/source/images/BMCUARTPort.png deleted file mode 100644 index 15435ac0a..000000000 Binary files a/source/images/BMCUARTPort.png and /dev/null differ diff --git a/source/images/Boot_Switch_NoBoot.jpg b/source/images/Boot_Switch_NoBoot.jpg deleted file mode 100644 index f2babdcd7..000000000 Binary files a/source/images/Boot_Switch_NoBoot.jpg and /dev/null differ diff --git a/source/images/Boot_switch_SDboot.jpg b/source/images/Boot_switch_SDboot.jpg deleted file mode 100644 index 0d4a028b9..000000000 Binary files a/source/images/Boot_switch_SDboot.jpg and /dev/null differ diff --git a/source/images/CCS_target_configuration.png b/source/images/CCS_target_configuration.png deleted file mode 100644 index 0439e00ec..000000000 Binary files a/source/images/CCS_target_configuration.png and /dev/null differ diff --git a/source/images/Check_for_Updates.png b/source/images/Check_for_Updates.png deleted file mode 100644 index bda5c023f..000000000 Binary files a/source/images/Check_for_Updates.png and /dev/null differ diff --git a/source/images/Evmk2e-image001.jpg b/source/images/Evmk2e-image001.jpg deleted file mode 100644 index e34240aa2..000000000 Binary files a/source/images/Evmk2e-image001.jpg and /dev/null differ diff --git a/source/images/Evmk2e-image002.jpg b/source/images/Evmk2e-image002.jpg deleted file mode 100644 index fcd4fbfc5..000000000 Binary files a/source/images/Evmk2e-image002.jpg and /dev/null differ diff --git a/source/images/Evmk2e-image003.jpg b/source/images/Evmk2e-image003.jpg deleted file mode 100644 index 56870baae..000000000 Binary files a/source/images/Evmk2e-image003.jpg and /dev/null differ diff --git a/source/images/Evmk2e-image005.jpg b/source/images/Evmk2e-image005.jpg deleted file mode 100644 index f704b4c2f..000000000 Binary files a/source/images/Evmk2e-image005.jpg and /dev/null differ diff --git a/source/images/Evmk2e-image006.jpg b/source/images/Evmk2e-image006.jpg deleted file mode 100644 index 5a57c8390..000000000 Binary files a/source/images/Evmk2e-image006.jpg and /dev/null differ diff --git a/source/images/Evmk2e-image007.jpg b/source/images/Evmk2e-image007.jpg deleted file mode 100644 index 9ec3b134c..000000000 Binary files a/source/images/Evmk2e-image007.jpg and /dev/null differ diff --git a/source/images/GST-dsp66-src.png b/source/images/GST-dsp66-src.png deleted file mode 100644 index e1ff488a1..000000000 Binary files a/source/images/GST-dsp66-src.png and /dev/null differ diff --git a/source/images/Gst_capture_encode_network.png b/source/images/Gst_capture_encode_network.png deleted file mode 100644 index f963f1f39..000000000 Binary files a/source/images/Gst_capture_encode_network.png and /dev/null differ diff --git a/source/images/ICE_K2G_connect.png b/source/images/ICE_K2G_connect.png deleted file mode 100644 index f47767579..000000000 Binary files a/source/images/ICE_K2G_connect.png and /dev/null differ diff --git a/source/images/K2GICE_Boot_MODE.png b/source/images/K2GICE_Boot_MODE.png deleted file mode 100644 index e0c37774f..000000000 Binary files a/source/images/K2GICE_Boot_MODE.png and /dev/null differ diff --git a/source/images/K2G_GPEVM_Target_configuration.jpg b/source/images/K2G_GPEVM_Target_configuration.jpg deleted file mode 100644 index de4451df8..000000000 Binary files a/source/images/K2G_GPEVM_Target_configuration.jpg and /dev/null differ diff --git a/source/images/K2G_GPEVM_Target_configuration_alternate.jpg b/source/images/K2G_GPEVM_Target_configuration_alternate.jpg deleted file mode 100644 index 51fda33da..000000000 Binary files a/source/images/K2G_GPEVM_Target_configuration_alternate.jpg and /dev/null differ diff --git a/source/images/K2G_ICE_BOOTSW.png b/source/images/K2G_ICE_BOOTSW.png deleted file mode 100644 index 01f6c94d1..000000000 Binary files a/source/images/K2G_ICE_BOOTSW.png and /dev/null differ diff --git a/source/images/K2G_ICE_target_configuration.png b/source/images/K2G_ICE_target_configuration.png deleted file mode 100644 index d42a5b1c5..000000000 Binary files a/source/images/K2G_ICE_target_configuration.png and /dev/null differ diff --git a/source/images/K2G_Launch_targetConfig.png b/source/images/K2G_Launch_targetConfig.png deleted file mode 100644 index 7e165a147..000000000 Binary files a/source/images/K2G_Launch_targetConfig.png and /dev/null differ diff --git a/source/images/KeystoneII_device_support_package.png b/source/images/KeystoneII_device_support_package.png deleted file mode 100644 index 5dee75078..000000000 Binary files a/source/images/KeystoneII_device_support_package.png and /dev/null differ diff --git a/source/images/LMflashProg_program.png b/source/images/LMflashProg_program.png deleted file mode 100644 index bf466edd1..000000000 Binary files a/source/images/LMflashProg_program.png and /dev/null differ diff --git a/source/images/OpenVx-Example-Block-Diagram.png b/source/images/OpenVx-Example-Block-Diagram.png deleted file mode 100644 index 8809d6be4..000000000 Binary files a/source/images/OpenVx-Example-Block-Diagram.png and /dev/null differ diff --git a/source/images/OpenVx-Example-Screen-Shot.png b/source/images/OpenVx-Example-Screen-Shot.png deleted file mode 100644 index 4745af4e6..000000000 Binary files a/source/images/OpenVx-Example-Screen-Shot.png and /dev/null differ diff --git a/source/images/R64_to_R67_HWMod.png b/source/images/R64_to_R67_HWMod.png deleted file mode 100644 index d45192156..000000000 Binary files a/source/images/R64_to_R67_HWMod.png and /dev/null differ diff --git a/source/images/TI_K2GEVM.png b/source/images/TI_K2GEVM.png deleted file mode 100644 index 8132f9f5b..000000000 Binary files a/source/images/TI_K2GEVM.png and /dev/null differ diff --git a/source/images/TI_K2G_ICE_EVM_BOTTOM.png b/source/images/TI_K2G_ICE_EVM_BOTTOM.png deleted file mode 100644 index 560b84cc4..000000000 Binary files a/source/images/TI_K2G_ICE_EVM_BOTTOM.png and /dev/null differ diff --git a/source/images/TI_K2G_ICE_EVM_TOP.png b/source/images/TI_K2G_ICE_EVM_TOP.png deleted file mode 100644 index 93c3ca49c..000000000 Binary files a/source/images/TI_K2G_ICE_EVM_TOP.png and /dev/null differ diff --git a/source/images/Tiovx.PNG b/source/images/Tiovx.PNG deleted file mode 100644 index 59facc76f..000000000 Binary files a/source/images/Tiovx.PNG and /dev/null differ diff --git a/source/images/Ubuntu_Setup_Ethernet_Connection_Choose_Interface.png b/source/images/Ubuntu_Setup_Ethernet_Connection_Choose_Interface.png deleted file mode 100644 index d09e00a6e..000000000 Binary files a/source/images/Ubuntu_Setup_Ethernet_Connection_Choose_Interface.png and /dev/null differ diff --git a/source/images/Ubuntu_Setup_Ethernet_Connection_Manual_Address.png b/source/images/Ubuntu_Setup_Ethernet_Connection_Manual_Address.png deleted file mode 100644 index d3a04e2eb..000000000 Binary files a/source/images/Ubuntu_Setup_Ethernet_Connection_Manual_Address.png and /dev/null differ diff --git a/source/images/Win32_Disk_Imager_Complete.png b/source/images/Win32_Disk_Imager_Complete.png deleted file mode 100644 index 4a6df7328..000000000 Binary files a/source/images/Win32_Disk_Imager_Complete.png and /dev/null differ diff --git a/source/images/Win32_Disk_Imager_Extracting.png b/source/images/Win32_Disk_Imager_Extracting.png deleted file mode 100644 index e14b678e7..000000000 Binary files a/source/images/Win32_Disk_Imager_Extracting.png and /dev/null differ diff --git a/source/images/Win32_Disk_Imager_exit.png b/source/images/Win32_Disk_Imager_exit.png deleted file mode 100644 index 357fa98ed..000000000 Binary files a/source/images/Win32_Disk_Imager_exit.png and /dev/null differ diff --git a/source/images/Win32_Disk_Imager_open.png b/source/images/Win32_Disk_Imager_open.png deleted file mode 100644 index 18820c290..000000000 Binary files a/source/images/Win32_Disk_Imager_open.png and /dev/null differ diff --git a/source/images/Win32_Disk_Imager_select_disk.png b/source/images/Win32_Disk_Imager_select_disk.png deleted file mode 100644 index e81a055a3..000000000 Binary files a/source/images/Win32_Disk_Imager_select_disk.png and /dev/null differ diff --git a/source/images/Win32_Disk_Imager_write_disk.png b/source/images/Win32_Disk_Imager_write_disk.png deleted file mode 100644 index b7a678530..000000000 Binary files a/source/images/Win32_Disk_Imager_write_disk.png and /dev/null differ diff --git a/source/images/Win32_Disk_Imager_writing_to_disk.png b/source/images/Win32_Disk_Imager_writing_to_disk.png deleted file mode 100644 index 464faaab1..000000000 Binary files a/source/images/Win32_Disk_Imager_writing_to_disk.png and /dev/null differ diff --git a/source/images/Win32_disk_imager_Confirm_overwrite.png b/source/images/Win32_disk_imager_Confirm_overwrite.png deleted file mode 100644 index ac262df09..000000000 Binary files a/source/images/Win32_disk_imager_Confirm_overwrite.png and /dev/null differ diff --git a/source/images/Win32_disk_imager_select_a_disk_image.png b/source/images/Win32_disk_imager_select_a_disk_image.png deleted file mode 100644 index 2bc1e1a02..000000000 Binary files a/source/images/Win32_disk_imager_select_a_disk_image.png and /dev/null differ diff --git a/source/images/Win7_device_can_be_safely_removed.png b/source/images/Win7_device_can_be_safely_removed.png deleted file mode 100644 index 5c70d2146..000000000 Binary files a/source/images/Win7_device_can_be_safely_removed.png and /dev/null differ diff --git a/source/images/Win7_eject_disk.png b/source/images/Win7_eject_disk.png deleted file mode 100644 index 615415dbb..000000000 Binary files a/source/images/Win7_eject_disk.png and /dev/null differ diff --git a/source/images/Win7_eject_disk_detail.png b/source/images/Win7_eject_disk_detail.png deleted file mode 100644 index 63de8ecaf..000000000 Binary files a/source/images/Win7_eject_disk_detail.png and /dev/null differ diff --git a/source/images/XDS200_connect.png b/source/images/XDS200_connect.png deleted file mode 100644 index 1aac4ac64..000000000 Binary files a/source/images/XDS200_connect.png and /dev/null differ diff --git a/source/images/am572x-evm.png b/source/images/am572x-evm.png deleted file mode 100644 index 3ade64022..000000000 Binary files a/source/images/am572x-evm.png and /dev/null differ diff --git a/source/images/edgeai/dof_dataflow.png b/source/images/edgeai/dof_dataflow.png deleted file mode 100644 index 37b38c880..000000000 Binary files a/source/images/edgeai/dof_dataflow.png and /dev/null differ diff --git a/source/images/edgeai/sde_dataflow.png b/source/images/edgeai/sde_dataflow.png deleted file mode 100644 index edc3993f2..000000000 Binary files a/source/images/edgeai/sde_dataflow.png and /dev/null differ diff --git a/source/images/lcdk_c6748_gel.png b/source/images/lcdk_c6748_gel.png deleted file mode 100644 index b96b0b5e3..000000000 Binary files a/source/images/lcdk_c6748_gel.png and /dev/null differ diff --git a/source/images/lcdk_omapl138_gel.png b/source/images/lcdk_omapl138_gel.png deleted file mode 100644 index a0a76d1e4..000000000 Binary files a/source/images/lcdk_omapl138_gel.png and /dev/null differ diff --git a/source/images/lcdk_targetConfig.png b/source/images/lcdk_targetConfig.png deleted file mode 100644 index aefc5e809..000000000 Binary files a/source/images/lcdk_targetConfig.png and /dev/null differ diff --git a/source/images/radar-evm-1443.png b/source/images/radar-evm-1443.png deleted file mode 100644 index c6647bef0..000000000 Binary files a/source/images/radar-evm-1443.png and /dev/null differ diff --git a/source/images/ros_radar_1.png b/source/images/ros_radar_1.png deleted file mode 100644 index 4c2e28952..000000000 Binary files a/source/images/ros_radar_1.png and /dev/null differ diff --git a/source/images/ros_radar_2.jpg b/source/images/ros_radar_2.jpg deleted file mode 100644 index 569bd8925..000000000 Binary files a/source/images/ros_radar_2.jpg and /dev/null differ diff --git a/source/images/ros_radar_rviz.png b/source/images/ros_radar_rviz.png deleted file mode 100644 index eff20c72d..000000000 Binary files a/source/images/ros_radar_rviz.png and /dev/null differ diff --git a/source/images/watchdog_demo.png b/source/images/watchdog_demo.png deleted file mode 100644 index 754e75875..000000000 Binary files a/source/images/watchdog_demo.png and /dev/null differ diff --git a/source/linux/Examples_and_Demos/Application_Demos/Barcode.rst b/source/linux/Examples_and_Demos/Application_Demos/Barcode.rst deleted file mode 100644 index da961dec7..000000000 --- a/source/linux/Examples_and_Demos/Application_Demos/Barcode.rst +++ /dev/null @@ -1,185 +0,0 @@ -.. http://processors.wiki.ti.com/index.php/Processor_SDK_Barcode_Reader - -Barcode Reader -============== - -.. rubric:: Introduction - :name: introduction-barcode - -Detecting 1D and 2D barcodes on an image, and decoding those barcodes -are important use cases for the Machine-Vision. Processor SDK Linux has -integrated the following open source components, and examples to -demonstrate both of these features. - -- Barcode detection: OpenCV -- Barcode Decoder/Reader: Zbar Library - -OpenCV includes python wrapper to allow quick and easy prototyping. It -also includes support for OpenCL offload on devices with C66 DSP core -(currently OpenCV T-API cannot be used with python wrapper). - -| - -.. rubric:: Zbar Barcode Decoder/Reader - :name: zbar-barcode-decoderreader - -`Recipes for zbar barcode -reader `__ -have been added to build the zbar library and test binary. Zbar is -standalone library, which does not depend on OpenCV. Current release is -not accelerated via OpenCL dispatch (obvious candidates are -zbar\_scan\_y() and calc\_tresh() functions consuming >50% of CPU -resources). - -Command to run zbar test binary: - -:: - - barcode_zbar [barcode_image_name] - -| - -.. rubric:: Barcode Region Of Interest (ROI) Detection with OpenCV and - Python - :name: barcode-region-of-interest-roi-detection-with-opencv-and-python - -`Detecting Barcodes in Images using Python and -OpenCV `__ -provides python scripts which run with OpenCV 2.4.x. For use with -Process SDK Linux which has OpenCV 3.1, modifications have been made to -the original python scripts so that they can run with OpenCV 3.1. Below -please find the modified python scripts detect\_barcode.py. - -:: - - # import the necessary packages - import numpy as np - import argparse - import cv2 - - # construct the argument parse and parse the arguments - ap = argparse.ArgumentParser() - ap.add_argument("-i", "--image", required = True, help = "path to the image file") - args = vars(ap.parse_args()) - - # load the image and convert it to grayscale - image = cv2.imread(args["image"]) - gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) - - # compute the Scharr gradient magnitude representation of the images - # in both the x and y direction - gradX = cv2.Sobel(gray, ddepth = cv2.CV_32F, dx = 1, dy = 0, ksize = -1) - gradY = cv2.Sobel(gray, ddepth = cv2.CV_32F, dx = 0, dy = 1, ksize = -1) - - # subtract the y-gradient from the x-gradient - gradient = cv2.subtract(gradX, gradY) - gradient = cv2.convertScaleAbs(gradient) - - # blur and threshold the image - blurred = cv2.blur(gradient, (9, 9)) - (_, thresh) = cv2.threshold(blurred, 225, 255, cv2.THRESH_BINARY) - - # construct a closing kernel and apply it to the thresholded image - kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (21, 7)) - closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel) - - # perform a series of erosions and dilations - closed = cv2.erode(closed, None, iterations = 4) - closed = cv2.dilate(closed, None, iterations = 4) - - # find the contours in the thresholded image, then sort the contours - # by their area, keeping only the largest one - (_, cnts, _) = cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) - c = sorted(cnts, key = cv2.contourArea, reverse = True)[0] - - # compute the rotated bounding box of the largest contour - rect = cv2.minAreaRect(c) - box = np.int0(cv2.boxPoints(rect)) - - # draw a bounding box arounded the detected barcode and display the - # image - cv2.drawContours(image, [box], -1, (0, 255, 0), 3) - cv2.imshow("Image", image) - cv2.waitKey(0) - -| -| Command to run detect\_barcode.py. Before running the python scripts, - ensure that matrxi GUI has been stopped and weston is up running. With - successful detection, the barcode image is displayed with a green - bounding box on the barcode detected. - -:: - - python detect_barcode.py --image [barcode_image_name] - -| - -.. rubric:: Barcode Region Of Interest (ROI) Detection with OpenCV and - CPP implementation - :name: barcode-region-of-interest-roi-detection-with-opencv-and-cpp-implementation - -Current version of OpenCV (3.1) Python wrapper does not support T-API -which is needed for OpenCL dispatch. So Processor SDK Linux is including -the same algorithm implemented in CPP -(http://git.ti.com/apps/barcode-roi-detection), which can be executed on -ARM platform only, or with DSP acceleration. CPP example includes more -options for various types of input and output, and run-time control of -OpenCL dispatch. - -This example allows multiple command line options: - -- Using static image (JPG or PNG) as input -- Live display or static image output (JPG or PNG) -- Use OpenCL offload or not - -Target filesystem includes detect\_barcode in "/usr/bin", and test -vector in "/usr/share/ti/image" folder. Again, after successful -detection image with barcode in green bounding box is displayed or -written to output file. Below are various use cases of detect\_barcode. - -- Static image input, no opencl dispatch, live display: - *detect\_barcode sample\_barcode.jpg 0 1* -- Static image input, opencl ON, live display: *detect\_barcode - sample\_barcode.jpg 1 1* -- Static image input, opencl ON, file output: *detect\_barcode - sample\_barcode.jpg 1 image\_det.png* - -Majority of workload is in following lines: - -:: - - ocl::setUseOpenCL(ocl_acc_flag); /* Turn ON or OFF OpenCL dispatch */ - - cvtColor(im_rgb,im_gray,CV_RGB2GRAY); - im_gray.copyTo(img_gray); - - Sobel( img_gray, gradX, CV_16S, 1, 0, -1, 1, 0, BORDER_DEFAULT ); /* Input is 8-bit unsigned, output is 16-bit signed */ - Sobel( img_gray, gradY, CV_16S, 0, 1, -1, 1, 0, BORDER_DEFAULT ); /* Input is 8-bit unsigned, output is 16-bit signed */ - subtract(gradX, gradY, gradient); - convertScaleAbs(gradient, abs_gradient); - - // blur and threshold the image - //GaussianBlur( abs_gradient, blurredImg, Size(7,7), 0, 0, BORDER_DEFAULT ); - GaussianBlur( abs_gradient, blurredImg, Size(3,3), 0, 0, BORDER_DEFAULT ); /* 3x3 kernel */ - threshold(blurredImg, threshImg, 225, 255, THRESH_BINARY); - - Mat elementKernel = getStructuringElement( MORPH_RECT, Size( 2*10+1, 2*3+1 ), Point(10, 3)); - ocl::setUseOpenCL(false); /* Turn OFF OpenCL dispatch */ - morphologyEx( threshImg, closedImg, MORPH_CLOSE, elementKernel ); - - ocl::setUseOpenCL(ocl_acc_flag); /* Turn ON or OFF OpenCL dispatch */ - erode(closedImg, img_final, UMat(), Point(-1, -1), 4); /* erode, 4 iterations */ - dilate(img_final, img_ocl, UMat(), Point(-1, -1), 4); /* dilate, 4 iteration */ - ocl::setUseOpenCL(false); /* Turn OFF OpenCL dispatch */ - -Not all OpenCV kernels can be dispatched to DSP via OpenCL. Please refer -to -`OpenCV#OpenCL\_C\_C66\_DSP\_kernels `__ -for the list of kernels which are currently DSP accelerated. - -In order to use OpenCL dispatch, it is necessary to: - -- Enable OpenCL use (by setting environment variables, and invoking - ocl::setUseOpenCL(ocl\_acc\_flag)) -- Use T-API: e.g. replace Mat types with UMat types - diff --git a/source/linux/Examples_and_Demos/Application_Demos/Optical_Flow_with_OpenVX.rst b/source/linux/Examples_and_Demos/Application_Demos/Optical_Flow_with_OpenVX.rst deleted file mode 100644 index 3ede0465e..000000000 --- a/source/linux/Examples_and_Demos/Application_Demos/Optical_Flow_with_OpenVX.rst +++ /dev/null @@ -1,123 +0,0 @@ -Optical Flow with OpenVX -========================= - -OpenVX Example Block Diagram -------------------------------- - -OpenVx tutorial example demontrates the optical flow based on -image pyramids and Harris corner tracking. It builds upon TIOVX, and utilizes OpenCV for reading -the input (from file or camera) and rending the output for display. Input frame from OpenCV -invokes OpenVX graph, and the processing is done once per input frame. OpenVX defines the graph -topology and all configuration details. All resources are allocated and initialzied before processing. - - -.. Image:: /images/OpenVx-Example-Block-Diagram.png - -| - - -Run OpenVx Tutorial Example ----------------------------- - -The binary for OpenVX tutorial example is located at /usr/bin/tiovx-opticalflow. It is a statically linked Linux application running on Arm. - - -Before running the tutorial example, download `the test clip `__ -and copy it to file system (e.g. ~/tiovx). Then, execute the commands below to load OpenVx firmware and run the optical flow example. - -:: - - reload-dsp-fw.sh tiovx # load openvx firmware and restart dsps - tiovx-opticalflow /home/root/tiovx/PETS09-S1-L1-View001.avi # Run tutorial example - - -Screen capture after running the optical flow example: - - -.. Image:: /images/OpenVx-Example-Screen-Shot.png - - -Logs: - -:: - - root@am57xx-evm:~# tiovx-opticalflow /home/root/PETS09-S1-L1-View001.avi - VX_ZONE_INIT:Enabled - VX_ZONE_ERROR:Enabled - VX_ZONE_WARNING:Enabled - VSPRINTF_DBG:SYSTEM NOTIFY_INIT: starting - VSPRINTF_DBG: SYSTEM: IPC: Notify init in progress !!! - - VSPRINTF_DBG:[0] DUMP ALL PROCS[3]=DSP1 - VSPRINTF_DBG:[1] DUMP ALL PROCS[4]=DSP2 - VSPRINTF_DBG:Next rx queue to open:QUE_RX_HOST - - VSPRINTF_DBG:Just created MsgQue - VSPRINTF_DBG:Created RX task - VSPRINTF_DBG:Next tx queue to open:QUE_RX_DSP1, procId=3 - VSPRINTF_DBG:Next tx queue to open:QUE_RX_DSP2, procId=4 - VSPRINTF_DBG:Dump all TX queues: procId=3 name=QUE_RX_DSP1 queId=262272, msgSize=68, heapId=0 - VSPRINTF_DBG:Dump all TX queues: procId=4 name=QUE_RX_DSP2 queId=196736, msgSize=68, heapId=0 - VSPRINTF_DBG:SYSTEM: IPC: SentCfgMsg, procId=3 queuId=262272 - VSPRINTF_DBG:SYSTEM: IPC: SentCfgMsg, procId=4 queuId=196736 - VSPRINTF_DBG: SYSTEM: IPC: Notify init DONE !!! - - VSPRINTF_DBG:>>>> ipcNotifyInit returned: 0 - - VSPRINTF_DBG:SYSTEM NOTIFY_INIT: done - OK: FILE /home/root/PETS09-S1-L1-View001.avi 768x480 - init done - Using Wayland-EGL - wlpvr: PVR Services Initialised - LOG: [ status = -1 ] Hello there! - - -Run the optical flow example with camera input: - - -:: - - reload-dsp-fw.sh tiovx # load openvx firmware and restart dsps - tiovx-opticalflow # Run tutorial example with camera input - -Logs: - -:: - - root@am57xx-evm:~# tiovx-opticalflow - VX_ZONE_INIT:Enabled - VX_ZONE_ERROR:Enabled - VX_ZONE_WARNING:Enabled - VSPRINTF_DBG:SYSTEM NOTIFY_INIT: starting - VSPRINTF_DBG: SYSTEM: IPC: Notify init in progress !!! - - VSPRINTF_DBG:[0] DUMP ALL PROCS[3]=DSP1 - VSPRINTF_DBG:[1] DUMP ALL PROCS[4]=DSP2 - VSPRINTF_DBG:Next rx queue to open:QUE_RX_HOST - - VSPRINTF_DBG:Just created MsgQue - VSPRINTF_DBG:Created RX task - VSPRINTF_DBG:Next tx queue to open:QUE_RX_DSP1, procId=3 - VSPRINTF_DBG:Next tx queue to open:QUE_RX_DSP2, procId=4 - VSPRINTF_DBG:Dump all TX queues: procId=3 name=QUE_RX_DSP1 queId=262272, msgSize=68, heapId=0 - VSPRINTF_DBG:Dump all TX queues: procId=4 name=QUE_RX_DSP2 queId=196736, msgSize=68, heapId=0 - VSPRINTF_DBG:SYSTEM: IPC: SentCfgMsg, procId=3 queuId=262272 - VSPRINTF_DBG:SYSTEM: IPC: SentCfgMsg, procId=4 queuId=196736 - VSPRINTF_DBG: SYSTEM: IPC: Notify init DONE !!! - - VSPRINTF_DBG:>>>> ipcNotifyInit returned: 0 - - VSPRINTF_DBG:SYSTEM NOTIFY_INIT: done - OK: CAMERA#1 640x480 - init done - Using Wayland-EGL - wlpvr: PVR Services Initialised - LOG: [ status = -1 ] Hello there! - - -After finishing running the OpenVX tutorial example, switch the firmware back to the default for OpenCL: - -:: - - reload-dsp-fw.sh opencl # load opencl firmware and restart dsps - diff --git a/source/linux/Examples_and_Demos/Application_Demos/ROS_Radar.rst b/source/linux/Examples_and_Demos/Application_Demos/ROS_Radar.rst deleted file mode 100644 index f71c77bef..000000000 --- a/source/linux/Examples_and_Demos/Application_Demos/ROS_Radar.rst +++ /dev/null @@ -1,440 +0,0 @@ -.. http://processors.wiki.ti.com/index.php/ROS_Radar_demo_user_guide.html - -ROS and Radar -============= - -Introduction ------------- - -The ROS is meta-ros running on top of Linux. It is a collection of software -libraries and packages to help you write robotic applications. Both mobile -platforms and static manipulators can leverage wide colelction of open-source -drivers and tools. ROS framework is mainly based on publisher-subscriber -model, and in some cases server-client mode. - -It is frequently the case that ROS based applications require sensors enabling -interaction with the environment. Various types of sensors can be used: -cameras, ultrasound, time-of-flight RGBD cameras, lidars, ... - -In case of 3D sensors, typical output is point cloud. Consumer of this information -(e.g. for navigation) is decoupled from point cloud producer since format is well -defined. Due to modular nature of ROS it is easy to replace one sensor with the -other as long as format of information (in this case point cloud) is the same. - -An important type of 3D sensor, especially suited for outdoor use cases is -mmWave radar (77-81GHz). For this demo IWR/AWR-1443 or 1642 EVM is needed. -It is connected to Sitara device over USB connection creating virtual UART. - -Optionally to make this platform movable, Kobuki mobile base can be added. -Sitara EVM and Radar EVM would be attached to Kobuki, and Sitara EVM running ROS -would control Kobuki movement via USB connection. Please note that mobile base -is not essentail for verification of ROS on Sitara plus Radar EVM operation. - -It is desirable to have Ubuntu Linux box (typically Linux PC desktop or laptop) with Ubuntu 14.04LTS -and ROS indigo installed (please note that ROS Indigo is natively supported in Ubuntu 14.04). - - -HW Setup --------- - -* `Sitara device, e.g. AM5728 GP EVM `__ - -.. Image:: /images//am572x-evm.png - -* `IWR1443 Radar EVM `__ or - `IWR1642 Radar EVM `__ - -.. Image:: /images/radar-evm-1443.png - - -* USB to microUSB cable (connecting USB connector on Sitara side with microUSB connector on Radar EVM - -* [optional] Kobuki mobile base (as used by Turtlebot2), http://kobuki.yujinrobot.com/ - -.. figure:: /images/ros_radar_1.png - :width: 800px - :align: center - :height: 450px - :alt: alternate text - :figclass: align-center - - Kobuki mobile base with Sitara, Radar EVMs and monitoring Ubuntu Linux box (PC desktop or laptop) - -.. rubric:: Compatibility - :name: compatibility - -The ti_mmwave_rospkg ROS driver package on Sitara is tested with Processor Linux SDK -which includes meta-ros layer, indigo, (from https://github.com/bmwcarit/meta-ros). - -.. _ros-indigo-installation-ubuntu: - -For visualization we use ROS indigo distro on Ubuntu Linux box, preffered for compatibility reasons. Run the commands -below to install ROS indigo on Ubuntu Linux box. More details can be found from http://wiki.ros.org/indigo/Installation/Ubuntu. - -.. code-block:: console - - sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list' - wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add - - sudo apt-get update - sudo apt-get install ros-indigo-desktop-full - -For this demo, IWR EVM requires mmWave SDK firmware. If different firmware is used on Radar EVM, please follow -procedure using UniFlash tool to install `mmWave SDK `__. - -ROS configuration verification ------------------------------- - -ROS is part of SITARA 4.3 target filesystem, including mmWave ROS driver, so no additional -installation steps are required. ROS is installed in /opt/ros/indigo folder. -Only setting up configuration related to specific IP address -of target EVM, and Ubuntu Linux box host IP address is needed. -ROS is distributed meta-ros, with single ROS host acting as a broker for all internode transcations. -It runs roscore node and in this case roscore is executed on Sitara. Ubuntu Linux box will only run -ROS RViz node since RViz requires OpenGL desktop support (Sitara only supports OpenGL ES 2.0). - -.. note:: If visualization using RViz is not needed, Ubuntu Linux box is not necessary for this demo (except to start - multiple SSH terminals). - - -.. _reconfigure-plsdk-for-python3: - -.. topic:: Reconfigure SITARA for Python3 - - SITARA includes ROS packages from meta-ros layer, compiled with Python3 support (build/conf/local.conf : ROS_USE_PYTHON3 = "yes") - As SITARA default python setting is Python 2.7, filesystem update is required for ROS tests to run: - - -.. code-block:: console - - root@am57xx-evm:/usr/bin# ln -sf python3 python.python - root@am57xx-evm:/usr/bin# ln -sf python3-config python-config.python - -ROS between distributed nodes (Sitara and Ubuntu Linux box) --------------------------------------------------------------- - -.. rubric:: 1st SSH terminal, to Sitara EVM - :name: 1st-ssh-terminal-1-ros-demo1 - -.. _modify-setup-bash: - -Modify /opt/ros/indigo/setup.bash - -.. code-block:: console - - export ROS_ROOT=/opt/ros/indigo - export PATH=$PATH:/opt/ros/indigo/bin - export LD_LIBRARY_PATH=/opt/ros/indigo/lib - export PYTHONPATH=/usr/lib/python3.5/site-packages:/opt/ros/indigo/lib/python3.5/site-packages - export ROS_MASTER_URI=http://$SITARA_IP_ADDR:11311 - export ROS_IP=$SITARA_IP_ADDR - export CMAKE_PREFIX_PATH=/opt/ros/indigo - export ROS_PACKAGE_PATH=/opt/ros/indigo/share - touch /opt/ros/indigo/.catkin - -Then, execute - -.. code-block:: console - - source /opt/ros/indigo/setup.bash - roscore - -.. rubric:: 2nd SSH terminal, to Sitara EVM - :name: 2nd-ssh-terminal-1-demo1 - -.. code-block:: console - - source /opt/ros/indigo/setup.bash - rosrun roscpp_tutorials talker - -You will see log similar to following: - -.. code-block:: console - - ....[ INFO] [1516637959.231163685]: hello world 5295 - [ INFO] [1516637959.331163994]: hello world 5296 - [ INFO] [1516637959.431165605]: hello world 5297 - [ INFO] [1516637959.531161359]: hello world 5298 - [ INFO] [1516637959.631162807]: hello world 5299 - [ INFO] [1516637959.731166207]: hello world 5300 - [ INFO] [1516637959.831215641]: hello world 5301 - [ INFO] [1516637959.931165361]: hello world 5302 - [ INFO] [1516637960.031165019]: hello world 5303 - [ INFO] [1516637960.131164027]: hello world 5304 - -.. rubric:: 3rd SSH terminal, to Linux BOX (Optional) - :name: 3rd-ssh-terminal-1-demo1 - -.. code-block:: console - - export ROS_MASTER_URI=http://$SITARA_IP_ADDR:11311 - export ROS_IP=$LINUXBOX_IP_ADDR - source /opt/ros/indigo/setup.bash - rosrun roscpp_tutorials listener - -You will see log similar to following: - -.. code-block:: console - - ... - data: hello world 5338 - --- - data: hello world 5339 - --- - data: hello world 5340 - --- - data: hello world 5341 - --- - data: hello world 5342 - --- - data: hello world 5343 - --- - data: hello world 5344 - - -mmWave ROS node on Sitara and RViz on Ubuntu Linux box ------------------------------------------------------- - -.. rubric:: 1st SSH terminal, to Sitara EVM - :name: 1st-ssh-terminal-1-ros-demo2 - -Start roscore, only if it is not already started - - source /opt/ros/indigo/setup.bash - roscore - - -.. rubric:: 2nd SSH terminal, to Sitara EVM - :name: 2nd-ssh-terminal-1-ros-demo2 - -.. code-block:: console - - source /opt/ros/indigo/setup.bash - roslaunch ti_mmwave_rospkg rviz_1443_3d.launch - - Change "rviz_1443_3d.launch to "rviz_1642_2d.launch", based on Radar EVM type (1443 or 1642). - - -If Kobuki mobile is available, use the command below instead: - -.. code-block:: console - - roslaunch ti_mmwave_rospkg plsdk_rviz_1443_3d.launch - -Sample log is included: - -.. code-block:: console - - source /opt/ros/indigo/setup.bash - roslaunch ti_mmwave_rospkg plsdk_rviz_1443_3d.launch - - ... logging to /home/root/.ros/log/97dfe396-2711-11e8-bd4a-a0f6fdc25c34/roslaunch-am57xx-evm-7487.log - Checking log directory for disk usage. This may take awhile. - Press Ctrl-C to interrupt - Done checking log file disk usage. Usage is <1GB. - - started roslaunch server http://192.168.0.222:35481/ - - SUMMARY - ======== - - PARAMETERS - * /fake_localization/use_map_topic: True - * /mmWave_Manager/command_port: /dev/ttyACM0 - * /mmWave_Manager/command_rate: 115200 - * /mmWave_Manager/data_port: /dev/ttyACM1 - * /mmWave_Manager/data_rate: 921600 - * /mmWave_Manager/max_allowed_azimuth_angle_deg: 90 - * /mmWave_Manager/max_allowed_elevation_angle_deg: 90 - * /rosdistro: b'\n' - * /rosversion: b'1.11.21\n' - - NODES - / - fake_localization (fake_localization/fake_localization) - mmWaveQuickConfig (ti_mmwave_rospkg/mmWaveQuickConfig) - mmWave_Manager (ti_mmwave_rospkg/ti_mmwave_rospkg) - octomap_server (octomap_server/octomap_server_node) - static_tf_map_to_base_radar_link (tf/static_transform_publisher) - static_tf_map_to_odom (tf/static_transform_publisher) - - ROS_MASTER_URI=http://192.168.0.222:11311 - - core service [/rosout] found - process[mmWave_Manager-1]: started with pid [7505] - process[mmWaveQuickConfig-2]: started with pid [7506] - process[static_tf_map_to_odom-3]: started with pid [7507] - process[static_tf_map_to_base_radar_link-4]: started with pid [7508] - [ INFO] [1520981858.224293205]: mmWaveQuickConfig: Configuring mmWave device using config file: /opt/ros/indigo/share/ti_mmwave_rospkg/cfg/1443_3d.cfg - process[octomap_server-5]: started with pid [7509] - process[fake_localization-6]: started with pid [7517] - [ INFO] [1520981858.367713151]: waitForService: Service [/mmWaveCommSrv/mmWaveCLI] has not been advertised, waiting... - [ INFO] [1520981858.436009564]: Initializing nodelet with 2 worker threads. - [ INFO] [1520981858.480256524]: mmWaveCommSrv: command_port = /dev/ttyACM0 - [ INFO] [1520981858.480407967]: mmWaveCommSrv: command_rate = 115200 - [ INFO] [1520981858.497923263]: waitForService: Service [/mmWaveCommSrv/mmWaveCLI] is now available. - [ INFO] [1520981858.498667137]: mmWaveQuickConfig: Ignored blank or comment line: '% ***************************************************************' - [ INFO] [1520981858.499059815]: mmWaveQuickConfig: Ignored blank or comment line: '% Created for SDK ver:01.01' - [ INFO] [1520981858.499462577]: mmWaveQuickConfig: Ignored blank or comment line: '% Created using Visualizer ver:1.1.0.1' - [ INFO] [1520981858.505357942]: mmWaveQuickConfig: Ignored blank or comment line: '% Frequency:77' - [ INFO] [1520981858.506164932]: mmWaveQuickConfig: Ignored blank or comment line: '% Platform:xWR14xx' - [ INFO] [1520981858.506843089]: mmWaveQuickConfig: Ignored blank or comment line: '% Scene Classifier:best_range_res' - [ INFO] [1520981858.507514414]: mmWaveQuickConfig: Ignored blank or comment line: '% Azimuth Resolution(deg):15 + Elevation' - [ INFO] [1520981858.508289684]: mmWaveQuickConfig: Ignored blank or comment line: '% Range Resolution(m):0.044' - [ INFO] [1520981858.508999398]: mmWaveQuickConfig: Ignored blank or comment line: '% Maximum unambiguous Range(m):9.01' - [ INFO] [1520981858.509816310]: mmWaveQuickConfig: Ignored blank or comment line: '% Maximum Radial Velocity(m/s):5.06' - [ INFO] [1520981858.510520982]: mmWaveQuickConfig: Ignored blank or comment line: '% Radial velocity resolution(m/s):0.64' - [ INFO] [1520981858.518476684]: mmWaveQuickConfig: Ignored blank or comment line: '% Frame Duration(msec):33.333' - [ INFO] [1520981858.519262364]: mmWaveQuickConfig: Ignored blank or comment line: '% Range Detection Threshold (dB):9' - [ INFO] [1520981858.519957764]: mmWaveQuickConfig: Ignored blank or comment line: '% Range Peak Grouping:disabled' - [ INFO] [1520981858.520157681]: mmWaveDataHdl: data_port = /dev/ttyACM1 - [ INFO] [1520981858.520252841]: mmWaveDataHdl: data_rate = 921600 - [ INFO] [1520981858.520315142]: mmWaveDataHdl: max_allowed_elevation_angle_deg = 90 - [ INFO] [1520981858.520375654]: mmWaveDataHdl: max_allowed_azimuth_angle_deg = 90 - [ INFO] [1520981858.520943849]: mmWaveQuickConfig: Ignored blank or comment line: '% Doppler Peak Grouping:disabled' - [ INFO] [1520981858.521671945]: mmWaveQuickConfig: Ignored blank or comment line: '% Static clutter removal:disabled' - [ INFO] [1520981858.522412729]: mmWaveQuickConfig: Ignored blank or comment line: '% ***************************************************************' - [ INFO] [1520981858.523396537]: mmWaveQuickConfig: Sending command: 'sensorStop' - [ INFO] [1520981858.533674630]: mmWaveCommSrv: Sending command to sensor: 'sensorStop' - [ INFO] [1520981858.536083724]: DataUARTHandler Read Thread: Port is open - [ INFO] [1520981858.548926257]: mmWaveCommSrv: Received response from sensor: 'sensorStop - Done - mmwDemo:/>' - [ INFO] [1520981858.550875817]: mmWaveQuickConfig: Command successful (mmWave sensor responded with 'Done') - [ INFO] [1520981858.551745758]: mmWaveQuickConfig: Sending command: 'flushCfg' - [ INFO] [1520981858.559882020]: mmWaveCommSrv: Sending command to sensor: 'flushCfg' - [ INFO] [1520981858.562726084]: mmWaveCommSrv: Received response from sensor: 'flushCfg - Done - mmwDemo:/>' - [ INFO] [1520981858.564378289]: mmWaveQuickConfig: Command successful (mmWave sensor responded with 'Done') - [ INFO] [1520981858.565240748]: mmWaveQuickConfig: Sending command: 'dfeDataOutputMode 1' - [ INFO] [1520981858.573026625]: mmWaveCommSrv: Sending command to sensor: 'dfeDataOutputMode 1' - [ INFO] [1520981858.576915985]: mmWaveCommSrv: Received response from sensor: 'dfeDataOutputMode 1 - Done - mmwDemo:/>' - ... - mmwDemo:/>' - [ INFO] [1520981858.776118886]: mmWaveQuickConfig: Command successful (mmWave sensor responded with 'Done') - [ INFO] [1520981858.776938726]: mmWaveQuickConfig: Sending command: 'compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0' - [ INFO] [1520981858.782736816]: mmWaveCommSrv: Sending command to sensor: 'compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0' - [ INFO] [1520981858.792102024]: mmWaveCommSrv: Received response from sensor: 'compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 - Done - mmwDemo:/>' - [ INFO] [1520981858.793846462]: mmWaveQuickConfig: Command successful (mmWave sensor responded with 'Done') - [ INFO] [1520981858.794657355]: mmWaveQuickConfig: Sending command: 'measureRangeBiasAndRxChanPhase 0 1.5 0.2' - [ INFO] [1520981858.800233568]: mmWaveCommSrv: Sending command to sensor: 'measureRangeBiasAndRxChanPhase 0 1.5 0.2' - [ INFO] [1520981858.806256139]: mmWaveCommSrv: Received response from sensor: 'measureRangeBiasAndRxChanPhase 0 1.5 0.2 - Done - mmwDemo:/>' - [ INFO] [1520981858.807890614]: mmWaveQuickConfig: Command successful (mmWave sensor responded with 'Done') - [ INFO] [1520981858.808687680]: mmWaveQuickConfig: Sending command: 'sensorStart' - [ INFO] [1520981858.814534734]: mmWaveCommSrv: Sending command to sensor: 'sensorStart' - [ INFO] [1520981858.822598283]: mmWaveCommSrv: Received response from sensor: 'sensorStart - Done - mmwDemo:/>' - [ INFO] [1520981858.824211611]: mmWaveQuickConfig: Command successful (mmWave sensor responded with 'Done') - [ INFO] [1520981858.824545077]: mmWaveQuickConfig: mmWaveQuickConfig will now terminate. Done configuring mmWave device using config file: /opt/ros/indigo/share/ti_mmwave_rospkg/cfg/1443_3d.cfg - [mmWaveQuickConfig-2] process has finished cleanly - - - -.. rubric:: 3rd SSH terminal, to Sitara EVM - :name: 3rd-ssh-terminal-1 - -Bring up all ROS components for communicting and controlling Kobuki - -.. code-block:: console - - source /opt/ros/indigo/setup.bash - roslaunch kobuki_node minimal.launch - - - -.. rubric:: 4th SSH terminal, to Sitara EVM - :name: 4th-ssh-terminal-1 - -Start Kobuki teleop console (remotely control Kobuki movement using keyboard) - -.. code-block:: console - - source /opt/ros/indigo/setup.bash - roslaunch kobuki_keyop safe_keyop.launch - - Operating kobuki from keyboard: - Forward/back arrows : linear velocity incr/decr. - Right/left arrows : angular velocity incr/decr. - Spacebar : reset linear/angular velocities. - d : disable motors. - e : enable motors. - q : quit. - -.. rubric:: 5th SSH terminal, to Ubuntu Linux box - :name: 5th-ssh-terminal-1 - -First, :ref:`install ROS Indigo distribution on Ubuntu Linux box ` if it has not been done before. - -Setup ROS variables on Ubuntu Linux box (to enable communication with ROS host on Sitara) then start RViz - -.. code-block:: console - - export ROS_MASTER_URI=http://$SITARA_IP_ADDR:11311 (IP address of Sitara EVM, modify as needed) - export ROS_IP=$LINUX_BOX_IP_ADDR (IP address of Ubuntu Linux box, modify as needed) - source /opt/ros/indigo/setup.bash - - rosrun rviz rviz - -Alternatively, in order to get Kobuki avatar on the screen, install kobuki_description on Ubuntu Linux box -and start RViz by launching view_model from kobuki_description. - -.. code-block:: console - - git clone https://github.com/yujinrobot/kobuki - cd kobuki - cp -r kobuki_description /opt/ros/indigo/share - -.. code-block:: console - - roslaunch kobuki_description view_model.launch - -In RViz add point cloud from mmWave radar: - -* Click Add->PointCloud2 -* Select /mmWaveDataHdl/RScan from the Topic field dropdown for the PointCloud2 on the left hand panel -* Increase Size to 0.03, increase Decay Time to 0.25, and Select Style as "Spheres". -* In rviz, select map for Fixed Frame in Global Options. -* If Kobuki is also started, set Reference Frame (left panel) to "map". - -You should see a point cloud image: - -.. Image:: /images/ros_radar_rviz.png - -More information can be found in `ROS driver document `__ -in chapters: "Visualizating the data", "Reconfiguring the chirp profile", and "How it works" - -.. rubric:: Starting GStreamer pipeline for streaming front view camer - :name: gst-ssh-terminal-1 - -It is possible to start GStreamer pipeline on Sitara and receive front-camera view on Ubuntu Linux box or Windows PC using VLC. - - -.. code-block:: console - - gst-launch-1.0 -e v4l2src device=/dev/video1 io-mode=5 ! 'video/x-raw, \ - format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1' ! ducatih264enc bitrate=1000 ! queue ! h264parse config-interval=1 ! mpegtsmux ! udpsink host=192.168.0.100 sync=false port=5000 - - -E.g. on Windows PC (192.168.0.100), you can watch the stream using: "\Program Files (x86)\VideoLAN\VLC\vlc.exe" udp://@192.168.0.100:5000 - - - -.. figure:: /images/ros_radar_2.jpg - :align: center - :alt: alternate text - :figclass: align-center - - Multiple windows on Ubuntu Linux box showing ROS RViz, front camera view and external camera view - - -Sense and Avoid Demo with mmWave and Sitara ------------------------------------------------------- -Processor SDK Linux provides a complete sense and avoid navigation demo which runs on AM572x EVM with mmWave sensors. -Details of this demo can be found from `Autonomous robotics reference design with Sitara processors and mmWave sensors using ROS `__. diff --git a/source/linux/Examples_and_Demos/Application_Demos/Watchdog_demo.rst b/source/linux/Examples_and_Demos/Application_Demos/Watchdog_demo.rst deleted file mode 100644 index 39d299820..000000000 --- a/source/linux/Examples_and_Demos/Application_Demos/Watchdog_demo.rst +++ /dev/null @@ -1,49 +0,0 @@ -Watchdog Demo on AM654x PG 1.0 -============================== - -Introduction ------------- - -The traditional watchdog with SoC/core reset capability on Linux is not supported on AM654x PG1.0 due to hardware limitation. -In stead, the following workaround is implemented to demostrate the tranditional watchdog functionality as described and shown below. - -.. Image:: /images/watchdog_demo.png - -* Standard Linux watchdog with MCU RTI0/1 in kernel -* Linux watchdog daemon configures watchdog timeout, strats and feeds the watchdog periodically -* The RTI expiry interrupt is fed into the Safety R5F where the demo firmware instructs DMSC to trigger SoC reset when RTI expiration interrupt is detected. - -Running the Demo ----------------- -In order for the users to run the watchdog demo, follow the following procedure on the AM654x PG1.0 platform: - -1. Replace the IPC firmware with the wdt test firmware - -:: - - target # ln -sf /lib/firmware/rti_dwwdtest/am65xx_evm/csl_rti_dwwd_test_app_mcu1_0_release.xer5f /lib/firmware/am65x-mcu-r5f0_0-fw - -2. Reboot and run the Watchdog demo by starting watchdog - -:: - - target # watchdog - - -3. Do normal operations - -4. Stop watchdog daemon and observe the system reset occurs within 2-3 minmutes - -:: - - target # pkill watchdog - - -5. Restore the IPC firmware after SoC reboot - -:: - - target # ln -sf /lib/firmware/ipc/ti_platforms_cortexR_AM65X_R5F0/messageq_single.xer5f /lib/firmware/am65x-mcu-r5f0_0-fw - - - diff --git a/source/linux/Foundational_Components/Machine_Learning/tflite_j7.rst b/source/linux/Foundational_Components/Machine_Learning/tflite_j7.rst deleted file mode 100644 index f5629fde4..000000000 --- a/source/linux/Foundational_Components/Machine_Learning/tflite_j7.rst +++ /dev/null @@ -1,142 +0,0 @@ -TensorFlow Lite -============================== - -Introduction -------------- - -`TensorFlow Lite `__ is an open source library for deep learning models. -TensorFlow Lite runs on ARM cores. - -Supported version ------------------- - - - TensorFlow Lite 1.15 - -TensorFlow Lite example applications -------------------------------------- - -TensoreFlow Lite example applications are installed on filesystem at /usr/share/tensorflow-lite/examples. -One TensorFlow Lite model (mobilenet_v1_1.0_224_quant.tflite) is also installed at the same place for demonstration. -To use other TensorFlow Lite models, such as `TensorFlow Lite Hosted Models `__, -please download those models and then copy them to the target. - -.. code-block:: bash - - # cd /usr/share/tensorflow-lite/examples - # ls -l - total 8356 - -rwxr-xr-x 1 root root 2423336 Aug 28 08:27 benchmark_model - -rw-r--r-- 1 root root 940650 Aug 28 07:56 grace_hopper.bmp - -rwxr-xr-x 1 root root 2288600 Aug 28 08:27 label_image - -rw-r--r-- 1 root root 10484 Aug 28 07:56 labels.txt - -rwxr-xr-x 1 root root 2251048 Aug 28 08:27 minimal - -rw-r--r-- 1 root root 4276352 Aug 28 07:56 mobilenet_v1_1.0_224_quant.tflite - -rwxr-xr-x 1 root root 2152 Aug 28 07:56 tflite-benchmark.she - -Running benchmark_model -^^^^^^^^^^^^^^^^^^^^^^^ - -The *benchmark_model* binary performs computation benchmarking for Tensorflow Lite models. Usage of *benchmark_model*: - -:: - - usage: ./benchmark_model - Flags: - --num_runs=50 int32 number of runs - --run_delay=-1 float delay between runs in seconds - --num_threads=1 int32 number of threads - --benchmark_name= string benchmark name - --output_prefix= string benchmark output prefix - --warmup_runs=1 int32 how many runs to initialize model - --graph= string graph file name - --input_layer= string input layer names - --input_layer_shape= string input layer shape - --use_nnapi=false bool use nnapi api - -Example of running *benchmark_model* on target using the pre-installed mobilenet_v1_1.0_224_quant.tflite model: - -:: - - # cd /usr/share/tensorflow-lite/examples - # ./benchmark_model --graph=mobilenet_v1_1.0_224_quant.tflite - STARTING! - Min num runs: [50] - Min runs duration (seconds): [1] - Max runs duration (seconds): [150] - Inter-run delay (seconds): [-1] - Num threads: [1] - Benchmark name: [] - Output prefix: [] - Min warmup runs: [1] - Min warmup runs duration (seconds): [0.5] - Graph: [mobilenet_v1_1.0_224_quant.tflite] - Input layers: [] - Input shapes: [] - Use nnapi : [0] - Use legacy nnapi : [0] - Use gpu : [0] - Allow fp16 : [0] - Require full delegation : [0] - Enable op profiling: [0] - Max profiling buffer entries: [1024] - Loaded model mobilenet_v1_1.0_224_quant.tflite - resolved reporter - Initialized session in 126.941ms - Running benchmark for at least 1 iterations and at least 0.5 seconds but termin. - count=7 first=80936 curr=73720 min=73663 max=80936 avg=74766.3 std=2519 - - -Running label_image example -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The *label_image* provides an image classification example using TensorFlow Lite. -Options for *label_image*: - -:: - - --accelerated, -a: [0|1], use Android NNAPI or not - --count, -c: loop interpreter->Invoke() for certain times - --input_mean, -b: input mean - --input_std, -s: input standard deviation - --image, -i: image_name.bmp - --labels, -l: labels for the model - --tflite_model, -m: model_name.tflite - --profiling, -p: [0|1], profiling or not - --num_results, -r: number of results to show - --threads, -t: number of threads - --verbose, -v: [0|1] print more information - -Example of running *label_image* on target, using the pre-installed mobilenet_v1_1.0_224_quant.tflite model, -`grace_hopper.bmp `__, and labels.txt. - -.. ifconfig:: CONFIG_part_family not in ('AM64X_family') - - :: - - # cd /usr/share/tensorflow-lite/examples - # ./label_image -i grace_hopper.bmp -l labels.txt -m mobilenet_v1_1.0_224_quant.tflite - Loaded model mobilenet_v1_1.0_224_quant.tflite - resolved reporter - invoked - average time: 164.164 ms - 0.780392: 653 military uniform - 0.105882: 907 Windsor tie - 0.0156863: 458 bow tie - 0.0117647: 466 bulletproof vest - 0.00784314: 835 suit - -.. ifconfig:: CONFIG_part_family in ('AM64X_family') - - :: - - # cd /usr/share/tensorflow-lite/examples - # ./label_image -i grace_hopper.bmp -l labels.txt -m mobilenet_v1_1.0_224_quant.tflite - Loaded model mobilenet_v1_1.0_224_quant.tflite - resolved reporter - invoked - average time: 280.587 ms - 0.780392: 653 military uniform - 0.105882: 907 Windsor tie - 0.0156863: 458 bow tie - 0.0117647: 466 bulletproof vest - 0.00784314: 835 suit diff --git a/source/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/AM65X_PRU_ICSSG_boards.rst b/source/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/AM65X_PRU_ICSSG_boards.rst deleted file mode 100644 index ba46b58db..000000000 --- a/source/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/AM65X_PRU_ICSSG_boards.rst +++ /dev/null @@ -1,22 +0,0 @@ -| - -.. rubric:: **Boards Supported** - -| - -.. rubric:: `AM65x evaluation module (EVM) `__ - -The AM65x Evaluation Module provides a platform to quickly start evaluation of Sitara™ Arm® Cortex®-A53 AM65x Processors (AM6548, AM6546, AM6528, AM6527, AM6526) and accelerate development for HMI, networking, patient monitoring, and other industrial applications. It is a development platform based on the quad core Cortex-A53, dual Cortex-R5F processor that is integrated with ample connectivity such as PCIe, USB 3.0/2.0, Gigabit Ethernet, PRU_ICSSG Ethernet, etc. - -On this platform one CPSW Ethernet port and two ICSSG2 Ethernet ports are available for use. - -.. Image:: /images/Am65x_GP_EVM.jpg - -.. rubric:: `AM65x industrial development kit - (IDK) `__ - -The AM65x Industrial Development Kit (IDK) is a development platform for evaluating the industrial communication and control capabilities of Sitara AM65x processors for applications in factory automation, drives, robotics, grid infrastructure, and more. AM65x processors include three PRU_ICSSG (Programmable Real-time Unit for Industrial Communications) sub-systems which can be used for gigabit industrial Ethernet protocols such as Profinet, EtherCAT, Ethernet/IP, and others. - -On this platform one CPSW Ethernet port and two ICSSG2 Ethernet ports are available on the baseboard and 4 Ethernet ports, 2 each of ICSSG0 and ICSSG1 are available on the IDK application module. - -.. Image:: /images/Am65x_idk.jpg diff --git a/source/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/pru-icssg-pwm.rst b/source/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/pru-icssg-pwm.rst deleted file mode 100644 index 59fcc8305..000000000 --- a/source/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/pru-icssg-pwm.rst +++ /dev/null @@ -1,65 +0,0 @@ -PRU-ICSSG PWM -------------- - -.. rubric:: Introduction - -The PRU_ICSSG subsystem integrates one PWM module, which uses IEP0 and IEP1 -compare events to generates PWM outputs. - -The PRU_ICSSG PWM module is supported as of in Processor SDK Linux v6.2 for -AM65x. The linux PRU PWM driver models the PWM module as two pwmchips, each -supports up to 12 PWMs through PRU-ICSSG GPIO pins. The PWM function is -implemented in PRU firmware. - - -.. rubric:: PRU PWM Features - -Up to 24 PWMs are supported per PRU-ICSSG with the following features: - - - Each pwmchip (IEP) supports up to 12 PWMs - - support Single-Ended mode - - PWM period range: 40us ~ 2sec - - PWM duty-cycle range: 400ns ~ (period - 400ns) - - -.. rubric:: PRU PWM Unsupported Features - -The following features are not supported in PRU PWM: - - - Complementary mode - - Invert polarity (Active Low) - - -.. rubric:: PRU PWM driver Kernel Config - -The PRU PWM Linux kernel driver depends on the PRU-ICSS kernel driver. So -the following kernel Kconfig options should be enabled to use the PRU PWM -module. - -.. code-block:: menuconfig - - Device Drivers ---> - SOC (System On Chip) specific Drivers ---> - [*] TI SOC drivers support ---> - TI PRU-ICSS Subsystem Platform drivers - - Device Drivers ---> - Pulse-Width Modulation (PWM) Support ---> - PRU-ICSS PWM support - - -.. rubric:: PRU PWM Sysfs Usage - -The PRU PWM Linux kernel driver is integrated in the kernel PWM framework, so -user space application can access the PWMs via the Linux sysfs entries. For -details of the usage, please refer to :ref:`PWM Driver Usage `. - - -.. rubric:: Notes - -The 12 PWMs within a pwmchip (IEP) share the common PWM period setting. So only -the PWM which first sets the PWM period (period ownner) has the permission to -modify the PWM period setting. Other PWMs within the same pwmchip cannot modify -the PWM period until the application deallocated the "period owner" PWM. - - diff --git a/source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst b/source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst deleted file mode 100644 index 59b910ff8..000000000 --- a/source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst +++ /dev/null @@ -1,98 +0,0 @@ -######################### -RTC-Only and RTC+DDR Mode -######################### - -******** -Overview -******** - -AM437x supports two RTC modes, RTC+DDR and RTC-Only mode. RTC+DDR Mode is similar to the -Suspend/Resume above but only supports wake by the Power Button present -on the board or from an RTC ALARM2 Event. RTC-Only mode supports the -same wake sources, however DDR context is not maintained so a wake event -causes a cold boot. - -RTC-Only mode is supported on: - -- AM437x GP EVM -- AM437x SK EVM - -RTC+DDR mode is supported on: - -- AM437x GP EVM - -.. rubric:: RTC+DDR Mode - -The first step in using RTC+DDR mode is to enable off mode by typing the -following at the command line: - -:: - - $ echo 1 > /sys/kernel/debug/pm_debug/enable_off_mode - -With off-mode enabled, a command to enter DeepSleep0 will now enter -RTC-Only mode: - -:: - - $ echo mem > /sys/power/state - -this method of entry only supports Power button as the wake source. - -To use the rtc as a wake source, after enabling off mode use the -following command: - -:: - - $ rtcwake -s -d /dev/rtc0 -m mem - -Whether or not your board enters RTC-Only mode or RTC+DDR mode depends -on the regulator configuration and whether or not the regulator that -supplies the DDR is configured to remain on during suspend. This is -supported by the TPS65218 in use of the AM437x boards but not the -TPS65217 or TPS65910 present on AM335x boards. - -:: - - tps65218: tps65218@24 { - reg = <0x24>; - compatible = "ti,tps65218"; - interrupts = ; /* NMIn */ - interrupt-parent = <&gic>; - interrupt-controller; - #interrupt-cells = <2>; - - ... - - dcdc3: regulator-dcdc3 { - compatible = "ti,tps65218-dcdc3"; - regulator-name = "vdcdc3"; - regulator-suspend-enable; - regulator-min-microvolt = <1500000>; - regulator-max-microvolt = <1500000>; - regulator-boot-on; - regulator-always-on; - }; - - ... - - }; - -Another important thing to make sure of is that you are using the proper -u-boot. A certain u-boot is required in order to support RTC+DDR mode -otherwise the following message appears during boot of the kernel: - -``PM: bootloader does not support rtc-only!`` - -When building u-boot, rather than using ``am43xx_evm_config`` you must -use ``am43xx_evm_rtconly_config`` to support either RTC mode. - -.. rubric:: RTC-Only Mode - -RTC-Only mode does not maintain DDR context so placing a board into -RTC-only mode allows for very low power consumption after which a -supported wake source will cause a cold boot. RTC-Only mode is entered -via the poweroff command. - -To wakeup from RTC-Only mode via an RTC alarm, a separate tool must be -used to program an RTC alarm prior to entering poweroff. diff --git a/source/linux/Foundational_Components/_OpenVX.rst b/source/linux/Foundational_Components/_OpenVX.rst deleted file mode 100644 index e7c312a84..000000000 --- a/source/linux/Foundational_Components/_OpenVX.rst +++ /dev/null @@ -1,298 +0,0 @@ -.. http://processors.wiki.ti.com/index.php/Processor_SDK_TIOVX - -********************************** -OpenVX -********************************** - -.. rubric:: OpenVX - :name: openvx - -OpenVX is an open, Khronos (https://www.khronos.org/openvx/) defined -standard for cross platform acceleration of computer vision -applications. OpenVX enables performance and power-optimized computer -vision processing, with emphasis on embedded and real-time use cases: - -- advanced driver assistance systems (ADAS) -- face, body and gesture tracking -- smart video surveillance -- object and scene reconstruction -- augmented reality -- visual inspection -- robotics and more. - -Though originally intended for vision only embedded applications, it may -be extended in future to non-vision applications suitable for data flow -representation. - -.. rubric:: TIOVX - :name: tiovx - -TIOVX is TI's implementation of OpenVX Standard. - -TIOVX allows users to create vision and compute applications using -OpenVX API. These OpenVX applications can be executed on TI SoCs like -AM57xx (including A15 and C66 cores), following OpenVX 1.1 standard. -TIOVX also provides optimized OpenVX kernels for C66x DSP. An extension -API allows users to integrate their own natively developed custom -kernels and call them using OpenVX APIs. - -.. Image:: /images/Tiovx.PNG - -| - -.. rubric:: TIOVX software - :name: tiovx-software - -+--------------------------------------+--------------------------------------+ -| Module/Block | Description | -+======================================+======================================+ -| OpenVX API | OpenVX API as defined by Khronos | -+--------------------------------------+--------------------------------------+ -| TIOVX API | TI extensions and additional APIs in | -| | order to efficiently use OpenVX on | -| | TI platforms | -+--------------------------------------+--------------------------------------+ -| TIOVX Framework | TI's implementation of OpenVX spec. | -| | This layer is agnostic of underlying | -| | SoC, OS platform | -+--------------------------------------+--------------------------------------+ -| TIOVX Platform | This layer binds TIOVX framework to | -| | a specific platform. Ex, Processor | -| | Linux SDK for AM57xx SOCs. This | -| | layer also binds TIOVX framework to | -| | a specific OS like Linux or TI-RTOS | -+--------------------------------------+--------------------------------------+ -| TIOVX Kernel Wrapper | Kernel wrappers allow TI and | -| | customers to integrate a natively | -| | implemented kernel into the TIOVX | -| | framework. | -+--------------------------------------+--------------------------------------+ -| TIOVX Conformance tests | OpenVX conformance test from Khronos | -| | to make sure an implementation | -| | implements OpenVX according to | -| | specification. | -+--------------------------------------+--------------------------------------+ - -There are two versions of VXLIB kernels: without BAM framework, and -with BAM framework. BAM is a low level framework representing directed -acyclic graph, where EDMA transfers are heavily utilized to bring 2D -memory objects to higher speed L2 memory, thus improving performance -almost twofold. - -Current release has kernels with BAM framework. This framework -achieves higher performance via heavy use of EDMA, which brings blocks -of data from remote DDR memory to local L2, while DSP does the -processing. List of these kernels can be checked in -https://git.ti.com/processor-sdk/tiovx/trees/master/kernels/openvx-core/c66x/bam. - -.. rubric:: TIOVX DSP Kernels (in VXLIB) - :name: tiovx-dsp-kernels-in-vxlib - -There are 44 kernels in current release of VXLIB (typically there are -multiple implementations for different data types). - -Here is complete list of DSP kernel wrappers (wrappers are part of TIOVX): - -- AbsDiff -- AccumulateSquare -- Accumulate -- AccumulateWeighted -- Add -- BitwiseAnd -- BitwiseNot -- BitwiseOr -- BitwiseXor -- Box3x3 -- CannyEd -- ChannelCombine -- ChannelExtract -- ColorConvert -- ConvertDepth -- Convolve -- Dilate3x3 -- EqHist -- Erode3x3 -- Gaussian3x3 -- HalfscaleGaussian -- HarrisCorners -- Histogram -- IntegralImage -- Lut -- Magnitude -- MeanStdDev -- Median3x3 -- MinMaxLoc -- Multiply -- NonLinearFilter -- Phase -- Sobel3x3 -- Subtract -- Threshold - -| - -.. rubric:: TIOVX in Processor Linux SDK on AM57xx EVM - :name: tiovx-in-processor-linux-sdk-on-am57xx-evm - -Following TIOVX components are present in EVM filesystem: - -+--------------------------+--------------------------+--------------------------+ -| Type | File path | Description | -+--------------------------+--------------------------+--------------------------+ -| application | /usr/bin/tiovx-app\_host | Statically linked Linux | -| | | application running | -| | | several thousands test | -| | | cases, with all | -| | | available kernels and | -| | | using different test | -| | | vectors | -+--------------------------+--------------------------+--------------------------+ -| DSP firmware | /lib/firmware/dra7-dsp1- | DSP firmware including | -| | fw.xe66.openvx, | DSP side of TIOVX | -| | | framwork implementation, | -| | /lib/firmware/dra7-dsp | IPC implementation, | -| | 2-fw.xe66.openvx | DSP kernels (part of | -| | | VXLIB DSP library) - for | -| | | DSP1. This firmware is | -| | | loaded at boot time, or | -| | | using procedure | -| | | mentioned below (to | -| | | switch from OCL firmware | -| | | to TIOVX firmware) | -+--------------------------+--------------------------+--------------------------+ - -TIOVX release 1.0.0.0 runs exclusively wrt OpenCL, as both firmwares use -common resources DSP cores and CMEM memory. That is: application can be -either TIOVX-based, or OpenCL -based. Future releases may remove this -limitation and use static split in resources (between OpenCL and -OpenVX). **TIOVX needs CMEM memory with two blocks**: block 0 is big DDR -block for exchange of big buffers (>100MB) and block 1 (~1MB) which is -used as shared memory visible from all cores to exchange shared data -objects (typically in OCMC) - -.. rubric:: Switch from OpenCL to OpenVX firmware: - :name: switch-from-opencl-to-openvxfirmware - -Run the command below to switch from OpenCL to OpenVx firmware: - -:: - - reload-dsp-fw.sh tiovx # load openvx firmware and restart dsps - -.. rubric:: Run TIOVX test application - :name: run-tiovx-test-application - -First, it is necessary to copy test vectors from -https://git.ti.com/processor-sdk/tiovx/trees/master/conformance_tests/test_data -to EVM filesystem (e.g. ~/tiovx/test\_data).Then run following -commands: - -:: - - export VX_TEST_DATA_PATH=/home/root/tiovx/test_data # Set environment variable to point to location of test vectors on EVM - tiovx-app_host 2>&1 | tee log.txt # Run test application, and log output to log.txt - -At the end of test (taking roughly 24mins) you can expect report like -this: - -:: - - ... - [ N7 ] Execution time for 307200 pixels (avg = 3.584000 ms, min = 3.584000 ms, max = 3.584000 ms) - [ N8 ] Execution time for 307200 pixels (avg = 171.797000 ms, min = 171.797000 ms, max = 171.797000 ms) - [ N9 ] Execution time for 307200 pixels (avg = 366.952000 ms, min = 366.952000 ms, max = 366.952000 ms) - [ G4 ] Execution time for 307200 pixels (avg = 500.146000 ms, min = 500.146000 ms, max = 500.146000 ms) - [ N1 ] Execution time for 256 pixels (avg = 0.278000 ms, min = 0.278000 ms, max = 0.278000 ms) - [ N2 ] Execution time for 256 pixels (avg = 0.230000 ms, min = 0.230000 ms, max = 0.230000 ms) - [ N3 ] Execution time for 256 pixels (avg = 0.281000 ms, min = 0.281000 ms, max = 0.281000 ms) - [ N4 ] Execution time for 256 pixels (avg = 0.303000 ms, min = 0.303000 ms, max = 0.303000 ms) - [ N5 ] Execution time for 256 pixels (avg = 0.285000 ms, min = 0.285000 ms, max = 0.285000 ms) - [ G5 ] Execution time for 256 pixels (avg = 2.169000 ms, min = 2.169000 ms, max = 2.169000 ms) - [ N1 ] Execution time for 256 pixels (avg = 0.243000 ms, min = 0.243000 ms, max = 0.243000 ms) - [ N2 ] Execution time for 256 pixels (avg = 0.301000 ms, min = 0.301000 ms, max = 0.301000 ms) - [ G6 ] Execution time for 256 pixels (avg = 0.871000 ms, min = 0.871000 ms, max = 0.871000 ms) - [ N1 ] Execution time for 256 pixels (avg = 0.352000 ms, min = 0.352000 ms, max = 0.352000 ms) - [ N2 ] Execution time for 256 pixels (avg = 0.246000 ms, min = 0.246000 ms, max = 0.246000 ms) - [ N2 ] Execution time for 256 pixels (avg = 0.324000 ms, min = 0.324000 ms, max = 0.324000 ms) - [ G7 ] Execution time for 256 pixels (avg = 1.502000 ms, min = 1.502000 ms, max = 1.502000 ms) - [ N1 ] Execution time for 256 pixels (avg = 75.37000 ms, min = 75.37000 ms, max = 75.37000 ms) - [ G8 ] Execution time for 256 pixels (avg = 60.474000 ms, min = 60.474000 ms, max = 60.474000 ms) - [ DONE ] tivxMaxNodes.MaxNodes/0/few_strong_corners/MIN_DISTANCE=3.0/SENSITIVITY=0.10/GRADIENT_SIZE=3/BLOCK_SIZE=5/k=3/VX_INTERPOLATION_NEAREST_NEIGHBOR - [ -------- ] 1 tests from test case tivxMaxNodes - - [ ======== ] - [ ALL DONE ] 6217 test(s) from 110 test case(s) ran - [ PASSED ] 6217 test(s) - [ FAILED ] 0 test(s) - [ DISABLED ] 7397 test(s) - - To be conformant 6217 required test(s) must pass. Disabled 7397 test(s) are optional. - - #REPORT: 20170927134830 ALL 13614 7397 6217 6217 6217 0 (version 1.1-20170301) - <-- main: - -Please note that last ~3000 lines of test log include performance data -(execution time and number of pixels processed) useful for further -evaluation. - -.. rubric:: Switch from OpenVX, back to OpenCL firmware: - :name: switch-from-openvx-back-to-openclfirmware - -After finishing running the TIOVX test application, switch the firmware back to the default for OpenCL: - -:: - - reload-dsp-fw.sh opencl # load opencl firmware and restart dsps - -.. rubric:: Recompile TIOVX (using Yocto build) - :name: recompile-tiovx-using-yocto-build - -| TIOVX framework implementation is available at - https://git.ti.com/processor-sdk/tiovx/trees/master -| TIOVX sample application including IPC implementation based on - standard MessageQ, as well as application running conformance tests, - can be found at - https://git.ti.com/processor-sdk/tiovx-app/trees/master -| Additional documentation can be found at - https://git.ti.com/processor-sdk/tiovx/trees/master/docs -| TIOVX framework and TIOVX-APP can be recompiled like any other - component, as described in - http://processors.wiki.ti.com/index.php/Processor_SDK_Building_The_SDK. - Optionally you can do full rebuild with: - -:: - - MACHINE=am57xx-evm bitbake tisdk-core-bundle - -| For modifying individual components in SDK, please refer to: to - http://processors.wiki.ti.com/index.php/Processor_SDK_Building_The_SDK#Recipes -| If there is a need to modify source code of TIOVX host library - (framework) files (A15 side), please do that in: - tisdk/build/arago-tmp-external-arm-toolchain/work/am57xx\_evm-linux-gnueabi/tiovx-lib-host/01.00.00.00-r1/git/ - folder. -| For example, to modify list of tests executed: update file - ./tiovx/conformance\_tests/test\_tiovx/test\_main.h, or - ./tiovx/conformance\_tests/test\_conformance/test\_main.h -| After the source modification, force compile the Library (Linux host - side), and rebuild the package using: - -:: - - MACHINE=am57xx-evm bitbake tiovx-lib-host -f -c compile - -:: - - MACHINE=am57xx-evm bitbake tiovx-lib-host - -| Similarly application code can be modified in: - ./tisdk/build/arago-tmp-external-arm-toolchain/work/am57xx\_evm-linux-gnueabi/tiovx-app-host/01.00.00.00-r1/git, - and then force-recompiled and rebuilt using: - -:: - - MACHINE=am57xx-evm bitbake tiovx-app-host -f -c compile - -:: - - MACHINE=am57xx-evm bitbake tiovx-app-host - diff --git a/source/linux/Foundational_Components_Multimedia_IVAHD.rst b/source/linux/Foundational_Components_Multimedia_IVAHD.rst deleted file mode 100644 index 75f309046..000000000 --- a/source/linux/Foundational_Components_Multimedia_IVAHD.rst +++ /dev/null @@ -1,908 +0,0 @@ -.. _foundational-components-multimedia: - -************************* -Multimedia -************************* - -.. http://processors.wiki.ti.com/index.php/Processor_Training:_Multimedia - -.. rubric:: Introduction - :name: introduction-linux-accelerated-multimedia - -TI's embedded processors such as AM57xx have following hardware -accelerators. - -- IVA (Image and Video Accelerator) for accelerating multimedia encode - and decode. -- VPE (Video Processing Engine) for Scaling, Color Space Conversion and - Deinterlacing. -- C66x DSP cores for offloading certain image/video and/or voice/audio - processing. - -In order to make it easy for customers to write applications, and to -leverage open source elements that provide functionality such as AVI -stream demuxing, audio encode/decode, etc, TI's PROCESSOR-SDK supplies -ARM based GStreamer plugins that abstracts the hardware accelerator -offload. - -This multimedia training page will cover the following topics. - -- Capabilities of IVA-HD, VPE, DSP, and ARM -- Out of Box Multimedia Demos in PROCESSOR-SDK -- Software Stack of Accerelated Codec Encoding/Decoding -- Gstreamer Pipelines for Multimedia Applications -- Gstreamer Plugins Limitations -- List of Features not Supported with Gstreamer -- DSP C66x Gstreamer Plugin Internals -- Rebuild IPUMM Firmware -- Load and Unload Firmware - -| - -.. rubric:: Capabilities of IVA-HD, VPE, DSP, and ARM - :name: capabilities-of-iva-hd-vpe-dsp-and-arm - -In PROCESSOR-SDK, IVA-HD, and hence the multimedia encoding and decoding -applications, supports the following codecs. - -- Video Decode: H264, MPEG4, MPEG2, and VC1 -- Video Encode: H264, and MPEG4 -- Image Decode: MJPEG - -Codec datasheet can be downloaded from git repository here - -https://git.ti.com/ivimm/ipumm/trees/master/extrel/ti/ivahd_codecs/packages/ti/sdo/codecs - -VPE supports video operations such as scaling, color space conversion, -and de-interlacing. - -- Supported Input formats: NV12, YUYV, UYVY -- Supported Output formats: NV12, YUYV, UYVY, RGB24, BGR24, ARGB24, - ABGR24 - -DSP is a general purpose programmable core available for offloading -signal processing kernels. - -- Sample Image Processing Kernels integrated in the DSP gstreamer - plugin: Median2x2, Median3x3, Sobel3x3, Conv5x5, Canny - -Demo applications also demonstrate the following ARM based coding -capabilities. - -- Video decoding on ARM: H.265 -- Audio encoding and decoding on ARM: AAC, MPEG2 (leveraging open - source codecs) - -| - -.. rubric:: Software Stack of Accelerated Codec Encoding/Decoding - :name: software-stack-of-accelerated-codec-encodingdecoding - -As shown in the figure below, the software stack of the accelerated -codec encoding/decoding runs on two subsystems: MPU subsystem on -ARM-A15, and IPU subsystem on ARM-M4. The two subsystems communicate -with each other through RPMSG. At the highest level in MPU subsystem on -ARM-A15, there is Linux user space application which is based on -Gstreamer. GStreamer is an open source framework that simplifies the -development of multimedia applications. The GStreamer library loads and -interfaces with the TI GStreamer plugin (GST-Ducati plugin), which -handles all the details specific to use of the hardware accelerator. -Specifically, TI GStreamer plugin interfaces libdce in user space. On -one hand, libdec interacts with libdrm in user space for displaying -video in Wayland window system. On the other hand, libdce interfaces -with RPMSG in Linux kernel to communicate with the IPU subsystem on -ARM-M4. The IPU subsystem builds on SYS/BIOS RTOS and runs IVAHD -video/image codecs, utilizing framework components and codec engine. - -.. raw:: html - -
- -.. raw:: html - -
- -.. Image:: /images/Mm_software_overview_v3.png - -.. raw:: html - -
- -.. raw:: html - -
- -**Overview of the Multimedia Software Stack** - -The Multimedia software contains many software components. Some are -developed by Texas Instruments and some are developed in and by the -open source community(White). TI contributes, and sometimes even -maintains, some of these open source community projects, but the -support model is different from a project developed solely by TI. - -.. rubric:: Gstreamer Pipelines for Multimedia - :name: gstreamer-pipelines-for-multimedia - -.. rubric:: Open Source GStreamer Overview - :name: open-source-gstreamer-overview - -GStreamer is an open source framework that simplifies the development of -multimedia applications, such as media players and capture encoders. It -encapsulates existing multimedia software components, such as codecs, -filters, and platform-specific I/O operations, by using a standard -interface and providing a uniform framework across applications. - -The modular nature of GStreamer facilitates the addition of new -functionality, transparent inclusion of component advancements and -allows for flexibility in application development and testing. -Processing nodes are implemented via Gstreamer plugins with several sink -and/or source pads. Many plugins are running as ARM software -implementation, but for more complex SoCs certain functions are better -executed on hardware accelerated IPs like IVAHD (video codecs) or VPE. - -Gstreamer is multimedia framework based on data flow paradigm. It allows -easy plugin registration just by deploying new shared objects to -/usr/lib/gstreamer-1.0 folder. The shared libraries in this folder are -scanned for reserved data structures identifying capabilities of -individual plugins. Individual processing nodes can be interconnected as -a pipeline in run-time creating complex topologies. Node interfacing -compatibility is verified at that time - before pipeline is started. - -GStreamer brings a lot of value-added features to Processor SDK, -including audio encoding and decoding, audio and video synchronization, -interaction with a wide variety of open source plugins (muxers, -demuxers, codecs, and filters). New GStreamer features are continuously -being added, and the core libraries are actively supported by -participants in the GStreamer community. Additional information about -the GStreamer framework is available on the GStreamer project site: -http://gstreamer.freedesktop.org/. - -.. rubric:: TI Provided Gstreamer Plugins - :name: ti-provided-gstreamer-plugins - -One benefit of using GStreamer as a multimedia framework is that the -core libraries already build and run on ARM Linux. Only a GStreamer -plugin is required to enable additional hardware features on TI's -embedded processors with both ARM and hardware accelerators for -multimedia. The TI GStreamer plugins provide elements for GStreamer -pipelines that enable the use of plug-and-play IVAHD codecs, certain -hardware-accelerated operations such as video frame resizing, -de-interlacing, and color space conversion, image processing offloaded -to DSP, and ARM based HEVC decoding. The TI GStreamer plugins provide -baseline support for eXpressDSPTM Digital Media (xDM1) plug-and-play -codecs. Multiple xDM versions are supported, making it easy to migrate -between codecs that conform to different versions of the xDM -specification. - -Below is a list of TI GStreamer plugins provided in Processor SDK. - -- Ducati Decoding and Encoding - -#. ducatih264dec -#. ducatimpeg4dec -#. ducatimpeg2dec -#. ducativc1dec -#. ducatijpegdec -#. ducatih264enc -#. ducatimpeg4enc - -- Ducati VPE - -#. vpe -#. ducatih264decvpe -#. ducatimpeg2decvpe -#. ducatimpeg4decvpe -#. ducatijpegdecvpe -#. ducativc1decvpe - -- DSP Image Processing - -#. dsp66videokernel - -- ARM HEVC Decoding - -#. h265dec - -.. rubric:: Visual Representation of Typical GStreamer Pipelines - :name: visual-representation-of-typical-gstreamer-pipelines - -A typical GStreamer pipeline starts with one or more source elements, -uses zero or more filter elements, and ends in a sink or multiple sinks. -This section provides visual representation of two typical gstreamer -pipelines: 1) multimedia decoding and playout, and 2) video capture, -encoding, and network transmission. - -.. rubric:: Decode Pipeline - :name: decode-pipeline - -The example pipeline shown in the figure below demonstrates the demuxing -and playback of a transport stream. The input is first read using the -source element, and then processed by gstreamer playbin2. Inside -playbin2, demuxer first demuxes the stream into its audio and video -stream components. The video stream is then queued and sent to TI ducati -gstreamer plugin for decoding. Finally, it is sent to a video sink to -display the decoded video on the screen. The audio stream is queued and -then decoded by ARM audio gstreamer plugin, and then reaches its -destination at the alsasink element to play the decoded audio. - -.. raw:: html - -
- -.. raw:: html - -
- -.. Image:: /images/Gst_decode_playout_v2.png - -.. raw:: html - -
- -.. raw:: html - -
- -| - -.. rubric:: Encode Pipeline - :name: encode-pipeline - -The example pipeline shown in the figure below demonstrates video -capture, encode, muxing, and network transmission. The camera capture is -processed by VPE, and then queued for video encoding. After that, it is -queued for video parsing, muxing. Finally, it is sent to network through -RTP payloader and udp sink. - -.. raw:: html - -
- -.. raw:: html - -
- -.. Image:: /images/Gst_capture_encode_network.png - -.. raw:: html - -
- -.. raw:: html - -
- -Gstreamer test pipeline: - ---need someone to add this code to make it work. only showing a figure. - -.. rubric:: Running a gstreamer pipeline - :name: running-a-gstreamer-pipeline - -Gstreamer pipelines can also run from command line. In order to do so, -exit Weston by pressing Ctrl-Alt-Backspace from the keyboard which -connects to the EVM. Then, if the LCD screen stays in "Please wait...", -press Ctrl-Alt-F1 to go to the command line on LCD console. After that, -the command line can be used from serial console, SSH console, or LCD -console. - -One can run an audio video file using the gstreamer playbin from the -console. Currently, the supported Audio/video sink is kmssink, -waylandsink and alsassink. - -:: - - kmssink: - target # gst-launch-1.0 playbin uri=file:/// video-sink=kmssink audio-sink=alsasink - -:: - - waylandsink: - 1. refer Wayland/Weston to start the weston - 2. target # gst-launch-1.0 playbin uri=file:/// video-sink=waylandsink audio-sink=alsasink - -The following pipelines show how to use vpe for scaling and color -space conversion. - -:: - - 1. Decode-> Scale->Display - target # gst-launch-1.0 -v filesrc location=example_h264.mp4 ! qtdemux ! h264parse ! \ - ducatih264dec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)720, height=(int)480' ! kmssink - -:: - - 2. Color space conversion: - target # gst-launch-1.0 -v videotestsrc ! 'video/x-raw, format=(string)YUY2, width= \ - (int)1280, height=(int)720' ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)720, height=(int)480' \ - ! kmssink - -.. note:: - 1. While using playbin for playing the stream, vpe plugin is automatically picked up. However vpe cannot be used - with playbin for scaling. For utilizing scaling capabilities of vpe, using manual pipeline given above is recommended. - 2. Waylandsink and Kmssink uses the cropping metadata set on buffers and does not require vpe plugin for cropping - -The following pipelines show how to use v4l2src and ducatimpeg4enc -elements to capture video from VIP and encode captured video -respectively. - -:: - - Capture and Display Fullscreen - target # gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1000 io-mode=4 ! 'video/x-raw, \ - format=(string)YUY2, width=(int)1280, height=(int)720' ! vpe num-input-buffers=8 ! queue ! kmssink - -:: - - Note: - The following pipelines can also be used for NV12 capture-display usecase. - Dmabuf is allocated by v4l2src if io-mode=4 and by kmssink and imported by v4l2src if io-mode=5 - target # gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1000 io-mode=4 ! 'video/x-raw, \ - format=(string)NV12, width=(int)1280, height=(int)720' ! kmssink - target # gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1000 io-mode=5 ! 'video/x-raw, \ - format=(string)NV12, width=(int)1280, height=(int)720' ! kmssink - -| - -:: - - Capture and Display to a window in wayland - 1. refer Wayland/Weston to start the weston - 2. target # gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1000 io-mode=4 ! 'video/x-raw, \ - format=(string)YUY2, width=(int)1280, height=(int)720' ! vpe num-input-buffers=8 ! queue ! waylandsink - -:: - - Note: - The following pipelines can also be used for NV12 capture-display usecase. Dmabuf is allocated by v4l2src - if io-mode=4 and by waylandsink and imported by v4l2src if io-mode=5. - Waylandsink supports both shm and drm. A new property use-drm is added to specify drm allocator based bufferpool to be used. - When using ducati or vpe plugins, use-drm is set in caps as true. - target # gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1000 io-mode=4 ! 'video/x-raw, \ - format=(string)NV12, width=(int)1280, height=(int)720' ! waylandsink use-drm=true - target # gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=1000 io-mode=5 ! 'video/x-raw, \ - format=(string)NV12, width=(int)1280, height=(int)720' ! waylandsink use-drm=true - -| - -:: - - Capture and Encode into a MP4 file. - target # gst-launch-1.0 -e v4l2src device=/dev/video1 num-buffers=1000 io-mode=4 ! 'video/x-raw, \ - format=(string)YUY2, width=(int)1280, height=(int)720, framerate=(fraction)30/1' ! vpe num-input-buffers=8 ! \ - queue ! ducatimpeg4enc bitrate=4000 ! queue ! mpeg4videoparse ! qtmux ! filesink location=x.mp4 - -:: - - Note: - The following pipeline can be used in usecases where vpe processing is not required. - target # gst-launch-1.0 -e v4l2src device=/dev/video1 num-buffers=1000 io-mode=5 ! 'video/x-raw, \ - format=(string)NV12, width=(int)1280, height=(int)720, framerate=(fraction)30/1' ! ducatimpeg4enc bitrate=4000 ! \ - queue ! mpeg4videoparse ! qtmux ! filesink location=x.mp4 - -:: - - Capture and Encode and Display in parallel. - target # gst-launch-1.0 -e v4l2src device=/dev/video1 num-buffers=1000 io-mode=4 ! 'video/x-raw, \ - format=(string)YUY2, width=(int)1280, height=(int)720, framerate=(fraction)30/1' ! vpe num-input-buffers=8 ! tee name=t ! \ - queue ! ducatimpeg4enc bitrate=4000 ! queue ! mpeg4videoparse ! qtmux ! filesink location=x.mp4 t. ! queue ! kmssink - -Below provides more gstreamer pipeline examples. - -.. rubric:: File to file video encoding pipeline: - -:: - - target # gst-launch-1.0 filesrc location=waterfall-352-288-nv12-inp.yuv ! videoparse width=352 height=288 format=nv12 ! video/x-raw, width=352, height=288 ! ducatih264enc ! filesink location=waterfall-352-288-nv12-inp_gst.h264 - -The cap filter of "video/x-raw, width=352, height=288" is needed in this -pipeline to specify the width and height. Otherwise, variable width and -height are configured for the encoder and the encoded output can be -corrupted. - -.. rubric:: File to file 4K H264 encoding pipeline - :name: file-to-file-4k-h264-encoding-pipeline - -:: - - target # gst-launch-1.0 filesrc location= 4k.nv12 ! videoparse width=3840 height=2160 format=nv12 framerate=12/1 ! video/x-raw, width=3840, height=2160 ! ducatih264enc level=51 profile=100 bitrate=16000 ! filesink location=4k.h264 - -.. rubric:: Full HD at 60fps Encoding - :name: full-hd-at-60fps-encoding - -:: - - target # gst-launch-1.0 videotestsrc num-buffers=1000 ! 'video/x-raw,format=(string)NV12,width=1920,height=1080,framerate=(fraction)60/1' ! ducatih264enc level=level-51 profile=high ! queue ! h264parse ! mp4mux ! filesink location=test.mp4 - - -.. rubric:: Multi-channel Encoding - :name: multi-channel-encoding - -:: - - target # gst-launch-1.0 -e v4l2src device=/dev/video1 num-buffers=1000 io-mode=4 ! 'video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, framerate=(fraction)30/1' ! tee name=t ! vpe num-input-buffers=8 ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=test.mov t. ! vpe num-input-buffers=8 ! 'video/x-raw, format=(string)NV12, width=(int)640, height=(int)480' ! queue ! ducatih264enc ! queue ! h264parse ! qtmux ! filesink location=test1.mov - - -.. rubric:: Network Loopback - :name: network-loopback - -:: - - Sender: - - target # gst-launch-1.0 -e v4l2src device=/dev/video1 io-mode=4 ! 'video/x-raw,format=(string)YUY2,width=1280,height=720,framerate=(fraction)30/1' ! vpe num-input-buffers=8 ! queue ! ducatih264enc intra-interval=1 ! h264parse ! rtph264pay mtu=200 ! udpsink host=127.0.0.1 port=5000 & - -:: - - Receiver: - - target # gst-launch-1.0 -v udpsrc port=5000 ! 'application/x-rtp,media=(string)video, clock-rate=(int)90000, payload=(int)96' ! rtph264depay ! h264parse ! ducatih264dec ! vpe ! 'video/x-raw,format=(string)NV12, width=320,height=240' ! waylandsink sync=false - -:: - - Note: - - Both pipelines must be executed on target board. - -:: - -.. rubric:: ARM H265 (HEVC) decoding pipeline - -:: - - target # gst-launch-1.0 filesrc location=.265 ! 'video/x-raw, format=(string)NV12, framerate=(fraction)24/1, width=(int)1280, height=(int)720' ! h265dec threads=2 ! vpe ! kmssink - -.. rubric:: DSP offloaded image processing pipeline - -:: - - target # gst-launch-1.0 filesrc location=.265 ! 'video/x-raw, format=(string)NV12, framerate=(fraction)24/1, width=(int)1280, height=(int)720' ! h265dec threads=1 ! videoconvert ! dsp66videokernel kerneltype=1 filtersize=9 lum-only=1 ! videoconvert ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)640, height=(int)480' ! kmssink - -This pipeline decodes an H265 clip on ARM A15, offloads the image -processing task (Sobel 3x3 kernel) to DSP, and the processed clip is -then re-sized and displayed. - -Processor SDK provides reference implementation of multiple image -processing kernels, for which the pipeline can be configured as shown in -the table below. - -+--------------------------------------------------------+----------------------------------------------------------------------------+ -| **Kernel Type** | **Definition in GST Pipeline** | -+--------------------------------------------------------+----------------------------------------------------------------------------+ -| Median2x2 | dsp66videokernel kerneltype=0 filtersize=5 lum-only=0 | -+--------------------------------------------------------+----------------------------------------------------------------------------+ -| Median3x3 with luminance only | dsp66videokernel kerneltype=0 filtersize=9 lum-only=1 | -+--------------------------------------------------------+----------------------------------------------------------------------------+ -| Sobel3x3 with luminance only | dsp66videokernel kerneltype=1 filtersize=9 lum-only=1 | -+--------------------------------------------------------+----------------------------------------------------------------------------+ -| Conv5x5 | dsp66videokernel kerneltype=2 filtersize=25 lum-only=0 | -+--------------------------------------------------------+----------------------------------------------------------------------------+ -| User defined kernel with Sobel3x3 and luminance only | dsp66videokernel kerneltype=4 arbkernel=Sobel3x3 filtersize=9 lum-only=1 | -+--------------------------------------------------------+----------------------------------------------------------------------------+ - -4. Audio/Video decoding with http input source - -:: - - target # gst-launch-1.0 playbin uri=http:// video-sink=kmssink audio-sink=alsasink - -5. Audio/Video decoding with rtsp input source - First, set up and run RTSP server on host. Then, run the following - command: - -:: - - target # gst-launch-1.0 playbin uri=rtsp:// video-sink=kmssink audio-sink=alsasink - -6. Record real-time FPS of video decoding - -:: - - target # gst-launch-1.0 -v playbin uri=file:/// video-sink=fpsdisplaysink audio-sink=alsasink > fps_log.txt - -Note: please view fps\_log.txt to find out the FPS information after the -pipeline completes. - -| - - .. rubric:: Gstreamer Plugins Limitations - :name: gstreamer-plugins-limitations - -* Gstreamer VPE plugin supports only YUY2, NV12, YUYV input/output formats. -* Not all encoder's parameters are exposed as gstreamer encoder's properties. - - - .. rubric:: List of Features not Supported with Gstreamer - :name: list-of-features-not-supported-with-gstreamer - -* DSS WB is not supported with gstreamer. -* Ivi-shell is not supported with gstreamer. - - -| - -.. rubric:: DSP C66x Gstreamer Plugin Internals - :name: dsp-c66x-gstreamer-plugin-internals - -TI's Processor SDK Linux supplies ARM based GStreamer plugin that -abstracts C66x DSP offload. The primary goal of this DSP GStreamer -plugin is to demonstrate how C66x can be used in GStreamer framework, -in combination with other GStreamer plugins. The plugin, under the -hood, uses OpenCL to dispatch to the C66x cores. This plugin provides -sample DSP kernels and can be used as a reference to develop user's -own DSP kernels. - -.. rubric:: Overview of Existing Source Code - :name: overview-of-existing-source-code - -Source code of the DSP plugin can be found from -http://git.ti.com/processor-sdk/gst-plugin-dsp66. - -As shown in the figure below, the GST plugin code (gstdsp66\*.c and -gstdsp66\*.h files) is directly under the ./src folder. It is -implemented in C following GST framework requirements, and therefore it -is compatible with the gstreamer version used in Processor-SDK-Linux. - -Dispatch of work load to DSP is done via call to functions in -independent shared objects, which are implemented in OpenCL code -organized under the kernels folder. The kernels folder currently has a -sub-folder of oclconv, which provides sample DSP kernels for image -processing. As long as the APIs between the GST plugin code (in ./src -folder) and OpenCL code (in ./src/kernels/oclconv folder) are the same, -this shared object can be compiled and installed separately. This -approach allows easier modification, implementation and maintenance once -the APIs are fixed. - -.. Image:: /images/GST-dsp66-src.png - -The image processing functions in oclconv are implemented via calls to -DSP optimized imglib and vlib library functions, or implemented in -OpenCL C. - -- Kernels implemented with OpenCL C: Median2x2 -- Kernels implemented with imglib function calls from OpenCL C: - Median3x3, Sobel3x3, Conv5x5 -- Kernels implemented with vlib function calls from OpenCL C: Canny - -.. rubric:: Adding Custom DSP Kernels - :name: adding-custom-dsp-kernels - -Using the existing oclconv as the template, more folders can be added -under ./src/kernels folder to create shared libraries with additional -wrappers (for functions invoked from GST plugin context) and OCL (host -side and DSP) kernels. Makefile in ./src/kernels folder will attempt -make in all sub-folders. Each sub-folder will provide independent -shared library object that can be invoked from gstdsp66 context (e.g., -function calls in ./src/gstdsp66videokernel.c file). Individual shared -object libraries can be independently recompiled and updated in the -target file system. - -.. rubric:: Modifying the Existing Plugin - :name: modifying-the-existing-plugin - -The DSP plugin also allows easy modifications and additions, and below -are some examples. - -Currently the DSP plugin provides five sample image process operations: -1) Median2x2; 2) Median3x3; 3) Sobel3x3; 4) Conv5x5; and 5) Canny. Users -can modify the source code to add more image processing operations as -needed. - -Currently the DSP plugin provides properties as below. More properties -can be added so that they can be passed from gst-launcher. - -- kerneltype: select the kernel type -- filtersize: the size of the filter, choose from (5,9,25) -- lum-only: true for applying the filter on luminance only, false for - applying on all three planes. -- arbkernel: provide a way to specify the name of the kernel invoked - via OpenCL. - -Details of a specific image processing kernel can also be modified, -e.g., the coefficients for Conv5x5 kernel, which are defined in -kernels/oclconv/conv.cl::kernel void Conv5x5() function. - -.. rubric:: Rebuilding and Installing the Plugin - :name: rebuilding-and-installing-the-plugin - -After modifications/additions are made for the DSP plugin source code, -the plugin needs to be rebuilt, and this can be done from the Yocto -build. - -First, please refer to `Processor SDK Building The -SDK `__ -to set up the build environment and bitbake the original recipe for -gstreamer1.0-plugins-dsp66, i.e., - -``MACHINE=am57xx-evm bitbake gstreamer1.0-plugins-dsp66`` - -After the bitbake command above is successfully done, -./build/arago-tmp-external-arm-toolchain/work/armv7ahf-neon-linux-gnueabi/gstreamer1.0-plugins-dsp66/git-r<\*> -will be created with the original source code under the git sub-folder. -Copy the modified and/or the newly added files to the git sub-folder, -and rebuild the plugin referring to `Rebuild -Recipe `__. - -Last, install the rebuilt plugin on target filesystem referring to -`Install -Package `__. -After the installation, the following files will be updated and/or -added. Gstreamer framework includes seamless detection and registration -of the new plugin. - -- /usr/lib/gstreamer-1.0/libgstdsp66.so -- /usr/lib/liboclconv.so -- [optional] any additional shared library (as described in previous - section), should be placed in /usr/lib - -| - -.. rubric:: Rebuild IPUMM Firmware - :name: rebuild-ipumm-firmware - -Pre-built IPUMM firmware images can be located on target file system -at /lib/firmware/dra7-ipu2-fw.xem4. In case there is a need to rebuild -the IPUMM firmware, the instructions below are provided for rebuilding -IPUMM firmware. It assumes that everything is done on a Ubuntu -machine. - -.. rubric:: IPUMM GIT Repo - :name: ipumm-git-repo - -IPUMM is publically available at https://git.ti.com/ivimm/ipumm. To -clone the git repository, execute the following command. - -:: - - git clone git://git.ti.com/ivimm/ipumm.git - -To checkout a particular tag, e.g., 3.00.09.01, run the following -command: - -:: - - cd ipumm - git checkout [tag, e.g., 3.00.09.01] - -.. rubric:: IPUMM Build Tools - :name: ipumm-build-tools - -Making IPUMM depends on the following tools. - -- **Codec Engine**: `Codec Engine Product - Releases `__ -- **Framework Components**: `Framework Components Product - Releases `__ -- **IPC**: `IPC Product - Releases `__ -- **XDAIS**: `XDAIS Product - Releases `__ -- **BIOS**: `SYS/BIOS Product - Releases `__ -- **XDC Tools**: `XDCTools Product - Releases `__ -- **TMS470 CGT ARM**: The compiler tools are provided as part of - CCS.\ `CCSv6 - Download `__ - -Each release of IPUMM is verified with particular versions of the tools -above. Check top level Makefile of ipumm to identify the versions to be -downloaded and installed. For example, the tool versions used in IPUMM -3.00.09.01 are listed as below: - -:: - - XDCVERSION ?= xdctools_3_31_02_38_core - BIOSVERSION ?= bios_6_42_02_29 - IPCVERSION ?= ipc_3_40_01_08 - CEVERSION ?= codec_engine_3_24_00_08 - FCVERSION ?= framework_components_3_40_01_04 - XDAISVERSION ?= xdais_7_24_00_04 - # TI Compiler Settings - export TMS470CGTOOLPATH ?= $(BIOSTOOLSROOT)/ccsv6/tools/compiler/ti-cgt-arm_5.2.5 - -Below are direct download links and install instructions for IPUMM -3.00.09.01 build tools. When installing the tools, it is preferable to -install all the tools to the same directory, e.g., /opt/ti. - -- Download and untar - `codec\_engine\_3\_24\_00\_08,lite.tar.gz `__ -- Download and untar - `framework\_components\_3\_40\_01\_04,lite.tar.gz `__ -- Download and unzip - `ipc\_3\_40\_01\_08.zip `__ -- Download and untar - `xdais\_7\_24\_00\_04.tar.gz `__ -- Download and install - `bios\_setuplinux\_6\_42\_02\_29.bin `__ -- Download and untar - `xdctools\_3\_31\_02\_38\_core\_linux.zip `__ -- Download and install `CCSv6 - Build#6.1.1.00022 `__. - Ensure that "TI ARM Compiler" is selected during the installation. - After the installation, the compiler tools (version 5.2.5) are - located at - [ccs\_install\_dir]/ccsv6/tools/compiler/ti-cgt-arm\_5.2.5. - -.. rubric:: Build IPUMM - :name: build-ipumm - -.. rubric:: Setup Environment - :name: setup-environment - -Export the following environment variables: - -:: - - export BIOSTOOLSROOT= - export IPCSRC= - export TMS470CGTOOLPATH= - -Example for IPUMM 3.00.09.01 assuming all the tools are installed to -/opt/ti directory: - -:: - - export BIOSTOOLSROOT=/opt/ti - export IPCSRC=/opt/ti/ipc_3_40_01_08 - export TMS470CGTOOLPATH=/opt/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.5 - -.. rubric:: Build IPUMM - :name: build-ipumm-1 - -Follow the steps below to build IPUMM firmware. - -:: - - export HWVERSION=ES10 - cd ipumm - make unconfig - make vayu_smp_config - make clean - make ducatibin - -After the build is completed, two different images will get created. -Select the correct one for your devices. - -:: - - * dra7-ipu2-fw.xem4: This firmware will be used for Linux or Android. - The firmware is built with the resource table defined in platform/ti/dce/baseimage/custom_rsc_table_vayu_ipu.h - The corresponding map file is: platform/ti/dce/baseimage/package/cfg/out/ipu/release/ipu.xem4.map - -:: - - * dra7xx-m4-ipu2.xem4: This firmware will be used for QNX. - The firmware is built with the resource table defined in platform/ti/dce/baseimage/qnx_custom_rsc_table_vayu_ipu.h - The corresponding map file is: platform/ti/dce/baseimage/package/cfg/out/ipu/release/qnx_ipu.xem4.map - -| - -.. rubric:: Firmware Loading and Unloading - :name: firmware-loading-and-unloading - -The table below shows the remote cores and their corresponding -definitions in the kernel dtsi files -(``[ti-processor-sdk-linux-am57xx-evm-[ver]]/board-support/linux-[ver]/arch/arm/boot/dts/dra7.dtsi, and dra74x.dtsi``), -as well as the argument to be used in the loading/unloading commands. - -+-------------------+-------------------------------+-------------------------------------+ -| **Remote Core** | **Definition in dtsi file** | **Argument in loading/unloading** | -+-------------------+-------------------------------+-------------------------------------+ -| IPU1 | ipu@58820000 | 58820000.ipu | -+-------------------+-------------------------------+-------------------------------------+ -| IPU2 | ipu@55020000 | 55020000.ipu | -+-------------------+-------------------------------+-------------------------------------+ -| DSP1 | dsp@40800000 | 40800000.dsp | -+-------------------+-------------------------------+-------------------------------------+ -| DSP2 | dsp@41000000 | 41000000.dsp | -+-------------------+-------------------------------+-------------------------------------+ - -For example, the argument of ``55020000.ipu`` corresponds to IPU2 as can -be seen from ``dra7.dtsi``. - -:: - - ipu2: ipu@55020000 { - compatible = "ti,dra7-rproc-ipu"; - -In the sections below, ``55020000.ipu`` will be used as the example. For -a specific use case, please select the corresponding argument which is -applicable. - -.. rubric:: Unloading and loading remotecores at runtime - :name: unloading-and-loading-remotecores-at-runtime - -It is possible to unload and reload a remotecore at runtime from Linux -using the ``sysfs`` interface. - -:: - - target $ cd /sys/bus/platform/drivers/omap-rproc/ - target $ echo 55020000.ipu > unbind - target $ echo 55020000.ipu > bind - -The ``echo 55020000.ipu > unbind`` command tears down the communication -channels between the A15 and the remotecore and unloads the remotecore. -Any application level shutdown that needs to be performed needs to be -handled by the system integrator. - -The ``echo 55020000.ipu > bind`` loads the appropriate firmware binary -onto the remotecore. - -.. rubric:: Changing the remotecore binary at runtime - :name: changing-the-remotecore-binary-at-runtime - -To change the remotecore binary at runtime - -#. Unload the remotecore using ``unbind``. -#. Change the remotecore binary in the firmware folder. Default location - is ``/lib/firmware`` on the target filesystem. -#. Load the remotecore using ``bind``. - -:: - - target $ cd /sys/bus/platform/drivers/omap-rproc/ - target $ echo 55020000.ipu > unbind - target $ cp /home/root/new-binary.xem4 /lib/firmware/dra7-ipu2-fw.xem4 - target $ echo 55020000.ipu > bind - -If it is desirable to avoid overwriting the existing remote binaries, -the method of symbolic links can be used instead of direct copy. For -example, Processor SDK provides two types of DSP remotecore binaries: -one for DSPDCE (dra7-dsp1-fw.xe66.dspdce-fw) and another one for OpenCL -(dra7-dsp1-fw.xe66.opencl-monitor). dra7-dsp1-fw.xe66 is created as a -symbolic link by default pointing to the OpenCL binary. When it is -needed to switch to DSPDCE, the symbolic link of dra7-dsp1-fw.xe66 can -be updated pointing to dra7-dsp1-fw.xe66.dspdce-fw. - -:: - - target $ cd /sys/bus/platform/drivers/omap-rproc/ - target $ echo 40800000.dsp > unbind - target $ rm /lib/firmware/dra7-dsp1-fw.xe66 - target $ ln -s /lib/firmware/dra7-dsp1-fw.xe66.dspdce-fw /lib/firmware/dra7-dsp1-fw.xe66 - target $ echo 40800000.dsp > bind - -After the switch, copycodectest application can be run to verify that -DSPDCE firmware is loaded. This application fills the input buffer with -a number entered as the argument and after process the output buffer is -tested for the same pattern. - -usage: copycodectest pattern. - -Example: - -:: - - target # copycodectest 123 - -Sample console output: - -:: - - root@am57xx-evm:~# copycodectest 123 - 0x22070: Opening Engine.. - Created dsp_universalCopy - Fill input buffer with pattern 123 - Verifing the UniversalCopy algorithm - copycodectest executed successfully - -.. rubric:: Loading firmware during initial boot without using udev - :name: loading-firmware-during-initial-boot-without-using-udev - -During the default boot, firmware is supplied to the kernel by ``udev``. -Starting the ``udev`` service on boot causes a few seconds increase in -boot time. In cases where a quick boot is required, the user may not -start the ``udev`` service in boot. In such cases, firmware can be -supplied to the kernel using the sysfs interface. An example script is -shown below. - -:: - - FW_NAMES="dra7-dsp1-fw.xe66 dra7-dsp2-fw.xe66 dra7-ipu1-fw.xem4 dra7-ipu2-fw.xem4" - for FW in $FW_NAMES ; do - echo 1 > /sys/class/firmware/$FW/loading - cat /lib/firmware/$FW > /sys/class/firmware/$FW/data - echo 0 > /sys/class/firmware/$FW/loading - done - diff --git a/source/linux/Foundational_Components_OpenCL.rst b/source/linux/Foundational_Components_OpenCL.rst deleted file mode 100644 index ac8d454ff..000000000 --- a/source/linux/Foundational_Components_OpenCL.rst +++ /dev/null @@ -1,5 +0,0 @@ -********************************** -OpenCL -********************************** -`TI OpenCL `__ - diff --git a/source/linux/Foundational_Components_OpenVX.rst b/source/linux/Foundational_Components_OpenVX.rst deleted file mode 100644 index 3b9d2234e..000000000 --- a/source/linux/Foundational_Components_OpenVX.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. _foundational-components-openvx: - -.. include:: Foundational_Components/_OpenVX.rst diff --git a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/66AK2G02_GP_EVM_Hardware_Setup.rst b/source/linux/How_to_Guides/Hardware_Setup_with_CCS/66AK2G02_GP_EVM_Hardware_Setup.rst deleted file mode 100644 index 9d6451332..000000000 --- a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/66AK2G02_GP_EVM_Hardware_Setup.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../../common/EVM_Hardware_Setup/_66AK2G02_GP_EVM_Hardware_Setup.rst diff --git a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/66AK2G02_ICE_EVM_Hardware_setup.rst b/source/linux/How_to_Guides/Hardware_Setup_with_CCS/66AK2G02_ICE_EVM_Hardware_setup.rst deleted file mode 100644 index 35c7cdec9..000000000 --- a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/66AK2G02_ICE_EVM_Hardware_setup.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../../common/EVM_Hardware_Setup/_66AK2G02_ICE_EVM_Hardware_setup.rst diff --git a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/EVMK2E_Hardware_Setup.rst b/source/linux/How_to_Guides/Hardware_Setup_with_CCS/EVMK2E_Hardware_Setup.rst deleted file mode 100644 index 6b1a7d06f..000000000 --- a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/EVMK2E_Hardware_Setup.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../../common/EVM_Hardware_Setup/_EVMK2E_Hardware_Setup.rst diff --git a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/OMAPL138-C6748_LCDK_Hardware_Setup.rst b/source/linux/How_to_Guides/Hardware_Setup_with_CCS/OMAPL138-C6748_LCDK_Hardware_Setup.rst deleted file mode 100644 index f50629df3..000000000 --- a/source/linux/How_to_Guides/Hardware_Setup_with_CCS/OMAPL138-C6748_LCDK_Hardware_Setup.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../../common/EVM_Hardware_Setup/_OMAPL138-C6748_LCDK_Hardware_Setup.rst diff --git a/source/linux/How_to_Guides/Host/How_to_Setup_Ubuntu_1404_Network_Boot.rst b/source/linux/How_to_Guides/Host/How_to_Setup_Ubuntu_1404_Network_Boot.rst deleted file mode 100644 index 39d7de191..000000000 --- a/source/linux/How_to_Guides/Host/How_to_Setup_Ubuntu_1404_Network_Boot.rst +++ /dev/null @@ -1,324 +0,0 @@ -Ubuntu 14.04 Set Up to Network Boot an AM335x/AM437x Based Platform -===================================================================================== - -The AM335x/AM437x processor families from Sitara can boot from the ROM Bootloader -(RBL) using the BOOTP networking protocol that is supported by many -standard tools. This capability allows developers to set up an -environment where the U-Boot bootloader, Linux kernel, and even -filesystem can be hosted from the development Linux box, using only a -ethernet cable or even USB cable depending on the capabilities of the -AM335x/AM437x based target system. This process sets up a very nice, efficient -Linux development system where changes to U-Boot, the Kernel, or even -the filesystem can be quickly tested for fast, iterative development. - -This page describes how to set up an Ubuntu 14.04 based Linux -Development host as a BOOTP server that will work well with the AM335x/AM437x -RBL and U-Boot. While the specific steps and tools may be a bit -different, the information provided should be enough to set up most -Linux distributions. This set up assumes a fresh Ubuntu install and -should include everything needed to get up to a U-Boot command prompt. -From here, a variety of next steps can be used to acheive the desired Linux -environment on the target (for example, setting up a Network File System -(NFS) for filesystem development) or using an initramfs. - -In order to get to a simple U-Boot command prompt, the following tools -will be needed: - -- Ubuntu 14.04 (instructions assume a fresh install for simplicity) -- A BOOTP/DHCP server - isc-dhcp-server is used, but others work as - well - - - The server has to be configured to respond properly to the BOOTP requests from the - AM335x/AM437x device - -- A TFTP Server - atftpd is used, but others work as well -- A method to start/stop services - xinetd is used here -- A Hardware platform that can be set to boot from either Ethernet or - USB RNDIS (this guide uses the `Beaglebone - Black `__ as an example) -- A U-Boot image that includes the necessary peripheral booting support - (Ethernet or USB RNDIS) often provided with SDK pre-builts -- The necessary cables and such to get everything hooked up - appropriately - -Step By Step ------------- - -Here is the process to follow to get everything up and running. Most of -the steps necessary are the same whether using Ethernet or USB. But, for -USB there are some additional steps required. - -#. Install Ubuntu 14.04 (preferably on a dedicated PC). - - .. note:: Other versions of Ubuntu and other distributions will likely need small changes to configure this - process correctly. - -#. The `Processor SDK for Linux - `__ - provides a working Linux system for development (bootloader, kernel, - filesystem and toolchain). This process should work with - theoretically any system properly ported and configured for AM335x/AM437x. -#. Install the necessary services using a terminal on the Linux box. - - .. code-block:: console - - sudo apt-get install isc-dhcp-server atftpd xinetd - -#. Configure the BOOTP/DHCP Server - - The RBL uses the vendor-id part of the BOOTP protocol to identify itself to the BOOTP host server. The following configuration takes this - into account. - - Edit /etc/dhcp/dhcpd.conf - - .. code-block:: text - - subnet 192.168.2.0 netmask 255.255.255.0 - { - range dynamic-bootp 192.168.2.2 192.168.2.100; - if substring (option vendor-class-identifier, 0, 10) = "AM335x ROM" - { - filename "u-boot-spl-restore.bin"; - } - elsif substring (option vendor-class-identifier, 0, 10) = "DM814x ROM" - { - filename "u-boot-spl-restore.bin"; - } - elsif substring (option vendor-class-identifier, 0, 10) = "AM43xx ROM" - { - filename "u-boot-restore.img"; - } - elsif substring (option vendor-class-identifier, 0, 17) = "AM335x U-Boot SPL" - { - filename "u-boot-restore.img"; - } - elsif substring (option vendor-class-identifier, 0, 10) = "AM43xx U-B" - { - filename "u-boot-restore.img"; - } - else - { - filename "zImage"; - } - range 192.168.2.101 192.168.2.199; - } - - .. note:: - This configuration creates a subnet, 192.168.2.0, with a bootp IP Address range of 2 - 100. The isc-dhcp-server will use this - pool of addresses to respond to the client (the Beaglebone Black or other target board in this case). The server (Ubuntu PC) needs to have an ethernet - port configured to use an IP Address on this subnet (192.168.2.1 is recommended by this guide) or the server will not start. This address - will be assigned properly in the below steps. - - .. warning:: - Note the file names that are used above. These must correspond to the U-Boot and Linux files that are placed in the - /tftpboot directory. If these names are not in sync, the RBL will request files that don't exist and the process will - not work. For example, if the SPL file in the /tftpboot directory is named u-boot-spl.bin, then either it would need to be renamed or the above - configuration changed and the service restarted. - -#. Setup TFTP Server - - Edit /etc/default/atftpd (create the file if necessary) with: - - .. code-block:: text - - USE_INETD=false - OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --maxthread 100 --verbose=5 --logfile /var/log/atftpd.log --port 69 /tftpboot" - - .. note:: This is an example configuration and it can certainly be modified for specific situations. - -#. Create directory to store TFTP files (/tftpboot used here) - - .. code-block:: console - - sudo mkdir /tftpboot - sudo chmod -R 777 /tftpboot - sudo chown -R nobody /tftpboot - - Make sure the server is configured to look at the port that you are - using. Edit /etc/default/isc-dhcp-server and add the appropriate port - (ex. usb0 or eth1) to the INTERFACES option. The example below includes - eth0, eth1, and usb0. - - .. code-block:: text - - INTERFACES="eth0 eth1 usb0" - - .. note:: - Check the interfaces in your PC by using `ip addr` and find the appropriate interface and its IP address. - -#. Restart the services to pick-up the configuration changes - - .. code-block:: console - - sudo service isc-dhcp-server restart - sudo service atftpd restart - - -#. Configure a static IP address for the appropriate interface (Ethernet or - USB0). There are many ways to do this in Linux. **Network Manager** is - used here as it is the Ubuntu default and arguably the easiest, - especially for ethernet. The next step describes an alternative method - to use the more traditional /etc/network/interfaces, which may be easier - and more stable for USB. Only one of these methods needs to be used per - interface. - - A. Make sure the target board is configured to boot from the appropriate - interface (ethernet or USB). - - B. Connect the interface on the PC to the target board. This should create - a new connection in Network Manager. Click on Network Manager and choose - "edit connections". - - #. Choose the appropriate connection and edit it to have a static (Ubuntu - refers to this as "manual") IP address. Use the below settings unless - there is a good reason not to (and the appropriate changes has been made - throughout this guide). - - .. image:: ../../../images/Ubuntu_Setup_Ethernet_Connection_Choose_Interface.png - - | - - .. image:: ../../../images/Ubuntu_Setup_Ethernet_Connection_Manual_Address.png - - | - - #. Save all of your changes. - - #. If using USB, there's one additional step. The USB network interface - goes up and down throughout the boot process. The isc-dhcp-server needs - to be restarted when it comes up each time. Network Manager provides a - capability to do this using the dispatcher. - - - As root, create /etc/NetworkManager/dispatcher.d/99am-usb-dhcp-server - - .. code-block:: sh - - #!/bin/sh - - IF=$1 - STATUS=$2 - - if [ "$IF" = "usb0" ] && [ "$STATUS" = "up" ]; then - service isc-dhcp-server restart - fi - - - Make sure this file is executable. - - **sudo chmod +x /etc/NetworkManager/dispatcher.d/99am-usb-dhcp-server** - - | - - - Restart Network Manager: - - **sudo service network-manager restart** - - - -#. This step is an **alternative** to the above step which describes how to - use Network Manager to set up a network connection. Depending on the - configuration of the software running on your target board, it might be - easier to configure the network interface using the more traditional - /etc/network/interfaces. or ifconfig. **For USB, this method can be - easier and more stable**, since the USB Network Gadget uses random host - MAC addresses by default (it can be configured to use the same address, - if desired). Network Manager uses the MAC address to configure a - connection. For random booting to a kernel or for flashing or mounting NFS, - this is not convenient. The more traditional ifconfig model is - configured at an interface level and avoids these issues. - - A) Configure /etc/network/interfaces by adding the below structure for - usb0: - - .. code-block:: text - - allow-hotplug usb0 - iface usb0 inet static - address 192.168.2.1 - network 192.168.2.0 - netmask 255.255.255.0 - broadcast 192.168.2.255 - up /etc/network/if-up.d/usb-interfaces - - - #) Add the below script to /etc/network/if-up.d as sudo with the - filename "usb-interfaces" (this is called by the "up" command in - /etc/network/interfaces). This script restarts the DHCP/BOOTP server - automatically. - - .. code-block:: sh - - #!/bin/sh - - if [ "$IFACE" = usb0 ]; then - sudo service isc-dhcp-server restart - fi - - #) Make sure the script is executable as well. - - **chmod +x /etc/network/if-up.d/usb-interfaces** - - | - - #) Finally, make sure Network Manager is set up to ignore interfaces - managed by /etc/network/interfaces by adding the below code to - /etc/NetworkManager/NetworkManager.conf: - - .. code-block:: ini - - [main] - plugins=ifupdown - - [ifupdown] - managed=false - - #) Restart Network Manager for the changes to take affect. - - **sudo service network-manager restart** - -At this point, the Ubuntu box should be set up to host the boot process -for an AM335x/AM437x based board. If you already have files to use, copy them -to /tftpboot on a Linux box or to Uniflash on a Windows system and -reset/power-on the target board with the appropriate connections in -place. It is very helpful to have a serial console connection to watch -the process proceed. If you have trouble, please see the troubleshooting -section below. - -How to Get Images ------------------ - -The `Processor SDK for Linux `__ -provides everything needed to create a network bootable set of files (SPL, U-Boot, and Kernel). - -Here's a quick review of the boot process needed. - -#. Board configured to boot from either Ethernet or USB0. By default, - the Beaglebone Black will attempt to boot over USB0. -#. U-Boot configured with either Ethernet (this is called CPSW on the - AM335x/AM437x family) or USB RNDIS. The RBL will request the file set up in - the steps above. This should be an appropriately configured SPL. -#. SPL will need to be configured to include the appropriate networking - components. It will use this to get U-Boot. -#. U-Boot needs to be appropriately configured as well. - -The prebuilt images that come with the SDK provide the support necessary to boot over either Ethernet or USB. These images are -provided with the SDK in the board-support/prebuilt-images directory within the SDK install. For U-Boot, simply copy the appropriate .bin and -and .img files to the /tftpboot directory and rename them to u-boot-spl-restore.bin and u-boot-restore.img, respectively. - -Troubleshooting ---------------- - -Here are some things to do to debug the setup: - -* Since we are dealing with network interfaces, - `Wireshark `__ is invaluable. Use it to - monitor the network connection and determine where things are going - wrong: -* If you don't see BOOTP requests coming from the board, it many not - be set up correctly to boot from that interface. -* You can easily see IP Address mismatches if the client is trying - to send packets to the wrong place. -* You can monitor the TFTP transfers that are trying to occur. This - can reveal filename mismatches, incorrect configurations, etc. -* By default, the DHCP server logs output to /var/log/syslog. This can - be very valuable information. - diff --git a/source/linux/Overview/Processor_SDK_Linux_Creating_a_SD_Card_with_Windows.rst b/source/linux/Overview/Processor_SDK_Linux_Creating_a_SD_Card_with_Windows.rst deleted file mode 100644 index 39ab7ad86..000000000 --- a/source/linux/Overview/Processor_SDK_Linux_Creating_a_SD_Card_with_Windows.rst +++ /dev/null @@ -1,112 +0,0 @@ -.. http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Creating_a_SD_Card_with_Windows - -Windows SD Card Creation Guide -====================================== -.. rubric:: Introduction - :name: introduction-linux-sd-card - -This page details how to use an image file to create a SD Card -containing the embedded Linux system provided with the Linux SDK. This -allows a user to evaluate the embedded system on a supported hardware -platform. - -.. rubric:: What is Needed - :name: what-is-needed - -- Access to a Windows PC -- A valid Linux SDK image for the appropriate processor (AM335x, for - example) -- Software to decompress a zip file (ex. 7-zip) -- Software to write an image file to a SD card -- A SD card appropriate for the required hardware platform, must be 16GB - or larger -- A SD card reader/writer - -.. rubric:: Steps to Follow - :name: steps-to-follow - -Here is the process to follow to create the SD card. - -#. Download the Processor SDK for Linux image file that you want to use. -#. On a Windows PC, you'll need software to decompress a zip file. - Windows 7 can do this natively. If you don't already have something - that works, the open source software `7-zip `__ - is a great choice. Since this image is created with lots of empty - space, this step saves about 700 MB of download time. -#. Use the decompression software to decompress the zipped file to an - image file. Here's how to do it with 7-zip: - - .. Image:: /images/7zip_to_extract_image.png - - You should see a status bar as the image is decompressed: - - .. Image:: /images/Win32_Disk_Imager_Extracting.png - - And this is what you should have when it is finished: - - .. Image:: /images/7zip_image_file_extracted.png - -#. If you don't have it already, download a program to write the image - file to the SD card. The open source `Win32 Disk - Imager `__ is a good - option. -#. Use the software for writing an image to disk to write the - decompressed .img file to the SD card. - - #. Plug the SD card into the SD card reader/writer. - #. Insert the SD card reader/writer into the PC. - #. Launch the disk writer software, if needed. - #. Choose the image file for the SDK that you want to write. - - .. Image:: /images/Win32_Disk_Imager_open.png - - And select the appropriate SDK Image file: - - .. Image:: /images/Win32_disk_imager_select_a_disk_image.png - - #. Choose the SD card as the destination. - - .. Image:: /images/Win32_Disk_Imager_select_disk.png - - #. Write the image to the SD card. - - .. Image:: /images/Win32_Disk_Imager_write_disk.png - - .. note:: - You'll likely get the below confirmation box. This command will - overwrite whatever disk you point it to, please make sure and choose - the correct disk: - - .. Image:: /images/Win32_disk_imager_Confirm_overwrite.png - - You should see the following status bar as the image is being - written to the disk: - - .. Image:: /images/Win32_Disk_Imager_writing_to_disk.png - - And when the write is complete, you should get a notification: - - .. Image:: /images/Win32_Disk_Imager_Complete.png - - You can now close the image writing program: - - .. Image:: /images/Win32_Disk_Imager_exit.png - -#. Safely eject the SD card from the computer. Here's an example using - Windows 7: - -.. Image:: /images/Win7_eject_disk.png - -.. Image:: /images/Win7_eject_disk_detail.png - -.. Image:: /images/Win7_device_can_be_safely_removed.png - -#. Plug it into a supported hardware platform and boot the platform from - the SD card. -#. If the platform has a display (Starterkit, for example), you should - see the landing application from the SDK. You can also connect to the board - using a terminal emulator (ex. Tera Term) in order to view the serial console - and interact with the embedded Linux system. - -| - diff --git a/source/linux/Overview/Processor_SDK_Linux_create_SD_card_script.rst b/source/linux/Overview/Processor_SDK_Linux_create_SD_card_script.rst deleted file mode 100644 index 39c76506e..000000000 --- a/source/linux/Overview/Processor_SDK_Linux_create_SD_card_script.rst +++ /dev/null @@ -1,345 +0,0 @@ -.. http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_create_SD_card_script - -.. _linux_sd_card_creation_guide: - -Linux SD Card Creation Guide -====================================== - -Overview --------- - -The |__SDK_FULL_NAME__| package includes a script in the **/bin** -directory named **create-sdcard.sh**. The purpose of this script is to -create SD cards for the following high-level use cases: - -#. Create the `SD Card using default images `__ from the |__SDK_FULL_NAME__| - package -#. Create the `SD card using custom images `__ -#. Create the `SD card using partition tarballs `__ (This is not common - and is used most often by board vendors) - -The script will give you information about each step, but the following -sections will go over the details for the use cases above and walk you -through how to use the script as well. - -| - -.. _processor-sdk-linux-sd-card-common-steps: - -Common Steps -------------- - -No matter which use case above that you are creating an SD card for the -following steps are the same. - -| - -.. rubric:: Invoking the Script - :name: invoking-the-sdcard-script - -The **create-sdcard.sh** script can be run from any location but must be -run with **root** permissions. This usually means using the **sudo** -command to start execution of the script. For example: - -**sudo /bin/create-sdcard.sh** -If you fail to execute the script without root permissions you will -receive a message that root permissions are required and the script will -exit. - -| - -.. rubric:: Select the SD Card Device - :name: select-the-sd-card-device - -The first step of the script will ask you to select the drive -representing the SD card that you want to format. In most cases your -host root file system drive has been masked off to prevent damage to the -host system. When prompted enter the device number corresponding to the -SD card. For example if the output looks like: - -:: - - Availible Drives to write images to: - - # major minor size name - 1: 8 16 7761920 sdb - - Enter Device Number: - -You would enter **1** to select the **sdb** device. - -**NOTE**: For most common installations, this script works fine. -However, if you are using more advanced disk slicing and volume -management, the presented list of device nodes are off by one; in the -best case (picking the last item) it will flag a range error, and in the -worst case (anything in the middle) the wrong DASD can be destroyed. The -problem originates when it attempts to determine the $ROOTDRIVE to -"mask" the volume where "/" is mounted from the selection list using a -"grep -v $ROOTDRIVE" For the naive partitioning case, its heuristic is -fine, yielding something like "sda" --- but for LVM, it grabs some chunk -of the device name, e.g. "mapp" (out of "/dev/mapper/kubuntu--vg-root on -/ type ..."). - -.. rubric:: Re-Partitioning the SD Card - :name: re-partitioning-the-sd-card - -Any partitions of the device that are already mounted will be un-mounted -so that the device is ready for partitioning. - -If the SD Card already has partition you will see a prompt like the -following asking you if you would like to repartition the card. If the -card was not already partitioned then this step will be skipped and you -can move on to the next step. - -:: - - Would you like to re-partition the drive anyways [y/n] : - -- Options: - - - **y** - This will allow you to change the partitioning of the SD - card. For example if you have a 3 partition card and want to - create a 2 partition card to give additional storage space to the - root file system you would select **y** here. - **NOTE:** This operation **WILL ERASE** the contents of your SD - card. - - **n** - If the SD card already has the desired number of - partitions then this will leave the partitioning alone. If you - select **n** here skip on to the `Installing SD Card Content `__ section. - -.. rubric:: Select Number of Partitions - :name: select-number-of-partitions - -You should now see a prompt like the following which will ask you how -many partitions you want to create for the SD card. - -:: - - Number of partitions needed [2/3] : - -- Options: - - - **2** - This is the most common use case and will give the most - space to the root file system. - - **3** - This case should only be used by board manufacturers - making SD cards to go in the box with the EVM. This requires - access to the partition tarballs used for Out-Of-Box SD cards. - This option should be selected if you are going to follow the - `SD card using partition tarballs`_ steps below. - -After selecting the number of partitions, move on to the next section. - -.. _processor-sdk-linux-installing-sd-card-content: - -Installing SD Card Content ---------------------------- - -After the SD card is partitioned, you will be prompted whether you want -to continue installing the file system or safely exit the script. - -- Options: - - - **y** - Selecting yes here will begin the process of installing - the SD card contents. This operation **WILL ERASE** any existing - data on the SD card. Refer to one of the following sections for - additional instructions depending on which use case you are - creating an SD card for: - - - Create the `SD card using default images`_ - - Create the `SD card using custom images`_ - - Create the `SD card using partition tarballs`_ - - - **n** - Selecting no here will allow you to have partitioned your - card but will leave the partitions empty. - -| - -.. _processor-sdk-linux-sd-card-using-default-images: - -SD Card Using Default Images ------------------------------ - -The purpose of this section is to cover how to use the -**create-sdcard.sh** script to populate an SD card that can be used to -boot the device using the default images that ship with the |__SDK_FULL_NAME__| package. - -.. rubric:: Prerequisites - :name: sd-default-image-prerequisites - -#. The |__SDK_FULL_NAME__| package is installed on your host system. -#. The SD card you wish to create is inserted into the host system and - has a size sufficiently large (16GB or larger) to hold at least the bootloaders, - kernel, and root file system. -#. You have started running the script as detailed in the `SD Card Common Steps `__ section above. - -.. rubric:: Choose Install Pre-built Images - :name: choose-install-pre-built-images - -You should now see a prompt like: - -:: - - ################################################################################ - - Choose file path to install from - - 1 ) Install pre-built images from SDK - 2 ) Enter in custom boot and rootfs file paths - - ################################################################################ - - Choose now [1/2] : - -You should choose option **1** to create an SD card using the pre-built -images from the SDK. - -If you executed this script from within the SDK then the script can -determine the SDK path automatically and will start copying the contents -to the SD card. Once the files are copied the script will exit. - -If you executed the script from outside of the SDK (i.e. you copied it -to some other directory and executed it there) please see the next -section. - -**NOTE:** option 1 will only work with the format of the default SDK -directory name, which makes the Hands on with the SDK training easiest. -If you have to change the directory name, use option 2 to enter the -custom file paths. - -| - -.. rubric:: Enter SDK Path - :name: enter-sdk-path - -In the case that the script was invoked from a directory without the SDK -installation in the path, i.e. the script was copied to your home -directory and executed there, you may see a prompt like: - -:: - - no SDK PATH found - Enter path to SDK : - -Enter the path to the SDK installation directory here. For example, if -the SDK was installed into the home directory of the **sitara** user, the -path to enter would be -**/home/sitara/ti-processor-sdk-linux--**. You will be -prompted to confirm the installation directory. The SD card will then be -created using the default images and the script will exit when finished. - -| - -.. _processor-sdk-linux-sd-card-using-custom-images: - -SD Card Using Custom Images ----------------------------- - -Often times you will use TFTP and NFS during development to transfer you -kernel images and boot your root file systems respectively. Once you are -done with your development you may want place these images onto an SD -card so that they can be used stand-along without requiring a network -connection to a server. - -.. rubric:: Prerequisites - :name: sd-custom-image-prerequisites - -#. The |__SDK_FULL_NAME__| package is installed on your host system. -#. The SD card you wish to create is inserted into the host system and - has a size sufficiently large (16GB or larger) to hold at least the bootloaders, - kernel, and root file system. -#. You have started running the script as detailed in the `SD Card Common Steps `__ section above. - -.. rubric:: Choose Custom Images - :name: choose-custom-images - -You should now see a prompt like: - -:: - - ################################################################################ - - Choose file path to install from - - 1 ) Install pre-built images from SDK - 2 ) Enter in custom boot and rootfs file paths - - ################################################################################ - - Choose now [1/2] : - -Select option **2** to create an SD card with your custom images. - -.. rubric:: Select Boot Partition - :name: select-boot-partition - -You will now be prompted to provide a path to the location of the boot -partition files. The prompt will explain the requirements of the files -to be placed at the path, but the basic options are: - -#. Point to a tarball containing all of the files you want placed on the - boot partition. This would include the boot loaders and the kernel - image as well as any optional files like uEnv.txt. -#. Point to a directory containing the files for the boot partition like - those in the first option. - -The script is intelligent enough to recognize whether you provided a -tarball or a directory path and will copy the files accordingly. You -will be given a list of the files that are going to be copied and given -the option to change the path if the list of files is not correct. - -.. rubric:: Select Root Partition - :name: select-root-partition - -You will now be prompted to provide a path to the location of the root -file sysetm partition files. The prompt will explain the requirements of -the files to be placed at the path, but the basic options are: - -#. Point to a tarball of the root file system you want to use. -#. Point to a directory containing the root file sysetm such as an NFS - share directory. - -The script is intelligent enough to recognize whether you provided a -tarball or a directory path and will copy the files accordingly. You -will be given a list of the files that are going to be copied and given -the option to change the path if the list of files is not correct. - -| - -.. _processor-sdk-linux-sd-card-using-partition-tarballs: - -SD Card Using Partition Tarballs --------------------------------- - -This option is meant for board vendors to create SD cards to go in the -box with the EVM. It requires access to the three tarballs representing -the the partitions of the SD card shipped with the EVM. - -.. rubric:: Prerequisites - :name: sd-parition-tarballs-prerequisites - -#. The |__SDK_FULL_NAME__| package is installed on your host system. -#. The SD card you wish to create is inserted into the host system and - has a size sufficiently large (16GB or larger) to hold at least the bootloaders, - kernel, and root file system. -#. You have started running the script as detailed in the `SD Card Common - Steps `__ section above. - -.. rubric:: Provide Tarball Location - :name: provide-tarball-location - -After the SD card has been partitioned you will be prompted to: - -:: - - Enter path where SD card tarballs were downloaded : - -Point to the directory containing the following tarball files: - -- **boot\_partition.tar.gz** -- **rootfs\_partition.tar.gz** -- **start\_here\_partition.tar.gz** - -The script will show you the contents of the directory given and ask you -to verify that the tarballs are present in that directory. The SD card -will then be populated with the contents of the tarballs and be ready -for inclusion in the box with the EVM. diff --git a/source/linux/Release_Specific.rst b/source/linux/Release_Specific.rst deleted file mode 100644 index 11fbb3c86..000000000 --- a/source/linux/Release_Specific.rst +++ /dev/null @@ -1,12 +0,0 @@ -################## -Release Specific -################## - -.. toctree:: - :maxdepth: 5 - - Release_Specific_PLSDK_Release_Notes - Release_Specific_Performance_Guide - Release_Specific_Yocto_layer_Configuration - Release_Specific_Migration_Guide - Release_Specific_Supported_Platforms_and_Versions diff --git a/source/linux/Release_Specific_PLSDK_Release_Notes.rst b/source/linux/Release_Specific_PLSDK_Release_Notes.rst deleted file mode 100644 index d579f5716..000000000 --- a/source/linux/Release_Specific_PLSDK_Release_Notes.rst +++ /dev/null @@ -1,457 +0,0 @@ -.. _release-specific-release-notes: - -************************************ -Release Notes -************************************ -.. http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Release_Notes - -Overview -======== - -The **Processor Software Development Kit (Processor-SDK) for Linux** -provides a fundamental software platform for development, deployment and -execution of Linux based applications and includes the following: - -- Bootloaders & Filesystems -- SDK Installer -- Setup Scripts -- Makefiles -- Example Applications -- WLAN support (Wilink 8) -- Code Composer Studio - -Licensing -========= - -Please refer to the software manifest, which outlines the licensing -status for all packages included in this release. The manifest can be -found on the SDK download page. The manifest can be found on the SDK -download page or in the installed directory as indicated below. In -addition, see `GPLv3 Disclaimer `__ - -Documentation -=============== -- `Processor SDK Linux Software Developer's Guide `__: Provides information on features, functions, delivery package and, - compile tools for the Processor SDK Linux release. This also provides - detailed information regarding software elements and software - infrastructure to allow developers to start creating applications. -- `Processor SDK Linux Getting Started Guide `__: Provides information on getting the software and running - examples/demonstrations bundled in the SDK. -- **Software Manifest**: Provides license information on software - included in the SDK release. This document is in the release at - ``[INSTALL-DIR]/docs``. -- **EVM Quick Start Guide**: Provides information on hardware setup and - running the demonstration application that is loaded on flash. This - document is provided as part of the EVM kit. - -Release 06.03.00 -================== - -Released April 2020 - -.. rubric:: What's New - :name: whats-new - -Processor SDK 6.3 Release has following new features: - - -- Analytics - - TensorFlow Lite classification and segmentation demos with OpenCV - - TensorFlow Lite heterogeneous execution with TIDL acceleration with EVE’s and DSP’s on AM5729 and AM5749 devices - - sitara_am57x supported as AWS Sagemaker NEO target device - -- ICSSM PRUETH - - Network storm prevention enhancements - -- ICSSG PRUETH - - 100M Uboot Support in ICSSG on AM654x - - -.. _release-specific-sdk-components-versions: - -.. rubric:: SDK Components & Versions - :name: sdk-components-versions - -+--------------------------+----------------------------+ -| Component | Version | -+==========================+============================+ -| Linux Kernel | 4.19.94 (2019 LTS) | -+--------------------------+----------------------------+ -| U-Boot | 2019.01 | -+--------------------------+----------------------------+ -| Yocto Project | 2.6 (thud) | -+--------------------------+----------------------------+ -| ARM Toolchain (gcc) | 8.3 2019.03 hard-float | -+--------------------------+----------------------------+ -| Qt | 5.11.3 | -+--------------------------+----------------------------+ -| OpenCL | 1.1.19 | -+--------------------------+----------------------------+ -| OpenCV | 3.1 | -+--------------------------+----------------------------+ -| Wayland | 1.16 | -+--------------------------+----------------------------+ -| GStreamer | 1.14.4 | -+--------------------------+----------------------------+ -| TI PRU Compiler | 2.2.1 | -+--------------------------+----------------------------+ -| TI C66x CGT Compiler | 8.3.2 | -+--------------------------+----------------------------+ - -| - -Supported Platforms -===================================== -See :ref:`release-specific-supported-platforms-and-versions` for a list of supported platforms and links to more information. - -| - -.. _release-specific-build-information: - -Build Information -===================================== - -.. _u-boot-release-notes: - -U-Boot -------------------------- - -| The U-Boot git repository, branch and commit id can be found below: -| Based on verson: 2019.01 -| URL: git.ti.com/processor-sdk/processor-sdk-u-boot.git -| Branch: processor-sdk-u-boot-2019.01 -| Commit ID: 333c3e72d362c1fd1e5011e4e961c231b8f8edc8 - -| - -.. _release-specific-build-information-kernel: - -Kernel -------------------------- - -.. _release-specific-build-information-linux-kernel: - -.. rubric:: Linux Kernel - :name: linux-kernel - -| The kernel git repository, branch and commit id can be found below: -| Based on Version: 4.19.94 -| URL: git://git.ti.com/processor-sdk/processor-sdk-linux.git -| Branch: processor-sdk-linux-4.19.y -| Commit ID: be5389fd85b69250aeb1ba477447879fb392152f - -| - -.. _release-specific-build-information-rt-linux-kernel: - -.. rubric:: Real Time (RT) Linux Kernel - :name: real-time-rt-linux-kernel - -| The RT kernel git repository, branch and commit id can be found below: -| Based on: -| Kernel Version: 4.19.94 -| RT Kernel Version: 4.19.94-rt39 - -| URL: git://git.ti.com/processor-sdk/processor-sdk-linux.git -| Branch: processor-sdk-linux-rt-4.19.y -| Commit ID: a242ccf3f13f03d41d521411ce2cc09775c873a2 - -| - - -.. _release-specific-generic-kernel-release-notes: - -.. rubric:: Generic Kernel Release Notes - :name: generic-kernel-release-notes - -| Generic kernel release notes from kernelnewbies.org can be found at: - http://kernelnewbies.org/Linux_4.19 -| Archived versions can be found at: - http://kernelnewbies.org/LinuxVersions - -| - -Issues Tracker -===================================== - -Issues opened in previous releases that were closed on this release ---------------------------------------------------------------------- - -.. csv-table:: - :header: "Record ID", "Platform", "Title" - :widths: 15, 30, 100 - - PLSDK-1398,"k2e-evm,k2e-hsevm,k2h-hsevm,k2g-hsevm",Documentation IPC Demo hangs if run after OpenCL demos - PLSDK-3143,"am335x-evm, am437x-evm, am437x-idk, am572x-evm, am572x-idk, am574x-idk",TVM inside PLSDK Linux devkit not working for code generation - -| - - -Issues found and closed on this release that may be applicable to prior releases ------------------------------------------------------------------------------------ -.. csv-table:: - :header: "Record ID", "Platform", "Title" - :widths: 15, 20, 70 - - PLSDK-3157,"am654x-evm,am654x-idk,am654x-hsevm", ICSSG: Driver has to support changing of speed/duplex on the fly - PLSDK-3067,"am574x-idk", M4 Bind/Unbind Causes Hang - PLSDK-2642,"am574x-idk", PRU Ethernet links on IDK Application board are unstable - -| - -Errata Workarounds Available in this Release ------------------------------------------------- -.. csv-table:: - :header: "Record ID", "Title" - :widths: 15, 80 - - LCPD-5310,"i900: CTRL_CORE_MMR_LOCK_5 region after locking results in ctrl module inaccessible, recoverable only post a reset" - LCPD-5311,i893: DCAN ram init issues in HW AUTO and when traffic hitting CAN bus (open investigation) - LCPD-5309, LCPD: i896: USB Port disable doesnt work - LCPD-7642,MMC/SD: i832: return DLL to default reset state with CLK gated if not in SDR104/HS200 mode. - LCPD-4195,J6: SATA: Investigate applicability of i807 - LCPD-4225,J6: Errata: i834: Investigate possibility of software workaround - LCPD-976,J6/J6eco: 32clk is psuedo (erratum i856) - clock source - LCPD-975,J6/J6eco: 32clk is psuedo (erratum i856) - realtime counter - LCPD-1022,J6: Errata: i694: System I2C hang due to miss of Bus Clear support @ OMAP level - LCPD-1188,J6: Baseport: Errata i877: RGMII clocks must be enabled to avoid IO timing degradation due to Assymetric Aging - LCPD-9084,i887: Software workaround to limit mmc3 speed to 64MHz - LCPD-16904,PCIe: Unsupported request (UR) or Configuration Request Retry Status (CRS) in configuration completion response packets results in external abort - LCPD-5836,CAL: Errata: i913: CSI2 LDO needs to be disabled when module is powered on - LCPD-5460,Implement WA for Vayu errata i829 (Reusing Pipe Connected To Writeback Pipeline On The Fly To An Active Panel) - LCPD-5052,Upstream: Post the dmtimer errata fix for i874 - LCPD-4910,J6/OMAP5: errata i810 implementation - LCPD-4911,DRA7: USB: Investigate applicability of Errata i897: StopEndpoint_issue - LCPD-4912,DRA7: USB: Implement ErrataID_i896_PED_issue - LCPD-16363,"IO, MMCSD: Incorrect IO Power Supply Connectivity Prevent Dynamic Voltage Change on VDDSHV6 and VDDSHV7" - LCPD-16364,MMCSD: Negative Current from UHS-I PHY May Create an Over-Voltage Condition on VDDS6 and VDDS7 which exposes the Device to a Significant Reliability Risk - LCPD-16538,PCI-Express (PCIe) May Corrupt Inbound Data - LCPD-14184,USB: SuperSpeed USB Non-Functional - LCPD-14187,UDMA-P Real-time Remote Peer Registers not Functional Across UDMA-P Domains - LCPD-14185,MSMC: Non-coherent memory access to coherent memory can cause invalidation of snoop filter - LCPD-14159,The assertion of warm reset coinciding with a debug configuration access targeting the STM Subsystem may result in a hang of said debug configuration access - LCPD-13884,CPTracer Bus Probes MAIN_CAL0_0 and MCU_SRAM_SLV_1 are not able to distinguish between secure and non-secure transactions - LCPD-13887,DDR Controller ECC Scrubbing feature can cause DRAM data corruption - LCPD-4647,[rpmsg 2015 LTS] Implement errata i879 - DSP MStandby requires CD_EMU in SW_WKUP - LCPD-4648,[rpmsg 2014 LTS] Implement errata i879 - DSP MStandby requires CD_EMU in SW_WKUP - LCPD-4975,DSS AM5/DRA7: implement WA for errata i886 - LCPD-14941,RINGACC and UDMA ring state interoperability issue after channel teardown - LCPD-14579,DSS : DSS Does Not Support YUV Pixel Data Formats - LCPD-14580,DSS : DSS Does Not Support YUV Pixel Data Formats - LCPD-14578,DSS : DSS DPI Interface does not support BT.656 and BT.1120 output modes - LCPD-14577,CPSW does not support CPPI receive checksum (Host to Ethernet) offload feature - LCPD-8277,u-boot: j6: SATA is not shutdown correctly as per errata i818 - LCPD-8294,37 pins + VOUT pins need slow slew enabled for timing and reliability respectively - LCPD-5308,i897: USB Stop Endpoint doesnt work in certain circumstances - LCPD-6907,Workaround errata i880 for RGMII2 is missing - LCPD-5931,DRA7xx: AM57xx: mmc: upstream errata workaround for i834 - LCPD-5924,ALL: CONNECTIVITY: CPSW: errata i877 workarround for cpsw - LCPD-4218,Implement Workaround for Errata i813 - Spurious Thermal Alert Generation When Temperature Remains in Expected Range - LCPD-4217,Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted - LCPD-4184,Implement workaround for errata i814 - Bandgap Temperature read Dtemp can be corrupted - LCPD-1146,DMM hang: Errata VAYU-BUG02976 (i878) (register part) - LCPD-1087,J6: MMC: Errata: i802: OMAP5430 MMCHS: DCRC errors during tuning procedure - LCPD-1108,J6: Wrong Access In 1D Burst For YUV4:2:0-NV12 Format (Errata i631) - LCPD-876,OMAP5: Errata i810: DPLL Controller Sticks when left clock requests are removed - LCPD-16605,MMC: MMC1/2 Speed Issue - LCPD-17220,U-Boot Hyperbus: Hyperflash reads limited to 125MHz max. frequency - LCPD-16643,Hyperbus: Hyperflash reads limited to 125MHz max. frequency - LCPD-16350,DSS: Frame Buffer Flip/Mirror Feature Using RGB24/BGR24 Packed Format can Result in Pixel Corruption - LCPD-9173,i897: USB Stop Endpoint doesnt work in certain circumstances - LCPD-17333,[CPTS] GENF (and ESTF) Reconfiguration Issue - LCPD-14186,UDMA-P Host Packet Descriptor’s “0x3FFFFF” Packet Length Mode not Functional - LCPD-1776,"[J6 SATA Adaptation] J6 - Errata i783, SATA Lockup After SATA DPLL Unlock/Relock" - LCPD-941,"OMAP4,5: DSS: implement workaround for errata i740" - LCPD-1171,DRA7: DMM errata i878 (framebuffer part) - - -| - -SDK Known Issues ------------------ -.. csv-table:: - :header: "Record ID", "Platform", "Title", "Workaround" - :widths: 25, 30, 50, 600 - - LCPD-15810,"am335x-evm, am43xx-gpevm, k2g-evm",Illegal instruction reported when trying to decode h264 stream with gstreamer,None - PLSDK-1398,"k2e-evm, k2e-hsevm, k2g-hsevm, k2hk-hsevm",IPC demo hangs if run after OpenCL demos,Run IPC demo w/o running OpenCL first - PLSDK-1419,k2l-evm,Intermittent-IP address display issue on LCD for K2L RT,"Use ifconfig once Linux boots, to acquire IP address" - PLSDK-2178,"am335x-ice, am437x-idk, am574x-idk",ICSS EMAC intermittent error in received acyclic packet content,None - PLSDK-2466,"am335x-ice, am437x-idk, am571x-idk, am572x-idk, k2g-ice",Fix Race condition in updating NSP credit value,None - PLSDK-2530,"am335x-ice, am437x-idk",AM3/4 PTP PPS fails intermittently,No complete workaround. Restarting the ethernet interface should reset PPS and likely resolve the issue temporarily. - PLSDK-2642,am654x-idk,PRU Ethernet links on IDK Application board are unstable,"IDK Limitation, requires re-work" - PLSDK-2662,"am335x-ice, am437x-idk, am571x-idk, am572x-idk, am574x-idk, k2g-ice",HSR/PRP: Bringing down one slave port stops HSR/PRP interface,None - PLSDK-2861,"k2e-evm, k2g-evm, k2hk-evm, k2l-evm",Crypto is not functional on 2019 LTS,None - PLSDK-2873,k2g-ice,K2G-ICE kernel warnings when removing PRUETH module,None - PLSDK-2895,am571x-idk,AM571x-IDK: Icss Emac: TTS Port 1: Packet cyclic timestamp error.,None - PLSDK-2896,"k2e-evm, k2e-hsevm, k2hk-evm",mpm_transport_hyperlink_loopback: transport arm-loopback-hyplnk-0 failed (error: -114) retval -1001,No workaround - PLSDK-2900,"am335x-evm, am437x-evm, k2e-evm, k2g-evm, k2hk-evm, k2l-evm","crypto examples are skipped from toplevel SDK Makefile, due to OpenSSL dependency",No workaround - PLSDK-2913,am572x-idk,NetJury Test Failure: TC_PRP_4_3_4_____Reception_of_a_PRP_Supervision_frame_and_Nodes_Table - test_VLAN,No workaround - PLSDK-2936,am572x-evm,jailhouse: failed in destroy cell,None - PLSDK-2937,am572x-evm,jailhouse: ti-app demo doesn't start,None - PLSDK-2960,am571x-idk,HSR/PRP: Noticed 1 packet loss seen with UDP tests over 60 minute test,None - PLSDK-2989,"am335x-evm, am437x-evm, am437x-hsevm, am572x-evm, am572x-hsevm, k2e-evm, k2g-evm, k2l-evm, k2l-hsevm",defconfig build failure: reported diff, - PLSDK-3031,"am571x-idk, am572x-idk, am574x-idk",HSR: erroneous A-B forwarding of frames, - PLSDK-3032,"am571x-idk, am572x-idk, am574x-idk","HSR: forwarding of untagged frames in default mode H not according to IEC 62439-3:2016, “5.3.3 DANH receiving from an HSR port”.",None - PLSDK-3057,"am335x-evm, am437x-evm, am572x-evm, am654x-evm, am654x-idk",ARMNN with TFLite parser: performance/accuracy issue with quantized mobilenet models,Patch from arm compute library https://review.mlplatform.org/c/ml/ComputeLibrary/+/1620/. - PLSDK-3071,"am571x-idk, am572x-evm, am572x-idk, am574x-idk",Dual camera demo: Overlapping of camera and stats panel due to big font size,None - PLSDK-3074,am572x-idk,NetJury Test Failure: TC_PRP_4_2_4_____IP_addresses,None - PLSDK-3086,"am571x-idk, am572x-idk",Unable to handle kernel NULL pointer dereference when disabling HSR,None - PLSDK-3089,"am572x-evm, k2l-evm",openmpacc example test failed on am572x-evm and k2l-evm, - PLSDK-3091,am572x-idk,Jailhouse: ICSS_EMAC_LLD test hangs during TTS tests on ICSS_EMAC_TEST_PRU2ETH0 and ICSS_EMAC_TEST_PRU2ETH1, - PLSDK-3125,"am571x-idk, am572x-idk, am574x-idk",clean up timestamp queue when extts is disabled, - PLSDK-3128,"am572x-evm, am572x-hsevm, am572x-idk, am574x-hsidk, am574x-idk",SDK disk image for Windows users too large for 16GB SD card, - PLSDK-3138,,EtherCAT in Jailhouse inmate: instruction abort at 0x80013f00, - PLSDK-3147,am654x-idk,ICSSG: < 0.01 packet loss at 3/4/4.5 Mbits/sec for 10M Half Duplex link, - PLSDK-3148,am654x-idk,ICSSG: 10M/100M Half duplex doesn't work with 10/100M Hub, - PLSDK-3152,am654x-idk,10M/100M EVM <-------> PC / H3C S5120V2: setup results in kernel errors and ping failures, - PLSDK-3171,"am335x-ice, am437x-idk, am571x-idk, am572x-idk, am574x-idk, k2g-ice",DualEMAC PTP IPv4/UDP transport does not support VLAN, - PLSDK-3172,"am335x-ice, am437x-idk, am571x-idk, am572x-idk, am574x-idk, k2g-ice",DualEMAC PTP IPv4/UDP transport does not drop SYNC messages from unknown PTP masters, - PLSDK-3179,"am572x-idk",OpenCV_stereoBM_implementation test failed on am5729-idk, - PLSDK-3182,"am571x-idk",RSTP switch PRU ethernet driver should use 4 tx queues instead of 2, - PLSDK-3183,"am571x-idk",RSTP switch PRU ethernet driver should purge FDB only when going in or out of blocking state, - PLSDK-3184,"am571x-idk",RSTP switch PRU ethernet driver should age out dynamically learned FDB, - PLSDK-3185,"am571x-idk",RSTP switch PRU ethernet driver multicast filtering is not working, - PLSDK-3191,"am335x-ice",icss-m: prueth: AM335x Single EMAC broken, - PLSDK-3213,"am654x-idk",DP83867: auto negotiation at 10M/100M unstable, - PLSDK-3215,"omapl138-lcdk",Windows SD card creation does not result in bootable binary, - PLSDK-3219,"am571x-idk,am572x-idk,am574x-idk",Invalid PTP message type warnings, - PLSDK-3219,"am571x-idk,am572x-idk,am574x-idk",Invalid PTP message type warnings, - PLSDK-3220,"am572x-evm,am572x-idk", Neo-AI DLR TIDL demo image preprocssing incorrectly indexing pixels, - PLSDK-3225,"am654x-evm", bin/create-ubifs.sh not available in SDK, - PLSDK-3232,"am654x-evm", UDP throughput numbers are half of what they should be, - PLSDK-3238,"am335x-evm,am437x-evm", Docker hello world test failure on am335x-evm/am437x-evm/dra76x-evm, - PLSDK-3240,"am571x-idk,am572x-idk,am574x-idk", RSTP prueth: cable removal can cause instability on disabled Ethernet port, - PLSDK-3241,"am571x-idk,am572x-idk,am574x-idk", RSTP_SWITCH_FW: Re-calculate timeout value for PRU-side locking, - -| - -.. _release-specific-u-boot-known-issues: - -U-Boot Known Issues ------------------------- -.. csv-table:: - :header: "Record ID","Platform", "Title","Workaround" - :widths: 15, 30, 70, 30 - - LCPD-16524,"am654x-evm, am654x-idk, am654x-hsevm",Need to adjust RMW bit when using enabling ECC,None - LCPD-16103,am654x-evm,AM6: MMC: Probe fail warning in bootloader,None - LCPD-15873,am654x-evm,There is no dtbo in u-boot for PCIe x1 + usb3 daughter card,None - LCPD-15127,am654x-evm,u-boot: net: Stop called even without start leading to crash,None - LCPD-15054,"am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm",[u-boot] AM57xx phy_ctrl structures must be board-specific,None - LCPD-14843,"am654x-evm, am654x-idk",U-boot should support default settings for netboot,None - LCPD-14638,"k2g-evm, k2g-ice",Invalid DDR_PHY_MR2 setting in K2G board library,None - LCPD-10726,"am572x-idk, am57xx-evm",Update DDR3 emif regs structure for EMIF2 for the beagle_x15 board in U-Boot board file,None - LCPD-10668,k2g-evm,Ethernet boot: Sometimes the board could not boot uboot from Ethernet on k2g-evm,None - LCPD-7366,am335x-evm,uboot McSPI driver drives multiple chip selects simultaneously,None - - -| - -.. _release-specific-linux-kernel-known-issues: - -Linux Kernel Known Issues ---------------------------- -.. csv-table:: - :header: "Record ID", "Priority", "Title", "Component", "Subcomponent", "Platform", "Workaround", "Impact" - :widths: 5, 10, 70, 10, 5, 20, 35, 20 - - LCPD-16877,P3-Medium,ti-ipc-examples-linux intermittent build failure,"IPC, System Integration",,k2hk-evm,, - LCPD-16534,P3-Medium,remoteproc/k3-r5f: PDK IPC echo_test image fails to do IPC in remoteproc mode on second run,IPC,Firmware,"am654x-evm, am654x-idk",None, - LCPD-17529,P3-Medium,Could not access usbhost when booting from SD card,Connectivity,,am43xx-gpevm,, - LCPD-17441,P3-Medium,TI_CPSW Module cannot be removed and reinserted,Connectivity,,am57xx-evm,, - LCPD-17329,P3-Medium,K2E RT-Linux USB fails when using USB-Ethernet dongle to scp file (512MB),Connectivity,USB,k2e-evm,, - LCPD-17118,P3-Medium,Kernel MMC/SD user's guide incorrectly refers to OMAP-HSMMC,Connectivity,MMCSD,"am57xx-evm, dra7xx-evm",None, - LCPD-16590,P3-Medium,am335x: usb bus power lost after system suspend resume,Connectivity,usb,"am335x-evm, am335x-sk, beaglebone-black",, - LCPD-16406,P3-Medium,"Seeing ""e1000#0: ERROR: Hardware Initialization Failed"" sometimes when do dhcp via pcie-eth",Connectivity,,am654x-idk,, - LCPD-16029,P3-Medium,AM65: icssg: PRU ethernet links might be unstable with new PHY package,Connectivity,PRUSS-Ethernet,"am654x-evm, am654x-idk, am654x-hsevm",, - LCPD-15952,P3-Medium,DCAN Documentation incorrect,Connectivity,,am335x-evm,None, - LCPD-15885,P3-Medium,Uboot usb start trigger the board resetting with one usb stick,Connectivity,,k2hk-evm,, - LCPD-15787,P3-Medium,Power suspend fails due to USB (scsi_bus_suspend) failure when HDD is in use,Connectivity,,am335x-evm,, - LCPD-15737,P3-Medium,AM65x: MMC OTAPDLY values must match values in the Data Manual,Connectivity,MMCSD,"am654x-evm, am654x-idk",, - LCPD-15660,P3-Medium,pcie sata or usb drive no device node being created,Connectivity,,k2g-evm,, - LCPD-15649,P3-Medium,Uboot: sata could not be detected,Connectivity,,am57xx-evm,, - LCPD-15540,P3-Medium,uvc-gadget results in segmentation fault,Connectivity,,"am57xx-evm, am654x-evm, dra71x-evm, dra7xx-evm",, - LCPD-15515,P3-Medium,PCI: Endpoint: MSIX interrupts do not work on AM654,Connectivity,PCIe,am654x-evm,, - LCPD-15405,P3-Medium,DFU: could not update eMMC bootloaders when using dfu_alt_info_emmc set in uboot env,Connectivity,,"am57xx-evm, dra71x-evm, dra7xx-evm",, - LCPD-15365,P3-Medium,warning dump in fs/nfs/inode.c seen sometimes,Connectivity,CPSW,am654x-evm,, - LCPD-14855,P3-Medium,omap_i2c_prepare_recovery() function can Lock System,Connectivity,I2C,"am335x-evm, am335x-ice, am335x-sk",, - LCPD-14842,P3-Medium,musb: unplug usb-serial device cause console lockup,Connectivity,USB,"am335x-evm, am335x-sk, beaglebone-black",, - LCPD-14511,P3-Medium,AM65x: Soft reset fails when booting from eMMC,Connectivity,MMCSD,"am654x-evm, am654x-idk",, - LCPD-14497,P3-Medium,PCIe Gen3 problems on AM654x,Connectivity,,"am654x-evm, am654x-idk",, - LCPD-14460,P3-Medium,am654x-idk failed to boot to kernel prompt occasionally,Connectivity,,am654x-idk,, - LCPD-14171,P3-Medium,Failed to read uboot from SD card 1/1000 times,Connectivity,,"am57xx-evm, dra7xx-evm",, - LCPD-13936,P3-Medium,Uboot dhcp timeout 1 of 100 times,Connectivity,,am654x-evm,, - LCPD-13720,P3-Medium,SPI DMA TX Mode Halts During Continuous 16/32/64 bit Transfers,Connectivity,,beaglebone-black,, - LCPD-13452,P3-Medium,USB Gadget Camera Capture - guvcview causes kernel oops,Connectivity,,k2g-evm,, - LCPD-13445,P3-Medium,Seldom kernel oops triggered by prueth_netdev_init,Connectivity,,am654x-evm,, - LCPD-11952,P3-Medium,AM57x: disabling USB super-speed phy in DT causes kernel crash,Connectivity,USB,"am571x-idk, dra72x-evm",, - LCPD-11564,P3-Medium,AM57xx-evm: eth1 1G connection failure to netgear switch,Connectivity,"CPSW, ETHERNET, PHYIF",am57xx-evm,, - LCPD-10974,P3-Medium,am43xx-gpevm - usb camera gadget shows halting frames,Connectivity,USB,am43xx-gpevm,None, - LCPD-9905,P3-Medium,AM437x: UART: Implement workaround for Advisory 27 - Spurious UART interrupts when using EDMA,Connectivity,UART,am43xx-gpevm,, - LCPD-9366,P3-Medium,PCIe USB drive sometimes could not be enumerated,Connectivity,PCIe,k2g-evm,, - LCPD-7623,P3-Medium,Seeing SPI transfer failed error sometimes on k2hk when using rt kernel,Connectivity,SPI,k2hk-evm,, - LCPD-1106,P3-Medium,Connectivity:PCIe-SATA ext2 1G write performance is poor due to ata failed command,Connectivity,PCIe,"am57xx-evm, dra71x-evm, dra71x-hsevm, dra72x-evm, dra72x-hsevm, dra7xx-evm, dra7xx-hsevm",None, - LCPD-17673,P3-Medium,No software documentation for the Timer module,Baseport,Timers,"am335x-evm, am43xx-gpevm, am571x-idk, am572x-idk, am574x-idk, am57xx-evm, am654x-evm, beaglebone-black, dra71x-evm, dra72x-evm, dra7xx-evm, j721e-evm",, - LCPD-17422,P3-Medium,Disabling IRQ #64 message observed sometimes,Baseport,,"am654x-evm, am654x-hsevm",, - LCPD-16845,P3-Medium,OPP freq update in DT impacts only cluster0,Baseport,,"am654x-evm, am654x-idk",, - LCPD-14191,P3-Medium,IPSec hardware-based throughput is 30% lower than 2018.03,Baseport,,"am335x-evm, am57xx-evm",, - LCPD-16642,P3-Medium,"omapdrm: in some cases, DPI output width does not need to be divisible by 8",Audio & Display,Display,"am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm, dra71x-evm, dra71x-hsevm, dra72x-evm, dra72x-hsevm, dra76x-evm, dra76x-hsevm, dra7xx-evm, dra7xx-hsevm",, - LCPD-15819,P3-Medium,"tidss: the driver should reject dual-display setup, as it is not supported",Audio & Display,Display,am654x-evm,, - LCPD-15518,P3-Medium,omapdrm: WB M2M: Headless mode is not working,Audio & Display,Writeback,"am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm, dra71x-evm, dra71x-hsevm, dra72x-evm, dra72x-hsevm, dra76x-evm, dra76x-hsevm, dra7xx-evm, dra7xx-hsevm",, - LCPD-15402,P4-Low,rpmsg-rpc: test application does not bail out gracefully upon error recovery,IPC,"DSP_remoteproc, IPU_remoteproc","am571x-idk, am572x-idk, am574x-idk, am57xx-evm, am57xx-beagle-x15, dra71x-evm, dra72x-evm, dra76x-evm, dra7xx-evm",, - LCPD-15400,P4-Low,remoteproc/omap: System suspend fails for IPU1 domain without any remoteprocs loaded,IPC,IPU_remoteproc,"am571x-idk, am572x-idk, am574x-idk, am57xx-evm, am57xx-beagle-x15, dra71x-evm, dra72x-evm, dra76x-evm, dra7xx-evm",, - LCPD-10455,P4-Low,remoteproc/keystone: Hang observed while running RPMSG_PROTO example app,IPC,DSP_remoteproc,"k2g-evm, k2g-ice, k2hk-evm, k2l-evm",, - LCPD-9481,P4-Low,Sometime the system hangs while loading the rpmsg rpc modules,IPC,RPMSG-RPC,"am571x-idk, am572x-idk, am57xx-evm, am57xx-hsevm",, - LCPD-7495,P4-Low,Sometimes a Kernel Warning + Oops is seen when removing keystone_remoteproc module,IPC,,k2hk-evm,, - LCPD-4855,P4-Low,[rpmsg 2015 LTS] J6Eco: IPC: Board hangs when an MMU fault occurs in the first message,IPC,,"am572x-idk, dra72x-evm",, - LCPD-4699,P4-Low,[rpmsg 2015 LTS] rpmsg-rpc: kernel crash during error recovery with dynamic debug traces enabled,IPC,,"am571x-idk, am572x-idk, am57xx-evm, dra72x-evm, dra7xx-evm",, - LCPD-17116,P4-Low,AM335x rmii2_crs_dv is not being muxed in due to SMA rmii2_crs_dv_sel not set,Connectivity,,am335x-evm,, - LCPD-16437,P4-Low,Nand with prefetch dma: read perf drop ~20% comparing to 2018,Connectivity,,am335x-evm,, - LCPD-15648,P4-Low,Uboot mmc performance decreased,Connectivity,,am335x-evm,, - LCPD-12783,P4-Low,Missing instruction for pcie-ep config on k2g-evm for 4.19 kernel,Connectivity,,k2g-evm,, - LCPD-12392,P4-Low,USBhost video: higher resolution tests fail with some cameras,Connectivity,,am335x-evm,, - LCPD-6075,P4-Low,BUG: using smp_processor_id() in preemptible [00000000] code during remoteproc suspend/resume,"Baseport, IPC",,"am572x-idk, am57xx-evm, dra7xx-evm",, - LCPD-9098,P4-Low,Writeback: error prints seen when doing wb capture,Audio & Display,"Capture, Display, Writeback","am571x-idk, am572x-idk, am57xx-evm, dra71x-evm, dra71x-hsevm, dra72x-evm, dra72x-hsevm, dra7xx-evm, dra7xx-hsevm",, - - -| - -.. _release-specific-rt-linux-kernel-known-issues: - -RT Linux Kernel Known Issues ------------------------------ - -.. csv-table:: - :header: "Record ID", "Priority", "Title", "Component", "Platform", "Workaround" - :widths: 5, 10, 70, 10, 20, 15 - - LCPD-6663 ,P3-Medium ,[RT] Kmemleak is buggy and boot is crashed randomly ,Baseport , , - LCPD-7623 ,P3-Medium ,Seeing SPI transfer failed error sometimes on k2hk when using rt kernel ,Connectivity ,k2hk-evm , - LCPD-11586 ,P3-Medium ,dhcp failed to get IP address after reboot for K2G-ICE non-RT linux ,Baseport ,"k2g-ice ", - -| - - -.. rubric:: Installation and Usage - :name: installation-and-usage - -The `Software Developer's Guide `__ provides instructions on how to setup up your Linux development -environment, install the SDK and start your development. It also includes User's Guides for various Example Applications and Code -Composer Studio. - -| - -.. rubric:: Host Support - :name: host-support - -The Processor SDK is developed, built and verified on Ubuntu 16.04 and 18.04. Details on how to create a virtual machine to load Ubuntu -are described in `this page `__. - - -.. note:: - Processor SDK Installer is 64-bit, and installs only on 64-bit host - machine. Support for 32-bit host is dropped as Linaro toolchain is - available only for 64-bit machines - -| diff --git a/source/linux/Release_Specific_Performance_Guide.rst b/source/linux/Release_Specific_Performance_Guide.rst deleted file mode 100644 index 9b9ac58f9..000000000 --- a/source/linux/Release_Specific_Performance_Guide.rst +++ /dev/null @@ -1,11 +0,0 @@ -************************************ -Performance Guide -************************************ - -Kernel Performance Guide -================================= -.. include:: Release_Specific/Performance_Guide/_Kernel_Performance_Guide.rst - -RT Kernel Performance Guide -================================= -.. include:: Release_Specific/Performance_Guide/_RT_Kernel_Performance_Guide.rst diff --git a/source/linux/index.rst b/source/linux/index.rst deleted file mode 100644 index 493b102e3..000000000 --- a/source/linux/index.rst +++ /dev/null @@ -1,56 +0,0 @@ -.. _linux-index: - -********************************************** -Processor SDK Linux Software Developer's Guide -********************************************** - -.. rubric:: Welcome to the Processor SDK Linux Software Developer's Guide - :name: welcome-to-the-processor-sdk-linux-software-developers-guide - -.. ifconfig:: CONFIG_sdk in ('SITARA') - - .. note:: - | Processor SDK documentation is now created from reStructuredText sources using - Sphinx, and hosted on ti.com instead of processors wiki - starting - 4.3 release. - | - | We intend to retain the look and feel of the content - to make this transition seamless, and yet provide the users with the benefits of - consuming the content generated with emergent documentation tools. - | - | Wiki content will be left for reference during this migration process to find any missing old content. Feel free to drop us a note using the - forums listed at :ref:`Technical Support `, and we would love to hear from you. - | - | Old Wiki Documentation links from previous releases: - | - `Wiki Software Developer's Guide `__. - | - `Wiki Getting Started Guide `__. - | - -.. include:: Overview/_Processor_SDK_Linux_Software_Developers_Guide.rst - -.. toctree:: - :maxdepth: 5 - :hidden: - :numbered: - - Overview - Release_Specific - Foundational_Components - Industrial_Protocols - Examples_and_Demos - How_to_Guides - Documentation_Tarball - -| - -.. rubric:: Feedback - :name: feedback - -If you have feedback, suggestions, or ideas on how to improve the SDK, -it is very appreciated. Please post your ideas to the Linux -forum listed at :ref:`Technical Support `. - - -+--------------------------------+---------------------------------------------------------------------------------------------------+ -| .. Image:: /images/E2e.jpg | For technical support please post your questions at `https://e2e.ti.com `__. | -+--------------------------------+---------------------------------------------------------------------------------------------------+