summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a146bae)
raw | patch | inline | side by side (parent: a146bae)
author | Sandeep Paulraj <s-paulraj@ti.com> | |
Thu, 28 Oct 2010 17:43:06 +0000 (13:43 -0400) | ||
committer | Sandeep Paulraj <s-paulraj@ti.com> | |
Thu, 28 Oct 2010 17:43:06 +0000 (13:43 -0400) |
Ran dos2unix on the source files
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
src/device/c6474l/c6474l.c | patch | blob | history | |
src/device/c6474l/target.h | patch | blob | history |
index ca397487e760b318a85c4828d6bf22583e33c4b4..e93e61c66447cc6a0ef73a58058d7d80d95e0687 100755 (executable)
-/************************************************************************************\r
- * FILE PURPOSE: C6474 Device Specific functions\r
- ************************************************************************************\r
- * FILE NAME: c6474l.c\r
- *\r
- * DESCRIPTION: Implements the device specific functions for the IBL\r
- *\r
- * @file c6474l.c\r
- *\r
- * @brief\r
- * This file implements the device specific functions for the IBL\r
- *\r
- ************************************************************************************/\r
-#include "ibl.h"\r
-#include "device.h"\r
-#include "pllapi.h"\r
-#include "emif31api.h"\r
-#include "pscapi.h"\r
-#include "gpio.h"\r
-#include <string.h>\r
-\r
-extern cregister unsigned int DNUM;\r
-\r
-\r
-/**\r
- * @brief Determine if an address is local\r
- *\r
- * @details\r
- * Examines an input address to determine if it is a local address\r
- */\r
-bool address_is_local (Uint32 addr)\r
-{\r
- /* L2 */\r
- if ((addr >= 0x00800000) && (addr < 0x00898000))\r
- return (TRUE);\r
-\r
- /* L1P */\r
- if ((addr >= 0x00e00000) && (addr < 0x00e08000))\r
- return (TRUE);\r
-\r
- /* L2D */\r
- if ((addr >= 0x00f00000) && (addr < 0x00f08000))\r
- return (TRUE);\r
-\r
- return (FALSE);\r
-\r
-}\r
-\r
-\r
-/**\r
- * @brief Convert a local l1d, l1p or l2 address to a global address\r
- *\r
- * @details\r
- * The global address is formed. If the address is not local then\r
- * the input address is returned\r
- */\r
-Uint32 deviceLocalAddrToGlobal (Uint32 addr)\r
-{\r
-\r
- if (address_is_local (addr))\r
- addr = (1 << 28) | (DNUM << 24) | addr;\r
-\r
- return (addr);\r
-\r
-}\r
- \r
- \r
-/**\r
- * @brief Configure the PLLs\r
- *\r
- * @details\r
- * Only the main PLL can be configured here. The DDR pll is enabled by default,\r
- * and the network PLL is enabled through serdes configuration.\r
- * the multiplier and dividers.\r
- */\r
-void devicePllConfig (void)\r
-{\r
- if (ibl.pllConfig[ibl_MAIN_PLL].doEnable == TRUE)\r
- hwPllSetPll (MAIN_PLL, \r
- ibl.pllConfig[ibl_MAIN_PLL].prediv,\r
- ibl.pllConfig[ibl_MAIN_PLL].mult,\r
- ibl.pllConfig[ibl_MAIN_PLL].postdiv);\r
-\r
-}\r
-\r
-/**\r
- * @brief\r
- * Enable the DDR\r
- *\r
- * @details\r
- * The DDR controller on the c6474 is an emif 3.1. The controller is\r
- * initialized directly with the supplied values\r
- */\r
-void deviceDdrConfig (void)\r
-{\r
- if (ibl.ddrConfig.configDdr != 0)\r
- hwEmif3p1Enable (&ibl.ddrConfig.uEmif.emif3p1);\r
-\r
-}\r
- \r
-\r
-/**\r
- * @brief Power up a peripheral\r
- *\r
- * @details\r
- * Boot peripherals are powered up\r
- */\r
-int32 devicePowerPeriph (int32 modNum)\r
-{\r
- /* If the input value is < 0 there is nothing to power up */\r
- if (modNum < 0)\r
- return (0);\r
-\r
-\r
- if (modNum >= TARGET_PWR_MAX_MOD)\r
- return (-1);\r
-\r
- return ((int32)pscEnableModule(modNum));\r
- \r
-}\r
-\r
-\r
-/**\r
- * @brief Enable the pass through version of the nand controller\r
- *\r
- * @details On the evm the nand controller is enabled by setting \r
- * gpio 14 high\r
- */\r
-#if 0\r
-int32 deviceConfigureForNand(void)\r
-{\r
- hwGpioSetDirection(NAND_MODE_GPIO, GPIO_OUT);\r
- hwGpioSetOutput(NAND_MODE_GPIO);\r
- return (0);\r
-\r
-}\r
-#endif\r
-\r
-\r
-/**\r
- * @brief\r
- * The e-fuse mac address is loaded\r
- */\r
-void deviceLoadDefaultEthAddress (uint8 *maddr)\r
-{\r
- uint32 macA, macB;\r
-\r
- /* Read the e-fuse mac address */\r
- macA = *((uint32 *)0x2880834);\r
- macB = *((uint32 *)0x2880838);\r
-\r
- maddr[0] = (macB >> 8) & 0xff;\r
- maddr[1] = (macB >> 0) & 0xff;\r
- maddr[2] = (macA >> 24) & 0xff;\r
- maddr[3] = (macA >> 16) & 0xff;\r
- maddr[4] = (macA >> 8) & 0xff;\r
- maddr[5] = (macA >> 0) & 0xff;\r
-}\r
-\r
-\r
-\r
-\r
-\r
+/************************************************************************************
+ * FILE PURPOSE: C6474 Device Specific functions
+ ************************************************************************************
+ * FILE NAME: c6474l.c
+ *
+ * DESCRIPTION: Implements the device specific functions for the IBL
+ *
+ * @file c6474l.c
+ *
+ * @brief
+ * This file implements the device specific functions for the IBL
+ *
+ ************************************************************************************/
+#include "ibl.h"
+#include "device.h"
+#include "pllapi.h"
+#include "emif31api.h"
+#include "pscapi.h"
+#include "gpio.h"
+#include <string.h>
+
+extern cregister unsigned int DNUM;
+
+
+/**
+ * @brief Determine if an address is local
+ *
+ * @details
+ * Examines an input address to determine if it is a local address
+ */
+bool address_is_local (Uint32 addr)
+{
+ /* L2 */
+ if ((addr >= 0x00800000) && (addr < 0x00898000))
+ return (TRUE);
+
+ /* L1P */
+ if ((addr >= 0x00e00000) && (addr < 0x00e08000))
+ return (TRUE);
+
+ /* L2D */
+ if ((addr >= 0x00f00000) && (addr < 0x00f08000))
+ return (TRUE);
+
+ return (FALSE);
+
+}
+
+
+/**
+ * @brief Convert a local l1d, l1p or l2 address to a global address
+ *
+ * @details
+ * The global address is formed. If the address is not local then
+ * the input address is returned
+ */
+Uint32 deviceLocalAddrToGlobal (Uint32 addr)
+{
+
+ if (address_is_local (addr))
+ addr = (1 << 28) | (DNUM << 24) | addr;
+
+ return (addr);
+
+}
+
+
+/**
+ * @brief Configure the PLLs
+ *
+ * @details
+ * Only the main PLL can be configured here. The DDR pll is enabled by default,
+ * and the network PLL is enabled through serdes configuration.
+ * the multiplier and dividers.
+ */
+void devicePllConfig (void)
+{
+ if (ibl.pllConfig[ibl_MAIN_PLL].doEnable == TRUE)
+ hwPllSetPll (MAIN_PLL,
+ ibl.pllConfig[ibl_MAIN_PLL].prediv,
+ ibl.pllConfig[ibl_MAIN_PLL].mult,
+ ibl.pllConfig[ibl_MAIN_PLL].postdiv);
+
+}
+
+/**
+ * @brief
+ * Enable the DDR
+ *
+ * @details
+ * The DDR controller on the c6474 is an emif 3.1. The controller is
+ * initialized directly with the supplied values
+ */
+void deviceDdrConfig (void)
+{
+ if (ibl.ddrConfig.configDdr != 0)
+ hwEmif3p1Enable (&ibl.ddrConfig.uEmif.emif3p1);
+
+}
+
+
+/**
+ * @brief Power up a peripheral
+ *
+ * @details
+ * Boot peripherals are powered up
+ */
+int32 devicePowerPeriph (int32 modNum)
+{
+ /* If the input value is < 0 there is nothing to power up */
+ if (modNum < 0)
+ return (0);
+
+
+ if (modNum >= TARGET_PWR_MAX_MOD)
+ return (-1);
+
+ return ((int32)pscEnableModule(modNum));
+
+}
+
+
+/**
+ * @brief Enable the pass through version of the nand controller
+ *
+ * @details On the evm the nand controller is enabled by setting
+ * gpio 14 high
+ */
+#if 0
+int32 deviceConfigureForNand(void)
+{
+ hwGpioSetDirection(NAND_MODE_GPIO, GPIO_OUT);
+ hwGpioSetOutput(NAND_MODE_GPIO);
+ return (0);
+
+}
+#endif
+
+
+/**
+ * @brief
+ * The e-fuse mac address is loaded
+ */
+void deviceLoadDefaultEthAddress (uint8 *maddr)
+{
+ uint32 macA, macB;
+
+ /* Read the e-fuse mac address */
+ macA = *((uint32 *)0x2880834);
+ macB = *((uint32 *)0x2880838);
+
+ maddr[0] = (macB >> 8) & 0xff;
+ maddr[1] = (macB >> 0) & 0xff;
+ maddr[2] = (macA >> 24) & 0xff;
+ maddr[3] = (macA >> 16) & 0xff;
+ maddr[4] = (macA >> 8) & 0xff;
+ maddr[5] = (macA >> 0) & 0xff;
+}
+
+
+
+
+
index 855714c7e3c9df24e5f804128f687b734aadfee4..2e1cdba5c33528354c759f18a1e25af77bc2f70a 100755 (executable)
-/**************************************************************************\r
- * FILE PURPOSE: Target specific definitions\r
- **************************************************************************\r
- * FILE NAME: target.h\r
- *\r
- * DESCRIPTION: This file defines target specific values used by low level\r
- * drivers.\r
- *\r
- * @file target.h\r
- *\r
- * @brief\r
- * Low level target specific values are defined\r
- *\r
- ***************************************************************************/\r
- \r
- \r
-/** \r
- * @brief\r
- * Device EMAC definitions\r
- */\r
-#define TARGET_DEVICE_CPMAC\r
- \r
-#define TARGET_EMAC_N_PORTS 1\r
-\r
-#define TARGET_EMAC_BASE_ADDRESSES { 0x02c80000u }\r
-#define TARGET_EMAC_DSC_BASE_ADDR { 0x02c82000u }\r
-\r
-#define TARGET_SGMII_BASE_ADDRESSES { 0x02c40000u }\r
-\r
-/* SGMII offsets (at least the serdes configs, vary between devices, so\r
- * they are defined here. */\r
-#define TARGET_SGMII_IDVER 0x000\r
-#define TARGET_SGMII_SOFT_RESET 0x004\r
-#define TARGET_SGMII_CONTROL 0x010\r
-#define TARGET_SGMII_STATUS 0x014\r
-#define TARGET_SGMII_MR_ADV_ABILITY 0x018\r
-#define TARGET_SGMII_MR_LP_ADV_ABILITY 0x020\r
-#define TARGET_SGMII_TX_CFG 0x030\r
-#define TARGET_SGMII_RX_CFG 0x034\r
-#define TARGET_SGMII_AUX_CFG 0x038\r
-\r
-/* Leave mdio disabled */\r
-#define dev_mdio_open() 1\r
-\r
-/* No chip level reset required for ethernet, the function call is made a void statment */\r
-#define deviceSetEthResetState(x,y)\r
-\r
-/* The mac control register values */\r
-#define TARGET_MAC_CONTROL ( 1 << 18) /* EXT_EN */ \\r
- | ( 0 << 9 ) /* Round robin */ \\r
- | ( 1 << 7 ) /* GIG */ \\r
- | ( 0 << 6 ) /* TX pacing disabled */ \\r
- | ( 1 << 5 ) /* GMII RX & TX */ \\r
- | ( 0 << 4 ) /* TX flow disabled */ \\r
- | ( 0 << 3 ) /* RX flow disabled */ \\r
- | ( 0 << 1 ) /* Loopback enabled */ \\r
- | ( 1 << 0 ) /* full duplex */\r
-\r
-\r
-/**\r
- * @brief\r
- * Device Timer definitions\r
- */\r
-#define TIMER0_BASE 0x02910000u\r
-\r
-#define TIMER_INPUT_DIVIDER 6 /* Timer driven from cpu clock / 6 */\r
-\r
-\r
-/**\r
- * @def MAIN_PLL\r
- */\r
-#define MAIN_PLL 0 /**< The index to the main PLL */\r
-\r
-\r
-/**\r
- * @brief\r
- * Device PLL definitions\r
- */\r
-#define DEVICE_PLL_BASE(x) ((x) == MAIN_PLL ? 0x29a0000 : 0)\r
-\r
-\r
-/**\r
- * @brief \r
- * Device PSC definitions\r
- */\r
-#define DEVICE_PSC_BASE 0x02ac0000u\r
-\r
-/**\r
- * @brief\r
- * The ethernet is in the always on domain */\r
-#define TARGET_PWR_ETH(x) -1\r
-\r
-/**\r
- * @brief\r
- * The nand is done through gpio, which is always powered up.\r
- * A value < 0 tells the low level psc driver to simply return success\r
- */\r
-#define TARGET_PWR_NAND -1\r
-\r
-/**\r
- * @brief\r
- * Flag to indicate timer 0 power up requested. The time is always on in the 6474\r
- */\r
-#define TARGET_PWR_TIMER_0 -1\r
-\r
-\r
-/**\r
- * @brief\r
- * Device DDR controller definitions\r
- */\r
-#define DEVICE_DDR_BASE 0x70000000\r
-\r
-/**\r
- * @brief\r
- * The highest module number\r
- */\r
-#define TARGET_PWR_MAX_MOD 5\r
- \r
-\r
-/**\r
- * @brief\r
- * The base address of MDIO \r
- */\r
-#define TARGET_MDIO_BASE 0x2c81800\r
-\r
-/**\r
- * @brief\r
- * GPIO address\r
- */\r
-#define GPIO_GPIOPID_REG 0x02B00000\r
-#define GPIO_GPIOEMU_REG 0x02B00004\r
-#define GPIO_BINTEN_REG 0x02B00008\r
-#define GPIO_DIR_REG 0x02B00010\r
-#define GPIO_OUT_DATA_REG 0x02B00014\r
-#define GPIO_SET_DATA_REG 0x02B00018\r
-#define GPIO_CLEAR_DATA_REG 0x02B0001C\r
-#define GPIO_IN_DATA_REG 0x02B00020\r
-#define GPIO_SET_RIS_TRIG_REG 0x02B00024\r
-#define GPIO_CLR_RIS_TRIG_REG 0x02B00028\r
-#define GPIO_SET_FAL_TRIG_REG 0x02B0002C\r
-#define GPIO_CLR_FAL_TRIG_REG 0x02B00030\r
-\r
-/**\r
- * @brief\r
- * GPIO pin mapping \r
- */\r
-#define NAND_CLE_GPIO_PIN GPIO_8 // High: Command Cycle occuring\r
-#define NAND_ALE_GPIO_PIN GPIO_9 // High: Address input cycle oddcuring\r
-#define NAND_NWE_GPIO_PIN GPIO_10\r
-#define NAND_NRE_GPIO_PIN GPIO_12\r
-#define NAND_NCE_GPIO_PIN GPIO_13\r
-#define NAND_MODE_GPIO GPIO_14\r
-\r
-/**\r
- * @brief\r
- * The standard NAND delay must be big enough to handle the highest possible\r
- * operating frequency of the device */\r
-#define TARGET_NAND_STD_DELAY 25 // In cpu cycles\r
-\r
-/**\r
- * @brief\r
- * The base address of the I2C peripheral, and the module divisor of the cpu clock\r
- */\r
-#define DEVICE_I2C_BASE 0x02b04000\r
-#define DEVICE_I2C_MODULE_DIVISOR 6\r
- \r
+/**************************************************************************
+ * FILE PURPOSE: Target specific definitions
+ **************************************************************************
+ * FILE NAME: target.h
+ *
+ * DESCRIPTION: This file defines target specific values used by low level
+ * drivers.
+ *
+ * @file target.h
+ *
+ * @brief
+ * Low level target specific values are defined
+ *
+ ***************************************************************************/
+
+
+/**
+ * @brief
+ * Device EMAC definitions
+ */
+#define TARGET_DEVICE_CPMAC
+
+#define TARGET_EMAC_N_PORTS 1
+
+#define TARGET_EMAC_BASE_ADDRESSES { 0x02c80000u }
+#define TARGET_EMAC_DSC_BASE_ADDR { 0x02c82000u }
+
+#define TARGET_SGMII_BASE_ADDRESSES { 0x02c40000u }
+
+/* SGMII offsets (at least the serdes configs, vary between devices, so
+ * they are defined here. */
+#define TARGET_SGMII_IDVER 0x000
+#define TARGET_SGMII_SOFT_RESET 0x004
+#define TARGET_SGMII_CONTROL 0x010
+#define TARGET_SGMII_STATUS 0x014
+#define TARGET_SGMII_MR_ADV_ABILITY 0x018
+#define TARGET_SGMII_MR_LP_ADV_ABILITY 0x020
+#define TARGET_SGMII_TX_CFG 0x030
+#define TARGET_SGMII_RX_CFG 0x034
+#define TARGET_SGMII_AUX_CFG 0x038
+
+/* Leave mdio disabled */
+#define dev_mdio_open() 1
+
+/* No chip level reset required for ethernet, the function call is made a void statment */
+#define deviceSetEthResetState(x,y)
+
+/* The mac control register values */
+#define TARGET_MAC_CONTROL ( 1 << 18) /* EXT_EN */ \
+ | ( 0 << 9 ) /* Round robin */ \
+ | ( 1 << 7 ) /* GIG */ \
+ | ( 0 << 6 ) /* TX pacing disabled */ \
+ | ( 1 << 5 ) /* GMII RX & TX */ \
+ | ( 0 << 4 ) /* TX flow disabled */ \
+ | ( 0 << 3 ) /* RX flow disabled */ \
+ | ( 0 << 1 ) /* Loopback enabled */ \
+ | ( 1 << 0 ) /* full duplex */
+
+
+/**
+ * @brief
+ * Device Timer definitions
+ */
+#define TIMER0_BASE 0x02910000u
+
+#define TIMER_INPUT_DIVIDER 6 /* Timer driven from cpu clock / 6 */
+
+
+/**
+ * @def MAIN_PLL
+ */
+#define MAIN_PLL 0 /**< The index to the main PLL */
+
+
+/**
+ * @brief
+ * Device PLL definitions
+ */
+#define DEVICE_PLL_BASE(x) ((x) == MAIN_PLL ? 0x29a0000 : 0)
+
+
+/**
+ * @brief
+ * Device PSC definitions
+ */
+#define DEVICE_PSC_BASE 0x02ac0000u
+
+/**
+ * @brief
+ * The ethernet is in the always on domain */
+#define TARGET_PWR_ETH(x) -1
+
+/**
+ * @brief
+ * The nand is done through gpio, which is always powered up.
+ * A value < 0 tells the low level psc driver to simply return success
+ */
+#define TARGET_PWR_NAND -1
+
+/**
+ * @brief
+ * Flag to indicate timer 0 power up requested. The time is always on in the 6474
+ */
+#define TARGET_PWR_TIMER_0 -1
+
+
+/**
+ * @brief
+ * Device DDR controller definitions
+ */
+#define DEVICE_DDR_BASE 0x70000000
+
+/**
+ * @brief
+ * The highest module number
+ */
+#define TARGET_PWR_MAX_MOD 5
+
+
+/**
+ * @brief
+ * The base address of MDIO
+ */
+#define TARGET_MDIO_BASE 0x2c81800
+
+/**
+ * @brief
+ * GPIO address
+ */
+#define GPIO_GPIOPID_REG 0x02B00000
+#define GPIO_GPIOEMU_REG 0x02B00004
+#define GPIO_BINTEN_REG 0x02B00008
+#define GPIO_DIR_REG 0x02B00010
+#define GPIO_OUT_DATA_REG 0x02B00014
+#define GPIO_SET_DATA_REG 0x02B00018
+#define GPIO_CLEAR_DATA_REG 0x02B0001C
+#define GPIO_IN_DATA_REG 0x02B00020
+#define GPIO_SET_RIS_TRIG_REG 0x02B00024
+#define GPIO_CLR_RIS_TRIG_REG 0x02B00028
+#define GPIO_SET_FAL_TRIG_REG 0x02B0002C
+#define GPIO_CLR_FAL_TRIG_REG 0x02B00030
+
+/**
+ * @brief
+ * GPIO pin mapping
+ */
+#define NAND_CLE_GPIO_PIN GPIO_8 // High: Command Cycle occuring
+#define NAND_ALE_GPIO_PIN GPIO_9 // High: Address input cycle oddcuring
+#define NAND_NWE_GPIO_PIN GPIO_10
+#define NAND_NRE_GPIO_PIN GPIO_12
+#define NAND_NCE_GPIO_PIN GPIO_13
+#define NAND_MODE_GPIO GPIO_14
+
+/**
+ * @brief
+ * The standard NAND delay must be big enough to handle the highest possible
+ * operating frequency of the device */
+#define TARGET_NAND_STD_DELAY 25 // In cpu cycles
+
+/**
+ * @brief
+ * The base address of the I2C peripheral, and the module divisor of the cpu clock
+ */
+#define DEVICE_I2C_BASE 0x02b04000
+#define DEVICE_I2C_MODULE_DIVISOR 6
+