2003-01-27 07:44:31

by Andrey Panin

[permalink] [raw]
Subject: [PATCH] visws support for 2.5.59

Hi all,

attached patch adds visws support into 2.5.59 kernel.

All who owns visws with PCI cards installed, please test this patch.

Best regards.

--
Andrey Panin | Embedded systems software developer
[email protected] | PGP key: wwwkeys.pgp.net


Attachments:
(No filename) (249.00 B)
patch-visws-2.5.59-27.01.2003.bz2 (26.94 kB)
Download all attachments

2003-01-30 08:45:41

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] visws support for 2.5.59

Hi Andrey,

here some comments, I hope you'll submit visw support to Linus soon
(and I'll find one somewhere.. :)


@@ -380,7 +378,8 @@
Otherwise, say N.

config SMP
- bool "Symmetric multi-processing support"
+ bool "Symmetric multi-processing support" if !X86_VISWS
+ default y if X86_VISWS

I don't think there's a reason to not allow UP kernels on visws.

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/arch/i386/Makefile linux-2.5.59/arch/i386/Makefile
--- linux-2.5.59.vanilla/arch/i386/Makefile Mon Jan 27 18:24:59 2003
+++ linux-2.5.59/arch/i386/Makefile Sun Jan 19 18:43:10 2003
@@ -18,7 +18,7 @@

LDFLAGS := -m elf_i386
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
-LDFLAGS_vmlinux := -e stext
+LDFLAGS_vmlinux :=
LDFLAGS_BLOB := --format binary --oformat elf32-i386

CFLAGS += -pipe


IMHO the stext changes should be moved into a single patch in
preparation of the visw support.


--- linux-2.5.59.vanilla/arch/i386/kernel/i8259.c Wed Jan 15 20:37:20 2003
+++ linux-2.5.59/arch/i386/kernel/i8259.c Sun Jan 19 18:43:10 2003
@@ -22,6 +22,7 @@
#include <asm/desc.h>
#include <asm/apic.h>
#include <asm/arch_hooks.h>
+#include <asm/i8259.h>

Dito for the i8259 and generic apic code changes (!?)


--- linux-2.5.59.vanilla/arch/i386/kernel/trampoline.S Wed Jan 15 20:37:20 2003
+++ linux-2.5.59/arch/i386/kernel/trampoline.S Sun Jan 19 18:43:10 2003
@@ -46,8 +46,8 @@
movl $0xA5A5A5A5, trampoline_data - r_base
# write marker for master knows we're running

- lidt idt_48 - r_base # load idt with 0, 0
- lgdt gdt_48 - r_base # load gdt with whatever is appropriate
+ lidt boot_idt - r_base # load idt with 0, 0
+ lgdt boot_gdt - r_base # load gdt with whatever is appropriate

Again, GDT changes should be a separate preparation patch.


@@ -11,8 +13,15 @@
ifdef CONFIG_ACPI_PCI
obj-y += acpi.o
endif
-obj-y += legacy.o

+ifndef CONFIG_X86_VISWS
+obj-y += legacy.o
+endif

endif # CONFIG_X86_NUMAQ
-obj-y += irq.o common.o
+
+ifndef CONFIG_X86_VISWS
+obj-y += irq.o
+endif

What about grouping the two ifndefs?

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/drivers/net/eepro100.c linux-2.5.59/drivers/net/eepro100.c
--- linux-2.5.59.vanilla/drivers/net/eepro100.c Wed Jan 15 20:37:20 2003
+++ linux-2.5.59/drivers/net/eepro100.c Sun Jan 19 18:43:10 2003
@@ -306,6 +306,10 @@
outw(val, port);
}

+#ifdef CONFIG_X86_VISWS
+#define USE_IO
+#endif
+

Separate patch probably. I think you should just submit this
one to jgarzik ASAP, independant of the other bits.
A small cleanup suggestion would be turning USE_IO into a config
option that is implied by CONFIG_X86_VISWS...

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/drivers/video/Kconfig linux-2.5.59/drivers/video/Kconfig
--- linux-2.5.59.vanilla/drivers/video/Kconfig Mon Jan 27 18:25:07 2003
+++ linux-2.5.59/drivers/video/Kconfig Sun Jan 19 18:43:10 2003
@@ -363,7 +363,7 @@

config FB_SGIVW
tristate "SGI Visual Workstation framebuffer support"
- depends on FB && VISWS
+ depends on FB && X86_VISWS

Oops, I missed this instance :)

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/drivers/video/sgivwfb.c linux-2.5.59/drivers/video/sgivwfb.c
--- linux-2.5.59.vanilla/drivers/video/sgivwfb.c Wed Jan 15 20:37:20 2003
+++ linux-2.5.59/drivers/video/sgivwfb.c Mon Jan 27 19:03:53 2003

The fb driver should be a separate patch again. As it doesn't
currently work I'd suggest submitting it to James Simmons ASAP.

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/include/asm-i386/sgi-cobalt.h linux-2.5.59/include/asm-i386/sgi-cobalt.h
--- linux-2.5.59.vanilla/include/asm-i386/sgi-cobalt.h Thu Jan 1 03:00:00 1970
+++ linux-2.5.59/include/asm-i386/sgi-cobalt.h Sun Jan 19 18:43:10 2003

I think this should be include/asm-i386/mach-visws/cobalt.h instead.

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/include/asm-i386/sgi-lithium.h linux-2.5.59/include/asm-i386/sgi-lithium.h
--- linux-2.5.59.vanilla/include/asm-i386/sgi-lithium.h Thu Jan 1 03:00:00 1970
+++ linux-2.5.59/include/asm-i386/sgi-lithium.h Sun Jan 19 18:43:10 2003

Dito (include/asm-i386/mach-visws/lithium.h)

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/include/asm-i386/sgi-piix.h linux-2.5.59/include/asm-i386/sgi-piix.h
--- linux-2.5.59.vanilla/include/asm-i386/sgi-piix.h Thu Jan 1 03:00:00 1970
+++ linux-2.5.59/include/asm-i386/sgi-piix.h Sun Jan 19 18:43:10 2003

What's really VisW-specific here (except that Linux doesn't poke the
PIIX that much on normal PeeCees)? IMHO it should be either
include/asm-i386/piix.h or include/asm-i386/mach-visws/piix.h
depending on that.

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/include/asm-i386/system.h linux-2.5.59/include/asm-i386/system.h
--- linux-2.5.59.vanilla/include/asm-i386/system.h Wed Jan 15 20:37:20 2003
+++ linux-2.5.59/include/asm-i386/system.h Mon Jan 27 18:43:23 2003
@@ -410,4 +410,10 @@
#define BROKEN_ACPI_Sx 0x0001
#define BROKEN_INIT_AFTER_S1 0x0002

+#ifdef CONFIG_X86_VISWS
+#define x86_visws 1
+#else
+#define x86_visws 0
+#endif

Do we really need more than CONFIG_X86_VISWS and the mach-$foo
abstraction?

diff -urN -X /usr/share/dontdiff linux-2.5.59.vanilla/sound/oss/vwsnd.c linux-2.5.59/sound/oss/vwsnd.c
--- linux-2.5.59.vanilla/sound/oss/vwsnd.c Wed Jan 15 20:37:20 2003
+++ linux-2.5.59/sound/oss/vwsnd.c Mon Jan 27 19:04:14 2003
@@ -144,13 +144,11 @@

Again, I think the driver update should be submitted separately
and ASAP.