From: Albert H. <he...@us...> - 2008-02-24 18:06:01
|
Update of /cvsroot/gc-linux/linux/arch/ppc/platforms In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv4818/arch/ppc/platforms Modified Files: Makefile gamecube.c gamecube.h gcn-rtc.c Log Message: Merged 2.6.24. Added usbgecko driver. Added fixes for: exi, gcn-sd, gcn-mic, gcn-gqr. Adapted: gcn-bba, gcn-gqr, gcn-rtc. Added very primitive support for the Nintendo Wii. Index: gamecube.h =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/gamecube.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- gamecube.h 24 Mar 2006 22:20:15 -0000 1.13 +++ gamecube.h 24 Feb 2008 18:05:31 -0000 1.14 @@ -2,7 +2,7 @@ * arch/ppc/platforms/gamecube.h * * Nintendo GameCube board-specific definitions - * Copyright (C) 2004-2005 The GameCube Linux Team + * Copyright (C) 2004-2008 The GameCube Linux Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -16,6 +16,15 @@ #include <asm/ppcboot.h> +#define GCN_IO1_PHYS_BASE 0x0c000000 +#ifdef CONFIG_GAMECUBE_WII +#define GCN_IO2_PHYS_BASE 0x0d000000 +#else +#define GCN_IO2_PHYS_BASE 0x0c000000 +#endif +#define GCN_IO1_BASE (0xc0000000 | GCN_IO1_PHYS_BASE) +#define GCN_IO2_BASE (0xc0000000 | GCN_IO2_PHYS_BASE) + /* * There are 14 IRQs in total. Each has a corresponding bit in both * the Interrupt Cause (ICR) and Interrupt Mask (IMR) registers. @@ -25,13 +34,13 @@ * asserting the corresponding bit in ICR. */ #define FLIPPER_NR_IRQS (14) -#define FLIPPER_ICR ((void __iomem *)0xcc003000) -#define FLIPPER_IMR ((void __iomem *)0xcc003004) +#define FLIPPER_ICR ((void __iomem *)(GCN_IO1_BASE+0x3000)) +#define FLIPPER_IMR ((void __iomem *)(GCN_IO1_BASE+0x3004)) /* * Anything written here automagically puts us through reset. */ -#define FLIPPER_RESET ((void __iomem *)0xcc003024) +#define FLIPPER_RESET ((void __iomem *)(GCN_IO1_BASE+0x3024)) /* * This is the current memory layout for the GameCube Linux port. @@ -132,8 +141,8 @@ /* * These registers control where the visible framebuffer is located. */ -#define GCN_VI_TFBL ((void __iomem *)0xcc00201c) -#define GCN_VI_BFBL ((void __iomem *)0xcc002024) +#define GCN_VI_TFBL ((void __iomem *)(GCN_IO1_BASE+0x201c)) +#define GCN_VI_BFBL ((void __iomem *)(GCN_IO1_BASE+0x2024)) /* arch/ppc/platforms/gcn-time.c */ Index: gcn-rtc.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/gcn-rtc.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gcn-rtc.c 20 Nov 2005 20:36:15 -0000 1.6 +++ gcn-rtc.c 24 Feb 2008 18:05:31 -0000 1.7 @@ -2,8 +2,8 @@ * arch/ppc/platforms/gcn-rtc.c * * Nintendo GameCube RTC/SRAM functions - * Copyright (C) 2004-2005 The GameCube Linux Team - * Copyright (C) 2005 Albert Herranz + * Copyright (C) 2004-2008 The GameCube Linux Team + * Copyright (C) 2005,2008 Albert Herranz * * Based on gamecube_time.c from Torben Nielsen. * @@ -157,7 +157,7 @@ /** * Platform specific function to return the current date and time. */ -static unsigned long gcn_get_rtc_time(void) +unsigned long gcn_get_rtc_time(void) { struct rtc_private *priv = &rtc_private; @@ -168,7 +168,7 @@ * Platform specific function to set the current date and time. * */ -static int gcn_set_rtc_time(unsigned long nowtime) +int gcn_set_rtc_time(unsigned long nowtime) { struct rtc_private *priv = &rtc_private; Index: gamecube.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/gamecube.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- gamecube.c 16 Nov 2007 23:26:06 -0000 1.40 +++ gamecube.c 24 Feb 2008 18:05:31 -0000 1.41 @@ -2,7 +2,7 @@ * arch/ppc/platforms/gamecube.c * * Nintendo GameCube board-specific support - * Copyright (C) 2004-2005 The GameCube Linux Team + * Copyright (C) 2004-2008 The GameCube Linux Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -40,7 +40,7 @@ /* * These are used in setup_arch. * */ -#define CSR_REG ((void __iomem *)0xCC00500A) +#define CSR_REG ((void __iomem *)(GCN_IO1_BASE+0x500A)) #define DSP_CSR_RES (1<<0) #define DSP_CSR_PIINT (1<<1) #define DSP_CSR_HALT (1<<2) @@ -53,7 +53,7 @@ #define DSP_CSR_DSPDMA (1<<9) #define DSP_CSR_RESETXXX (1<<11) -#define AUDIO_DMA_LENGTH ((void __iomem *)0xCC005036) +#define AUDIO_DMA_LENGTH ((void __iomem *)(GCN_IO1_BASE+0x5036)) #define AI_DCL_PLAY (1<<15) static unsigned long __init gamecube_find_end_of_memory(void) @@ -68,7 +68,10 @@ #endif /* access to hardware registers */ - io_block_mapping(0xcc000000, 0x0c000000, 0x00100000, _PAGE_IO); + io_block_mapping(GCN_IO1_BASE, GCN_IO1_PHYS_BASE, 0x00100000, _PAGE_IO); +#if GCN_IO1_BASE != GCN_IO2_BASE + io_block_mapping(GCN_IO2_BASE, GCN_IO2_PHYS_BASE, 0x00100000, _PAGE_IO); +#endif } static void __init gamecube_calibrate_decr(void) @@ -177,13 +180,11 @@ static int gamecube_show_cpuinfo(struct seq_file *m) { seq_printf(m, "vendor\t\t: IBM\n"); +#ifdef CONFIG_GAMECUBE_WII + seq_printf(m, "machine\t\t: Nintendo Wii\n"); +#else seq_printf(m, "machine\t\t: Nintendo GameCube\n"); - seq_printf(m, "cpu MHz\t\t: 486\n"); - seq_printf(m, "clock\t\t: 486MHz\n"); - seq_printf(m, "cache size\t: 256 KB\n"); - seq_printf(m, "bus speed\t: 162 MHz\n"); - seq_printf(m, "mem bus speed\t: 200 MHz\n"); - seq_printf(m, "bus width\t: 64 bit\n"); +#endif return 0; } Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/Makefile,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- Makefile 30 Apr 2007 17:06:11 -0000 1.24 +++ Makefile 24 Feb 2008 18:05:31 -0000 1.25 @@ -2,10 +2,6 @@ # Makefile for the linux kernel. # -obj-$(CONFIG_APUS) += apus_setup.o -ifeq ($(CONFIG_APUS),y) -obj-$(CONFIG_PCI) += apus_pci.o -endif obj-$(CONFIG_PPC_PREP) += prep_pci.o prep_setup.o obj-$(CONFIG_PREP_RESIDUAL) += residual.o obj-$(CONFIG_PQ2ADS) += pq2ads.o |