Hello Mark!
I modified src/Config while building the etherboot executive. I removed -DPCBIOS flag and added -DLINUXBIOS. Do I need anything else to modify for linuxbios on Epia ?
Also, May I ask you a question about other topic ? The PCI configuration space values in vt8601/raminit.inc seems strange when I refer to vt8601 Datasheet and BIOS porting guide. Are the values stable and optimized ? Because I'm beginner for bios, I seems like that I don't know too many thing. I hope you to understand me.
Anyway, My config file for etherboot is below.
Thank you for your help! ===================================================================== # # Config for Etherboot/32 # # Do not delete the tag OptionDescription and /OptionDescription # It is used to automatically generate the documentation. # # <OptionDescription> # User interaction options: # # -DASK_BOOT=n # Ask "Boot from Network or from Local? " at startup, # timeout after n seconds (0 = no timeout); this # can be done in a more generic way by using the # IMAGE_MENU, but it requires that the "bootp" # server is accessible, even when booting locally. # If unset, boot immediately using the default. # -DANS_DEFAULT=ANS_NETWORK # Assume Network to previous question # (alternative: ANS_LOCAL) on timeout or Return key # See etherboot.h for prompt and answer strings. # -DBAR_PROGRESS # Use rotating bar instead of sequential dots # to indicate an IP packet transmitted. # -DMOTD # Display message of the day; read vendortags.html # for further information. (Deprecated) # -DIMAGE_MENU # Allow to interactively chose between different # bootimages; read vendortags.html for further # information. (Deprecated) # -DPASSWD # Enable password protection for boot images; this # requires -DIMAGE_MENU. (Deprecated) # -DUSRPARMS # Allow the user to interactively edit parameters # that are passed to the booted kernel; you should # probably enable -DPASSWD as well; this feature # requires -DIMAGE_MENU. (Deprecated) # -DANSIESC # Evaluate a subset of common ANSI escape sequences # when displaying the message of the day; this # probably does not make sense unless you also # define -DMOTD or at least -DIMAGE_MENU. It is # possible to combine this option with -DCONSOLE_DUAL, # but you have to be aware that the boot menu will # no longer use ANSI escapes to be compatible with the # serial console. Also be careful with your banners, as # they may confuse your serial console. Generally you # lose most of the ANSIESC functionality. (Deprecated) # -DGFX # Support extensions to the ANSI escape sequences for # displaying graphics (icons or logos); this # requires -DANSIESC. It probably does not make sense # to use -DGFX if you have -DCONSOLE_DUAL, as the # serial console normally cannot handle the GFX stuff. # (Deprecated) # -DSHOW_NUMERIC # Display menu item labels as numbers. # -DDELIMITERLINES # Print a line of = characters at the start # and also just before starting an image. # -DSIZEINDICATOR # Update a running total of the amount of code # loaded so far, in kilobytes. # # Boot autoconfiguration protocol options: # # -DNO_DHCP_SUPPORT # Use BOOTP instead of DHCP. # -DRARP_NOT_BOOTP # Use RARP instead of BOOTP/DHCP. # -DREQUIRE_VCI_ETHERBOOT # Require an encapsulated Vendor Class Identifier # of "Etherboot" in the DHCP reply # Requires DHCP support. # -DALLOW_ONLY_ENCAPSULATED # Ignore Etherboot-specific options that are not within # the Etherboot encapsulated options field. This option # should be enabled unless you have a legacy DHCP server # configuration from the bad old days before the use of # encapsulated Etherboot options. # # Boot tuning parameters: # # -DCONGESTED # Turns on packet retransmission. Use it on a # congested network, where the normal operation # can't boot the image. # -DBACKOFF_LIMIT # Sets the maximum RFC951 backoff exponent to n. # Do not set this unreasonably low, because on networks # with many machines they can saturate the link # (the delay corresponding to the exponent is a random # time in the range 0..3.5*2^n seconds). Use 5 for a # VERY small network (max. 2 minutes delay), 7 for a # medium sized network (max. 7.5 minutes delay) or 10 # for a really huge network with many clients, frequent # congestions (max. 1 hour delay). On average the # delay time will be half the maximum value. If in # doubt about the consequences, use a larger value. # Also keep in mind that the number of retransmissions # is not changed by this setting, so the default of 20 # may no longer be appropriate. You might need to set # MAX_ARP_RETRIES, MAX_BOOTP_RETRIES, MAX_TFTP_RETRIES # and MAX_RPC_RETRIES to a larger value. # # Boot device options: # # -DCAN_BOOT_DISK # Can boot from floppy/hd if bootimage matches the # pattern "/dev/[fhs]d*". # -DTRY_FLOPPY_FIRST # If > 0, tries that many times to read the boot # sector from a floppy drive before booting from # ROM. If successful, does a local boot. # It assumes the floppy is bootable. # Requires -DCAN_BOOT_DISK. # -DEMERGENCYDISKBOOT # If no BOOTP server can be found, then boot from # local disk. The accessibility of the TFTP server # has no effect, though! So configure your BOOTP # server properly. You should probably reduce # MAX_BOOTP_RETRIES to a small number like 3. # # Boot image options: # # -DTAGGED_IMAGE # Add tagged image kernel boot support (Recommended). # -DAOUT_IMAGE # Add a.out kernel boot support (generic). # -DELF_IMAGE # Add generic ELF kernel boot support (Recommended). # -DIMAGE_MULTIBOOT # Add Multiboot image support (currently only # for ELF images). # Without this, generic ELF support is selected. # -DIMAGE_FREEBSD # Add FreeBSD image loading support (requires at least # -DAOUT_IMAGE and/or -DELF_IMAGE). # -DFREEBSD_KERNEL_ENV # Pass in FreeBSD kernel environment # -DAOUT_LYNX_KDI # Add Lynx a.out KDI support # # -DDOWNLOAD_PROTO_TFTP # If defined, boots by TFTP (Recommended). # -DDOWNLOAD_PROTO_NFS # If defined, boots from a NFS mount and disables # TFTP loading. Default is DOWNLOAD_PROTO_TFTP # if neither is defined. # # Console options: # # -DCONSOLE_CRT # Set for CRT console (default if nothing else is set). # -DCONSOLE_SERIAL # Set for serial console. # -DCONSOLE_DUAL # Set for CRT and serial console, see comment at # -DANSIESC and -DGFX. # -DCOMCONSOLE # Set port, e.g. 0x3F8. # -DCONSPEED # Set speed, e.g. 57600. # -DCOMPARM # Set Line Control Register value for data bits, stop # bits and parity. See a National Semiconditor 8250/ # 16450/16550 data sheet for bit meanings. # If undefined, defaults to 0x03 = 8N1. # -DCOMPRESERVE # Ignore COMSPEED and COMPARAM and instead preserve # the com port parameters from the previous user # of the com port. Examples of previous user are a BIOS # that implements console redirection, lilo and LinuxBIOS. # This makes it trivial to keep the serial port # speed setting in sync between multiple users. # You set the speed in the first user and the # rest follow along. # # BIOS interface options: # # -DPCBIOS # Compile in support for the normal pcbios # -DLINUXBIOS # Compile in support for LinuxBIOS # # -DBBS_BUT_NOT_PNP_COMPLIANT # Some BIOSes claim to be PNP but they don't conform # to the BBS spec which specifies that ES:DI must # point to the string $PnP on entry. This option # works around those. This option must be added to # LCONFIG. # -DNO_DELAYED_INT # Take control as soon as BIOS detects the ROM. # Normally hooks onto INT18H or INT19H. Use only if you # have a very non-conformant BIOS as it bypasses # BIOS initialisation of devices. This only works for # legacy ROMs, i.e. PCI_PNP_HEADER not defined. # This option was formerly called NOINT19H. # -DBOOT_INT18H # Etherboot normally hooks onto INT19H for legacy ROMs. # You can choose to hook onto INT18H (BASIC interpreter # entry point) instead. This entry point is used when # all boot devices have been exhausted. This option must # be added to LCONFIG. # -DCONFIG_PCI_DIRECT # Define this for PCI BIOSes that do not implement # BIOS32 or not correctly. Normally not needed. # Only works for BIOSes of a certain era. # -DCONFIG_TSC_CURRTICKS # Uses the processor time stamp counter instead of reading # the BIOS time counter. This allows Etherboot to work # even without a BIOS. This only works on late model # 486s and above. # -DPXELOADER_KEEP_UNDI # For implementation later with UNDI. # -DIBM_L40 # This option uses the 0x92 method of controlling # A20 instead of the traditional method of using the # keyboard controller. An explanation of A20 is here: # http://www.win.tue.nl/~aeb/linux/kbd/A20.html # This occurs on MCA, EISA and some embedded boards, # and sometimes with the Fast Gate A20 option on some # BIOSes. # Enable this only if you are sure of what you are doing. # # Obscure options you probably don't need to touch: # # -DPOWERSAVE # Halt the processor when waiting for keyboard input # which saves power while waiting for user interaction. # Good for compute clusters and VMware emulation. # But may not work for all CPUs. # -DT503_AUI # Use AUI by default on 3c503 cards. # -DMOVEROM # If your motherboard does not cache adapter memory # space, then this option can speed up loading of # compressed BOOT-Prom images. It has no effect on # uncompressed images. Unless you are very tight on # free space, you will usually want to define this # option. This option must be added to LCONFIG! # (Recommended). # -DUSE_LOWMEM_BUFFER # Define to put some buffers below 0x10000 which # may interfere with other programs (Deprecated). # </OptionDescription>
# These default settings compile Etherboot with a small number of options. # You may wish to enable more of the features if the size of your ROM allows.
# BIOS select don't change unless you know what you are doing #CFLAGS32+= -DPCBIOS
# For prompting and default on timeout CFLAGS32+= -DASK_BOOT=3 -DANS_DEFAULT=ANS_NETWORK # If you prefer the old style rotating bar progress display # CFLAGS32+= -DBAR_PROGRESS # MOTD and Image Menu are no longer the default, use mk{elf,nbi}-menu instead # CFLAGS32+= -DMOTD -DIMAGE_MENU
# Enabling this makes the boot ROM require a Vendor Class Identifier # of "Etherboot" in the Vendor Encapsulated Options # This can be used to reject replies from servers other than the one # we want to give out addresses to us, but it will prevent Etherboot # from getting an IP lease until you have configured DHCPD correctly # CFLAGS32+= -DREQUIRE_VCI_ETHERBOOT
# Enabling this causes Etherboot to ignore Etherboot-specific options # that are not within an Etherboot encapsulated options field. # This option should be enabled unless you have a legacy DHCP server # configuration from the bad old days before the use of # encapsulated Etherboot options. # CFLAGS32+= -DALLOW_ONLY_ENCAPSULATED
# Limit the delay on packet loss/congestion to a more bearable value. See # description above. If unset, do not limit the delay between resend. CFLAGS32+= -DBACKOFF_LIMIT=7 -DCONGESTED
# More optional features # CFLAGS32+= -DANSIESC -DGFX # CFLAGS32+= -DPASSWD -DUSRPARMS # CFLAGS32+= -DCAN_BOOT_DISK -DTRY_FLOPPY_FIRST=4
# For a serial console, which can run in parallel with CRT console # CFLAGS32+= -DCONSOLE_DUAL -DCOMCONSOLE=0x3F8 -DCONSPEED=9600
# Enable tagged image, generic ELF, Multiboot ELF # or FreeBSD ELF/a.out boot image support CFLAGS32+= -DTAGGED_IMAGE -DELF_IMAGE # CFLAGS32+= -DAOUT_IMAGE -DIMAGE_MULTIBOOT -DIMAGE_FREEBSD # CFLAGS32+= -DAOUT_IMAGE -DAOUT_LYNX_KDI
# Change download protocol to NFS, default is TFTP # CFLAGS32+= -DDOWNLOAD_PROTO_NFS
# Options to make a version of Etherboot that will work under linuxBIOS. CFLAGS32+= -DLINUXBIOS -DCONFIG_TSC_CURRTICKS -DCONSOLE_SERIAL -DCOMCONSOLE=0x3f8 -DCOMPRESERVE -DCONFIG_PCI_DIRECT -DELF_IMAGE
# These options affect the loader that is prepended to the Etherboot image LCONFIG+= -DMOVEROM # LCONFIG+= -DBBS_BUT_NOT_PNP_COMPLIANT # LCONFIG+= -DBOOT_INT18H
# you should normally not need to change these RM= rm -f TOUCH= touch CC32= gcc AS32= as LD32= ld SIZE32= size AR32= ar RANLIB32= ranlib
# If you use egcs or gcc-2.8, using -Os may help to reduce the code size. # Otherwise use -O2 (under no circumstance use -O3 or above!). CFLAGS32+= -Os -ffreestanding -fstrength-reduce -fomit-frame-pointer -mcpu=i386 # Squeeze the code in as little space as possible. CFLAGS32+= -malign-jumps=1 -malign-loops=1 -malign-functions=1 CFLAGS32+= -Wall -W -Wno-format -Wno-unused ASFLAGS32= LDFLAGS32+= -N -Ttext $(RELOCADDR) -e _start LDBINARY32= --oformat binary # flag for headerless binary LIBC32= # not needed
# Support for PXE emulation. Works only with FreeBSD to load the kernel # via pxeboot, use only with DOWNLOAD_PROTO_NFS #CFLAGS32+= -DFREEBSD_PXEEMU
-----Original Message----- From: Mark Wilkinson [mailto:mwilkinson@ndirect.co.uk] Sent: Friday, March 21, 2003 9:31 PM To: NEWBELL7@magicn.com; linuxbios@clustermatic.org Subject: Re: [epia] Unknown bootloader class
Hello HyungJong,
I'm beginning to wonder if the problem you are seeing lies with the
configuration of etherboot you've used.
My thinking is that etherboot thinks it's executing a different type of
image (ie FreeBSD, Multiboot, etc) rather than an ELF image, and is thus
passing some different information across.
Can you forward the Config file that you used to build the etherboot
payload ?
Regards
Mark Wilkinson.