Re: Retained Register Interface (also, hi!)

2018-04-05 Thread Alvaro Prieto
Here's my first attempt at it:
https://github.com/apache/mynewt-core/pull/996

On Tue, Apr 3, 2018 at 1:49 PM, Alvaro Prieto 
wrote:

> I like that idea. I'll start implementing for the NRF with something like
> that, we can come up with the name in the meantime.
>
> How about something with nonvolatile like hal_nvreg? I guess they are
> volatile with a hard reset though...
>
> Alvaro
>
> On Tue, Apr 3, 2018 at 11:59 AM, marko kiiskila  wrote:
>
>> Hi Alvaro,
>>
>> I’d recommend a new API in HAL. One where register contents will
>> survive reset, depending on the type of reset.
>>
>> Have #define HAL_RETAIN_REG_MAX  XXX
>> in some MCU specific header file. And then in hal/hal_retain_reg.h
>>
>> #ifnfdef HAL_RETAIN_REG_MAX
>> #define HAL_RETAIN_REG_MAX 0
>> #endif
>>
>> void hal_retain_reg_write(unsigned int reg, uint32_t val);
>> uint32_t hal_retain_reg_read(unsigned int reg);
>>
>> HAL_RETAIN_REG_MAX would presumably be 2 for nrf52, and a little bit
>> higher for STMs. For platforms which don’t have peripheral supporting
>> this kind of storage, you can carve out space from RAM by reserving
>> the space within linker script.
>>
>> hal_retain is a bit long as a prefix, though :)
>>
>> > On Apr 3, 2018, at 6:36 PM, Alvaro Prieto 
>> wrote:
>> >
>> > Hello,
>> >
>> > My name is Alvaro. I'm a firmware/hardware engineer and I've been
>> playing
>> > with mynewt at home and at work for a few months now. I mostly hang out
>> in
>> > the mynewt slack, but I've been advised to come here for hal and other
>> > source change discussions.
>> >
>> > The one today has to deal with a hal friendly way to access retained
>> > registers. By that, I mean registers that survive a soft reset.
>> > (NRF_POWER->GPREGRET on the NRF series).
>> > My question is: How do we implement this?
>> >
>> > For background, my goal is to enter the serial bootloader without
>> > necessarily using the boot pin, so:
>> > 1. Set magic value in retained register
>> > 2. Call NVIC_SystemReset()
>> > 3. Bootloader sees magic value, clears it, and enters bootloader
>> >
>> > While this is easy to do by just writing to the NRF_POWER->GPREGRET
>> > register, it doesn't really for for any other platforms. The STM series
>> has
>> > the RTC backup registers, but other platforms might not support it.
>> >
>> > Should I add retain register read/write functions to hal_system or
>> should I
>> > add a new hal_retained_reg.
>> >
>> > Looking forward to getting this working :D
>> >
>> > Cheers,
>> >
>> > Alvaro
>>
>>
>


[GitHub] nvlsianpu commented on issue #2: Fix imgmgr to follow flash write alignment

2018-04-05 Thread GitBox
nvlsianpu commented on issue #2: Fix imgmgr to follow flash write alignment
URL: https://github.com/apache/mynewt-mcumgr/issues/2#issuecomment-378901986
 
 
   @utzig @ccollins476ad 


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] nvlsianpu opened a new issue #2: Fix imgmgr to follow flash write alignment

2018-04-05 Thread GitBox
nvlsianpu opened a new issue #2: Fix imgmgr to follow flash write alignment
URL: https://github.com/apache/mynewt-mcumgr/issues/2
 
 
   Replay bugfix https://github.com/apache/mynewt-core/pull/963 to 
cmd/img_mgmt/src/img_mgmt.c function  `static int img_mgmt_upload(struct 
mgmt_ctxt *ctxt)`


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services