Are you using the stock 2.3.99-pre7-pre8 or the maintained version from http://www.fsmlabs.com/linuxppcbk.html? Some of these problems are taken care of and I'd to know which ar still lingering around.
The ppc_ksyms.c patch won't work in some cases since we have other debuggers that load as modules (other than xmon/kgdb built-in) and need these symbols. Why the ADB_PMU ifdefs? Do you have a case where you don't need that code but it's built in? } Greetings, } } An on-and-off effort since yesterday finally got 2.3.99pre7-8 to boot } this morning, the attached patch was necessary. } } Why am I building 2.3? The main reason is that it will finally support } my Cirrus-Logic-based MacPicasso 540 video card. So let's start with } that. } } * clgenfb doesn't start on PPC, it oopses in vga16_init (after } guessing the board has 32 MB RAM when it has 4). I've sent the } ksymoops output to linux-fbdev, so the author is aware of the } problem. Built as a module, insmod hangs the system with the same } message, minus the oops. (For some reason I can't figure out, gcc } gave me a parse error on the LINUX_VERSION_CODE #ifs, so I had to } make them #if 0 and #if 1.) } * atyfb still doesn't support Xfb with accels properly, same problems } as 2.2. A new one: xscreensaver reports: "X SERVER BUG: 1152x864 } viewport at 289,-291 is impossible" } * The ide-pmac.c, mac_keyb.c, pmac_setup.c and ppc_ksyms.c patch } hunks correct minor oversights, configuration permutations not } anticipated by the authors. } * include/asm-ppc/string.h needs those function prototypes, since } include/linux/string.h doesn't provide them when __HAVE_ARCH_* is } defined. Contrary to my post yesterday, those __HAVE_ARCH_* flags } are necessary to prevent lib/string.c from conflicting with } arch/ppc/lib/string.S. } * The dmasound_awacs hunk is from Ani Joshi; built as a module it } can't install without nvram, so drivers/sound/Config.in should make } Mac DMA sound depend on CONFIG_NVRAM. (I don't know if that will } make sound work, it's building with nvram at home now, I'll test it } tonight.) } * SCSI generic on MESH seems to be broken in the same way as it is in } 2.2. (Is there an egcs .deb somewhere, or gcc272, or will I have } to wait for the next compiler release in woody? It's annoying to } have SCSI generic broken on Debian PPC because of a compiler } problem.) } * The big showstopper for me is that PPP doesn't work. Chat dials } just fine, but as soon as it sends the password to my ISP, the } connection goes down. In /var/log/messages, chat indicates it's } sent the password, pppd prints "Serial connection established." and } then exits with SIGHUP. } * A GNOME session from gdm kills X when I move the mouse during } ssh-password-gnome, but this may be a sound issue, I'll test with } working dmasound later (hopefully). } } So, that's what I know... I'll report again tonight after testing sound } with nvram built in. } } -Adam P. } } --- drivers/ide/ide-pmac.c.bak Tue May 9 12:11:32 2000 } +++ drivers/ide/ide-pmac.c Tue May 9 12:12:57 2000 } @@ -402,11 +402,11 @@ } feature_clear(np, FEATURE_IDE0_reset); } break; } case 1: } - feature_set(np, FEATURE_Mediabay_IDE_reset); } + feature_set(np, FEATURE_IDE1_reset); } mdelay(10); } - feature_set(np, FEATURE_Mediabay_IDE_enable); } + feature_set(np, FEATURE_IDE1_enable); } mdelay(10); } - feature_clear(np, FEATURE_Mediabay_IDE_reset); } + feature_clear(np, FEATURE_IDE1_reset); } break; } case 2: } /* This one exists only for KL, I don't know about any } --- drivers/sound/dmasound/dmasound_awacs.c.bak Tue May 9 19:04:34 2000 } +++ drivers/sound/dmasound/dmasound_awacs.c Tue May 9 19:11:06 2000 } @@ -17,6 +17,7 @@ } #include <linux/adb.h> } #include <linux/nvram.h> } #include <linux/vt_kern.h> } +#include <linux/pmu.h> } #include <linux/cuda.h> } } #include <asm/uaccess.h> } @@ -24,6 +25,8 @@ } #include <asm/machdep.h> } #include <asm/io.h> } #include <asm/dbdma.h> } +#include <asm/feature.h> } +#include <asm/irq.h> } } #include "awacs_defs.h" } #include "dmasound.h" } @@ -1586,9 +1589,8 @@ } case SOUND_MIXER_READ_DEVMASK: } data = SOUND_MASK_VOLUME | SOUND_MASK_SPEAKER } | SOUND_MASK_LINE | SOUND_MASK_MIC } - | SOUND_MASK_CD | SOUND_MASK_RECLEV } - | SOUND_MASK_ALTPCM } - | SOUND_MASK_MONITOR; } + | SOUND_MASK_CD | SOUND_MASK_ALTPCM } + | SOUND_MASK_RECLEV; } return IOCTL_OUT(arg, data); } case SOUND_MIXER_READ_RECMASK: } data = SOUND_MASK_LINE | SOUND_MASK_MIC } --- drivers/macintosh/mac_keyb.c.bak Tue May 9 20:33:07 2000 } +++ drivers/macintosh/mac_keyb.c Tue May 9 20:39:37 2000 } @@ -586,7 +586,9 @@ } #endif /* CONFIG_ADBMOUSE */ } } /* XXX Needs to get rid of this, see comments in pmu.c */ } +#ifdef CONFIG_ADB_PMU } extern int backlight_level; } +#endif } } static void } buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int autopoll) } @@ -627,7 +629,7 @@ } /* brightness decrease */ } case 0xa: } /* down event */ } -#ifdef CONFIG_PPC } +#ifdef CONFIG_ADB_PMU } if ( data[1] == (data[1]&0xf) ) { } if (backlight_level > 2) } pmu_set_brightness(backlight_level-2); } @@ -639,7 +641,7 @@ } /* brightness increase */ } case 0x9: } /* down event */ } -#ifdef CONFIG_PPC } +#ifdef CONFIG_ADB_PMU } if ( data[1] == (data[1]&0xf) ) { } if (backlight_level < 0x1e) } pmu_set_brightness(backlight_level+2); } --- arch/ppc/kernel/pmac_setup.c.bak Tue May 9 21:50:32 2000 } +++ arch/ppc/kernel/pmac_setup.c Tue May 9 21:52:25 2000 } @@ -506,7 +506,9 @@ } struct adb_request req; } #endif /* CONFIG_ADB_CUDA */ } } +#ifdef CONFIG_NVRAM } pmac_nvram_update(); } +#endif } } switch (sys_ctrler) { } #ifdef CONFIG_ADB_CUDA } @@ -533,7 +535,9 @@ } struct adb_request req; } #endif /* CONFIG_ADB_CUDA */ } } +#ifdef CONFIG_NVRAM } pmac_nvram_update(); } +#endif } } switch (sys_ctrler) { } #ifdef CONFIG_ADB_CUDA } --- drivers/video/clgenfb.c.bak Tue May 9 22:24:03 2000 } +++ drivers/video/clgenfb.c Tue May 9 22:27:21 2000 } @@ -78,7 +78,7 @@ } */ } } /* enable debug output? */ } -/* #define CLGEN_DEBUG 1 */ } +#define CLGEN_DEBUG 1 } } /* disable runtime assertions? */ } /* #define CLGEN_NDEBUG */ } @@ -2526,7 +2526,7 @@ } /* This is a best-guess for now */ } } } -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,13) } +#if 0 } } *display = pdev->base_address[0]; } if ((*display & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) { } @@ -2648,7 +2648,7 @@ } board_size = clgen_get_memsize (info->regs); } } } } -#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,13) } +#if 1 } } if (!request_mem_region(board_addr, board_size, "clgenfb")) { } pci_write_config_word (pdev, PCI_COMMAND, tmp16); } @@ -2924,9 +2924,9 @@ } switch_monitor (info, 0); } } clgen_zorro_unmap (info); } -#else } +#elif defined(MODULE) } clgen_pci_unmap (info); } -#endif /* CONFIG_ZORRO */ } +#endif /* CONFIG_ZORRO or MODULE */ } } unregister_framebuffer ((struct fb_info *) info); } printk ("Framebuffer unregistered\n"); } --- include/asm-ppc/string.h.bak Tue May 9 19:01:23 2000 } +++ include/asm-ppc/string.h Tue May 9 22:35:18 2000 } @@ -2,16 +2,26 @@ } #define _PPC_STRING_H_ } } #define __HAVE_ARCH_STRCPY } +extern char * strcpy(char *,const char *); } #define __HAVE_ARCH_STRNCPY } +extern char * strncpy(char *,const char *, __kernel_size_t); } #define __HAVE_ARCH_STRLEN } +extern __kernel_size_t strlen(const char *); } #define __HAVE_ARCH_STRCMP } +extern int strcmp(const char *,const char *); } #define __HAVE_ARCH_STRCAT } +extern char * strcat(char *, const char *); } #define __HAVE_ARCH_MEMSET } +extern void * memset(void *,int,__kernel_size_t); } #define __HAVE_ARCH_BCOPY } #define __HAVE_ARCH_MEMCPY } +extern void * memcpy(void *,const void *,__kernel_size_t); } #define __HAVE_ARCH_MEMMOVE } +extern void * memmove(void *,const void *,__kernel_size_t); } #define __HAVE_ARCH_MEMCMP } +extern int memcmp(const void *,const void *,__kernel_size_t); } #define __HAVE_ARCH_MEMCHR } +extern void * memchr(const void *,int,__kernel_size_t); } } extern int strcasecmp(const char *, const char *); } extern int strncasecmp(const char *, const char *, int); } --- arch/ppc/kernel/ppc_ksyms.c.bak Tue May 9 22:44:09 2000 } +++ arch/ppc/kernel/ppc_ksyms.c Tue May 9 22:45:29 2000 } @@ -271,6 +271,7 @@ } #endif } EXPORT_SYMBOL(down_read_failed); } } +#if defined(CONFIG_XMON) || defined(CONFIG_KGDB) } extern void (*debugger)(struct pt_regs *regs); } extern int (*debugger_bpt)(struct pt_regs *regs); } extern int (*debugger_sstep)(struct pt_regs *regs); } @@ -284,3 +285,4 @@ } EXPORT_SYMBOL(debugger_iabr_match); } EXPORT_SYMBOL(debugger_dabr_match); } EXPORT_SYMBOL(debugger_fault_handler); } +#endif