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.
This commit is contained in:
parent
b5516dc586
commit
cb232f1e04
38 changed files with 3386 additions and 283 deletions
|
|
@ -3,5 +3,6 @@
|
|||
|
||||
void udelay(int usecs);
|
||||
void mdelay(int msecs);
|
||||
void delay(int secs);
|
||||
|
||||
#endif /* DELAY_H */
|
||||
|
|
|
|||
9
src/include/floppy_subr.h
Normal file
9
src/include/floppy_subr.h
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef FLOPPY_SUBR_H
|
||||
#define FLOPPY_SUBR_H
|
||||
|
||||
int floppy_init(void);
|
||||
int floppy_read(char *dest, unsigned long offset, unsigned long length);
|
||||
void floppy_fini(void);
|
||||
|
||||
|
||||
#endif /* FLOPPY_SUBR_H */
|
||||
15
src/include/northbridge/intel/82860/rdram.h
Normal file
15
src/include/northbridge/intel/82860/rdram.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
void display_rdram_regs(int);
|
||||
void display_spd_dev_row_col_bank(u8*, u8*, u8*);
|
||||
void display_rdram_regs_tparm(int);
|
||||
void display_smbus_spd(void);
|
||||
void display_mch_regs(void);
|
||||
void init_memory(void);
|
||||
|
||||
struct rdram_reg_values {
|
||||
u16 channel_a;
|
||||
u16 channel_b;
|
||||
};
|
||||
|
||||
void rdram_read_reg(u8, u16, u16, struct rdram_reg_values*);
|
||||
|
||||
|
||||
21
src/include/rom/read_bytes.h
Normal file
21
src/include/rom/read_bytes.h
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#ifndef ROM_READ_BYTES_H
|
||||
#define ROM_READ_BYTES_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef long byte_offset_t;
|
||||
|
||||
struct stream {
|
||||
int (*init)(void);
|
||||
byte_offset_t (*read)(void *vdest, byte_offset_t count);
|
||||
byte_offset_t (*skip)(byte_offset_t count);
|
||||
void (*fini)(void);
|
||||
};
|
||||
|
||||
#define __stream __attribute__ ((unused,__section__ (".rodata.streams")))
|
||||
|
||||
/* Defined by the linker... */
|
||||
extern struct stream streams[];
|
||||
extern struct stream estreams[];
|
||||
|
||||
#endif /* ROM_READ_BYTES_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue