11# Envelopes
22
3- Envelopes for Toit.
3+ Envelopes and partition tables for Toit.
44
55This repository contains a tool to generate envelopes for Toit. It
66also automatically builds envelopes for the variants that are stored in
@@ -19,105 +19,10 @@ compiled with and for SDK v2.0.0-alpha.90 are found on the
1919[ v2.0.0-alpha.90 release] ( https://github.com/toitlang/envelopes/releases/tag/v2.0.0-alpha.90 )
2020page.
2121
22- ## Variants
22+ See the [ variants/README.md] ( variants/README.md ) for a list of the
23+ most commonly used variants. You can also browse the ` variants `
24+ directory for more variants.
2325
24- ### esp32
25-
26- A generic ESP32 variant. This is the default variant when using Toit.
27- It is built for maximum compatibility.
28-
29- This variant supports Ethernet, but without the clock output.
30-
31- ### esp32-spiram
32-
33- An ESP32 variant for boards with SPIRAM. Otherwise the same as the ESP32 variant.
34-
35- ### esp32-eth-clk-out0 and esp32-eth-clk-out17
36-
37- A variant for ESP32 boards with Ethernet and a clock output on pin 0/17.
38-
39- Olimex boards with Ethernet should use this variant. The WROOM versions need
40- ` esp32-eth-clk-out17 ` and the WROVER versions need ` esp32-eth-clk-out0 ` .
41-
42- ### esp32c3
43-
44- A generic [ ESP32-C3 variant] ( variants/esp32c ) . This is the default variant
45- when using Toit on ESP32-C3 boards.
46-
47- ### esp32s2
48-
49- A generic [ ESP32-S2 variant] ( variants/esp32s2 ) . This is the default variant
50- when using Toit on ESP32-S2 boards.
51-
52- ### esp32s3
53-
54- A generic [ ESP32-S3 variant] ( variants/esp32s3 ) . This is the default variant
55- when using Toit on ESP32-S3 boards.
56-
57- This variant is configured for external Quad PSRAM.
58-
59- ### esp32s3-spiram-octo
60-
61- A [ variant] ( variants/esp32s3-spiram-octo/ ) for ESP32-S3 boards with external
62- octal PSRAM.
63-
64- These boards are faster, but often more expensive.
65-
66- ### esp32-no-ble
67-
68- A [ variant] ( variants/esp32-no-ble/ ) for ESP32 boards. This variant
69- saves some RAM and flash space by removing the Bluetooth stack.
70- The saved IRAM enables us to make the Toit interpreter a little faster
71- and add support for external RAM (PSRAM, aka SPIRAM).
72-
73- ## Contributing
74-
75- Feel free to open issues and pull requests with new variants. Make sure
76- they have a description (README.md) with the purpose and the changes.
77- We will automatically build them whenever a new Toit version is released.
78-
79- Note that some variants are featured here. Consult the
80- Toit team before adding new variants to this README.
81-
82- ### Creating a variant
83-
84- Variants are created by copying an existing variant and making the
85- necessary changes. These consists of either overwriting existing files
86- or by applying patches.
87-
88- #### Partition changes
89-
90- For partition changes, simply copy the new ` partitions.csv ` into the
91- variant directory. The ` esp32-ota-1c0000 ` is an example of this where
92- the OTA partition size has been increased.
93-
94- #### sdkconfig changes
95-
96- For ` sdkconfig ` changes, a patch to the original ` sdkconfig.defaults `
97- file is typically preferred.
98-
99- For example, to create a variant ` esp32s3-foo ` .
100- * Check out Toit (or use an existing checkout).
101- * Copy the existing ` toolchains/esp32s3 ` directory to ` toolchains/esp32s3-foo ` :
102- ` cp -r toolchains/esp32s3 toolchains/esp32s3-foo ` .
103- * Run ` make IDF_TARGET=esp32s3 ESP32_CHIP=esp32s3-foo menuconfig ` and make the changes you want.
104- This automatically updates the ` sdkconfig.defaults ` as well.
105- * Create patch by running:
106- ```
107- diff -aur \
108- --label toit/toolchains/esp32s3/sdkconfig.defaults \
109- --label synthesized/esp32s3-foo/sdkconfig.defaults \
110- toolchains/esp32s3/sdkconfig.defaults \
111- toolchains/esp32s3-foo/sdkconfig.defaults \
112- > toolchains/esp32s3-foo/sdkconfig.defaults.patch
113- ```
114- The labels are not crucial, but make it easier for us to update the
115- patch at a later time.
116- * Create a new variant in this (` envelopes ` ) repository and copy the patch file into it.
117-
118- #### Main changes
119-
120- For changes to the ` main ` directory (be it the ` toit.c ` or the ` CMakelists.txt ` in it),
121- use a recursive diff to create a patch on the original ` main ` directory.
122-
123- The synthetization tool will use the flag ` -p1 ` when applying the patch.
26+ See the [ partitions/esp32/README.md] ( partitions/esp32/README.md ) for
27+ a list of the most commonly used partition tables. You can also browse
28+ the ` partitions/esp32 ` directory for more partition tables.
0 commit comments