mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-24 06:20:16 +02:00
[brcm63xx] add experimental support for 2.6.28.10, tested on bcm6338
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17054 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
fe8a4ad530
commit
5abca50d4d
204
target/linux/brcm63xx/config-2.6.28
Normal file
204
target/linux/brcm63xx/config-2.6.28
Normal file
@ -0,0 +1,204 @@
|
||||
CONFIG_32BIT=y
|
||||
# CONFIG_64BIT is not set
|
||||
# CONFIG_8139TOO 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_REQUIRE_GPIOLIB=y
|
||||
# CONFIG_ARCH_SUPPORTS_MSI is not set
|
||||
CONFIG_ARCH_SUPPORTS_OPROFILE=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_AUDIT=y
|
||||
CONFIG_AUDIT_GENERIC=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
# CONFIG_BCM47XX is not set
|
||||
CONFIG_BCM63XX=y
|
||||
CONFIG_BCM63XX_CPU_6338=y
|
||||
CONFIG_BCM63XX_CPU_6345=y
|
||||
CONFIG_BCM63XX_CPU_6348=y
|
||||
CONFIG_BCM63XX_CPU_6358=y
|
||||
CONFIG_BCM63XX_ENET=y
|
||||
CONFIG_BCM63XX_PHY=y
|
||||
CONFIG_BCM63XX_WDT=y
|
||||
CONFIG_BITREVERSE=y
|
||||
CONFIG_BLK_DEV_IO_TRACE=y
|
||||
CONFIG_BOARD_BCM963XX=y
|
||||
# CONFIG_BOARD_LIVEBOX is not set
|
||||
# CONFIG_BSD_DISKLABEL is not set
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_CEVT_R4K=y
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200"
|
||||
CONFIG_CPU_BIG_ENDIAN=y
|
||||
CONFIG_CPU_HAS_LLSC=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=y
|
||||
CONFIG_CPU_MIPS32_R1=y
|
||||
# CONFIG_CPU_MIPS32_R2 is not set
|
||||
# CONFIG_CPU_MIPS64_R1 is not set
|
||||
# CONFIG_CPU_MIPS64_R2 is not set
|
||||
CONFIG_CPU_MIPSR1=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_32BIT_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_CSRC_R4K=y
|
||||
CONFIG_DEVPORT=y
|
||||
# CONFIG_DM9000 is not set
|
||||
CONFIG_DMA_NEED_PCI_MAP_STATE=y
|
||||
CONFIG_DMA_NONCOHERENT=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_FIRMWARE_IN_KERNEL=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||
CONFIG_GENERIC_CMOS_UPDATE=y
|
||||
CONFIG_GENERIC_FIND_NEXT_BIT=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_DEVICE=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_HAMRADIO is not set
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
CONFIG_HW_HAS_PCI=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HZ=250
|
||||
# CONFIG_HZ_100 is not set
|
||||
CONFIG_HZ_250=y
|
||||
# CONFIG_I2C is not set
|
||||
# CONFIG_IDE is not set
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_IRQ_CPU=y
|
||||
# CONFIG_ISDN is not set
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_LBD=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
|
||||
# CONFIG_LEMOTE_FULONG is not set
|
||||
# CONFIG_MACH_ALCHEMY is not set
|
||||
# CONFIG_MACH_DECSTATION is not set
|
||||
# CONFIG_MACH_EMMA 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_MIKROTIK_RB532 is not set
|
||||
CONFIG_MIPS=y
|
||||
# CONFIG_MIPS_COBALT is not set
|
||||
# CONFIG_MIPS_FPU_EMU is not set
|
||||
CONFIG_MIPS_L1_CACHE_SHIFT=5
|
||||
# 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_MODULE_FORCE_LOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
CONFIG_MTD_BCM963XX=y
|
||||
CONFIG_MTD_CFI_ADV_OPTIONS=y
|
||||
CONFIG_MTD_CFI_BE_BYTE_SWAP=y
|
||||
# CONFIG_MTD_CFI_GEOMETRY is not set
|
||||
# CONFIG_MTD_CFI_NOSWAP is not set
|
||||
CONFIG_MTD_CFI_STAA=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||
CONFIG_MTD_CONCAT=y
|
||||
CONFIG_MTD_JEDECPROBE=y
|
||||
CONFIG_MTD_REDBOOT_PARTS=y
|
||||
CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
|
||||
# CONFIG_NATSEMI is not set
|
||||
# CONFIG_NO_IOPORT is not set
|
||||
# CONFIG_NXP_STB220 is not set
|
||||
# CONFIG_NXP_STB225 is not set
|
||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
# CONFIG_PCSPKR_PLATFORM is not set
|
||||
CONFIG_PHYLIB=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_PROBE_INITRD_HEADER is not set
|
||||
# CONFIG_PROM_EMU is not set
|
||||
# CONFIG_R6040 is not set
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SERIAL_8250 is not set
|
||||
CONFIG_SERIAL_BCM63XX=y
|
||||
CONFIG_SERIAL_BCM63XX_CONSOLE=y
|
||||
# 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_SQUASHFS_EMBEDDED=y
|
||||
CONFIG_SQUASHFS_VMALLOC=y
|
||||
CONFIG_SSB=y
|
||||
CONFIG_SSB_B43_PCI_BRIDGE=y
|
||||
# CONFIG_SSB_DRIVER_MIPS is not set
|
||||
CONFIG_SSB_DRIVER_PCICORE=y
|
||||
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
|
||||
CONFIG_SSB_PCIHOST=y
|
||||
CONFIG_SSB_PCIHOST_POSSIBLE=y
|
||||
CONFIG_SSB_SPROM=y
|
||||
CONFIG_SWAP_IO_SPACE=y
|
||||
CONFIG_SYS_HAS_CPU_MIPS32_R1=y
|
||||
CONFIG_SYS_HAS_EARLY_PRINTK=y
|
||||
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
|
||||
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
|
||||
CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
|
||||
# CONFIG_TC35815 is not set
|
||||
CONFIG_TICK_ONESHOT=y
|
||||
CONFIG_TRAD_SIGNALS=y
|
||||
CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
|
||||
CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
|
||||
CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
|
||||
CONFIG_USB_SUPPORT=y
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_VIA_RHINE is not set
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_WATCHDOG_NOWAYOUT=y
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
1
target/linux/brcm63xx/files/arch/mips/include/asm/mach-bcm63xx
Symbolic link
1
target/linux/brcm63xx/files/arch/mips/include/asm/mach-bcm63xx
Symbolic link
@ -0,0 +1 @@
|
||||
../../../../include/asm-mips/mach-bcm63xx
|
@ -1718,7 +1718,7 @@ static int __devinit bcm_enet_probe(struct platform_device *pdev)
|
||||
if (priv->has_phy) {
|
||||
bus = &priv->mii_bus;
|
||||
bus->name = "bcm63xx_enet MII bus";
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
|
||||
bus->dev = &pdev->dev;
|
||||
#else
|
||||
bus->parent = &pdev->dev;
|
||||
|
@ -0,0 +1,95 @@
|
||||
From a9f65413f9ea81ef2208da66a3db9cb8a9020eef Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Fri, 18 Jul 2008 15:53:08 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add Broadcom 63xx CPU definitions.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/kernel/cpu-probe.c | 25 +++++++++++++++++++++++++
|
||||
arch/mips/mm/tlbex.c | 4 ++++
|
||||
arch/mips/include/asm/cpu.h | 7 +++++++
|
||||
3 files changed, 36 insertions(+), 0 deletions(-)
|
||||
|
||||
--- a/arch/mips/kernel/cpu-probe.c
|
||||
+++ b/arch/mips/kernel/cpu-probe.c
|
||||
@@ -154,6 +154,9 @@ void __init check_wait(void)
|
||||
case CPU_25KF:
|
||||
case CPU_PR4450:
|
||||
case CPU_BCM3302:
|
||||
+ case CPU_BCM6338:
|
||||
+ case CPU_BCM6348:
|
||||
+ case CPU_BCM6358:
|
||||
cpu_wait = r4k_wait;
|
||||
break;
|
||||
|
||||
@@ -864,6 +867,7 @@ static inline void cpu_probe_broadcom(st
|
||||
{
|
||||
decode_configs(c);
|
||||
switch (c->processor_id & 0xff00) {
|
||||
+ /* same as PRID_IMP_BCM6338 */
|
||||
case PRID_IMP_BCM3302:
|
||||
c->cputype = CPU_BCM3302;
|
||||
__cpu_name[cpu] = "Broadcom BCM3302";
|
||||
@@ -872,6 +876,26 @@ static inline void cpu_probe_broadcom(st
|
||||
c->cputype = CPU_BCM4710;
|
||||
__cpu_name[cpu] = "Broadcom BCM4710";
|
||||
break;
|
||||
+ case PRID_IMP_BCM6345:
|
||||
+ c->cputype = CPU_BCM6345;
|
||||
+ __cpu_name[cpu] = "Broadcom BCM6345";
|
||||
+ break;
|
||||
+ case PRID_IMP_BCM6348:
|
||||
+ c->cputype = CPU_BCM6348;
|
||||
+ __cpu_name[cpu] = "Broadcom BCM6348";
|
||||
+ break;
|
||||
+ case PRID_IMP_BCM4350:
|
||||
+ switch (c->processor_id & 0xf0) {
|
||||
+ case PRID_REV_BCM6358:
|
||||
+ c->cputype = CPU_BCM6358;
|
||||
+ __cpu_name[cpu] = "Broadcom BCM6358";
|
||||
+ break;
|
||||
+ default:
|
||||
+ c->cputype = CPU_UNKNOWN;
|
||||
+ __cpu_name[cpu] = "Broadcom BCM63xx";
|
||||
+ break;
|
||||
+ }
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
|
||||
--- a/arch/mips/mm/tlbex.c
|
||||
+++ b/arch/mips/mm/tlbex.c
|
||||
@@ -317,6 +317,10 @@ static void __cpuinit build_tlb_write_en
|
||||
case CPU_BCM3302:
|
||||
case CPU_BCM4710:
|
||||
case CPU_LOONGSON2:
|
||||
+ case CPU_BCM6338:
|
||||
+ case CPU_BCM6345:
|
||||
+ case CPU_BCM6348:
|
||||
+ case CPU_BCM6358:
|
||||
if (m4kc_tlbp_war())
|
||||
uasm_i_nop(p);
|
||||
tlbw(p);
|
||||
--- a/arch/mips/include/asm/cpu.h
|
||||
+++ b/arch/mips/include/asm/cpu.h
|
||||
@@ -112,6 +112,12 @@
|
||||
|
||||
#define PRID_IMP_BCM4710 0x4000
|
||||
#define PRID_IMP_BCM3302 0x9000
|
||||
+#define PRID_IMP_BCM6338 0x9000
|
||||
+#define PRID_IMP_BCM6345 0x8000
|
||||
+#define PRID_IMP_BCM6348 0x9100
|
||||
+#define PRID_IMP_BCM4350 0xA000
|
||||
+#define PRID_REV_BCM6358 0x0010
|
||||
+#define PRID_REV_BCM6368 0x0030
|
||||
|
||||
/*
|
||||
* Definitions for 7:0 on legacy processors
|
||||
@@ -198,6 +204,7 @@ enum cpu_type_enum {
|
||||
CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K,
|
||||
CPU_AU1000, CPU_AU1100, CPU_AU1200, CPU_AU1210, CPU_AU1250, CPU_AU1500,
|
||||
CPU_AU1550, CPU_PR4450, CPU_BCM3302, CPU_BCM4710,
|
||||
+ CPU_BCM6338, CPU_BCM6345, CPU_BCM6348, CPU_BCM6358,
|
||||
|
||||
/*
|
||||
* MIPS64 class processors
|
@ -0,0 +1,122 @@
|
||||
From 0713aadd2a4e543b69022aa40bdec3e1dc5bc1e5 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Mon, 18 Aug 2008 13:56:57 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add support for Broadcom 63xx CPUs.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/Kconfig | 16 +
|
||||
arch/mips/Makefile | 7 +
|
||||
arch/mips/bcm63xx/Kconfig | 9 +
|
||||
arch/mips/bcm63xx/Makefile | 2 +
|
||||
arch/mips/bcm63xx/clk.c | 220 ++++++
|
||||
arch/mips/bcm63xx/cpu.c | 245 +++++++
|
||||
arch/mips/bcm63xx/cs.c | 144 ++++
|
||||
arch/mips/bcm63xx/early_printk.c | 30 +
|
||||
arch/mips/bcm63xx/gpio.c | 98 +++
|
||||
arch/mips/bcm63xx/irq.c | 253 +++++++
|
||||
arch/mips/bcm63xx/prom.c | 43 ++
|
||||
arch/mips/bcm63xx/setup.c | 108 +++
|
||||
arch/mips/bcm63xx/timer.c | 205 ++++++
|
||||
arch/mips/include/asm/fixmap.h | 4 +
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_clk.h | 11 +
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h | 314 +++++++++
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h | 10 +
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h | 14 +
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h | 93 +++
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h | 15 +
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | 728 ++++++++++++++++++++
|
||||
arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h | 11 +
|
||||
.../asm-mips/mach-bcm63xx/cpu-feature-overrides.h | 51 ++
|
||||
arch/mips/include/asm/mach-bcm63xx/gpio.h | 52 ++
|
||||
arch/mips/include/asm/mach-bcm63xx/war.h | 25 +
|
||||
25 files changed, 2708 insertions(+), 0 deletions(-)
|
||||
create mode 100644 arch/mips/bcm63xx/Kconfig
|
||||
create mode 100644 arch/mips/bcm63xx/Makefile
|
||||
create mode 100644 arch/mips/bcm63xx/clk.c
|
||||
create mode 100644 arch/mips/bcm63xx/cpu.c
|
||||
create mode 100644 arch/mips/bcm63xx/cs.c
|
||||
create mode 100644 arch/mips/bcm63xx/early_printk.c
|
||||
create mode 100644 arch/mips/bcm63xx/gpio.c
|
||||
create mode 100644 arch/mips/bcm63xx/irq.c
|
||||
create mode 100644 arch/mips/bcm63xx/prom.c
|
||||
create mode 100644 arch/mips/bcm63xx/setup.c
|
||||
create mode 100644 arch/mips/bcm63xx/timer.c
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_clk.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/gpio.h
|
||||
create mode 100644 arch/mips/include/asm/mach-bcm63xx/war.h
|
||||
|
||||
--- a/arch/mips/Kconfig
|
||||
+++ b/arch/mips/Kconfig
|
||||
@@ -60,6 +60,21 @@ config BCM47XX
|
||||
help
|
||||
Support for BCM47XX based boards
|
||||
|
||||
+config BCM63XX
|
||||
+ bool "Broadcom 63xx based boards"
|
||||
+ select CEVT_R4K
|
||||
+ select CSRC_R4K
|
||||
+ select DMA_NONCOHERENT
|
||||
+ select IRQ_CPU
|
||||
+ select SYS_HAS_CPU_MIPS32_R1
|
||||
+ select SYS_SUPPORTS_32BIT_KERNEL
|
||||
+ select SYS_SUPPORTS_BIG_ENDIAN
|
||||
+ select SYS_HAS_EARLY_PRINTK
|
||||
+ select SWAP_IO_SPACE
|
||||
+ select ARCH_REQUIRE_GPIOLIB
|
||||
+ help
|
||||
+ Support for BCM63XX based boards
|
||||
+
|
||||
config MIPS_COBALT
|
||||
bool "Cobalt Server"
|
||||
select CEVT_R4K
|
||||
@@ -599,6 +614,7 @@ endchoice
|
||||
|
||||
source "arch/mips/alchemy/Kconfig"
|
||||
source "arch/mips/basler/excite/Kconfig"
|
||||
+source "arch/mips/bcm63xx/Kconfig"
|
||||
source "arch/mips/emma/Kconfig"
|
||||
source "arch/mips/jazz/Kconfig"
|
||||
source "arch/mips/lasat/Kconfig"
|
||||
--- a/arch/mips/Makefile
|
||||
+++ b/arch/mips/Makefile
|
||||
@@ -553,6 +553,13 @@ cflags-$(CONFIG_BCM47XX) += -I$(srctree)
|
||||
load-$(CONFIG_BCM47XX) := 0xffffffff80001000
|
||||
|
||||
#
|
||||
+# Broadcom BCM63XX boards
|
||||
+#
|
||||
+core-$(CONFIG_BCM63XX) += arch/mips/bcm63xx/
|
||||
+cflags-$(CONFIG_BCM63XX) += -Iarch/mips/include/asm/mach-bcm63xx/
|
||||
+load-$(CONFIG_BCM63XX) := 0xffffffff80010000
|
||||
+
|
||||
+#
|
||||
# SNI RM
|
||||
#
|
||||
core-$(CONFIG_SNI_RM) += arch/mips/sni/
|
||||
--- a/arch/mips/include/asm/fixmap.h
|
||||
+++ b/arch/mips/include/asm/fixmap.h
|
||||
@@ -67,11 +67,15 @@ enum fixed_addresses {
|
||||
* the start of the fixmap, and leave one page empty
|
||||
* at the top of mem..
|
||||
*/
|
||||
+#ifdef CONFIG_BCM63XX
|
||||
+#define FIXADDR_TOP ((unsigned long)(long)(int)0xff000000)
|
||||
+#else
|
||||
#if defined(CONFIG_CPU_TX39XX) || defined(CONFIG_CPU_TX49XX)
|
||||
#define FIXADDR_TOP ((unsigned long)(long)(int)(0xff000000 - 0x20000))
|
||||
#else
|
||||
#define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000)
|
||||
#endif
|
||||
+#endif
|
||||
#define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
|
||||
#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
|
||||
|
@ -0,0 +1,66 @@
|
||||
From 6c489656b09998ed6a6f857e01ccf630e29358dd Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Fri, 18 Jul 2008 19:35:55 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add serial driver for bcm63xx integrated UART.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/bcm63xx/Makefile | 1 +
|
||||
arch/mips/bcm63xx/dev-uart.c | 41 +
|
||||
drivers/serial/Kconfig | 19 +
|
||||
drivers/serial/Makefile | 1 +
|
||||
drivers/serial/bcm63xx_uart.c | 890 ++++++++++++++++++++++
|
||||
include/asm-mips/mach-bcm63xx/bcm63xx_dev_uart.h | 6 +
|
||||
include/linux/serial_core.h | 2 +
|
||||
7 files changed, 960 insertions(+), 0 deletions(-)
|
||||
create mode 100644 arch/mips/bcm63xx/dev-uart.c
|
||||
create mode 100644 drivers/serial/bcm63xx_uart.c
|
||||
create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_uart.h
|
||||
|
||||
--- a/drivers/serial/Kconfig
|
||||
+++ b/drivers/serial/Kconfig
|
||||
@@ -1372,4 +1372,23 @@ config SPORT_BAUD_RATE
|
||||
default 19200 if (SERIAL_SPORT_BAUD_RATE_19200)
|
||||
default 9600 if (SERIAL_SPORT_BAUD_RATE_9600)
|
||||
|
||||
+config SERIAL_BCM63XX
|
||||
+ tristate "bcm63xx serial port support"
|
||||
+ select SERIAL_CORE
|
||||
+ depends on BCM63XX
|
||||
+ help
|
||||
+ If you have a bcm63xx CPU, you can enable its onboard
|
||||
+ serial port by enabling this options.
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the
|
||||
+ module will be called bcm963xx_uart.
|
||||
+
|
||||
+config SERIAL_BCM63XX_CONSOLE
|
||||
+ bool "Console on bcm63xx serial port"
|
||||
+ depends on SERIAL_BCM63XX
|
||||
+ select SERIAL_CORE_CONSOLE
|
||||
+ help
|
||||
+ If you have enabled the serial port on the bcm63xx CPU
|
||||
+ you can make it the console by answering Y to this option.
|
||||
+
|
||||
endmenu
|
||||
--- a/drivers/serial/Makefile
|
||||
+++ b/drivers/serial/Makefile
|
||||
@@ -34,6 +34,7 @@ obj-$(CONFIG_SERIAL_CLPS711X) += clps711
|
||||
obj-$(CONFIG_SERIAL_PXA) += pxa.o
|
||||
obj-$(CONFIG_SERIAL_PNX8XXX) += pnx8xxx_uart.o
|
||||
obj-$(CONFIG_SERIAL_SA1100) += sa1100.o
|
||||
+obj-$(CONFIG_SERIAL_BCM63XX) += bcm63xx_uart.o
|
||||
obj-$(CONFIG_SERIAL_BFIN) += bfin_5xx.o
|
||||
obj-$(CONFIG_SERIAL_BFIN_SPORT) += bfin_sport_uart.o
|
||||
obj-$(CONFIG_SERIAL_SAMSUNG) += samsung.o
|
||||
--- a/include/linux/serial_core.h
|
||||
+++ b/include/linux/serial_core.h
|
||||
@@ -158,6 +158,8 @@
|
||||
/* SH-SCI */
|
||||
#define PORT_SCIFA 83
|
||||
|
||||
+#define PORT_BCM63XX 83
|
||||
+
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/compiler.h>
|
@ -0,0 +1,33 @@
|
||||
From 2a7fa2dbbf68650644f807a50cc2d84ca30835c1 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Sun, 21 Sep 2008 04:47:13 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add PCI support.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/bcm63xx/Kconfig | 2 +
|
||||
arch/mips/bcm63xx/setup.c | 2 +
|
||||
arch/mips/pci/Makefile | 2 +
|
||||
arch/mips/pci/fixup-bcm63xx.c | 21 +++
|
||||
arch/mips/pci/ops-bcm63xx.c | 179 +++++++++++++++++++++++
|
||||
arch/mips/pci/pci-bcm63xx.c | 178 ++++++++++++++++++++++
|
||||
arch/mips/pci/pci-bcm63xx.h | 27 ++++
|
||||
include/asm-mips/mach-bcm63xx/bcm63xx_dev_pci.h | 6 +
|
||||
8 files changed, 417 insertions(+), 0 deletions(-)
|
||||
create mode 100644 arch/mips/pci/fixup-bcm63xx.c
|
||||
create mode 100644 arch/mips/pci/ops-bcm63xx.c
|
||||
create mode 100644 arch/mips/pci/pci-bcm63xx.c
|
||||
create mode 100644 arch/mips/pci/pci-bcm63xx.h
|
||||
create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_pci.h
|
||||
|
||||
--- a/arch/mips/pci/Makefile
|
||||
+++ b/arch/mips/pci/Makefile
|
||||
@@ -16,6 +16,8 @@ obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o
|
||||
obj-$(CONFIG_NEC_MARKEINS) += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o
|
||||
obj-$(CONFIG_PCI_TX4927) += ops-tx4927.o
|
||||
obj-$(CONFIG_BCM47XX) += pci-bcm47xx.o
|
||||
+obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o fixup-bcm63xx.o \
|
||||
+ ops-bcm63xx.o
|
||||
|
||||
#
|
||||
# These are still pretty much in the old state, watch, go blind.
|
@ -0,0 +1,43 @@
|
||||
From b17597be763621ba63534fda6e1ea0a802be2087 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Fri, 18 Jul 2008 21:18:51 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add PCMCIA & Cardbus support.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/bcm63xx/Makefile | 1 +
|
||||
arch/mips/bcm63xx/dev-pcmcia.c | 135 +++++
|
||||
drivers/pcmcia/Kconfig | 4 +
|
||||
drivers/pcmcia/Makefile | 1 +
|
||||
drivers/pcmcia/bcm63xx_pcmcia.c | 521 ++++++++++++++++++++
|
||||
drivers/pcmcia/bcm63xx_pcmcia.h | 65 +++
|
||||
include/asm-mips/mach-bcm63xx/bcm63xx_dev_pcmcia.h | 13 +
|
||||
7 files changed, 740 insertions(+), 0 deletions(-)
|
||||
create mode 100644 arch/mips/bcm63xx/dev-pcmcia.c
|
||||
create mode 100644 drivers/pcmcia/bcm63xx_pcmcia.c
|
||||
create mode 100644 drivers/pcmcia/bcm63xx_pcmcia.h
|
||||
create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_pcmcia.h
|
||||
|
||||
--- a/drivers/pcmcia/Kconfig
|
||||
+++ b/drivers/pcmcia/Kconfig
|
||||
@@ -192,6 +192,10 @@ config PCMCIA_AU1X00
|
||||
tristate "Au1x00 pcmcia support"
|
||||
depends on SOC_AU1X00 && PCMCIA
|
||||
|
||||
+config PCMCIA_BCM63XX
|
||||
+ tristate "bcm63xx pcmcia support"
|
||||
+ depends on BCM63XX && PCMCIA
|
||||
+
|
||||
config PCMCIA_SA1100
|
||||
tristate "SA1100 support"
|
||||
depends on ARM && ARCH_SA1100 && PCMCIA
|
||||
--- a/drivers/pcmcia/Makefile
|
||||
+++ b/drivers/pcmcia/Makefile
|
||||
@@ -27,6 +27,7 @@ obj-$(CONFIG_PCMCIA_SA1111) += sa11xx_
|
||||
obj-$(CONFIG_M32R_PCC) += m32r_pcc.o
|
||||
obj-$(CONFIG_M32R_CFC) += m32r_cfc.o
|
||||
obj-$(CONFIG_PCMCIA_AU1X00) += au1x00_ss.o
|
||||
+obj-$(CONFIG_PCMCIA_BCM63XX) += bcm63xx_pcmcia.o
|
||||
obj-$(CONFIG_PCMCIA_VRC4171) += vrc4171_card.o
|
||||
obj-$(CONFIG_PCMCIA_VRC4173) += vrc4173_cardu.o
|
||||
obj-$(CONFIG_OMAP_CF) += omap_cf.o
|
@ -0,0 +1,56 @@
|
||||
From f7416412febd7efc1d33c7506c81265719368667 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Mon, 21 Jul 2008 14:58:19 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add USB OHCI support.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/bcm63xx/Kconfig | 6 +
|
||||
arch/mips/bcm63xx/Makefile | 1 +
|
||||
arch/mips/bcm63xx/dev-usb-ohci.c | 50 ++++++
|
||||
drivers/usb/host/ohci-bcm63xx.c | 159 ++++++++++++++++++++
|
||||
drivers/usb/host/ohci-hcd.c | 5 +
|
||||
drivers/usb/host/ohci.h | 7 +-
|
||||
.../asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ohci.h | 6 +
|
||||
7 files changed, 233 insertions(+), 1 deletions(-)
|
||||
create mode 100644 arch/mips/bcm63xx/dev-usb-ohci.c
|
||||
create mode 100644 drivers/usb/host/ohci-bcm63xx.c
|
||||
create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ohci.h
|
||||
|
||||
--- a/drivers/usb/host/ohci-hcd.c
|
||||
+++ b/drivers/usb/host/ohci-hcd.c
|
||||
@@ -1047,6 +1047,11 @@ MODULE_LICENSE ("GPL");
|
||||
#define PLATFORM_DRIVER usb_hcd_pnx4008_driver
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_BCM63XX
|
||||
+#include "ohci-bcm63xx.c"
|
||||
+#define PLATFORM_DRIVER ohci_hcd_bcm63xx_driver
|
||||
+#endif
|
||||
+
|
||||
#if defined(CONFIG_CPU_SUBTYPE_SH7720) || \
|
||||
defined(CONFIG_CPU_SUBTYPE_SH7721) || \
|
||||
defined(CONFIG_CPU_SUBTYPE_SH7763)
|
||||
--- a/drivers/usb/host/ohci.h
|
||||
+++ b/drivers/usb/host/ohci.h
|
||||
@@ -536,6 +536,11 @@ static inline struct usb_hcd *ohci_to_hc
|
||||
#define big_endian_mmio(ohci) 0 /* only little endian */
|
||||
#endif
|
||||
|
||||
+#if defined(CONFIG_MIPS) && defined(CONFIG_BCM63XX)
|
||||
+#define readl_be(addr) __raw_readl((__force unsigned *)addr)
|
||||
+#define writel_be(val, addr) __raw_writel(val, (__force unsigned *)addr)
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* Big-endian read/write functions are arch-specific.
|
||||
* Other arches can be added if/when they're needed.
|
||||
@@ -646,7 +651,7 @@ static inline u32 hc32_to_cpup (const st
|
||||
* some big-endian SOC implementations. Same thing happens with PSW access.
|
||||
*/
|
||||
|
||||
-#ifdef CONFIG_PPC_MPC52xx
|
||||
+#if defined(CONFIG_PPC_MPC52xx) || defined(CONFIG_BCM63XX)
|
||||
#define big_endian_frame_no_quirk(ohci) (ohci->flags & OHCI_QUIRK_FRAME_NO)
|
||||
#else
|
||||
#define big_endian_frame_no_quirk(ohci) 0
|
@ -0,0 +1,58 @@
|
||||
From 2940d1996c86c4c4dd7a82214f846d0c0b707165 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Mon, 21 Jul 2008 18:24:42 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add USB EHCI support.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/bcm63xx/Kconfig | 2 +
|
||||
arch/mips/bcm63xx/Makefile | 1 +
|
||||
arch/mips/bcm63xx/dev-usb-ehci.c | 50 +++++++
|
||||
drivers/usb/host/ehci-bcm63xx.c | 152 ++++++++++++++++++++
|
||||
drivers/usb/host/ehci-hcd.c | 5 +
|
||||
drivers/usb/host/ehci.h | 5 +
|
||||
.../asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ehci.h | 6 +
|
||||
7 files changed, 221 insertions(+), 0 deletions(-)
|
||||
create mode 100644 arch/mips/bcm63xx/dev-usb-ehci.c
|
||||
create mode 100644 drivers/usb/host/ehci-bcm63xx.c
|
||||
create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_usb_ehci.h
|
||||
|
||||
--- a/drivers/usb/host/ehci-hcd.c
|
||||
+++ b/drivers/usb/host/ehci-hcd.c
|
||||
@@ -1036,6 +1036,11 @@ MODULE_LICENSE ("GPL");
|
||||
#define PLATFORM_DRIVER ixp4xx_ehci_driver
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_BCM63XX
|
||||
+#include "ehci-bcm63xx.c"
|
||||
+#define PLATFORM_DRIVER ehci_hcd_bcm63xx_driver
|
||||
+#endif
|
||||
+
|
||||
#if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
|
||||
!defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER)
|
||||
#error "missing bus glue for ehci-hcd"
|
||||
--- a/drivers/usb/host/ehci.h
|
||||
+++ b/drivers/usb/host/ehci.h
|
||||
@@ -621,6 +621,11 @@ ehci_port_speed(struct ehci_hcd *ehci, u
|
||||
#define writel_be(val, addr) __raw_writel(val, (__force unsigned *)addr)
|
||||
#endif
|
||||
|
||||
+#if defined(CONFIG_MIPS) && defined(CONFIG_BCM63XX)
|
||||
+#define readl_be(addr) __raw_readl((__force unsigned *)addr)
|
||||
+#define writel_be(val, addr) __raw_writel(val, (__force unsigned *)addr)
|
||||
+#endif
|
||||
+
|
||||
static inline unsigned int ehci_readl(const struct ehci_hcd *ehci,
|
||||
__u32 __iomem * regs)
|
||||
{
|
||||
--- a/drivers/usb/host/Kconfig
|
||||
+++ b/drivers/usb/host/Kconfig
|
||||
@@ -44,7 +44,7 @@ config USB_EHCI_HCD
|
||||
|
||||
config USB_EHCI_ROOT_HUB_TT
|
||||
bool "Root Hub Transaction Translators"
|
||||
- depends on USB_EHCI_HCD
|
||||
+ depends on USB_EHCI_HCD && !BCM63XX
|
||||
---help---
|
||||
Some EHCI chips have vendor-specific extensions to integrate
|
||||
transaction translators, so that no OHCI or UHCI companion
|
@ -0,0 +1,48 @@
|
||||
From 49aa7ffcd9bd2d9a0af99fced7b8511160dbf345 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Sun, 21 Sep 2008 03:43:26 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add integrated ethernet mac support.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
arch/mips/bcm63xx/Makefile | 1 +
|
||||
arch/mips/bcm63xx/dev-enet.c | 158 ++
|
||||
drivers/net/Kconfig | 9 +
|
||||
drivers/net/Makefile | 1 +
|
||||
drivers/net/bcm63xx_enet.c | 1894 ++++++++++++++++++++++
|
||||
drivers/net/bcm63xx_enet.h | 294 ++++
|
||||
include/asm-mips/mach-bcm63xx/bcm63xx_dev_enet.h | 45 +
|
||||
7 files changed, 2402 insertions(+), 0 deletions(-)
|
||||
create mode 100644 arch/mips/bcm63xx/dev-enet.c
|
||||
create mode 100644 drivers/net/bcm63xx_enet.c
|
||||
create mode 100644 drivers/net/bcm63xx_enet.h
|
||||
create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_dev_enet.h
|
||||
|
||||
--- a/drivers/net/Kconfig
|
||||
+++ b/drivers/net/Kconfig
|
||||
@@ -1987,6 +1987,15 @@ config ATL2
|
||||
To compile this driver as a module, choose M here. The module
|
||||
will be called atl2.
|
||||
|
||||
+config BCM63XX_ENET
|
||||
+ tristate "Broadcom 63xx internal mac support"
|
||||
+ depends on BCM63XX
|
||||
+ select MII
|
||||
+ select PHYLIB
|
||||
+ help
|
||||
+ This driver supports the ethernet MACs in the Broadcom 63xx
|
||||
+ MIPS chipset family (BCM63XX).
|
||||
+
|
||||
source "drivers/net/fs_enet/Kconfig"
|
||||
|
||||
endif # NET_ETHERNET
|
||||
--- a/drivers/net/Makefile
|
||||
+++ b/drivers/net/Makefile
|
||||
@@ -126,6 +126,7 @@ obj-$(CONFIG_SB1250_MAC) += sb1250-mac.o
|
||||
obj-$(CONFIG_B44) += b44.o
|
||||
obj-$(CONFIG_FORCEDETH) += forcedeth.o
|
||||
obj-$(CONFIG_NE_H8300) += ne-h8300.o
|
||||
+obj-$(CONFIG_BCM63XX_ENET) += bcm63xx_enet.o
|
||||
obj-$(CONFIG_AX88796) += ax88796.o
|
||||
|
||||
obj-$(CONFIG_TSI108_ETH) += tsi108_eth.o
|
@ -0,0 +1,38 @@
|
||||
From 7eefcb968019804e024c8243e28afb1eebd674a2 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Bizon <mbizon@freebox.fr>
|
||||
Date: Sun, 21 Sep 2008 02:20:53 +0200
|
||||
Subject: [PATCH] [MIPS] BCM63XX: Add integrated ethernet PHY support for phylib.
|
||||
|
||||
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||
---
|
||||
drivers/net/phy/Kconfig | 6 ++
|
||||
drivers/net/phy/Makefile | 1 +
|
||||
drivers/net/phy/bcm63xx.c | 132 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 139 insertions(+), 0 deletions(-)
|
||||
create mode 100644 drivers/net/phy/bcm63xx.c
|
||||
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -62,6 +62,12 @@ config BROADCOM_PHY
|
||||
Currently supports the BCM5411, BCM5421, BCM5461, BCM5464, BCM5481
|
||||
and BCM5482 PHYs.
|
||||
|
||||
+config BCM63XX_PHY
|
||||
+ tristate "Drivers for Broadcom 63xx SOCs internal PHY"
|
||||
+ depends on BCM63XX
|
||||
+ ---help---
|
||||
+ Currently supports the 6348 and 6358 PHYs.
|
||||
+
|
||||
config ICPLUS_PHY
|
||||
tristate "Drivers for ICPlus PHYs"
|
||||
---help---
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -12,6 +12,7 @@ obj-$(CONFIG_QSEMI_PHY) += qsemi.o
|
||||
obj-$(CONFIG_SMSC_PHY) += smsc.o
|
||||
obj-$(CONFIG_VITESSE_PHY) += vitesse.o
|
||||
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
|
||||
+obj-$(CONFIG_BCM63XX_PHY) += bcm63xx.o
|
||||
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
|
||||
obj-$(CONFIG_ADM6996_PHY) += adm6996.o
|
||||
obj-$(CONFIG_MVSWITCH_PHY) += mvswitch.o
|
29
target/linux/brcm63xx/patches-2.6.28/020-watchdog.patch
Normal file
29
target/linux/brcm63xx/patches-2.6.28/020-watchdog.patch
Normal file
@ -0,0 +1,29 @@
|
||||
--- a/drivers/watchdog/Makefile
|
||||
+++ b/drivers/watchdog/Makefile
|
||||
@@ -106,6 +106,7 @@ obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
|
||||
obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
|
||||
obj-$(CONFIG_AR7_WDT) += ar7_wdt.o
|
||||
obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
|
||||
+obj-$(CONFIG_BCM63XX_WDT) += bcm63xx_wdt.o
|
||||
|
||||
# PARISC Architecture
|
||||
|
||||
--- a/drivers/watchdog/Kconfig
|
||||
+++ b/drivers/watchdog/Kconfig
|
||||
@@ -747,6 +747,16 @@ config TXX9_WDT
|
||||
help
|
||||
Hardware driver for the built-in watchdog timer on TXx9 MIPS SoCs.
|
||||
|
||||
+config BCM63XX_WDT
|
||||
+ tristate "Broadcom BCM63xx hardware watchdog"
|
||||
+ depends on BCM63XX
|
||||
+ help
|
||||
+ Watchdog driver for the built in watchdog hardware in Broadcom
|
||||
+ BCM63xx SoC.
|
||||
+
|
||||
+ To compile thi driver as a loadable module, choose M here.
|
||||
+ The module will be called bcm63xx_wdt.
|
||||
+
|
||||
# PARISC Architecture
|
||||
|
||||
# POWERPC Architecture
|
@ -0,0 +1,73 @@
|
||||
From e734ace5baa04e0e8af1d4483475fbd6bd2b32a1 Mon Sep 17 00:00:00 2001
|
||||
From: Axel Gembe <ago@bastart.eu.org>
|
||||
Date: Mon, 12 May 2008 18:54:09 +0200
|
||||
Subject: [PATCH] bcm963xx: flashmap support
|
||||
|
||||
|
||||
Signed-off-by: Axel Gembe <ago@bastart.eu.org>
|
||||
---
|
||||
drivers/mtd/maps/Kconfig | 7 +++++++
|
||||
drivers/mtd/maps/Makefile | 1 +
|
||||
drivers/mtd/redboot.c | 13 ++++++++++---
|
||||
3 files changed, 18 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/drivers/mtd/maps/Kconfig
|
||||
+++ b/drivers/mtd/maps/Kconfig
|
||||
@@ -257,6 +257,13 @@ config MTD_ALCHEMY
|
||||
help
|
||||
Flash memory access on AMD Alchemy Pb/Db/RDK Reference Boards
|
||||
|
||||
+config MTD_BCM963XX
|
||||
+ tristate "BCM963xx Flash device"
|
||||
+ depends on MIPS && BCM63XX
|
||||
+ help
|
||||
+ Flash memory access on BCM963xx boards. Currently only works with
|
||||
+ RedBoot and CFE.
|
||||
+
|
||||
config MTD_DILNETPC
|
||||
tristate "CFI Flash device mapped on DIL/Net PC"
|
||||
depends on X86 && MTD_CONCAT && MTD_PARTITIONS && MTD_CFI_INTELEXT
|
||||
--- a/drivers/mtd/redboot.c
|
||||
+++ b/drivers/mtd/redboot.c
|
||||
@@ -39,7 +39,7 @@ static inline int redboot_checksum(struc
|
||||
return 1;
|
||||
}
|
||||
|
||||
-static int parse_redboot_partitions(struct mtd_info *master,
|
||||
+int parse_redboot_partitions(struct mtd_info *master,
|
||||
struct mtd_partition **pparts,
|
||||
unsigned long fis_origin)
|
||||
{
|
||||
@@ -162,6 +162,14 @@ static int parse_redboot_partitions(stru
|
||||
goto out;
|
||||
}
|
||||
|
||||
+ if (!fis_origin) {
|
||||
+ for (i = 0; i < numslots; i++) {
|
||||
+ if (!strncmp(buf[i].name, "RedBoot", 8)) {
|
||||
+ fis_origin = (buf[i].flash_base & (master->size << 1) - 1);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
for (i = 0; i < numslots; i++) {
|
||||
struct fis_list *new_fl, **prev;
|
||||
|
||||
@@ -184,9 +192,8 @@ static int parse_redboot_partitions(stru
|
||||
new_fl->img = &buf[i];
|
||||
if (fis_origin) {
|
||||
buf[i].flash_base -= fis_origin;
|
||||
- } else {
|
||||
- buf[i].flash_base &= master->size-1;
|
||||
}
|
||||
+ buf[i].flash_base &= (master->size << 1) - 1;
|
||||
|
||||
/* I'm sure the JFFS2 code has done me permanent damage.
|
||||
* I now think the following is _normal_
|
||||
--- a/drivers/mtd/maps/Makefile
|
||||
+++ b/drivers/mtd/maps/Makefile
|
||||
@@ -61,3 +61,4 @@ obj-$(CONFIG_MTD_PLATRAM) += plat-ram.o
|
||||
obj-$(CONFIG_MTD_OMAP_NOR) += omap_nor.o
|
||||
obj-$(CONFIG_MTD_INTEL_VR_NOR) += intel_vr_nor.o
|
||||
obj-$(CONFIG_MTD_BFIN_ASYNC) += bfin-async-flash.o
|
||||
+obj-$(CONFIG_MTD_BCM963XX) += bcm963xx-flash.o
|
26
target/linux/brcm63xx/patches-2.6.28/050-spi.patch
Normal file
26
target/linux/brcm63xx/patches-2.6.28/050-spi.patch
Normal file
@ -0,0 +1,26 @@
|
||||
--- a/drivers/spi/Kconfig
|
||||
+++ b/drivers/spi/Kconfig
|
||||
@@ -229,6 +229,13 @@ config SPI_XILINX
|
||||
See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
|
||||
Product Specification document (DS464) for hardware details.
|
||||
|
||||
+config SPI_BCM63XX
|
||||
+ tristate "Broadcom BCM63xx SPI controller"
|
||||
+ depends on BCM63XX
|
||||
+ select SPI_BITBANG
|
||||
+ help
|
||||
+ SPI driver for the Broadcom BCM63xx SPI controller.
|
||||
+
|
||||
#
|
||||
# Add new SPI master controllers in alphabetical order above this line
|
||||
#
|
||||
--- a/drivers/spi/Makefile
|
||||
+++ b/drivers/spi/Makefile
|
||||
@@ -31,6 +31,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24x
|
||||
obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
|
||||
obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
|
||||
obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
|
||||
+obj-$(CONFIG_SPI_BCM63XX) += bcm63xx_spi.o
|
||||
# ... add above this line ...
|
||||
|
||||
# SPI protocol drivers (device/link on bus)
|
125
target/linux/brcm63xx/patches-2.6.28/500-lzma_initramfs.patch
Normal file
125
target/linux/brcm63xx/patches-2.6.28/500-lzma_initramfs.patch
Normal file
@ -0,0 +1,125 @@
|
||||
--- a/init/initramfs.c
|
||||
+++ b/init/initramfs.c
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <linux/string.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/utime.h>
|
||||
+#include <linux/vmalloc.h>
|
||||
|
||||
static __initdata char *message;
|
||||
static void __init error(char *x)
|
||||
@@ -475,6 +476,69 @@ static void __init flush_window(void)
|
||||
outcnt = 0;
|
||||
}
|
||||
|
||||
+#include <linux/LzmaDecode.h>
|
||||
+static int __init lzma_unzip(void)
|
||||
+{
|
||||
+ unsigned int i; /* temp value */
|
||||
+ unsigned int lc; /* literal context bits */
|
||||
+ unsigned int lp; /* literal pos state bits */
|
||||
+ unsigned int pb; /* pos state bits */
|
||||
+ unsigned int osize; /* uncompressed size */
|
||||
+ unsigned char *workspace;
|
||||
+ unsigned char* outputbuffer;
|
||||
+ unsigned int outsizeProcessed = 0;
|
||||
+ int workspace_size;
|
||||
+ int res;
|
||||
+
|
||||
+ // lzma args
|
||||
+ i = get_byte();
|
||||
+ lc = i % 9, i = i / 9;
|
||||
+ lp = i % 5, pb = i / 5;
|
||||
+
|
||||
+ // skip dictionary size
|
||||
+ for (i = 0; i < 4; i++)
|
||||
+ get_byte();
|
||||
+
|
||||
+ /* read the lower half of uncompressed size in the header */
|
||||
+ osize = ((unsigned int)get_byte()) +
|
||||
+ ((unsigned int)get_byte() << 8) +
|
||||
+ ((unsigned int)get_byte() << 16) +
|
||||
+ ((unsigned int)get_byte() << 24);
|
||||
+
|
||||
+ /* skip rest of the header (upper half of uncompressed size) */
|
||||
+ for (i = 0; i < 4; i++)
|
||||
+ get_byte();
|
||||
+
|
||||
+ workspace_size = ((LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp))) * sizeof(CProb)) + 100;
|
||||
+ printk( KERN_NOTICE "initramfs: LZMA lc=%d,lp=%d,pb=%d,origSize=%d\n",
|
||||
+ lc,lp,pb,osize);
|
||||
+ outputbuffer = vmalloc(osize);
|
||||
+ if (outputbuffer == 0) {
|
||||
+ printk(KERN_ERR "initramfs: Couldn't allocate lzma output buffer\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ workspace = vmalloc(workspace_size);
|
||||
+ if (workspace == NULL) {
|
||||
+ printk(KERN_ERR "initramfs: Couldn't allocate lzma workspace\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ res = LzmaDecode(workspace, workspace_size, lc, lp, pb, inbuf + inptr, insize - inptr, outputbuffer, osize, &outsizeProcessed);
|
||||
+ if( res != 0 ) {
|
||||
+ panic( KERN_ERR "initramfs: Lzma decode failure\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ flush_buffer(outputbuffer, outsizeProcessed);
|
||||
+ inptr = insize;
|
||||
+
|
||||
+ vfree(outputbuffer);
|
||||
+ vfree(workspace);
|
||||
+ state = Reset;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
|
||||
{
|
||||
int written;
|
||||
@@ -509,12 +573,28 @@ static char * __init unpack_to_rootfs(ch
|
||||
inptr = 0;
|
||||
outcnt = 0; /* bytes in output buffer */
|
||||
bytes_out = 0;
|
||||
- crc = (ulg)0xffffffffL; /* shift register contents */
|
||||
- makecrc();
|
||||
- gunzip();
|
||||
- if (state != Reset)
|
||||
+ if( inbuf[0] == 037 && ((inbuf[1] == 0213) || (inbuf[1] == 0236)))
|
||||
+ {
|
||||
+ printk( KERN_NOTICE "detected gzip initramfs\n");
|
||||
+ crc = (ulg)0xffffffffL; /* shift register contents */
|
||||
+ makecrc();
|
||||
+ gunzip();
|
||||
+ if (state != Reset)
|
||||
error("junk in gzipped archive");
|
||||
- this_header = saved_offset + inptr;
|
||||
+ }
|
||||
+ else if(!memcmp(inbuf+1, "\x00\x00\x80\x00", 4)) /* FIXME: hardcoded dictionary size */
|
||||
+ {
|
||||
+ printk( KERN_NOTICE "detected lzma initramfs\n");
|
||||
+ lzma_unzip();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ // skip forward ?
|
||||
+ crc = (ulg)0xffffffffL; /* shift register contents */
|
||||
+ makecrc();
|
||||
+ gunzip();
|
||||
+ }
|
||||
+ this_header = saved_offset + inptr;
|
||||
buf += inptr;
|
||||
len -= inptr;
|
||||
}
|
||||
--- a/scripts/gen_initramfs_list.sh
|
||||
+++ b/scripts/gen_initramfs_list.sh
|
||||
@@ -287,7 +287,7 @@ if [ ! -z ${output_file} ]; then
|
||||
if [ "${is_cpio_compressed}" = "compressed" ]; then
|
||||
cat ${cpio_tfile} > ${output_file}
|
||||
else
|
||||
- cat ${cpio_tfile} | gzip -f -9 - > ${output_file}
|
||||
+ lzma e -lc1 -lp2 -pb2 ${cpio_tfile} ${output_file}
|
||||
fi
|
||||
[ -z ${cpio_file} ] && rm ${cpio_tfile}
|
||||
fi
|
Loading…
Reference in New Issue
Block a user