File tree Expand file tree Collapse file tree 6 files changed +18
-0
lines changed
system/libarc32_arduino101 Expand file tree Collapse file tree 6 files changed +18
-0
lines changed Original file line number Diff line number Diff line change 3434
3535#include "soc_register.h"
3636#include "portable.h"
37+ #include "platform.h"
3738
3839#define GPIO_CLKENA_POS (31)
3940#define GPIO_LS_SYNC_POS (0)
@@ -429,6 +430,8 @@ static void soc_gpio_ISR_proc( uint32_t dev_id )
429430 uint32_t status = MMIO_REG_VAL_FROM_BASE (dev -> reg_base , SOC_GPIO_INTSTATUS );
430431 // Mask the pending interrupts
431432 MMIO_REG_VAL_FROM_BASE (dev -> reg_base , SOC_GPIO_INTMASK ) |= status ;
433+ // Save a copy of the INTSTATUS register
434+ shared_data -> pm_int_status = status ;
432435 // Clear interrupt flag (write 1 to clear)
433436 MMIO_REG_VAL_FROM_BASE (dev -> reg_base , SOC_GPIO_PORTA_EOI ) = status ;
434437
Original file line number Diff line number Diff line change 4343
4444#include "data_type.h"
4545#include "gpio.h"
46+ #include "platform.h"
4647
4748// soc gpio 32 bit count
4849#if defined(CONFIG_SOC_GPIO_32 )
Original file line number Diff line number Diff line change 3737#include "io_config.h"
3838#include "eiaextensions.h"
3939#include "portable.h"
40+ #include "platform.h"
4041
4142/* EIA GPIO device registers */
4243#define SWPORTA_DR (0x00) /* GPIO Port A Data Register*/
@@ -355,6 +356,8 @@ static void ss_gpio_ISR_proc( uint32_t dev_id )
355356 uint32_t status = REG_READ ( INTSTATUS );
356357 /* Mask the pending IRQ in order to avoid a storm of interrupts */
357358 REG_WRITE (INTMASK , REG_READ (INTMASK ) | status );
359+ // Save a copy of the INTSTATUS register
360+ shared_data -> pm_int_status = status ;
358361 // Clear interrupt flag (write 1 to clear)
359362 REG_WRITE ( PORTA_EOI , status );
360363
Original file line number Diff line number Diff line change 4141
4242#include "data_type.h"
4343#include "gpio.h"
44+ #include "platform.h"
4445
4546#define SS_GPIO_8B0_BITS (8)
4647#define SS_GPIO_8B1_BITS (8)
Original file line number Diff line number Diff line change @@ -146,6 +146,16 @@ struct platform_shared_block_ {
146146
147147 struct shared_ring_buffer quark_to_ARC ;
148148 struct shared_ring_buffer ARC_to_quark ;
149+
150+ uint32_t arc_cpu_context [33 ];
151+
152+ uint32_t pm_status ;
153+
154+ void * arc_restore_addr ;
155+
156+ void * quark_restore_addr ;
157+
158+ uint32_t pm_int_status ;
149159};
150160
151161#define RAM_START 0xA8000000
You can’t perform that action at this time.
0 commit comments