Commit Graph

116 Commits (mbed-os-5.6)

Author SHA1 Message Date
Tony Wu 38088716aa rtl8195am - refactor bootloader and ota support
1. move ota region 1 from 0x00b000 to 0x040000
2. move ota region 2 from 0x0c0000 to 0x120000
3. refactor bootloader header as follows:

   uint32_t tag;
   uint32_t ver;
   uint64_t timestamp;
   uint32_t size;
   uint8_t hash[32];
   uint8_t campaign[16];
   uint32_t crc32;

   where,
   a. hash is the sha256 checksum of the payload.
   b. crc32 is the crc32 checksum of headers from tag to campaign.

4. Call NVIC_SystemReset for soft reset.

Signed-off-by: Tony Wu <tung7970@gmail.com>
2017-12-01 17:01:46 +00:00
Janne Kiiskilä c3867d1c99 Realtek RTL8195AM - define A3-A5 as NC
Based on the Mbed OS website the A3 is connected to "DAC", however there
is no define for DAC. In order to get the Realtek RTL8195AM to even compile
with mbed-os-example-client now, we must have the A3 defined - it is one of
the standard Arduine header pins. Therefore, setting it as NC.

A4-A5 are not connected either, so adding them as "NC" as well.

Realtek will hopefully push a proper fix sooner or later, if there is a
more meaningful define for the A3 pin. They do state however that the
A0-A3 pins are not GPIO capable anyway.

Ref: https://os.mbed.com/platforms/Realtek-RTL8195AM/
2017-12-01 17:01:45 +00:00
Marcus Chang 5ca88696d6 Reorganize defines for firmware updates on Realtek RTL8195AM
Moved defines, typedefs and function prototypes from ota_api.c to
ota_api.h so that these can be included in applications.
2017-11-17 14:55:49 +00:00
Yuguo Zou dbbe22704b Remove lines to improve readability 2017-11-17 14:55:49 +00:00
Yuguo Zou 9c416ae3fb Update HAL library to fix lockup issue 2017-11-17 14:55:49 +00:00
Yuguo Zou d56959acf5 Update HAL code to resolve ticker lockup issue 2017-11-17 14:55:48 +00:00
Tony Wu 44fc3313d1 rtl8195am - fix us_ticker interrupt handling
TIMER2_7_IRQ is shared among several timer sources, including
us_ticker. Raising TIMER2_7_IRQ pending bit will trigger the timer
interrupt, but the timer interrupt handler will not know which timer
source this interrupt is for. This patch sets timer load value to one
tick and force us_ticker to fire almost "immediately".

TIMER2_7_IRQ is handled through a common interrupt handler, and
is automatically cleared. Therefore, there is no need to clear IRQ.

The underlying timer HAL treats load value as micro-seconds and does
conversion internally. Therefore, simply pass micro-seconds to timer
HAL without converting to tick first.

Signed-off-by: Tony Wu <tung7970@gmail.com>
2017-11-17 14:55:48 +00:00
Marcus Chang ce04e3db08 Increase flash size on Realtek RTL8195AM
The Realtek RTL8195AM has 2 MiB of external flash. This change
enables the FlashIAP driver to gain access to the full flash.
2017-11-17 14:55:45 +00:00
Tony Wu 9d3e36d497 rtl8195am - fix us_ticker collision and race
Switch to timer 2 for us_ticker for timer 6 might be used
for power saving.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-11-03 12:59:04 +00:00
Tony Wu 7bf56cff96 rtl8195am - remove redundant file
This file is unused and redundant.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-11-03 12:59:03 +00:00
Tony Wu 16784d41ff rtl8195am - fix IAR zero padding issue
Remove redundant memory regions, and merge multiple RAM regions into one
to solve ielftool zero padding issue.

The side effect is less control over object files placement. It's all up
to linker's best effort.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-11-03 12:59:03 +00:00
Tony Wu 28d76ac248 rtl8195am - cleanup IAR icf file
Cleanup ICF file. No logic change.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-11-03 12:59:03 +00:00
Tony Wu b235e0a256 rtl8195am - fix ARMC6 guards
Fix ARMC6 guard typo introduced in commit 4f3f0cc9cc (Make Realtek link)

While at it, remove redundant ISR_STACK_SIZE assignment for ARMCC.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-10-20 16:18:27 +01:00
Tony Wu 10f94e972a rtl8195am - remove obsolete configs
The following configs were no longer necessary for RTX5.
    OS_TASKCNT
    OS_MAINSTKSIZE
    OS_CLOCK

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-10-20 16:18:27 +01:00
Tony Wu 174d53649f rtl8195am - fix us_ticker porting
commit f7bc126 (Re-work Rtl8195AM ticker) tried to address ticker drifting
issue, but in fact broke ticker functionality. This patch adjusts us_ticker
porting to unbreak it, and to fix the following tests:

mbed-os-tests-mbed_drivers-ticker
mbed-os-tests-mbed_drivers-timeout
mbed-os-tests-mbedmicro-rtos-mbed-isr
mbed-os-features-frameworks-utest-tests-unit_tests-minimal_async_scheduler
mbed-os-features-frameworks-utest-tests-unit_tests-case_control_async
mbed-os-features-frameworks-utest-tests-unit_tests-case_async_validate

Changes are:

1. Dont disable timer after every us_ticker interrupt. That basically
   breaks ticker functionality.

2. Fine-tune us to tick conversion macro. Previous conversion method
   yields 1 tick drift every 2 ms.

3. Remove special placement of ticker objects. No longer necessary.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-09-24 21:34:27 +01:00
Yuguo Zou de0e99cf11 Re-work Rtl8195AM ticker
Remove intermediate variances and use uint64 instead;
Remove HalTimerIrqEn called in us_ticker.c
2017-09-19 11:36:38 +01:00
Yuguo Zou f516eed740 Remove unused code
Clean rtl8195a_init.c a little bit
2017-09-19 11:36:38 +01:00
Yuguo Zou 952fff985b Update wlan lib to fix debug profile
The issue of mutex returning osErrorISR with debug profile is fixed
2017-09-19 11:36:38 +01:00
Yuguo Zou a468a760b4 Update MSP setup
Use asm code to set MSP
2017-09-19 11:36:38 +01:00
Deepika 36c7b7e94e Added assert for malloc 2017-09-19 11:36:37 +01:00
Jimmy Brisson e5d27f33dc Correct long call macros for ARMC6 2017-09-19 11:36:37 +01:00
adbridge 32bd25e8df Fix include file for ARMCC 6, should use cmsis_armclang.h 2017-09-12 16:41:11 +01:00
Jimmy Brisson 4f3f0cc9cc Make Realtek link
There was some interesting stuff here.
 * ARMC6 treats assembly the same as GNU, but has a different startup
   function, so we branch the asm there
 * Incorrect discriminant, probably copied from other ports
2017-09-11 13:20:33 -05:00
Jimmy Brisson 15a9a0382b Enable Compiling with ARMC6 across all targets
remove duplicate sys.cpp
2017-09-11 13:20:32 -05:00
Anna Bridge cab660d980 Merge pull request #4938 from deepikabhavnani/IAR_fixes
Update IAR to version 8
2017-09-11 17:28:38 +01:00
Jimmy Brisson 7457bbbc5c Merge pull request #4665 from Archcady/enable_sdram
Enable sdram usage of REALTEK_RTL8195AM
2017-09-06 14:26:34 -05:00
Deepika d12822f95a Resolved compiler error: constructor deleted
IAR 8.x compiler throws error for emac_interface_t constructor
rtw_emac.cpp@220,0: [Pe1790]: the default constructor of "emac_interface"
cannot be referenced -- it is a deleted function

Error is because new object is created of structure with constant member.
Resolved it by using malloc instead new.
2017-09-06 09:51:17 -05:00
Yuguo Zou 67f1ee5343 Resolve including directory issue in GCC linker script for Ameba
Should not make assumption of specific directory when include .h from
linker script
2017-09-05 19:11:38 +08:00
Yuguo Zou c834b7faac Fix bugs for RTL8195AM with debug profile of compilers
1. Add alignment / padding for postbuild segments
2. Clear tcm.bss section
3. Remove TRAP_OverrideTable(), move lines to PLAT_Start()
2017-08-28 19:04:26 +08:00
Yuguo Zou c530be0eeb Fix stack underflow issue
Switch on TCM
2017-08-23 16:12:07 +08:00
Yuguo Zou 1e398cfc60 Add RTL8195AM support for mbed client with IAR
Move ticker related code to SRAM due to time drift sensitive
2017-08-22 17:34:00 +08:00
Yuguo Zou e16c2d2833 Add RTW8195AM support for mbed client with ARMCC
Move ticker related code to SRAM due to time drift sensitive
2017-08-22 17:33:41 +08:00
Yuguo Zou 215a7906d3 Change to use copy assignment operator for RTWInterface::scan 2017-08-10 17:36:05 +08:00
Yuguo Zou f24a40906a Use placement new to optimize wifi scan 2017-08-07 11:23:30 +08:00
Yuguo Zou 56a98e11d1 Move ticker related text to SRAM to fix GCC mbed-os-tests-mbed_drivers-timeout failing issue 2017-08-03 11:06:24 +08:00
Yuguo Zou 1d06bf4279 Disambiguate function __memset() in rtl8195a_init.c
When use ARMCC, __memset is replaced by ARM's version which will make
boot process hang.
2017-08-01 17:45:04 +08:00
Yuguo Zou 49a7e4b59e Fix GCC compile errors 2017-08-01 17:03:01 +08:00
Tony Wu 35d7ca27be rtl8195am - fix ARMCC SRAM + SDRAM porting
Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-08-01 15:29:21 +08:00
Yuguo Zou d1c87347af Fix ARMCC & IAR compile errors 2017-07-28 18:33:52 +08:00
Yuguo Zou 2654d2c433 Switch off DBG messages
And clean up some unused debug messages
2017-07-27 18:51:57 +08:00
Tony Wu c9ecb2749d rtl8195am - adjust memory layout and enable fota support
1. Rearrange SDRAM and SRAM layout. Move timing critical code to SRAM,
   and the rest to SDRAM.

2. Add bootloader that's capable of FOTA over mbed cloud.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-07-27 13:55:45 +08:00
Tony Wu 37739937ca rtl8195am - rename GCC_ARM linker script
Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-07-27 13:55:44 +08:00
Yuguo Zou 2864e4b05d enable sdram usage of REALTEK_RTL8195AM
Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-07-27 13:55:42 +08:00
Jimmy Brisson 1f94ede86c Merge pull request #4744 from deepikabhavnani/spi_issue_4743
Allow user to set default transfer byte for block read
2017-07-24 14:45:30 -05:00
Jimmy Brisson d5108e5a7a Merge pull request #4714 from bulislaw/expose_systemcoreclock
Expose SystemCoreClock via cmsis.h to support new CMSIS/RTX
2017-07-24 10:59:47 -05:00
Jimmy Brisson 7a153ce337 Merge pull request #4754 from Archcady/TLS
Resolve TLS handshake failing issue for REALTEK_RTL8195AM
2017-07-24 10:55:30 -05:00
Deepika 1b797e9081 Closed review comments
1. Doxygen and Grammar related
2. Change dummy to spi_fill
3. Remove NXP driver and add default loop in spi block read (same as all
other drivers)
2017-07-21 09:46:22 -05:00
Marcus Chang 1930c4b136 REALTEK_RTL8195AM: FlashIAP read and address scope
The FlashIAP is supposed to have access to the full application
memory, so the address scope has been changed to encompass
the entire external flash.

The address translation has also been changed to reflect the memory
layout in the documentation:

 Realtek Ameba1 Memory Layout: 5.1 Flash Memory
2017-07-19 14:24:50 +01:00
Jimmy Brisson adfed0f9de Merge pull request #4644 from 0xc0170/fix_ticker_delta_negative
Ticker: add fire interrupt now function
2017-07-17 11:05:46 -05:00
Yuguo Zou 2ec8b04074 Resolve TLS handshake failing issue
this issue, relating to wifi thread priority,  makes blocking TCP socket
failing
2017-07-14 11:21:53 +08:00