Intel Edison Round #2

Joel Sherrill joel.sherrill at oarcorp.com
Thu Dec 11 12:48:49 UTC 2014


On 12/10/2014 04:26 PM, Oyake, Amalaye (398F) wrote:
> Wait wait wait …
>
> A whole lotta stuff happened in-between this email and your previous 
> email :D
>
:) I think we had a lot of luck. :)

Since it uses U-Boot to boot a Linux kernel directly, my idea of adding 
an RTEMS
executable to a Grub menu was a no-go. But I found this helpful thread

http://forum.osdev.org/viewtopic.php?f=1&p=242715 
<http://forum.osdev.org/viewtopic.php?f=1&p=242715>

and Thomas Nilsen who posts the most success on the thread was kind 
enough to
reply to a private inquiry.


> How did you get the boot loader to work? Also could you post a few 
> pictures as well.
>

Although my source has a lot of hacks to disable VGA and deal with the
lack of legacy peripherals, this is how you load and boot.

(1) boot Edison to Linux and mount the file system it presents
(2) copy hello.exe to this
(3) pull USB for file system and power from Edison. Serial power USB 
stays hooked up.
(4) apply power (not file system USB) to Edison
(5) press a key to stop autoboot. Jeff changed it to 3 seconds locally 
not 1.
(6) Use the following command to load the ELF into high memory

load mmc 0:9 0x100000 hello.exe

(7) dump the memory and see the ELF tag

md 0x100000

(9) have U-Boot load the ELF into the correct lower memory and jump to it

bootelf 0x1000000

This reads the ELF at 0x0100000 and will load it at 0x00100000. The
start address is 0x0010000c.

Eventually we can change the bootcmd (I think) variable in U-Boot and
load that directly. We are a long way from doing that though. :)

--joel
> -----------
> * Amalaye Oyake                                       *
> * Instrument Product Software Development Group  */\  *
> * Jet Propulsion Laboratory, Pasadena            *||  *
> * CA 91109 818.393.7168 work   626.399.1707 cell /||\ *
> **************************************************^^***
>
>
> From: Joel Sherrill <joel.sherrill at oarcorp.com 
> <mailto:joel.sherrill at oarcorp.com>>
> Date: Wednesday, December 10, 2014 at 2:23 PM
> To: "users at rtems.org <mailto:users at rtems.org>" <users at rtems.org 
> <mailto:users at rtems.org>>, Jeff Mayes <Jeff.Mayes at OARcorp.com 
> <mailto:Jeff.Mayes at OARcorp.com>>
> Subject: Intel Edison Round #2
>
>
>
> Hi
>
> Jeff and I have hacked on the Edison and have it starting to
> boot with printk() and bsp_reset() working. I added a bunch of
> printk's to trace the progress. It is the end of the day and we are
> stuck at the create of the first Classic API task in hello world failing
> to allocate the FP area.
>
> I am assuming some memory layout issue but I just don't
> see it. This board has 1GB RAM per Intel and U-Boot.
> It loads our normal pc386 ELF at the right address and runs.
>
> I am throwing this out to the community to see if anyone
> has an idea on what to poke at tomorrow. We are tired at
> the end of the day.
>
>     boot > bootelf 0x1000000
>
>     ## Starting application at 0x0010000c ...
>
>     0234rtemsWorkAreaStart=130F40 MemSize=0x08x/0
>
>     bspstart.c
>
>     work_area_start = 0x130F40
>
>     work_area_size = 1072492736 0x3FECF0C0
>
>     end = 0x40000000
>
>     current stack pointer = 0x130F18
>
>     heap_start = 0x134D0A
>
>     heap_size = 1072476918
>
>     allocated thread fp area 133CB8
>
>     initialize device drivers
>
>     probe
>
>     Checking on /dev/main
>
>     probe
>
>     Register /dev/main
>
>     Register /dev/main as console
>
>     Console initialize complete
>
>     run post driver extensions
>
>     Invoke api extension 10F540
>
>     Init tasks => 12C3E8 1
>
>     allocated thread 13255C
>
>     allocated thread fp area 0
>
>     Thread Initialize failed
>
>     task create returned 13
>
>     EXECUTIVE SHUTDOWN! Any key to reboot...
>
> Thanks
>
>
> --joel



More information about the users mailing list