Messages in this thread | | | Date | Wed, 11 Oct 2000 02:25:08 +0200 | From | Frank de Lange <> | Subject | Re: 2.4.0-test9 + Winchip2/2A processor family == hang on boot |
| |
Hi'all,
Solved the problem with Winchip not booting. It turns out they do not like the code generated by gcc (gcc version 2.95.2 19991024 (release)) when the -march=i686 flag is set. Changing this flag to -march=i586 makes to box boot like it should.
I do not have a working egcs 1.1.x or gcc 2.7.2x here, but I presume they DO produce working code, if only because the earlier compilers lacked specific support for pentium and above. It seems the arch/i386/Makefile is incorrect in stating that these Winchips are in fact i686 compatible, or it might be that gcc does bad things to these processors. Anyway, included is a small patch to solve these problems with Winchips.
Cheers//Frank -- WWWWW _______________________ ## o o\ / Frank de Lange \ }# \| / \ ##---# _/ <Hacker for Hire> \ #### \ +31-320-252965 / \ frank@unternet.org / ------------------------- [ Hacker: http://www.jargon.org/html/entry/hacker.html ] *** linux/arch/i386/Makefile.org Wed Oct 11 02:22:26 2000 --- linux/arch/i386/Makefile Wed Oct 11 02:22:41 2000 *************** *** 70,84 **** endif ifdef CONFIG_MWINCHIPC6 ! CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i686"; fi) endif ifdef CONFIG_MWINCHIP2 ! CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i686"; fi) endif ifdef CONFIG_MWINCHIP3D ! CFLAGS += $(shell if $(CC) -march=i686 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i686"; fi) endif HEAD := arch/i386/kernel/head.o arch/i386/kernel/init_task.o --- 70,84 ---- endif ifdef CONFIG_MWINCHIPC6 ! CFLAGS += $(shell if $(CC) -march=i586 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i586"; fi) endif ifdef CONFIG_MWINCHIP2 ! CFLAGS += $(shell if $(CC) -march=i586 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i586"; fi) endif ifdef CONFIG_MWINCHIP3D ! CFLAGS += $(shell if $(CC) -march=i586 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=i586"; fi) endif HEAD := arch/i386/kernel/head.o arch/i386/kernel/init_task.o
| |