Commit graph

79 commits

Author SHA1 Message Date
Ronald G. Minnich
490c64dee2 Support now works for the digital logic smartcore p3 SE 2002-08-21 21:02:55 +00:00
Ronald G. Minnich
e9c806ea37 take out mistaken change. 2002-07-30 20:24:40 +00:00
Ronald G. Minnich
3dfb12a37a initial post of 0x01 for motherboard timing issues.
count=1 on the dd for the payload so it won't grow without bound.
2002-07-29 17:19:31 +00:00
Eric W. Biederman
e34319b59a Fix ldscript.base to work around linker bugs.
In particular symbols inside of NOALLOC sections were being allocated
at the start of the section.
2002-07-25 20:50:52 +00:00
Ronald G. Minnich
8b73dcc250 Nits with the compiler. 2002-07-19 21:06:24 +00:00
Eric W. Biederman
36eda040d4 Update the ldscript, to declare pci_drivers && epci_drivers 2002-07-19 15:35:28 +00:00
Eric W. Biederman
58bbe2161c Add alpha version of bitops.h 2002-07-18 22:26:45 +00:00
Eric W. Biederman
e8dacb6ba8 - Update the code in bitops.h so it will compile. 2002-07-18 21:58:33 +00:00
Ronald G. Minnich
4dc3c174db fixes for alpha.
Note the beginning of moving linuxbios_table.c to src/lib
2002-07-18 21:08:09 +00:00
Eric W. Biederman
f11b412d37 - Refix the protoptype for jmp_to_elf_entry, including fixing alpha code
- Updated to new pci code
2002-07-18 20:30:20 +00:00
Ronald G. Minnich
166e7df814 trying to get alpha back. 2002-07-16 23:16:31 +00:00
Eric W. Biederman
66bfde10d1 Add missing includes, Change #ifdef SMP to #if SMP == 1 2002-07-16 23:02:53 +00:00
Eric W. Biederman
4961c2dceb Move elfboot out of linuxbiosmain.
In hardwaremain call linuxbiosmain with it's traditional parameters,
but only call it if we aren't using elf_boot.
2002-07-11 13:31:59 +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
ab024f146d minor reformating 2002-05-25 05:51:03 +00:00
Ronald G. Minnich
02528bc28f Fix for $PIR! 2002-04-24 17:27:59 +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
495ae152e9 Works, needs more support 2002-04-08 17:13:26 +00:00
Ronald G. Minnich
5a86682eec Fixes since we now need to know the interrupt type of every single
one. sigh.
2002-04-08 02:53:47 +00:00
Ronald G. Minnich
d779b72dec more fixes. Matrox cards work OK now. 2002-03-31 06:25:56 +00:00
Ronald G. Minnich
05f6a6ad79 Support for calling VGA bios. 2002-03-29 23:11:13 +00:00
Ronald G. Minnich
b3a92efb13 A few fixes to the idt code.
Stub to call into linuxbios is now very small.
2002-03-29 05:56:37 +00:00
Ronald G. Minnich
ac7042a2f3 More changes for stupid VGA bioses. 2002-03-29 04:32:20 +00:00
Ronald G. Minnich
70fa314d22 vgabios support 2002-03-29 03:57:56 +00:00
Ronald G. Minnich
f69b932ac6 Primitive no-op idt code. call to idt code in hardware main (via #ifdef)
Conditional idt code usage in Config.
Make m1631 memory to 0xf0000
2002-03-28 17:42:19 +00:00
Ronald G. Minnich
c50f85267b stupid old pc. Have to add idt for vga bios. 2002-03-27 21:25:27 +00:00
Ronald G. Minnich
4355f389e2 First cut at running vgabios code. 2002-03-27 04:14:40 +00:00
Ronald G. Minnich
c4233508f4 skeletal structure for vgabios.c 2002-03-27 00:33:06 +00:00
Ronald G. Minnich
e44595d970 K7SEM is fixed. The problem was that you need
option USE_DOC_MIL=1
now, not just
option USE_DOC_MIL

The latter usage led to empty streams struct.

This is a real problem, though: you can no streams for reading and the linker
will happily create an empty streams structure. Which sucks, since you don't know
why your system won't boot.
2002-02-05 00:06:20 +00:00
Ronald G. Minnich
46f6e4b164 fixed some silly bugs. 2002-01-30 21:24:35 +00:00
Ronald G. Minnich
e2358a2fee Fixes for potential divide-by-zero in setup_com in some superios.
Not really needed, but in the BIOS paranoia is a healthy frame of mind.

Added some debug prints to newpci.c

Fixed sbc710 Config to ensure that com1 and com2 are enabled
   (input still does not work)

Changed
extern struct ... *all_superio in hardwaremain.c to
extern struct ... all_superio[] to avoid gcc dereferencing the pointer
   (when did THIS C behavior change go in?)
2002-01-30 20:52:43 +00:00
Eric W. Biederman
031d2a1ffd - Support for CMOS options
- Workaround cmos tables overlapping the traditional bios data segment
- Fixes to the p4dc6 examples to be syntactically correct
- Fixes to NLBConfig to fix the previos syntax error ``option foo bar'' is invalid
- Update docmil_fil_inbuf to only be compiled when the appropriate options are set
- Updates NLBConfig.py to export the variables MAINBOARD && TARGET_DIR
  as well as correct specify the generated files
2002-01-29 20:28:24 +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
2ec40910ea Remove unneeded references to mkrom 2002-01-15 21:04:52 +00:00
Li-Ta Lo
342d2e218f added ALIGN(4) for .stream section 2002-01-14 06:29:13 +00:00
Eric W. Biederman
7d601c3e2b - NLBConfig better error handling
- Implement payload so it attempts no processing of the image (I can now use it for ELF images!)
- Implement linux so it does what it has always done (but is now distinct from payload)
- Implement the new expr command so I can compute values (I got inspired)
- Micro fix to rom_fill_inbuf.c so we don't get back too many bytes (Thanks Ron)
- Fix for fallback_boot.c so it is always available.  Otherwise I can't say my boot succeeded.
- Added example config scripts for the p4dc6
2002-01-11 02:18:09 +00:00
Eric W. Biederman
9cda94e6d2 Updates to produce a linuxBIOS table. Modeled on the earlier
uniform_boot work, but relocated.  You need the new mkelfImage to
use the elf boot format.

Previous tables were updated so I could find both the start and
the end of where they were written in memory.

Minor p4dc6 updates, to disable some debugging code.

The mkelfImage-1.9 is checked in as util/mkelfImage
2002-01-08 07:04:35 +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
Ronald G. Minnich
23337bf8bf Added the 'payload' command.
Changed script from vmlinux.* to payload.*

linux command now calls payload
2001-12-14 00:05:52 +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
Ronald G. Minnich
075460ab26 Really simple fix for redhat 7.2! 2001-11-25 18:19:43 +00:00
Li-Ta Lo
ff2025e3d1 support non-smp and no serial console cases 2001-11-13 06:31:17 +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
e997aa5946 gctags is gone on new redhat! 2001-10-19 18:24:16 +00:00
Ronald G. Minnich
b890f329df Simple fixup for non-SMP linuxbioses 2001-10-15 22:59:38 +00:00
Ronald G. Minnich
49454af63a Updates 2001-10-15 22:49:16 +00:00
Ronald G. Minnich
ce6c4c7195 Minor SMP fixes. Fix to linuxpci to catch buggy chipsets 2001-10-15 18:19:40 +00:00