diff options
Diffstat (limited to 'packages/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch')
-rw-r--r-- | packages/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/packages/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch b/packages/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch new file mode 100644 index 0000000000..a9d87d4b56 --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch @@ -0,0 +1,115 @@ + os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h | 72 ++++++++++ + os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h | 10 - + 2 files changed, 78 insertions(+), 4 deletions(-) + +--- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 1970-01-01 00:00:00.000000000 +0000 ++++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 1970-01-01 00:00:00.000000000 +0000 +@@ -53,6 +53,8 @@ + #error "Error: IxOsalOsIxp425Sys.h cannot be included directly before IxOsalOsIxp400.h" + #endif + ++#include "IxOsalOsIxp425Base.h" ++ + /* Memory Base Address */ + #define IX_OSAL_IXP400_EXP_BUS_PHYS_BASE IXP425_EXP_BUS_BASE2_PHYS + #define IX_OSAL_IXP400_EXP_BUS_BOOT_PHYS_BASE IXP425_EXP_BUS_BASE1_PHYS +@@ -98,12 +100,12 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] + * Queue Manager + */ + { +- IX_OSAL_STATIC_MAP, /* type */ ++ IX_OSAL_DYNAMIC_MAP, /* type */ + IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ + IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ +- IX_OSAL_IXP400_QMGR_VIRT_BASE, /* virtualAddress */ +- NULL, /* mapFunction */ +- NULL, /* unmapFunction */ ++ 0, /* virtualAddress */ ++ ixOsalLinuxMemMap, /* mapFunction */ ++ ixOsalLinuxMemUnmap, /* unmapFunction */ + 0, /* refCount */ + IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ + "qMgr" /* name */ +--- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 1970-01-01 00:00:00.000000000 +0000 ++++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 1970-01-01 00:00:00.000000000 +0000 +@@ -0,0 +1,80 @@ ++/* ++ * Glue for the current linux definitons of this stuff. ++ */ ++#ifndef IxOsalOsIxp425Base_H ++#define IxOsalOsIxp425Base_H 1 ++#include <asm-arm/arch-ixp4xx/ixp4xx-regs.h> ++#include <linux/version.h> ++ ++/* Force Address Coherent (the default) mapping on LE - Linux 2.6 ++ * does not have a way of changing it. ++ */ ++#if defined IX_OSAL_LINUX_LE ++# if !defined IX_OSAL_ENFORCED_LE_AC_MAPPING ++# define IX_OSAL_ENFORCED_LE_AC_MAPPING ++# endif ++# if defined IX_OSAL_LE_DC_MAPPING ++# error Little Endian Data Coherent mapping not supported on this platform ++# endif ++ ++/* This doesn't matter on a BE build because it will never be used, ++ * however it will be selected and will fail on an LE build. ++ */ ++# undef IX_OSAL_LE_DC ++# define IX_OSAL_LE_DC IX_OSAL_LE_DC_IS_INVALID_ON_THIS_PLATFORM ++#endif ++ ++/* Physical addresses. */ ++#define IXP425_PERIPHERAL_BASE_PHYS IXP4XX_PERIPHERAL_BASE_PHYS ++#define IXP425_EXP_CFG_BASE_PHYS IXP4XX_EXP_CFG_BASE_PHYS ++#define IXP425_PCI_CFG_BASE_PHYS IXP4XX_PCI_CFG_BASE_PHYS ++ ++//#define IXP425_EXP_BUS_BASE1_PHYS ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++#define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS ++#else ++/* The following definition should be IXP4XX_EXP_BUS_BASE(2), but that is not ++ static and causes compilation problems later. So we need to hard-code it. ++ Note that this hard-coded value is only correct for IXP42X. */ ++#define IXP425_EXP_BUS_BASE2_PHYS (IXP4XX_EXP_BUS_BASE_PHYS + (2 * SZ_16M)) ++#endif ++//#define IXP425_EXP_BUS_CS0_BASE_PHYS ++//#define IXP425_EXP_BUS_CS1_BASE_PHYS ++//#define IXP425_EXP_BUS_CS4_BASE_PHYS ++#define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) ++#define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) ++//#define IXP425_GPIO_BASE_PHYS ++#define IXP425_INTC_BASE_PHYS IXP4XX_INTC_BASE_PHYS ++//#define IXP425_NPEA_BASE_PHYS ++//#define IXP425_NPEB_BASE_PHYS ++//#define IXP425_NPEC_BASE_PHYS ++//#define IXP425_PMU_BASE_PHYS ++#define IXP425_QMGR_BASE_PHYS IXP4XX_QMGR_BASE_PHYS ++#define IXP425_TIMER_BASE_PHYS IXP4XX_TIMER_BASE_PHYS ++//#define IXP425_UART1_BASE_PHYS ++//#define IXP425_UART2_BASE_PHYS ++#define IXP425_USB_BASE_PHYS IXP4XX_USB_BASE_PHYS ++ ++/* Virtual addresses. */ ++#define IXP425_PERIPHERAL_BASE_VIRT IXP4XX_PERIPHERAL_BASE_VIRT ++#define IXP425_PERIPHERAL_REGION_SIZE IXP4XX_PERIPHERAL_REGION_SIZE ++#define IXP425_EXP_CFG_BASE_VIRT IXP4XX_EXP_CFG_BASE_VIRT ++#define IXP425_PCI_CFG_BASE_VIRT IXP4XX_PCI_CFG_BASE_VIRT ++ ++//#define IXP425_EthA_BASE_VIRT ++//#define IXP425_EthB_BASE_VIRT ++//#define IXP425_GPIO_BASE_VIRT ++//#define IXP425_NPEA_BASE_VIRT ++//#define IXP425_NPEB_BASE_VIRT ++//#define IXP425_NPEC_BASE_VIRT ++//#define IXP425_QMGR_BASE_VIRT /* must be ioremapped on Linux 2.6 */ ++//#define IXP425_TIMER_BASE_VIRT ++//#define IXP425_UART1_BASE_VIRT ++//#define IXP425_UART2_BASE_VIRT ++//#define IXP425_USB_BASE_VIRT ++ ++/* Miscellaneous stuff. */ ++#define IRQ_IXP425_XSCALE_PMU IRQ_IXP4XX_XSCALE_PMU ++#define IXP425_ICMR IXP4XX_ICMR ++#define IRQ_IXP425_USB IRQ_IXP4XX_USB ++#endif |