1 Reply Latest reply on Apr 14, 2017 11:04 AM by SergeyK

    Can Quark, Curie, Arduino-based Atom boards run x86 binaries like MSDOS or Windows ME?


      Hello Everyone,


      I was wanting to create monolithic x86 binaries that can initialize the D410 processor, memory controller, NM10 Express chipset, and certain other bus interfaces like USB and SATA. and was wondering if Parallel Studio or System Studio came with a bootloader development kit or firmware support package to make bare metal binaries.


      With MCU's, we place the binaries on MCU Flash, but with CPU's, like the Intel Atom, I'd like to program my spare Intel D410PT Deskboard creating a binary to place in the SPI Flash to replace BIOS with my own huge program. I'd like to implement a sort of bytecode interpreter for a RTOS, where each command is roughly a byte using switch/case: statements that branch off to different functions.


      Thanks for your help,



        • 1. Re: Can Quark, Curie, Arduino-based Atom boards run x86 binaries like MSDOS or Windows ME?

          Hi Jason,


          I am confused. Do you want to create a firmware binaries for Intel Atom D410 platform, or you want to run MS-DOS or Windows ME binaries on an Intel Quark MCU?


          In the first case (develop firmware for Atom D410), you could probably do that with Intel System Studio tools, but it doesn't provide a development kit for bootloader/BIOS/bare metal development specifically (although the Intel System Studio Ultimate Edition provides System Debugger and Trace that can by very helpful for debugging the firmware). You might want to check UEFI/EDK2 or Coreboot projects that provide an SDK for bootloader/BIOS development.


          In the second case (run MS-DOS or Windows ME binaries on Quark MCU), it is not possible, at least not without a considerable effort. Both MS-DOS and Windows ME provide an API, that is not available on Quark MCU. Also the MCU memory map and peripherals are very different from that of a standard PC. Also MS-DOS binaries normally run in x86 real mode, while Quark MCU normally operates in flat 32-bit mode (although I think it starts in real mode, and firmware switches it to the protected mode at very early boot stage).