Index: sys/boot/i386/libi386/Makefile =================================================================== RCS file: /other/cvsroot/src/sys/boot/i386/libi386/Makefile,v retrieving revision 1.15.2.5 diff -u -r1.15.2.5 Makefile --- sys/boot/i386/libi386/Makefile 19 Jul 2002 18:46:28 -0000 1.15.2.5 +++ sys/boot/i386/libi386/Makefile 16 Aug 2003 14:52:41 -0000 @@ -26,7 +26,7 @@ .endif # Include simple terminal emulation (cons25-compatible) -CFLAGS+= -DTERM_EMU +##DONT BOTHER##CFLAGS+= -DTERM_EMU # Make "machine" required for all objects # (based on the more complete case in sys/i386/boot/Makefile.inc) Index: sys/conf/options =================================================================== RCS file: /other/cvsroot/src/sys/conf/options,v retrieving revision 1.191.2.47.2.2 diff -u -r1.191.2.47.2.2 options --- sys/conf/options 28 Mar 2003 21:26:40 -0000 1.191.2.47.2.2 +++ sys/conf/options 16 Aug 2003 13:33:49 -0000 @@ -242,6 +242,7 @@ # Options used in the 'ata' ATA/ATAPI driver ATA_STATIC_ID opt_ata.h +ATA_NSC_GEODE_SC1100 opt_ata.h # Net stuff. ACCEPT_FILTER_DATA Index: sys/conf/options.i386 =================================================================== RCS file: /other/cvsroot/src/sys/conf/options.i386,v retrieving revision 1.132.2.18 diff -u -r1.132.2.18 options.i386 --- sys/conf/options.i386 14 Mar 2003 21:22:35 -0000 1.132.2.18 +++ sys/conf/options.i386 16 Aug 2003 11:11:03 -0000 @@ -41,6 +41,7 @@ CLK_USE_I8254_CALIBRATION opt_clock.h CLK_USE_TSC_CALIBRATION opt_clock.h TIMER_FREQ opt_clock.h +CLK_TSC_IS_BROKEN opt_clock.h KERN_TIMESTAMP opt_global.h NO_F00F_HACK opt_cpu.h Index: sys/dev/ata/ata-dma.c =================================================================== RCS file: /other/cvsroot/src/sys/dev/ata/ata-dma.c,v retrieving revision 1.35.2.29 diff -u -r1.35.2.29 ata-dma.c --- sys/dev/ata/ata-dma.c 2 Oct 2002 14:13:38 -0000 1.35.2.29 +++ sys/dev/ata/ata-dma.c 16 Aug 2003 13:35:34 -0000 @@ -28,6 +28,7 @@ * $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.35.2.29 2002/10/02 14:13:38 sos Exp $ */ +#include "opt_ata.h" #include #include #include @@ -100,8 +101,13 @@ } } +#ifdef ATA_NSC_GEODE_SC1100 + /* DMA data transfers need to be dword aligned */ + ch->alignment = 0x3; +#else /* DMA engine address alignment is usually 1 word (2 bytes) */ ch->alignment = 0x1; +#endif /* ATA_NSC_GEODE_SC1100 */ #if 1 if (udmamode > 2 && !ch->device[ATA_DEV(device)].param->hwres_cblid) { Index: sys/i386/i386/identcpu.c =================================================================== RCS file: /other/cvsroot/src/sys/i386/i386/identcpu.c,v retrieving revision 1.80.2.14.2.1 diff -u -r1.80.2.14.2.1 identcpu.c --- sys/i386/i386/identcpu.c 14 Apr 2003 14:36:19 -0000 1.80.2.14.2.1 +++ sys/i386/i386/identcpu.c 16 Aug 2003 13:06:41 -0000 @@ -149,7 +149,8 @@ (strcmp(cpu_vendor, "GenuineIntel") == 0 || strcmp(cpu_vendor, "AuthenticAMD") == 0 || strcmp(cpu_vendor, "GenuineTMx86") == 0 || - strcmp(cpu_vendor, "TransmetaCPU") == 0)) { + strcmp(cpu_vendor, "TransmetaCPU") == 0 || + strcmp(cpu_vendor, "Geode by NSC") == 0)) { do_cpuid(0x80000000, regs); if (regs[0] >= 0x80000000) { cpu_exthigh = regs[0]; Index: sys/i386/isa/clock.c =================================================================== RCS file: /other/cvsroot/src/sys/i386/isa/clock.c,v retrieving revision 1.149.2.6 diff -u -r1.149.2.6 clock.c --- sys/i386/isa/clock.c 2 Nov 2002 04:41:50 -0000 1.149.2.6 +++ sys/i386/isa/clock.c 16 Aug 2003 14:56:34 -0000 @@ -836,10 +836,12 @@ return; #endif /* NAPM > 0 */ +#if !defined(CLK_TSC_IS_BROKEN) if (tsc_present && tsc_freq != 0 && !tsc_is_broken) { tsc_timecounter.tc_frequency = tsc_freq; init_timecounter(&tsc_timecounter); } +#endif /* !CLK_TSC_IS_BROKEN */ #endif /* !defined(SMP) */ } Index: sys/i386/isa/pcibus.c =================================================================== RCS file: /other/cvsroot/src/sys/i386/isa/Attic/pcibus.c,v retrieving revision 1.57.2.11 diff -u -r1.57.2.11 pcibus.c --- sys/i386/isa/pcibus.c 13 Nov 2002 21:40:40 -0000 1.57.2.11 +++ sys/i386/isa/pcibus.c 16 Aug 2003 12:45:05 -0000 @@ -261,6 +261,13 @@ for (probe.slot = 0; probe.slot <= PCI_SLOTMAX; probe.slot++) { probe.func = 0; hdrtype = pci_cfgread(&probe, PCIR_HEADERTYPE, 1); + /* 16-Aug-2003 EHK (from the soekris-tech list) + * When enumerating pci bus, you must read the header at offset + * 0x0e, which contains the header type. If you don't know what + * it is, skip it. -- M. Warner Losh + */ + if ( (hdrtype & ~PCIM_MFDEV) > PCI_MAXHDRTYPE ) + continue; if (hdrtype & PCIM_MFDEV && (!found_orion || hdrtype != 0xff) ) pcifunchigh = 7; else Index: sys/pci/pcireg.h =================================================================== RCS file: /other/cvsroot/src/sys/pci/Attic/pcireg.h,v retrieving revision 1.24.2.5 diff -u -r1.24.2.5 pcireg.h --- sys/pci/pcireg.h 31 Aug 2002 10:06:51 -0000 1.24.2.5 +++ sys/pci/pcireg.h 16 Aug 2003 12:44:45 -0000 @@ -46,6 +46,7 @@ #define PCI_SLOTMAX 31 #define PCI_FUNCMAX 7 #define PCI_REGMAX 255 +#define PCI_MAXHDRTYPE 2 /* 16/Aug/2003 EHK */ /* PCI config header registers for all devices */