[cavium-octeon] add support for the Cavium Octeon SoC, tested on a Mototech evaluation board
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15640 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
a8f89ea13e
commit
c3d79a4f24
|
@ -0,0 +1,25 @@
|
|||
#
|
||||
# Copyright (C) 2009 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
ARCH:=mips
|
||||
BOARD:=cavium-octeon
|
||||
BOARDNAME:=Cavium Networks Octeon
|
||||
FEATURES:=squashfs jffs2
|
||||
CFLAGS:=-Os -pipe -funit-at-a-time
|
||||
|
||||
LINUX_VERSION:=2.6.29.2
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
DEFAULT_PACKAGES += hostapd-mini
|
||||
|
||||
define Target/Description
|
||||
Build firmware images for Cavium Networks Octeon-based boards.
|
||||
endef
|
||||
|
||||
$(eval $(call BuildTarget))
|
|
@ -0,0 +1,335 @@
|
|||
# CONFIG_32BIT is not set
|
||||
CONFIG_64BIT=y
|
||||
CONFIG_64BIT_PHYS_ADDR=y
|
||||
# CONFIG_ALTERA_PCIE_CHDMA is not set
|
||||
# CONFIG_ANDROID is not set
|
||||
# CONFIG_ANDROID_BINDER_IPC is not set
|
||||
# CONFIG_ANDROID_LOGGER is not set
|
||||
# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
|
||||
# CONFIG_ANDROID_RAM_CONSOLE is not set
|
||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
|
||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
|
||||
CONFIG_ARCH_POPULATES_NODE_MAP=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
CONFIG_ARCH_SUPPORTS_OPROFILE=y
|
||||
# CONFIG_ARPD is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
CONFIG_BASE_SMALL=0
|
||||
# CONFIG_BCM47XX is not set
|
||||
CONFIG_BINFMT_ELF32=y
|
||||
CONFIG_BITREVERSE=y
|
||||
CONFIG_BLOCK_COMPAT=y
|
||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_BRIDGE is not set
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
# CONFIG_CAVIUM_OCTEON_2ND_KERNEL is not set
|
||||
CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=2
|
||||
CONFIG_CAVIUM_OCTEON_HW_FIX_UNALIGNED=y
|
||||
CONFIG_CAVIUM_OCTEON_LOCK_L2=y
|
||||
CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION=y
|
||||
CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT=y
|
||||
CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT=y
|
||||
CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y
|
||||
CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y
|
||||
CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD=y
|
||||
# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
|
||||
CONFIG_CAVIUM_OCTEON_SPECIFIC_OPTIONS=y
|
||||
CONFIG_CEVT_R4K=y
|
||||
CONFIG_CEVT_R4K_LIB=y
|
||||
# CONFIG_CGROUP_SCHED is not set
|
||||
CONFIG_CMDLINE="console=ttyS0,115200 init=/etc/preinit"
|
||||
# CONFIG_COMEDI is not set
|
||||
CONFIG_COMPAT=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
# CONFIG_CONFIGFS_FS is not set
|
||||
CONFIG_CPU_BIG_ENDIAN=y
|
||||
CONFIG_CPU_CAVIUM_OCTEON=y
|
||||
CONFIG_CPU_HAS_PREFETCH=y
|
||||
CONFIG_CPU_HAS_SYNC=y
|
||||
# CONFIG_CPU_LITTLE_ENDIAN is not set
|
||||
# CONFIG_CPU_LOONGSON2 is not set
|
||||
# CONFIG_CPU_MIPS32_R1 is not set
|
||||
# CONFIG_CPU_MIPS32_R2 is not set
|
||||
# CONFIG_CPU_MIPS64_R1 is not set
|
||||
# CONFIG_CPU_MIPS64_R2 is not set
|
||||
CONFIG_CPU_MIPSR2=y
|
||||
# CONFIG_CPU_NEVADA is not set
|
||||
# CONFIG_CPU_R10000 is not set
|
||||
# CONFIG_CPU_R3000 is not set
|
||||
# CONFIG_CPU_R4300 is not set
|
||||
# CONFIG_CPU_R4X00 is not set
|
||||
# CONFIG_CPU_R5000 is not set
|
||||
# CONFIG_CPU_R5432 is not set
|
||||
# CONFIG_CPU_R5500 is not set
|
||||
# CONFIG_CPU_R6000 is not set
|
||||
# CONFIG_CPU_R8000 is not set
|
||||
# CONFIG_CPU_RM7000 is not set
|
||||
# CONFIG_CPU_RM9000 is not set
|
||||
# CONFIG_CPU_SB1 is not set
|
||||
CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
|
||||
CONFIG_CPU_SUPPORTS_HIGHMEM=y
|
||||
# CONFIG_CPU_TX39XX is not set
|
||||
# CONFIG_CPU_TX49XX is not set
|
||||
# CONFIG_CPU_VR41XX is not set
|
||||
CONFIG_CRAMFS=y
|
||||
CONFIG_CRYPTO_AEAD=y
|
||||
CONFIG_CRYPTO_AEAD2=y
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
CONFIG_CRYPTO_BLKCIPHER=y
|
||||
CONFIG_CRYPTO_BLKCIPHER2=y
|
||||
CONFIG_CRYPTO_CBC=y
|
||||
CONFIG_CRYPTO_DES=y
|
||||
CONFIG_CRYPTO_HASH=y
|
||||
CONFIG_CRYPTO_HASH2=y
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_RNG=y
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
# CONFIG_DCB is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_DEBUG_DEVRES is not set
|
||||
# CONFIG_DEBUG_DRIVER is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
||||
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||
# CONFIG_DEBUG_MUTEXES is not set
|
||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
CONFIG_DEBUG_PREEMPT=y
|
||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_SHIRQ is not set
|
||||
# CONFIG_DEBUG_SLAB is not set
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_DEBUG_SPINLOCK_SLEEP=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
CONFIG_DETECT_SOFTLOCKUP=y
|
||||
CONFIG_DEVKMEM=y
|
||||
CONFIG_DEVPORT=y
|
||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||
# CONFIG_DM9000 is not set
|
||||
CONFIG_DMA_COHERENT=y
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
# CONFIG_ECHO is not set
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ET131X is not set
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_FLATMEM_MANUAL is not set
|
||||
CONFIG_FRAME_WARN=2048
|
||||
# CONFIG_FREEZER is not set
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||
CONFIG_GENERIC_CMOS_UPDATE=y
|
||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||
CONFIG_GENERIC_FIND_NEXT_BIT=y
|
||||
# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
|
||||
CONFIG_GROUP_SCHED=y
|
||||
# CONFIG_HAMRADIO is not set
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
# CONFIG_HAVE_AOUT is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
CONFIG_HAVE_MEMORY_PRESENT=y
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
CONFIG_HAVE_SYSCALL_WRAPPERS=y
|
||||
# CONFIG_HIGH_RES_TIMERS is not set
|
||||
CONFIG_HW_HAS_PCI=y
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_HZ=250
|
||||
# CONFIG_HZ_100 is not set
|
||||
CONFIG_HZ_250=y
|
||||
# CONFIG_I2C is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_INET_DIAG=y
|
||||
CONFIG_INET_TCP_DIAG=y
|
||||
CONFIG_INET_XFRM_MODE_BEET=y
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=y
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_RARP=y
|
||||
CONFIG_IRQ_CPU=y
|
||||
CONFIG_IRQ_CPU_OCTEON=y
|
||||
CONFIG_IRQ_PER_CPU=y
|
||||
# CONFIG_ISDN is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_KEXEC=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
CONFIG_LEGACY_PTY_COUNT=256
|
||||
# CONFIG_LEMOTE_FULONG is not set
|
||||
# CONFIG_LIB80211 is not set
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_LOCK_KERNEL=y
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
# CONFIG_MACH_ALCHEMY is not set
|
||||
# CONFIG_MACH_DECSTATION is not set
|
||||
# CONFIG_MACH_JAZZ is not set
|
||||
# CONFIG_MACH_TX39XX is not set
|
||||
# CONFIG_MACH_TX49XX is not set
|
||||
# CONFIG_MACH_VR41XX is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_ME4000 is not set
|
||||
# CONFIG_MEILHAUS is not set
|
||||
# CONFIG_MIKROTIK_RB532 is not set
|
||||
CONFIG_MIPS=y
|
||||
CONFIG_MIPS32_COMPAT=y
|
||||
CONFIG_MIPS32_N32=y
|
||||
CONFIG_MIPS32_O32=y
|
||||
# CONFIG_MIPS_COBALT is not set
|
||||
CONFIG_MIPS_L1_CACHE_SHIFT=7
|
||||
# CONFIG_MIPS_MACHINE is not set
|
||||
# CONFIG_MIPS_MALTA is not set
|
||||
CONFIG_MIPS_MT_DISABLED=y
|
||||
# CONFIG_MIPS_MT_SMP is not set
|
||||
# CONFIG_MIPS_MT_SMTC is not set
|
||||
# CONFIG_MIPS_SIM is not set
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_MISC_FILESYSTEMS=y
|
||||
# CONFIG_MTD_BLKDEVS is not set
|
||||
# CONFIG_MTD_BLOCK is not set
|
||||
# CONFIG_MTD_BLOCK_RO is not set
|
||||
# CONFIG_MTD_CHAR is not set
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
# CONFIG_MTD_PHYSMAP_COMPAT is not set
|
||||
# CONFIG_NATSEMI is not set
|
||||
# CONFIG_NEC_MARKEINS is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
# CONFIG_NETLABEL is not set
|
||||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
# CONFIG_NO_IOPORT is not set
|
||||
CONFIG_NR_CPUS=16
|
||||
CONFIG_NR_CPUS_DEFAULT_16=y
|
||||
# CONFIG_NXP_STB220 is not set
|
||||
# CONFIG_NXP_STB225 is not set
|
||||
CONFIG_OCTEON_ETHERNET=y
|
||||
CONFIG_OCTEON_MGMT=y
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
# CONFIG_PAGE_SIZE_16KB is not set
|
||||
CONFIG_PAGE_SIZE_4KB=y
|
||||
# CONFIG_PAGE_SIZE_64KB is not set
|
||||
# CONFIG_PAGE_SIZE_8KB is not set
|
||||
# CONFIG_PARTITION_ADVANCED is not set
|
||||
CONFIG_PCI=y
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCSPKR_PLATFORM is not set
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
# CONFIG_PMC_MSP is not set
|
||||
# CONFIG_PMC_YOSEMITE is not set
|
||||
# CONFIG_PNX8550_JBS is not set
|
||||
# CONFIG_PNX8550_STB810 is not set
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_PREEMPT=y
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
# CONFIG_PREEMPT_TRACER is not set
|
||||
# CONFIG_PROBE_INITRD_HEADER is not set
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
# CONFIG_PROM_EMU is not set
|
||||
# CONFIG_PROVE_LOCKING is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
CONFIG_RELAY=y
|
||||
# CONFIG_RTL8187SE is not set
|
||||
# CONFIG_RT_GROUP_SCHED is not set
|
||||
# CONFIG_RT_MUTEX_TESTER is not set
|
||||
# CONFIG_RUNTIME_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
CONFIG_SCHED_DEBUG=y
|
||||
CONFIG_SCHED_OMIT_FRAME_POINTER=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
CONFIG_SECCOMP=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
|
||||
CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
# CONFIG_SERIAL_8250_EXTENDED is not set
|
||||
# CONFIG_SGI_IP22 is not set
|
||||
# CONFIG_SGI_IP27 is not set
|
||||
# CONFIG_SGI_IP28 is not set
|
||||
# CONFIG_SGI_IP32 is not set
|
||||
# CONFIG_SIBYTE_BIGSUR is not set
|
||||
# CONFIG_SIBYTE_CARMEL is not set
|
||||
# CONFIG_SIBYTE_CRHINE is not set
|
||||
# CONFIG_SIBYTE_CRHONE is not set
|
||||
# CONFIG_SIBYTE_LITTLESUR is not set
|
||||
# CONFIG_SIBYTE_RHONE is not set
|
||||
# CONFIG_SIBYTE_SENTOSA is not set
|
||||
# CONFIG_SIBYTE_SWARM is not set
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SPARSEMEM=y
|
||||
CONFIG_SPARSEMEM_MANUAL=y
|
||||
CONFIG_SPARSEMEM_STATIC=y
|
||||
CONFIG_STAGING=y
|
||||
# CONFIG_STAGING_EXCLUDE_BUILD is not set
|
||||
CONFIG_STOP_MACHINE=y
|
||||
CONFIG_SWAP_IO_SPACE=y
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_SYSVIPC_COMPAT=y
|
||||
CONFIG_SYS_HAS_CPU_CAVIUM_OCTEON=y
|
||||
CONFIG_SYS_HAS_EARLY_PRINTK=y
|
||||
CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
|
||||
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
|
||||
CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
|
||||
CONFIG_SYS_SUPPORTS_HIGHMEM=y
|
||||
CONFIG_SYS_SUPPORTS_SMP=y
|
||||
# CONFIG_TC35815 is not set
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_CUBIC=y
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_USER_SCHED=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_WEAK_ORDERING=y
|
||||
CONFIG_WEAK_REORDERING_BEYOND_LLSC=y
|
||||
# CONFIG_WLAN_80211 is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
|
@ -0,0 +1,2 @@
|
|||
CONFIG_CRAMFS=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
|
@ -0,0 +1,2 @@
|
|||
CONFIG_CMDLINE="console=ttyS0,115200 init=/etc/preinit numcores=16"
|
||||
CONFIG_CAVIUM_OCTEON_SIMULATOR=y
|
|
@ -0,0 +1,26 @@
|
|||
#
|
||||
# Copyright (C) 2009 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/image.mk
|
||||
|
||||
define Image/BuildKernel
|
||||
# Workaround pre-SDK-1.9.0 u-boot versions not handling the .notes section
|
||||
$(TARGET_CROSS)strip -R .notes $(KDIR)/vmlinux.elf -o $(BIN_DIR)/openwrt-$(BOARD)-vmlinux.elf
|
||||
$(STAGING_DIR_HOST)/bin/lzma e $(KDIR)/vmlinux $(KDIR)/vmlinux.bin.l7
|
||||
dd if=$(KDIR)/vmlinux.bin.l7 of=$(BIN_DIR)/openwrt-$(BOARD)-vmlinux.lzma bs=65536 conv=sync
|
||||
endef
|
||||
|
||||
define Image/Build/squashfs
|
||||
$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
|
||||
endef
|
||||
|
||||
define Image/Build
|
||||
$(call Image/Build/$(1))
|
||||
dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/openwrt-$(BOARD)-root.$(1) bs=128k conv=sync
|
||||
endef
|
||||
|
||||
$(eval $(call BuildImage))
|
|
@ -0,0 +1,52 @@
|
|||
This is an incomplete proof of concept that I applied to be able to
|
||||
build a 64 bit kernel with GCC-4.4. It doesn't handle the 32 bit case
|
||||
or the R4000_WAR case.
|
||||
|
||||
Comments welcome.
|
||||
|
||||
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
|
||||
---
|
||||
arch/mips/include/asm/compiler.h | 7 +++++++
|
||||
arch/mips/include/asm/delay.h | 4 ++++
|
||||
2 files changed, 11 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/include/asm/compiler.h b/arch/mips/include/asm/compiler.h
|
||||
index 71f5c5c..1f0954d 100644
|
||||
--- a/arch/mips/include/asm/compiler.h
|
||||
+++ b/arch/mips/include/asm/compiler.h
|
||||
@@ -16,4 +16,11 @@
|
||||
#define GCC_REG_ACCUM "accum"
|
||||
#endif
|
||||
|
||||
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
|
||||
+#define GCC_NO_H_CONSTRAINT
|
||||
+#ifdef CONFIG_64BIT
|
||||
+typedef unsigned int uint128_t __attribute__((mode(TI)));
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
#endif /* _ASM_COMPILER_H */
|
||||
diff --git a/arch/mips/include/asm/delay.h b/arch/mips/include/asm/delay.h
|
||||
index b0bccd2..3e467e8 100644
|
||||
--- a/arch/mips/include/asm/delay.h
|
||||
+++ b/arch/mips/include/asm/delay.h
|
||||
@@ -83,10 +83,14 @@ static inline void __udelay(unsigned long usecs, unsigned long lpj)
|
||||
: "r" (usecs), "r" (lpj)
|
||||
: GCC_REG_ACCUM);
|
||||
else if (sizeof(long) == 8 && !R4000_WAR)
|
||||
+#ifdef GCC_NO_H_CONSTRAINT
|
||||
+ usecs = ((uint128_t)usecs * lpj) >> 64;
|
||||
+#else
|
||||
__asm__("dmultu\t%2, %3"
|
||||
: "=h" (usecs), "=l" (lo)
|
||||
: "r" (usecs), "r" (lpj)
|
||||
: GCC_REG_ACCUM);
|
||||
+#endif
|
||||
else if (sizeof(long) == 8 && R4000_WAR)
|
||||
__asm__("dmultu\t%3, %4\n\tmfhi\t%0"
|
||||
: "=r" (usecs), "=h" (hi), "=l" (lo)
|
||||
--
|
||||
1.5.6.5
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,234 @@
|
|||
The MGMT ethernet driver uses these new functions.
|
||||
|
||||
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
|
||||
---
|
||||
arch/mips/cavium-octeon/executive/cvmx-bootmem.c | 101 ++++++++++++++++++++++
|
||||
arch/mips/include/asm/octeon/cvmx-bootmem.h | 85 ++++++++++++++++++
|
||||
2 files changed, 186 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
|
||||
index 4f5a08b..8972448 100644
|
||||
--- a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
|
||||
+++ b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
|
||||
@@ -97,6 +97,32 @@ void *cvmx_bootmem_alloc(uint64_t size, uint64_t alignment)
|
||||
return cvmx_bootmem_alloc_range(size, alignment, 0, 0);
|
||||
}
|
||||
|
||||
+void *cvmx_bootmem_alloc_named_range(uint64_t size, uint64_t min_addr,
|
||||
+ uint64_t max_addr, uint64_t align,
|
||||
+ char *name)
|
||||
+{
|
||||
+ int64_t addr;
|
||||
+
|
||||
+ addr = cvmx_bootmem_phy_named_block_alloc(size, min_addr, max_addr,
|
||||
+ align, name, 0);
|
||||
+ if (addr >= 0)
|
||||
+ return cvmx_phys_to_ptr(addr);
|
||||
+ else
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+void *cvmx_bootmem_alloc_named_address(uint64_t size, uint64_t address,
|
||||
+ char *name)
|
||||
+{
|
||||
+ return cvmx_bootmem_alloc_named_range(size, address, address + size,
|
||||
+ 0, name);
|
||||
+}
|
||||
+
|
||||
+void *cvmx_bootmem_alloc_named(uint64_t size, uint64_t alignment, char *name)
|
||||
+{
|
||||
+ return cvmx_bootmem_alloc_named_range(size, 0, 0, alignment, name);
|
||||
+}
|
||||
+
|
||||
int cvmx_bootmem_free_named(char *name)
|
||||
{
|
||||
return cvmx_bootmem_phy_named_block_free(name, 0);
|
||||
@@ -584,3 +610,78 @@ int cvmx_bootmem_phy_named_block_free(char *name, uint32_t flags)
|
||||
cvmx_bootmem_unlock();
|
||||
return named_block_ptr != NULL; /* 0 on failure, 1 on success */
|
||||
}
|
||||
+
|
||||
+int64_t cvmx_bootmem_phy_named_block_alloc(uint64_t size, uint64_t min_addr,
|
||||
+ uint64_t max_addr,
|
||||
+ uint64_t alignment,
|
||||
+ char *name,
|
||||
+ uint32_t flags)
|
||||
+{
|
||||
+ int64_t addr_allocated;
|
||||
+ struct cvmx_bootmem_named_block_desc *named_block_desc_ptr;
|
||||
+
|
||||
+#ifdef DEBUG
|
||||
+ cvmx_dprintf("cvmx_bootmem_phy_named_block_alloc: size: 0x%llx, min: "
|
||||
+ "0x%llx, max: 0x%llx, align: 0x%llx, name: %s\n",
|
||||
+ (unsigned long long)size,
|
||||
+ (unsigned long long)min_addr,
|
||||
+ (unsigned long long)max_addr,
|
||||
+ (unsigned long long)alignment,
|
||||
+ name);
|
||||
+#endif
|
||||
+ if (cvmx_bootmem_desc->major_version != 3) {
|
||||
+ cvmx_dprintf("ERROR: Incompatible bootmem descriptor version: "
|
||||
+ "%d.%d at addr: %p\n",
|
||||
+ (int)cvmx_bootmem_desc->major_version,
|
||||
+ (int)cvmx_bootmem_desc->minor_version,
|
||||
+ cvmx_bootmem_desc);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Take lock here, as name lookup/block alloc/name add need to
|
||||
+ * be atomic.
|
||||
+ */
|
||||
+ if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
|
||||
+ cvmx_spinlock_lock((cvmx_spinlock_t *)&(cvmx_bootmem_desc->lock));
|
||||
+
|
||||
+ /* Get pointer to first available named block descriptor */
|
||||
+ named_block_desc_ptr =
|
||||
+ cvmx_bootmem_phy_named_block_find(NULL,
|
||||
+ flags | CVMX_BOOTMEM_FLAG_NO_LOCKING);
|
||||
+
|
||||
+ /*
|
||||
+ * Check to see if name already in use, return error if name
|
||||
+ * not available or no more room for blocks.
|
||||
+ */
|
||||
+ if (cvmx_bootmem_phy_named_block_find(name,
|
||||
+ flags | CVMX_BOOTMEM_FLAG_NO_LOCKING) || !named_block_desc_ptr) {
|
||||
+ if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
|
||||
+ cvmx_spinlock_unlock((cvmx_spinlock_t *)&(cvmx_bootmem_desc->lock));
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ /*
|
||||
+ * Round size up to mult of minimum alignment bytes We need
|
||||
+ * the actual size allocated to allow for blocks to be
|
||||
+ * coallesced when they are freed. The alloc routine does the
|
||||
+ * same rounding up on all allocations.
|
||||
+ */
|
||||
+ size = __ALIGN_MASK(size, (CVMX_BOOTMEM_ALIGNMENT_SIZE - 1));
|
||||
+
|
||||
+ addr_allocated = cvmx_bootmem_phy_alloc(size, min_addr, max_addr,
|
||||
+ alignment,
|
||||
+ flags | CVMX_BOOTMEM_FLAG_NO_LOCKING);
|
||||
+ if (addr_allocated >= 0) {
|
||||
+ named_block_desc_ptr->base_addr = addr_allocated;
|
||||
+ named_block_desc_ptr->size = size;
|
||||
+ strncpy(named_block_desc_ptr->name, name,
|
||||
+ cvmx_bootmem_desc->named_block_name_len);
|
||||
+ named_block_desc_ptr->name[cvmx_bootmem_desc->named_block_name_len - 1] = 0;
|
||||
+ }
|
||||
+
|
||||
+ if (!(flags & CVMX_BOOTMEM_FLAG_NO_LOCKING))
|
||||
+ cvmx_spinlock_unlock((cvmx_spinlock_t *)&(cvmx_bootmem_desc->lock));
|
||||
+ return addr_allocated;
|
||||
+}
|
||||
diff --git a/arch/mips/include/asm/octeon/cvmx-bootmem.h b/arch/mips/include/asm/octeon/cvmx-bootmem.h
|
||||
index 1cbe4b5..8e708bd 100644
|
||||
--- a/arch/mips/include/asm/octeon/cvmx-bootmem.h
|
||||
+++ b/arch/mips/include/asm/octeon/cvmx-bootmem.h
|
||||
@@ -183,6 +183,64 @@ extern void *cvmx_bootmem_alloc_range(uint64_t size, uint64_t alignment,
|
||||
* Returns 0 on failure,
|
||||
* !0 on success
|
||||
*/
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ * Allocate a block of memory from the free list that was passed
|
||||
+ * to the application by the bootloader, and assign it a name in the
|
||||
+ * global named block table. (part of the cvmx_bootmem_descriptor_t structure)
|
||||
+ * Named blocks can later be freed.
|
||||
+ *
|
||||
+ * @size: Size in bytes of block to allocate
|
||||
+ * @alignment: Alignment required - must be power of 2
|
||||
+ * @name: name of block - must be less than CVMX_BOOTMEM_NAME_LEN bytes
|
||||
+ *
|
||||
+ * Returns a pointer to block of memory, NULL on error
|
||||
+ */
|
||||
+extern void *cvmx_bootmem_alloc_named(uint64_t size, uint64_t alignment,
|
||||
+ char *name);
|
||||
+
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ * Allocate a block of memory from the free list that was passed
|
||||
+ * to the application by the bootloader, and assign it a name in the
|
||||
+ * global named block table. (part of the cvmx_bootmem_descriptor_t structure)
|
||||
+ * Named blocks can later be freed.
|
||||
+ *
|
||||
+ * @size: Size in bytes of block to allocate
|
||||
+ * @address: Physical address to allocate memory at. If this
|
||||
+ * memory is not available, the allocation fails.
|
||||
+ * @name: name of block - must be less than CVMX_BOOTMEM_NAME_LEN
|
||||
+ * bytes
|
||||
+ *
|
||||
+ * Returns a pointer to block of memory, NULL on error
|
||||
+ */
|
||||
+extern void *cvmx_bootmem_alloc_named_address(uint64_t size, uint64_t address,
|
||||
+ char *name);
|
||||
+
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ * Allocate a block of memory from a specific range of the free list
|
||||
+ * that was passed to the application by the bootloader, and assign it
|
||||
+ * a name in the global named block table. (part of the
|
||||
+ * cvmx_bootmem_descriptor_t structure) Named blocks can later be
|
||||
+ * freed. If request cannot be satisfied within the address range
|
||||
+ * specified, NULL is returned
|
||||
+ *
|
||||
+ * @size: Size in bytes of block to allocate
|
||||
+ * @min_addr: minimum address of range
|
||||
+ * @max_addr: maximum address of range
|
||||
+ * @align: Alignment of memory to be allocated. (must be a power of 2)
|
||||
+ * @name: name of block - must be less than CVMX_BOOTMEM_NAME_LEN bytes
|
||||
+ *
|
||||
+ * Returns a pointer to block of memory, NULL on error
|
||||
+ */
|
||||
+extern void *cvmx_bootmem_alloc_named_range(uint64_t size, uint64_t min_addr,
|
||||
+ uint64_t max_addr, uint64_t align,
|
||||
+ char *name);
|
||||
+
|
||||
extern int cvmx_bootmem_free_named(char *name);
|
||||
|
||||
/**
|
||||
@@ -224,6 +282,33 @@ int64_t cvmx_bootmem_phy_alloc(uint64_t req_size, uint64_t address_min,
|
||||
uint32_t flags);
|
||||
|
||||
/**
|
||||
+ * Allocates a named block of physical memory from the free list, at
|
||||
+ * (optional) requested address and alignment.
|
||||
+ *
|
||||
+ * @param size size of region to allocate. All requests are rounded
|
||||
+ * up to be a multiple CVMX_BOOTMEM_ALIGNMENT_SIZE
|
||||
+ * bytes size
|
||||
+ * @param min_addr Minimum address that block can occupy.
|
||||
+ * @param max_addr Specifies the maximum address_min (inclusive) that
|
||||
+ * the allocation can use.
|
||||
+ * @param alignment Requested alignment of the block. If this
|
||||
+ * alignment cannot be met, the allocation fails.
|
||||
+ * This must be a power of 2. (Note: Alignment of
|
||||
+ * CVMX_BOOTMEM_ALIGNMENT_SIZE bytes is required, and
|
||||
+ * internally enforced. Requested alignments of less
|
||||
+ * than CVMX_BOOTMEM_ALIGNMENT_SIZE are set to
|
||||
+ * CVMX_BOOTMEM_ALIGNMENT_SIZE.)
|
||||
+ * @param name name to assign to named block
|
||||
+ * @param flags Flags to control options for the allocation.
|
||||
+ *
|
||||
+ * @return physical address of block allocated, or -1 on failure
|
||||
+ */
|
||||
+int64_t cvmx_bootmem_phy_named_block_alloc(uint64_t size, uint64_t min_addr,
|
||||
+ uint64_t max_addr,
|
||||
+ uint64_t alignment,
|
||||
+ char *name, uint32_t flags);
|
||||
+
|
||||
+/**
|
||||
* Finds a named memory block by name.
|
||||
* Also used for finding an unused entry in the named block table.
|
||||
*
|
||||
--
|
||||
1.5.6.5
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe netdev" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,28 @@
|
|||
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
|
||||
---
|
||||
arch/mips/cavium-octeon/executive/cvmx-sysinfo.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
|
||||
index 4812370..e583889 100644
|
||||
--- a/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
|
||||
+++ b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
|
||||
@@ -29,6 +29,7 @@
|
||||
* This module provides system/board/application information obtained
|
||||
* by the bootloader.
|
||||
*/
|
||||
+#include <linux/module.h>
|
||||
|
||||
#include <asm/octeon/cvmx.h>
|
||||
#include <asm/octeon/cvmx-spinlock.h>
|
||||
@@ -69,6 +70,7 @@ struct cvmx_sysinfo *cvmx_sysinfo_get(void)
|
||||
{
|
||||
return &(state.sysinfo);
|
||||
}
|
||||
+EXPORT_SYMBOL(cvmx_sysinfo_get);
|
||||
|
||||
/**
|
||||
* This function is used in non-simple executive environments (such as
|
||||
--
|
||||
1.6.0.6
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
The bootloader now uses additional board type constants. The
|
||||
octeon-ethernet driver needs some of the new values.
|
||||
|
||||
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
|
||||
---
|
||||
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 13 +++++++++++++
|
||||
1 files changed, 13 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/include/asm/octeon/cvmx-bootinfo.h b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
|
||||
index 692989a..f3c23a4 100644
|
||||
--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
|
||||
+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
|
||||
@@ -157,6 +157,13 @@ enum cvmx_board_types_enum {
|
||||
CVMX_BOARD_TYPE_NIC_XLE_4G = 21,
|
||||
CVMX_BOARD_TYPE_EBT5600 = 22,
|
||||
CVMX_BOARD_TYPE_EBH5201 = 23,
|
||||
+ CVMX_BOARD_TYPE_EBT5200 = 24,
|
||||
+ CVMX_BOARD_TYPE_CB5600 = 25,
|
||||
+ CVMX_BOARD_TYPE_CB5601 = 26,
|
||||
+ CVMX_BOARD_TYPE_CB5200 = 27,
|
||||
+ /* Special 'generic' board type, supports many boards */
|
||||
+ CVMX_BOARD_TYPE_GENERIC = 28,
|
||||
+ CVMX_BOARD_TYPE_EBH5610 = 29,
|
||||
CVMX_BOARD_TYPE_MAX,
|
||||
|
||||
/*
|
||||
@@ -228,6 +235,12 @@ static inline const char *cvmx_board_type_to_string(enum
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_NIC_XLE_4G)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5600)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5201)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBT5200)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CB5600)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CB5601)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CB5200)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_GENERIC)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_EBH5610)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_MAX)
|
||||
|
||||
/* Customer boards listed here */
|
||||
--
|
||||
1.6.0.6
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
The octeon-ethernet driver needs to check for additional chip specific
|
||||
features, we add them to the octeon_has_feature() framework.
|
||||
|
||||
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
|
||||
---
|
||||
arch/mips/include/asm/octeon/octeon-feature.h | 27 +++++++++++++++++++++++++
|
||||
1 files changed, 27 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/include/asm/octeon/octeon-feature.h b/arch/mips/include/asm/octeon/octeon-feature.h
|
||||
index 04fac68..ef24a7b 100644
|
||||
--- a/arch/mips/include/asm/octeon/octeon-feature.h
|
||||
+++ b/arch/mips/include/asm/octeon/octeon-feature.h
|
||||
@@ -57,6 +57,13 @@ enum octeon_feature {
|
||||
OCTEON_FEATURE_RAID,
|
||||
/* Octeon has a builtin USB */
|
||||
OCTEON_FEATURE_USB,
|
||||
+ /* Octeon IPD can run without using work queue entries */
|
||||
+ OCTEON_FEATURE_NO_WPTR,
|
||||
+ /* Octeon has DFA state machines */
|
||||
+ OCTEON_FEATURE_DFA,
|
||||
+ /* Octeon MDIO block supports clause 45 transactions for 10
|
||||
+ * Gig support */
|
||||
+ OCTEON_FEATURE_MDIO_CLAUSE_45,
|
||||
};
|
||||
|
||||
static inline int cvmx_fuse_read(int fuse);
|
||||
@@ -112,6 +119,26 @@ static inline int octeon_has_feature(enum octeon_feature feature)
|
||||
case OCTEON_FEATURE_USB:
|
||||
return !(OCTEON_IS_MODEL(OCTEON_CN38XX)
|
||||
|| OCTEON_IS_MODEL(OCTEON_CN58XX));
|
||||
+ case OCTEON_FEATURE_NO_WPTR:
|
||||
+ return (OCTEON_IS_MODEL(OCTEON_CN56XX)
|
||||
+ || OCTEON_IS_MODEL(OCTEON_CN52XX))
|
||||
+ && !OCTEON_IS_MODEL(OCTEON_CN56XX_PASS1_X)
|
||||
+ && !OCTEON_IS_MODEL(OCTEON_CN52XX_PASS1_X);
|
||||
+ case OCTEON_FEATURE_DFA:
|
||||
+ if (!OCTEON_IS_MODEL(OCTEON_CN38XX)
|
||||
+ && !OCTEON_IS_MODEL(OCTEON_CN31XX)
|
||||
+ && !OCTEON_IS_MODEL(OCTEON_CN58XX))
|
||||
+ return 0;
|
||||
+ else if (OCTEON_IS_MODEL(OCTEON_CN3020))
|
||||
+ return 0;
|
||||
+ else if (OCTEON_IS_MODEL(OCTEON_CN38XX_PASS1))
|
||||
+ return 1;
|
||||
+ else
|
||||
+ return !cvmx_fuse_read(120);
|
||||
+ case OCTEON_FEATURE_MDIO_CLAUSE_45:
|
||||
+ return !(OCTEON_IS_MODEL(OCTEON_CN3XXX)
|
||||
+ || OCTEON_IS_MODEL(OCTEON_CN58XX)
|
||||
+ || OCTEON_IS_MODEL(OCTEON_CN50XX));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
1.6.0.6
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
|
||||
---
|
||||
.../cavium-octeon/executive/cvmx-helper-errata.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper-errata.c b/arch/mips/cavium-octeon/executive/cvmx-helper-errata.c
|
||||
index 8fb8205..868659e 100644
|
||||
--- a/arch/mips/cavium-octeon/executive/cvmx-helper-errata.c
|
||||
+++ b/arch/mips/cavium-octeon/executive/cvmx-helper-errata.c
|
||||
@@ -33,6 +33,8 @@
|
||||
* these functions directly.
|
||||
*
|
||||
*/
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
#include <asm/octeon/octeon.h>
|
||||
|
||||
#include <asm/octeon/cvmx-helper-jtag.h>
|
||||
@@ -68,3 +70,4 @@ void __cvmx_helper_errata_qlm_disable_2nd_order_cdr(int qlm)
|
||||
}
|
||||
cvmx_helper_qlm_jtag_update(qlm);
|
||||
}
|
||||
+EXPORT_SYMBOL(__cvmx_helper_errata_qlm_disable_2nd_order_cdr);
|
||||
--
|
||||
1.6.0.6
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright (C) 2009 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
define Profile/mototech
|
||||
NAME:=Mototech evaluation board
|
||||
PACKAGES:=kmod-ath9k kmod-ata-core kmod-ata-sil24 kmod-usb-core kmod-usb2
|
||||
endef
|
||||
|
||||
define Profile/mototech/Description
|
||||
Package set compatible with the Mototech Evaluation Board (CN5000F).
|
||||
endef
|
||||
$(eval $(call Profile,mototech))
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Copyright (C) 2009 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
define Profile/simulator
|
||||
NAME:=Simulator
|
||||
endef
|
||||
|
||||
define Profile/simulator/Description
|
||||
Package set compatible with the Cavium Octeon Simulator.
|
||||
endef
|
||||
$(eval $(call Profile,simulator))
|
||||
|
Loading…
Reference in New Issue