# ========== Copyright Header Begin ==========================================
# Hypervisor Software File: dropins.src
# Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
# - Do no alter or remove copyright notices
# - Redistribution and use of this software in source and binary forms, with
# or without modification, are permitted provided that the following
# - Redistribution of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# - Redistribution in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# Neither the name of Sun Microsystems, Inc. or the names of contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
# This software is provided "AS IS," without a warranty of any kind.
# ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
# INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
# MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
# ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
# DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
# OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
# FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
# DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
# ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
# SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
# You acknowledge that this software is not designed, licensed or
# intended for use in the design, construction, operation or maintenance of
# ========== Copyright Header End ============================================
# id: @(#)dropins.src 1.1 07/06/22
# copyright: Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# copyright: Use is subject to license terms.
# target <dropin-src> <dropin-name>
# source{ [code] terminated by }source
# create the code to execute fcode dropins
" /packages/SUNW,builtin-drivers" find-device
: load-driver ( str$ -- )
find-drop-in if ( adr,len )
>r dup >r 1 byte-load ( )
: interrupt-property ( n -- ) " interrupts" integer-property ;
: get-fcode ( adr1 len1 adr2 len2 -- true | false )
target bootprom.bin bootprom
depend ${BP}/dev/southbridge/ontario/isa/depend.mk
\ Load the ISA bridge driver
" /pci@7c0/pci@0/pci@2/pci@0,2/sound@1" find-package if
" /pci@7c0/pci@0/pci@1/pci@0/sound@1" find-package if
\ Per HW evaluation the bridge needs to be 'tuned' to increase the
\ throughput of DMA writes to Southbridge devices. The fix is to
\ program 0x031C91CA00451870 into the pci@0 side of the bridge at offset 0x178.
my-parent ihandle>phandle ( phandle )
" reg" rot get-package-property drop ( prop,len )
h# 00451870 over h# 178 wbsplit d# 28 << + + " config-l!" $call-parent
h# 031C91CA swap h# 17c wbsplit d# 28 << + + " config-l!" $call-parent
depend ${BP}/dev/sun4v-devices/vnexus/depend.mk
target vnexus.fc SUNW,vnexus
." Loading onboard drivers: "
0 0 " 100" " /" begin-package
" SUNW,vnexus" load-driver
depend ${BP}/pkg/termemu/fonts.mk
depend ${BP}/pkg/sunlogo/logo.mk
# Keyboard Translator Package
depend ${BP}/pkg/keyboard/translator/kbdtrans.mk
# Sun USB Keyboard Tables
depend ${BP}/pkg/keyboard/tables/usb/keyboard.mk
depend ${BP}/dev/sun4v-devices/vchannel/depend.mk
target vchannel.fc sun4v-chan-dev
: SUNW,sun4v-channel-devices ( -- ) " sun4v-chan-dev" load-driver ;
depend ${BP}/dev/sun4v-devices/vnet/depend.mk
target vnet.fc sun4v-vnet
: SUNW,sun4v-network ( -- ) " sun4v-vnet" load-driver ;
depend ${BP}/dev/sun4v-devices/vdisk/depend.mk
target vdisk.fc sun4v-vdisk
: SUNW,sun4v-disk ( -- ) " sun4v-vdisk" load-driver ;
depend ${BP}/dev/sun4v-devices/console/depend.mk
target console.fc sun4v-console
: SUNW,sun4v-console ( -- ) " sun4v-console" load-driver ;
# Network boot support package
depend ${BP}/pkg/netinet/obptftp.mk
depend ${BP}/dev/sun4v-devices/vpci/depend.mk
target vpci.fc sun4v-vpci
buildoptions vpci.fc:= FTHFLAGS += [define] 64BIT-ASSIGNED?
" sun4v-vpci" load-driver
depend ${BP}/dev/sun4v-devices/vebus/depend.mk
target vebus.fc sun4v-ebus
" sun4v-ebus" load-driver
depend ${BP}/dev/network/ophir/depend.mk
\ Use the subsystem vendor id 0x108e for Sun so we ensure that
\ we don't attach the Ophir driver to PCI-E cards. If we do,
\ it's possible that the Ophir driver could blow away the EEPROM
\ MAC, and the system wouldn't be able to recover the MAC.
: pciex8086,105e.108e.105e ( -- )
\ Also attach to SERDES part. We are not concerned about
\ corrupting the EEPROM for the SERDES version, since it's
\ not used on plugin cards.
alias pciex8086,1060.8086.105e pciex8086,105e.108e.105e
depend ${BP}/dev/ebus-devices/su-serial/depend.mk
target su-serial.fc su-serial
" su" encode-string encode+ " compatible" property
alias ebus-0,c2c000 ebus-serial
alias ebus-0,3fffff8 ebus-serial
# Broadcom Gigabit Ethernet
depend ${BP}/dev/network/bge/depend.mk
alias pci14e4,1659.14e4.1659 pci14e4,1659 \ BCM5703
alias pci14e4,16a7.14e4.9 pci14e4,1659 \ BCM5703?
alias pci14e4,1648.108e.1648 pci14e4,1659 \ BCM5704
alias pci14e4,1648.14e4.1648 pci14e4,1659 \ BCM5704
alias pci14e4,1668.108e.1668 pci14e4,1659 \ BCM5714
alias pci14e4,1668.14e4.1668 pci14e4,1659 \ BCM5714
# virtual flashprom support
# WARNING - BINDING ON A "name" PROPERTY
depend ${BP}/dev/sun4v-devices/flashprom/depend.mk
target flashprom.fc sun4v-flashprom
: flashprom ( -- ) " sun4v-flashprom" load-driver ;
depend ${BP}/dev/sun4v-devices/tod/depend.mk
: SUNW,sun4v-tod ( -- ) " sun4v-tod" load-driver ;
# SAS LSI 1064 driver (PCI-E version)
# depend ${BP}/dev/scsi/adapters/lsi1064/depend.mk
# buildoptions lsi1064.di:= MAKEDI = ${ROOT}/bin/makedi
# target lsi1064.fc pci1000,56
# " pci1000,56" load-driver
# alias pci1000,50.1000.1000 pci1000,56
# alias pci1000,56.1000.1000 pci1000,56
# alias pciex1000,50.1000.1000 pci1000,56
# alias pciex1000,50.1000.3010 pci1000,56
# alias pciex1000,56.1000.1000 pci1000,56
# alias pciex1000,56.1000.3010 pci1000,56
# alias pciex1000,58.1000.1000 pci1000,56
# alias pciex1000,58.1000.3010 pci1000,56
# alias pci1000,50.1000.3020 pci1000,56
depend ${BP}/dev/pci-bridge/dec21152/depend.mk
target dec21152.fc class060400
" class060400" load-driver
\ Lots of spurrious interrupts generated by broadcom when booting.
\ Broadcom said well, why don't you try clearing this undocumented
\ vendor specific config register, and it worked...
my-space " config-l@" $call-self h# 1041166 = if
0 my-space h# b4 + " config-l!" $call-self
# Legacy Southbridge Support below
depend ${BP}/dev/southbridge/isa-devices/serial/depend.mk
target serial.fc SUNW,tty
" ttya" encode-string " console" property
" console" delete-property
depend ${BP}/dev/ide/pci/depend.mk
target ide.fc class010100
: class010100 ( -- ) " class010100" load-driver ;
alias class01018a class010100
alias class01018f class010100
alias class0101ff class010100
depend ${BP}/dev/southbridge/usb/depend.mk
depend ${BP}/dev/usb-devices/device/depend.mk
: device ( -- adr len true | false ) " device" get-fcode ;
depend ${BP}/dev/usb-devices/combined/depend.mk
target combined.fc combined
: combined ( -- adr len true | false ) " combined" get-fcode ;
depend ${BP}/dev/usb-devices/interface/depend.mk
target interface.fc interface
: interface ( -- adr len true | false ) " interface" get-fcode ;
depend ${BP}/dev/usb-devices/hub/depend.mk
: hub ( -- adr len true | false ) " hub" get-fcode ;
depend ${BP}/dev/usb-devices/kbd/depend.mk
: kbd ( -- adr len true | false ) " kbd" get-fcode ;