{"id":48503985,"url":"https://github.com/bootlin/openwrt-feed-st","last_synced_at":"2026-04-07T15:37:18.128Z","repository":{"id":226639930,"uuid":"765263980","full_name":"bootlin/openwrt-feed-st","owner":"bootlin","description":"OpenWRT feed for STMicroelectonics boards","archived":false,"fork":false,"pushed_at":"2025-06-27T13:40:12.000Z","size":4538,"stargazers_count":10,"open_issues_count":3,"forks_count":7,"subscribers_count":5,"default_branch":"openwrt-24.10","last_synced_at":"2025-06-27T14:39:44.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bootlin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-29T15:35:20.000Z","updated_at":"2025-06-27T13:40:15.000Z","dependencies_parsed_at":"2024-05-22T14:55:25.913Z","dependency_job_id":"fb42d7ff-59cf-4f28-86da-26c5f98158bb","html_url":"https://github.com/bootlin/openwrt-feed-st","commit_stats":null,"previous_names":["bootlin/openwrt-feed-st"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/bootlin/openwrt-feed-st","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootlin%2Fopenwrt-feed-st","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootlin%2Fopenwrt-feed-st/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootlin%2Fopenwrt-feed-st/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootlin%2Fopenwrt-feed-st/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bootlin","download_url":"https://codeload.github.com/bootlin/openwrt-feed-st/tar.gz/refs/heads/openwrt-24.10","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bootlin%2Fopenwrt-feed-st/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31518632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-07T15:37:17.388Z","updated_at":"2026-04-07T15:37:18.113Z","avatar_url":"https://github.com/bootlin.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# STMicroelectronics feed for OpenWRT\n\nThis repository is an OpenWRT feed dedicated to supporting the\n[STMicroelectronics](https://www.st.com)\n[STM32MP1](https://www.st.com/en/microcontrollers-microprocessors/stm32mp1-series.html)\nand\n[STM32MP2](https://www.st.com/en/microcontrollers-microprocessors/stm32mp2-series.html)\nplatforms.\n\nUsing this project is not strictly necessary as OpenWrt itself has support for\nstm32 target.\nBut this feed integrates the [STMicroelectronics](https://www.st.com) BSP,\nwhereas OpenWrt uses upstream components.\nAnd more boards are supported in the feed.\n\nYou are using the `openwrt-24.10` branch of the feed, which is based on the\nOpenWrt branch `openwrt-24.10`.\nActually the feed is based on OpenWrt\n[v24.10.5](https://github.com/openwrt/openwrt/tree/v24.10.5)\n([Release Note](https://openwrt.org/releases/24.10/notes-24.10.5)).\n\n## Supported devices\n\n1. `STM32MP157F-DK2`: minimal support for the [STM32MP157F Discovery Kit 2](https://www.st.com/en/evaluation-tools/stm32mp157f-dk2.html)\n   board.\n\n2. `STM32MP157F-DK2-DEMO`: based on the `STM32MP157F-DK2` device including\n   additional packages like a web interface to configure the device.\n\n3. `STM32MP135F-DK`: minimal support for the [STM32MP135F Discovery Kit](https://www.st.com/en/evaluation-tools/stm32mp135f-dk.html)\n   board.\n\n4. `STM32MP135F-DK-DEMO`: based on the `STM32MP135F-DK` device including\n   additional packages like a web interface to configure the device.\n\n5. `STM32MP257F-EV1`: minimal support for the [STM32MP257F Evaluation](https://www.st.com/en/evaluation-tools/stm32mp257f-ev1.html)\n   board.\n\n6. `STM32MP257F-EV1-DEMO`: based on the `STM32MP257F-EV1` device including\n   additional packages like a web interface to configure the device.\n\n7. `STM32MP257F-DK`: minimal support for the [STM32MP257F Discovery Kit](https://www.st.com/en/evaluation-tools/stm32mp257f-dk.html)\n   board.\n\n8. `STM32MP257F-DK-DEMO`: based on the `STM32MP257F-DK` device including\n   additional packages like a web interface to configure the device.\n\n9. `STM32MP235F-DK`: minimal support for the [STM32MP235F Discovery Kit](https://www.st.com/en/microcontrollers-microprocessors/stm32mp235f.html)\n   board. Although this board does not physically exist, it enables users to\n   emulate the behavior of an `STM32MP235` system using the `STM32MP257F Discovery Kit`.\n   Since the STM32MP235 implements a subset of the STM32MP257 features, this\n   configuration allows developers to evaluate the STM32MP235 SoC.\n\n10. `STM32MP235F-DK-DEMO`: based on the `STM32MP235F-DK` device including\n    additional packages like a web interface to configure the device.\n\n11. `STM32MP215F-DK`: minimal support for the [STM32MP215F Discovery Kit](https://wiki.st.com/stm32mpu/wiki/STM32MP215x-DKx_-_hardware_description)\n    board.\n\n12. `STM32MP215F-DK-DEMO`: based on the `STM32MP215F-DK` device including\n    additional packages like a web interface to configure the device.\n\n\n|Supported features|STM32MP157F-DK2|STM32MP135F-DK|STM32MP257F-EV1|STM32MP257F-DK|STM32MP235F-DK|STM32MP215F-DK|\n|------------------|---------------|--------------|---------------|--------------|--------------|--------------|\n|Sysupgrade|yes|yes|yes|yes|yes|yes|\n|Ethernet|yes|yes|yes|yes|yes|yes|\n|Watchdog|yes|yes|yes|yes|yes|yes|\n|RTC|yes|yes|yes|yes|yes|yes|\n|Hardware RNG (Optee)|yes|yes|yes|yes|yes|yes|\n|LED|yes|yes|yes|yes|yes|yes|\n|Button|no|yes (USER2)|yes (USER1/USER2)|yes (USER1/USER2)|yes|yes (USER1/USER2)|\n|Wifi|yes|yes|x|yes|yes|x|\n|USB Type-A|yes|yes|yes|yes|yes|x|\n|Remote processors|no|no|yes (demo profile)|yes (demo profile)|yes (demo profile)|yes (demo profile)|\n|USB Type-C|no|no|yes dual-role (demo profile)|yes dual-role (demo profile)|yes dual-role (demo profile)|yes dual-role (demo profile)|\n|PCIe|x|x|yes root complex (demo profile)|x|x|x|\n\n## BSP\n\nThis feed is based on the `STPM32MP1/STM32MP2 BSP v6.1`.\n\n|Components|Version|\n|----------|-------|\n|TF-A|2.10-stm32mp-r1|\n|U-Boot|2023.10-stm32mp-r1|\n|OPTEE|4.0.0-stm32mp-r1|\n|Linux|OpenWRT kernel + v6.6-stm32mp-r2|\n\nFor the kernel, the patches from the v6.6-stm32mp branch until the tag\nv6.6-stm32mp-r2 were added.\nThey are available in `target/linux/stm32/patches-6.6/`.\n\nSome patches were removed as they were applied in Linux, or they are already\napplied by OpenWrt.\n```\n2c9b2c9cac5e (\"usb: dwc2: keep the usb stack informed of SetPortFeature failure while Host\")\n6287f3f5f2e4 (\"ASoC: stm32: spdifrx: fix dma channel release in stm32_spdifrx_remove\")\n8a5e18189df4 (\"media: i2c: imx335: Enable regulator supplies\")\nc5540f6a4d9a (\"nvmem: stm32: add support for STM32MP25 BSEC to control OTP data\")\neb99d7c27da7 (\"crypto: stm32/cryp - call finalize with bh disabled\")\n31286612453a (\"perf list: fix arguments order issue for events printing\")\nfd68ca2e9089 (\"i2c: stm32f7: Do not prepare/unprepare clock during runtime suspend/resume\")\n1d8ffe3fcfac (\"ARM: dts: stm32: fix IPCC EXTI declaration on stm32mp151\")\n22772c87565e (\"clocksource: stm32-lptimer: use wakeup capable instead of init wakeup\")\n6ab3278ee867 (\"pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map\")\n10b245589fa0 (\"drm: bridge: adv7511: fill i2s stream capabilities\")\na1ff3250129a (\"pinctrl: stm32: check devm_kasprintf() returned value\")\n67f10b41e33e (\"drivers: core: fix device leak in __fw_devlink_relax_cycles()\")\n94508b3dd9f6 (\"usb: dwc2: gadget: remove of_node reference upon udc_stop\")\n07963aca871a (\"net: phy: realtek: disable PHY-mode EEE\")\n89e1b6a95cdf4 (\"i2c: stm32f7: Use devm_clk_get_enabled()\")\n435fd1bcf552b (\"i2c: stm32f7: use dev_err_probe upon calls of devm_request_irq\")\ncf32cfcc2d74e (\"i2c: stm32f7: perform most of irq job in threaded handler\")\n2b1d2978b2b05 (\"i2c: stm32f7: simplify status messages in case of errors\")\n6016e8616824a (\"spi: stm32: Check for cfg availability in stm32_spi_probe\")\n2f38d4c001e8b (\"mtd: rawnand: stm32_fmc2: avoid overlapping mappings on ECC buffer\")\n865a7b9b16b14 (\"pinctrl: stm32: Manage irq affinity settings\")\nd9d7111f3cf5c (\"i2c: stm32f7: unmap DMA mapped buffer\")\n55273980dc97f (\"i2c: stm32: fix the device used for the DMA map\")\n9207b7bce2799 (\"mtd: rawnand: stm32_fmc2: fix ECC overwrite\")\n9d74fc2f5e3a (\"spi: spi-mem: Allow specifying the byte order in DTR mode\")\nee48aa9e5979 (\"rtc: rtc-optee: fix memory leak on removal\")\n```\n\nSome patches had to be modified to fix some conflicts.\n```\n950158c37fbf (\"usb: dwc2: hcd: fix power down exiting by system resume\")\n19458fd268c4 (\"media: i2c: imx335: add control of an optional powerdown gpio\")\n393cf701259c (\"mtd: spi-nor: add Octal DTR support for Macronix flash\")\n1e5eedcdaf1c (\"firmware: arm_scmi: optee leverage Ocall2 thread provisioning\")\n9d36363eee52 (\"counter: stm32-timer-cnt: add pm runtime support\")\ne983ec4d6702 (\"pinctrl: stm32: add tristate option for stm32mp257\")\na04c279efc3c (\"usb: dwc3: Add support in dwc3 to handle usb-role\")\nb1f3318a0f09 (\"ASoC: Update wm8994 codec config\")\n27c33fae20e0 (\"pwm: stm32: lptimer: add pm_runtime support\")\ndd680178e937 (\"counter: stm32-lptimer-cnt: add pm runtime support\")\n0a222d6c04c9 (\"Revert \"media: stm32: dcmipp: avoid calling s_stream if state already correct\"\")\n7fdd5f74c211 (\"Revert \"media: v4l2-subdev: Document and enforce .s_stream() requirements\"\")\n00925911ce6d (\"nvmem: stm32: add support for non-secure mirror\")\n2a41a04bec3f (\"arm64: dts: st: add st,stm32mp25-cortex-a7-gic in intc node in stm32mp251.dtsi\")\nfdfbbb333977 (\"counter: stm32-lptimer-cnt: fix error handling when enabling\")\nd0b3f9979ae5 (\"net: phy: realtek: update sequence to disable EEE for RTL8211F\")\n5e8186da1fa40 (\"i2c: stm32f7: add support for stm32mp25 soc\")\nc32748b702c28 (\"iio: adc: stm32: add support for stm32mp25\")\nd247bababb186 (\"net: stmmac: add possibility to use ptp external time\")\nbabfc9ba63a0f (\"dmaengine: stm32: New directory for STM32 DMA controllers drivers\")\nc2ab7c5deab4f (\"Revert \"net: phy: smsc: add WoL support to LAN8740/LAN8742 PHYs\"\")\n6068e745fc3b5 (\"i2c: stm32f7: support i2c_*_dma_safe_msg_buf APIs\")\n79f24c8b193bf (\"usb: dwc2: gadget: enable the gadget as wakeup source\")\nb9e45016861b (\"serial: stm32: add tristate option\")\n```\n\nFollowing patches were not applied due to conflicts. They corresponds to the\nempty patches in `target/linux/stm32/patches-6.6/`. They could be applied in the\nfuture if needed.\n```\n426e1c78e4c1 (\"drm/stm: ltdc: set transparency after plane disable\")\n8d235ec212fa (\"drm/stm: ltdc: support of rotation on crtc output\")\n89f5b97c79ac (\"drm/stm: ltdc: add support of plane upscaling\")\n326eea71a0e4 (\"drm/stm: ltdc: refactor interrupt management\")\nc4ffda2683bb (\"drm/stm: ltdc: set color look-up table for each plane\")\n4909e4745e9c (\"drm/stm: ltdc: refactor crtc start sequence\")\na3f784f44512 (\"drm/stm: ltdc: remove encoder helper functions\")\nc273a5bad2aa (\"drm/stm: ltdc: add lvds clock\")\n6a508bd6b305 (\"drm/stm: refactor probe sequence\")\nb90306b377d3 (\"drm/stm: ltdc:  add property default-on\")\n66d934a13b5c (\"drm/stm: ltdc: move mode valid \u0026 fixup to encoder helper functions\")\ne40cd2b4b75b (\"drm/stm: ltdc: Check rotation buffer length\")\n3d63eeb9313b (\"drm/stm: ltdc: Check panel width\")\n1102333ad31b (\"drm/stm: ltdc: set default parent of pixel clock\")\n1bc5bac55257 (\"drm/stm: support of new hardware version for soc MP21\")\ndc9d876018c6 (\"drm/stm: ltdc: Check the security of layer 2.\")\n73c7bd933066 (\"drm/stm: ltdc: remove mode_set_nofb callback\")\n759efa7b4959 (\"drm/stm: ltdc: add plane_atomic_enable callback\")\n73cc2db18231 (\"drm/stm: ltdc: replace pm_runtime_get_sync by pm_runtime_resume_and_get\")\n662800081ef7 (\"drm/stm: ltdc: flush remaining vblank event\")\n6e8b50d319c9 (\"drm/stm: ltdc: Check the security of layer 3.\")\n3682d604ecbd (\"drm/stm: ltdc: reset ltdc on crtc enable\")\nbba33e9f0619 (\"drm/stm: ltdc: set clock parent before set rate\")\n247114342fd4 (\"drm/stm: ltdc: ckeck pm_runtime status\")\n634d4d01d037 (\"drm/stm: ltdc: add clock tolerance module parameter\")\ncf2f1b885568 (\"drm/stm: ltdc: set configuration register masks to 12 bits\")\na825a4c45283 (\"drm/stm: ltdc: check the secure layer\")\n```\n\n## Starter Package\n\nIf you want to use OpenWrt on STM32MPU platforms without building everything\nyourself from source, we provide a Starter Package which contains:\n\n* The prebuilt factory and sysupgrade images for all profiles. Refer to the [flash\n  and boot section](#Flashing-and-booting-the-system) to learn how to\n  use the pre-built images.\n\n* A Software Development Kit (SDK) that allows you to build and package\n  applications for the target.\n\n* An Image Builder that allows you to create custom images without the need\n  for compiling them from source. It downloads pre-compiled packages and\n  integrates them in a single flashable image.\n\n* A build info file that contains the configuration used to build the Starter\n  Package.\n\n* A feed info file that contains the feed configuration used to build the Starter\n  Package.\n\n* A Software Bill of Materials (SBOM).\n\n* A target repository (contains kmods and target-specific packages) that allows\n  to install additional packages on the device.\n\n* A ST repository that contains packages (non target-specific) from ST feed.\n\nThe following table provides links to all these artifacts, compiled with the\nlatest `openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11` release.\n\n| Starter Package | stm32mp1 | stm32mp2 |\n|-----------------|----------|----------|\n| Factory images | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp1-factory-images.tar.gz) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp2-factory-images.tar.gz) |\n| Sysupgrade images | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp1-sysupgrade-images.tar.gz) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp2-sysupgrade-images.tar.gz) |\n| SDK | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-sdk-stm32-stm32mp1.Linux-x86_64.tar.zst) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-sdk-stm32-stm32mp2.Linux-x86_64.tar.zst) |\n| Image Buider | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-imagebuilder-stm32-stm32mp1.Linux-x86_64.tar.zst) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-imagebuilder-stm32-stm32mp2.Linux-x86_64.tar.zst) |\n| Build info | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/config-stm32-stm32mp1.buildinfo) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/config-stm32-stm32mp2.buildinfo) |\n| Feed info | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/feeds-stm32-stm32mp1.buildinfo) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/feeds-stm32-stm32mp2.buildinfo) |\n| SBOM | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp1.bom.cdx.json) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp2.bom.cdx.json) |\n| target repository | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp1-target-repository.tar.gz) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp2-target-repository.tar.gz) |\n| ST repository | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp1-st-repository.tar.gz) | [URL](https://bootlin.com/pub/openwrt-st/openstlinux-6.6-openwrt-24.10.5-mpu-v25.06.11/openwrt-stm32-stm32mp2-st-repository.tar.gz) |\n\n## Getting started\n\n### Pre-requisites\n\nIn order to use [OpenWRT](https://openwrt.org/), you need to have a Linux or\nUnix like distribution installed on your workstation.\nAnd you need to install a set of packages as described in the\n[OpenWRT Build system setup](https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem).\n\n### Getting the code\n\nThe feed is designed to work with the `openwrt-24.10` branch of OpenWRT (last\ntested commit is [v24.10.4](https://github.com/openwrt/openwrt/tree/v24.10.5)).\n\n```bash\n$ git clone https://git.openwrt.org/openwrt/openwrt.git\n$ cd openwrt\n$ git checkout v24.10.5\n```\n\nNext step is to add the [STMicroelectronics](https://www.st.com) feed in the\n`feeds.conf.default` file.\n\n```bash\n$ cat feeds.conf.default\nsrc-git st https://github.com/bootlin/openwrt-feed-st.git\nsrc-git packages https://git.openwrt.org/feed/packages.git\nsrc-git luci https://git.openwrt.org/project/luci.git\nsrc-git routing https://git.openwrt.org/feed/routing.git\nsrc-git telephony https://git.openwrt.org/feed/telephony.git\n#src-git video https://github.com/openwrt/video.git\n#src-git targets https://github.com/openwrt/targets.git\n#src-git oldpackages http://git.openwrt.org/packages.git\n#src-link custom /usr/src/openwrt/custom-feed\n```\n\nThen fetch the code of all feeds\n\n```bash\n$ ./scripts/feeds update -a\n```\n\n### Install the feeds\n\nInstall stm32 target\n\n```bash\n$ ./scripts/feeds install -f stm32\n```\n\nInstall all other packages\n\n```bash\n$ ./scripts/feeds install -p st -a -f\n$ ./scripts/feeds install -a -f\n```\n(Some overriding warnings can occur, if you used `-f` please ignore them).\n\n### Configure and build\n\nRun `make menuconfig`\n\n```bash\n$ make menuconfig\n```\n\nThen select `STMicroelectronics STM32` for the `Target System`, `STM32MP1` or\n`STM32MP2` for the `Subtarget`, and select the `Target Profile` corresponding to\nyour hardware (for example `STMicroelectronics STM32MP135F-DK`).\n\nThen to start the build.\n\n```bash\n$ make -j$(nproc)\n```\n\n## Flashing and booting the system\n\nAll images generated for are stored in `bin/targets/stm32/stm32mp1/` for\nsubtarget `stm32mp1` and in `bin/targets/stm32/stm32mp2/` for subtarget\n`stm32mp2`.\nThe images to flash on the SDCard are\n`openwrt-stm32-stm32mpX-stm32mpXXXXX-ext4-factory.img.gz`.\n\n```bash\n$ gzip -d -c bin/targets/stm32/stm32mp1/openwrt-stm32-stm32mp1-stm32mp135f-dk-ext4-factory.img.gz | dd of=/dev/sdX\n```\n(Note: this assumes your SD card appears as `/dev/sdX` on your system.)\n\nThen:\n\n1. Insert the microSD card\n   - STM32MP157: connector CN15\n   - STM32MP135: connector CN3\n   - STM32MP257-EV1: connector CN1\n   - STM32MP257-DK and STM32MP235-DK: connector CN6\n   - STM32MP215-DK: connector CN7\n\n2. Plug a micro-USB cable or USB-C for `STM32MP257` and run your serial\n   communication program on /dev/ttyACM0\n   - STM32MP157: connector CN11\n   - STM32MP135: connector CN10\n\n3. Configure the SW1 switch to boot on SD card\n   - STM32MP157: BOOT0 and BOOT2 to ON\n   - STM32MP135: BOOT0 to ON, BOOT1 to OFF, BOOT2 to ON\n   - STM32MP257: BOOT0 to ON, BOOT1 and BOOT2 and BOOT3 to OFF\n\n4. Plug a USB-C cable or Barrel cable for `STM32MP257` to power-up the board.\n   - STM32MP157: connector CN6\n   - STM32MP135: connector CN12\n   - STM32MP257: connector CN20\n\n5. The system will start, with the console on UART. The default user is root\n   with no password. The login is automatic.\n\nNote that `STM32MP257` can be powered using the USB-C (CN21) if the jumper JP4\nis set to the positioin [2-3].\n\n```\nBusyBox v1.36.1 (2024-02-14 15:44:53 UTC) built-in shell (ash)\n\n  _______                     ________        __\n |       |.-----.-----.-----.|  |  |  |.----.|  |_\n |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|\n |_______||   __|_____|__|__||________||__|  |____|\n          |__| W I R E L E S S   F R E E D O M\n -----------------------------------------------------\n OpenWrt SNAPSHOT, r24943+13-3a073a0212\n -----------------------------------------------------\n=== WARNING! =====================================\nThere is no root password defined on this device!\nUse the \"passwd\" command to set up a new password\nin order to prevent unauthorized SSH logins.\n--------------------------------------------------\nroot@OpenWrt:/#\n```\n\n## Additional informations\n\nThis chapter contains some informations which are specific to the stm32 target.\nFor the generic informations, please refer to the [Official OpenWRT\ndocumentation](https://openwrt.org/docs/guide-user/start).\n\n### Ethernet\n\nThe configuration of Ethernet interfaces is the default OpenWRT configuration:\n\n- `STM32MP157F-DK2`: `lan` interface\n- `STM32MP135F-DK`: `lan` interface (`ETH1`) and `wan` interface (`ETH2`)\n- `STM32MP257-EV1`: `lan` interface (`ETH1`) and `wan` interface (`ETH2`)\n- `STM32MP257F-DK`: `lan` interface\n\nThe `lan` interface is configured with a static ip address 192.168.1.1 and a\ndhcp server is running.  \nThe `wan` interface is in dhcp mode.  \nBy default the management protocols are only accessible from the lan interface.\n\n### System upgrade\n\nFor a system upgrade, an upgrade image shall be used (image labelled\n...-sysupgrade.img.gz).\n\nThe demo and non-demo profiles are compatible, it means you can update a\n`STM32MP135F-DK` profile with a `STM32MP135F-DK-DEMO` image (vice versa) for\nexample.\n\nBy default, the sysupgrade mechanism updates the partitions one by one. If the\npartition table is different (for example the rootfs partition is 10MiB bigger),\nthe full image is written.\n\nThe U-Boot environment variables are always preserved during an upgrade.  \nTo erase the environment variables, flash the factory image on the SDCard or\nuse the `env erase` command from U-Boot.\n\nUseful link: [Upgrading OpenWrt firmware using LuCI and CLI](https://openwrt.org/docs/guide-user/installation/generic.sysupgrade)\n\n### Button\n\nThe kernel module `gpio-button-hotplug` is used to support buttons.  \n\nTo easily test the button:\n\n```\nmkdir -p /etc/hotplug.d/button\n\ncat \u003c\u003c \"EOF\" \u003e /etc/hotplug.d/button/buttons\nlogger \"the button was ${BUTTON} and the action was ${ACTION}\"\nEOF\n\nroot@OpenWrt:/# logread -f\nFri Mar 15 14:28:09 2024 user.notice root: the button was BTN_1 and the action was pressed\nFri Mar 15 14:28:09 2024 user.notice root: the button was BTN_1 and the action was released\n```\nUseful link: [Attach functions to a push button](https://openwrt.org/docs/guide-user/hardware/hardware.button)\n\n### LED\n\nOne LED is defined and labelled `blue:heartbeat` (`LD8` for `STM32MP157F-DK2`,\n`LD3` for `STM32MP135F-DK` and `LED1` for `STM32MP257F-EV1`). By default it is\nconfigured to use the heartbeat trigger.\n\nUseful link: [LED Configuration](https://openwrt.org/docs/guide-user/base-system/led_configuration)\n\n### USB\n\nOnly mass storage are supported on the USB Type-A by default.\n\n### Hardware RNG\n\nBy default OpenWrt uses urngd, a micro non-physical true random number generator based on timing jitter.\nTo use Hardware RNG as entropy source,\n[rng-tools](https://github.com/openwrt/packages/tree/master/utils/rng-tools) package shall be used.\n\n```\nuci set system.@rngd[0].enabled=\"1\"\nuci set system.@rngd[0].device=\"/dev/hwrng\"\nuci commit system\nservice urngd disable \u0026\u0026 service urngd stop\nservice rngd restart\n```\n\n## Going further\n\n* [Using the STM32 Cube Programmer](docs/stm32cubeprogrammer.md)\n* [Using the Remote Processors](docs/remoteproc.md)\n* [Using the USB Type-C](docs/usbc.md)\n* [Using the OpenWrt SDK](docs/sdk.md)\n* [Using the OpenWrt Image Builder](docs/imagebuilder.md)\n* [Using the package repositories](docs/repositories.md)\n* [Benchmarking](docs/benchmarking.md)\n* [Release notes](docs/release-notes.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootlin%2Fopenwrt-feed-st","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbootlin%2Fopenwrt-feed-st","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootlin%2Fopenwrt-feed-st/lists"}