Awesome details. I would definitely give it a try. Not intereseted in font blitting, so would stick to the morse code idea :). Would send out the details (and wiki them).
--Vikas On Fri, Aug 22, 2008 at 7:57 AM, Alex Osborne <[EMAIL PROTECTED]> wrote: > On 22/08/2008, at 11:41 AM, Vikas Saurabh wrote: > > > Why can't I fool the bootloader to think that I am a kernel. I > > always thought boot loaders just load the kernel image, pass it > > some parameters and start executing them. > > Indeed, that's exactly what it does. It loads the kernel image into > RAM, puts some parameters and a pointer to the ATAGS (which include > stuff the kernel command-line) into registers and jumps to the start > of the image. See here for details: > > http://www.arm.linux.org.uk/developer/booting.php > > > > > I had done this helloworld kind of thing with grub during > > college...but then maybe grub is advanced. What puzzles me is how > > exactly? > > Note that the Freerunner doesn't have a BIOS. When you did it on x86 > you probably used the BIOS' printing routines. If you want to do it > on the FR you'll have to do your own font blitting etc. If you have > a debug board you could print it to a serial port. You can then also > use JTAG to debug your code and figure out what is going on. If you > don't have the debug board, I guess you could easily enough blink out > hello world in morse code through an LED or by turning on and off the > backlight or something. > > It might also be useful to play with it in qemu, just pass in your > binary with the -kernel option, you can connect gdb to it and step > through line by line (see the qemu documentation for how to do this). > > As to how to actually do it, it's a bit of a pain. You'll probably > need to write a little ARM assembler stub entry point to setup a > stack and call your C code. Although you might be able to just reuse > u-boots stack, I guess. Then you'll need to compile your code with - > nostdlib and link it in a way that ensures your assembler code is at > the start of the image, you might need to investigate custom linker > scripts for this, I can't remember. You can then use something like > "objcopy -O binary mycode.elf mycode.bin" to pull the raw code out of > the elf file the linker generated, so that you can give it to u-boot. > > Remember also that you won't have any standard library, so you'll > have to write every function you want to use yourself (or use > something like the OSKit C library) and if you code has a bug it's > just going to hang or reset the CPU, unless you define your own error > handling code. > > So yes, certainly doable and a good learning experience but it's not > exactly straightforward. > > _______________________________________________ > Openmoko community mailing list > community@lists.openmoko.org > http://lists.openmoko.org/mailman/listinfo/community >
_______________________________________________ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community