1. 14 2月, 2009 1 次提交
  2. 03 2月, 2009 1 次提交
    • H
      x86 setup: a20: early timeout for a nonexistent keyboard controller · 3bd323a1
      H. Peter Anvin 提交于
      When probing the keyboard controller to enable A20, if we get FF back
      (which is *possible* as a valid status word, but is extremely
      unlikely) then bail after much fewer iterations than we otherwise
      would, and abort the attempt to access the KBC.
      
      This hopefully should make it work a lot better for embedded platforms
      which don't have a KBC and where the BIOS doesn't implement
      INT 15h AX=2401h (and doesn't boot with A20 already enabled.)
      
      If this works, it will be the one remaining use of CONFIG_X86_ELAN as
      anything other than a processor type optimization option.
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      3bd323a1
  3. 31 1月, 2009 1 次提交
  4. 28 1月, 2009 1 次提交
  5. 25 11月, 2008 1 次提交
  6. 24 11月, 2008 1 次提交
  7. 31 10月, 2008 1 次提交
  8. 23 10月, 2008 1 次提交
  9. 22 10月, 2008 1 次提交
  10. 17 10月, 2008 1 次提交
  11. 06 10月, 2008 1 次提交
  12. 05 10月, 2008 1 次提交
  13. 04 10月, 2008 3 次提交
  14. 17 9月, 2008 2 次提交
  15. 06 9月, 2008 3 次提交
    • A
      x86: fix ghost EDD devices in /sys again · 464f04c9
      Andrey Borzenkov 提交于
      > This is regression but old enough. Apparently I had for whatever reasons
      > EDD turned off till recently. This is 2.6.27-rc5 just in case.
      >
      > In 2006 I fixed ghost devices due to buggy BIOS:
      >
      > http://marc.info/?l=linux-kernel&m=114087765422490&w=2
      >
      > Later edd.S has been rewritten in C, and apparently this patch has been
      > lost:
      >
      > {pts/1}% ls /sys/firmware/edd
      > int13_dev80/  int13_dev84/  int13_dev88/  int13_dev8c/
      > int13_dev81/  int13_dev85/  int13_dev89/  int13_dev8d/
      > int13_dev82/  int13_dev86/  int13_dev8a/  int13_dev8e/
      > int13_dev83/  int13_dev87/  int13_dev8b/  int13_dev8f/
      >
      > But I have just a single disk. This is the same system BTW.
      
      Some BIOSes do not always set CF on error before return from int13.
      The patch adds additional check for status being zero (AH == 0).
      
      This was fixed for edd.S in
      http://marc.info/?l=linux-kernel&m=114087765422490&w=2, but lost
      again when edd.S was rewritten in C.
      Signed-off-by: NAndrey Borzenkov <arvidjaar@mail.ru>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      464f04c9
    • H
      x86: when building image.iso, use isohybrid if it exists · d2f37384
      H. Peter Anvin 提交于
      When building image.iso (make isoimage), use the isohybrid tool if it
      exists.  isohybrid is a script included with Syslinux 3.72 and higher,
      which creates an image that can be booted either as a hard disk
      (including removable, e.g. USB disk) or as a CD-ROM.
      
      If isohybrid doesn't exist, then this has no effect.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      d2f37384
    • H
      x86: boot: stub out unimplemented CPU feature words · b74b06c5
      H. Peter Anvin 提交于
      The CPU feature detection code in the boot code is somewhat minimal,
      and doesn't include all possible CPUID words.  In particular, it
      doesn't contain the code for CPU feature words 2 (Transmeta),
      3 (Linux-specific), 5 (VIA), or 7 (scattered).  Zero them out, so we
      can still set those bits as known at compile time; in particular, this
      allows creating a Linux-specific NOPL flag and have it required (and
      therefore resolvable at compile time) in 64-bit mode.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      b74b06c5
  16. 04 9月, 2008 1 次提交
    • H
      x86: boot/compressed/Makefile: fix "make clean" · 7f16a339
      H. Peter Anvin 提交于
      The Kbuild variable "targets" is supposed to be
      configuration-independent and reflect "all possible targets".  This is
      required to make "make clean" work properly.
      
      Therefore, move all manipulation of "targets" as well as custom rules
      out of the x86-32 ifdef statement.  Only leave inside the ifdefs the
      things that are genuinely configuration-dependent.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      7f16a339
  17. 28 8月, 2008 1 次提交
    • H
      x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> · 7414aa41
      H. Peter Anvin 提交于
      We have had a number of cases where <asm/cpufeature.h> (and its
      predecessors) have diverged substantially from the names list in
      /proc/cpuinfo.  This patch generates the latter from the former.
      
      It retains the option for explicitly overriding the strings, but by
      making that require a separate action it should at least be less
      likely to happen.
      
      It would be good to do a future pass and rename strings that are
      gratuituously different in the kernel (/proc/cpuinfo is a userspace
      interface and must remain constant.)
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      7414aa41
  18. 19 8月, 2008 1 次提交
    • H
      x86: boot: stub out unimplemented CPU feature words · e2fe16d9
      H. Peter Anvin 提交于
      The CPU feature detection code in the boot code is somewhat minimal,
      and doesn't include all possible CPUID words.  In particular, it
      doesn't contain the code for CPU feature words 2 (Transmeta),
      3 (Linux-specific), 5 (VIA), or 7 (scattered).  Zero them out, so we
      can still set those bits as known at compile time; in particular, this
      allows creating a Linux-specific NOPL flag and have it required (and
      therefore resolvable at compile time) in 64-bit mode.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      e2fe16d9
  19. 18 8月, 2008 1 次提交
    • A
      x86: fix build warnings in real mode code · 1b72691c
      Andi Kleen 提交于
      This recent patch
      
      commit c3965bd1
      Author: Paul Jackson <pj@sgi.com>
      Date:   Wed May 14 08:15:34 2008 -0700
      
          x86 boot: proper use of ARRAY_SIZE instead of repeated E820MAX constant
      
      caused these new warnings during a normal build:
      
      In file included from linux-2.6/arch/x86/boot/memory.c:17:
      linux-2.6/include/linux/log2.h: In function '__ilog2_u32':
      linux-2.6/include/linux/log2.h:34: warning: implicit declaration of function 'fls'
      linux-2.6/include/linux/log2.h: In function '__ilog2_u64':
      linux-2.6/include/linux/log2.h:42: warning: implicit declaration of function 'fls64'
      linux-2.6/include/linux/log2.h: In function '__roundup_pow_of_two ':
      linux-2.6/include/linux/log2.h:63: warning: implicit declaration of function 'fls_long'
      
      I tried to fix them in log2.h, but it's difficult because the real mode
      environment is completely different from a normal kernel environment. Instead
      define an own ARRAY_SIZE macro in boot.h, similar to the other private
      macros there.
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1b72691c
  20. 15 8月, 2008 1 次提交
    • P
      x86: coding style fixes to arch/x86/boot/compressed/misc.c · 020878ac
      Paolo Ciarrocchi 提交于
      Before:
      total: 4 errors, 6 warnings, 439 lines checked
      
      After:
      total: 1 errors, 5 warnings, 441 lines checked
      
      Before
      
       -#include <asm/io.h>
       +#include <linux/io.h>
      
      paolo@paolo-desktop:~/linux.trees.git$ md5sum /tmp/misc.o.*
      8b2394e1fe519a9542e9a7e3e7b69c39  /tmp/misc.o.after
      8b2394e1fe519a9542e9a7e3e7b69c39  /tmp/misc.o.before
      
      After
      
       -#include <asm/io.h>
       +#include <linux/io.h>
      
      paolo@paolo-desktop:~/linux.trees.git$ md5sum /tmp/misc.o.*
      59a2d264284be5e72b5af4f3a8ccfb47  /tmp/misc.o.after
      8b2394e1fe519a9542e9a7e3e7b69c39  /tmp/misc.o.before
      Signed-off-by: NPaolo Ciarrocchi <paolo.ciarrocchi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      020878ac
  21. 14 8月, 2008 1 次提交
  22. 13 8月, 2008 1 次提交
    • J
      x86: fix setup code crashes on my old 486 box · 7b27718b
      Joerg Roedel 提交于
      yesterday I tried to reactivate my old 486 box and wanted to install a
      current Linux with latest kernel on it. But it turned out that the
      latest kernel does not boot because the machine crashes early in the
      setup code.
      
      After some debugging it turned out that the problem is the query_ist()
      function. If this interrupt with that function is called the machine
      simply locks up. It looks like a BIOS bug. Looking for a workaround for
      this problem I wrote the attached patch. It checks for the CPUID
      instruction and if it is not implemented it does not call the speedstep
      BIOS function. As far as I know speedstep should be available since some
      Pentium earliest.
      
      Alan Cox observed that it's available since the Pentium II, so cpuid
      levels 4 and 5 can be excluded altogether.
      
      H. Peter Anvin cleaned up the code some more:
      
      > Right in concept, but I dislike the implementation (duplication of the
      > CPU detect code we already have).  Could you try this patch and see if
      > it works for you?
      
      which, with a small modification to fix a build error with it the
      resulting kernel boots on my machine.
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      Signed-off-by: N"H. Peter Anvin" <hpa@zytor.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7b27718b
  23. 12 8月, 2008 1 次提交
  24. 26 7月, 2008 1 次提交
    • T
      inflate: refactor inflate malloc code · 2d6ffcca
      Thomas Petazzoni 提交于
      Inflate requires some dynamic memory allocation very early in the boot
      process and this is provided with a set of four functions:
      malloc/free/gzip_mark/gzip_release.
      
      The old inflate code used a mark/release strategy rather than implement
      free.  This new version instead keeps a count on the number of outstanding
      allocations and when it hits zero, it resets the malloc arena.
      
      This allows removing all the mark and release implementations and unifying
      all the malloc/free implementations.
      
      The architecture-dependent code must define two addresses:
       - free_mem_ptr, the address of the beginning of the area in which
         allocations should be made
       - free_mem_end_ptr, the address of the end of the area in which
         allocations should be made. If set to 0, then no check is made on
         the number of allocations, it just grows as much as needed
      
      The architecture-dependent code can also provide an arch_decomp_wdog()
      function call.  This function will be called several times during the
      decompression process, and allow to notify the watchdog that the system is
      still running.  If an architecture provides such a call, then it must
      define ARCH_HAS_DECOMP_WDOG so that the generic inflate code calls
      arch_decomp_wdog().
      
      Work initially done by Matt Mackall, updated to a recent version of the
      kernel and improved by me.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Matt Mackall <mpm@selenic.com>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Mikael Starvik <mikael.starvik@axis.com>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Acked-by: NPaul Mundt <lethal@linux-sh.org>
      Acked-by: NYoshinori Sato <ysato@users.sourceforge.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2d6ffcca
  25. 23 7月, 2008 1 次提交
  26. 19 7月, 2008 1 次提交
  27. 18 7月, 2008 2 次提交
    • H
      x86: unify and correct the GDT_ENTRY() macro · f910d134
      H. Peter Anvin 提交于
      Impact: None (cleanup only)
      
      Merge the GDT_ENTRY() macro between arch/x86/boot/pm.c and
      arch/x86/kernel/acpi/sleep.c and put the new one in
      <asm-x86/segment.h>.
      
      While we're at it, correct the bitmasks for the limit and flags.  The
      new version relies on using ULL constants in order to cause type
      promotion rather than explicit casts; this avoids having to include
      <linux/types.h> in <asm-x86/segments.h>.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      f910d134
    • H
      x86: unify and correct the GDT_ENTRY() macro · 4fdf08b5
      H. Peter Anvin 提交于
      Merge the GDT_ENTRY() macro between arch/x86/boot/pm.c and
      arch/x86/kernel/acpi/sleep.c and put the new one in
      <asm-x86/segment.h>.
      
      While we're at it, correct the bitmasks for the limit and flags.  The
      new version relies on using ULL constants in order to cause type
      promotion rather than explicit casts; this avoids having to include
      <linux/types.h> in <asm-x86/segments.h>.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      4fdf08b5
  28. 03 7月, 2008 1 次提交
  29. 01 7月, 2008 2 次提交
    • H
      x86: fix regression: boot failure on AMD Elan TS-5500 · 2ee2394b
      H. Peter Anvin 提交于
      Jeremy Fitzhardinge wrote:
      >
      > Maybe it really does require the far jump immediately after setting PE
      > in cr0...
      >
      > Hm, I don't remember this paragraph being in vol 3a, section 8.9.1
      > before.  Is it a recent addition?
      >
      >    Random failures can occur if other instructions exist between steps
      >    3 and 4 above.  Failures will be readily seen in some situations,
      >    such as when instructions that reference memory are inserted between
      >    steps 3 and 4 while in system management mode.
      >
      
      I don't remember that, either.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2ee2394b
    • H
      x86: remove arbitrary ELF section limit in i386 relocatable kernel · 908ec7af
      H. Peter Anvin 提交于
      Impact: build failure in maximal configurations
      
      The 32-bit x86 relocatable kernel requires an auxilliary host program
      to process the relocations.  This program had a hard-coded arbitrary
      limit of a 100 ELF sections.  Instead of a hard-coded limit, allocate
      the structures dynamically.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Acked-by: NVivek Goyal <vgoyal@redhat.com>
      908ec7af
  30. 28 6月, 2008 1 次提交
    • H
      x86: setup: issue a null command after enabling A20 via KBC · aa60d13f
      H. Peter Anvin 提交于
      Apparently, DOS and possibly other legacy operating systems issued a
      null command to the keyboard controller after toggling A20,
      specifically "pulse output pins" with no output pins specified.  This
      was presumably done for synchronization reasons.  This has made it
      into at least the UHCI spec, and it has been found to cause
      compatibility problems when "legacy USB" is enabled (which it almost
      always is) to not have this byte sent.
      
      It is *NOT* clear if any of these compatibility problems has any
      effect on Linux.  However, for maximum compatibility, issue this null
      command after togging A20 through the KBC.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      aa60d13f
  31. 13 6月, 2008 1 次提交
  32. 10 6月, 2008 1 次提交
  33. 31 5月, 2008 1 次提交