Module support for 8260 in 2.4(.1) kernel

Oliver Brown obrown at adventnetworks.com
Sat Apr 21 05:26:00 EST 2001


This diff was against a ppc_ksyms.c from kernel.org 2.4.1 tree. Below is
a unified diff. I'll try and add the __udelay to the exports.

Regards,
Oliver Brown

+++ ppc_ksyms.c	Fri Apr 20 12:16:28 2001
@@ -42,10 +42,15 @@
 #ifdef CONFIG_SMP
 #include <asm/smplock.h>
 #include <asm/smp.h>
 #endif /* CONFIG_SMP */
 #include <asm/time.h>
+/* exporting 8260 sysmbols for modules - OFB */
+#ifdef CONFIG_8260
+#include <asm/cpm_8260.h>
+#include <asm/mpc8260.h>
+#endif /* CONFIG_8260 - OFB */

 /* Tell string.h we don't want memcpy etc. as cpp defines */
 #define EXPORT_SYMTAB_STROPS

 extern void transfer_to_handler(void);
@@ -85,25 +90,42 @@
 EXPORT_SYMBOL(probe_irq_mask);
 #ifdef CONFIG_SMP
 EXPORT_SYMBOL(kernel_flag);
 #endif /* CONFIG_SMP */

-#if !defined(CONFIG_4xx) && !defined(CONFIG_8xx)
+/* Added CONFIG_8260 to exclude symbols below - OFB */
+#if !defined(CONFIG_4xx) && !defined(CONFIG_8xx) &&
!defined(CONFIG_8260)
 EXPORT_SYMBOL_NOVERS(isa_io_base);
 EXPORT_SYMBOL_NOVERS(isa_mem_base);
 EXPORT_SYMBOL_NOVERS(pci_dram_offset);
 #endif
+
 EXPORT_SYMBOL(ISA_DMA_THRESHOLD);
 EXPORT_SYMBOL(DMA_MODE_READ);
 EXPORT_SYMBOL(DMA_MODE_WRITE);
 #ifndef CONFIG_8xx
 #if defined(CONFIG_ALL_PPC)
 EXPORT_SYMBOL(_prep_type);
 EXPORT_SYMBOL(ucSystemType);
 #endif
 #endif

+/* exporting CPM symbols for modules - OFB */
+#ifdef CONFIG_8260
+EXPORT_SYMBOL(cpmp);
+EXPORT_SYMBOL(m8260_cpm_hostalloc);
+EXPORT_SYMBOL(m8260_cpm_dpalloc);
+EXPORT_SYMBOL(m8260_cpm_setbrg);
+EXPORT_SYMBOL(m8260_cpm_fastbrg);
+EXPORT_SYMBOL(__res);
+#endif /* CONFIG_8260 */
+
+/* exporting symbols for modules - OFB */
+#if (defined(CONFIG_8260) || defined(CONFIG_8xx))
+EXPORT_SYMBOL(request_8xxirq);
+#endif /* (defined(CONFIG_8260) || defined(CONFIG_8xx)) - OFB */
+
 #if !__INLINE_BITOPS
 EXPORT_SYMBOL(set_bit);
 EXPORT_SYMBOL(clear_bit);
 EXPORT_SYMBOL(change_bit);
 EXPORT_SYMBOL(test_and_set_bit);
@@ -239,11 +261,15 @@
 EXPORT_SYMBOL(get_backlight_level);
 EXPORT_SYMBOL(set_backlight_level);
 EXPORT_SYMBOL(set_backlight_enable);
 EXPORT_SYMBOL(register_backlight_controller);
 #endif /* CONFIG_PMAC_BACKLIGHT */
+
+#ifdef CONFIG_ALL_PPC
 EXPORT_SYMBOL_NOVERS(sys_ctrler);
+#endif /* CONFIG_ALL_PPC */
+
 #ifndef CONFIG_MACH_SPECIFIC
 EXPORT_SYMBOL_NOVERS(have_of);
 #endif /* CONFIG_MACH_SPECIFIC */
 #if defined(CONFIG_ALL_PPC)
 EXPORT_SYMBOL(find_devices);
@@ -277,11 +303,15 @@
 EXPORT_SYMBOL(bootx_update_display);
 #endif
 #if defined(CONFIG_SCSI) && defined(CONFIG_ALL_PPC)
 EXPORT_SYMBOL(note_scsi_host);
 #endif
+
+#ifdef CONFIG_VT
 EXPORT_SYMBOL(kd_mksound);
+#endif /* CONFIG_VT */
+
 #ifdef CONFIG_NVRAM
 EXPORT_SYMBOL(nvram_read_byte);
 EXPORT_SYMBOL(nvram_write_byte);
 EXPORT_SYMBOL(pmac_xpram_read);
 EXPORT_SYMBOL(pmac_xpram_write);
@@ -344,11 +374,12 @@
 EXPORT_SYMBOL(ret_to_user_hook);
 EXPORT_SYMBOL(do_softirq);
 EXPORT_SYMBOL(next_mmu_context);
 EXPORT_SYMBOL(set_context);
 EXPORT_SYMBOL(mmu_context_overflow);
-#if !defined(CONFIG_8xx) && !defined(CONFIG_4xx)
+/* Added CONFIG_8260 -OFB */
+#if !defined(CONFIG_8xx) && !defined(CONFIG_4xx) &&
!defined(CONFIG_8260)
 extern long *intercept_table;
 EXPORT_SYMBOL(intercept_table);
 #endif
 extern long *ret_from_intercept;
 EXPORT_SYMBOL(ret_from_intercept);

-----Original Message-----
From: Tom Rini [mailto:trini at kernel.crashing.org]
Sent: Friday, April 20, 2001 2:03 PM
To: Oliver Brown
Cc: linuxppc-embedded List
Subject: Re: Module support for 8260 in 2.4(.1) kernel


On Fri, Apr 20, 2001 at 01:51:00PM -0500, Oliver Brown wrote:

> I am working on loadable driver modules for the 8260. I had to make
the
> changes below to the ppc_ksyms.c file to export the symbols in needed.
>
> The problems I am having are
> 1. The udelay marco is not exportable. Is there a substitute? For now
I
> am using __delay() which is not a constant delay.

Er, you should be able to at least kludge around this and use __udelay
which skips the macro (which just does sanity checks).

> 2. The m8260_cpm_hostalloc() and m8260_cpm_dpalloc do not have
deallocs.
> I can load my module, but I can't unload it.
>
> I've added an init_module and cleanup_module to the fcc_enet.c from
> (bitkeeper 2.5 tree). Also, I had to replace all of the udelay()'s
with
> __delay()'s. And I've diabled the MDIO PHY support.

Er, what tree is this vs exactly?  Also, can you send a unified diff
next time?

--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/






More information about the Linuxppc-embedded mailing list