<feed xmlns='http://www.w3.org/2005/Atom'>
<title>embassy/embassy-boot/boot/src/partition.rs, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/'/>
<entry>
<title>Remove legacy Partition type and use the one from embedded-hal</title>
<updated>2023-05-30T11:44:12+00:00</updated>
<author>
<name>Rasmus Melchior Jacobsen</name>
<email>rmja@laesoe.org</email>
</author>
<published>2023-05-30T11:44:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=551f76c70067bfa14b159a198cdb92f810f40607'/>
<id>551f76c70067bfa14b159a198cdb92f810f40607</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>embassy-boot: add nightly feature gate for async usage</title>
<updated>2023-04-14T09:27:23+00:00</updated>
<author>
<name>sander</name>
<email>sander.wittwer@dengineering.no</email>
</author>
<published>2023-04-14T09:27:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=3002ee0dcf0ae186867b2fd869daed609d7a4a23'/>
<id>3002ee0dcf0ae186867b2fd869daed609d7a4a23</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>embassy-boot: add nightly feature gates</title>
<updated>2023-04-11T11:49:32+00:00</updated>
<author>
<name>sander</name>
<email>sander.wittwer@dengineering.no</email>
</author>
<published>2023-04-11T11:49:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=f51cbebffd8a2c7a66888b5cbd288a6eb912a784'/>
<id>f51cbebffd8a2c7a66888b5cbd288a6eb912a784</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Let Partition range be u32 instead of usize</title>
<updated>2023-04-05T06:28:31+00:00</updated>
<author>
<name>Rasmus Melchior Jacobsen</name>
<email>rmja@laesoe.org</email>
</author>
<published>2023-04-05T06:28:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=2deb2c624c78f4ff582441d7d00a654ac3844e33'/>
<id>2deb2c624c78f4ff582441d7d00a654ac3844e33</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge #1324 #1327</title>
<updated>2023-04-04T14:59:10+00:00</updated>
<author>
<name>bors[bot]</name>
<email>26634292+bors[bot]@users.noreply.github.com</email>
</author>
<published>2023-04-04T14:59:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=3ede5667d408272eee1c10ede17cfdf035a56ab5'/>
<id>3ede5667d408272eee1c10ede17cfdf035a56ab5</id>
<content type='text'>
1324: Add MCO support for L4 and F4 families r=Dirbaio a=m-dupont

Add MCO support for L4 and F4 as already done in F7. 

When the 'HSI' source is selected as MCO source, 'HSI' is activated (`set_hsion(true)`) . This is done to operate the MCO in case 'MSI' is chosen as the clock source for the CPU. The same applies to PLL, etc.

1327: Avoid write before erase r=Dirbaio a=rmja

This introduces an additional marker to the state partition right after the magic which indicates whether the current progress is valid or not. Validation in tests that we never write without an erase is added.

There is currently a FIXME in the FirmwareUpdater. Let me know if we should take the erase value as a parameter. I opened a feature request in embedded-storage to get this value in the trait. Before this, the assumption about ERASE_VALUE=0xFF was the same.

I have made some thoughts about whether this is a breaking change between the app and firmware, i.e. whether adding the "Progress valid" field is breaking. My conclusion is that it is not a breaking change. For the case where an app uses this new FirmwareUpdater together with an old bootloader, what it now does, is that it:

1. Writes the progress valid field to all zeros. This field is not known in the old bootloader, so it actually writes a "current progress" index.
2. The entire state partition is erased - effectively removing any trace of 1.
3. Set magic

This should be compatible.


Co-authored-by: Mathieu Dupont &lt;mdupont@cppm.in2p3.fr&gt;
Co-authored-by: Rasmus Melchior Jacobsen &lt;rmja@laesoe.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1324: Add MCO support for L4 and F4 families r=Dirbaio a=m-dupont

Add MCO support for L4 and F4 as already done in F7. 

When the 'HSI' source is selected as MCO source, 'HSI' is activated (`set_hsion(true)`) . This is done to operate the MCO in case 'MSI' is chosen as the clock source for the CPU. The same applies to PLL, etc.

1327: Avoid write before erase r=Dirbaio a=rmja

This introduces an additional marker to the state partition right after the magic which indicates whether the current progress is valid or not. Validation in tests that we never write without an erase is added.

There is currently a FIXME in the FirmwareUpdater. Let me know if we should take the erase value as a parameter. I opened a feature request in embedded-storage to get this value in the trait. Before this, the assumption about ERASE_VALUE=0xFF was the same.

I have made some thoughts about whether this is a breaking change between the app and firmware, i.e. whether adding the "Progress valid" field is breaking. My conclusion is that it is not a breaking change. For the case where an app uses this new FirmwareUpdater together with an old bootloader, what it now does, is that it:

1. Writes the progress valid field to all zeros. This field is not known in the old bootloader, so it actually writes a "current progress" index.
2. The entire state partition is erased - effectively removing any trace of 1.
3. Set magic

This should be compatible.


Co-authored-by: Mathieu Dupont &lt;mdupont@cppm.in2p3.fr&gt;
Co-authored-by: Rasmus Melchior Jacobsen &lt;rmja@laesoe.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Expose read/write/erase on partition</title>
<updated>2023-04-04T10:50:53+00:00</updated>
<author>
<name>Rasmus Melchior Jacobsen</name>
<email>rmja@laesoe.org</email>
</author>
<published>2023-04-04T10:50:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=803c09c300a9aeb412e08c37723cd9de3caf89e9'/>
<id>803c09c300a9aeb412e08c37723cd9de3caf89e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move MemFlash to separate module and add verify_erased_before_write verification</title>
<updated>2023-04-03T13:33:20+00:00</updated>
<author>
<name>Rasmus Melchior Jacobsen</name>
<email>rmja@laesoe.org</email>
</author>
<published>2023-04-03T13:33:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=7c11d85e1ea0d01e5e1b4d6564d258663d66509b'/>
<id>7c11d85e1ea0d01e5e1b4d6564d258663d66509b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add erase and wipe tests</title>
<updated>2023-03-31T08:28:47+00:00</updated>
<author>
<name>Rasmus Melchior Jacobsen</name>
<email>rmja@laesoe.org</email>
</author>
<published>2023-03-31T08:28:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=d9d6fd6d70f3f9971c6db65b6962199f9da7913c'/>
<id>d9d6fd6d70f3f9971c6db65b6962199f9da7913c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Let bootloader partition have read/write/erase operations</title>
<updated>2023-03-31T08:18:19+00:00</updated>
<author>
<name>Rasmus Melchior Jacobsen</name>
<email>rmja@laesoe.org</email>
</author>
<published>2023-03-31T08:18:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=42931b51f25ca22d7df3a6e8e98bfab7904eb11e'/>
<id>42931b51f25ca22d7df3a6e8e98bfab7904eb11e</id>
<content type='text'>
This change should not have any breaking changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change should not have any breaking changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split bootloader implementation into multiple files</title>
<updated>2023-03-31T06:05:37+00:00</updated>
<author>
<name>Rasmus Melchior Jacobsen</name>
<email>rmja@laesoe.org</email>
</author>
<published>2023-03-31T06:05:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=373760a56b1bad13ebcec19247ee3ee4ae4cb07c'/>
<id>373760a56b1bad13ebcec19247ee3ee4ae4cb07c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
