mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
Fixes for CMD_LINE, and other fixes to set up ga-6bxc.
mtrr.c, remove redundant define string.h bug with 0 in strlen
This commit is contained in:
parent
c4de6e712f
commit
b56912ec3a
7 changed files with 58 additions and 25 deletions
|
@ -48,7 +48,6 @@ floppy: all
|
||||||
# can put it on the floppy (see ROOTDOIT)
|
# can put it on the floppy (see ROOTDOIT)
|
||||||
romimage: linuxbios.rom vmlinux.bin.gz.block
|
romimage: linuxbios.rom vmlinux.bin.gz.block
|
||||||
cat vmlinux.bin.gz.block linuxbios.rom > romimage
|
cat vmlinux.bin.gz.block linuxbios.rom > romimage
|
||||||
cp romimage /tmp
|
|
||||||
|
|
||||||
linuxbios.rom: linuxbios.strip mkrom
|
linuxbios.rom: linuxbios.strip mkrom
|
||||||
./mkrom -s 64 -f -o linuxbios.rom linuxbios.strip
|
./mkrom -s 64 -f -o linuxbios.rom linuxbios.strip
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char rcsid[] = "$Id$";
|
static char rcsid[] = "$Id$";
|
||||||
#endif
|
#endif
|
||||||
#define DEBUG
|
|
||||||
#include <cpu/p6/msr.h>
|
#include <cpu/p6/msr.h>
|
||||||
#include <cpu/p6/mtrr.h>
|
#include <cpu/p6/mtrr.h>
|
||||||
#include <printk.h>
|
#include <printk.h>
|
||||||
|
|
|
@ -6,14 +6,6 @@
|
||||||
* (c) 1999 Martin Mares <mj@ucw.cz>
|
* (c) 1999 Martin Mares <mj@ucw.cz>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef DEBUG
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
#define DBG(x...) printk(x)
|
|
||||||
#else
|
|
||||||
#define DBG(x...)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PCI_PROBE_BIOS 1
|
#define PCI_PROBE_BIOS 1
|
||||||
#define PCI_PROBE_CONF1 2
|
#define PCI_PROBE_CONF1 2
|
||||||
#define PCI_PROBE_CONF2 4
|
#define PCI_PROBE_CONF2 4
|
||||||
|
|
|
@ -4,10 +4,38 @@
|
||||||
//extern inline void strcpy(char *dst, char *src) {while (*src) *dst++ = *src++;}
|
//extern inline void strcpy(char *dst, char *src) {while (*src) *dst++ = *src++;}
|
||||||
|
|
||||||
//extern inline int strlen(char *src) { int i = 0; while (*src++) i++; return i;}
|
//extern inline int strlen(char *src) { int i = 0; while (*src++) i++; return i;}
|
||||||
|
|
||||||
|
#if 1
|
||||||
extern inline int strnlen(const char *src, int max) {
|
extern inline int strnlen(const char *src, int max) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
if (max<0) {
|
||||||
|
while (*src++)
|
||||||
|
i++;
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
else {
|
||||||
while ((*src++) && (i < max))
|
while ((*src++) && (i < max))
|
||||||
i++;
|
i++;
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline size_t strnlen(const char * s, size_t count)
|
||||||
|
{
|
||||||
|
int d0;
|
||||||
|
register int __res;
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"movl %2,%0\n\t"
|
||||||
|
"jmp 2f\n"
|
||||||
|
"1:\tcmpb $0,(%0)\n\t"
|
||||||
|
"je 3f\n\t"
|
||||||
|
"incl %0\n"
|
||||||
|
"2:\tdecl %1\n\t"
|
||||||
|
"cmpl $-1,%1\n\t"
|
||||||
|
"jne 1b\n"
|
||||||
|
"3:\tsubl %2,%0"
|
||||||
|
:"=a" (__res), "=&d" (d0)
|
||||||
|
:"c" (s),"1" (count));
|
||||||
|
return __res;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -6,3 +6,7 @@
|
||||||
void mainboard_fixup()
|
void mainboard_fixup()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void final_mainboard_fixup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -30,6 +30,11 @@ void nvram_on()
|
||||||
// for now, I am putting in the old keyboard code, until we figure out
|
// for now, I am putting in the old keyboard code, until we figure out
|
||||||
// the best way to do this -- RGM
|
// the best way to do this -- RGM
|
||||||
|
|
||||||
|
#ifdef NO_KEYBOARD
|
||||||
|
void keyboard_on()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#else
|
||||||
void keyboard_on()
|
void keyboard_on()
|
||||||
{
|
{
|
||||||
u32 controlbits;
|
u32 controlbits;
|
||||||
|
@ -70,5 +75,5 @@ void keyboard_on()
|
||||||
|
|
||||||
/* now keyboard should work, ha ha. */
|
/* now keyboard should work, ha ha. */
|
||||||
pc_keyboard_init();
|
pc_keyboard_init();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -22,6 +22,7 @@ linuxbiosbase = 0xf0000;
|
||||||
|
|
||||||
objectrules = [];
|
objectrules = [];
|
||||||
userrules = [];
|
userrules = [];
|
||||||
|
userdefines = [];
|
||||||
|
|
||||||
# this is the absolute base rule, and so is very special.
|
# this is the absolute base rule, and so is very special.
|
||||||
mainrulelist = "all"
|
mainrulelist = "all"
|
||||||
|
@ -191,16 +192,16 @@ def adddepend(dir, rule):
|
||||||
makebaserules[rulename][0] = makebaserules[rulename][0] + " " + depend
|
makebaserules[rulename][0] = makebaserules[rulename][0] + " " + depend
|
||||||
|
|
||||||
def makedefine(dir, rule):
|
def makedefine(dir, rule):
|
||||||
userrules.append(rule)
|
userdefines.append(rule)
|
||||||
|
|
||||||
def option(dir, option):
|
def option(dir, option):
|
||||||
makeoptions[option] = 1;
|
makeoptions[option] = "-D" + option
|
||||||
|
|
||||||
def nooption(dir, option):
|
def nooption(dir, option):
|
||||||
makeoptions[option] = 0;
|
makeoptions[option] = "-U" + option
|
||||||
|
|
||||||
def commandline(dir, command):
|
def commandline(dir, command):
|
||||||
rule = "CMD_LINE=\'\"" + command + "\"\'"
|
makeoptions["CMD_LINE"] = "-DCMD_LINE=\'\"" + command + "\"\'"
|
||||||
makedefine(dir, rule)
|
|
||||||
|
|
||||||
# we do all these rules by hand because docipl will always be special
|
# we do all these rules by hand because docipl will always be special
|
||||||
# it's more or less a stand-alone bootstrap
|
# it's more or less a stand-alone bootstrap
|
||||||
|
@ -406,10 +407,8 @@ def writemakefile(path):
|
||||||
file.write("TOP=%s\n" % (treetop))
|
file.write("TOP=%s\n" % (treetop))
|
||||||
file.write("CPUFLAGS=\n")
|
file.write("CPUFLAGS=\n")
|
||||||
for z in makeoptions.keys():
|
for z in makeoptions.keys():
|
||||||
if (makeoptions[z]):
|
print "key is %s, val %s\n" % (z, makeoptions[z])
|
||||||
file.write("CPUFLAGS += -D%s\n" % (z))
|
file.write("CPUFLAGS += %s\n" % (makeoptions[z]))
|
||||||
else:
|
|
||||||
file.write("CPUFLAGS += -U%s\n" % (z))
|
|
||||||
|
|
||||||
# print out all the object dependencies
|
# print out all the object dependencies
|
||||||
# There is ALWAYS a crt0.o
|
# There is ALWAYS a crt0.o
|
||||||
|
@ -417,14 +416,20 @@ def writemakefile(path):
|
||||||
for i in range(len(objectrules)):
|
for i in range(len(objectrules)):
|
||||||
file.write("OBJECTS += %s\n" % (objectrules[i][0]))
|
file.write("OBJECTS += %s\n" % (objectrules[i][0]))
|
||||||
|
|
||||||
# print out the base rules
|
|
||||||
|
|
||||||
|
# print out the user defines
|
||||||
|
for i in range(len(userdefines)):
|
||||||
|
print "rule %d is %s" % (i, userdefines[i])
|
||||||
|
file.write("%s\n" % userdefines[i])
|
||||||
|
|
||||||
|
# print out the base rules
|
||||||
# need to have a rule that counts on 'all'
|
# need to have a rule that counts on 'all'
|
||||||
file.write("mainrule: %s\n" % mainrulelist)
|
file.write("mainrule: %s\n" % mainrulelist)
|
||||||
# for i in range(len(baserules)):
|
# for i in range(len(baserules)):
|
||||||
# file.write("%s\n" % baserules[i])
|
# file.write("%s\n" % baserules[i])
|
||||||
|
|
||||||
for i in range(len(userrules)):
|
for i in range(len(userrules)):
|
||||||
|
print "rule %d is %s" % (i, userrules[i])
|
||||||
file.write("%s\n" % userrules[i])
|
file.write("%s\n" % userrules[i])
|
||||||
|
|
||||||
# print out any user rules
|
# print out any user rules
|
||||||
|
|
Loading…
Add table
Reference in a new issue