diff options
Diffstat (limited to 'package/boot/uboot-layerscape/patches/0049-DNCPE-296-PFE-reset-woraround-fix.patch')
-rw-r--r-- | package/boot/uboot-layerscape/patches/0049-DNCPE-296-PFE-reset-woraround-fix.patch | 327 |
1 files changed, 0 insertions, 327 deletions
diff --git a/package/boot/uboot-layerscape/patches/0049-DNCPE-296-PFE-reset-woraround-fix.patch b/package/boot/uboot-layerscape/patches/0049-DNCPE-296-PFE-reset-woraround-fix.patch deleted file mode 100644 index 0a4e80cbf6..0000000000 --- a/package/boot/uboot-layerscape/patches/0049-DNCPE-296-PFE-reset-woraround-fix.patch +++ /dev/null @@ -1,327 +0,0 @@ -From 1b9cf577511123dd05e1d3b1fe7fd5db43b6097f Mon Sep 17 00:00:00 2001 -From: Anji J <anji.jagarlmudi@freescale.com> -Date: Wed, 25 May 2016 13:40:13 +0530 -Subject: [PATCH 49/93] DNCPE-296 PFE reset woraround fix - -- Linux driver depends on U-boot TMU initialization, - but U-boot tmu initialization is not as expected by Linux driver. -- Align U-boot TMU initialization with Linux driver -- LLM base address in DDR changed to match with Linux driver expectation. -- Remove unwanted pfe_mod.h -- Start PFE/network at bootup time. ---- - common/cmd_pfe_commands.c | 9 +- - drivers/net/pfe_eth/pfe.c | 16 ++-- - drivers/net/pfe_eth/pfe/cbus/tmu_csr.h | 7 ++ - drivers/net/pfe_eth/pfe_eth.h | 9 +- - drivers/net/pfe_eth/pfe_mod.h | 140 -------------------------------- - include/configs/ls1012a_common.h | 1 - - 6 files changed, 24 insertions(+), 158 deletions(-) - delete mode 100644 drivers/net/pfe_eth/pfe_mod.h - -diff --git a/common/cmd_pfe_commands.c b/common/cmd_pfe_commands.c -index 0e22097..ca479d7 100644 ---- a/common/cmd_pfe_commands.c -+++ b/common/cmd_pfe_commands.c -@@ -932,7 +932,7 @@ static void send_dummy_pkt_to_hif(void) - /*Allocate BMU2 buffer */ - buf = readl(BMU2_BASE_ADDR + BMU_ALLOC_CTRL); - -- printf("Sending a dummy pkt to HIF %x\n", buf); -+ debug("Sending a dummy pkt to HIF %x\n", buf); - buf += 0x80; - memcpy((void *)DDR_PFE_TO_VIRT(buf), dummy_pkt, sizeof(dummy_pkt)); - /*Write length and pkt to TMU*/ -@@ -945,14 +945,13 @@ static void pfe_command_stop(int argc, char * const argv[]) - { - int id; - u32 rx_status; -- printf("Stopping PFE \n"); -+ printf("Stopping PFE... \n"); - - /*Mark all descriptors as LAST_BD */ - hif_rx_desc_disable(); - - /*If HIF Rx BDP is busy send a dummy packet */ - rx_status = readl(HIF_RX_STATUS); -- printf("rx_status %x %x\n",rx_status, BDP_CSR_RX_DMA_ACTV); - if(rx_status & BDP_CSR_RX_DMA_ACTV) - send_dummy_pkt_to_hif(); - udelay(10); -@@ -964,12 +963,10 @@ static void pfe_command_stop(int argc, char * const argv[]) - - for (id = CLASS0_ID; id <= CLASS_MAX_ID; id++) - { -- printf("Stop %d\n", id); - /*Inform PE to stop */ - pe_dmem_write(id, cpu_to_be32(1), PEMBOX_ADDR_CLASS, 4); - udelay(10); - -- printf("Reading %d\n", id); - /*Read status */ - if(!pe_dmem_read(id, PEMBOX_ADDR_CLASS+4, 4)) - printf("Failed to stop PE%d\n", id); -@@ -979,12 +976,10 @@ static void pfe_command_stop(int argc, char * const argv[]) - { - if(id == TMU2_ID) continue; - -- printf("Stop %d\n", id); - /*Inform PE to stop */ - pe_dmem_write(id, 1, PEMBOX_ADDR_TMU, 4); - udelay(10); - -- printf("Reading %d\n", id); - /*Read status */ - if(!pe_dmem_read(id, PEMBOX_ADDR_TMU+4, 4)) - printf("Failed to stop PE%d\n", id); -diff --git a/drivers/net/pfe_eth/pfe.c b/drivers/net/pfe_eth/pfe.c -index 3b5570a..2c31cad 100644 ---- a/drivers/net/pfe_eth/pfe.c -+++ b/drivers/net/pfe_eth/pfe.c -@@ -1489,17 +1489,16 @@ void tmu_init(TMU_CFG *cfg) - writel(0x3FF, TMU_TDQ2_SCH_CTRL); - #endif - writel(0x3FF, TMU_TDQ3_SCH_CTRL); -- -- -+ - if (PLL_CLK_EN == 0) - writel(0x0, TMU_PE_SYS_CLK_RATIO); // Clock ratio: for 1:1 the value is 0 - else - writel(0x1, TMU_PE_SYS_CLK_RATIO); // Clock ratio: for 1:2 the value is 1 - -- //printf("TMU_LLM_BASE_ADDR %x\n", cfg->llm_base_addr); -+ debug("TMU_LLM_BASE_ADDR %x\n", cfg->llm_base_addr); - writel(cfg->llm_base_addr, TMU_LLM_BASE_ADDR); // Extra packet pointers will be stored from this address onwards -- -- //printf("TMU_LLM_QUE_LEN %x\n", cfg->llm_queue_len); -+ -+ debug("TMU_LLM_QUE_LEN %x\n", cfg->llm_queue_len); - writel(cfg->llm_queue_len, TMU_LLM_QUE_LEN); - writel(5, TMU_TDQ_IIFG_CFG); - writel(DDR_BUF_SIZE, TMU_BMU_BUF_SIZE); -@@ -1531,7 +1530,12 @@ void tmu_init(TMU_CFG *cfg) - u32 qmax; - writel((phyno << 8) | q, TMU_TEQ_CTRL); - writel(1 << 22, TMU_TEQ_QCFG); -- qmax = ((phyno == 3) || (q < 8)) ? 255 : 127; -+ -+ if (phyno == 3) -+ qmax = DEFAULT_TMU3_QDEPTH; -+ else -+ qmax = (q == 0) ? DEFAULT_Q0_QDEPTH : DEFAULT_MAX_QDEPTH; -+ - writel(qmax << 18, TMU_TEQ_HW_PROB_CFG2); - writel(qmax >> 14, TMU_TEQ_HW_PROB_CFG3); - } -diff --git a/drivers/net/pfe_eth/pfe/cbus/tmu_csr.h b/drivers/net/pfe_eth/pfe/cbus/tmu_csr.h -index cbcbb1f..64fad04 100644 ---- a/drivers/net/pfe_eth/pfe/cbus/tmu_csr.h -+++ b/drivers/net/pfe_eth/pfe/cbus/tmu_csr.h -@@ -93,10 +93,17 @@ - #define MEM_INIT_DONE (1 << 7) - #define LLM_INIT (1 << 8) - #define LLM_INIT_DONE (1 << 9) -+#define ECC_MEM_INIT_DONE (1<<10) - - typedef struct { - u32 llm_base_addr; - u32 llm_queue_len; - } TMU_CFG; - -+/* Not HW related for pfe_ctrl / pfe common defines */ -+#define DEFAULT_MAX_QDEPTH 80 -+#define DEFAULT_Q0_QDEPTH 511 //We keep one large queue for host tx qos -+#define DEFAULT_TMU3_QDEPTH 127 -+ -+ - #endif /* _TMU_CSR_H_ */ -diff --git a/drivers/net/pfe_eth/pfe_eth.h b/drivers/net/pfe_eth/pfe_eth.h -index dfcc00e..c16b8c0 100644 ---- a/drivers/net/pfe_eth/pfe_eth.h -+++ b/drivers/net/pfe_eth/pfe_eth.h -@@ -39,11 +39,8 @@ - #define BMU2_BUF_COUNT (3 * SZ_1K) - #define BMU2_DDR_SIZE (DDR_BUF_SIZE * BMU2_BUF_COUNT) - --#define TMU_LLM_BASEADDR (BMU2_DDR_BASEADDR + BMU2_DDR_SIZE) --#define TMU_LLM_QUEUE_LEN (16 * 256) /**< Must be power of two and at least 16 * 8 = 128 bytes */ --#define TMU_LLM_SIZE (4 * 16 * TMU_LLM_QUEUE_LEN) /**< (4 TMU's x 16 queues x queue_len) */ - --#define HIF_RX_PKT_DDR_BASEADDR (TMU_LLM_BASEADDR + TMU_LLM_SIZE) -+#define HIF_RX_PKT_DDR_BASEADDR (BMU2_DDR_BASEADDR + BMU2_DDR_SIZE) - #define HIF_RX_PKT_DDR_SIZE (HIF_RX_DESC_NT * DDR_BUF_SIZE) - #define HIF_TX_PKT_DDR_BASEADDR (HIF_RX_PKT_DDR_BASEADDR + HIF_RX_PKT_DDR_SIZE) - #define HIF_TX_PKT_DDR_SIZE (HIF_TX_DESC_NT * DDR_BUF_SIZE) -@@ -72,6 +69,10 @@ - #define TMU_DDR_DATA_BASEADDR (CLASS_DDR_DATA_BASEADDR + CLASS_DDR_DATA_SIZE) - #define TMU_DDR_DATA_SIZE (32 * SZ_1K) - -+#define TMU_LLM_BASEADDR (TMU_DDR_DATA_BASEADDR + TMU_DDR_DATA_SIZE) -+#define TMU_LLM_QUEUE_LEN (16 * 256) /**< Must be power of two and at least 16 * 8 = 128 bytes */ -+#define TMU_LLM_SIZE (4 * 16 * TMU_LLM_QUEUE_LEN) /**< (4 TMU's x 16 queues x queue_len) */ -+ - //#define ROUTE_TABLE_BASEADDR (TMU_DDR_DATA_BASEADDR + TMU_DDR_DATA_SIZE) - #define ROUTE_TABLE_BASEADDR 0x800000 - #define ROUTE_TABLE_HASH_BITS_MAX 15 /**< 32K entries */ -diff --git a/drivers/net/pfe_eth/pfe_mod.h b/drivers/net/pfe_eth/pfe_mod.h -deleted file mode 100644 -index 9436b72..0000000 ---- a/drivers/net/pfe_eth/pfe_mod.h -+++ /dev/null -@@ -1,140 +0,0 @@ --/* -- * (C) Copyright 2011 -- * Author : Mindspeed Technologes -- * -- * See file CREDITS for list of people who contributed to this -- * project. -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public License as -- * published by the Free Software Foundation; either version 2 of -- * the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -- * MA 02111-1307 USA -- * */ -- -- --#ifndef _PFE_MOD_H_ --#define _PFE_MOD_H_ -- --#include <linux/device.h> -- --#include "pfe/pfe.h" --#include "pfe/cbus.h" --#include "pfe/cbus/bmu.h" -- --#include "pfe_driver.h" -- --struct pfe; -- -- --struct pfe { -- unsigned long ddr_phys_baseaddr; -- void *ddr_baseaddr; -- void *cbus_baseaddr; -- void *apb_baseaddr; -- void *iram_baseaddr; -- int hif_irq; -- struct device *dev; -- struct pci_dev *pdev; -- --#if 0 -- struct pfe_ctrl ctrl; -- struct pfe_hif hif; -- struct pfe_eth eth; --#endif --}; -- --extern struct pfe *pfe; -- --int pfe_probe(struct pfe *pfe); --int pfe_remove(struct pfe *pfe); -- --#ifndef SZ_1K --#define SZ_1K 1024 --#endif -- --#ifndef SZ_1M --#define SZ_1M (1024 * 1024) --#endif -- --/* DDR Mapping */ --#if !defined(CONFIG_PLATFORM_PCI) --#define UTIL_CODE_BASEADDR 0 --#define UTIL_CODE_SIZE (128 * SZ_1K) --#define UTIL_DDR_DATA_BASEADDR (UTIL_CODE_BASEADDR + UTIL_CODE_SIZE) --#define UTIL_DDR_DATA_SIZE (64 * SZ_1K) --#define CLASS_DDR_DATA_BASEADDR (UTIL_DDR_DATA_BASEADDR + UTIL_DDR_DATA_SIZE) --#define CLASS_DDR_DATA_SIZE (32 * SZ_1K) --#define TMU_DDR_DATA_BASEADDR (CLASS_DDR_DATA_BASEADDR + CLASS_DDR_DATA_SIZE) --#define TMU_DDR_DATA_SIZE (32 * SZ_1K) --#define ROUTE_TABLE_BASEADDR (TMU_DDR_DATA_BASEADDR + TMU_DDR_DATA_SIZE) --#define ROUTE_TABLE_HASH_BITS 15 /**< 32K entries */ --#define ROUTE_TABLE_SIZE ((1 << ROUTE_TABLE_HASH_BITS) * CLASS_ROUTE_SIZE) --#define BMU2_DDR_BASEADDR (ROUTE_TABLE_BASEADDR + ROUTE_TABLE_SIZE) --#define BMU2_BUF_COUNT (4096 - 256) /**< This is to get a total DDR size of 12MiB */ --#define BMU2_DDR_SIZE (DDR_BUF_SIZE * BMU2_BUF_COUNT) --#define TMU_LLM_BASEADDR (BMU2_DDR_BASEADDR + BMU2_DDR_SIZE) --#define TMU_LLM_QUEUE_LEN (16 * 256) /**< Must be power of two and at least 16 * 8 = 128 bytes */ --#define TMU_LLM_SIZE (4 * 16 * TMU_LLM_QUEUE_LEN) /**< (4 TMU's x 16 queues x queue_len) */ -- --#if (TMU_LLM_BASEADDR + TMU_LLM_SIZE) > 0xC00000 --#error DDR mapping above 12MiB --#endif -- --#else -- --#define UTIL_CODE_BASEADDR 0 --#if defined(CONFIG_UTIL_PE_DISABLED) --#define UTIL_CODE_SIZE (0 * SZ_1K) --#else --#define UTIL_CODE_SIZE (8 * SZ_1K) --#endif --#define UTIL_DDR_DATA_BASEADDR (UTIL_CODE_BASEADDR + UTIL_CODE_SIZE) --#define UTIL_DDR_DATA_SIZE (0 * SZ_1K) --#define CLASS_DDR_DATA_BASEADDR (UTIL_DDR_DATA_BASEADDR + UTIL_DDR_DATA_SIZE) --#define CLASS_DDR_DATA_SIZE (0 * SZ_1K) --#define TMU_DDR_DATA_BASEADDR (CLASS_DDR_DATA_BASEADDR + CLASS_DDR_DATA_SIZE) --#define TMU_DDR_DATA_SIZE (0 * SZ_1K) --#define ROUTE_TABLE_BASEADDR (TMU_DDR_DATA_BASEADDR + TMU_DDR_DATA_SIZE) --#define ROUTE_TABLE_HASH_BITS 5 /**< 32 entries */ --#define ROUTE_TABLE_SIZE ((1 << ROUTE_TABLE_HASH_BITS) * CLASS_ROUTE_SIZE) --#define BMU2_DDR_BASEADDR (ROUTE_TABLE_BASEADDR + ROUTE_TABLE_SIZE) --#define BMU2_BUF_COUNT 8 --#define BMU2_DDR_SIZE (DDR_BUF_SIZE * BMU2_BUF_COUNT) --#define TMU_LLM_BASEADDR (BMU2_DDR_BASEADDR + BMU2_DDR_SIZE) --#define TMU_LLM_QUEUE_LEN (16 * 8) /**< Must be power of two and at least 16 * 8 = 128 bytes */ --#define TMU_LLM_SIZE (4 * 16 * TMU_LLM_QUEUE_LEN) /**< (4 TMU's x 16 queues x queue_len) */ --#define HIF_DESC_BASEADDR (TMU_LLM_BASEADDR + TMU_LLM_SIZE) --#define HIF_RX_DESC_SIZE (16*HIF_RX_DESC_NT) --#define HIF_TX_DESC_SIZE (16*HIF_TX_DESC_NT) --#define HIF_DESC_SIZE (HIF_RX_DESC_SIZE + HIF_TX_DESC_SIZE) --#define HIF_RX_PKT_DDR_BASEADDR (HIF_DESC_BASEADDR + HIF_DESC_SIZE) --#define HIF_RX_PKT_DDR_SIZE (HIF_RX_DESC_NT * DDR_BUF_SIZE) --#define HIF_TX_PKT_DDR_BASEADDR (HIF_RX_PKT_DDR_BASEADDR + HIF_RX_PKT_DDR_SIZE) --#define HIF_TX_PKT_DDR_SIZE (HIF_TX_DESC_NT * DDR_BUF_SIZE) --#define ROUTE_BASEADDR (HIF_TX_PKT_DDR_BASEADDR + HIF_TX_PKT_DDR_SIZE) --#define ROUTE_SIZE (2 * CLASS_ROUTE_SIZE) -- --#if (ROUTE_BASEADDR + ROUTE_SIZE) > 0x10000 --#error DDR mapping above 64KiB --#endif -- --#define PFE_HOST_TO_PCI(addr) (((u32)addr)- ((u32)DDR_BASE_ADDR)) --#define PFE_PCI_TO_HOST(addr) (((u32)addr)+ ((u32)DDR_BASE_ADDR)) --#endif -- --/* LMEM Mapping */ --#define BMU1_LMEM_BASEADDR 0 --#define BMU1_BUF_COUNT 256 --#define BMU1_LMEM_SIZE (LMEM_BUF_SIZE * BMU1_BUF_COUNT) -- --#endif /* _PFE_MOD_H */ -diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h -index 3c4ab6c..57fc057 100644 ---- a/include/configs/ls1012a_common.h -+++ b/include/configs/ls1012a_common.h -@@ -113,7 +113,6 @@ - #define CONFIG_FSL_PPFE - - #ifdef CONFIG_FSL_PPFE --#define CONFIG_CMD_PFE_START - #define CONFIG_CMD_PFE_COMMANDS - #define CONFIG_UTIL_PE_DISABLED - --- -1.7.9.5 - |