The question of code reuse came up. How much code gets reused, board to
board?

Let's look at winfast. Here are the files to build the bios:

 /users/rminnich/src/bios/freebios/src/arch/i386/boot/boot.c
 /users/rminnich/src/bios/freebios/src/arch/i386/lib/hardwaremain.c
 /users/rminnich/src/bios/freebios/src/arch/i386/lib/i386_subr.c
 /users/rminnich/src/bios/freebios/src/arch/i386/lib/params.c
 /users/rminnich/src/bios/freebios/src/boot/uniform_boot.c
 /users/rminnich/src/bios/freebios/src/cpu/p5/cpuid.c
 /users/rminnich/src/bios/freebios/src/cpu/p6/ioapic.c
 /users/rminnich/src/bios/freebios/src/cpu/p6/l2_cache.c
 /users/rminnich/src/bios/freebios/src/cpu/p6/microcode.c
 /users/rminnich/src/bios/freebios/src/cpu/p6/mpspec.c
 /users/rminnich/src/bios/freebios/src/cpu/p6/mtrr.c
 /users/rminnich/src/bios/freebios/src/lib/do_inflate.c
 /users/rminnich/src/bios/freebios/src/lib/elfboot.c
 /users/rminnich/src/bios/freebios/src/lib/linuxbiosmain.c
 /users/rminnich/src/bios/freebios/src/lib/linuxpci.c
 /users/rminnich/src/bios/freebios/src/lib/malloc.c
 /users/rminnich/src/bios/freebios/src/lib/memcmp.c
 /users/rminnich/src/bios/freebios/src/lib/memcpy.c
 /users/rminnich/src/bios/freebios/src/lib/memset.c
 /users/rminnich/src/bios/freebios/src/lib/newpci.c
 /users/rminnich/src/bios/freebios/src/lib/printk.c
 /users/rminnich/src/bios/freebios/src/lib/serial_subr.c
 /users/rminnich/src/bios/freebios/src/lib/subr.c
 /users/rminnich/src/bios/freebios/src/lib/vsprintf.c

/users/rminnich/src/bios/freebios/src/mainboard/leadtek/winfast6300/irq_tables.c

/users/rminnich/src/bios/freebios/src/mainboard/leadtek/winfast6300/mainboard.c

/users/rminnich/src/bios/freebios/src/northsouthbridge/sis/630/northbridge.c

/users/rminnich/src/bios/freebios/src/northsouthbridge/sis/630/southbridge.c
 /users/rminnich/src/bios/freebios/src/pc80/keyboard.c
 /users/rminnich/src/bios/freebios/src/rom/docmil_fill_inbuf.c
 /users/rminnich/src/bios/freebios/src/superio/sis/950/superio.c


comment:
10 cpu-specific files, 15 totally hardware-independent, 2
mainboard-dependent, 1 chipset-dependent, 1 oddball (pc80/keyboard.c)

In terms of lines of code in files:

cpu specific: 2759 lines.
totally independent: 2638 lines
mainbard: 419 lines
chipset: 518 lines
oddball: 54 lines

So from the point of view of a mainboard alone, there's about 5000 lines
of non-mainboard-dependent code, and 419 lines of mainboard-dependent
code. That's not too bad. From chipset+mainboard point of view, there's
1000 lines of chipset+mainboard code, and 5000 lines of
non-mainboard+chipset code, which I still think is ok, since that chipset
code is used by many mainboards.

Summary: I think code reuse is ok in linuxbios.

ron



Reply via email to