Quantcast
Channel: Processors forum - Recent Threads
Viewing all 17527 articles
Browse latest View live

TMS320C6654: In Ethernet boot mode, is the mac address different for each chip?

$
0
0

Part Number:TMS320C6654

We are looking at implementing a system where the DSPs are loaded with code over Ethernet from another processor.

We would prefer to avoid having to have flash or nvram for the DSPs ti simplify manufacturing and maintenance.

It appears from "KeyStone Architecture DSP Bootloader" manual section 3.5.2, the source mac address will

be the device MAC addr (from boot parameters).  There is also a 4-character device id.

The TMS320C6652/53 Data sheet, section 6.24.3.2, shows the Ethernet Mode boot parameter table, with

the MAC address and device id.  My questions are

a) If we are just using the Boot ROM, and have the board strapped for Ethernet boot, how will the MAC address be configured?

b) If it configured by the Boot ROM< will they be different for each device.

c) Is there any way short of running Ethernet boot to determine the MAC address and Device ID?

Thanks in Advance.


TMS320C6748: Single core (c6748) vs dual core (omapl138) differentiation

$
0
0

Part Number:TMS320C6748

Hi,

I need to migrate an application from the C6748 to a omapl138.

My question is: Is there a way for the application executed by the dsp to know on which processor (C6748 or ompaL138/Dsp side)  it is running?

Regards,

 Bruno

CCS/TDA2PXEVM: How to do RF IF Loopback

$
0
0

Part Number:TDA2PXEVM

Tool/software: Code Composer Studio

Hi TDA/Vision SDK Team,

We are currently developing on the TDA2PXEVM with Fusion Application Board and a custom radar board with 4x UB953 and AWR1243 using Vision SDK 3.05.

We are running the cascade radar capture + null use case and seem to be running into data integrity issues, so we want to run rlRfSetIFLoopbackConfig() to verify that our TX and RX chains are working correctly. However, there don't seem to be any examples in the SDK as to how or when the function can be invoked. Is there any documentation on using this function to perform debug?

Thanks,

Richard Lee

RTOS/TMDSICE3359: How can I build examples?

$
0
0

Part Number:TMDSICE3359

Tool/software: TI-RTOS

Dear All,

How can I build examples in ..\pdk_am335x_1_0_13\packages\ti\starterware\examples\ .. ?

Sincerely,

Eui-heon

Linux/AM5706: HSR / PTP Announce timeout

$
0
0

Part Number:AM5706

Tool/software: Linux

We are not able to make PTP working with HSR PRU FW.

SDK: Linux RT SDK 5.02

PHY: dp83822

Here are the steps:

1. Configure  HSR using this script (eth1 and eth2 are used):

ETH1="${1:-eth1}"
ETH2="${2:-eth2}"
IP="${3:-192.168.33.187}"

ifconfig ${ETH1} 0.0.0.0 down
ifconfig ${ETH2} 0.0.0.0 down
ifconfig ${ETH1} hw ether ${MAC}
ifconfig ${ETH2} hw ether ${MAC}
ethtool -K ${ETH1} hsr-rx-offload on
ethtool -K ${ETH2} hsr-rx-offload on
ifconfig ${ETH1} up
ifconfig ${ETH2} up
ip link add name hsr0 type hsr slave1 ${ETH1} slave2 ${ETH2} supervision 45 version 1
ethtool -C ${ETH1} rx-usecs 200
ethtool -C ${ETH2} rx-usecs 200
ethtool -C ${ETH1} adaptive-rx on
ethtool -C ${ETH2} adaptive-rx on
ifconfig hsr0 ${IP}

Observation: Able to perform HSR ping tests with other HSR devices (IDK, PC with redbox).

2. Connect a PTP master clock source using a redbox into the HSR ring. This PTP master clock is successfully used to sync our HW using GMAC and PRUETH interfaces.

3. Run PTP daemon using the command:

root@am57xx-evm:~# ptp4l -2 -P -f oc-hsr0.cfg -s -m
ptp4l[148.290]: selected /dev/ptp1 as PTP clock
ptp4l[148.350]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[148.353]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[155.648]: port 1: announce timeout
ptp4l[155.651]: selected best master clock 0e7e20.fffe.41037c
ptp4l[162.039]: port 1: announce timeout
ptp4l[162.041]: selected best master clock 0e7e20.fffe.41037c
ptp4l[169.285]: port 1: announce timeout
ptp4l[169.287]: selected best master clock 0e7e20.fffe.41037c
ptp4l[176.997]: port 1: announce timeout
ptp4l[176.999]: selected best master clock 0e7e20.fffe.41037c
ptp4l[184.934]: port 1: announce timeout
ptp4l[184.936]: selected best master clock 0e7e20.fffe.41037c
ptp4l[191.462]: port 1: announce timeout
ptp4l[191.464]: selected best master clock 0e7e20.fffe.41037c
ptp4l[199.121]: port 1: announce timeout
ptp4l[199.122]: selected best master clock 0e7e20.fffe.41037c

root@am57xx-evm:~# cat oc-hsr0.cfg
[global]
tx_timestamp_timeout 10
logMinPdelayReqInterval -3
logSyncInterval -3
twoStepFlag 1
summary_interval 0
[eth1]
egressLatency 726
ingressLatency 186

Observation: Repeated "port 1: announce timeout" messages logged by PTP daemon.

Linux/AM3352: AM3352 Linux Panic on rare and random calls to tc

$
0
0

Part Number:AM3352

Tool/software: Linux

We rarely get this panic on our device,

[90006.155293] Internal error: Oops: 17 [#1] ARM
[90006.159874] Modules linked in: mdl_driver(O) rohc(O) fpga_driver(O)
[90006.166440] CPU: 0 PID: 42 Comm: kworker/u2:1 Tainted: G           O    4.14.67 #8
[90006.174342] Hardware name: Generic AM33XX (Flattened Device Tree)
[90006.180711] task: cc12a600 task.stack: cc23e000
[90006.185463] PC is at pwq_activate_delayed_work+0x14/0x68
[90006.191009] LR is at pwq_activate_delayed_work+0x14/0x68
[90006.196551] pc : [<c01340b8>]    lr : [<c01340b8>]    psr: 40010093
[90006.203091] sp : cc23fed8  ip : cc23fed8  fp : cc23feec
[90006.208541] r10: 00000088  r9 : 00000000  r8 : cc110700
[90006.213993] r7 : 00000000  r6 : 00000000  r5 : cb2741d0  r4 : cc110700
[90006.220803] r3 : 00000000  r2 : 00000001  r1 : cb2741d4  r0 : 00000000
[90006.227616] Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
[90006.235155] Control: 10c5387d  Table: 8b1cc019  DAC: 00000051
[90006.241151] Process kworker/u2:1 (pid: 42, stack limit = 0xcc23e208)
[90006.247782] Stack: (0xcc23fed8 to 0xcc240000)
[90006.252329] fec0:                                                       cc110700 00000000
[90006.260872] fee0: cc23ff0c cc23fef0 c0135d1c c01340b0 cc1b8a80 c96f98cc cc005000 00000000
[90006.269415] ff00: cc23ff44 cc23ff10 c0136224 c0135cc4 c0915540 cc005014 cc1b8a98 cc1b8a80
[90006.277958] ff20: cc005000 cc005000 c0915540 cc005014 cc1b8a98 00000088 cc23ff74 cc23ff48
[90006.286500] ff40: c0136c74 c0135f5c 00000000 cc1ea440 cc1ea3c0 cc23e000 00000000 cc1b8a80
[90006.295043] ff60: c01369dc cc051e94 cc23ffac cc23ff78 c013b38c c01369e8 cc1ea458 cc1ea458
[90006.303585] ff80: cc23ffac cc1ea3c0 c013b24c 00000000 00000000 00000000 00000000 00000000
[90006.312127] ffa0: 00000000 cc23ffb0 c0107208 c013b258 00000000 00000000 00000000 00000000
[90006.320669] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[90006.329209] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[90006.337741] Backtrace:
[90006.340311] [<c01340a4>] (pwq_activate_delayed_work) from [<c0135d1c>] (pwq_dec_nr_in_flight+0x64                                                                                                                                         /0xcc)
[90006.350118]  r5:00000000 r4:cc110700
[90006.353854] [<c0135cb8>] (pwq_dec_nr_in_flight) from [<c0136224>] (process_one_work+0x2d4/0x2e8)
[90006.363029]  r7:00000000 r6:cc005000 r5:c96f98cc r4:cc1b8a80
[90006.368940] [<c0135f50>] (process_one_work) from [<c0136c74>] (worker_thread+0x298/0x3fc)
[90006.377482]  r10:00000088 r9:cc1b8a98 r8:cc005014 r7:c0915540 r6:cc005000 r5:cc005000
[90006.385655]  r4:cc1b8a80
[90006.388310] [<c01369dc>] (worker_thread) from [<c013b38c>] (kthread+0x140/0x158)
[90006.396037]  r10:cc051e94 r9:c01369dc r8:cc1b8a80 r7:00000000 r6:cc23e000 r5:cc1ea3c0
[90006.404211]  r4:cc1ea440 r3:00000000
[90006.407956] [<c013b24c>] (kthread) from [<c0107208>] (ret_from_fork+0x14/0x2c)
[90006.415501]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c013b24c
[90006.423674]  r4:cc1ea3c0
[90006.426324] Code: e92dd830 e24cb004 e1a05000 ebffffb5 (e5902000)
[90006.432687] ---[ end trace ea4998e60956d972 ]---
[90006.437508] Kernel panic - not syncing: Fatal exception
[90006.442964] Rebooting in 30 seconds..

Has anyone seen this and what could this point on?

CCS/TDA3XEVM: M4 debug

$
0
0

Part Number:TDA3XEVM

Tool/software: Code Composer Studio

Hi Experts,

When we debug M4 of TDA3 with F5/F6 (step into/over), PC always jumps to Hwi_dispatch__I(). We can not debug M4. Can you please tell us how to avoid this or how to debug M4 with F5/F6 (step into/over)?

Best regards,

Ken

AM5728: GPIO triggered EDMA channel does not run when GPIO pin pulses

$
0
0

Part Number:AM5728

I am attempting to set up a configuration where a GPIO pin triggers an EDMA channel to read data from an external FIFO. I'm using SYS/BIOS 6.73.01.01 and the CSL in pdk_am57xx_1_0_13. I have gotten the code working to the point where the GPIO pin will interrupt to an ISR that will then trigger the EDMA channel manually in software, but I want to remove the ISR from the chain and have the GPIO pin trigger the EDMA channel directly. When I try setting the DMA crossbar to do this, the EDMA channel never gets triggered.

The GPIO setup is:

    GPIODirModeSet(SOC_GPIO1_BASE, 0, GPIO_DIR_INPUT);
    GPIOIntTypeSet(SOC_GPIO1_BASE, 0, GPIO_INT_TYPE_RISE_EDGE);
    GPIOPinIntEnable(SOC_GPIO1_BASE, GPIO_INT_LINE_1, 0);

And the EDMA setup is:

    EDMAsetRegion(CSL_EDMA3_REGION_2);
    EDMA3Init(CSL_DSP_EDMA_CC_REGS, 0);
    CSL_xbarDmaConfigure(CSL_XBAR_DMA_CPU_ID_EDMA, 187, CSL_XBAR_INST_DMA_EDMA_DREQ_7);

    // Crossbar config for EDMA TCC ISR
    CSL_xbarIrqConfigure(CSL_XBAR_IRQ_CPU_ID_DSP1, CSL_XBAR_INST_DSP1_IRQ_38, CSL_XBAR_EDMA_TPCC_IRQ_REGION2);
    Hwi_enable();

    // EDMA channel config for CSL_XBAR_INST_DMA_EDMA_DREQ_7
    EDMA_Handle hEdma = CSL_XBAR_INST_DMA_EDMA_DREQ_7;
    int tcc = 0;

    uint32_t valid = EDMA3RequestChannel(CSL_DSP_EDMA_CC_REGS, EDMA3_CHANNEL_TYPE_DMA, hEdma, tcc, 0);
    if (!valid) {
        UTL_logDebug1("ERROR: Request for EDMA chan %d failed", hEdma);
    }

    EDMA3CCPaRAMEntry paramSet;
    paramSet.srcAddr = (uint32_t) pSrc;
    paramSet.destAddr = (uint32_t) pDst;

    paramSet.aCnt = cbSample*cSamples;
    paramSet.bCnt = b_cnt;
    paramSet.bCntReload = b_cnt;
    paramSet.cCnt = cElements;

    paramSet.srcBIdx = 0;
    paramSet.srcCIdx = 0;

    paramSet.destBIdx = cbSample*cSamples;
    paramSet.destCIdx = cbSample*cSamples;

    paramSet.linkAddr = EDMA_TPCC_OPT(hEdma);

    paramSet.opt = CSL_EDMA3_OPT_MAKE(CSL_EDMA3_ITCCH_DIS, \
                                      CSL_EDMA3_TCCH_DIS, \
                                      CSL_EDMA3_ITCINT_DIS, \
                                      CSL_EDMA3_TCINT_EN,\
                                      tcc, \
                                      CSL_EDMA3_TCC_NORMAL,\
                                      CSL_EDMA3_FIFOWIDTH_NONE, \
                                      CSL_EDMA3_STATIC_DIS, \
                                      CSL_EDMA3_SYNC_A, \
                                      CSL_EDMA3_ADDRMODE_INCR, \
                                      CSL_EDMA3_ADDRMODE_INCR);

    EDMA3SetPaRAM(CSL_DSP_EDMA_CC_REGS, hEdma, &paramSet);

The EDMA TCC ISR is set up in my app.cfg as:

var hwi4Params = new Hwi.Params();
hwi4Params.instance.name = "edma0IntDispatcher";
hwi4Params.eventId = 38;
Program.global.edma0IntDispatcher = Hwi.create(8, "&EDMA0_intDispatcher", hwi4Params);

What am I missing here?


RTOS/AM5728: How to realize the reset specification of "PCI Express®Base Specification"

$
0
0

Part Number:AM5728

Tool/software: TI-RTOS

Hello, TI Experts,

 

Our customer sent us questions about PCIE Reset by using PROCESSOR-SDK-RTOS-AM57X.

They want to know how to realize the reset specification of "PCI Express®Base Specification" like below;

http://www.lttconn.com/res/lttconn/pdres/201402/20140218105502619.pdf

6.6.1. Conventional Reset

A component must enter the LTSSM Detect state within 20 ms of the end of Fundamental

Reset (Link Training is described in Section 4.2.4).

• Note: In some systems, it is possible that the two components on a Link may exit

   10 Fundamental Reset at different times.

     Each component must observe the requirement to enter the initial active Link Training

     state within 20 ms of the end of Fundamental Reset from its own point of view.

 

They said "it is difficult to meet this requirement (enter the initial active Link Training

state within 20 ms of the end of Fundamental Reset)".

Because it takes much time to reach & run Link Training program through SBL from boot after reset releasing.

 

Question:

Could you tell us the recommended way or successful use-case to meet this 20ms requirement by using AM572x?

   - Are there any way to run Link Training before SBL running after reset releasing?

 

Best regards,

Linux/AM3354: Not able to set max-speed 10 Mbps in dtb or kernel.

$
0
0

Part Number:AM3354

Tool/software: Linux

Hello,

I am using coustom am3354 board with kernel 4.4.32.

I want to set Ethernet speed to 10 Mbps from kernel or dtb.

I have set it on u-boot by writing

Mii write 1 0x04 0x61

Can you guide me please.

Regards,

Prerak

RTOS/TMDSICE3359: SD Card booting procedure

$
0
0

Part Number:TMDSICE3359

Tool/software: TI-RTOS

Dear All,

I'm testing ..\PRU-ICSS-EthernetIP_Adapter_01.00.03.04\protocols\ethernetip_adapter\projects\ethernetip_adapter_AM335x_arm on CCS.

It's works fine. 

I'd appreciate it if you could tell me how to create a boot image including boot loader and application based on this from SD Card.

(I tried to boot using sd card by referring to e2e and data, but it did not work. ;;;;)

Sincerely,

Eui-heon

BEAGLEBN: Linux/WL1835MOD/BeagleBoneBlackWireless: wl18xx mesh sta maximum count limit

$
0
0

Part Number:BEAGLEBN

Hi,

On a BeagleboneBlack cluster (more than 32 beaglebone black wireless), when we start

up all the cards with the default mesh start scripts and 802.11s setup, after booting the 7th card it seems that the

wlcore/wl18xx (driver or firmare) stops processing formation.. Checked the stations directory under /sys/../ieee80211/../stations

and there are 7 sta's in this directory. Checked the wlcore/wl18xx statistics and see the tx queue is not empty and it seems

the driver stops processing the queue.

What is working:   6 nodes setup works (ping, pingv6 and batman like routing works)

What is not working: > 6 nodes stops forming a network (ping, pingv6, batman not working)

Br,

Bugra

RTOS/AM5728: How to realize the SDR 50 and SDR 104 mode with 1.8V by using AM572x GP EVM

$
0
0

Part Number:AM5728

Tool/software: TI-RTOS

Hello, TI Experts,

 

Our customer sent us additional question from the below E2E-thread.

https://e2e.ti.com/support/processors/f/791/p/764214/2825622

 

This E2E-thread said

"The power switch from 3.3V to 1.8V is for the SDR 50 and SDR 104 mode

for higher MMCSD speed and needs EVM hardware support.

This is supported by AM572x GP EVM, but not the IDK EVM. "

 

So, we checked the GP-EVM schematics (TI_AM572XEVM_REV_A3a.pdf)

And VDD of micro-SD seems to be connected to VDD_3V3 only like below.

  

Question:

  Could you tell us how to realize the SDR 50 and SDR 104 mode with 1.8V by using AM572x GP EVM?

 

Best regards,

 

TDA3: Local Representative to Obtain Power Consumption Estimation Tool

$
0
0

Part Number:TDA3

Hi.

I am from Singapore and I would like to know who is the local representation so that I can obtain the Power Estimation Tool for TDA3.

Thank you.

Kim

TDA3: Implementation of Mobilenet or Mobilenet SSD

$
0
0

Part Number:TDA3

Hi.

I would like to ask about the maximum inference speed performanc of Mobilenet / Mobilenet SSD using TDA3.

What is the power consumption of TDA3 at this speed?

Kim Piau


Details about processors

$
0
0

Hi sir,

          This Gowdham form ennovosys technology ,We have doing IOT projects, now plan to start Smart speaker device development like amazon alexa and google home  devices ,I would like to start with our project using TI processor, so can you suggest to our team which processor suitable for my device below i have mentioned processor requirement .Its should support minimum 1 GB RAM,Memory upto 128 GB eMMC flash interface ,HDMI port interface connectivity ,UART ,SPI,I2C ,GPIO ports and major section we have interface with WIFI section,microphone ,memory,IR section ,audio amplifier section.

Thanks,

GOWDHAM.M 

Ennovosys Technologies Pvt. Ltd.,
No.75,G2, V Block, 10th Street,
 Anna Nagar,
Chennai - 600 040.
Tamil Nadu, India.
Email: gowdham6@gmail.com
MOB :9566991218

OMAP-2430

$
0
0

Hi,

I want to know OMAP-2430 processor production status is active or not?

I active, can I get its datasheet and EVM/ supporting documents details?

Thanks and regards,

Avinash

Linux/AM3358: Adding splash or boot logo in uboot and linux booting

$
0
0

Part Number:AM3358

Tool/software: Linux

Hi,
I am using our own AM3358 based custom board and would like to add boot logo in uboot and Linux stage till matrix launcher comes up.
Can you please tell how I can proceed.
Referred the following link for adding splash screen, but getting an error in uboot. (invalid splash file)
How can I create valid splash bmp file, share me your valid splash.bmp.gz file to try ?


fatload mmc 0 0x82000000 splash.bmp.gz
bmp i 0x82000000


I got an error while executing bmp command in uboot.
software-dl.ti.com/.../Foundational_Components_U-Boot.html

BTW, I am using very latest TI PROCESSOR SDK package.

Linux/PROCESSOR-SDK-AM335X: Unable to install ti-processor-sdk-linux-am335x-evm-05.02.00.10-Linux-x86-Install.bin on Ubuntu 18.04.2 LTS

$
0
0

Part Number:PROCESSOR-SDK-AM335X

Tool/software: Linux

Hi!

I have tried to install the processor-SDK firmware, with no success.

During the installation process, the installer jumps instantly to:

Unpacking opt/ti-pro[...]0/processor-sdk-linux-image-am335x-evm.tar.xz
and freezes. Am I lacking any tools for the installation process?

AM5728: OCMC SHARED MEMORY ACCESS FROM DSP not Happening

$
0
0

Part Number:AM5728

HI , 

I am using AM5728 GPEVM, DSP is running on RTOS and A15 core is running on Linux, when I try to access OCMC_RAM1 , OCMC_RAM2 , OCMC_RAM2  form the DSP  , the DSP is   crashing , and I am getting print like as follows,

[  357.344655] remoteproc remoteproc2: failed to unmap 201326592/0
[  357.387105] omap-iommu 40d01000.mmu: iommu fault: da 0x40300000 flags 0x0
[  357.393927] remoteproc remoteproc2: crash detected in 40800000.dsp: type mmufault
[  357.401442] omap-iommu 40d01000.mmu: 40d01000.mmu: errs:0x00000002 da:0x40300000 pgd:0xed49d00c *pgd:px00000000
[  357.411634] remoteproc remoteproc2: handling crash #105 in 40800000.dsp
[  357.418297] remoteproc remoteproc2: recovering 40800000.dsp
[  357.426635] remoteproc remoteproc2: failed to unmap 94371840/100663296
[  357.434522] remoteproc remoteproc2: failed to unmap 201326592/0
[  357.478513] omap-iommu 40d01000.mmu: iommu fault: da 0x40300000 flags 0x0
[  357.485334] remoteproc remoteproc2: crash detected in 40800000.dsp: type mmufault.

OCMC addresses are as follows  , I tried with all 3 but the result is same.

OCMC_RAM1             40300000   00080000  00000000  00080000  RW X
OCMC_RAM2             40400000   00100000  00000000  00100000  RW X
OCMC_RAM3             40500000   00100000  00000000  00100000  RW X

In the CORE 0 , we have declared char * ptr = 0x40300000  , and trying to a memory copy  of 64 K bytes  of data from that address to local buffer  , but we are getting crash. But when there is no ARM , DSP NO_BOOT mode , we are able to do the memory copy. This is the resource table we are using.

/*
 * Copyright (c) 2012-2014, Texas Instruments Incorporated
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * *  Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * *  Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * *  Neither the name of Texas Instruments Incorporated nor the names of
 *    its contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
/*
 *  ======== rsc_table_vayu_dsp.h ========
 *
 *  Define the resource table entries for all DSP cores. This will be
 *  incorporated into corresponding base images, and used by the remoteproc
 *  on the host-side to allocated/reserve resources.
 *
 */
#ifndef _RSC_TABLE_VAYU_DSP_H_
#define _RSC_TABLE_VAYU_DSP_H_
#include "rsc_types.h"
/* DSP Memory Map */
#define L4_DRA7XX_BASE          0x4A000000
#define L4_PERIPHERAL_L4CFG     (L4_DRA7XX_BASE)
#define DSP_PERIPHERAL_L4CFG    0x4A000000
#define L4_PERIPHERAL_L4PER1    0x48000000
#define DSP_PERIPHERAL_L4PER1   0x48000000
#define L4_PERIPHERAL_L4PER2    0x48400000
#define DSP_PERIPHERAL_L4PER2   0x48400000
#define L4_PERIPHERAL_L4PER3    0x48800000
#define DSP_PERIPHERAL_L4PER3   0x48800000
#define L4_PERIPHERAL_L4EMU     0x54000000
#define DSP_PERIPHERAL_L4EMU    0x54000000
#define L3_PERIPHERAL_DMM       0x4E000000
#define DSP_PERIPHERAL_DMM      0x4E000000
#define L3_TILER_MODE_0_1       0x60000000
#define DSP_TILER_MODE_0_1      0x60000000
#define L3_TILER_MODE_2         0x70000000
#define DSP_TILER_MODE_2        0x70000000
#define L3_TILER_MODE_3         0x78000000
#define DSP_TILER_MODE_3        0x78000000
#define DSP_PERIPHERAL_MCASP    0x46000000
#define L3_PERIPHERAL_MCASP     0x46000000
#define DSP_MEM_TEXT            0x95000000
/* Co-locate alongside TILER region for easier flushing */
#define DSP_MEM_IOBUFS          0x80000000
#define DSP_MEM_DATA            0x95100000
#define DSP_MEM_HEAP            0x95A00000
#define DSP_MEM_IPC_DATA        0x9F000000
#define DSP_MEM_IPC_VRING       0xA0000000
#define DSP_MEM_RPMSG_VRING0    0xA0000000
#define DSP_MEM_RPMSG_VRING1    0xA0004000
#define DSP_MEM_VRING_BUFS0     0xA0040000
#define DSP_MEM_VRING_BUFS1     0xA0080000
#define DSP_MEM_IPC_VRING_SIZE  SZ_1M
#define DSP_MEM_IPC_DATA_SIZE   SZ_1M
#define DSP_MEM_TEXT_SIZE       SZ_1M
#define DSP_MEM_DATA_SIZE       (SZ_1M * 9)
#define DSP_MEM_HEAP_SIZE       (SZ_1M * 4)
#define DSP_MEM_IOBUFS_SIZE     (SZ_1M * 90)
#define DSP_CMEM_IOBUFS 0x85000000
#define PHYS_CMEM_IOBUFS 0xA0000000
#define DSP_CMEM_IOBUFS_SIZE (SZ_1M * 192)
/*
 * Assign fixed RAM addresses to facilitate a fixed MMU table.
 */
//BWC
#define VAYU_DSP_1
/* See CMA BASE addresses in Linux side: arch/arm/mach-omap2/remoteproc.c */
#if defined (VAYU_DSP_1)
#define PHYS_MEM_IPC_VRING      0x99000000
#elif defined (VAYU_DSP_2)
#define PHYS_MEM_IPC_VRING      0x9F000000
#endif
/* Need to be identical to that of IPU */
#define PHYS_MEM_IOBUFS         0xBA300000
/*
 * Sizes of the virtqueues (expressed in number of buffers supported,
 * and must be power of 2)
 */
#define DSP_RPMSG_VQ0_SIZE      256
#define DSP_RPMSG_VQ1_SIZE      256
/* flip up bits whose indices represent features we support */
#define RPMSG_DSP_C0_FEATURES         1
struct my_resource_table {
    struct resource_table base;
    UInt32 offset[18];  /* Should match 'num' in actual definition */
    /* rpmsg vdev entry */
    struct fw_rsc_vdev rpmsg_vdev;
    struct fw_rsc_vdev_vring rpmsg_vring0;
    struct fw_rsc_vdev_vring rpmsg_vring1;
    /* text carveout entry */
    struct fw_rsc_carveout text_cout;
    /* data carveout entry */
    struct fw_rsc_carveout data_cout;
    /* heap carveout entry */
    struct fw_rsc_carveout heap_cout;
    /* ipcdata carveout entry */
    struct fw_rsc_carveout ipcdata_cout;
    /* trace entry */
    struct fw_rsc_trace trace;
    /* devmem entry */
    struct fw_rsc_devmem devmem0;
    /* devmem entry */
    struct fw_rsc_devmem devmem1;
    /* devmem entry */
    struct fw_rsc_devmem devmem2;
    /* devmem entry */
    struct fw_rsc_devmem devmem3;
    /* devmem entry */
    struct fw_rsc_devmem devmem4;
    /* devmem entry */
    struct fw_rsc_devmem devmem5;
    /* devmem entry */
    struct fw_rsc_devmem devmem6;
    /* devmem entry */
    struct fw_rsc_devmem devmem7;
    /* devmem entry */
    struct fw_rsc_devmem devmem8;
    /* devmem entry */
    struct fw_rsc_devmem devmem9;
    /* devmem entry */
    struct fw_rsc_devmem devmem10;
    /* devmem entry */
    struct fw_rsc_devmem devmem11;
    /* devmem entry */
       struct fw_rsc_devmem devmem12;
};
//BWC added extern declaration
extern char ti_trace_SysMin_Module_State_0_outbuf__A;
#define TRACEBUFADDR (UInt32)&ti_trace_SysMin_Module_State_0_outbuf__A
#pragma DATA_SECTION(ti_ipc_remoteproc_ResourceTable, ".resource_table")
#pragma DATA_ALIGN(ti_ipc_remoteproc_ResourceTable, 4096)
struct my_resource_table ti_ipc_remoteproc_ResourceTable = {
    1,      /* we're the first version that implements this */
    19,     /* number of entries in the table */
    0, 0,   /* reserved, must be zero */
    /* offsets to entries */
    {
        offsetof(struct my_resource_table, rpmsg_vdev),
        offsetof(struct my_resource_table, text_cout),
        offsetof(struct my_resource_table, data_cout),
        offsetof(struct my_resource_table, heap_cout),
        offsetof(struct my_resource_table, ipcdata_cout),
        offsetof(struct my_resource_table, trace),
        offsetof(struct my_resource_table, devmem0),
        offsetof(struct my_resource_table, devmem1),
        offsetof(struct my_resource_table, devmem2),
        offsetof(struct my_resource_table, devmem3),
        offsetof(struct my_resource_table, devmem4),
        offsetof(struct my_resource_table, devmem5),
        offsetof(struct my_resource_table, devmem6),
        offsetof(struct my_resource_table, devmem7),
        offsetof(struct my_resource_table, devmem8),
        offsetof(struct my_resource_table, devmem9),
        offsetof(struct my_resource_table, devmem10),
        offsetof(struct my_resource_table, devmem11),
        offsetof(struct my_resource_table, devmem12),
    },
    /* rpmsg vdev entry */
    {
        TYPE_VDEV, VIRTIO_ID_RPMSG, 0,
        RPMSG_DSP_C0_FEATURES, 0, 0, 0, 2, { 0, 0 },
        /* no config data */
    },
    /* the two vrings */
    { DSP_MEM_RPMSG_VRING0, 4096, DSP_RPMSG_VQ0_SIZE, 1, 0 },
    { DSP_MEM_RPMSG_VRING1, 4096, DSP_RPMSG_VQ1_SIZE, 2, 0 },
    {
        TYPE_CARVEOUT,
        DSP_MEM_TEXT, 0,
        DSP_MEM_TEXT_SIZE, 0, 0, "DSP_MEM_TEXT",
    },
    {
        TYPE_CARVEOUT,
        DSP_MEM_DATA, 0,
        DSP_MEM_DATA_SIZE, 0, 0, "DSP_MEM_DATA",
    },
    {
        TYPE_CARVEOUT,
        DSP_MEM_HEAP, 0,
        DSP_MEM_HEAP_SIZE, 0, 0, "DSP_MEM_HEAP",
    },
    {
        TYPE_CARVEOUT,
        DSP_MEM_IPC_DATA, 0,
        DSP_MEM_IPC_DATA_SIZE, 0, 0, "DSP_MEM_IPC_DATA",
    },
    {
        TYPE_TRACE, TRACEBUFADDR, 0x8000, 0, "trace:dsp",
    },
    {
        TYPE_DEVMEM,
       DSP_MEM_IPC_VRING, PHYS_MEM_IPC_VRING,
       DSP_MEM_IPC_VRING_SIZE, 0, 0, "DSP_MEM_IPC_VRING",
    },
    {
        TYPE_DEVMEM,
        DSP_MEM_IOBUFS, PHYS_MEM_IOBUFS,
        DSP_MEM_IOBUFS_SIZE, 0, 0, "DSP_MEM_IOBUFS",
    },
    {
        TYPE_DEVMEM,
        DSP_TILER_MODE_0_1, L3_TILER_MODE_0_1,
        SZ_256M, 0, 0, "DSP_TILER_MODE_0_1",
    },
    {
        TYPE_DEVMEM,
        DSP_TILER_MODE_2, L3_TILER_MODE_2,
        SZ_128M, 0, 0, "DSP_TILER_MODE_2",
    },
    {
        TYPE_DEVMEM,
        DSP_TILER_MODE_3, L3_TILER_MODE_3,
        SZ_128M, 0, 0, "DSP_TILER_MODE_3",
    },
    {
        TYPE_DEVMEM,
        DSP_PERIPHERAL_L4CFG, L4_PERIPHERAL_L4CFG,
        SZ_16M, 0, 0, "DSP_PERIPHERAL_L4CFG",
    },
    {
        TYPE_DEVMEM,
        DSP_PERIPHERAL_L4PER1, L4_PERIPHERAL_L4PER1,
        SZ_2M, 0, 0, "DSP_PERIPHERAL_L4PER1",
    },
    {
        TYPE_DEVMEM,
        DSP_PERIPHERAL_L4PER2, L4_PERIPHERAL_L4PER2,
        SZ_4M, 0, 0, "DSP_PERIPHERAL_L4PER2",
    },
    {
        TYPE_DEVMEM,
        DSP_PERIPHERAL_L4PER3, L4_PERIPHERAL_L4PER3,
        SZ_8M, 0, 0, "DSP_PERIPHERAL_L4PER3",
    },
    {
        TYPE_DEVMEM,
        DSP_PERIPHERAL_L4EMU, L4_PERIPHERAL_L4EMU,
        SZ_16M, 0, 0, "DSP_PERIPHERAL_L4EMU",
    },
    {
        TYPE_DEVMEM,
        DSP_PERIPHERAL_DMM, L3_PERIPHERAL_DMM,
        SZ_1M, 0, 0, "DSP_PERIPHERAL_DMM",
    },
    {
       TYPE_DEVMEM,
       DSP_CMEM_IOBUFS, PHYS_CMEM_IOBUFS,
       DSP_CMEM_IOBUFS_SIZE, 0, 0, "DSP_CMEM_IOBUFS",
    },
    {
        TYPE_DEVMEM,
        DSP_PERIPHERAL_MCASP, L3_PERIPHERAL_MCASP,
        SZ_4M, 0, 0, "DSP_PERIPHERAL_MCASP",
    },
};
#endif /* _RSC_TABLE_VAYU_DSP_H_ */
Please let me know ,if  anything we are missing.
Regards,
R D Nadaf

Viewing all 17527 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>