TT Zephyr Platforms 18.11.99
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 <arc_dma.h>
14#include "serdes_ss_regs.h"
15
16/* LANE OFFSETS */
17#define LANE_OFFSET 0x00010000
18#define LANE_BROADCAST 0x00200000
19#define LANE_RX_OFFSET 0x00000000
20#define LANE_TX_OFFSET 0x00001000
21#define LANE_ETH_OFFSET 0x00002000
22#define LANE_DFX_OFFSET 0x00003000
23#define LANE_MAX 7
24
25/* REGISTERS OFFSETS */
26#define CMN_OFFSET 0x01000000 /* 0x100_0000 PMA AlphaCore */
27#define PCS_OFFSET 0x02000000 /* PCIE PIPE CORE */
28#define CTRL_OFFSET 0x03000000 /* TensTorrent Registers control serdes */
29
30#define MAX_SERDES_INSTANCES 6
31
32#define SERDES_INST_BASE_ADDR(inst) (PCIE_PHY_SERDES0_BASE + ((inst) % 3 * 0x4000000))
33#define SERDES_INST_SRAM_ADDR(inst) \
34 (SERDES_INST_BASE_ADDR(inst) + PCIE_PHY_SERDES_SRAM_START_REG_ADDR)
35
40
41void LoadSerdesEthRegs(uint32_t serdes_inst, uint32_t ring, uint8_t *buf, size_t buf_size,
42 size_t spi_address, size_t image_size);
43int LoadSerdesEthFw(uint32_t serdes_inst, uint32_t ring, uint8_t *buf, size_t buf_size,
44 size_t spi_address, size_t image_size);
45
46#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:36
uint32_t addr
Definition serdes_eth.h:37
uint32_t data
Definition serdes_eth.h:38