[LinuxBIOS] Tyan s2892 the OLPC way
stepan at coresystems.de
Tue Oct 17 17:56:56 CEST 2006
* Myles Watson <myles at pel.cs.byu.edu> [061017 17:35]:
> >A quick writeup to the list of what you ended up doing would be great!
> Here it is. Feel free to ask for clarifications.
Thank you very much! I added it to the build tutorial section of the
Documentation page in the wiki. I'll do some formatting to it now.
> Customize the system to allow me to play with memory mappings and large
> devices. I wanted to minimize intermediate steps from LinuxBIOS to Linux to
> minimize the areas of expertise I needed to develop. I also wanted to be
> able to use the SATA drives as my boot drives.
> There are several places where my solutions are not as elegant as I wished
> them to be. Suggestions are welcome.
> Current set up:
> Tyan s2892
> LinuxBIOS with Linux 2.6.18-tiny as a payload
> I started by installing LinuxBIOS on the system and using FILO and Etherboot
> to boot to a kernel. This allowed me to try the different payloads without
> flashing every time.
> Next I downloaded the OLPC buildrom
> git clone git://dev.laptop.org/users/jcrouse/buildrom
> I built it on my 32-bit system for convenience building the kernel.
> I modified the Config.mk to include pciutils from
> and took out the graphical boot menu. I also modified
> buildrom/skeleton/devices.txt to add lines for my hard drives. I just
> copied the lines for sda and sda1 and made had hda1 hda2 and sda2. The
> important thing is to make sure that the major and minor numbers are
> I modified buildrom/skeleton/linuxrc so that the device files were created
> earlier, /dev/null didn't become a text file, and my drives got mounted.
> I then modified buildrom/skeleton/bin/boot.functions so that doboot() called
> my script on the hard drive for the kexec. That's nice to avoid flashing
> the BIOS for booting different kernels.
> I downloaded Linux 18.104.22.168 (2.6.18-rc4 had some problems with SATA) and
> patched it with the tiny patches that came with OLPC.
> 12-tiny-tiny-crc.patch fails, but was easy to apply by hand.
> I configured the kernel to include support for ext2 and ext3, SATA, and IDE.
> I ran make and copied the payloads from the buildrom/deploy directory to my
> s2892 to be used. olpc-payload.elf.lzma (732K) is used for booting directly
> from LinuxBIOS, and olpc-payload-uncompressed.elf (1.7M) was useful for
> testing it with FILO and Etherboot.
> I'd like to go one step further and use a 64-bit kernel so that any changes
> I make to the kernel only need to be made once. Looking at mkelfimage, it
> looks like the 64-bit file format is not supported. It might be a simple
> change, but I don't know how to do it.
> Since I couldn't figure out how to make LinuxBIOS do without the Fallback
> image, I configured it to have a zero size payload.
> Now I have
> normal/linuxbios.strip (128K)
> fallback/linuxbios.strip (128K)
> normal/payload (732K)
> fallback/payload (0K)
> s2892vBIOS.bin (36K)
> If I could get rid of the fallback it would make room for the 64-bit kernel
> (50K bigger than the 32-bit kernel). Then I'd just need to modify
> mkelfimage and I'd be almost there :) I guess I could take out pciutils to
> make up most of the difference (44K), but I like having them there for
> # Sample config file for
> # the Tyan s2892
> # This will make a target directory of ./s2892
> target s2892
> mainboard tyan/s2892
> option ROM_SIZE =0xf7000
> option CONFIG_ROM_STREAM=1
> option CONFIG_CONSOLE_SERIAL8250=1
> option CONFIG_CONSOLE_VGA=1
> option FALLBACK_SIZE =0x20000
> option ROM_IMAGE_SIZE=0x20000
> # Tyan s2892
> romimage "normal"
> option CONFIG_COMPRESSED_ROM_STREAM_LZMA=1
> option CONFIG_PRECOMPRESSED_ROM_STREAM=1
> option USE_FALLBACK_IMAGE=0
> option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Normal"
> payload ../olpc-payload.elf.lzma
> romimage "fallback"
> option CONFIG_COMPRESSED_ROM_STREAM_LZMA=0
> option CONFIG_PRECOMPRESSED_ROM_STREAM=0
> option USE_FALLBACK_IMAGE=1
> option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Fallback"
> payload ../payload.zero
> buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback"
> linuxbios mailing list
> linuxbios at linuxbios.org
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.de • http://www.coresystems.de/
More information about the coreboot