Skip to content

Commit 93b1190

Browse files
Revert "[CSA-CP]Provision SPAM (#90)"
This reverts commit ba2e27e.
1 parent ba2e27e commit 93b1190

File tree

5 files changed

+64
-102
lines changed

5 files changed

+64
-102
lines changed

examples/platform/silabs/provision/ProvisionStorageDefault.cpp

+62-5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "AttestationKey.h"
1818
#include "ProvisionStorage.h"
1919
#include <credentials/examples/DeviceAttestationCredsExample.h>
20+
#include <em_device.h>
2021
#include <lib/support/BytesToHex.h>
2122
#include <lib/support/CHIPMemString.h>
2223
#include <lib/support/CodeUtils.h>
@@ -27,7 +28,6 @@
2728
#include <platform/CHIPDeviceConfig.h>
2829
#include <platform/silabs/MigrationManager.h>
2930
#include <platform/silabs/SilabsConfig.h>
30-
#include <platform/silabs/platformAbstraction/SilabsPlatform.h>
3131
#include <silabs_creds.h>
3232
#ifndef NDEBUG
3333
#if defined(SL_MATTER_TEST_EVENT_TRIGGER_ENABLED) && (SL_MATTER_GN_BUILD == 0)
@@ -37,7 +37,16 @@
3737
#ifdef OTA_ENCRYPTION_ENABLE
3838
#include <platform/silabs/multi-ota/OtaTlvEncryptionKey.h>
3939
#endif // OTA_ENCRYPTION_ENABLE
40-
#ifndef SLI_SI91X_MCU_INTERFACE
40+
#ifdef SLI_SI91X_MCU_INTERFACE
41+
#include <sl_si91x_common_flash_intf.h>
42+
#else
43+
#ifdef _SILICON_LABS_32B_SERIES_2
44+
#include <em_msc.h>
45+
#elif defined(_SILICON_LABS_32B_SERIES_3)
46+
#include "sl_se_manager.h"
47+
#include "sl_se_manager_types.h"
48+
#include <sl_se_manager_extmem.h>
49+
#endif // _SILICON_LABS_32B_SERIES_2
4150
#include <psa/crypto.h>
4251
#endif
4352

@@ -47,6 +56,16 @@ extern void setNvm3End(uint32_t addr);
4756
#include <sl_matter_provision_config.h>
4857
#endif
4958

59+
#if defined(_SILICON_LABS_32B_SERIES_3)
60+
// To remove any ambiguities regarding the Flash aliases, use the below macro to ignore the 8 MSB.
61+
#define FLASH_GENERIC_MASK 0x00FFFFFF
62+
#define GENERIC_ADDRESS(addr) ((addr) &FLASH_GENERIC_MASK)
63+
64+
// Transforms any address into an address using the same alias as FLASH_BASE from the CMSIS.
65+
#define CMSIS_CONVERTED_ADDRESS(addr) (GENERIC_ADDRESS(addr) | FLASH_BASE)
66+
sl_se_command_context_t cmd_ctx;
67+
#endif // _SILICON_LABS_32B_SERIES_3
68+
5069
extern uint8_t linker_nvm_end[];
5170

5271
using namespace chip::Credentials;
@@ -67,12 +86,42 @@ size_t sCredentialsOffset = 0;
6786

6887
CHIP_ERROR ErasePage(uint32_t addr)
6988
{
70-
return chip::DeviceLayer::Silabs::GetPlatform().FlashErasePage(addr);
89+
#ifdef SLI_SI91X_MCU_INTERFACE
90+
rsi_flash_erase_sector((uint32_t *) addr);
91+
#elif defined(_SILICON_LABS_32B_SERIES_2)
92+
MSC_ErasePage((uint32_t *) addr);
93+
#elif defined(_SILICON_LABS_32B_SERIES_3)
94+
sl_status_t status;
95+
uint32_t * data_start = NULL;
96+
size_t data_size;
97+
98+
status = sl_se_data_region_get_location(&cmd_ctx, (void **) &data_start, &data_size);
99+
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
100+
VerifyOrReturnError(GENERIC_ADDRESS(addr) > GENERIC_ADDRESS((uint32_t) data_start), CHIP_ERROR_INVALID_ADDRESS);
101+
status = sl_se_data_region_erase(&cmd_ctx, (void *) addr, 1); // Erase one page
102+
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
103+
#endif
104+
return CHIP_NO_ERROR;
71105
}
72106

73107
CHIP_ERROR WritePage(uint32_t addr, const uint8_t * data, size_t size)
74108
{
75-
return chip::DeviceLayer::Silabs::GetPlatform().FlashWritePage(addr, data, size);
109+
#ifdef SLI_SI91X_MCU_INTERFACE
110+
rsi_flash_write((uint32_t *) addr, (unsigned char *) data, size);
111+
#elif defined(_SILICON_LABS_32B_SERIES_2)
112+
MSC_WriteWord((uint32_t *) addr, data, size);
113+
#elif defined(_SILICON_LABS_32B_SERIES_3)
114+
sl_status_t status;
115+
uint32_t * data_start = NULL;
116+
size_t data_size;
117+
118+
status = sl_se_data_region_get_location(&cmd_ctx, (void **) &data_start, &data_size);
119+
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
120+
VerifyOrReturnError(GENERIC_ADDRESS(addr) > GENERIC_ADDRESS((uint32_t) data_start), CHIP_ERROR_INVALID_ADDRESS);
121+
status = sl_se_data_region_write(&cmd_ctx, (void *) addr, data, size);
122+
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
123+
#endif
124+
return CHIP_NO_ERROR;
76125
}
77126

78127
size_t RoundNearest(size_t n, size_t multiple)
@@ -154,8 +203,16 @@ CHIP_ERROR Storage::Initialize(uint32_t flash_addr, uint32_t flash_size)
154203
{
155204
#ifndef SLI_SI91X_MCU_INTERFACE
156205
base_addr = (flash_addr + flash_size - FLASH_PAGE_SIZE);
206+
207+
#ifdef _SILICON_LABS_32B_SERIES_2
208+
MSC_Init();
209+
#elif defined(_SILICON_LABS_32B_SERIES_3)
210+
sl_status_t status;
211+
status = sl_se_init();
212+
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR_INTERNAL);
213+
status = sl_se_init_command_context(&cmd_ctx);
214+
#endif // _SILICON_LABS_32B_SERIES
157215
#endif // SLI_SI91X_MCU_INTERFACE
158-
chip::DeviceLayer::Silabs::GetPlatform().FlashInit();
159216
#ifdef SL_PROVISION_GENERATOR
160217
setNvm3End(base_addr);
161218
#endif

src/platform/silabs/platformAbstraction/GsdkSpam.cpp

+2-69
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,12 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include <em_device.h>
19-
#include <lib/support/CodeUtils.h>
2018
#include <platform/silabs/platformAbstraction/SilabsPlatform.h>
19+
2120
#if defined(_SILICON_LABS_32B_SERIES_2)
22-
#include "em_msc.h"
2321
#include "em_rmu.h"
24-
#elif defined(_SILICON_LABS_32B_SERIES_3)
22+
#else
2523
#include "sl_hal_emu.h"
26-
#include "sl_se_manager.h"
27-
#include "sl_se_manager_types.h"
28-
#include <sl_se_manager_extmem.h>
2924
#endif // _SILICON_LABS_32B_SERIES_2
3025
#include "sl_system_kernel.h"
3126

@@ -70,18 +65,6 @@ extern "C" {
7065
#include "silabs_utils.h"
7166
#endif
7267

73-
#if defined(_SILICON_LABS_32B_SERIES_3)
74-
// To remove any ambiguities regarding the Flash aliases, use the below macro to ignore the 8 MSB.
75-
#define FLASH_GENERIC_MASK 0x00FFFFFF
76-
#define GENERIC_ADDRESS(addr) ((addr) &FLASH_GENERIC_MASK)
77-
78-
// Transforms any address into an address using the same alias as FLASH_BASE from the CMSIS.
79-
#define CMSIS_CONVERTED_ADDRESS(addr) (GENERIC_ADDRESS(addr) | FLASH_BASE)
80-
namespace {
81-
sl_se_command_context_t cmd_ctx;
82-
}
83-
#endif // _SILICON_LABS_32B_SERIES_3
84-
8568
namespace chip {
8669
namespace DeviceLayer {
8770
namespace Silabs {
@@ -124,56 +107,6 @@ CHIP_ERROR SilabsPlatform::Init(void)
124107
return CHIP_NO_ERROR;
125108
}
126109

127-
CHIP_ERROR SilabsPlatform::FlashInit()
128-
{
129-
#if defined(_SILICON_LABS_32B_SERIES_2)
130-
MSC_Init();
131-
#elif defined(_SILICON_LABS_32B_SERIES_3)
132-
sl_status_t status;
133-
status = sl_se_init();
134-
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
135-
status = sl_se_init_command_context(&cmd_ctx);
136-
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
137-
#endif
138-
return CHIP_NO_ERROR;
139-
}
140-
141-
CHIP_ERROR SilabsPlatform::FlashErasePage(uint32_t addr)
142-
{
143-
#if defined(_SILICON_LABS_32B_SERIES_2)
144-
MSC_ErasePage((uint32_t *) addr);
145-
#elif defined(_SILICON_LABS_32B_SERIES_3)
146-
sl_status_t status;
147-
uint32_t * data_start = NULL;
148-
size_t data_size;
149-
150-
status = sl_se_data_region_get_location(&cmd_ctx, (void **) &data_start, &data_size);
151-
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
152-
VerifyOrReturnError(GENERIC_ADDRESS(addr) > GENERIC_ADDRESS((uint32_t) data_start), CHIP_ERROR_INVALID_ADDRESS);
153-
status = sl_se_data_region_erase(&cmd_ctx, (void *) addr, 1); // Erase one page
154-
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
155-
#endif
156-
return CHIP_NO_ERROR;
157-
}
158-
159-
CHIP_ERROR SilabsPlatform::FlashWritePage(uint32_t addr, const uint8_t * data, size_t size)
160-
{
161-
#if defined(_SILICON_LABS_32B_SERIES_2)
162-
MSC_WriteWord((uint32_t *) addr, data, size);
163-
#elif defined(_SILICON_LABS_32B_SERIES_3)
164-
sl_status_t status;
165-
uint32_t * data_start = NULL;
166-
size_t data_size;
167-
168-
status = sl_se_data_region_get_location(&cmd_ctx, (void **) &data_start, &data_size);
169-
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
170-
VerifyOrReturnError(GENERIC_ADDRESS(addr) > GENERIC_ADDRESS((uint32_t) data_start), CHIP_ERROR_INVALID_ADDRESS);
171-
status = sl_se_data_region_write(&cmd_ctx, (void *) addr, data, size);
172-
VerifyOrReturnError(status == SL_STATUS_OK, CHIP_ERROR(status));
173-
#endif
174-
return CHIP_NO_ERROR;
175-
}
176-
177110
#ifdef ENABLE_WSTK_LEDS
178111
void SilabsPlatform::InitLed(void)
179112
{

src/platform/silabs/platformAbstraction/SilabsPlatform.h

-4
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,6 @@ class SilabsPlatform : virtual public SilabsPlatformAbstractionBase
5757

5858
void StartScheduler(void) override;
5959

60-
CHIP_ERROR FlashInit() override;
61-
CHIP_ERROR FlashErasePage(uint32_t addr) override;
62-
CHIP_ERROR FlashWritePage(uint32_t addr, const uint8_t * data, size_t size) override;
63-
6460
private:
6561
friend SilabsPlatform & GetPlatform(void);
6662

src/platform/silabs/platformAbstraction/SilabsPlatformBase.h

-5
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,6 @@ class SilabsPlatformAbstractionBase
5151
virtual bool GetLedState(uint8_t led) { return 0; }
5252
virtual CHIP_ERROR ToggleLed(uint8_t led) { return CHIP_ERROR_NOT_IMPLEMENTED; }
5353

54-
// Flash
55-
virtual CHIP_ERROR FlashInit() { return CHIP_ERROR_NOT_IMPLEMENTED; }
56-
virtual CHIP_ERROR FlashErasePage(uint32_t addr) { return CHIP_ERROR_NOT_IMPLEMENTED; }
57-
virtual CHIP_ERROR FlashWritePage(uint32_t addr, const uint8_t * data, size_t size) { return CHIP_ERROR_NOT_IMPLEMENTED; }
58-
5954
// BLE Specific Method
6055

6156
protected:

src/platform/silabs/platformAbstraction/WiseMcuSpam.cpp

-19
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818
#include <platform/silabs/platformAbstraction/SilabsPlatform.h>
1919
#include <sl_si91x_button_pin_config.h>
20-
#include <sl_si91x_common_flash_intf.h>
2120

2221
#include <FreeRTOS.h>
2322
#include <task.h>
2423

2524
#include <app/icd/server/ICDServerConfig.h>
26-
#include <lib/support/CodeUtils.h>
2725

2826
#include <lib/support/CodeUtils.h>
2927
#if SILABS_LOG_ENABLED
@@ -194,23 +192,6 @@ uint8_t SilabsPlatform::GetButtonState(uint8_t button)
194192
return (button < SL_SI91x_BUTTON_COUNT) ? sButtonStates[button] : 0;
195193
}
196194

197-
CHIP_ERROR SilabsPlatform::FlashInit()
198-
{
199-
return CHIP_NO_ERROR;
200-
}
201-
202-
CHIP_ERROR SilabsPlatform::FlashErasePage(uint32_t addr)
203-
{
204-
rsi_flash_erase_sector((uint32_t *) addr);
205-
return CHIP_NO_ERROR;
206-
}
207-
208-
CHIP_ERROR SilabsPlatform::FlashWritePage(uint32_t addr, const uint8_t * data, size_t size)
209-
{
210-
rsi_flash_write((uint32_t *) addr, (unsigned char *) data, size);
211-
return CHIP_NO_ERROR;
212-
}
213-
214195
} // namespace Silabs
215196
} // namespace DeviceLayer
216197
} // namespace chip

0 commit comments

Comments
 (0)