<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 16, 2014 at 4:49 PM, Joel Sherrill <span dir="ltr"><<a href="mailto:joel.sherrill@oarcorp.com" target="_blank">joel.sherrill@oarcorp.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div><div class="h5">
<br>
<div>On 4/16/2014 2:06 PM, Alan Cudmore
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Thu, Apr 10, 2014 at 7:11 PM,
Andre Marques <span dir="ltr"><<a href="mailto:andre.lousa.marques@gmail.com" target="_blank">andre.lousa.marques@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>On 04/04/14 20:19, Joel Sherrill wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On 4/4/2014 1:15 PM, Gedare Bloom wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
The license looked fine to me.<br>
</blockquote>
+1<br>
<br>
As always, we just need to be careful on a file per
file basis just in case<br>
something else in rpi-boot has a different license.<br>
</blockquote>
<br>
</div>
All files in rpi-boot use a similar licence, so I will be
using some code from rpi-boot as a base for this.</blockquote>
<div><br>
</div>
<div>Great.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On Thu, Apr 3, 2014 at 10:06 PM, Alan Cudmore <<a href="mailto:alan.cudmore@gmail.com" target="_blank">alan.cudmore@gmail.com</a>>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
From my limited research, it looks like the emmc
controller in the Raspberry<br>
Pi BCM2835 may be the way to go.<br>
It looks like it is a high level controller for
the SD/MMC card slot on the<br>
Pi.<br>
<br>
Since this is a custom controller, I don't think
there would be an existing<br>
driver in RTEMS.<br>
<br>
It seems that this emmc controller in the Pi may
handle different types of<br>
cards, and at a higher level than just using the
SPI bus to access the card.<br>
( This is based on some searches of conversations
on the raspberry pi forums<br>
, not my experience )<br>
<br>
You would have to write a driver for this emmc
controller and provide the<br>
interface to libblock for the file system
interface on RTEMS. The code you<br>
have linked above for rpi-boot looks like it has a
permissive license, so it<br>
*may* be possible to use this code in the RTEMS
driver. There is some other<br>
potentially useful code in there too.<br>
</blockquote>
</blockquote>
</blockquote>
<br>
</div>
The mailbox access, mmio read and write and the timer code
will also be usefull, and not only for emmc. This timer
code differs from the misc/timer.h currently in the
raspberrypi BSP, as it waits a certain amount of time
(until some register gets updated). The misc/timer.h is a
benchmark timer, so one of them would have to be renamed
or reorganized.<br>
<br>
</blockquote>
<div><br>
</div>
<div>Can an RTEMS timer be used for the mailbox
communication? </div>
<div>Also, I don't think the benchmark timer code in the
RTEMS Raspberry Pi BSP is functional.</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote></div></div>
Do you mean rtems_timer_XXX or the timer in the BSP?<br></div></blockquote><div><br></div><div>I mean the rtems_timer_ api. Maybe we can use this, or other RTEMS features to implement the mailbox interface rather than just going directly to the timer hardware like we see in the "bare metal" examples. </div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<br>
The timer driver in the BSP is strictly for benchmarking -- nothing
else. It is used<br>
by the tmtests and psxtmtests. It should not be used for any other
purpose.<br>
<br>
How does the mailbox work? Describe it and we can figure out how to
best address<br>
it. <br></div></blockquote><div><br></div><div>The mailbox is the interface between the Video Core GPU and the ARM processor on the Pi. Here are some docs:</div><div><a href="https://github.com/raspberrypi/firmware/wiki/Mailboxes">https://github.com/raspberrypi/firmware/wiki/Mailboxes</a><br>
</div><div><a href="https://github.com/raspberrypi/firmware/wiki/Accessing-mailboxes">https://github.com/raspberrypi/firmware/wiki/Accessing-mailboxes</a><br></div><div><a href="https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface">https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface</a><br>
</div><div><br></div><div>The details of the GPU have been closed, and the linux port has relied on a binary blob for the GPU firmware, but Broadcom recently took a huge step in opening it up:</div><div><a href="http://www.raspberrypi.org/a-birthday-present-from-broadcom/">http://www.raspberrypi.org/a-birthday-present-from-broadcom/</a><br>
</div><div><br></div><div>Hopefully this will help improve the understanding of this interface.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div class="">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>I have been contacted by someone who is currently
working on a console driver for the BSP, and has been able
to display fonts. We may want to include him, because I
think the graphics code uses mailbox communication to the
GPU. </div>
<div><br>
</div>
<div>It is very interesting that the GPU is running a
commercial RTOS, and we will be communicating to it with
RTEMS.</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote></div>
:)<div class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
My plan was to have at the root of the raspberrypi BSP a
folder "emmc" for the emmc driver code, and the mailbox,
mmio and timer on the misc folder, with the headers on the
include folder. What do you think?<br>
<br>
I have been trying the rpi-boot emmc code for the past
week, and I modified the hello test to use the emmc driver
(an overly simplified version of the rpi-boot, just to
read the slot info register for now), and my compilation
process has been:<br>
<br>
1. Add/change files in Raspberrypi BSP<br>
2. Update Makefile.am<br>
3. Run bootstrap -p and bootstrap from the RaspberryPi BSP
folder<br>
4. (Re)configure RTEMS<br>
5. make and make install RTEMS from the root folder<br>
<br>
</blockquote>
<div>That is pretty much what I do. Although it might be
possible to test drivers and code in the RKI image, then
integrate it into the RTEMS tree when it is ready.</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote></div>
--enable-maintainer-mode is supposed to track regenerating the
Makefile.in<br>
and configure files when you modify Makefile.am or <a href="http://configure.ac" target="_blank">configure.ac</a>.<br>
<br>
The current build system has a serious deficiency in that it does
**not** <br>
track the dependency of the test executables on any .a or .h file
from RTEMS.<br>
So the best solution for quick builds is usually to remove the
executable you<br>
are testing and then run make.<br>
<br>
Step 3 above is the minimum for a bootstrap. bootstrap -p is only
needed<br>
when you add/delete/move .h files.<div class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
I have been using the --enable-maintainer-mode, but I am
not sure about exacly what it simplifies, because I always
needed to do those steps for it to compile and link
correctly.<br>
</blockquote>
<div><br>
</div>
<div>I don't know what this does either..</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote></div>
Just tracks dependencies on generated Makefile/configure related
files back<br>
to their source.<div><div class="h5"><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>Alan</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
--André Marques
<div>
<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
I'll have to try the serial bootloader, I am
also close to ordering an<br>
inexpensive JTAG adapter to try loading and
debugging through JTAG. uboot is<br>
another possibility, using a TFTP server.<br>
<br>
Alan<br>
<br>
<br>
<br>
<br>
On Wed, Apr 2, 2014 at 12:02 PM, Andre Marques<br>
<<a href="mailto:andre.lousa.marques@gmail.com" target="_blank">andre.lousa.marques@gmail.com</a>>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hello,<br>
<br>
I'm intending to work in the SD card support
for the Raspberry Pi BSP,<br>
using the SD mode instead of the SPI mode.<br>
<br>
The references I have gathered so far for this
are as follows:<br>
<br>
The Raspberry Pi SOC guide: Broadcom BCM2835
Peripherals Guide (Chapter 5<br>
- EMMC)<br>
<br>
The simplified SD standard -<br>
<a href="https://www.sdcard.org/downloads/pls/simplified_specs/" target="_blank">https://www.sdcard.org/downloads/pls/simplified_specs/</a><br>
<br>
And the following github code -<br>
<a href="https://github.com/jncronin/rpi-boot/blob/master/emmc.c" target="_blank">https://github.com/jncronin/rpi-boot/blob/master/emmc.c</a><br>
<br>
There is also the libchip/i2c/spi-sd-card
libi2c driver, which can also be<br>
a reference (even though it uses SPI).<br>
<br>
Now, the questions:<br>
<br>
Should I use the Generic Disk Device driver,
as the<br>
libchip/i2c/spi-sd-card ?<br>
<br>
Is there any driver using the SD mode for sd
card access, or using an emmc<br>
interface currently in the RTEMS code base? I
haven't found any.<br>
<br>
On a side note, I managed to send RTEMS
applications to the RPi though the<br>
UART interface using the xmodem protocol.<br>
<br>
For that I used the following bootloader<br>
<br>
<a href="https://github.com/dwelch67/raspberrypi/tree/master/bootloader05" target="_blank">https://github.com/dwelch67/raspberrypi/tree/master/bootloader05</a><br>
<br>
It takes me 2 minutes to send 1 MB of data to
the RPi, but this could be<br>
improved if it used 1024 byte block transfer
instead of the default of 128.<br>
The bootloader loads the transfered program to
memory and runs it. Then the<br>
RPi must be rebooted so a new program can be
sent.<br>
<br>
It may not be the best way, but only requires
an usb-to-uart cable, and<br>
avoids the current SD card "dance" to run
programs on the Pi.<br>
<br>
Thank you for your time.<br>
<br>
--André Marques<br>
<br>
<br>
</blockquote>
_______________________________________________<br>
rtems-devel mailing list<br>
<a href="mailto:rtems-devel@rtems.org" target="_blank">rtems-devel@rtems.org</a><br>
<a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
<br>
</blockquote>
_______________________________________________<br>
rtems-devel mailing list<br>
<a href="mailto:rtems-devel@rtems.org" target="_blank">rtems-devel@rtems.org</a><br>
<a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
</blockquote>
</blockquote>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</div></div><div class=""><pre cols="72">--
Joel Sherrill, Ph.D. Director of Research & Development
<a href="mailto:joel.sherrill@OARcorp.com" target="_blank">joel.sherrill@OARcorp.com</a> On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available <a href="tel:%28256%29%20722-9985" value="+12567229985" target="_blank">(256) 722-9985</a></pre>
</div></div>
</blockquote></div><br></div></div>