/* * Copyright 2004 Tyan Computer * by yhlu@tyan.com */ #include #include #include #include #include #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 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 = { #if CONFIG_CHIP_NAME == 1 CHIP_NAME("Onboard PCI") #endif .enable_dev = onboard_enable, };