7 Replies Latest reply on Feb 20, 2014 12:12 PM by AlexT_Intel

    Galileo PXE boot

    dkorovkin

      Colleagues,

      As tried to play with Linux kernel on Galileo board, I came with a question, if there is a way to organize a boot over the network. Does the firmware support PXE booting? If not, are there plans to add it?

      Thank you very much in advance,

      Dmitriy.

        • 1. Re: Galileo PXE boot
          AlexT_Intel

          I don't know about namely the firmware level, let's see what others have to say about that, but I think you should be able to implement that at least on the Linux level, by using iPXE (http://ipxe.org/) and adding it as an additional option to the Grub boot menu (chainloading). You'd probably need to cross-compile it first or maybe the default binary image would work - worth trying, in any case that shouldn't be too complicated as Yocto provides you with the full toolchain.

          • 2. Re: Galileo PXE boot
            dkorovkin

            Thank you for the advice, I looked at this option, but it does not seem to work for me easily. In order to be able to boot, iPXE need a driver for the Ethernet controller. As for now, I could not find Galileo support in iPXE sources, and not even a support for STMicro Ethernet controller, that looks like the closest to one on Galileo. So there might be equally long tasks -- implement the driver for iPXE and implement the driver straight for the UEFI BIOS.

            • 3. Re: Galileo PXE boot
              AlexT_Intel

              I see. Yeah, after looking at their git repo it indeed looks like they may not support the STMicroelectronics MAC, which is used in Galileo. Let's see what other have to say then - when I eventually get my USB-RS232 cable delivered, to be able to interact with the system in full, I might try to look into compiling iPXE with the necessary driver.

              • 4. Re: Galileo PXE boot
                AlexT_Intel

                Just for the record - I've tried cross-compiling the ipxe.lkrn target after generating a Linux cross-toolchain per the BSP guide. While it does compile ok, grub won't load the image with error 13 (invalid or unsupported executable format).

                 

                Looking at the iPXE Makefiles, it may be just because they're not autogenerated and aren't immediately compatible with environment variables scheme Yocto SDK environment script sets. I've tried adjusting several things to point to correct SDK tools/locations to no avail.

                1 of 1 people found this helpful
                • 5. Re: Galileo PXE boot
                  dkorovkin

                  Alex, may I know, what driver did you use? I still could not find the correct one.

                  • 6. Re: Galileo PXE boot
                    MarcIII

                    dkorovkin,

                     

                    As of today, there are unfortunately no plan that I know of to implement PXE in Galileo's UEFI firmware. On the other hand the EDKII implementation is now open-source (since 0.9.0) and EDKII should provide a generic framework for PXE so maybe you could engage with the EDKII community? Unless iPXE proves to be easier to implement - can't tell.

                    • 7. Re: Galileo PXE boot
                      AlexT_Intel

                      dkorovkin

                      Well, I haven't got that far as trying the driver :-) I've just compiled the ipxe.lkrn target and tried chainloading it from the Galileo's grub and that failed - and I haven't tried further knowing there's no ethernet driver (there's none - I've looked through all the iPXE source, they don't have stmmac, so that would be an additional task). Not sure why exactly it failed - either due to the lack of multiboot support in current grub version Galileo BSP has or just the ipxe.lkrn being improperly cross-compiled, but I think it should one of these two (or both).

                       

                      But overall it looks like a doable project if you;re interested enough. You could follow up with iPXE developers to make sure it cross-compiles properly + then extract the stmmac driver out of the Galileo BSP and include it into iPXE. Or follow the firmware path and try it that way, as MarcIII suggested (I'm also not sure which way would be easier to follow).