This list is closed, nobody may subscribe to it.
2004 |
Jan
(53) |
Feb
(78) |
Mar
(34) |
Apr
(26) |
May
(25) |
Jun
(34) |
Jul
(16) |
Aug
(16) |
Sep
(2) |
Oct
(58) |
Nov
(13) |
Dec
(32) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(62) |
Feb
(4) |
Mar
(40) |
Apr
(9) |
May
(13) |
Jun
(26) |
Jul
(32) |
Aug
(24) |
Sep
(18) |
Oct
(18) |
Nov
(14) |
Dec
|
2006 |
Jan
(15) |
Feb
(2) |
Mar
(23) |
Apr
(2) |
May
(2) |
Jun
(13) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2007 |
Jan
(1) |
Feb
(45) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(31) |
Dec
(5) |
2008 |
Jan
(6) |
Feb
(34) |
Mar
(113) |
Apr
(40) |
May
(19) |
Jun
(5) |
Jul
(41) |
Aug
(13) |
Sep
(53) |
Oct
(4) |
Nov
(53) |
Dec
|
2009 |
Jan
(1) |
Feb
(29) |
Mar
(66) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(163) |
Nov
|
Dec
(91) |
From: Albert H. <he...@us...> - 2008-03-26 20:15:29
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/configs In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv22420/arch/powerpc/configs Modified Files: gamecube_defconfig wii_defconfig Log Message: Remove old ugecon driver (we use now usbgecko_udbg). Rewrite the following drivers as of_platform drivers using the device tree: - gcn-rsw - starlet-ipc - gcn-aram - rvl-mem2 - gcn-di - exi-driver, exi-hw - gcn-si - gcnfb (gcn-vifb) - gcn-ai Marked as broken gcn-mi and gcngx. Updated defconfigs. Index: wii_defconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/configs/wii_defconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- wii_defconfig 18 Mar 2008 18:57:14 -0000 1.2 +++ wii_defconfig 26 Mar 2008 20:14:54 -0000 1.3 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.24 -# Tue Mar 18 19:19:03 2008 +# Tue Mar 25 23:28:40 2008 # # CONFIG_PPC64 is not set @@ -153,10 +153,12 @@ # CONFIG_MPC7448HPC2 is not set # CONFIG_PPC_HOLLY is not set # CONFIG_PPC_PRPMC2800 is not set -CONFIG_GAMECUBE=y -CONFIG_GAMECUBE_WII=y -CONFIG_GAMECUBE_RESET=y -CONFIG_USBGECKO_EARLY_CONSOLE=y +# CONFIG_GAMECUBE is not set +CONFIG_WII=y +CONFIG_FLIPPER_PIC=y +CONFIG_GAMECUBE_COMMON=y +CONFIG_GAMECUBE_RSW=y +CONFIG_USBGECKO_UDBG=y # CONFIG_MPIC is not set # CONFIG_MPIC_WEIRD is not set # CONFIG_PPC_I8259 is not set @@ -338,73 +340,7 @@ # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_CMDLINE_PARTS is not set - -# -# User Modules And Translation Layers -# -# CONFIG_MTD_CHAR is not set -CONFIG_MTD_BLKDEVS=y -# CONFIG_MTD_BLOCK is not set -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_RAM=y -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PLATRAM=y - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_SLRAM is not set -CONFIG_MTD_PHRAM=y -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# UBI - Unsorted block images -# -# CONFIG_MTD_UBI is not set +# CONFIG_MTD is not set CONFIG_OF_DEVICE=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y @@ -423,7 +359,6 @@ # CONFIG_ATA_OVER_ETH is not set CONFIG_MISC_DEVICES=y CONFIG_GAMECUBE_GQR=y -CONFIG_GAMECUBE_MI=m # CONFIG_EEPROM_93CX6 is not set # CONFIG_IDE is not set @@ -566,10 +501,9 @@ # CONFIG_I2C is not set # -# EXI (Expansion Interface) support +# EXI support # CONFIG_GAMECUBE_EXI=y -CONFIG_GAMECUBE_RTC=y # # SPI support @@ -629,7 +563,6 @@ # CONFIG_FB_VGA16 is not set # CONFIG_FB_S1D13XXX is not set CONFIG_FB_GAMECUBE=y -CONFIG_FB_GAMECUBE_GX=y # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set @@ -654,7 +587,6 @@ # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_CLUT224 is not set -CONFIG_LOGO_GAMECUBE_CLUT224=y # # Sound @@ -701,7 +633,7 @@ # ALSA PowerPC devices # CONFIG_SND_GAMECUBE=y -CONFIG_SND_GAMECUBE_MIC=y +# CONFIG_SND_GAMECUBE_MIC is not set # # System on Chip audio support @@ -721,10 +653,58 @@ # CONFIG_HID_DEBUG is not set # CONFIG_HIDRAW is not set # CONFIG_USB_SUPPORT is not set -# CONFIG_MMC is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set + +# +# MMC/SD Host Controller Drivers +# +# CONFIG_MMC_WBSD is not set +CONFIG_MMC_STARLET=y # CONFIG_NEW_LEDS is not set # CONFIG_EDAC is not set -# CONFIG_RTC_CLASS is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_V3020 is not set +CONFIG_RTC_DRV_GCN=y + +# +# on-CPU RTC drivers +# # # Userspace I/O @@ -801,7 +781,6 @@ # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_JFFS2_FS is not set CONFIG_CRAMFS=y # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set @@ -941,7 +920,18 @@ # CONFIG_DEBUGGER is not set # CONFIG_BDI_SWITCH is not set # CONFIG_BOOTX_TEXT is not set -# CONFIG_PPC_EARLY_DEBUG is not set +CONFIG_PPC_EARLY_DEBUG=y +# CONFIG_PPC_EARLY_DEBUG_LPAR is not set +# CONFIG_PPC_EARLY_DEBUG_G5 is not set +# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set +# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set +# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set +# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set +# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set +# CONFIG_PPC_EARLY_DEBUG_BEAT is not set +# CONFIG_PPC_EARLY_DEBUG_44x is not set +# CONFIG_PPC_EARLY_DEBUG_CPM is not set +CONFIG_PPC_EARLY_DEBUG_USBGECKO=y # # Security options Index: gamecube_defconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/configs/gamecube_defconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gamecube_defconfig 4 Mar 2008 06:20:55 -0000 1.1 +++ gamecube_defconfig 26 Mar 2008 20:14:54 -0000 1.2 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.24 -# Tue Mar 4 06:45:23 2008 +# Tue Mar 25 23:55:17 2008 # # CONFIG_PPC64 is not set @@ -154,9 +154,11 @@ # CONFIG_PPC_HOLLY is not set # CONFIG_PPC_PRPMC2800 is not set CONFIG_GAMECUBE=y -# CONFIG_GAMECUBE_WII is not set -CONFIG_GAMECUBE_RESET=y -CONFIG_USBGECKO_EARLY_CONSOLE=y +# CONFIG_WII is not set +CONFIG_FLIPPER_PIC=y +CONFIG_GAMECUBE_COMMON=y +CONFIG_GAMECUBE_RSW=y +CONFIG_USBGECKO_UDBG=y # CONFIG_MPIC is not set # CONFIG_MPIC_WEIRD is not set # CONFIG_PPC_I8259 is not set @@ -358,7 +360,6 @@ # CONFIG_ATA_OVER_ETH is not set CONFIG_MISC_DEVICES=y CONFIG_GAMECUBE_GQR=y -CONFIG_GAMECUBE_MI=m # CONFIG_EEPROM_93CX6 is not set # CONFIG_IDE is not set @@ -493,7 +494,7 @@ CONFIG_LEGACY_PTY_COUNT=256 # CONFIG_IPMI_HANDLER is not set # CONFIG_HW_RANDOM is not set -CONFIG_NVRAM=y +# CONFIG_NVRAM is not set CONFIG_GEN_RTC=y # CONFIG_GEN_RTC_X is not set # CONFIG_R3964 is not set @@ -502,10 +503,9 @@ # CONFIG_I2C is not set # -# EXI (Expansion Interface) support +# EXI support # CONFIG_GAMECUBE_EXI=y -CONFIG_GAMECUBE_RTC=y # # SPI support @@ -565,7 +565,6 @@ # CONFIG_FB_VGA16 is not set # CONFIG_FB_S1D13XXX is not set CONFIG_FB_GAMECUBE=y -CONFIG_FB_GAMECUBE_GX=y # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set @@ -660,7 +659,40 @@ # CONFIG_MMC is not set # CONFIG_NEW_LEDS is not set # CONFIG_EDAC is not set -# CONFIG_RTC_CLASS is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_V3020 is not set +CONFIG_RTC_DRV_GCN=y + +# +# on-CPU RTC drivers +# # # Userspace I/O @@ -876,7 +908,18 @@ # CONFIG_DEBUGGER is not set # CONFIG_BDI_SWITCH is not set # CONFIG_BOOTX_TEXT is not set -# CONFIG_PPC_EARLY_DEBUG is not set +CONFIG_PPC_EARLY_DEBUG=y +# CONFIG_PPC_EARLY_DEBUG_LPAR is not set +# CONFIG_PPC_EARLY_DEBUG_G5 is not set +# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set +# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set +# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set +# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set +# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set +# CONFIG_PPC_EARLY_DEBUG_BEAT is not set +# CONFIG_PPC_EARLY_DEBUG_44x is not set +# CONFIG_PPC_EARLY_DEBUG_CPM is not set +CONFIG_PPC_EARLY_DEBUG_USBGECKO=y # # Security options |
From: Albert H. <he...@us...> - 2008-03-26 20:09:10
|
Update of /cvsroot/gc-linux/linux/drivers/net In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv21598/drivers/net Modified Files: Kconfig Log Message: Take into account the new CONFIG_GAMECUBE semantics. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/Kconfig,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Kconfig 4 Mar 2008 06:08:06 -0000 1.30 +++ Kconfig 26 Mar 2008 20:09:05 -0000 1.31 @@ -274,8 +274,8 @@ will be called bmac. config GAMECUBE_BBA - tristate "Nintendo GameCube BroadBand Adapter (ethernet) support" - depends on GAMECUBE && GAMECUBE_EXI && !GAMECUBE_WII + tristate "Nintendo GameCube ethernet BroadBand Adapter (BBA)" + depends on GAMECUBE_EXI && GAMECUBE help Say Y here to add ethernet support for the Broadband Adapter (BBA). |
From: Albert H. <he...@us...> - 2008-03-26 20:06:36
|
Update of /cvsroot/gc-linux/linux/drivers/block In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv19111/drivers/block Modified Files: Kconfig Log Message: More CONFIG_GAMECUBE changes. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/Kconfig,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Kconfig 4 Mar 2008 06:06:07 -0000 1.30 +++ Kconfig 26 Mar 2008 20:06:36 -0000 1.31 @@ -66,8 +66,8 @@ module will be called z2ram. config GAMECUBE_DI - tristate "Nintendo Gamecube (alternate) DVD support" - depends on GAMECUBE && !GAMECUBE_WII + tristate "Nintendo GameCube Drive Interface (DI)" + depends on GAMECUBE help This enables support for using DVD-R media on the Nintendo GameCube DVD drive. @@ -88,8 +88,8 @@ module will be called gcn-dvd config GAMECUBE_ARAM - tristate "Nintendo GameCube ARAM" - depends on GAMECUBE && !GAMECUBE_WII + tristate "Nintendo GameCube Auxiliary RAM (ARAM)" + depends on GAMECUBE help This enables support for using the 16MB of ARAM found in the Nintendo GameCube as a ramdisk or as a swap partition. @@ -99,7 +99,7 @@ module will be called gcn-aram. config GAMECUBE_MEMCARD - tristate "Nintendo GameCube memory card (EXPERIMENTAL)" + tristate "Nintendo GameCube/Wii memory card (EXPERIMENTAL)" depends on GAMECUBE_EXI && EXPERIMENTAL && BROKEN help This enables support for using memory cards compatible with the @@ -110,8 +110,8 @@ module will be called gcn-memcard. config GAMECUBE_SD - tristate "Nintendo GameCube SD and MMC memory card (EXPERIMENTAL)" - depends on GAMECUBE_EXI && EXPERIMENTAL + tristate "Nintendo GameCube/Wii MMC/SD card" + depends on GAMECUBE_EXI help This enables support for using SD and MMC cards through the Nintendo SD Card Adapter (DOL-019) or compatible hardware. @@ -129,7 +129,7 @@ config WII_MEM2 tristate "Nintendo Wii MEM2" - depends on GAMECUBE_WII + depends on WII help This enables support for using the MEM2 found in the Nintendo Wii as a ramdisk or as a swap partition. |
From: Albert H. <he...@us...> - 2008-03-26 20:04:57
|
Update of /cvsroot/gc-linux/linux/sound/ppc In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/sound/ppc Modified Files: Kconfig Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/Kconfig,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Kconfig 19 Nov 2007 17:53:30 -0000 1.14 +++ Kconfig 26 Mar 2008 20:02:32 -0000 1.15 @@ -54,18 +54,17 @@ default "2000" config SND_GAMECUBE - tristate "Nintendo GameCube (Flipper)" - depends on SND && GAMECUBE + tristate "Nintendo GameCube/Wii" + depends on SND && GAMECUBE_COMMON help - Say Y here to add audio support for the "Flipper" Graphics - and Sound processor as found in the GameCube from Nintendo. + Say Y here to include support for audio on the Nintendo GameCube/Wii. To compile this driver as a module, choose M here: the module will be called snd-gcn. config SND_GAMECUBE_MIC tristate "Nintendo GameCube Microphone (DOL-022)" - depends on SND && GAMECUBE && GAMECUBE_EXI && EXPERIMENTAL + depends on SND && GAMECUBE_EXI && EXPERIMENTAL help If you say yes to this option, support will be included for the Nintendo GameCube Microphone (DOL-022). |
From: Albert H. <he...@us...> - 2008-03-26 20:04:57
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/drivers/video Modified Files: Kconfig Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/Kconfig,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- Kconfig 24 Feb 2008 18:05:33 -0000 1.26 +++ Kconfig 26 Mar 2008 20:02:28 -0000 1.27 @@ -1617,8 +1617,8 @@ and maybe other boards. config FB_GAMECUBE - bool "Nintendo GameCube frame buffer" - depends on FB && GAMECUBE + bool "Nintendo GameCube/Wii frame buffer" + depends on FB && GAMECUBE_COMMON select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT @@ -1627,7 +1627,7 @@ config FB_GAMECUBE_GX bool "Nintendo GameCube hardware accelerated graphics support" - depends on FB_GAMECUBE + depends on FB_GAMECUBE && GAMECUBE && BROKEN help Say Y here to support the 3D hardware found in the Nintendo GameCube. |
From: Albert H. <he...@us...> - 2008-03-26 20:03:00
|
Update of /cvsroot/gc-linux/linux/arch/powerpc In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/arch/powerpc Modified Files: Kconfig Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/Kconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig 4 Mar 2008 06:20:54 -0000 1.1 +++ Kconfig 26 Mar 2008 20:02:26 -0000 1.2 @@ -469,7 +469,7 @@ || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \ || PPC_PS3 default y if !40x && !CPM2 && !8xx && !PPC_83xx \ - && !PPC_85xx && !PPC_86xx && !GAMECUBE + && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON default PCI_PERMEDIA if !4xx && !CPM2 && !8xx default PCI_QSPAN if !4xx && !CPM2 && 8xx select ARCH_SUPPORTS_MSI |
From: Albert H. <he...@us...> - 2008-03-26 20:02:58
|
Update of /cvsroot/gc-linux/linux/drivers/input/si In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/drivers/input/si Modified Files: Kconfig Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/si/Kconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig 6 Jul 2005 16:46:44 -0000 1.1 +++ Kconfig 26 Mar 2008 20:02:28 -0000 1.2 @@ -3,8 +3,8 @@ # config GAMECUBE_SI - tristate "Serial Interface (SI) support" - depends on GAMECUBE + tristate "Nintendo GameCube/Wii Serial Interface (SI) support" + depends on GAMECUBE_COMMON ---help--- Say Y here if you want to use the standard pads as joysticks or want to use a keyboard. Everything is autodetected. |
From: Albert H. <he...@us...> - 2008-03-26 20:02:58
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/arch/powerpc/platforms Modified Files: Kconfig.cputype Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Kconfig.cputype =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/Kconfig.cputype,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig.cputype 4 Mar 2008 06:20:55 -0000 1.1 +++ Kconfig.cputype 26 Mar 2008 20:02:27 -0000 1.2 @@ -226,13 +226,9 @@ default "32" if PPC64 default "4" -# Although 750CXe (Gekko) seems to be cache coherent capable, the GAMECUBE -# does not maintain cache coherency with respect to dma enabled devices -# like the BBA, DI, ARAM, etc. -# We need Y here if we want a working kernel dma api. config NOT_COHERENT_CACHE bool - depends on 4xx || 8xx || E200 || GAMECUBE + depends on 4xx || 8xx || E200 || GAMECUBE_COMMON default y config CHECK_CACHE_COHERENCY |
From: Albert H. <he...@us...> - 2008-03-26 20:02:58
|
Update of /cvsroot/gc-linux/linux/drivers/exi In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/drivers/exi Modified Files: Kconfig Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/Kconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Kconfig 15 Aug 2005 20:35:40 -0000 1.2 +++ Kconfig 26 Mar 2008 20:02:28 -0000 1.3 @@ -2,30 +2,19 @@ # Nintendo GameCube EXI (Expansion Interface) support. # -if GAMECUBE +if GAMECUBE_COMMON -menu "EXI (Expansion Interface) support" +menu "EXI support" config GAMECUBE_EXI - bool "EXI (Expansion Interface) support (EXPERIMENTAL)" - depends on EXPERIMENTAL + bool "Nintendo GameCube/Wii External Interface (EXI)" default y help - On the Expansion Interface sit the memory card slots, + On the External Interface sit the memory card slots, serial ports I & II, the Mask ROM, RTC, SRAM and UART. If in doubt, say Y here. -config GAMECUBE_RTC - bool "Real Time Clock and SRAM support" - depends on GAMECUBE_EXI - default y - help - If you say yes to this option, support will be included for the - Real Time Clock and SRAM of the Nintendo GameCube. - - If in doubt, say Y here. - endmenu endif |
From: Albert H. <he...@us...> - 2008-03-26 20:02:58
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/arch/powerpc/platforms/embedded6xx Modified Files: Kconfig Makefile Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 18 Mar 2008 18:57:16 -0000 1.2 +++ Makefile 26 Mar 2008 20:02:27 -0000 1.3 @@ -5,7 +5,9 @@ obj-$(CONFIG_LINKSTATION) += linkstation.o ls_uart.o obj-$(CONFIG_PPC_HOLLY) += holly.o obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o -obj-$(CONFIG_GAMECUBE) += gamecube.o -obj-$(CONFIG_GAMECUBE_WII) += starlet-ipc.o starlet-stm.o -obj-$(CONFIG_GAMECUBE_RESET) += gcn-rsw.o -obj-$(CONFIG_USBGECKO_EARLY_CONSOLE) += ugecon.o +obj-$(CONFIG_FLIPPER_PIC) += flipper-pic.o +obj-$(CONFIG_GAMECUBE) += gamecube.o gamecube_dev.o +obj-$(CONFIG_WII) += wii.o wii_dev.o \ + starlet-ipc.o starlet-stm.o +obj-$(CONFIG_GAMECUBE_RSW) += gcn-rsw.o +obj-$(CONFIG_USBGECKO_UDBG) += usbgecko_udbg.o Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/Kconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig 4 Mar 2008 06:20:55 -0000 1.1 +++ Kconfig 26 Mar 2008 20:02:27 -0000 1.2 @@ -49,17 +49,19 @@ config GAMECUBE bool "Nintendo-GameCube" depends on EMBEDDED6xx - select NOT_COHERENT_CACHE + select GAMECUBE_COMMON select WANT_DEVICE_TREE help Select GAMECUBE if configuring for the Nintendo GameCube. More information at: <http://gc-linux.sourceforge.net/> -config GAMECUBE_WII +config WII bool "Nintendo-Wii" - depends on GAMECUBE + depends on EMBEDDED6xx + select GAMECUBE_COMMON + select WANT_DEVICE_TREE help - Select GAMECUBE_WII if configuring for the Nintendo Wii. + Select WII if configuring for the Nintendo Wii. More information at: <http://gc-linux.sourceforge.net/> config TSI108_BRIDGE @@ -91,23 +93,37 @@ bool "Enable MPC10x store gathering" depends on MPC10X_BRIDGE -config GAMECUBE_RESET - bool "Nintendo GameCube reset button" - depends on GAMECUBE +config FLIPPER_PIC + bool + default n + +config GAMECUBE_COMMON + bool + select FLIPPER_PIC + select NOT_COHERENT_CACHE + default n + +config GAMECUBE_RSW + bool "Nintendo GameCube/Wii reset switch/button" + depends on GAMECUBE_COMMON default y help If you say yes to this option, support will be included for the - reset button of the Nintendo GameCube. + reset switch/button of the Nintendo GameCube/Wii. If in doubt, say Y here. -config USBGECKO_EARLY_CONSOLE - bool "Enable USB Gecko early console" - depends on GAMECUBE +config USBGECKO_UDBG + bool "USB Gecko udbg console for the Nintendo GameCube/Wii" + depends on GAMECUBE_COMMON default n help - If you say yes to this option, support will be included for - the USB Gecko adapter as an early console. + If you say yes to this option, support will be included for the + USB Gecko adapter as an udbg console. + The USB Gecko is an USB serial-to-spi converter that can be plugged + into a memcard slot in the Nintendo GameCube/Wii. + + This driver bypasses the EXI layer completely. If in doubt, say N here. |
From: Albert H. <he...@us...> - 2008-03-26 20:02:58
|
Update of /cvsroot/gc-linux/linux/drivers/misc In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv15088/drivers/misc Modified Files: Kconfig Log Message: Use CONFIG_GAMECUBE_COMMON to denote common code between gamecube and wii. Use CONFIG_GAMECUBE for the gamecube platform. Use CONFIG_WII for the wii platform. Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/misc/Kconfig,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Kconfig 24 Feb 2008 18:05:32 -0000 1.9 +++ Kconfig 26 Mar 2008 20:02:28 -0000 1.10 @@ -14,19 +14,17 @@ if MISC_DEVICES config GAMECUBE_GQR - tristate "Device driver for Gamecube Gekko GQR" - depends on GAMECUBE - default m + tristate "Nintendo GameCube/Wii Graphic Quantization Registers (GQR)" + depends on GAMECUBE_COMMON ---help--- - This option enables device driver support for the Gekko processor's - Graphic Quantization Registers. These registers are used with the - psql and psqst instrutions. The registers will appear in - /proc/sys/gqr. + This option enables device driver support for the Gekko/Broadway + processor's Graphic Quantization Registers. + These registers are used with the psql and psqst instrutions. + The registers will appear in /proc/sys/gqr. config GAMECUBE_MI - tristate "Nintendo GameCube Memory Interface" - depends on GAMECUBE - default n + tristate "Nintendo GameCube Memory Interface (MI)" + depends on GAMECUBE && BROKEN help If you say yes to this option, support will be included for the Memory Interface (MI) of the Nintendo GameCube. |
From: Albert H. <he...@us...> - 2008-03-26 19:58:25
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/boot In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv10959/arch/powerpc/boot Modified Files: Makefile gamecube.c Log Message: Simplify bootwrapper. Moved out ugecon code. The zImage.gamecube target is used for both gamecube and wii platforms. Index: gamecube.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/gamecube.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gamecube.c 4 Mar 2008 06:20:54 -0000 1.1 +++ gamecube.c 26 Mar 2008 19:58:28 -0000 1.2 @@ -1,7 +1,7 @@ /* * arch/powerpc/boot/gamecube.c * - * Nintendo GameCube boot + * Nintendo GameCube/Wii platforms * Copyright (C) 2004-2008 The GameCube Linux Team * Copyright (C) 2008 Albert Herranz * @@ -18,13 +18,10 @@ #include "io.h" #include "ops.h" -/* - * Note that CONFIG_* defines are not available at this stage, except: - * - CONFIG_USBGECKO_EARLY_CONSOLE - * - CONFIG_GAMECUBE_WII - */ +#include "ugecon.h" -BSS_STACK(4096); + +BSS_STACK(8192); /* * We enter with the MMU enabled and some legacy memory mappings active. @@ -65,157 +62,31 @@ b _zimage_start_lib\n\ "); -#ifdef CONFIG_USBGECKO_EARLY_CONSOLE - -#ifdef CONFIG_GAMECUBE_WII -#define EXI_BASE (0xcd006800) -#else -#define EXI_BASE (0xcc006800) -#endif - -#define EXI_CHANNEL_SPACING 0x14 - -#define EXI_IO_BASE(c) ((void *)(EXI_BASE + ((c)*EXI_CHANNEL_SPACING))) - -#define EXI_CLK_32MHZ 5 - -#define EXI_CSR 0x00 -#define EXI_CSR_CLKMASK (0x7<<4) -#define EXI_CSR_CLK_32MHZ (EXI_CLK_32MHZ<<4) -#define EXI_CSR_CSMASK (0x7<<7) -#define EXI_CSR_CS_0 (0x1<<7) /* Chip Select 001 */ - -#define EXI_CR 0x0c -#define EXI_CR_TSTART (1<<0) -#define EXI_CR_WRITE (1<<2) -#define EXI_CR_READ_WRITE (2<<2) -#define EXI_CR_TLEN(len) (((len)-1)<<4) - -#define EXI_DATA 0x10 - - -/* - * - */ -static int ug_check_adapter(void) -{ - u32 *csr_reg = EXI_IO_BASE(1) + EXI_CSR; - u32 *data_reg = EXI_IO_BASE(1) + EXI_DATA; - u32 *cr_reg = EXI_IO_BASE(1) + EXI_CR; - u32 csr, data, cr; - - /* select */ - csr = EXI_CSR_CLK_32MHZ | EXI_CSR_CS_0; - out_be32(csr_reg, csr); - - /* read/write */ - data = 0x90000000; - out_be32(data_reg, data); - cr = EXI_CR_TLEN(2) | EXI_CR_READ_WRITE | EXI_CR_TSTART; - out_be32(cr_reg, cr); - - while(in_be32(cr_reg) & EXI_CR_TSTART) - barrier(); - - /* deselect */ - out_be32(csr_reg, 0); - - data = in_be32(data_reg); - return (data == 0x04700000); -} - -/* - * - */ -static int ug_is_txfifo_empty(void) -{ - u32 *csr_reg = EXI_IO_BASE(1) + EXI_CSR; - u32 *data_reg = EXI_IO_BASE(1) + EXI_DATA; - u32 *cr_reg = EXI_IO_BASE(1) + EXI_CR; - u32 csr, data, cr; - - /* select */ - csr = EXI_CSR_CLK_32MHZ | EXI_CSR_CS_0; - out_be32(csr_reg, csr); - - /* read/write */ - data = 0xC0000000; - out_be32(data_reg, data); - cr = EXI_CR_TLEN(2) | EXI_CR_READ_WRITE | EXI_CR_TSTART; - out_be32(cr_reg, cr); - - while(in_be32(cr_reg) & EXI_CR_TSTART) - barrier(); - - /* deselect */ - out_be32(csr_reg, 0); - - data = in_be32(data_reg); - return (data & 0x04000000); -} - /* * */ -static void ug_putc(char ch) -{ - u32 *csr_reg = EXI_IO_BASE(1) + EXI_CSR; - u32 *data_reg = EXI_IO_BASE(1) + EXI_DATA; - u32 *cr_reg = EXI_IO_BASE(1) + EXI_CR; - u32 csr, data, cr; - - /* select */ - csr = EXI_CSR_CLK_32MHZ | EXI_CSR_CS_0; - out_be32(csr_reg, csr); - - /* write */ - data = 0xb0000000 | (ch << 20); - out_be32(data_reg, data); - cr = EXI_CR_TLEN(2) | EXI_CR_WRITE | EXI_CR_TSTART; - out_be32(cr_reg, cr); - - while(in_be32(cr_reg) & EXI_CR_TSTART) - barrier(); - - /* deselect */ - out_be32(csr_reg, 0); -} - -/* - * - */ -void ug_early_putc(char ch) -{ - int tries = 10; - while(!ug_is_txfifo_empty() && tries--) - barrier(); - ug_putc(ch); -} - - static void gamecube_console_write(const char *buf, int len) { char *b = (char *)buf; while(len--) { if (*b == '\n') - ug_early_putc('\r'); - ug_early_putc(*b++); + ug_putc('\r'); + ug_putc(*b++); } } -#endif /* CONFIG_USBGECKO_EARLY_CONSOLE */ - +/* + * + */ void platform_init(unsigned long r3, unsigned long r4, unsigned long r5) { - u32 heapsize = 0x01654000 - (u32)_end; - -#ifdef CONFIG_USBGECKO_EARLY_CONSOLE - if (ug_check_adapter()) - console_ops.write = gamecube_console_write; -#endif + u32 heapsize = 16*1024*1024 - (u32)_end; simple_alloc_init(_end, heapsize, 32, 64); ft_init(_dtb_start, 0, 4); + + if (!ug_grab_io_base() && ug_is_adapter_present()) + console_ops.write = gamecube_console_write; } Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 4 Mar 2008 06:20:54 -0000 1.1 +++ Makefile 26 Mar 2008 19:58:28 -0000 1.2 @@ -35,13 +35,6 @@ BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) -extra-defs-$(CONFIG_GAMECUBE) += -DCONFIG_GAMECUBE -extra-defs-$(CONFIG_GAMECUBE_WII) += -DCONFIG_GAMECUBE_WII -extra-defs-$(CONFIG_USBGECKO_EARLY_CONSOLE) += -DCONFIG_USBGECKO_EARLY_CONSOLE - -BOOTCFLAGS += $(extra-defs-y) -BOOTAFLAGS += $(extra-defs-y) - $(obj)/4xx.o: BOOTCFLAGS += -mcpu=440 $(obj)/ebony.o: BOOTCFLAGS += -mcpu=440 $(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405 @@ -58,15 +51,12 @@ gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \ mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ - fsl-soc.c mpc8xx.c pq2.c + fsl-soc.c mpc8xx.c pq2.c ugecon.c src-plat := of.c cuboot-52xx.c cuboot-83xx.c cuboot-85xx.c holly.c \ cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ treeboot-bamboo.c cuboot-8xx.c \ cuboot-pq2.c cuboot-sequoia.c cuboot-bamboo.c \ - fixed-head.S ep88xc.c cuboot-hpc2.c - -src-plat-$(CONFIG_GAMECUBE) += gamecube.c -src-plat += $(src-plat-y) + fixed-head.S ep88xc.c cuboot-hpc2.c gamecube.c src-boot := $(src-wlib) $(src-plat) empty.c @@ -157,6 +147,7 @@ image-$(CONFIG_PPC_PRPMC2800) += zImage.prpmc2800 image-$(CONFIG_PPC_ISERIES) += zImage.iseries image-$(CONFIG_GAMECUBE) += zImage.gamecube +image-$(CONFIG_WII) += zImage.gamecube image-$(CONFIG_DEFAULT_UIMAGE) += uImage ifneq ($(CONFIG_DEVICE_TREE),"") |
From: Albert H. <he...@us...> - 2008-03-26 19:53:55
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/kernel In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv8480/arch/powerpc/kernel Removed Files: machine_kexec.c Log Message: Get rid of machine_kexec.c hack. We now properly avoid the crashkernel reservation through device tree settings. --- machine_kexec.c DELETED --- |
From: Albert H. <he...@us...> - 2008-03-26 19:52:21
|
Update of /cvsroot/gc-linux/linux/include/asm-powerpc In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv7171/include/asm-powerpc Added Files: udbg.h Log Message: Added USB Gecko based udbg console, suitable for early debug too. --- NEW FILE: udbg.h --- /* * (c) 2001, 2006 IBM Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _ASM_POWERPC_UDBG_H #define _ASM_POWERPC_UDBG_H #ifdef __KERNEL__ #include <linux/compiler.h> #include <linux/init.h> extern void (*udbg_putc)(char c); extern int (*udbg_getc)(void); extern int (*udbg_getc_poll)(void); extern void udbg_puts(const char *s); extern int udbg_write(const char *s, int n); extern int udbg_read(char *buf, int buflen); extern void register_early_udbg_console(void); extern void udbg_printf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); extern void udbg_progress(char *s, unsigned short hex); extern void udbg_init_uart(void __iomem *comport, unsigned int speed, unsigned int clock); extern unsigned int udbg_probe_uart_speed(void __iomem *comport, unsigned int clock); struct device_node; extern void udbg_scc_init(int force_scc); extern int udbg_adb_init(int force_btext); extern void udbg_adb_init_early(void); extern void __init udbg_early_init(void); extern void __init udbg_init_debug_lpar(void); extern void __init udbg_init_pmac_realmode(void); extern void __init udbg_init_maple_realmode(void); extern void __init udbg_init_pas_realmode(void); extern void __init udbg_init_iseries(void); extern void __init udbg_init_rtas_panel(void); extern void __init udbg_init_rtas_console(void); extern void __init udbg_init_debug_beat(void); extern void __init udbg_init_btext(void); extern void __init udbg_init_44x_as1(void); extern void __init udbg_init_cpm(void); extern void __init udbg_init_debug_usbgecko(void); #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_UDBG_H */ |
From: Albert H. <he...@us...> - 2008-03-26 19:51:12
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv5134/arch/powerpc/platforms/embedded6xx Added Files: wii.c wii_dev.c Log Message: Added wii platform, specifically. The platform now: - uses flipper-pic - uses device tree for configuration settings - populates platform devices from device tree instead of drivers --- NEW FILE: wii_dev.c --- /* * arch/powerpc/platforms/embedded6xx/wii_dev.c * * Nintendo Wii platform device setup. * Copyright (C) 2008 The GameCube Linux Team * Copyright (C) 2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/of_platform.h> #include <asm/machdep.h> static struct of_device_id wii_of_bus[] = { { .compatible = "nintendo,hollywood", }, { }, }; /* * */ static int __init wii_device_probe(void) { struct device_node *np; if (!machine_is(wii)) return 0; of_platform_bus_probe(NULL, wii_of_bus, NULL); np = of_find_compatible_node(NULL, NULL, "nintendo,mem2"); if (np) { of_platform_device_create(np, NULL, NULL); of_node_put(np); } return 0; } device_initcall(wii_device_probe); --- NEW FILE: wii.c --- /* * arch/powerpc/platforms/embedded6xx/wii.c * * Nintendo Wii board-specific support * Copyright (C) 2008 The GameCube Linux Team * Copyright (C) 2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/irq.h> #include <linux/seq_file.h> #include <linux/kexec.h> #include <asm/io.h> #include <asm/machdep.h> #include <asm/prom.h> #include <asm/time.h> #include <asm/starlet.h> #include <asm/udbg.h> #include "flipper-pic.h" #include "usbgecko_udbg.h" static void wii_restart(char *cmd) { starlet_stm_restart(); local_irq_disable(); /* spin until power button pressed */ for (;;) cpu_relax(); } static void wii_power_off(void) { starlet_stm_power_off(); local_irq_disable(); /* spin until power button pressed */ for (;;) cpu_relax(); } static void wii_halt(void) { wii_restart(NULL); } static void wii_show_cpuinfo(struct seq_file *m) { seq_printf(m, "vendor\t\t: IBM\n"); seq_printf(m, "machine\t\t: Nintendo Wii\n"); } static void wii_setup_arch(void) { } static void __init wii_init_early(void) { ug_udbg_init(); } static int __init wii_probe(void) { unsigned long dt_root; dt_root = of_get_flat_dt_root(); if (!of_flat_dt_is_compatible(dt_root, "nintendo,wii")) return 0; return 1; } #ifdef CONFIG_KEXEC static void wii_shutdown(void) { /* currently not used */ } static int wii_kexec_prepare(struct kimage *image) { return 0; } #endif /* CONFIG_KEXEC */ define_machine(wii) { .name = "wii", .probe = wii_probe, .setup_arch = wii_setup_arch, .init_early = wii_init_early, .show_cpuinfo = wii_show_cpuinfo, .restart = wii_restart, .power_off = wii_power_off, .halt = wii_halt, .init_IRQ = flipper_pic_probe, .get_irq = flipper_pic_get_irq, .calibrate_decr = generic_calibrate_decr, .progress = udbg_progress, #ifdef CONFIG_KEXEC .machine_shutdown = wii_shutdown, .machine_kexec_prepare = wii_kexec_prepare, .machine_kexec = default_machine_kexec, #endif }; |
From: Albert H. <he...@us...> - 2008-03-26 19:51:12
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/boot/dts In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv5134/arch/powerpc/boot/dts Modified Files: wii.dts Log Message: Added wii platform, specifically. The platform now: - uses flipper-pic - uses device tree for configuration settings - populates platform devices from device tree instead of drivers Index: wii.dts =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/dts/wii.dts,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- wii.dts 4 Mar 2008 06:20:54 -0000 1.1 +++ wii.dts 26 Mar 2008 19:51:04 -0000 1.2 @@ -7,18 +7,24 @@ / { model = "NintendoWii"; - compatible = "nintendo,gamecube"; + compatible = "nintendo,wii"; #address-cells = <1>; #size-cells = <1>; chosen { bootargs = "root=/dev/ram0 video=gcnfb:tv=auto ip=192.168.001.047:192.168.001.253:192.168.001.251 force_keyboard_port=4"; + + linux,crashkernel-base = <0>; + linux,crashkernel-size = <0>; + + linux,stdout-path = "/exi@0d006800/usbgecko@0d006814"; }; memory { device_type = "memory"; /* 24M - framebuffer - fifo - kexec, 00000000-01653fff */ - reg = <00000000 01654000>; + reg = <00000000 01654000 /* only 1st range is used */ + 10000000 04000000>; }; cpus { @@ -26,7 +32,7 @@ #address-cells = <1>; #size-cells = <0>; - PowerPC,gekko@0 { + PowerPC,broadway@0 { device_type = "cpu"; reg = <0>; clock-frequency = <2b73a840>; /* 729MHz */ @@ -40,5 +46,80 @@ }; }; + hollywood_pic: pic@0c003000 { + #interrupt-cells = <1>; + compatible = "nintendo,flipper-pic"; + reg = <0c003000 8>; + interrupt-controller; + }; + + mem2 { + compatible = "nintendo,mem2"; + reg = <10000000 3400000>; /* 52M of MEM2 RAM */ + }; + + exi@0d006800 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "nintendo,exi"; + reg = <0d006800 40>; + interrupts = <04>; + interrupt-parent = <&hollywood_pic>; + + udbg_console: usbgecko@0d006814 { + compatible = "usbgecko,usbgecko"; + reg = <0d006814 14>; + virtual-reg = <cd006814>; + }; + }; + + hollywood { + #address-cells = <1>; + #size-cells = <1>; + #interrupt-cells = <1>; + model = "hollywood"; + compatible = "nintendo,hollywood"; + clock-frequency = <e7be2c0>; /* 243MHz */ + ranges = <0c000000 0c000000 00010000 + 0d000000 0d000000 00010000>; + + vifb@0c002000 { + compatible = "nintendo,vifb"; + reg = <0c002000 100>; + interrupts = <08>; + interrupt-parent = <&hollywood_pic>; + xfb-start = <01698000>; /* end-of-ram - xfb-size */ + xfb-size = <168000>; + }; + + rsw@0c003000 { + compatible = "nintendo,rsw"; + reg = <0c003000 4>; + interrupts = <01>; + interrupt-parent = <&hollywood_pic>; + }; + + ai@0c005000 { + compatible = "nintendo,ai"; + reg = <0c005000 200 /* DSP */ + 0d006c00 20>; /* AI */ + interrupts = <06>; + interrupt-parent = <&hollywood_pic>; + }; + + starlet-ipc@0d000000 { + compatible = "nintendo,starlet-ipc"; + reg = <0d000000 40>; + interrupts = <0e>; + interrupt-parent = <&hollywood_pic>; + }; + + si@0d006400 { + compatible = "nintendo,si"; + reg = <0d006400 100>; + interrupts = <03>; + interrupt-parent = <&hollywood_pic>; + }; + }; }; |
From: Albert H. <he...@us...> - 2008-03-26 19:48:46
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/boot/dts In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2492/arch/powerpc/boot/dts Modified Files: gamecube.dts Log Message: Updated gamecube platform to: - use flipper-pic - use device tree for configuration settings - populate platform devices from device tree instead of drivers - be more ARCH=powerpc friendly Index: gamecube.dts =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/boot/dts/gamecube.dts,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gamecube.dts 4 Mar 2008 06:20:54 -0000 1.1 +++ gamecube.dts 26 Mar 2008 19:48:47 -0000 1.2 @@ -12,7 +12,12 @@ #size-cells = <1>; chosen { - bootargs = "root=/dev/ram0 video=gcnfb:tv=auto ip=192.168.001.047:192.168.001.253:192.168.001.251 force_keyboard_port=4"; + //bootargs = "root=/dev/ram0 video=gcn-vifb:tv=auto ip=192.168.001.047:192.168.001.253:192.168.001.251 force_keyboard_port=4"; + bootargs = "root=/dev/nfs nfsroot=192.168.001.253:/nfsroot/cube video=gcn-vifb:tv=auto ip=192.168.001.047:192.168.001.253:192.168.001.251 force_keyboard_port=4"; + linux,crashkernel-base = <0>; + linux,crashkernel-size = <0>; + + linux,stdout-path = "/exi@0c006800/usbgecko@0c006814"; }; memory { @@ -40,5 +45,81 @@ }; }; + flipper_pic: pic@0c003000 { + #interrupt-cells = <1>; + compatible = "nintendo,flipper-pic"; + reg = <0c003000 8>; + interrupt-controller; + }; + + exi@0c006800 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "nintendo,exi"; + reg = <0c006800 40>; + interrupts = <04>; + interrupt-parent = <&flipper_pic>; + + udbg_console: usbgecko@0c006814 { + compatible = "usbgecko,usbgecko"; + reg = <0c006814 14>; + virtual-reg = <cc006814>; + }; + }; + + flipper@0c000000 { + #address-cells = <1>; + #size-cells = <1>; + #interrupt-cells = <1>; + model = "flipper"; + compatible = "nintendo,flipper"; + clock-frequency = <9a7ec80>; /* 162MHz */ + ranges = <0c000000 0c000000 00010000>; + + vifb@0c002000 { + compatible = "nintendo,vifb"; + reg = <0c002000 100>; + interrupts = <08>; + interrupt-parent = <&flipper_pic>; + xfb-start = <01698000>; /* end-of-ram - xfb-size */ + xfb-size = <168000>; + }; + + rsw@0c003000 { + compatible = "nintendo,rsw"; + reg = <0c003000 4>; + interrupts = <01>; + interrupt-parent = <&flipper_pic>; + }; + + aram@0c005000 { + compatible = "nintendo,aram"; + reg = <0c005000 200>; /* DSP */ + interrupts = <06>; + interrupt-parent = <&flipper_pic>; + }; + + ai@0c005000 { + compatible = "nintendo,ai"; + reg = <0c005000 200 /* DSP */ + 0c006c00 20>; /* AI */ + interrupts = <06>; + interrupt-parent = <&flipper_pic>; + }; + + di@0c006000 { + compatible = "nintendo,di"; + reg = <0c006000 40>; + interrupts = <02>; + interrupt-parent = <&flipper_pic>; + }; + + si@0c006400 { + compatible = "nintendo,si"; + reg = <0c006400 100>; + interrupts = <03>; + interrupt-parent = <&flipper_pic>; + }; + }; }; |
From: Albert H. <he...@us...> - 2008-03-26 19:48:45
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2492/arch/powerpc/platforms/embedded6xx Modified Files: gamecube.c Added Files: gamecube_dev.c Log Message: Updated gamecube platform to: - use flipper-pic - use device tree for configuration settings - populate platform devices from device tree instead of drivers - be more ARCH=powerpc friendly Index: gamecube.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/gamecube.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gamecube.c 18 Mar 2008 18:57:17 -0000 1.2 +++ gamecube.c 26 Mar 2008 19:48:45 -0000 1.3 @@ -15,95 +15,34 @@ #include <linux/kernel.h> #include <linux/init.h> #include <linux/irq.h> -#include <linux/initrd.h> -#include <linux/seq_file.h> #include <linux/kexec.h> +#include <linux/seq_file.h> #include <asm/io.h> -#include <asm/time.h> -#include <asm/bitops.h> #include <asm/machdep.h> -#include <asm/pgtable.h> #include <asm/prom.h> -#include <asm/lmb.h> - -#include <asm/starlet.h> - -#include "gamecube.h" -#include "ugecon.h" - -/* - * These are used in setup_arch. * - */ -#define CSR_REG ((void __iomem *)(GCN_IO1_BASE+0x500A)) -#define DSP_CSR_PIINT (1<<1) -#define DSP_CSR_AIDINT (1<<3) -#define DSP_CSR_ARINT (1<<5) -#define DSP_CSR_DSPINT (1<<7) - -#define AUDIO_DMA_LENGTH ((void __iomem *)(GCN_IO1_BASE+0x5036)) -#define AI_DCL_PLAY (1<<15) - - - -static void __init gamecube_progress(char *s, unsigned short hex) -{ -#ifdef CONFIG_USBGECKO_EARLY_CONSOLE - if (s) - ug_early_puts(s); - ug_early_puts("\n"); -#endif -} - -/* - * FIXME - * We have to get rid of these mappings and move to ioremap. - */ - -extern int map_page(unsigned long va, phys_addr_t pa, int flags); - -static void dirty_io_block_mapping(unsigned long va, phys_addr_t pa, - unsigned int size, int flags) -{ - int i; - - for (i = 0; i < size; i += PAGE_SIZE) - map_page(va + i, pa + i, flags); -} - -static void gamecube_setup_io_mappings(void) -{ -#ifdef CONFIG_GAMECUBE_DEBUG_CONSOLE - /* mapping for the debug console framebuffer */ - dirty_io_block_mapping(0xd0000000, 0, 0x02000000, _PAGE_IO); -#endif +#include <asm/time.h> +#include <asm/udbg.h> - /* access to hardware registers */ -#ifdef CONFIG_GAMECUBE_WII - dirty_io_block_mapping(0xcd000000, 0x0d000000, 0x00010000, _PAGE_IO); -#endif - dirty_io_block_mapping(0xcc000000, 0x0c000000, 0x00010000, _PAGE_IO); -} +#include "flipper-pic.h" +#include "usbgecko_udbg.h" static void gamecube_restart(char *cmd) { -#ifdef CONFIG_GAMECUBE_WII - starlet_stm_restart(); -#else local_irq_disable(); - out_8(FLIPPER_RESET, 0x00); -#endif + flipper_platform_reset(); + /* spin until power button pressed */ + for (;;) + cpu_relax(); } static void gamecube_power_off(void) { -#ifdef CONFIG_GAMECUBE_WII - starlet_stm_power_off(); - /* falldown */ -#endif local_irq_disable(); - for (;;); /* spin until power button pressed */ + /* spin until power button pressed */ + for (;;) + cpu_relax(); } static void gamecube_halt(void) @@ -111,65 +50,6 @@ gamecube_restart(NULL); } -static unsigned int gamecube_get_irq(void) -{ - int irq; - u32 irq_status; - - irq_status = in_be32(FLIPPER_ICR) & in_be32(FLIPPER_IMR); - if (irq_status == 0) - return -1; /* no more IRQs pending */ - - __asm __volatile ("cntlzw %0,%1": "=r"(irq) : "r"(irq_status)); - - return (31 - irq); -} - -static void flipper_mask_and_ack_irq(unsigned int irq) -{ - clear_bit(irq, FLIPPER_IMR); - set_bit(irq, FLIPPER_ICR); -} - -static void flipper_mask_irq(unsigned int irq) -{ - clear_bit(irq, FLIPPER_IMR); -} - -static void flipper_unmask_irq(unsigned int irq) -{ - set_bit(irq, FLIPPER_IMR); -} - -static void flipper_end_irq(unsigned int irq) -{ - if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)) - && irq_desc[irq].action) - flipper_unmask_irq(irq); -} - -static struct hw_interrupt_type flipper_pic = { - .typename = "flipper-pic", - .enable = flipper_unmask_irq, - .disable = flipper_mask_irq, - .ack = flipper_mask_and_ack_irq, - .end = flipper_end_irq, -}; - -static void gamecube_init_irq(void) -{ - int i; - - /* mask and ack all IRQs */ - out_be32(FLIPPER_IMR, 0x00000000); - out_be32(FLIPPER_ICR, 0xffffffff); - - for (i = 0; i < FLIPPER_NR_IRQS; i++) - irq_desc[i].chip = &flipper_pic; - - ppc_md.get_irq = gamecube_get_irq; -} - static void gamecube_show_cpuinfo(struct seq_file *m) { seq_printf(m, "vendor\t\t: IBM\n"); @@ -178,21 +58,11 @@ static void gamecube_setup_arch(void) { -#ifdef CONFIG_GAMECUBE_DEBUG_CONSOLE - gcn_con_init(); -#endif -#ifdef CONFIG_USBGECKO_EARLY_CONSOLE - ug_early_con_init(); -#endif +} -#if 0 - /* ack and clear the interrupts for the AI line */ - out_be16(CSR_REG, - DSP_CSR_PIINT|DSP_CSR_AIDINT|DSP_CSR_ARINT|DSP_CSR_DSPINT); - /* stop any audio */ - out_be16(AUDIO_DMA_LENGTH, - in_be16(AUDIO_DMA_LENGTH) & ~AI_DCL_PLAY); -#endif +static void __init gamecube_init_early(void) +{ + ug_udbg_init(); } static int __init gamecube_probe(void) @@ -219,19 +89,19 @@ #endif /* CONFIG_KEXEC */ - define_machine(gamecube) { .name = "gamecube", .probe = gamecube_probe, .setup_arch = gamecube_setup_arch, - .setup_io_mappings = gamecube_setup_io_mappings, + .init_early = gamecube_init_early, .show_cpuinfo = gamecube_show_cpuinfo, - .init_IRQ = gamecube_init_irq, - .calibrate_decr = generic_calibrate_decr, .restart = gamecube_restart, .power_off = gamecube_power_off, .halt = gamecube_halt, - .progress = gamecube_progress, + .init_IRQ = flipper_pic_probe, + .get_irq = flipper_pic_get_irq, + .calibrate_decr = generic_calibrate_decr, + .progress = udbg_progress, #ifdef CONFIG_KEXEC .machine_shutdown = gamecube_shutdown, .machine_kexec_prepare = gamecube_kexec_prepare, --- NEW FILE: gamecube_dev.c --- /* * arch/powerpc/platforms/embedded6xx/gamecube_dev.c * * Nintendo GameCube platform device setup. * Copyright (C) 2008 The GameCube Linux Team * Copyright (C) 2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/of_platform.h> #include <asm/machdep.h> static struct of_device_id gamecube_of_bus[] = { { .compatible = "nintendo,flipper", }, { }, }; /* * */ static int __init gamecube_device_probe(void) { if (!machine_is(gamecube)) return 0; of_platform_bus_probe(NULL, gamecube_of_bus, NULL); return 0; } device_initcall(gamecube_device_probe); |
From: Albert H. <he...@us...> - 2008-03-26 19:45:11
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/boot In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv798/arch/powerpc/boot Added Files: ugecon.c ugecon.h Log Message: Added USB Gecko based bootwrapper console. --- NEW FILE: ugecon.h --- /* * arch/powerpc/boot/ugecon.h * * USB Gecko early bootwrapper console. * Copyright (C) 2008 The GameCube Linux Team * Copyright (C) 2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #ifndef __UGECON_H #define __UGECON_H extern int ug_grab_io_base(void); extern int ug_is_adapter_present(void); extern void ug_putc(char ch); #endif /* __UGECON_H */ --- NEW FILE: ugecon.c --- /* * arch/powerpc/boot/ugecon.c * * USB Gecko early bootwrapper console. * Copyright (C) 2008 The GameCube Linux Team * Copyright (C) 2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <stddef.h> #include "stdio.h" #include "types.h" #include "io.h" #include "ops.h" #define EXI_CLK_32MHZ 5 #define EXI_CSR 0x00 #define EXI_CSR_CLKMASK (0x7<<4) #define EXI_CSR_CLK_32MHZ (EXI_CLK_32MHZ<<4) #define EXI_CSR_CSMASK (0x7<<7) #define EXI_CSR_CS_0 (0x1<<7) /* Chip Select 001 */ #define EXI_CR 0x0c #define EXI_CR_TSTART (1<<0) #define EXI_CR_WRITE (1<<2) #define EXI_CR_READ_WRITE (2<<2) #define EXI_CR_TLEN(len) (((len)-1)<<4) #define EXI_DATA 0x10 /* virtual address base for input/output, retrieved from device tree */ static void *ug_io_base; static u32 ug_io_transaction(u32 in) { u32 *csr_reg = ug_io_base + EXI_CSR; u32 *data_reg = ug_io_base + EXI_DATA; u32 *cr_reg = ug_io_base + EXI_CR; u32 csr, data, cr; /* select */ csr = EXI_CSR_CLK_32MHZ | EXI_CSR_CS_0; out_be32(csr_reg, csr); /* read/write */ data = in; out_be32(data_reg, data); cr = EXI_CR_TLEN(2) | EXI_CR_READ_WRITE | EXI_CR_TSTART; out_be32(cr_reg, cr); while(in_be32(cr_reg) & EXI_CR_TSTART) barrier(); /* deselect */ out_be32(csr_reg, 0); data = in_be32(data_reg); return data; } static int ug_is_txfifo_ready(void) { return (ug_io_transaction(0xc0000000) & 0x04000000); } static void ug_raw_putc(char ch) { ug_io_transaction(0xb0000000 | (ch << 20)); } void ug_putc(char ch) { int count = 16; if (!ug_io_base) return; while(!ug_is_txfifo_ready() && count--) barrier(); if (count) ug_raw_putc(ch); } int ug_is_adapter_present(void) { if (!ug_io_base) return 0; return (ug_io_transaction(0x90000000) == 0x04700000); } int ug_grab_io_base(void) { u32 v; void *devp; devp = finddevice("/exi/usbgecko"); if (devp == NULL) goto err_out; if (getprop(devp, "virtual-reg", &v, sizeof(v)) != sizeof(v)) goto err_out; ug_io_base = (u8 *)v; return 0; err_out: return -1; } |
From: Albert H. <he...@us...> - 2008-03-26 19:44:11
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/kernel In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv31847/arch/powerpc/kernel Added Files: udbg.c Log Message: Added USB Gecko based udbg console, suitable for early debug too. --- NEW FILE: udbg.c --- /* * polling mode stateless debugging stuff, originally for NS16550 Serial Ports * * c 2001 PPC 64 Team, IBM Corp * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #include <stdarg.h> #include <linux/types.h> #include <linux/sched.h> #include <linux/console.h> #include <linux/init.h> #include <asm/processor.h> #include <asm/udbg.h> void (*udbg_putc)(char c); int (*udbg_getc)(void); int (*udbg_getc_poll)(void); /* * Early debugging facilities. You can enable _one_ of these via .config, * if you do so your kernel _will not boot_ on anything else. Be careful. */ void __init udbg_early_init(void) { #if defined(CONFIG_PPC_EARLY_DEBUG_LPAR) /* For LPAR machines that have an HVC console on vterm 0 */ udbg_init_debug_lpar(); #elif defined(CONFIG_PPC_EARLY_DEBUG_G5) /* For use on Apple G5 machines */ udbg_init_pmac_realmode(); #elif defined(CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL) /* RTAS panel debug */ udbg_init_rtas_panel(); #elif defined(CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE) /* RTAS console debug */ udbg_init_rtas_console(); #elif defined(CONFIG_PPC_EARLY_DEBUG_MAPLE) /* Maple real mode debug */ udbg_init_maple_realmode(); #elif defined(CONFIG_PPC_EARLY_DEBUG_ISERIES) /* For iSeries - hit Ctrl-x Ctrl-x to see the output */ udbg_init_iseries(); #elif defined(CONFIG_PPC_EARLY_DEBUG_BEAT) udbg_init_debug_beat(); #elif defined(CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE) udbg_init_pas_realmode(); #elif defined(CONFIG_BOOTX_TEXT) udbg_init_btext(); #elif defined(CONFIG_PPC_EARLY_DEBUG_44x) /* PPC44x debug */ udbg_init_44x_as1(); #elif defined(CONFIG_PPC_EARLY_DEBUG_CPM) udbg_init_cpm(); #elif defined(CONFIG_PPC_EARLY_DEBUG_USBGECKO) udbg_init_debug_usbgecko(); #endif } /* udbg library, used by xmon et al */ void udbg_puts(const char *s) { if (udbg_putc) { char c; if (s && *s != '\0') { while ((c = *s++) != '\0') udbg_putc(c); } } #if 0 else { printk("%s", s); } #endif } int udbg_write(const char *s, int n) { int remain = n; char c; if (!udbg_putc) return 0; if (s && *s != '\0') { while (((c = *s++) != '\0') && (remain-- > 0)) { udbg_putc(c); } } return n - remain; } int udbg_read(char *buf, int buflen) { char *p = buf; int i, c; if (!udbg_getc) return 0; for (i = 0; i < buflen; ++i) { do { c = udbg_getc(); if (c == -1 && i == 0) return -1; } while (c == 0x11 || c == 0x13); if (c == 0 || c == -1) break; *p++ = c; } return i; } #define UDBG_BUFSIZE 256 void udbg_printf(const char *fmt, ...) { char buf[UDBG_BUFSIZE]; va_list args; va_start(args, fmt); vsnprintf(buf, UDBG_BUFSIZE, fmt, args); udbg_puts(buf); va_end(args); } void __init udbg_progress(char *s, unsigned short hex) { udbg_puts(s); udbg_puts("\n"); } /* * Early boot console based on udbg */ static void udbg_console_write(struct console *con, const char *s, unsigned int n) { udbg_write(s, n); } static struct console udbg_console = { .name = "udbg", .write = udbg_console_write, .flags = CON_PRINTBUFFER | CON_ENABLED | CON_BOOT, .index = -1, }; static int early_console_initialized; /* * Called by setup_system after ppc_md->probe and ppc_md->early_init. * Call it again after setting udbg_putc in ppc_md->setup_arch. */ void __init register_early_udbg_console(void) { if (early_console_initialized) return; if (!udbg_putc) return; if (strstr(boot_command_line, "udbg-immortal")) { printk(KERN_INFO "early console immortal !\n"); udbg_console.flags &= ~CON_BOOT; } early_console_initialized = 1; register_console(&udbg_console); } #if 0 /* if you want to use this as a regular output console */ console_initcall(register_udbg_console); #endif |
From: Albert H. <he...@us...> - 2008-03-26 19:43:40
|
Update of /cvsroot/gc-linux/linux/arch/powerpc In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv31847/arch/powerpc Added Files: Kconfig.debug Log Message: Added USB Gecko based udbg console, suitable for early debug too. --- NEW FILE: Kconfig.debug --- menu "Kernel hacking" source "lib/Kconfig.debug" config DEBUG_STACKOVERFLOW bool "Check for stack overflows" depends on DEBUG_KERNEL help This option will cause messages to be printed if free stack space drops below a certain limit. config DEBUG_STACK_USAGE bool "Stack utilization instrumentation" depends on DEBUG_KERNEL help Enables the display of the minimum amount of free stack which each task has ever had available in the sysrq-T and sysrq-P debug output. This option will slow down process creation somewhat. config DEBUG_PAGEALLOC bool "Debug page memory allocations" depends on DEBUG_KERNEL && !HIBERNATION help Unmap pages from the kernel linear mapping after free_pages(). This results in a large slowdown, but helps to find certain types of memory corruptions. config HCALL_STATS bool "Hypervisor call instrumentation" depends on PPC_PSERIES && DEBUG_FS help Adds code to keep track of the number of hypervisor calls made and the amount of time spent in hypervisor calls. Wall time spent in each call is always calculated, and if available CPU cycles spent are also calculated. A directory named hcall_inst is added at the root of the debugfs filesystem. Within the hcall_inst directory are files that contain CPU specific call statistics. This option will add a small amount of overhead to all hypervisor calls. config DEBUGGER bool "Enable debugger hooks" depends on DEBUG_KERNEL help Include in-kernel hooks for kernel debuggers. Unless you are intending to debug the kernel, say N here. config KGDB bool "Include kgdb kernel debugger" depends on DEBUGGER && (BROKEN || PPC_GEN550 || 4xx) select DEBUG_INFO help Include in-kernel hooks for kgdb, the Linux kernel source level debugger. See <http://kgdb.sourceforge.net/> for more information. Unless you are intending to debug the kernel, say N here. choice prompt "Serial Port" depends on KGDB default KGDB_TTYS1 config KGDB_TTYS0 bool "ttyS0" config KGDB_TTYS1 bool "ttyS1" config KGDB_TTYS2 bool "ttyS2" config KGDB_TTYS3 bool "ttyS3" endchoice config KGDB_CONSOLE bool "Enable serial console thru kgdb port" depends on KGDB && 8xx || CPM2 help If you enable this, all serial console messages will be sent over the gdb stub. If unsure, say N. config XMON bool "Include xmon kernel debugger" depends on DEBUGGER help Include in-kernel hooks for the xmon kernel monitor/debugger. Unless you are intending to debug the kernel, say N here. Make sure to enable also CONFIG_BOOTX_TEXT on Macs. Otherwise nothing will appear on the screen (xmon writes directly to the framebuffer memory). The cmdline option 'xmon' or 'xmon=early' will drop into xmon very early during boot. 'xmon=on' will just enable the xmon debugger hooks. 'xmon=off' will disable the debugger hooks if CONFIG_XMON_DEFAULT is set. xmon will print a backtrace on the very first invocation. 'xmon=nobt' will disable this autobacktrace. config XMON_DEFAULT bool "Enable xmon by default" depends on XMON help xmon is normally disabled unless booted with 'xmon=on'. Use 'xmon=off' to disable xmon init during runtime. config XMON_DISASSEMBLY bool "Include disassembly support in xmon" depends on XMON default y help Include support for disassembling in xmon. You probably want to say Y here, unless you're building for a memory-constrained system. config IRQSTACKS bool "Use separate kernel stacks when processing interrupts" depends on PPC64 help If you say Y here the kernel will use separate kernel stacks for handling hard and soft interrupts. This can help avoid overflowing the process kernel stacks. config VIRQ_DEBUG bool "Expose hardware/virtual IRQ mapping via debugfs" depends on DEBUG_FS && PPC_MERGE help This option will show the mapping relationship between hardware irq numbers and virtual irq numbers. The mapping is exposed via debugfs in the file powerpc/virq_mapping. If you don't know what this means you don't need it. config BDI_SWITCH bool "Include BDI-2000 user context switcher" depends on DEBUG_KERNEL && PPC32 help Include in-kernel support for the Abatron BDI2000 debugger. Unless you are intending to debug the kernel with one of these machines, say N here. config BOOTX_TEXT bool "Support for early boot text console (BootX or OpenFirmware only)" depends on PPC_OF && PPC_MULTIPLATFORM help Say Y here to see progress messages from the boot firmware in text mode. Requires either BootX or Open Firmware. config PPC_EARLY_DEBUG bool "Early debugging (dangerous)" choice prompt "Early debugging console" depends on PPC_EARLY_DEBUG help Use the selected console for early debugging. Careful, if you enable debugging for the wrong type of machine your kernel _will not boot_. config PPC_EARLY_DEBUG_LPAR bool "LPAR HV Console" depends on PPC_PSERIES help Select this to enable early debugging for a machine with a HVC console on vterm 0. config PPC_EARLY_DEBUG_G5 bool "Apple G5" depends on PPC_PMAC64 help Select this to enable early debugging for Apple G5 machines. config PPC_EARLY_DEBUG_RTAS_PANEL bool "RTAS Panel" depends on PPC_RTAS help Select this to enable early debugging via the RTAS panel. config PPC_EARLY_DEBUG_RTAS_CONSOLE bool "RTAS Console" depends on PPC_RTAS select UDBG_RTAS_CONSOLE help Select this to enable early debugging via the RTAS console. config PPC_EARLY_DEBUG_MAPLE bool "Maple real mode" depends on PPC_MAPLE help Select this to enable early debugging for Maple. config PPC_EARLY_DEBUG_ISERIES bool "iSeries HV Console" depends on PPC_ISERIES help Select this to enable early debugging for legacy iSeries. You need to hit "Ctrl-x Ctrl-x" to see the messages on the console. config PPC_EARLY_DEBUG_PAS_REALMODE bool "PA Semi real mode" depends on PPC_PASEMI help Select this to enable early debugging for PA Semi. Output will be on UART0. config PPC_EARLY_DEBUG_BEAT bool "Beat HV Console" depends on PPC_CELLEB select PPC_UDBG_BEAT help Select this to enable early debugging for Celleb with Beat. config PPC_EARLY_DEBUG_44x bool "Early serial debugging for IBM/AMCC 44x CPUs" depends on 44x help Select this to enable early debugging for IBM 44x chips via the inbuilt serial port. config PPC_EARLY_DEBUG_CPM bool "Early serial debugging for Freescale CPM-based serial ports" depends on SERIAL_CPM select PIN_TLB if PPC_8xx help Select this to enable early debugging for Freescale chips using a CPM-based serial port. This assumes that the bootwrapper has run, and set up the CPM in a particular way. config PPC_EARLY_DEBUG_USBGECKO bool "Early debugging through the USB Gecko adapter" depends on GAMECUBE_COMMON select USBGECKO_UDBG help Select this to enable early debugging for Nintendo GameCube/Wii consoles via an external USB Gecko adapter. endchoice config PPC_EARLY_DEBUG_44x_PHYSLOW hex "Low 32 bits of early debug UART physical address" depends on PPC_EARLY_DEBUG_44x default "0x40000200" config PPC_EARLY_DEBUG_44x_PHYSHIGH hex "EPRN of early debug UART physical address" depends on PPC_EARLY_DEBUG_44x default "0x1" config PPC_EARLY_DEBUG_CPM_ADDR hex "CPM UART early debug transmit descriptor address" depends on PPC_EARLY_DEBUG_CPM default "0xfa202008" if PPC_EP88XC default "0xf0000008" if CPM2 default "0xff002008" if CPM1 help This specifies the address of the transmit descriptor used for early debug output. Because it is needed before platform probing is done, all platforms selected must share the same address. endmenu |
From: Albert H. <he...@us...> - 2008-03-26 19:39:43
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/kernel In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv28622/arch/powerpc/kernel Modified Files: head_32.S Log Message: Added USB Gecko based udbg console, suitable for early debug too. Index: head_32.S =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/kernel/head_32.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- head_32.S 4 Mar 2008 06:20:55 -0000 1.1 +++ head_32.S 26 Mar 2008 19:39:41 -0000 1.2 @@ -152,13 +152,8 @@ #ifdef CONFIG_PPC_EARLY_DEBUG_CPM bl setup_cpm_bat #endif -#ifdef CONFIG_GAMECUBE - /* setup a block address translation register for early i/o */ - bl setup_gcn_bat - /* flush cache before relocation, first 24MB */ - li r3,0 - lis r4,0x0180 - bl flush_dcache_range +#ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO + bl setup_usbgecko_bat #endif /* @@ -1269,19 +1264,19 @@ blr #endif -#ifdef CONFIG_GAMECUBE -setup_gcn_bat: +#ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO +setup_usbgecko_bat: /* prepare a BAT for early io */ lis r8, 0x0c00 /* DBAT3 for IO mem */ ori r8, r8, 0x002a /* uncached, guarded ,rw */ lis r11, 0xcc00 /* DBAT3 for IO mem */ ori r11, r11, 0x3 /* 128K */ -#ifdef CONFIG_GAMECUBE_WII +#ifdef CONFIG_WII oris r8, r8, 0x0100 oris r11, r11, 0x0100 #endif - mtspr SPRN_DBAT3L, r8 - mtspr SPRN_DBAT3U, r11 + mtspr SPRN_DBAT1L, r8 + mtspr SPRN_DBAT1U, r11 sync isync blr |
From: Albert H. <he...@us...> - 2008-03-26 19:39:42
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv28622/arch/powerpc/platforms/embedded6xx Added Files: usbgecko_udbg.c Log Message: Added USB Gecko based udbg console, suitable for early debug too. --- NEW FILE: usbgecko_udbg.c --- /* * arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c * * udbg serial input/output routines for the USB Gecko adapter. * Copyright (C) 2008 The GameCube Linux Team * Copyright (C) 2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <asm/io.h> #include <asm/prom.h> #include <asm/udbg.h> #include <mm/mmu_decl.h> #include "usbgecko_udbg.h" #define EXI_CLK_32MHZ 5 #define EXI_CSR 0x00 #define EXI_CSR_CLKMASK (0x7<<4) #define EXI_CSR_CLK_32MHZ (EXI_CLK_32MHZ<<4) #define EXI_CSR_CSMASK (0x7<<7) #define EXI_CSR_CS_0 (0x1<<7) /* Chip Select 001 */ #define EXI_CR 0x0c #define EXI_CR_TSTART (1<<0) #define EXI_CR_WRITE (1<<2) #define EXI_CR_READ_WRITE (2<<2) #define EXI_CR_TLEN(len) (((len)-1)<<4) #define EXI_DATA 0x10 static void __iomem *ug_io_base; /* * Performs one input/output transaction between the spi host and the usbgecko. */ static u32 ug_io_transaction(u32 in) { u32 __iomem *csr_reg = ug_io_base + EXI_CSR; u32 __iomem *data_reg = ug_io_base + EXI_DATA; u32 __iomem *cr_reg = ug_io_base + EXI_CR; u32 csr, data, cr; /* select */ csr = EXI_CSR_CLK_32MHZ | EXI_CSR_CS_0; out_be32(csr_reg, csr); /* read/write */ data = in; out_be32(data_reg, data); cr = EXI_CR_TLEN(2) | EXI_CR_READ_WRITE | EXI_CR_TSTART; out_be32(cr_reg, cr); while(in_be32(cr_reg) & EXI_CR_TSTART) barrier(); /* deselect */ out_be32(csr_reg, 0); /* result */ data = in_be32(data_reg); return data; } /* * Returns true if an usbgecko adapter is found. */ static int ug_is_adapter_present(void) { if (!ug_io_base) return 0; return (ug_io_transaction(0x90000000) == 0x04700000); } /* * Returns true if the TX fifo is ready for transmission. */ static int ug_is_txfifo_ready(void) { return (ug_io_transaction(0xc0000000) & 0x04000000); } /* * Tries to transmit a character. * If the TX fifo is not ready the result is undefined. */ static void ug_raw_putc(char ch) { ug_io_transaction(0xb0000000 | (ch << 20)); } /* * Transmits a character. * It silently fails if the TX fifo is not ready after a number of retries. */ static void ug_putc(char ch) { int count = 16; if (!ug_io_base) return; if (ch == '\n') ug_putc('\r'); while(!ug_is_txfifo_ready() && count--) barrier(); if (count) ug_raw_putc(ch); } #if 0 /* * Trasmits a null terminated character string. */ static void ug_puts(char *s) { while(*s) ug_putc(*s++); } #endif /* * Returns true if the RX fifo is ready for transmission. */ static int ug_is_rxfifo_ready(void) { return (ug_io_transaction(0xd0000000) & 0x04000000); } /* * Tries to receive a character. * If a character is unavailable the function returns -1. */ static int ug_raw_getc(void) { u32 data = ug_io_transaction(0xa0000000); if (data & 0x08000000) return (data >> 16) & 0xff; else return -1; } /* * Receives a character. * It fails if the RX fifo is not ready after a number of retries. */ static int ug_getc(void) { int count = 16; if (!ug_io_base) return -1; while(!ug_is_rxfifo_ready() && count--) barrier(); return ug_raw_getc(); } /* * udbg functions. * */ /* * Transmits a character. */ static void ug_udbg_putc(char ch) { ug_putc(ch); } /* * Receives a character. Waits until a character is available. */ static int ug_udbg_getc(void) { int ch; while((ch = ug_getc()) == -1) barrier(); return ch; } /* * Receives a character. If a character is not available, returns -1. */ static int ug_udbg_getc_poll(void) { if (!ug_is_rxfifo_ready()) return -1; return ug_getc(); } /* * Retrieves and prepares the virtual address needed to access the hardware. */ static void __iomem *ug_udbg_setup_io_base(struct device_node *np) { phys_addr_t paddr; const unsigned int *reg; reg = of_get_property(np, "reg", NULL); if (reg) { paddr = of_translate_address(np, reg); if (paddr) ug_io_base = ioremap(paddr, reg[1]); } return ug_io_base; } /* * USB Gecko udbg support initialization. */ void __init ug_udbg_init(void) { struct device_node *np; struct device_node *stdout; const char *path; ug_io_base = NULL; path = of_get_property(of_chosen, "linux,stdout-path", NULL); if (!path) return; stdout = of_find_node_by_path(path); if (!stdout) return; for(np = NULL; (np = of_find_compatible_node(np, NULL, "usbgecko,usbgecko")); ) if (np == stdout) break; of_node_put(stdout); if (!np) return; ug_udbg_setup_io_base(np); if (ug_is_adapter_present()) { udbg_putc = ug_udbg_putc; udbg_getc = ug_udbg_getc; udbg_getc_poll = ug_udbg_getc_poll; } of_node_put(np); } #ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO /* * USB Gecko early udbg support initialization. * The USB Gecko must be inserted in memcard slot B for early debugging. * */ void __init udbg_init_debug_usbgecko(void) { unsigned long vaddr, paddr; #if defined(CONFIG_GAMECUBE) paddr = 0x0c000000; #elif defined(CONFIG_WII) paddr = 0x0d000000; #else #error Invalid platform for USB Gecko based early debugging. #endif vaddr = 0xc0000000 | paddr; setbat(1, vaddr, paddr, 128*1024, _PAGE_IO); ug_io_base = (void __iomem *)(vaddr | 0x6814); udbg_putc = ug_udbg_putc; udbg_getc = ug_udbg_getc; udbg_getc_poll = ug_udbg_getc_poll; } #endif /* CONFIG_PPC_EARLY_DEBUG_USBGECKO */ |
From: Albert H. <he...@us...> - 2008-03-26 19:34:22
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv22144 Added Files: flipper-pic.h flipper-pic.c Log Message: Added irq_host support for flipper-like interrupt controllers. The controller supports both flipper (gamecube) and hollywood (wii) interrupt controllers. --- NEW FILE: flipper-pic.c --- /* * arch/powerpc/platforms/embedded6xx/flipper-pic.c * * Nintendo GameCube/Wii interrupt controller support. * Copyright (C) 2004-2008 The GameCube Linux Team * Copyright (C) 2007,2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/irq.h> #include <linux/of.h> #include <asm/io.h> #include "flipper-pic.h" #define DRV_MODULE_NAME "flipper-pic" #define drv_printk(level, format, arg...) \ printk(level DRV_MODULE_NAME ": " format , ## arg) static struct irq_host *flipper_irq_host; /* * */ static void flipper_pic_mask_and_ack(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); clear_bit(irq, io_base + FLIPPER_IMR); set_bit(irq, io_base + FLIPPER_ICR); } /* * */ static void flipper_pic_ack(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); set_bit(irq, io_base + FLIPPER_ICR); } /* * */ static void flipper_pic_mask(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); clear_bit(irq, io_base + FLIPPER_IMR); } /* * */ static void flipper_pic_unmask(unsigned int virq) { int irq = virq_to_hw(virq); void __iomem *io_base = get_irq_chip_data(virq); set_bit(irq, io_base + FLIPPER_IMR); } /* * */ static struct irq_chip flipper_pic = { .typename = "flipper-pic", .ack = flipper_pic_ack, .mask_ack = flipper_pic_mask_and_ack, .mask = flipper_pic_mask, .unmask = flipper_pic_unmask, }; /* * */ static int flipper_pic_map(struct irq_host *h, unsigned int virq, irq_hw_number_t hwirq) { set_irq_chip_data(virq, h->host_data); set_irq_chip_and_handler(virq, &flipper_pic, handle_level_irq); return 0; } /* * */ static void flipper_pic_unmap(struct irq_host *h, unsigned int irq) { set_irq_chip_data(irq, NULL); set_irq_chip(irq, NULL); } /* * */ static int flipper_pic_match(struct irq_host *h, struct device_node *np) { return 1; } static struct irq_host_ops flipper_irq_host_ops = { .map = flipper_pic_map, .unmap = flipper_pic_unmap, .match = flipper_pic_match, }; /* * */ struct irq_host * __init flipper_pic_init(struct device_node *np) { struct irq_host *irq_host; struct resource res; void __iomem *io_base; int retval; retval = of_address_to_resource(np, 0, &res); if (retval) { drv_printk(KERN_ERR, "no io memory range found\n"); return NULL; } io_base = ioremap(res.start, res.end - res.start + 1); drv_printk(KERN_INFO, "controller at 0x%08x mapped to 0x%p\n", res.start, io_base); /* mask and ack all IRQs */ out_be32(io_base + FLIPPER_IMR, 0x00000000); out_be32(io_base + FLIPPER_ICR, 0xffffffff); irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, FLIPPER_NR_IRQS, &flipper_irq_host_ops, -1); if (!irq_host) { drv_printk(KERN_ERR, "failed to allocate irq_host\n"); return NULL; } irq_host->host_data = io_base; return irq_host; } /* * */ unsigned int flipper_pic_get_irq(void) { void __iomem *io_base = flipper_irq_host->host_data; int irq; u32 irq_status; irq_status = in_be32(io_base + FLIPPER_ICR) & in_be32(io_base + FLIPPER_IMR); if (irq_status == 0) return -1; /* no more IRQs pending */ __asm __volatile ("cntlzw %0,%1": "=r"(irq) : "r"(irq_status)); return irq_linear_revmap(flipper_irq_host, 31 - irq); } /* * */ void __init flipper_pic_probe(void) { struct device_node *np; np = of_find_compatible_node(NULL, NULL, "nintendo,flipper-pic"); BUG_ON(!np); flipper_irq_host = flipper_pic_init(np); BUG_ON(!flipper_irq_host); irq_set_default_host(flipper_irq_host); of_node_put(np); } /* * Misc functions provided by the flipper chipset. * */ /* * */ void flipper_platform_reset(void) { void __iomem *io_base; if (flipper_irq_host && flipper_irq_host->host_data) { io_base = flipper_irq_host->host_data; out_8(io_base + FLIPPER_RESET, 0x00); } } /* * Tells if the reset button is pressed. */ int flipper_is_reset_button_pressed(void) { void __iomem *io_base; u32 icr; if (flipper_irq_host && flipper_irq_host->host_data) { io_base = flipper_irq_host->host_data; icr = in_be32(io_base + FLIPPER_ICR); drv_printk(KERN_INFO, "%x\n", icr); return !(icr & FLIPPER_ICR_RSS); } return 0; } --- NEW FILE: flipper-pic.h --- /* * arch/powerpc/platforms/embedded6xx/flipper-pic.h * * Nintendo GameCube/Wii interrupt controller support. * Copyright (C) 2004-2008 The GameCube Linux Team * Copyright (C) 2007,2008 Albert Herranz * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * */ #ifndef __FLIPPER_PIC_H #define __FLIPPER_PIC_H /* * Each interrupt has a corresponding bit in both * the Interrupt Cause (ICR) and Interrupt Mask (IMR) registers. * * Enabling/disabling an interrupt line involves asserting/clearing * the corresponding bit in IMR. ACK'ing a request simply involves * asserting the corresponding bit in ICR. */ #ifdef CONFIG_WII #define FLIPPER_NR_IRQS (15) #else #define FLIPPER_NR_IRQS (14) #endif #define FLIPPER_ICR 0x00 #define FLIPPER_ICR_RSS (1<<16) /* reset switch state */ #define FLIPPER_IMR 0x04 #define FLIPPER_RESET 0x24 unsigned int flipper_pic_get_irq(void); void __init flipper_pic_probe(void); void flipper_platform_reset(void); int flipper_is_reset_button_pressed(void); #endif |
From: Anny m. <hap...@et...> - 2008-03-20 08:30:37
|
Gain more than 3+ inches in length and more than 20% in girth. http://www.cusiristom.com/ Celebrity camel toes |