[coreboot] Revisiting an old project from the FreeBIOS days

Gregg Levine gregg.drwho8 at gmail.com
Mon Oct 29 01:36:19 CET 2018


Hello!
I decided to revisit an old project from those days, and found that it
built almost correctly, after making a number of changes. For example
it looked as if our friend Eric was the originator behind it. I needed
to change his work directory settings to match the one I set up for
this interpretation of the process to build for an oldy but a goody.
It's the build process for the Intel 440GX, and the script file I'm
putting on this message shows what is happening towards the ending.
But it wasn't a normal ending, and I believe it could be easily
explained by a missing utility.

I can supply the original blob the things below came from. And I
remember a discussion as to what the target would have been found in,
I myself find it interesting that it's the original target that was
used for the Bochs project that's still running after about as many
years as I've known about our project.
-----
Gregg C Levine gregg.drwho8 at gmail.com
"This signature fought the Time Wars, time and again."
-------------- next part --------------
Script started on Sun 28 Oct 2018 06:48:09 PM EDT
root at scotty3A0:/usr/src/lobos/l440gx-build# make
make -C ./build phlash_floppy
make[1]: Entering directory `/usr/src/lobos/l440gx-build/build'
python /usr/src/lobos/freebios/util/config/NLBConfig.py /usr/src/lobos/l440gx-build/l440gx.config /usr/src/lobos/freebios
Will place Makefile, crt0.S, ldscript.ld in  /usr/src/lobos/l440gx-build/build
Process config file:  /usr/src/lobos/freebios/src/mainboard/intel/l440gx/Config
Now Process the  i386  base files
Added ldscript init file:  /usr/src/lobos/freebios/src/arch/i386/config/ldscript.base
Added ldscript init file:  /usr/src/lobos/freebios/src/arch/i386/config/ldscript.cacheram
Process config file:  /usr/src/lobos/freebios/src/config/Config
Process config file:  /usr/src/lobos/freebios/src/lib/Config
Process config file:  /usr/src/lobos/freebios/src/boot/Config
Process config file:  /usr/src/lobos/freebios/src/rom/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/boot/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/lib/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/smp/Config
Added mainboard init file:  cpu/i386/entry16.inc
Added ldscript init file:  /usr/src/lobos/freebios/src/cpu/i386/entry16.lds
Added mainboard init file:  cpu/i386/reset16.inc
Added ldscript init file:  /usr/src/lobos/freebios/src/cpu/i386/reset16.lds
Added mainboard init file:  northbridge/intel/440gx/reset_test.inc
Added mainboard init file:  superio/NSC/pc87309/setup_serial.inc
Added mainboard init file:  pc80/serial.inc
Added mainboard init file:  arch/i386/lib/console.inc
Process config file:  /usr/src/lobos/freebios/src/northbridge/intel/440gx/Config
Added mainboard init file:  arch/i386/lib/set_memory_size_noop.inc
Added mainboard init file:  northbridge/intel/440gx/raminit.inc
Added mainboard init file:  sdram/generic_sdram_enable.inc
Added mainboard init file:  sdram/generic_sdram.inc
Added mainboard init file:  sdram/generic_zero_ecc_sdram.inc
Added mainboard init file:  arch/i386/lib/cpu_reset.inc
Process config file:  /usr/src/lobos/freebios/src/southbridge/intel/piix4e/Config
Added mainboard init file:  cpu/p6/earlymtrr.inc
Process config file:  /usr/src/lobos/freebios/src/cpu/p6/Config
Process config file:  /usr/src/lobos/freebios/src/cpu/p5/Config
Trying to create  /usr/src/lobos/l440gx-build/build/Makefile.settings
Trying to create  /usr/src/lobos/l440gx-build/build/Makefile
Trying to create  /usr/src/lobos/l440gx-build/build/crt0.S
Trying to create  /usr/src/lobos/l440gx-build/build/LinuxBIOSDoc.config
perl -e 'print "CPUFLAGS :=\n"; foreach $var (split(" ", $ENV{VARIABLES})) { if (exists($ENV{$var})) { print "CPUFLAGS += -D$var" . (length($ENV{$var})?"=\x27$ENV{$var}\x27":"") ."\n"} else { print "CPUFLAGS += -U$var\n"} }' > cpuflags
python /usr/src/lobos/freebios/util/config/NLBConfig.py /usr/src/lobos/l440gx-build/l440gx.config /usr/src/lobos/freebios
Will place Makefile, crt0.S, ldscript.ld in  /usr/src/lobos/l440gx-build/build
Process config file:  /usr/src/lobos/freebios/src/mainboard/intel/l440gx/Config
Now Process the  i386  base files
Added ldscript init file:  /usr/src/lobos/freebios/src/arch/i386/config/ldscript.base
Added ldscript init file:  /usr/src/lobos/freebios/src/arch/i386/config/ldscript.cacheram
Process config file:  /usr/src/lobos/freebios/src/config/Config
Process config file:  /usr/src/lobos/freebios/src/lib/Config
Process config file:  /usr/src/lobos/freebios/src/boot/Config
Process config file:  /usr/src/lobos/freebios/src/rom/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/boot/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/lib/Config
Process config file:  /usr/src/lobos/freebios/src/arch/i386/smp/Config
Added mainboard init file:  cpu/i386/entry16.inc
Added ldscript init file:  /usr/src/lobos/freebios/src/cpu/i386/entry16.lds
Added mainboard init file:  cpu/i386/reset16.inc
Added ldscript init file:  /usr/src/lobos/freebios/src/cpu/i386/reset16.lds
Added mainboard init file:  northbridge/intel/440gx/reset_test.inc
Added mainboard init file:  superio/NSC/pc87309/setup_serial.inc
Added mainboard init file:  pc80/serial.inc
Added mainboard init file:  arch/i386/lib/console.inc
Process config file:  /usr/src/lobos/freebios/src/northbridge/intel/440gx/Config
Added mainboard init file:  arch/i386/lib/set_memory_size_noop.inc
Added mainboard init file:  northbridge/intel/440gx/raminit.inc
Added mainboard init file:  sdram/generic_sdram_enable.inc
Added mainboard init file:  sdram/generic_sdram.inc
Added mainboard init file:  sdram/generic_zero_ecc_sdram.inc
Added mainboard init file:  arch/i386/lib/cpu_reset.inc
Process config file:  /usr/src/lobos/freebios/src/southbridge/intel/piix4e/Config
Added mainboard init file:  cpu/p6/earlymtrr.inc
Process config file:  /usr/src/lobos/freebios/src/cpu/p6/Config
Process config file:  /usr/src/lobos/freebios/src/cpu/p5/Config
Trying to create  /usr/src/lobos/l440gx-build/build/Makefile.settings
Trying to create  /usr/src/lobos/l440gx-build/build/Makefile
Trying to create  /usr/src/lobos/l440gx-build/build/crt0.S
Trying to create  /usr/src/lobos/l440gx-build/build/LinuxBIOSDoc.config
make[1]: Leaving directory `/usr/src/lobos/l440gx-build/build'
make[1]: Entering directory `/usr/src/lobos/l440gx-build/build'
perl -e 'print "CPUFLAGS :=\n"; foreach $var (split(" ", $ENV{VARIABLES})) { if (exists($ENV{$var})) { print "CPUFLAGS += -D$var" . (length($ENV{$var})?"=\x27$ENV{$var}\x27":"") ."\n"} else { print "CPUFLAGS += -U$var\n"} }' > cpuflags
make[1]: Leaving directory `/usr/src/lobos/l440gx-build/build'
make[1]: Entering directory `/usr/src/lobos/l440gx-build/build'
gcc -x assembler-with-cpp -DASSEMBLY -E -I/usr/src/lobos/freebios/src/include -I/usr/src/lobos/freebios/src/arch/i386/include -I/usr/lib/gcc/i486-slackware-linux/3.4.6/include  -DCMD_LINE='"ro panic=5 root=/dev/hda1 console=ttyS0,115200 debug 3"' -DCONFIGURE_L2_CACHE -DENABLE_FIXED_AND_VARIABLE_MTRRS -DHAVE_MP_TABLE='1' -DHEAP_SIZE='0x40000' -DINTEL_PPRO_MTRR -DIOAPIC='1' -DL440GX -DMAX_CPUS='2' -DMEMORY_HOLE='1' -DNO_KEYBOARD -DPIIX4_DEVFN='0x90' -DROM_IMAGE_SIZE='65536' -DSERIAL_CONSOLE='1' -DSMP='1' -DSTACK_SIZE='0x2000' -DUPDATE_MICROCODE -DUSE_DEFAULT_LAYOUT='1' -DUSE_ELF_BOOT='1' -DUSE_GENERIC_ROM='1' -DZKERNEL_MASK='0x3ed' -DZKERNEL_START='0xfff40000' -D_RAMBASE='0x04000000' -D_ROMBASE='0xf0000' -Di586 -Di686 -I/usr/src/lobos/freebios/src crt0.S > crt0.s
gcc  -c crt0.s
/usr/src/lobos/freebios/src/northbridge/intel/440gx/raminit.inc: Assembler messages:
/usr/src/lobos/freebios/src/northbridge/intel/440gx/raminit.inc:876: Warning: using `%al' instead of `%eax' due to `b' suffix
rm -f linuxbios.a
ar cr linuxbios.a crt0.o linuxbiosmain.o linuxpci.o newpci.o printk.o serial_subr.o subr.o vsprintf.o memset.o memcpy.o memcmp.o malloc.o elfboot.o do_inflate.o floppy_subr.o delay.o uniform_boot.o fill_inbuf.o rom_fill_inbuf.o docmil_fill_inbuf.o tsunami_tigbus_rom_fill_inbuf.o serial_fill_inbuf.o tftp_fill_inbuf.o boot.o i386_subr.o params.o hardwaremain.o mpspec.o ioapic.o start_stop.o northbridge.o southbridge.o superio.o mainboard.o mptable.o microcode.o mtrr.o l2_cache.o cpuid.o
gcc -nostdlib -r -o linuxbios.o crt0.o linuxbios.a /usr/lib/gcc/i486-slackware-linux/3.4.6/libgcc.a
perl -e 'foreach $var (split(" ", $ENV{VARIABLES})) { if ($ENV{$var} =~ m/^(0x[0-9a-fA-F]+|0[0-7]+|[0-9]+)$/) { print "$var = $ENV{$var};\n"; }}' > ldoptions
echo "INCLUDE ldoptions" > ldscript.ld ; for file in  /usr/src/lobos/freebios/src/arch/i386/config/ldscript.base /usr/src/lobos/freebios/src/cpu/i386/entry16.lds /usr/src/lobos/freebios/src/cpu/i386/reset16.lds ; do echo "INCLUDE $file" >> ldscript.ld ; done
gcc -nostdlib -nostartfiles -static -o linuxbios -T ldscript.ld linuxbios.o
nm -n linuxbios > linuxbios.map
objcopy -O binary linuxbios linuxbios.strip
export size=`ls -l linuxbios.strip | (read p c u g size r ; echo $size)` ; \
	echo $size ; \
	dd if=linuxbios.strip of=linuxbios.rom bs=1 seek=`expr 65536 - $size`
65536
65536+0 records in
65536+0 records out
65536 bytes (66 kB) copied, 0.263486 seconds, 249 kB/s
make[1]: *** No rule to make target `/usr/src/lobos/freebios/../intel_flash_disk/p13-0125.bi1', needed by `p13-0125.bi1.header'.  Stop.
make[1]: Leaving directory `/usr/src/lobos/l440gx-build/build'
make: *** [all] Error 2
root at scotty3A0:/usr/src/lobos/l440gx-build# exit
Script done on Sun 28 Oct 2018 06:48:32 PM EDT

-------------- next part --------------
A non-text attachment was scrubbed...
Name: l440gx.config
Type: application/octet-stream
Size: 1036 bytes
Desc: not available
URL: <http://mail.coreboot.org/pipermail/coreboot/attachments/20181028/621c8efd/attachment.obj>


More information about the coreboot mailing list