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

TDA2PXEVM: Migrating from TI-BIOS to Linux

$
0
0

Part Number: TDA2PXEVM

Hello All,

Currently I am working on TI-BIOS for TDA2PXEVM and I need to migrate the application to Linux for TDA2XXEVM.

Is there any major changes required for the above as my application includes modules like CAN , Overlay , etc.

Please provide your inputs.

Regards,

Shantanu Joshi


TMDSMDSK6455: Reading from memory takes too long

$
0
0

Part Number: TMDSMDSK6455

Hi guys, I'm at the beginning of my journey in DSP programming. I have a DSK6455 and I'm going to make the following piece of code optimized.

#pragma MUST_ITERATE(NUMBER_OF_COLUMNS, NUMBER_OF_COLUMNS, 1)
#pragma UNROLL(2)
	for (col = 0; col < NUMBER_OF_COLUMNS; ++col)
	{
		int16_t current_cost = 0;
		for (row = 0; row < NUMBER_OF_ROWS; ++row)
		{
			int16_t ix = (data_lookup_table[row][col] - data_lookup_table[row][which_column]) * 10.0;

			current_cost += sinlut[ix];//sine looking up.
		}

		if (current_cost > current_max)
		{
			current_max = current_cost;
			current_max_index = col;
		}
	}
	t1 = TSCL;

I tried to profile this piece of code, line by line, and noticed that reading from memory (for example data_lookup_table[row][col]) and storing them in a temporary variable, takes 80 to 120 clocks. I watched the C6000 optimization video series and there, It's told that reading from memory takes 4 clocks. Am I wrong? Can I make the program faster?

Linux/AM5718: I don't understand why my bootz command doesn't work

$
0
0

Part Number: AM5718

Tool/software: Linux

Hello. I'm currently modifying u-boot booting command so that kernel can be booted from QSPI.

I'm struggling to figure out why my bootz command keeps failing for a day.

Can someone explain me the problem with my booting command?

Here is the uboot booting sequence I've echoed. As you can see, bootzimage command keeps failing here.

switch to partitions #0, OK
mmc1(part 0) is current device
SD/MMC found on device 1
envboot succeeded
SF: Detected s25fl256s_64k with page size 256 Bytes, erase size 64 KiB, total 32 MiB, mapped at 5c000000
device 0 offset 0x1e0000, size 0x800000
SF: 8388608 bytes @ 0x1e0000 Read: OK
image has been loaded
Trying to boot Linux from eMMC ...
emmc_linux_boot succeeded
SF: Detected s25fl256s_64k with page size 256 Bytes, erase size 64 KiB, total 32 MiB, mapped at 5c000000
device 0 offset 0x140000, size 0x80000
SF: 524288 bytes @ 0x140000 Read: OK
loadfdt succeeded
bootzimage failed
mmcloados succeeded

And this is the u-boot command when I type 'pri' to the u-boot command.

arch=arm
args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} ro rootfstype=${mmcrootfstype}
baudrate=115200
board=am57xx
board_name=am571x_idk
boot_fdt=try
boot_fit=0
bootargs=console=ttyO1,115200n8 root=PARTUUID=25718777-d0ad-7443-9e60-02cb591c9737 ro rootfstype=ext4 rootwait
bootcmd=if run envboot; then echo envboot succeeded; else echo envboot failed; fi; if run loadimage; then echo image has been loaded; else echo image has not been loaded; fi; if run emmc_linux_boot; then echo emmc_linux_boot succeeded; else echo emmc_linux_boot failed; fi; if run mmcloados; then echo mmcloados succeeded; else echo mmcloados failed; fi\

bootdelay=2
bootdir=/boot
bootenvfile=uEnv.txt
bootfile=zImage
bootm_size=0x10000000
bootpart=1:2
bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
bootz=bootz - ${fdtaddr}
bootzimage=bootz ${loadaddr} - ${fdtaddr}
console=ttyO2,115200n8
cpu=armv7
dfu_alt_info_emmc=rawemmc raw 0 3751936;boot part 1 1;rootfs part 1 2;MLO fat 1 1;MLO.raw raw 0x100 0x200;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 0x6900;spl-os-args fat 1 1;spl-os-image fat 1 1;u-boot.img fat 1 1;uEnv.txt fat 1 1
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x200;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 0x6900;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
dfu_bufsiz=0x10000
dofastboot=0
emmc_android_boot=echo Trying to boot Android from eMMC ...; run update_to_fit; setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; setenv machid fe6; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} ${fdt_part} fdt_start; part size mmc ${mmcdev} ${fdt_part} fdt_size; part start mmc ${mmcdev} ${boot_part} boot_start; part size mmc ${mmcdev} ${bo;
emmc_linux_boot=echo Trying to boot Linux from eMMC ...; setenv mmcdev 1; setenv bootpart 1:2; setenv mmcroot /dev/mmcblk0p2 rw;
envboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};fi;
ethaddr=30:45:11:ca:f9:b4
eval_bootargs=setenv bootargs console=ttyO1,115200n8 root=PARTUUID=${uuid} ro rootfstype=ext4 rootwait
fastboot.cpu=DRA722
fastboot.secure=GP
fdt_addr=0x140000
fdt_addr_r=0x88000000
fdtaddr=0x88000000
fdtcontroladdr=bdf1bd38
fdtfile=am571x-idk.dtb
fileaddr=82000000
filesize=17b55
findfdt=if test $board_name = am571x_idk; then setenv fdtfile am571x-idk.dtb; fi
finduuid=part uuid mmc ${bootpart} uuid
fit_bootfile=fitImage
fit_loadaddr=0x87000000
importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
kernel_addr_r=0x82000000
loadaddr=0x82000000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
loadfdt=sf probe; sf read ${fdtaddr} 0x140000 0x80000;
loadfit=fatload mmc 0:1 ${zimage_addr} ${bootfile}; fatload mmc 0:1 ${fdt_addr} ${fdtfile};
loadimage=sf probe; sf read ${loadaddr} 0x1e0000 0x800000;
mmcboot=echo Booting from mmc ...;if run args_mmc; then echo args_mmc succeeded; else echo args_mmc failed; fi; bootz ${loadaddr}
mmcdev=1
mmcloados=run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then echo loadfdt succeeded; else echo loadfdt failed; fi; fi ; run eval_bootargs; if run bootzimage; then echo bootzimage succeeded; else echo bootzimage failed; fi
mmcroot=/dev/mmcblk0p2 rw
mmcrootfstype=ext4 rootwait
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
netloadfdt=tftp ${fdtaddr} ${fdtfile}
netloadimage=tftp ${loadaddr} ${bootfile}
nfsopts=nolock
partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=32MiB,size=2GiB,uuid=${uuid_gpt_rootfs};name=datafs,start=2064MiB,size=-,uuid=${uuid_gpt_datafs}
partitions_android=uuid_disk=${uuid_gpt_disk};name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};name=bootloader,size=1792K,uuid=${uuid_gpt_bootloader};name=environment,size=128K,uuid=${uuid_gpt_environment};name=misc,size=128K,uuid=${uuid_gpt_misc};name=reserved,size=256K,uuid=${uuid_gpt_reserved};name=efs,size=16M,uuid=${uuid_gpt_efs};name=crypto,size=16K,uuid=${uuid_gpt_crypto};name=recovery,size=40M,uuid=${u}
pxefile_addr_r=0x80100000
ramdisk_addr_r=0x88080000
rdaddr=0x88080000
rootpath=/export/rootfs
scriptaddr=0x80000000
scsidevs=0
serial#=0700200c1be40001
soc=omap5
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
stderr=serial@48020000
stdin=serial@48020000
stdout=serial@48020000
update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}
usbtty=cdc_acm
uuid=25718777-d0ad-7443-9e60-02cb591c9737
uuid_gpt_datafs=25718777-d0ad-7443-9e60-02cb591c9737
uuid_gpt_disk=21200400-0804-0146-9dcc-a8c51255994f
uuid_gpt_rootfs=d117f98e-6f2c-d04b-a5b2-331a19f91cb2
vendor=ti
ver=U-Boot 2018.01 (Jul 12 2019 - 21:21:01 +0900)
vram=16M
zimage_addr=0x1e0000

Environment size: 5987/131067 bytes

OMAP-L138: Need Code Base Example

$
0
0

Part Number: OMAP-L138

Team,

We're working on a project to implement IEEE 1588 Precision Time Protocol (PTP) within an existing products that uses the OMAPL138EZWTA3 processor.

 Do you know if there happens to be an existing code base for this processor or a similar product that TI has developed that could help us quickly put together a demonstration? For example, something similar to this YouTube video (https://www.youtube.com/watch?v=0yt4jHIk3bw).

Thank you.

Linux/AM3359: board with tps65218 pmic does not shutdown but reboots instead

$
0
0

Part Number: AM3359

Tool/software: Linux

Hi,

we upgraded a stable custom AM335x design from TPS65217D PMIC to TPS65218D0.

The boards boots fine ti linux kernel 4.14.79 from processor sdk. Rebooting via "reboot" is fine.

But shutdown via "halt -p" does not shutdown but reboot the board. I found that this - or something similiar - was an issue with prior

silicon of the PMIC. But we have the latest - chipid is 5.

Design is based on http://www.ti.com/lit/ug/slvuaa9a/slvuaa9a.pdf.

I am not sure if this hardware of software releated. I took the TPS65218 devicetree node from am437x-sk-evm.dts.

DCDC4 is used for all 3.3V peripherals on our board. Our initial TPS65217 based design was always fine.

Regards,

Matthias

RTOS/AM5728: How to create bootable SD card for AM572x EVM with examples?

$
0
0

Part Number: AM5728

Tool/software: TI-RTOS

Hello,

I've downloaded the latest RTOS SDK (http://software-dl.ti.com/processor-sdk-rtos/esd/AM57X/latest/index_FDS.html) I've successfully built it the DSS bare metal example (displayDssBareMetal) and have the output file DisplayDss_main_bm.oa15fg

I want to put that code on a SD card and run the code, but I can't find any instructions. Have I missed it or not yet found the right keywords for the search?

Thanks,

Scott

Linux/BEAGLEBOARD-X15: AM57xx SDIO issues on MMC1

$
0
0

Part Number: BEAGLEBOARD-X15

Tool/software: Linux

Hi TI,

SDIO device interrupts seem to be lost with the AM57xx MMC1 block (wired to uSD socket on the BeagleBoard-X15). Could you please confirm this? Are you aware of any workarounds? Would it be possible to support SDIO on MMC1?

Thank you for your help, it is very much appreciated.

AMIC110: AMIC110 Pin muxing

$
0
0

Part Number: AMIC110

Hello everybody,
I would like to use the AMIC110, the following peripherals are required:

1) EtherCat (ie 2x MII_PRUSS)
2) MDIO_PRUS
3) EMIF for the DDR RAM
4) parallel bus interface to the FPGA (GPMC).

I used the TI PinMux tool to map the peripherals. The following things have struck me: it is not possible to run the peripherals mentioned above in connection with a 16-bit-width GPMC, only an 8-bit data bus could be realized - do I see that correctly?

When configured as an 8-bit data bus GPMC the address A0 is also led out, why is the "Upper Byte Enable" signal still needed?

Another question: since the waite signals can not be muxed, can the waite cycles be configured in the AMIC110?

best regards


Linux/PROCESSOR-SDK-AM57X: Issue with ACTIVE-BACKUP bonding driver with VLANs

$
0
0

Part Number: PROCESSOR-SDK-AM57X

Tool/software: Linux

Hi Support Team!

We already asked a related question and patched the Linux kernel as described here: 
https://e2e.ti.com/support/processors/f/791/t/736137?Linux-PROCESSOR-SDK-AM57X-ACTIVE-BACKUP-bonding-driver-with-VLANs

However we are still experiencing issues using the Bonding setup on the AM572x.

We are using the AM572x with VLANs on bonded interfaces eth0/eth1. The AM57x is setup to dual standalone emac mode.

Bonding Configuration is the same as described in the other thread:

# cat /etc/modprobe.d/bonding.conf
options bonding mode=active-backup max_bonds=1 miimon=100

Please see the attached picture of our test setup. The center device is configured with bonded eth0/eth1. All devices have the same HW (all are using an AM572x SOC), but only the center device is configured with active-backup bonding of eth0/eth1.

 

During the test, it was verified that always the connection which has the active bonding interface was tested.
Observations:
When the active ETH of the center gateway is connected to the ETH0 of the external gateway, the connection is working, but if the active ETH of the center gateway is connected to the ETH1 of the external gateway, there is no IP connection possible on this link.
 
The strange thing is when starting a TCPDUMP on the eth1 of the external gateway, the connection comes alive, ping and login on this connection is possible.

We are using the attached patch “cpsw-mcast-only-host-port”, taken from this site and fixed to apply for our kernel 4.9.41 because we had problems with looping ARP packets before:

Any help is much appreciated.

Thanks,
Franz Flasch
Mission Embedded GmbH/Frequentis AG

Linux/AM5728: Linux 06.00.00 - Device sporadically not rebooting/turning off

$
0
0

Part Number: AM5728

Tool/software: Linux

Hi,

With SDK 06.00.00 - non-RT Linux Kernel I have the behavior that my device is not turning off/rebooting roughly every 3 try.  (Doesn't matter if I use "reboot" or "poweroff")

[   26.296779] systemd-shutdown[1]: All filesystems unmounted.
[   26.302658] systemd-shutdown[1]: Deactivating swaps.
[   26.307998] systemd-shutdown[1]: All swaps deactivated.
[   26.313510] systemd-shutdown[1]: Detaching loop devices.
[   26.322826] systemd-shutdown[1]: All loop devices detached.
[   26.328730] systemd-shutdown[1]: Detaching DM devices.

It's just stopping after this messages and does not reboot neither turn of the PMIC.

I observed this before with the 4.14 Kernel. See thread here: https://e2e.ti.com/support/processors/f/791/p/707480/2611704#2611704

The issue was fixed by "" by reverting the commit "0d5e04e sched/core: Require cpu_active() in select_task_rq(), for user tasks". Which also made it to the SDK last year.

With the switch to the 4.19 Kernel the commit is not reverted any more. But even with reverting it myself I still experience the issue. So it is kind of different.

I'm currently testing with our own HW (which design is pretty close to the IDK). If I find the time I'll dig out the am5728 IDK and see if I can produce it there too.

Regards,

Michael

AM3352: Connection to SGMII?

$
0
0

Part Number: AM3352

Is there a way to directly connect to SGMII, or is there another variant that will allow that?

Linux/BEAGLEBOARD-X15: Makefile find returns more than one result, build fails

$
0
0

Part Number: BEAGLEBOARD-X15

Tool/software: Linux

Hi everybody,

The top level Makefile is using the find command to change directories with wildcard searches.  Some of the example applications will return more than one result and the cd command will fail.  So the top level make fails.

To fix it...

  • gedit ~/ti-processor-sdk-linux-am57xx-evm-06.00.00.07/Makefile
  • ctrl-h
  • Replace "cd `find . -name" with "cd `find . -type d -name"
  • Replace all
  • save

...and the build succeeds.

Oh, and I'm running ubuntu 18.04.2.  Perhaps find returns only one result in 14 or 16.

Hope this helps someone someday.

Nathan

TMDSSK3358: MCASP Transmit Clock Generation

$
0
0

Part Number: TMDSSK3358

There is a very detailed diagram (Figure 22-17) of the Transmit Clock Generator in Section 22.3.5.1 of the AM335X and AMIC110 Sitara Processors Reference Manual (SPRUH73P). We have .wav files that have been recorded at an 8kHz sample rate, with 32 bits per frame (16 bit for the left channel and 16 bits for the right channel) (voice only).  The TMDSSK3358 Evaluation board comes populated with the TI TLV320AIC3106 audio codec and it is connected to the AM3358 via the MCASP1 digital audio interface. The .wav files recorded with these settings play fine with this setup.

From Figure 22-17, it indicates that the transmit bit clock, ACLKX, can be either externally sourced from the ACLKX pin or internally generated within the AM3358 via either feeding an external AHCLKX to the CLKXDIV (divides by 1 to 32 in integer values) or by using the AUXCLK (which in the case of the TMDSSK3358 Evaluation Board is 24MHz (please correct me if I am wrong on this frequency as it is crucial for the rest of the explanation) and dividing the AUXCLK by the HCLKXCTL divider (divides by 1 to 4096 in integer values).

My question is: If the TMDSSK3358 Evaluation Board is using the internal AUXCLK of 24MHZ to generate the Transmit Bit clock (ACLKX and XCLK)., the bit clock for a sound file sampled at 8kHz with 2 channels of 16 bit date would have to be 8kHz * 16 * 2 = 256kHz.  There is no integer division ratio to divide 24MHz by to get to a bit clock of 256kHz. the division ratio is 24MHz/256kHz = 93.75.  How is the correct bit clock (ACLKX and XCLK) of 256kHz generated for the audio file that we are playing.

I'm asking this because understanding how this is accomplished is crucial as we are using the Octavo OSD3358-SM RED EVM, which contains the TI AM3358 Processor with the same TI TLV320AIC3106 audio codec interfaced via MCASP that is used on the TMDSSK3358 Evaluation Board with an external AHCLKX_IN of 24.576MHZ which would require that the CLKXDIV divider be able to divide by 96 to generate a 256kHz bit clock (its maximum division is 32) that the 8kHz sampled audio would require.

I appreciate any information on how the clocks are generated for this scenario.

Thank you.

Stephen Gilbert

Staff Engineer

NORTHROP GRUMMAN

Mission Systems

TMS320DM8168: RTC only mode

$
0
0

Part Number: TMS320DM8168

Hi all,

          A question about the recommended Power Supply configuration for the TMS320DM8168 processor to support RTC-Only Mode.

          Please suggest any reference design for TMS320DM8168 processor to make RTC-Only Mode alive  when power goes off.

Thanks in advance,

Soundath G V

AM6548: Power consumption & performance information for AM6548

$
0
0

Part Number: AM6548

Hello. I'm wondering if there is a technical paper or similar document on the power consumption and performance of this processor against some of the standard benchmarks from standby to full processing. Just looking for a power/performance budget right now.

Thank you.


RTOS/AM5728: How to build RTOS code examples and execute on an EVM

$
0
0

Part Number: AM5728

Tool/software: TI-RTOS

Hello,

I'm trying to execute the supplied example code from pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/dss/displayDssBareMetal
on an EVM board.
I can build the example, but the documentation doesn't indicate how to run the code.

The link software-dl.ti.com/.../index_device_drv.html basically says
    Load the generated executable file in CCS
    Run the application

but there is no explanation how to load the executable into CCS.


The link http://software-dl.ti.com/processor-sdk-rtos/esd/docs/05_03_00_07/rtos/index_examples_demos.html#task-2-importing-and-building-the-rtos-template-application
lists steps how to import templates. I've tried to import the "baremetal" template (c:\ti\processor_sdk_rtos_am57xx_6_00_00_07\demos\rtos_template_app\am572x\evmAM572X\A15\template_app\baremetal), but I get the error message:
   Import failed for project 'baremetal' because its meta-data cannot be interpreted. Please contact support.



I want to build and execute supplied example code on an EVM. This should be an easy question to answer, but I've done many searches and there doesn't seem to be a solution.

Thanks,

Scott

AM5726: rx_pcie.ami file giving error upon calling

$
0
0

Part Number: AM5726

Hello,

I'm trying to run IBIS AMI simulation for my PCIe lines. I'm using rx_pcie.ibs, rx_pcie.ami, and rx_pcie_x64.dll for my IBIS AMI package as downloaded from AM5726 page. I get a similar error in where it says error in "line 20: syntax error, unexpected $end" but when I open the ami file in Notepad ++, the formatting is correct and there is no "END" in the file. I also get the "Error: Parse failed on file" and then pointing to the rx_pcie.ibs file.

I'm using Hyperlynx VX.2.5.

Thanks!

Compiler/PROCESSOR-SDK-AM57X: Cannot compile Ti-IPC-Linux-Examples

$
0
0

Part Number: PROCESSOR-SDK-AM57X

Tool/software: TI C/C++ Compiler

Hello,

We are trying to compile the TI-IPC Linux examples by running the make command and following the instructions to set up the TI_RTOS_PATH.

We are running Ubuntu 16.04 and have installed Processor SDK for RTOS and Linux, as well as CCS 9.

We are developing a system based on Phytec AM57xx board.and have generated the Linux BSP for the AM57xx development board.

We get the following error when running the "make ti-ipc-linux-examples" command:

:arm-linux-gnueabihf-gcc: error trying to exec 'cc1': execvp: No such file or directory

Why can't it find the cc1 file?

Are we missing a parameter somewhere?

How can we fix the error?

Thank you.

Best regards,

Jorge

66AK2L06: Is the 66AK2L06 Recommended for New Designs?

$
0
0

Part Number: 66AK2L06

Hello, just want to verify which processors are recommended for new designs:  66AK2L0666AK2E0566AK2G1266AK2H14?

I'm a little worried that they may be entering the status of, "Not Recommended for New Designs".

Thank you,

Joe

Linux/AM5728: Changing UART3 Baud Rate in UBoot

$
0
0

Part Number: AM5728

Tool/software: Linux

How would one go about changing the UART3's baud rate from 115200 to 9600?

I believe I see a file in uboot/include/configs/dra7xx_evm.h, but are there anywhere else to change it? 

Viewing all 17527 articles
Browse latest View live