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        /
           \    [EMAIL PROTECTED]    /
            -------------------------
 [ 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

Reply via email to