Posts

Showing posts from February, 2024

PCIe interface

 Programming the firmware for a PCIe client interface on the Intel Arria 10 SoC involves a structured design flow that encompasses low-level hardware initialization, configuration of the PCIe interface, and the establishment of communication protocols between the SoC and the host system. This process requires an in-depth understanding of the Arria 10 SoC's architecture, including its PCIe hard IP blocks, ARM processors, and the Quartus Prime development environment. Below is a detailed firmware programming design flow, highlighting key steps and low-level interface details. ### 1. Hardware Initialization - **Power-On Reset Configuration**: Upon power-up, the Arria 10 SoC undergoes a reset sequence. Firmware needs to correctly configure the system's initial state, setting up clock sources, power management, and device modes for optimal operation. - **Clock and Reset Management**: The ARM processors and PCIe hard IP blocks within the Arria 10 SoC require specific clock configurat...

LMK03318

/*****************************************************************************/ /** * * @file ti_lmk03318.c * @addtogroup TI_LMK03318 * @{ *  * <pre> * Copyright (c) 2016 Adeas B.V. All rights reserved. * * MODIFICATION HISTORY: * * Ver   Who    Date     Changes * ----- ------ -------- -------------------------------------------------- * X.XX  XX     YY/MM/DD * 1.00  RHe    16/06/20 Initial release.  * </pre> * ******************************************************************************/ #include "ti_lmk03318.h" #include "xiic.h" /*****************************************************************************/ /** * * This function send a single byte to the TI LMK03318   * * @param I2CBaseAddress is the baseaddress of the I2C core. * @param I2CSlaveAddress is the 7-bit I2C slave address. * * @return *    - XST_SUCCESS Initialization was successful. *    - XST_FAILURE...