TT Zephyr Platforms 19.5.0-rc1
Tenstorrent Firmware
Loading...
Searching...
No Matches
serdes_eth.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef SERDES_ETH_H
7#define SERDES_ETH_H
8
9#include <stdint.h>
10#include <stdbool.h>
11#include <stdlib.h>
12
13#include "serdes_ss_regs.h"
14
15/* LANE OFFSETS */
16#define LANE_OFFSET 0x00010000
17#define LANE_BROADCAST 0x00200000
18#define LANE_RX_OFFSET 0x00000000
19#define LANE_TX_OFFSET 0x00001000
20#define LANE_ETH_OFFSET 0x00002000
21#define LANE_DFX_OFFSET 0x00003000
22#define LANE_MAX 7
23
24/* REGISTERS OFFSETS */
25#define CMN_OFFSET 0x01000000 /* 0x100_0000 PMA AlphaCore */
26#define PCS_OFFSET 0x02000000 /* PCIE PIPE CORE */
27#define CTRL_OFFSET 0x03000000 /* TensTorrent Registers control serdes */
28
29#define MAX_SERDES_INSTANCES 6
30
31#define SERDES_INST_BASE_ADDR(inst) (PCIE_PHY_SERDES0_BASE + ((inst) % 3 * 0x4000000))
32#define SERDES_INST_SRAM_ADDR(inst) \
33 (SERDES_INST_BASE_ADDR(inst) + PCIE_PHY_SERDES_SRAM_START_REG_ADDR)
34
39
40void LoadSerdesEthRegs(uint32_t serdes_inst, uint32_t ring, uint8_t *buf, size_t buf_size,
41 size_t spi_address, size_t image_size);
42int LoadSerdesEthFw(uint32_t serdes_inst, uint32_t ring, uint8_t *buf, size_t buf_size,
43 size_t spi_address, size_t image_size);
44
45#endif
static uint8_t buf[1]
Definition log_backend_ringbuf.c:24
void LoadSerdesEthRegs(uint32_t serdes_inst, uint32_t ring, uint8_t *buf, size_t buf_size, size_t spi_address, size_t image_size)
Definition serdes_eth.c:43
int LoadSerdesEthFw(uint32_t serdes_inst, uint32_t ring, uint8_t *buf, size_t buf_size, size_t spi_address, size_t image_size)
Definition serdes_eth.c:51
__UINT32_TYPE__ uint32_t
__UINT8_TYPE__ uint8_t
Definition serdes_eth.h:35
uint32_t addr
Definition serdes_eth.h:36
uint32_t data
Definition serdes_eth.h:37