Commit graph

67 commits

Author SHA1 Message Date
Ronald G. Minnich
6ccc762393 The udelay I wrote was busted, now fixed, tested, working on AMD. 2002-07-30 21:44:53 +00:00
Ronald G. Minnich
217286880e Changes to make udelay a bit easier to compile in. There are now three version. 2002-07-22 21:28:16 +00:00
Eric W. Biederman
b3b9071f43 Bug fix the handling of struct mem_range for the athlon 2002-07-06 01:25:52 +00:00
Eric W. Biederman
e803bc7bd4 - Support for a LinuxBIOS version number (start at 1.0.0)
- Support for remember our compile time environment
- Simple and always correct version of compute_ip_checksum
- Improve message strings in crt0.base
- Initial support for > 2G ram.
  - Sizeram now returns a list of valid ranges of ram
  - pci resource allocation now starts at 0xC0000000
- Update sizeram for every northbridge
- Misc cleanups.
2002-07-02 07:13:12 +00:00
Eric W. Biederman
9e334b9ec3 Massive resync of my tree and freebios-cvs including.
- Motherboard identification in the linuxbios table.
- Better SMP startup code.
- Support for the tyan s2462, the supermicro p4dc6, the supermicro p4dc6+, and the beginnings of supermicro p4dpr support
- Remove of no longer needed USE_AMD_NDA option
2002-06-20 00:11:56 +00:00
Li-Ta Lo
f91e1b83fc K7 Specific MSR is not classified now. 2002-05-17 08:15:47 +00:00
Ronald G. Minnich
c6501e2b5d mods for the PCM 9574. Support for the 39sf020 2002-04-10 16:01:38 +00:00
Ronald G. Minnich
4355f389e2 First cut at running vgabios code. 2002-03-27 04:14:40 +00:00
Eric W. Biederman
3b3c4b5b49 Depricate the config syntax `option foo'' and assume people meant `option foo=1'' 2002-02-06 01:03:32 +00:00
Eric W. Biederman
bf85f95212 - Fix small syntax error in reset16.lds
- small bug fixes to the elf bootloader
- factor the elf bootloader into focused smal subroutines that are easier to comprehend
  and maintain
- Implement support for PT_NOTE headers and parsing ELF notes if we need special functionality
  An ELF Image should never need an ELF loader to interpret an ELF to work correctly, making
  interpretation of all ELF notes optional.
- Implement support for notes giving PROGRAM_NAME, PROGRAM_VERSION, and PROGRAM_CHECKSUM
2002-01-22 17:51:31 +00:00
Eric W. Biederman
0f7f76fb40 Hopefully this is my last commit of major infrasture changes for a while.
Highlights:
 - elfboot.c Now can load images to the ram location where linuxBIOS is running
 - Added the standalone directory for bootloaders built from the linuxBIOS source

Other things:
- Correctly maode fallback_boot.c conditional
- Added entry32.lds to do the math for segment descriptor table entries
- Merged ldscript.cacheram and ldscript.base
- Moved assembly code to the sections .rom.text and .rom.data
- Modified linuxBIOS so C code completely runs from RAM as the SiS630
  case does
- Updated and commented example config files for the supermicro p4dc6
- Bumped the elfboot loader version to 1.0
- Removed extra carriage returns in dump_northbridge.inc (DOS->UNIX)
- General cleanups to the config of the supermicro p4dc6
2002-01-16 05:54:23 +00:00
Eric W. Biederman
cb232f1e04 Lots and Lots of changes. Mainly bugfixes for the supermicro p4dc6,
and a bunch of generic changes.
- Started playing with automatic scanning memory for LinuxBIOS tables.
- Converted the fill_inbuf drivers to stream drivers.  This allows
  for pure data copying operations to be faster, and it allows skipping
  of unneeded data on platforms that support it.
- Added a section .rodata.streams for the stream driver control structures.
  This is preparation for building a bootloader that shares source code
  with LinuxBIOS.
- Added a driver command to NLBConfig.py for objects that should
  always be linked into LinuxBIOS if they are compiled at all.
- Moved the boot_successful logic down into the guts of the
  bootloaders.
- Modified the ip style checksum logic so it isn't specific to uniform
  boot headers...
- Added a function ndelay that uses the RTC (this is i786 specific for now).
- Added a function to delay in seconds for the braindead harddrive
  spinup logic.
- Added a floppy stream driver.
- Added a ide stream driver.
- Broke out the ram initialization for the p4dc6 into multiple c files.
- Stupidly adapted linuxbiosmain and do_inflate to the new stream
  interface.  get_byte is now a slow function call so it might be able
  to use some optimization.
- Updated the ELF bootloader to the new stream interface and adding a
  ELF header scanning function so we can boot off of harddrives and
  not smash their partition tables.
- Removed some bogus unlook ahead code from inflate.c
- Fixed a problem where we did not enable I/O resources on VGA
  compatible chips.  This caused a trident card to lock up the system
  when it's memory mapped resources were enabled.
- Correctly set up nested pci busses.  Before this a pci bus behind a
  pci bus would not get enabled.
- Config changes to the p4dc6
- Added more interrupt sources to the p4dc6 interrupt table
- Converted all of the inbuf drivers to stream drivers.
  All have good conversions except the doc_millenium.
2001-12-20 04:04:42 +00:00
Eric W. Biederman
2beb0a1bcc - Updates for the supermicro p4dc6 motherboard
- Code to initialize sdram from C on the l440gx
- cache as ram code fro the p6 it works except conflict misses occur
  with addresses that are not cached so writing to ram does not work.
  Which makes it to brittle to count on.
- Initial implementation of a fallback booting scheme where we can
  have two copies of linuxbios in rom at once.
- Movement of 32 bit entry code from entry16.inc to entry32.inc
- Update of all config files so they now also include entry32.inc
- Fix for start_stop.c & entry16.inc so I can fairly arbitrarily relocate
  the 16bit entry code in SMP.
- A small number of fixes for warnings
2001-11-27 19:29:59 +00:00
Eric W. Biederman
d96aab9e06 - Delayed commit of code for the ASUS A7M motherboard
- VIA 686 cleanups from the A7M code (it now works in a different pci slot).
- Update of assembly printing routines to use the debug levels:
  TTYS0_TX_CHAR now becomes CONSOLE_<LEVEL>_TX_CHAR.
  It's more verbose but now the controls are the same as with the C code.
- Break off of loglevel.h from printk.h.  loglevel.h is safe for both
  the assembly routines and the C code to include.
- Next round of commits for the supermicro p4dc6
- SMP setup updates (Rons board is broken)
  I now allow the other SMP processors to report their existence.
  I really need to add a minimum time to run but that hasn't happened yet.
- SMP per motherboard table of apicids, as the assumption that they
  would always be 0 & 1 with only two cpus fails.
- RDRAM setup updates.  The code isn't done but it now works on more
  than one board at a time.
- More cacheram work.  Minor bug fixes and some macros to use it from C.
- Entry point changes so we no longer have to jump over our gdt.
- Added/Audited the cpufixup for the i786
- IDE intialization for the 82801 ich2 chip.
2001-11-13 03:43:37 +00:00
Eric W. Biederman
a8151ba2cd Initial checkin for supermicro p4dc6
This also includes a bunch of my pending work including
- Updated serial code so we can compile in different serial port speeds
- Updates to the build system so that:
  - Makefile.settings holds all of the settings of the config variables
  - ldoptions and cpuflags are generated automatically with perl scripts
  - src/config/Config holds all of the architecture neutral make file settings
- Initial work on the P4 including how to use cache as ram
- Update to the ioapic code for the P4 because it delivers irqs on the system
  bus instead of an out of band bus
- Updated version of printf that doesn't need an intermediate buffer
  - logbuf_subr now handles the case when we want to use a log buffer
- video_subr handles the preliminary code for writing to a video device.
- Pending changes for the L440GX are merged in as well (hopefully I haven't
  messed then up since they were written).
2001-11-03 02:11:49 +00:00
Ronald G. Minnich
756b831085 Tooked out "busted" notice 2001-11-02 20:15:29 +00:00
Ronald G. Minnich
66fa179fd6 K7 support is back! 2001-11-02 20:14:26 +00:00
Ronald G. Minnich
e433002b05 Fixes for the K7 so it will compile, but print out the fact that it will be
slow.

Notes on K7 MSRs.
2001-11-02 18:14:09 +00:00
Ronald G. Minnich
fc135688be Working changes for the technoloand sbc 710. MTRRs can now be configured as
either ROM starting at 0xc0000 or starting at 0xf0000. For the 0xf0000 case,
0xc0000 to 0xeffff is configured as FB, i.e. non-cacheable.
2001-10-24 19:13:21 +00:00
Eric W. Biederman
351efb22d5 Set the accessed bit on the segment descriptors to prevent writing to them. 2001-10-19 18:04:02 +00:00
Ronald G. Minnich
8eb557da83 Remove code that AMD feels is not releasable. 2001-09-07 18:17:23 +00:00
Ronald G. Minnich
bfa9200c03 Fixed the raminit.inc so they don't need a working %esp.
Removed set of %esp from entry16.inc
2001-08-24 16:47:35 +00:00
Ronald G. Minnich
68221584cc One-line change to set the ESP to a sane value before starting crt0.S.
Some of the .inc files require a sane stack value. This is not a full stack init
as found in crt0.S but just a quick set to make sure call/return works.
2001-08-23 19:58:31 +00:00
Eric W. Biederman
62edf8e35e Minor glitch fix for reset16 from last checkin. 2001-08-21 04:50:37 +00:00
Eric W. Biederman
e1b09246c2 Compile fixes from linuxBIOS hopefully it works for everyone again.
crt0.base
     - SMP compile fixes
     - No longer unconditionally include cpu/p5/start32.inc
         (it's been renamed  cpu/i386/entry16.inc)
ldscript.base
     - Simplfied, and moved some content into reset16.lds and entry16.lds
stddef.h
     - Use C style comments for #endif /* I386_STDDEF_H */
pirq_routing.h
     - The define is HAVE_PIRQ_TABLE not HAVE_PIRQ_ROUTING_TABLE
mtrr.c
     - Remove the need for defining INTEL_PPRO_MTRR
mainboard/xxx/Config
     - start32.inc is no longer automatically included include
       entry16.inc and reset16.inc where appropriate
       In particular if we are using a docipl we don't want
       reset16.inc or reset16.lds
tyan/guiness/mptable.c
     - Removed spurious define USE_ALL_CPUS
northbridge/intel/440gx/
     - Updated to compile with the factored generic memory code.
nortsouthbridge/sis/xxx/
     - Remove includes of northsouthbridge/sis/630/param.h did I add them?
       The file is gone now so including it is just bad...
NLBConfig.py
      - Allow relative filename arguments
      - Add directive ldscript to add an include file into
        our linker script
      - Fixed docipl to use strings when calling set_option
      - Allow target the target directive to use relative paths
      - Add extra dependencies to ldscript.lds
2001-08-21 02:37:35 +00:00
Eric W. Biederman
ed8c9d7e0d Code changes from my work and the AMD760MP chipset.
The primary changes is the way in which printk works.
But there are many other assorted code cleanups.
Just look and see :)
2001-08-08 02:45:10 +00:00
Eric W. Biederman
228148aa23 Start of merge from work on the AMD760MP platform.
This is the safe part just additions to files, and comment changes
2001-08-07 19:46:37 +00:00
Ronald G. Minnich
bde25c214d Fixed so all IORRs get 0'ed 2001-06-09 18:18:59 +00:00
Ronald G. Minnich
80f9c91e66 Works now.
pcchips is now pretty fast!
2001-06-08 23:22:43 +00:00
Ronald G. Minnich
8df16b00d8 Added support for a cpufixup function.
See src/cpu/k7/Config for details.
2001-06-08 17:18:43 +00:00
Li-Ta Lo
1115c4d2af use #ifdef i686 to protect Pentium class processors from hanging 2001-04-25 02:34:00 +00:00
Eric W. Biederman
39b133810a Minor fixes
- Add IMB to the palcode in start.inc
- Reduce the heap to only 128K in alpha/ldscript.base
- In elfboot add checks to make certain we don't overwrite linuxBIOS...
2001-04-13 22:04:26 +00:00
Ronald G. Minnich
3a8ce19f87 we need cache_enable and disable visible.
failed attempts to get the acer northbridge to size ram
CV:S ----------------------------------------------------------------------
2001-04-12 18:36:53 +00:00
Eric W. Biederman
0785f9f233 Final updates for my code cleanup and alpha code merge. 2001-03-23 22:56:05 +00:00
Ronald G. Minnich
faf0c47b79 testing I HATE CVS 2001-03-22 21:26:32 +00:00
Ronald G. Minnich
227ca052f7 Changes from Eric for Alpha and other support 2001-03-13 04:22:19 +00:00
Ronald G. Minnich
af5eaf5b29 Changes to support 440BX 2001-02-08 16:17:38 +00:00
Li-Ta Lo
70d361e5f8 fix some rounding problem 2001-01-29 02:12:35 +00:00
Ronald G. Minnich
b56912ec3a Fixes for CMD_LINE, and other fixes to set up ga-6bxc.
mtrr.c, remove redundant define
string.h bug with 0 in strlen
2001-01-18 23:11:26 +00:00
Li-Ta Lo
719f89882d found an very very old bug on setting MTRR range 2001-01-04 07:50:56 +00:00
Li-Ta Lo
27a812455f fix some typo 2000-12-07 01:43:28 +00:00
Li-Ta Lo
54e665686e more clean up for printk messages 2000-12-06 11:02:36 +00:00
Li-Ta Lo
ba4403a177 finally, a fullproof implementation for MTRR setting 2000-12-06 03:58:57 +00:00
Li-Ta Lo
7f6e048fc0 a smarter Late MTRR implementation 2000-12-05 07:25:32 +00:00
Li-Ta Lo
9b604b8ca7 use the safer movzwl instead of movl 2000-12-05 02:07:37 +00:00
Li-Ta Lo
fd4ec49f7d clear and set MTRRs correctly, I hope 2000-12-04 09:54:04 +00:00
Li-Ta Lo
d3e4c27442 use TSC to minotoring the performance of LinuxBIOS 2000-12-02 05:48:29 +00:00
Li-Ta Lo
69f93c224c add more
#ifndef lint
static char rcsid[] = "$Id:$";
#endif

to *.c source
2000-12-02 03:51:28 +00:00
Li-Ta Lo
7d651021b2 l2_cache.c works fine, put DBG back to printk.h 2000-12-02 03:33:36 +00:00
Ronald G. Minnich
d96429d1e2 l2 cache bug 2000-12-01 23:35:17 +00:00