Commit graph

25 commits

Author SHA1 Message Date
Stefan Reinauer
be31c46733 This one is going to break all your changes, but fix up a lot of code.
* exchange [u]intXX_t with [us]XX types as we agreed upon.
* drop unneeded btext.h for now
* fix license header in device/pci_ops.c
* fix printk in device/pci_ops.c
* add signed types to arch/types.h
* fix include/elf.h (remove glibc-ism)
* add appropriate copyright notice to lib/delay.c
* add pciconf.h header


Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@144 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-27 14:03:20 +00:00
Ronald G. Minnich
7513bfdb03 Lots of changes here, build broken, but people need to see this.
renamed the phase3 etc. to stuff like phase3_scan, so you can get a
rought idea what it is. The names mean more. 

adding pci_device and, at the same time, showing how we can get rid of
the really ugly stuff that crept in. note you can specify ops in the
dts, which avoids the need for hideous stuff like this:
static void enable_dev(struct device *dev)
{
        /* Set the operations if it is a special bus type */
        if (dev->path.type == DEVICE_PATH_PCI_DOMAIN) {
                dev->ops = &pci_domain_ops;
                pci_set_method(dev);
        }
        else if (dev->path.type == DEVICE_PATH_APIC_CLUSTER) {
                dev->ops = &cpu_bus_ops;
        }
}

So that foolishness is gone. 

added delay functions. 

Note that we have include/lib.h, and define all the functions in there,
instead of in lots of fiddly includes. 

Brought back the enable op, once I understood it; renamed it to
something that makes sense. 


I'll be on a plane soon, will continue to work, but at least you can see
what's going on here. 

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@139 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-27 06:02:52 +00:00
Stefan Reinauer
2e42b88a9a Large patch but trivial: Fix Copright error.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@137 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-26 23:17:40 +00:00
Ronald G. Minnich
7514f6507c This wraps up re-adding linuxbios table support in a limited form.
Remaining to be done: 
PIRQ table
MP table
ACPI table
relocate the GDT reload to a sensible place -- or figure out if we even
need to bother; we're back to execute in place and the GDT is in flash
rom ==> we can leave it until we boot the payload I think. 

At this point, however, we've got the basic bits to sensibly create
tables. 

This has been tested and works on bochs. 

It is working to a point, but still failing on qemu for reasons we don't
quite understand. 

Elfboot
Found ELF candidate at offset 0
New segment addr 0x100000 size 0x21310 offset 0xc0 filesize 0x7348
(cleaned up) New segment addr 0x100000 size 0x7348 offset 0xc0
set 00100000 to 0 for 0 bytes
Copy to 00100000 from fffc3f24 for 29512 bytes
New segment addr 0x121320 size 0x48 offset 0x7420 filesize 0x48
(cleaned up) New segment addr 0x121320 size 0x48 offset 0x7420
set 00121320 to 0 for 0 bytes
Copy to 00121320 from fffcb284 for 72 bytes
Dropping non PT_LOAD segment
Dropping non PT_LOAD segment
Jumping to boot code at 0x1047c0
FILO version 0.5 (rminnich@q.ccstar.lanl.gov) Sun Feb 25 10:19:16 MST
2007
collect_sys_info: boot eax = 0xfe
collect_sys_info: boot ebx = 0xffffd4ca
collect_sys_info: boot arg = 0x1047c0
collect_linuxbios_info: NOT Searching for LinuxBIOS tables...
Can't get memory map from firmware. Using hardcoded default.
collect_sys_info: 0000000000000000-00000000000a0000
collect_sys_info: 0000000000100000-0000000002000000
collect_sys_info: RAM 32 MB
relocate: Current location: 0x1000c7-0x12142e
relocate: Relocating to 0x1fdec90-0x1fffff7... ok
Press <Enter> for default boot, or <Esc> for boot prompt...  
boot: hdc1:/phase1 root=/dev/hdc1  console=ttyS0,115200
malloc_check: invalid head->prev_size: 0x0

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@133 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-26 14:54:21 +00:00
Ronald G. Minnich
4282d12cdc Initial cleanup of the linuxbios tables code. Now it seems we need
resource .c functions -- sigh -- this will be next. 

fix types, fix some usage, but we do not yet generate pirqi, mptables,
or acpi. This will be next. 

This code will be called from phase6 in stage 2, and probably 
attached to a cpu. Or, it will be inline in the stage2.c code, since 
the need for tables is generic. 

I'm also going to move the cryptic usage of lgdt from here to stage 2,
phase 2, of the cpu code. The device model improvements are making it
easier to think about when things happen, we are finding. 

I'm going to get lunch and go see some of brussels. It's a miserable day
but ... 

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>




git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@130 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-26 11:45:51 +00:00
Ronald G. Minnich
cd4625560e add tables support to LinuxBIOS.
We have merged the plethora of include files into one. A given linuxbios
target architecture must support all the functions described therein. 
All the structs etc. in include/tables.h are known to be
architecture-independent. 

We hope this new layout is easier to folow than the old one. 

Todo: Remove the LGDT code from tables writing (how did THAT get in
there ;-) and put it somewhere sane; add OFW table support. We are going
to need some nice OFW table code. 

Also, the license headers should be correct in this commit. 

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@128 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-26 09:43:12 +00:00
Uwe Hermann
b68d589126 s/linuxbios/LinuxBIOS/ in a number of places (trivial).
Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@124 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-26 01:19:39 +00:00
Ronald G. Minnich
2393fcedfa Put back FSF headers to ensure the provenance of this file is
understood. This file has been tested and works with FILO 0.5.



Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@123 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-25 21:11:30 +00:00
Stefan Reinauer
5b7bd73654 some more research on file origins.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@118 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-25 14:15:58 +00:00
Stefan Reinauer
5a65718dcc clean up headers as requested. drop some dead code.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@111 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-24 17:03:53 +00:00
Ronald G. Minnich
08016c4ca8 Basic elfboot functionality is in now.
We're trying to avoid the bounce buffer mess, which is really complex, 
by running elfboot out of the boot block. This code includes a really 
dumb allocator in elfboot which may or may not work. It basically
allocates off the elfboot() stack. 

This builds, but elfboot is not tested. That's next. 
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@102 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 13:39:07 +00:00
Ronald G. Minnich
83ac9292bd add the arch-dependent elf defines.
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@101 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 12:38:34 +00:00
Ronald G. Minnich
534f6d31be mods to elf.h to use arch/elf.h
Some updates to the docs, but these will change more. 
add memcmp. Crude implementation, but it really does not matter. 
add compute_ip_checksum.c
mods to elfboot. Thanks to our new design, BOUNCE BUFFERS ARE DEAD. Yee
ha!
updates to makefile

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@96 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 12:21:47 +00:00
Stefan Reinauer
791e590dea * rename devices to device for consistency
* fix malloc.c warnings
* add PCI_BUS_SEGN_BITS to pci.h


Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@92 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 11:23:37 +00:00
Stefan Reinauer
15dfcd2198 * fix some license headers
* add generic lib.h header for lib/ prototypes
* fix some prototypes
* put back return value parsing of stage2

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>




git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@91 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 11:03:56 +00:00
Ronald G. Minnich
592d34e1fc ip checksum file for elf booting.
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@90 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 11:02:04 +00:00
Ronald G. Minnich
9fed5d8f66 Files needs for booting a payload. We are reducing the number of
directories in include, since having all those directories has obscured
understanding. 

Add elfboot.c to lib. Same argument, it is not in boot, it is in lib,
since fewer directories is better. 

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@89 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 10:58:00 +00:00
Ronald G. Minnich
01d7545b50 Set up default root device. Fix up printk stuff.
Fix up dts to set up ops struct member. Fix dts for qemu mainboard. 
We are getting past stage2 now, it is time for elfboot. 

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@88 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-23 10:38:22 +00:00
Stefan Reinauer
d0d2aa1b43 * drop typedef device_t
* rename magic device callbacks to phases
* drop obsolete printk_* macros
* add some prototypes to lar.h

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> 
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@74 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-02-22 21:18:02 +00:00
Uwe Hermann
110c9f7e1c For some files:
indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs *.[ch]

(trivial)

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@65 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-01-30 13:15:04 +00:00
Uwe Hermann
fb1793faca Add a license header where it was missing.
Use standard LinuxBIOS license header (trivial, no semantic changes).

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@63 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-01-30 11:10:39 +00:00
Stefan Reinauer
c275218a89 Add a first bit of a framework. Builds the following parts, in
accordance to the newboot document:

* reset vector (16 bytes)
* vpd (240bytes)
* boot block (8k - 256b)
* lar archive (256-8 k)

The boot block is kind of simple, still. It enables pmode, car, and
starts looking for an initram module in the lar archive.

Note: This doesnt do much at the moment,
as gas seems to produce buggy code in init.S.

Take this as a suggestion of how it might work and please provide
patches fixing it and bringing it into shape.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@62 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-01-29 22:09:50 +00:00
Stefan Reinauer
f2000cd4ad * This patch renames remainders the arch i386 to x86.
* fix arch/io.h to use consistent types
* add compression code and start integration into Kconfig
* update to newer version of Kconfig, and rename some occurences
  of "Linux" to "LinuxBIOS"
* set up Make framework to create linuxbios.rom

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G Minnich <rminnich@lanl.gov>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@55 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-01-04 20:12:02 +00:00
Stefan Reinauer
8e23c524b1 get the tree compiling. it does nothing yet.
These are all trivial changes.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@50 f3766cd6-281f-0410-b1cd-43a5c92072e9
2006-12-03 20:14:21 +00:00
Stefan Reinauer
31bb218552 big move orgy.
Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
Acked-by: Peter Stuge <peter@stuge.se>
Acked-by: Ronald G Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>


git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@47 f3766cd6-281f-0410-b1cd-43a5c92072e9
2006-11-22 12:15:55 +00:00