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
