Replies: 4 comments 4 replies
-
https://ipxe.org/appnote/buildtargets The ipxe.lkrn is a "linux kernel" to most boot loaders, but not all. |
Beta Was this translation helpful? Give feedback.
-
Excellent, that's really good. Now, I'm facing this issue, which it might be beyond my knowledge. This target doesn't have a VGA card, it's all manipulated through serial (in fact, the baudrate divider is different than on a PC, but everything else should be the same).
It's interesting because the CEFDK doesn't run in realmode (as far as I understand), maybe it switches back to real mode to run the bzImage code? |
Beta Was this translation helpful? Give feedback.
-
Not sure what role the 0x200000 address is playing. There are fixed load addresses for the bzImage format, and the fact that you are seeing any output at all from iPXE indicates that the bzImage must have been loaded to its expected addresses (not 0x200000).
This kind of duplicated output usually indicates that you have both BIOS serial console redirection and iPXE's
This is ipxe/src/arch/x86/interface/pxe/pxe_call.c Lines 292 to 299 in 17882e7 This code is not needed at all in your setup: it exists only to support some OEM use cases involving docking stations and MAC address passthrough. Almost all BIOSes should just treat it as unimplemented and therefore return with the carry flag set, but it seems as though your BIOS decides instead to crash the system! You can safely delete those lines of code (or put a
It must be: iPXE relies on the real-mode code in the bzImage prefix executing correctly, and you're definitely getting further than that code. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your answer! That actually made the process go further. I think I don't have
Regarding the 0x200000 and the |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm working on giving life to a device that uses the dreaded Intel Puma 6 SoC. The bootloader is really bad (CEFDK), but thankfully it allows to boot from bzImages in RAM (either downloaded by ymodem, or from eMMC's partitions). It has tftp support, but the network doesn't seem to work.
As you can see, uploading a kernel (~3MB) through ymodem at 115200bps takes a lot of time; specially if I'm trying to get a newer kernel running there and testing it constantly.
I was wondering if iPXE can be made to produce a bzImage (which I hope will be less than the 3MBs of the kernel's bzImage), to then use tftp or even USB to load my kernel. There are some changes that need to be applied on the x86 code to get the intel puma 6 network working, but I hope that'll be easier and quicker than doing it on the linux kernel.
I'm doing this for fun, to repurpose an old cablemodem. If you have any idea, please let me know. I've also search for "homebrew" hello world bzImages but I could only find kernels, not a simple "hello world" in assembly or C that produces a bzImage.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions