Author: myles Date: 2009-11-06 17:09:11 +0000 (Fri, 06 Nov 2009) New Revision: 4922
Added: trunk/src/drivers/pci/ trunk/src/drivers/pci/Makefile.inc trunk/src/drivers/pci/onboard/ trunk/src/drivers/pci/onboard/Config.lb trunk/src/drivers/pci/onboard/Makefile.inc trunk/src/drivers/pci/onboard/chip.h trunk/src/drivers/pci/onboard/onboard.c Log: Revert the deletion of drivers/pci/onboard that snuck in ahead of its time.
Signed-off-by: Myles Watson mylesgw@gmail.com Acked-by: Myles Watson mylesgw@gmail.com
Added: trunk/src/drivers/pci/Makefile.inc =================================================================== --- trunk/src/drivers/pci/Makefile.inc (rev 0) +++ trunk/src/drivers/pci/Makefile.inc 2009-11-06 17:09:11 UTC (rev 4922) @@ -0,0 +1 @@ +subdirs-y += onboard
Added: trunk/src/drivers/pci/onboard/Config.lb =================================================================== --- trunk/src/drivers/pci/onboard/Config.lb (rev 0) +++ trunk/src/drivers/pci/onboard/Config.lb 2009-11-06 17:09:11 UTC (rev 4922) @@ -0,0 +1,4 @@ +config chip.h + +object onboard.o +
Added: trunk/src/drivers/pci/onboard/Makefile.inc =================================================================== --- trunk/src/drivers/pci/onboard/Makefile.inc (rev 0) +++ trunk/src/drivers/pci/onboard/Makefile.inc 2009-11-06 17:09:11 UTC (rev 4922) @@ -0,0 +1 @@ +obj-y += onboard.o
Added: trunk/src/drivers/pci/onboard/chip.h =================================================================== --- trunk/src/drivers/pci/onboard/chip.h (rev 0) +++ trunk/src/drivers/pci/onboard/chip.h 2009-11-06 17:09:11 UTC (rev 4922) @@ -0,0 +1,11 @@ +#ifndef PCI_ONBOARD_H +#define PCI_ONBOARD_H + +struct drivers_pci_onboard_config +{ + unsigned long rom_address; +}; +struct chip_operations; +extern struct chip_operations drivers_pci_onboard_ops; + +#endif
Added: trunk/src/drivers/pci/onboard/onboard.c =================================================================== --- trunk/src/drivers/pci/onboard/onboard.c (rev 0) +++ trunk/src/drivers/pci/onboard/onboard.c 2009-11-06 17:09:11 UTC (rev 4922) @@ -0,0 +1,78 @@ +/* + * Copyright 2004 Tyan Computer + * by yhlu@tyan.com + */ + +#include <console/console.h> + +#include <device/device.h> +#include <device/pci.h> +#include <device/pci_ids.h> +#include <device/pci_ops.h> +#include "chip.h" + +/* + * How to use the onboard device driver for option rom execution: + * + * 1. You need to add the driver to your mainboard Config.lb: + * + * chip drivers/pci/onboard + * device pci x.0 on end + * register "rom_address" = "0xfff80000" + * end + * 2. Reduce the size of your normal (or fallback) image, by adding the + * following lines to your target Config.lb, after romimage "normal" + * # 48K for SCSI FW or ATI ROM + * option CONFIG_ROM_SIZE = 512*1024-48*1024 + * 3. Create your vgabios.bin, for example using awardeco and put it in the + * directory of your target Config.lb. You can also read an option rom from + * a running system, but this is unreliable, as some option roms are changed + * during execution: + * # dd if=/dev/mem of=atix.rom skip=1536 count=96 + * 4. After you built coreboot.rom, attach the option rom to your coreboot + * image: + * # cat ../atix.rom ./normal/coreboot.rom ./fallback/coreboot.rom > coreboot.rom + * + * Alternatively you can use the following script "nsxv" to build your image + * Usage: + * # ./nsxv s2850 + * + * #!/bin/bash + * MBVENDOR=tyan + * MBMODEL=$1 + * LBROOT=/home/yhlu/xx/xx + * + * echo $1 + * date + * + * cd "$LBROOT/freebios2/targets" + * rm -rf "$MBVENDOR/$MBMODEL/$MBMODEL" + * ./buildtarget "$MBVENDOR/$MBMODEL" &> "$LBROOT/x_b.txt" + * cd "$MBVENDOR/$MBMODEL/$MBMODEL" + * #make clean + * eval make &> "$LBROOT/x_m.txt" + * if [ $? -eq 0 ]; then + * echo "ok." + * else + * echo "FAILED! Log excerpt:" + * tail -n 15 "$LBROOT/x_m.txt" + * exit + * fi + * cat ../atix.rom ./normal/coreboot.rom ./fallback/coreboot.rom > "$LBROOT/rom/"$MBMODEL"_coreboot.rom" + * cp -f "$LBROOT/rom/"$MBMODEL"_coreboot.rom" /home/yhlu/ + * + * date + * + */ + +static void onboard_enable(device_t dev) +{ + struct drivers_pci_onboard_config *conf; + conf = dev->chip_info; + dev->rom_address = conf->rom_address; +} + +struct chip_operations drivers_pci_onboard_ops = { + CHIP_NAME("Onboard PCI") + .enable_dev = onboard_enable, +};