[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: help with benh_kernel and mol



On  31 Aug, this message from Jean-Christophe Michel echoed through cyberspace:
> I just tried do do a new rsync on benh sources and compile  with
> make dep
> and then
> make clean bzImage
> and it stops on :
> idle_6xx.S:170: Error: missing operand
> make[1]: *** [idele_6xx.o] Error 1
> (...one line skipped)
> make: *** [_dir_arch/ppc/kernel] Error 2

I'd say there's a bug in binutil's gas: it doesn't seem to have the
right syntax for dssall (data stream stop all, an Altivec instruction).
According to my doc, it's simply 'dssall', but gas expects 'dssall
STREAM'. The argument is ignored anyway....

Anyway, the attached patch fixes it.

Ben, additionally, I added a patch that fixes a warning in
kernel/printk.c related to CONFIG_BOOTX_TEXT.

Also, concerning dssall, I added a 'sync' in idle_6xx.S, which is needed
according to my Altivec manual (but may not be sufficient, warning).
There's one other place in the kernel that lacks a sync after dssall: in
'_set_L3CR'.

Cheers

Michel

-------------------------------------------------------------------------
Michel Lanners                 |  " Read Philosophy.  Study Art.
23, Rue Paul Henkes            |    Ask Questions.  Make Mistakes.
L-1710 Luxembourg              |
email   mlan@cpu.lu            |
http://www.cpu.lu/~mlan        |                     Learn Always. "
--- sources/2.4/linux-2.4.benh/arch/ppc/kernel/idle_6xx.S	Fri Jan  1 00:42:12 1904
+++ linux/arch/ppc/kernel/idle_6xx.S	Sun Sep  1 09:17:22 2002
@@ -167,7 +167,11 @@
 	oris	r4,r4,HID0_DPM@h	/* that should be done once for all ... */
 	mtspr	SPRN_HID0,r4
 BEGIN_FTR_SECTION
-	dssall
+/*	seems gas doesn't know the syntax of dssall...
+	This extended mnemonic corresponding to dssall doesn't work neither:
+	dss	0,1 */
+	dssall	0
+	sync
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 	ori	r7,r7,MSR_EE /* Could be ommited (already set) */
 	oris	r7,r7,MSR_POW@h
--- sources/2.4/linux-2.4.benh/kernel/printk.c	Sun Jul 21 18:31:35 2002
+++ linux/kernel/printk.c	Sun Sep  1 08:59:33 2002
@@ -28,6 +28,9 @@
 #include <linux/config.h>
 
 #include <asm/uaccess.h>
+#ifdef CONFIG_BOOTX_TEXT
+#include <asm/btext.h>
+#endif
 
 #if defined(CONFIG_MULTIQUAD) || defined(CONFIG_IA64)
 #define LOG_BUF_LEN	(65536)

Reply to: