Difference between revisions of "Build from Windows"

From coreboot
Jump to: navigation, search
(Setup the coreboot build environment (shortcut method))
m (Test using simnow (optional, AMD projects only))
 
(13 intermediate revisions by 2 users not shown)
Line 6: Line 6:
  
 
#Download and install a native msys+mingw environment on your Windows computer.  
 
#Download and install a native msys+mingw environment on your Windows computer.  
#Build and install cross compile versions of binutils and gcc that run on Windows and target 32-bit x86 linux.  
+
#Build and install cross compile versions of binutils and gcc that run on Windows and target 32-bit x86 bare metal hardware.
  
  
Step 1 involves downloading and decompressing mingw and msys, both of which contain several components. See [http://mingw.org/ mingw.org] for details.
+
Step 1 involves downloading and decompressing mingw and msys, both of which contain several components. See [http://mingw.org/ mingw.org] for details. You may need to gather utilities and commands from various locations in order to end up with everything needed for building coreboot projects.  
  
Step 2: Once msys+mingw is installed, download and build cross compiler versions of gcc and binutils that produce elf output for 32-bit x86 linux. Use <code>util/crossgcc/buildgcc</code> for this purpose:
+
Step 2: Once msys+mingw is installed, download and build cross compiler versions of gcc and binutils that produce elf output for 32-bit x86. Use <tt>util/crossgcc/buildgcc</tt> for this purpose. Use msys.bat to start the msys+mingw environment, then execute these commands:
  
 
  <font color="#008000">Administrator@M3A78</font> <font color="#808000">~</font>
 
  <font color="#008000">Administrator@M3A78</font> <font color="#808000">~</font>
  $ mkdir /gcc450<br>
+
  $ <b>mkdir /gcc450</b><br>
 
  <font color="#008000">Administrator@M3A78</font> <font color="#808000">~</font>
 
  <font color="#008000">Administrator@M3A78</font> <font color="#808000">~</font>
  $ cd /gcc450/<br>
+
  $ <b>cd /gcc450</b>/<br>
 
  <font color="#008000">Administrator@M3A78</font> <font color="#808000">/gcc450</font>
 
  <font color="#008000">Administrator@M3A78</font> <font color="#808000">/gcc450</font>
  $ /d/tmp/xgcc/coreboot/util/crossgcc/buildgcc-450
+
  $ <b>/d/tmp/xgcc/coreboot/util/crossgcc/buildgcc</b>
 
  <font color="#000080">Welcome to the </font><font color="#800000">coresystems</font><font color="#000080"> cross toolchain builder v1.01 (May 18th, 2010)</font><br>
 
  <font color="#000080">Welcome to the </font><font color="#800000">coresystems</font><font color="#000080"> cross toolchain builder v1.01 (May 18th, 2010)</font><br>
 
  Downloading tar balls ...
 
  Downloading tar balls ...
Line 57: Line 57:
 
==Setup the coreboot build environment (shortcut method)==
 
==Setup the coreboot build environment (shortcut method)==
  
Getting through steps 1 and 2 from scratch takes a bit of work. As a shortcut, a coreboot-ready msys+mingw is included in the [http://notabs.org/coreboot/windows-build.htm sample project]. Decompress the sample project into any directory on your Windows computer. Note: Avoid the use of spaces in the project path and directory name. In the top level of the sample project is directory <tt>msys</tt>. This is the complete coreboot-ready msys+mingw. The <tt>msys.bat</tt> file in this directory starts the msys+mingw build environment. The standard tool names target the local Windows environment. To invoke tools that target linux, use the ones in the gcc444 or gcc450 directory. For example, <tt>gcc -c hello.c</tt> builds a Windows object, while <tt>/gcc450/xgcc/bin/i386-elf-gcc hello.c</tt> builds a linux object.
+
Getting through steps 1 and 2 from scratch takes a bit of work. As a shortcut, a coreboot-ready msys+mingw is included in the [http://notabs.org/coreboot/windows-build.htm sample project]. Decompress the sample project into any directory on your Windows computer. Note: Avoid the use of spaces in the project path and directory name. In the top level of the sample project is directory <tt>msys</tt>. This is the complete coreboot-ready msys+mingw. The <tt>msys.bat</tt> file in this directory starts the msys+mingw build environment. Use the standard tool names (gcc, ld, as, ...) to generate output that targets the local Windows environment. To produce the i386-elf output used by coreboot, use the tools in the gcc452 directory. For example, <tt>gcc -c hello.c</tt> builds a Windows object, while <tt>/gcc452/xgcc/bin/i386-elf-gcc hello.c</tt> builds an i386-elf object.
  
 
In addition to the coreboot ready msys+mingw build environment, the sample project contains:
 
In addition to the coreboot ready msys+mingw build environment, the sample project contains:
  
 
#'''coreboot''' directory. Replace this sample coreboot source code with the one you want to build.
 
#'''coreboot''' directory. Replace this sample coreboot source code with the one you want to build.
#'''seabios''' directory. This directory contains seabios source code, used as a sample payload.
+
#'''simnow''' directory. Sample helper files for testing the AMD Serengeti Cheetah (Fam10) project on the AMD simnow simulator.
#'''simnow''' directory. Helper files for testing on the simnow simulator (AMD projects only).
+
#'''tools''' directory. This directory contains needed tools that are not part of coreboot, msys, or mingw.
+
 
#'''go.bat'''. This batch file sets up environment variables needed for cross compiling, and switches to the coreboot directory.
 
#'''go.bat'''. This batch file sets up environment variables needed for cross compiling, and switches to the coreboot directory.
  
Line 70: Line 68:
 
Here are step-by-step instructions for building a coreboot based bios on a windows machine using the shortcut build environment setup method:
 
Here are step-by-step instructions for building a coreboot based bios on a windows machine using the shortcut build environment setup method:
  
:1.Decompress the [http://notabs.org/coreboot/win-build-env-001.7z sample project] into any directory. Note: Avoid the use of spaces in the project path and directory name. Use [http://7-zip.org/ 7-zip] for decompression.
+
:1. Decompress the [http://notabs.org/coreboot/windows-build.htm sample project] into any directory. Note: Avoid the use of spaces in the project path and directory name. Use [http://7-zip.org/ 7-zip] for decompression.
:2.Replace the sample <tt>coreboot</tt> [svn://coreboot.org/coreboot/trunk source code] (rev 5775) with your own. The directory must be named <tt>coreboot</tt>.  
+
:2. Replace the sample <tt>coreboot</tt> [svn://coreboot.org/coreboot/trunk source code] (rev 6474) with your own. The directory must be named <tt>coreboot</tt>.  
:3.Using Windows explorer, click on <tt>go.bat</tt> to start the build environment. It will look something like this:
+
:3. Using Windows explorer, click on <tt>go.bat</tt> to start the build environment. It will look something like this:
[[Image:winbuild-msys-prompt.png|left]]
+
<font color="#008000">Administrator@m3A78</font> <font color="#808000">/D/tmp/win-build-env-005/coreboot</font>
<br clear="all"/>
+
$ _
 +
:4. Now configure coreboot:
 +
<font color="#008000">Administrator@m3A78</font> <font color="#808000">/D/tmp/win-build-env-005/coreboot</font>
 +
$ <b>make oldconfig</b>
  
:4. At the <tt>$</tt> prompt, type <tt>make oldconfig</tt>. Answer the configuration questions. For this example, defaults were used for all questions except:
+
Answer the configuration questions. For this example, defaults were used for all questions except:
 
  mainboard vendor        : 3 AMD
 
  mainboard vendor        : 3 AMD
 
  mainboard model          : 9 Serengeti Cheetah (Fam10)
 
  mainboard model          : 9 Serengeti Cheetah (Fam10)
 
  rom chip size            : 3 512 KB
 
  rom chip size            : 3 512 KB
add a payload            : 2 An ELF executable payload
 
Payload path and filename: ../payloads/bios.bin.elf-0.6.0
 
  
 
:5. At the <tt>$</tt> prompt, type <tt>make</tt>. After a few seconds, the build should complete:
 
:5. At the <tt>$</tt> prompt, type <tt>make</tt>. After a few seconds, the build should complete:
[[Image:winbuild-build-complete.png|left]]
+
$ <b>make</b>
<br clear="all"/>
+
 +
    (some output omitted)
 +
 +
    CC        cpu/x86/pae/pgtbl.ramstage.o
 +
    AR        coreboot.a
 +
    CC        coreboot_ram.o
 +
    CC        coreboot_ram
 +
    GIT        SeaBIOS 1efb10b9ea30c45a8c9c6230234fefa10d2886ed
 +
Cloning into seabios...
 +
warning: templates not found D:\coreboot\msys/share/git-core/templates
 +
remote: Counting objects: 5951, done.
 +
remote: Compressing objects: 100% (1276/1276), done.
 +
remote: Total 5951 (delta 4720), reused 5879 (delta 4671)
 +
Receiving objects: 100% (5951/5951), 1.41 MiB | 288 KiB/s, done.
 +
Resolving deltas: 100% (4720/4720), done.
 +
Already on 'master'
 +
Switched to a new branch 'coreboot'
 +
    CONFIG    SeaBIOS 1efb10b9ea30c45a8c9c6230234fefa10d2886ed
 +
  Build default config
 +
#
 +
# configuration written to d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config
 +
#
 +
    MAKE      SeaBIOS 1efb10b9ea30c45a8c9c6230234fefa10d2886ed
 +
  Build Kconfig config file
 +
d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config:75:warning: override: reassigning to symbol COREBOOT
 +
d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config:76:warning: override: reassigning to symbol DEBUG_SERIAL
 +
#
 +
# configuration written to d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config
 +
#
 +
  Compiling whole program out/ccode.16.s
 +
  Compiling to assembler out/asm-offsets.s
 +
  Generating offset file out/asm-offsets.h
 +
  Compiling (16bit) out/code16.o
 +
  Compiling whole program out/ccode32flat.o
 +
  Compiling whole program out/code32seg.o
 +
  Building ld scripts (version "pre-0.6.2-20110401_201116-m3a78")
 +
Fixed space: 0xe05b-0x10000  total: 8101  slack: 2  Percent slack: 0.0%
 +
16bit size:          39408
 +
32bit segmented size: 2416
 +
32bit flat size:      14000
 +
32bit flat init size: 39600
 +
  Linking out/rom16.o
 +
  Stripping out/rom16.strip.o
 +
  Linking out/rom32seg.o
 +
  Stripping out/rom32seg.strip.o
 +
  Linking out/rom.o
 +
  Prepping out/bios.bin
 +
Total size: 96816  Fixed: 55832  Free: 34256 (used 73.9% of 128KiB rom)
 +
    CBFS      coreboot.rom
 +
    PAYLOAD    SeaBIOS (internal, compression: LZMA)
 +
    CBFSPRINT  coreboot.rom
 +
 +
coreboot.rom: 512 kB, bootblocksize 2390, romsize 524288, offset 0x0
 +
Alignment: 64 bytes
 +
 +
Name                          Offset    Type        Size
 +
cmos_layout.bin                0x0        unknown      1776
 +
fallback/romstage              0x740      stage        69698
 +
fallback/coreboot_ram          0x117c0    stage        48127
 +
fallback/payload              0x1d400    payload      48893
 +
(empty)                        0x29340    null        353058
 +
 +
<font color="#008000">Administrator@m3A78</font> <font color="#808000">/D/tmp/win-build-env-005/coreboot</font>
 +
$ _
  
 
The final bios image is in file coreboot\build\coreboot.rom:
 
The final bios image is in file coreboot\build\coreboot.rom:
 
<pre>
 
<pre>
  Directory of D:\tmp\win-build-env-001\coreboot\build
+
  Directory of D:\tmp\win-build-env-005\coreboot\build
  
09/03/10 12:23 PM          524,288 coreboot.rom
+
04/01/11 08:11 PM          524,288 coreboot.rom
 
</pre>
 
</pre>
 +
 
==Test using simnow (optional, AMD projects only)==
 
==Test using simnow (optional, AMD projects only)==
The AMD simnow application is a software simulation of an AMD processor and reference board. Its accuracy is impressive, allowing it to boot an unmodified bios and operating system. To test the bios, download and install the public version of AMD's [http://developer.amd.com/cpu/simnow/Pages/default.aspx simnow]. This example uses version <tt>simnow-win64-4.6.2pub.exe</tt>, a recent public version for Windows. Note that simnow requires a 64-bit operation system. Add an environment variable named <tt>simnow</tt> that points to the directory where simnow is installed:
+
The AMD simnow application is a software simulation of an AMD processor and reference board. Its accuracy is impressive, allowing it to boot an unmodified bios and operating system. To test the bios, download and install the public version of AMD's [http://developer.amd.com/cpu/simnow/Pages/default.aspx simnow]. This example uses version <tt>simnow-win64-4.6.2pub.exe</tt>, a recent public version for Windows. Note that simnow requires a 64-bit operating system. Add an environment variable named <tt>simnow</tt> that points to the directory where simnow is installed:
 
[[Image:winbuild-simnow-env.png|left]]
 
[[Image:winbuild-simnow-env.png|left]]
 
<br clear="all"/>
 
<br clear="all"/>
Line 121: Line 184:
 
[[Image:winbuild-vbios-banner.png|left]]
 
[[Image:winbuild-vbios-banner.png|left]]
 
<br clear="all"/>
 
<br clear="all"/>
 
At this point, the simulation hesitates while waiting for a keyboard response. Press a key while the mouse cursor is in the simnow window to avoid the delay. Alternatively, modify [http://www.coreboot.org/pipermail/coreboot/2010-September/060046.html keyboard.c].
 
  
 
Next, the seabios payload executes:
 
Next, the seabios payload executes:
Line 142: Line 203:
 
===Known problems with this demo===
 
===Known problems with this demo===
  
#An unwanted stack access by an AP core during cache as ram disable causes a crash. The work-around used in the sample project is to remove AP cores from the simnow model. A proper fix is being [http://www.coreboot.org/pipermail/coreboot/2010-September/060090.html developed].
+
#The seabios PS/2 keyboard initialization is not reliable when run on the simnow target.
#PS/2 Keyboard init timeout causes boot delay ([http://www.coreboot.org/pipermail/coreboot/2010-September/060046.html workaround]).
+
#Windows 7 bluescreen, above. This problem can be avoided by adding an I/O write to put the system into ACPI mode before giving control to Windows. Once this is done, another problem is encountered. Windows will stay at the animated startup logo for too long. Improperly reported interrupt routing is a possible cause.
#PS/2 keyboard not working.
+
  
 
===Known problems with windows building===
 
===Known problems with windows building===
  
 
#Libncurses is not available, which prevents <tt>make menuconfig</tt> from building. Work-around: use <tt>make oldconfig</tt> instead.
 
#Libncurses is not available, which prevents <tt>make menuconfig</tt> from building. Work-around: use <tt>make oldconfig</tt> instead.

Latest revision as of 01:31, 2 April 2011

Coreboot firmware is most often built from the linux environment. Because many bios developers are more familiar with Windows than linux, it is useful to know how to build coreboot on a Windows system.

Setup the coreboot build environment (long method)

The gnu tools needed to build coreboot have already been ported to Windows. They must be downloaded, customized, and installed. Here are the steps:

  1. Download and install a native msys+mingw environment on your Windows computer.
  2. Build and install cross compile versions of binutils and gcc that run on Windows and target 32-bit x86 bare metal hardware.


Step 1 involves downloading and decompressing mingw and msys, both of which contain several components. See mingw.org for details. You may need to gather utilities and commands from various locations in order to end up with everything needed for building coreboot projects.

Step 2: Once msys+mingw is installed, download and build cross compiler versions of gcc and binutils that produce elf output for 32-bit x86. Use util/crossgcc/buildgcc for this purpose. Use msys.bat to start the msys+mingw environment, then execute these commands:

Administrator@M3A78 ~
$ mkdir /gcc450
Administrator@M3A78 ~ $ cd /gcc450/
Administrator@M3A78 /gcc450 $ /d/tmp/xgcc/coreboot/util/crossgcc/buildgcc Welcome to the coresystems cross toolchain builder v1.01 (May 18th, 2010)
Downloading tar balls ... * gmp-5.0.1.tar.bz2 (downloading)SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = D:\tmp\xgcc\msys/etc/wgetrc
* mpfr-2.4.2.tar.bz2 (downloading)SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = D:\tmp\xgcc\msys/etc/wgetrc
* mpc-0.8.2.tar.gz (downloading)SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = D:\tmp\xgcc\msys/etc/wgetrc
* libelf-0.8.13.tar.gz (downloading)SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = D:\tmp\xgcc\msys/etc/wgetrc
* gcc-core-4.5.0.tar.bz2 (downloading)SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = D:\tmp\xgcc\msys/etc/wgetrc
* binutils-2.20.1.tar.bz2 (downloading)SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = D:\tmp\xgcc\msys/etc/wgetrc
* gdb-7.1.tar.bz2 (downloading)SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = D:\tmp\xgcc\msys/etc/wgetrc
Downloaded tar balls ... ok Unpacking and patching ... * gmp-5.0.1.tar.bz2 * mpfr-2.4.2.tar.bz2 * mpc-0.8.2.tar.gz * libelf-0.8.13.tar.gz * gcc-core-4.5.0.tar.bz2 * binutils-2.20.1.tar.bz2 * gdb-7.1.tar.bz2 Unpacked and patched ... ok Building GMP 5.0.1 ... ok Building MPFR 2.4.2 ... ok Building MPC 0.8.2 ... ok Building libelf 0.8.13 ... ok Building binutils 2.20.1 ... ok Building GCC 4.5.0 ... ok Building GDB 7.1 ... ok Cleaning up... ok
You can now run your i386-elf cross toolchain from /gcc450/xgcc.

Setup the coreboot build environment (shortcut method)

Getting through steps 1 and 2 from scratch takes a bit of work. As a shortcut, a coreboot-ready msys+mingw is included in the sample project. Decompress the sample project into any directory on your Windows computer. Note: Avoid the use of spaces in the project path and directory name. In the top level of the sample project is directory msys. This is the complete coreboot-ready msys+mingw. The msys.bat file in this directory starts the msys+mingw build environment. Use the standard tool names (gcc, ld, as, ...) to generate output that targets the local Windows environment. To produce the i386-elf output used by coreboot, use the tools in the gcc452 directory. For example, gcc -c hello.c builds a Windows object, while /gcc452/xgcc/bin/i386-elf-gcc hello.c builds an i386-elf object.

In addition to the coreboot ready msys+mingw build environment, the sample project contains:

  1. coreboot directory. Replace this sample coreboot source code with the one you want to build.
  2. simnow directory. Sample helper files for testing the AMD Serengeti Cheetah (Fam10) project on the AMD simnow simulator.
  3. go.bat. This batch file sets up environment variables needed for cross compiling, and switches to the coreboot directory.

Build the coreboot project

Here are step-by-step instructions for building a coreboot based bios on a windows machine using the shortcut build environment setup method:

1. Decompress the sample project into any directory. Note: Avoid the use of spaces in the project path and directory name. Use 7-zip for decompression.
2. Replace the sample coreboot source code (rev 6474) with your own. The directory must be named coreboot.
3. Using Windows explorer, click on go.bat to start the build environment. It will look something like this:
Administrator@m3A78 /D/tmp/win-build-env-005/coreboot
$ _
4. Now configure coreboot:
Administrator@m3A78 /D/tmp/win-build-env-005/coreboot
$ make oldconfig

Answer the configuration questions. For this example, defaults were used for all questions except:

mainboard vendor         : 3 AMD
mainboard model          : 9 Serengeti Cheetah (Fam10)
rom chip size            : 3 512 KB
5. At the $ prompt, type make. After a few seconds, the build should complete:
$ make

    (some output omitted)

    CC         cpu/x86/pae/pgtbl.ramstage.o
    AR         coreboot.a
    CC         coreboot_ram.o
    CC         coreboot_ram
    GIT        SeaBIOS 1efb10b9ea30c45a8c9c6230234fefa10d2886ed
Cloning into seabios...
warning: templates not found D:\coreboot\msys/share/git-core/templates
remote: Counting objects: 5951, done.
remote: Compressing objects: 100% (1276/1276), done.
remote: Total 5951 (delta 4720), reused 5879 (delta 4671)
Receiving objects: 100% (5951/5951), 1.41 MiB | 288 KiB/s, done.
Resolving deltas: 100% (4720/4720), done.
Already on 'master'
Switched to a new branch 'coreboot'
    CONFIG     SeaBIOS 1efb10b9ea30c45a8c9c6230234fefa10d2886ed
  Build default config
#
# configuration written to d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config
#
    MAKE       SeaBIOS 1efb10b9ea30c45a8c9c6230234fefa10d2886ed
  Build Kconfig config file
d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config:75:warning: override: reassigning to symbol COREBOOT
d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config:76:warning: override: reassigning to symbol DEBUG_SERIAL
#
# configuration written to d:/tmp/win-build-env-005/coreboot/payloads/external/SeaBIOS/seabios/.config
#
  Compiling whole program out/ccode.16.s
  Compiling to assembler out/asm-offsets.s
  Generating offset file out/asm-offsets.h
  Compiling (16bit) out/code16.o
  Compiling whole program out/ccode32flat.o
  Compiling whole program out/code32seg.o
  Building ld scripts (version "pre-0.6.2-20110401_201116-m3a78")
Fixed space: 0xe05b-0x10000  total: 8101  slack: 2  Percent slack: 0.0%
16bit size:           39408
32bit segmented size: 2416
32bit flat size:      14000
32bit flat init size: 39600
  Linking out/rom16.o
  Stripping out/rom16.strip.o
  Linking out/rom32seg.o
  Stripping out/rom32seg.strip.o
  Linking out/rom.o
  Prepping out/bios.bin
Total size: 96816  Fixed: 55832  Free: 34256 (used 73.9% of 128KiB rom)
    CBFS       coreboot.rom
    PAYLOAD    SeaBIOS (internal, compression: LZMA)
    CBFSPRINT  coreboot.rom

coreboot.rom: 512 kB, bootblocksize 2390, romsize 524288, offset 0x0
Alignment: 64 bytes

Name                           Offset     Type         Size
cmos_layout.bin                0x0        unknown      1776
fallback/romstage              0x740      stage        69698
fallback/coreboot_ram          0x117c0    stage        48127
fallback/payload               0x1d400    payload      48893
(empty)                        0x29340    null         353058

Administrator@m3A78 /D/tmp/win-build-env-005/coreboot
$ _

The final bios image is in file coreboot\build\coreboot.rom:

 Directory of D:\tmp\win-build-env-005\coreboot\build

04/01/11  08:11 PM           524,288 coreboot.rom

Test using simnow (optional, AMD projects only)

The AMD simnow application is a software simulation of an AMD processor and reference board. Its accuracy is impressive, allowing it to boot an unmodified bios and operating system. To test the bios, download and install the public version of AMD's simnow. This example uses version simnow-win64-4.6.2pub.exe, a recent public version for Windows. Note that simnow requires a 64-bit operating system. Add an environment variable named simnow that points to the directory where simnow is installed:

Winbuild-simnow-env.png


From Windows explorer, launch coreboot\simnow\simnow.bat. This will open 3 windows:

Winbuild-simnow-main.png


Winbuild-simnow-cmd.png


Winbuild-putty0.png


Optionally, setup a boot cd-rom, floppy, or hard disk image:

Winbuild-drive-image.png


Now, start the simulation by clicking the 'Run Simulation' button.

Winbuild-simnow-run.png


Putty will capture serial debug messages:

Winbuild-putty-output.png


After a few seconds, video will appear:

Winbuild-vbios-banner.png


Next, the seabios payload executes:

Winbuild-seabios.png


If the optional disk image was supplied, seabios will attempt to boot it:

Winbuild-windows1.png


Looking good...

Winbuild-windows2.png


Oops, some ACPI debugging is needed here...

Winbuild-windows3.png


Known problems with this demo

  1. The seabios PS/2 keyboard initialization is not reliable when run on the simnow target.
  2. Windows 7 bluescreen, above. This problem can be avoided by adding an I/O write to put the system into ACPI mode before giving control to Windows. Once this is done, another problem is encountered. Windows will stay at the animated startup logo for too long. Improperly reported interrupt routing is a possible cause.

Known problems with windows building

  1. Libncurses is not available, which prevents make menuconfig from building. Work-around: use make oldconfig instead.