I want to develop an AWS IoT application on a TI device. Where can I find some good resources to help me get started?
[FAQ] Where can I find development resources for AWS IoT?
Linux/AM3354: CPSW ARP zero padding
Part Number:AM3354
Tool/software: Linux
Windows can send 42 bytes arp (not inlclude crc32 4 bytes ) packet to ethernet , and why does not the TI am335x send the package to ethernet? I use 3 port CPSW mode, not dual MAC mode. I disable the padding function in linux kernel/driver/ethernet/ti/cpsw.c , i list the code below :
static netdev_tx_t cpsw_ndo_start_xmit(struct sk_buff *skb,
struct net_device *ndev)
{
struct cpsw_priv *priv = netdev_priv(ndev);
int ret;
ndev->trans_start = jiffies;
#if 0
if(htons(skb->protocol) == ETH_P_ARP ){
printk("rick arp packet len=%d\n",skb->len);
}
else {
if (skb_padto(skb, CPSW_MIN_PACKET_SIZE)) {
cpsw_err(priv, tx_err, "packet pad failed\n");
priv->stats.tx_dropped++;
return NETDEV_TX_OK;
}
}
#endif
if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP &&
priv->cpts->tx_enable)
skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
skb_tx_timestamp(skb);
ret = cpsw_tx_packet_submit(ndev, priv, skb);
if (unlikely(ret != 0)) {
cpsw_err(priv, tx_err, "desc submit failed\n");
goto fail;
}
/* If there is no more tx desc left free then we need to
* tell the kernel to stop sending us tx frames.
*/
if (unlikely(!cpdma_check_free_tx_desc(priv->txch)))
netif_stop_queue(ndev);
return NETDEV_TX_OK;
}
I know this is a limit from IEEE 802.3 document , but not compatiable with all the embedded device .
how can i disale it for am335x ? i found that for receive, there is an option to choose if receive less then 64 bytes or not .
thanks
rick
Linux/TMS320C6678: PC(ARM architecture)didn't access C6678 by PCIE successfully
Part Number:TMS320C6678
Tool/software: Linux
In our application ,we connect PC to C6678 by PCIE. The PC we use is Jeston TX2 developed by NVIDIA(ARM + GPU), which run the Ubuntu 16.04.
We try to access the memory on DSP from PC. We have made PC detect the C6678 successfully after power on. We make sure it by input the cmd “lspci -vvv”,like this:
But when we use function “pci_resource_start”to read the bar information, we didn’t get the right value. It’s like this:
The code :
static int hello_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{
for(i=0;i<5;i++)
{
barStart [i] = pci_resource_start (pdev, i);
barLen [i] = pci_resource_len (pdev, i);
barFlags [i] = pci_resource_flags (pdev, i);
printk("barStart [%d]: 0x%x; barLen [%d]: 0x%x; barFlags [%d]: 0x%x\n",i,barStart [i],i,barLen[i],i,barFlags[i]);
}
……
}
The result:
Then we check the struct point “pdev” ,and find the value of its member seems like to be in the wrone position,like this:
We guess that when linux scan the pci bus to create the pci device information, it didn’t put the value in the right place. But why? Since we can’t trace the operation during pci scan, so I have to ask for help.Thank you very much.
AM3352: XDS Target connection guide
Part Number:AM3352
Hi Team,
Wiki link http://processors.wiki.ti.com/index.php/XDS_Target_Connection_Guide can not be accessed now, where can user find the new link or same pdf to support the design?
Besides doc <spru655i Emulation and Trace Header TRM.pdf>, we still needs this link info to check.
Thanks
RTOS/TDA2EG-17: how to design the avm algorithm for 3D surrond view ?
Part Number:TDA2EG-17
Tool/software: TI-RTOS
hi . our leader have an idea . I'd like to confirm that it's feasible.
Whether we should split avm algo.
1/ use vpe for the 3D bowl image generation
2/ gpu to make the vehicle model, the view and the overlay
As far as I know, VPE is used to make image scale & color space convert. Can VPE be used to generate 3D bowl image ?
Linux/TDA2E: vision SDK 3.02 A15 set clock freqency
Part Number:TDA2E
Tool/software: Linux
Hi,
I would like to change a15 clock freqency.
Can I use SysCtlClockSet() function to change clock freqency and use SysCtlClockGet() to check?
If I can not use this function.Which function I can to use?
Thanks
yumei
SysCtlClockSet()
TMS320DM8168: HDMI_EXTSWING PIN hardware design recommendation of DM8168
Part Number:TMS320DM8168
Hi Champs,
The HDMI_EXTSWING PIN is recommended to connected with external 5.9KΩ resistor with TRM SPRS614D version, while 698Ω resistor was recommended on older TRM version.
Could customer continue use 698Ω resistor on their hardware design? What's the impact on different resistor value and any risk on 698Ω design?
Thanks a lot for support!
Jane
Linux/AM3358: How to bring up ethernet/ip in Beaglebone black
Part Number:AM3358
Tool/software: Linux
Hi Team,
As a part of project we need to bring up ethernet ip slave in beagelebone black.
We have flashed linux into eMMC. And it is booting from there.
Unfortunatly SD card booting is not working please refer to this thread.
Please walk me through the steps to build and execute ethernet/ip slave in beaglebone black.
Thanks and Regards,
Vishnu
Linux/AM5718: PHY not detected
Part Number:AM5718
Tool/software: Linux
Hi,
we have developed a custom board with AM5718 using ti-processor-sdk-linux-am57xx-evm-05.02.00.10. we have an issue with Ethernet, almost every thing is over in bringing up the som except this Ethernet issue, Please try to help us to resolve this issue.
In our board
1. One port realized with RMI and another port is relaized with PCIe using i210 and this is also RMI
2. ENET-REF-50MHz is connected between processor and PHY
3. We are using internal clock from the processor
4. The phy address is 9, which is depend on hardware.
Ethernet pin configurations and nodes in our dts file.
davinci_mdio_pins: pinmux_davinci_mdio_pins {
pinctrl-single,pins = <
/* MDIO */
DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE1) /* mdio_mclk */
DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE1) /* mdio_d */
>;
};
davinci_mdio_pins_sleep: pinmux_davinci_mdio_pins_sleep {
pinctrl-single,pins = <
/* MDIO reset value */
DRA7XX_CORE_IOPAD(0x363c, PIN_INPUT_PULLDOWN | MUX_MODE15) /* mdio_mclk */
DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLDOWN | MUX_MODE15) /* mdio_d */
>;
};
cpsw_pins_default: cpsw_pins_default {
pinctrl-single,pins = <
/* Slave 1 */
DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE1) /* rgmii1_tclk */
DRA7XX_CORE_IOPAD(0x3644, PIN_OUTPUT | MUX_MODE0) /* rgmii1_tclk---RMII_MHZ_50_CLK */
DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE1) /* rgmii1_tctl */
DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE1) /* rgmii1_td3 */
DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE1) /* rgmii1_td2 */
DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE1) /* rgmii1_td1 */
DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE1) /* rgmii1_td0 */
DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE1) /* rgmii1_rclk */
DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE1) /* rgmii1_rctl */
DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE1) /* rgmii1_rd3 */
DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE1) /* rgmii1_rd2 */
DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE1) /* rgmii1_rd1 */
DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE1) /* rgmii1_rd0 */
>;
};
&mac {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&cpsw_pins_default>;
pinctrl-1 = <&cpsw_pins_sleep>;
//dual_emac;
slaves = <1>;
};
&cpsw_emac0 {
phy_id = <&davinci_mdio>,<9>;
phy-mode = "rmii";
};
&davinci_mdio {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_pins>;
pinctrl-1 = <&davinci_mdio_pins_sleep>;
};
In the boot log
[ 1.727440] libphy: Fixed MDIO Bus: probed
[ 1.790842] davinci_mdio 48485000.mdio: davinci mdio revision 1.6, bus freq 1000000
[ 1.798535] davinci_mdio 48485000.mdio: no live phy, scanning all
[ 1.900955] davinci_mdio 48485000.mdio: timed out waiting for user access
[ 2.007850] davinci_mdio 48485000.mdio: timed out waiting for idle
[ 2.014106] davinci_mdio: probe of 48485000.mdio failed with error -5
[ 2.021186] CTRL_CORE_MAC_ID_SW_1 985dad
[ 2.025213] CTRL_CORE_MAC_ID_SW_0 9a2e1a
[ 2.029236] mac addr[i] 98
[ 2.031970] mac addr[i] 5d
[ 2.034687] mac addr[i] ad
[ 2.037401] mac addr[i] 9a
[ 2.040115] mac addr[i] 2e
[ 2.042844] mac addr[i] 1a
[ 2.045563] cpsw 48484000.ethernet: Detected MACID = 98:5d:ad:9a:2e:1a
[ 2.052187] cpsw 48484000.ethernet: initialized cpsw ale version 1.4
[ 2.058568] cpsw 48484000.ethernet: ALE Table size 1024
[ 2.063841] cpsw 48484000.ethernet: device node lookup for pps timer failed
[ 2.070881] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies)
root@am57xx-evm:~# dmesg | grep phy
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] arch_timer: cp15 timer(s) running at 6.14MHz (phys).
[ 1.727440] libphy: Fixed MDIO Bus: probed
[ 1.798535] davinci_mdio 48485000.mdio: no live phy, scanning all
[ 9.546973] libphy: PHY 48485000.mdio:09 not found
[ 9.546979] net eth0: phy "48485000.mdio:09" not found on slave 0, err -19
root@am57xx-evm:~# dmesg | grep eth
[ 2.045563] cpsw 48484000.ethernet: Detected MACID = 98:5d:ad:9a:2e:1a
[ 2.052187] cpsw 48484000.ethernet: initialized cpsw ale version 1.4
[ 2.058568] cpsw 48484000.ethernet: ALE Table size 1024
[ 2.063841] cpsw 48484000.ethernet: device node lookup for pps timer failed
[ 2.070881] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies)
[ 9.544979] net eth0: initializing cpsw version 1.15 (0)
[ 9.546979] net eth0: phy "48485000.mdio:09" not found on slave 0, err -19
[ 9.577599] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
root@am57xx-evm:~#
Linux/AM5726: EXT4-fs errors running from eMMC (known kernel bug)
Part Number:AM5726
Tool/software: Linux
Hi There,
I'm just finishing up a migration from an AM5726 board from TI-SDK 3.02.00.05 to TI-SDK 5.01.00.11.
After running swupdate to flash the eMMC from the SDCard, I am seeing a series of ext4-fs errors. Also after booting from the eMMC there appears to be considerable file system corruption.
This seems to be a known Linux Kernel issue. It appears a fix was made for Kernel versions 4.19x and 4.20.x. I was wondering if a back ported fix was available for Linux Kernel 4.14.x which is included in TI SDK 5.x? I did not find this particular issue listed in the Release Notes.
Incorrect disk IO caused by blk-mq direct issue can lead to file system corruption
EXT4-fs error (device sda7): ext4_iget:4831: inode
Partitioning Script
======================
prepare_emmc() {
fw_setenv factorymode 0
echo 0 > /sys/block/mmcblk1boot0/force_ro
dd if=/dev/zero of=/dev/mmcblk1boot0 bs=512 count=4096
dd if=/run/media/mmcblk0p1/MLO of=/dev/mmcblk1boot0 bs=512
dd if=/run/media/mmcblk0p1/u-boot.img of=/dev/mmcblk1boot0 bs=512 seek=768
unmount /dev/mmcblk1p1
unmount /dev/mmcblk1p2
unmount /dev/mmcblk1p3
sleep 1
echo yes | parted -s /dev/mmcblk1 rm 1
echo yes | parted -s /dev/mmcblk1 rm 2
echo yes | parted -s /dev/mmcblk1 rm 3
parted -s /dev/mmcblk1 mkpart primary ext4 0% 40%
parted -s /dev/mmcblk1 mkpart primary ext4 40% 80%
parted -s /dev/mmcblk1 mkpart primary ext4 80% 100%
sleep 1
unmount /dev/mmcblk1p1
unmount /dev/mmcblk1p2
unmount /dev/mmcblk1p3
sleep 1
echo yes | mkfs.ext4 /dev/mmcblk1p1
echo yes | mkfs.ext4 /dev/mmcblk1p2
echo yes | mkfs.ext4 /dev/mmcblk1p3
mount_if mmcblk1p1
mount_if mmcblk1p2
mount_if mmcblk1p3
cd /run/media/mmcblk0p3
swupdate -v -H board:3.50 -i board_3.5.swu -e board,eMMC-install >> recovery.$timestamp.log 2>&1
fw_setenv mmcdev 1
reboot
}
dmesg logs listed below
=======================
root@am57xx-evm:~# stat /
File: /
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: b311h/45841d Inode: 2 Links: 21
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-02-26 06:27:20.000000000
Modify: 2019-02-26 06:34:41.000000000
Change: 2019-02-26 06:34:41.000000000
root@am57xx-evm:~# dmesg | grep -i ext4
[ 0.000000] Kernel command line: console=ttyS2,115200n8 net.ifnames=0 biosdevname=0 root=PARTUUID=d093c9e2-01 rw rootfstype=ext4 rootwait
[ 3.795105] EXT4-fs (mmcblk1p1): warning: mounting fs with errors, running e2fsck is recommended
[ 3.805298] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)
[ 3.813458] VFS: Mounted root (ext4 filesystem) on device 179:17.
[ 4.999205] EXT4-fs (mmcblk1p1): re-mounted. Opts: (null)
[ 8.168201] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[ 8.213794] EXT4-fs (mmcblk1p3): mounted filesystem with ordered data mode. Opts: (null)
[ 8.228680] EXT4-fs (mmcblk0p3): mounting ext3 file system using the ext4 subsystem
[ 8.528818] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4331: comm grep: checksum invalid
[ 8.537106] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4033: comm grep: checksum invalid
[ 8.550659] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4019: comm grep: checksum invalid
[ 8.552701] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4509: comm grep: checksum invalid
[ 8.555045] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4697: comm grep: checksum invalid
[ 8.556233] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #3908: comm grep: checksum invalid
[ 8.557062] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #3872: comm grep: checksum invalid
[ 8.558947] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4474: comm grep: checksum invalid
[ 8.575134] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4216: comm grep: checksum invalid
[ 8.576337] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4078: comm grep: checksum invalid
[ 9.029010] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
[ 9.042961] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
[ 9.139316] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
...
[ 8.852095] EXT4-fs error: 356 callbacks suppressed
[ 8.852102] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm modprobe: bad extra_isize 11640 (inode size 256)
[ 8.871310] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mount.sh: bad extra_isize 11640 (inode size 256)
[ 8.885920] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mkdir: bad extra_isize 11640 (inode size 256)
[ 8.901446] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm basename: bad extra_isize 11640 (inode size 256)
[ 8.915776] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm grep: bad extra_isize 11640 (inode size 256)
[ 8.930319] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm readlink: bad extra_isize 11640 (inode size 256)
[ 8.945352] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mkdir: bad extra_isize 11640 (inode size 256)
[ 8.959794] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm expr: bad extra_isize 11640 (inode size 256)
[ 8.974192] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mount: bad extra_isize 11640 (inode size 256)
[ 8.988109] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm readlink: bad extra_isize 11640 (inode size 256)
...
[ 320.470812] EXT4-fs (mmcblk1p1): error count since last fsck: 1354
[ 320.477043] EXT4-fs (mmcblk1p1): initial error at time 1551162840: ext4_iget:4703: inode 3729
[ 320.485638] EXT4-fs (mmcblk1p1): last error at time 1551162334: ext4_iget:4723: inode 4427
OMAP-L138: Compilation error during build of Syslink 2.21.03.11
Part Number:OMAP-L138
I try build syslink driver using the option -syslink-driver, there is this error which looks more towards coding error, any idea on resolution ?
syslink_2_21_03_11/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/GateMP.c: In function 'GateMP_start':
/syslink_2_21_03_11/packages/ti/syslink/inc/GatePeterson.h:309:6: error: inlining failed in call to always_inline 'GatePeterson_locksinit': function body not available
Void GatePeterson_locksinit(Void);
Thanks.
Linux/TDA2PXEVM: Is there any case can help us to design the A/B system in visonSDK_03_05 for OTA design
Part Number:TDA2PXEVM
Tool/software: Linux
Hello,
According to android system, we are ready to design the A/B system in visonSDK_03_05 for OTA. Is there any case can help us? Or, is there the other solution for OTA design?
Thanks
Terence
TDA2EVM5777: Steps to compile and build arm-nn in Vision SDK for TDA2x
Part Number:TDA2EVM5777
Hi,
I want to use arm-nn api for tensorflow and caffe models on TDA2x EVM board. I have using PROCESSOR_SDK_VISION_03_03_00_00.
And tisdk-rootfs-image-dra7xx-evm_vsdk_3_4.tar.xz which i have downloaded from this link http://software-dl.ti.com/processor-sdk-vision/esd/TDAx/vision-sdk/latest/index_FDS.html
I have build default apps in "tda2xx_evm_linux_all" configuration and able to boot linux on TDA2x EVM.
Now i want to use arm-nn apis for running deep learning tensorflow and caffe based models on it. I understood that i can run it on A15 (arm). But, I dont know how to comile and build arm-nn for A15.
I referred this link: http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_ArmNN.html
But, I am not ablet to locate sample executables at /usr/bin location in my targetfs.
Can you share the steps for this?
Regards,
Sagar
Linux/AM5728: multiple OS on ARMs without hypervisor
Part Number:AM5728
Tool/software: Linux
Dear Champs,
Is it possible to run multiple OS on ARM cores without hypervisor?
My customer is looking for a example to load RTOS binary to core1 on core0 linux. e.g. Linux will be run on core0 and RTOS will be downloaded to core1 at the initial boot time of linux on core0.
When I introduced TIDEP-0095 Jailhouse Hypervisor reference design, my customer afraid about overheads and stability of jailhouse as their target application is very time critical application.
So, if there is a way to make simpler solution than jailhouse, could please let me know your idea?
Thanks and Best Regards,
SI.
Linux/AM5718: GPIO I/O configuration issue
Part Number:AM5718
Tool/software: Linux
Hi,
In the pinmux file given for TMDXIDK5718 idk ""AM571x Industrial Development Kit (IDK) Pinmux Files""
GPIO1_4 is defined as input
In the IDK board it is supposed to drive an LED (D16). Does the linux uses the same idk pinmux or a different pinmux file??
How did it change GPIO direction from IN to OUT?? Does Linux reassign pinmux while booting ??
Issue1
We were able to drive the LED using this GPIO1_4 ie GPIO configured as OUT works fine.
When we configured same GPIO as input from Linux we could not get the desired results. The GPIO pin always shows "0'" value for IN even after applying logic high to D15 (GPIO1_4) hardware pin. On debugging we realize that reg CTRL_CORE_PAD_MCASP2_AXR4 was not updated properly.
Our configuration calls where as follows
""
RTOS/PROCESSOR-SDK-AM57X: TCP socket performance issue
Part Number:PROCESSOR-SDK-AM57X
Tool/software: TI-RTOS
Hello
I'm using AM572x IDK board with TI-RTOS SDK 05.03.00.07 and detected TCP performance issue with simple stress-test.
I'm using the NIMU FTP example project for my board for TCP speed measure.
First of all, I patched my PDK with that patch: (Please visit the site to view this file)
Then I build & load that example project on IDK board & measure download speed (using wget command wget user:password@192.168.6.4/test --no-passive).
I see the attached output in my console & capture attached file with Wireshark tool:
(Please visit the site to view this file)
(Please visit the site to view this file)
As you can see in the log file, TCP speed was downgraded from ~22MB/s to ~100-200KB/s in second receiving.
FTP connection transactions were sequential, not concurrent.
If packages/ti/transport/ndk/nimu/example/ftpApp/ftpserver/ftpserver.h file diff applying was disabled, all works file after fifth connection too (log & Wireshark capture were attached too).
(Please visit the site to view this file)
(Please visit the site to view this file)
How can I send big file parts (more than ~2KB) with good speed without manual splitting it?
My working environment: CCS v8.1.0, TI-RTOS SDK 05.03.00.07, Ubuntu x64 16.04.6 LTS. I'm connected to IDK board J10 (Gb Ethernet 0) using the second NIC.
With regards,
Alex
P.S. It looks like TCP retransmit timeout detection timer bad configuration.
TMS320C6748: Setting ODT for DDR2
Part Number:TMS320C6748
Hello,
I'm hoping that you can help me set the ODT (On Die Termination ) resistors for my DDR2. I configure the DDR2 using the TI AISgen tool, but I cannot see how to set the ODT values in the config file.
I already set these:
DDR2 PHY=c4
DDR2 SDCR=8134632
DDR2 SDCR2=0
DDR2 SDTIMR=184929c8
DDR2 SDTIMR2=380fc700
DDR2 SDRCR=406
Any help would be appreciated.
Thanks,
Paul
CCS/DRA80XMEVM: Issue in GICV3 initialization while switching from EL3 to El2
Part Number:DRA80XMEVM
Tool/software: Code Composer Studio
Hi,
I am using DRA80xM IDK board and developing bare metal code on CA53 cluster. Board boots in EL3 and I am initializing GICV3 before going to EL2 and then to EL1.
I am facing a weird behavior about GICV3 initialization. After switching to EL2 from EL3, some times I am not able to write GICV3 registers. In the EL3, I am setting all interrupts to G1NS and I could write to registers through debugger window as well. But after switching to EL2, I cannot write GICV3 registers.
Linux/AM3358: ADC sampling speed
Part Number:AM3358
Tool/software: Linux
Hi,
According to AM335X TRM, the ADC clock can be set at 24MHz maxmum, however in TI Linux sdk driver, the ADC clock is set at only 3MHz.
So if there any special consideration for this ADC clock frequency reduction?
I checked AM335X errata, didn't find anything related to the ADC clock.
static int ti_tscadc_probe(struct platform_device *pdev)
{
………………………………
/*
* The TSC_ADC_Subsystem has 2 clock domains
* OCP_CLK and ADC_CLK.
* The ADC clock is expected to run at target of 3MHz,
* and expected to capture 12-bit data at a rate of 200 KSPS.
* The TSC_ADC_SS controller design assumes the OCP clock is
* at least 6x faster than the ADC clock.
*/
clk = devm_clk_get(&pdev->dev, "adc_tsc_fck");
if (IS_ERR(clk)) {
dev_err(&pdev->dev, "failed to get TSC fck\n");
err = PTR_ERR(clk);
goto err_disable_clk;
}
clock_rate = clk_get_rate(clk);
tscadc->clk_div = clock_rate / ADC_CLK;
/* TSCADC_CLKDIV needs to be configured to the value minus 1 */
tscadc->clk_div--;
regmap_write(tscadc->regmap, REG_CLKDIV, tscadc->clk_div);
……………………………………
}