[Hackrf-dev] SPIFI Boot success with JellyBean

Ben titanmkd at gmail.com
Mon May 28 07:02:05 EDT 2012


Hi,

I have tested my JellyBean board and it work fine (2.7V OK with LED ON) and
also tested to enable Analog 1V8 which work fine (1V8LED is ON and Analog
Power is 1V8).
I also fixed the LED1/2&3 blink problem (was not blinking because of GCC
optimization which remove the loop).

I have also tested SPIFI and it work fine executing directly from SPIFI
(shadow memory is 0x0 but in fact it execute @ physical address 0x80000000
which is SPIFI), but I will create an alternative startup script in order
to copy SPIFI Code to Internal RAM and execute it in internal RAM to speed
up the stuff else it's limited by SPIFI bandwidth (40MB/s IRC).
I can also debug the code and add breakpoints on logical address 0x0000xxxx
(mapped to 0x80000000), even if it is wrote in User Manual LPC3xx UM10503
rev1 (Table 374. SPIFI flash memory map) that debug can not work from area
0x8000 0000 to 0x87FF FFFF.

I'm using LPCXpresso v4.2.2_275 just for debug stuff and I use binary image
from https://github.com/TitanMKD/hackrf/firmware (forked from
mossmann/hackrf) .
SPIFI tested with LPCXpresso+NXP LPC Link (from LPCXpresso Board LPC1769
Debugger)
-> Program Flash with Flash Driver LPC1850A_4350A_SPIFI.cfx
-> Select file: firmware\blinky\blinky.bin
-> Base address 0x14000000 & option Erase only required pages
Yes SPIFI Flash Base Address for the driver to erase/write is
0x14000000 and not 0x80000000.

*Code Modifications:*
* Add PIN_EN1V8 (1V8 work fine 1V8 LED is set to ON), and PIN_BOOT0, 1, 2 &
3(read only).
* Fixed wait() by using volatile else the loop was removed by GCC.

See my GitHub update: https://TitanMKD@github.com/TitanMKD/hackrf.git

*What is planned on my side:*
1) Add SCU PinMux macro or function to configure all Pins at startup
specific for JellyBean (to be based on my "LPC43xx PinMux ver1 2012/01/31"
configuration file specific to JellyBean see in attachement
JellyBean_PinMux.pmx).
2) To start experimenting with SGPIO.
3) To write some GPL driver with or without DMA like: USART, I2C, SPI,
specialized SGPIO driver for Logic Analyzer stuff ...
All those drivers are planned to be included in opencm3 branch in
https://github.com/TitanMKD/libopencm3 (forked from mossman/libopencm3).
4) To create a specific startup code which will copy Code from SPIFI
(0x80000000) to Internal RAM (0x10000000) will be limited by internal RAM,
anyway we have 264KB of SRAM => Tell me if you have idea about this code to
maybe only copy critical code part with specific section name to be defined
or all *.text ?
5) To write other driver specific to LemonDrop ... for SDR.

--
Best Regards,

Benjamin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nine.pairlist.net/pipermail/hackrf-dev/attachments/20120528/9a1db3ee/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: JellyBean_PinMux.pmx
Type: application/octet-stream
Size: 6786 bytes
Desc: not available
Url : <http://nine.pairlist.net/pipermail/hackrf-dev/attachments/20120528/9a1db3ee/attachment.obj>


More information about the HackRF-dev mailing list