Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32-S3 support (QEMU-52) #42

Closed
svenstaro opened this issue May 4, 2022 · 15 comments
Closed

ESP32-S3 support (QEMU-52) #42

svenstaro opened this issue May 4, 2022 · 15 comments
Labels
Resolution: NA Status: Done Issue is done internally

Comments

@svenstaro
Copy link

I'd like to request support for esp32-s3 emulation. I think it's a killer chip and support for it in QEMU would be amazing.

@cmorganBE
Copy link

Ping on this ticket. We'd like to be able to emulate s3 as that's our particular target.

igrr pushed a commit that referenced this issue Aug 2, 2022
Include the qtest reproducer provided by Alexander Bulekov
in https://gitlab.com/qemu-project/qemu/-/issues/542.
Without the previous commit, we get:

  $ make check-qtest-i386
  ...
  Running test tests/qtest/intel-hda-test
  AddressSanitizer:DEADLYSIGNAL
  =================================================================
  ==1580408==ERROR: AddressSanitizer: stack-overflow on address 0x7ffc3d566fe0
      #0 0x63d297cf in address_space_translate_internal softmmu/physmem.c:356
      #1 0x63d27260 in flatview_do_translate softmmu/physmem.c:499:15
      #2 0x63d27af5 in flatview_translate softmmu/physmem.c:565:15
      #3 0x63d4ce84 in flatview_write softmmu/physmem.c:2850:10
      #4 0x63d4cb18 in address_space_write softmmu/physmem.c:2950:18
      #5 0x63d4d387 in address_space_rw softmmu/physmem.c:2960:16
      #6 0x62ae12f2 in dma_memory_rw_relaxed include/sysemu/dma.h:89:12
      #7 0x62ae104a in dma_memory_rw include/sysemu/dma.h:132:12
      #8 0x62ae6157 in dma_memory_write include/sysemu/dma.h:173:12
      #9 0x62ae5ec0 in stl_le_dma include/sysemu/dma.h:275:1
      #10 0x62ae5ba2 in stl_le_pci_dma include/hw/pci/pci.h:871:1
      #11 0x62ad59a6 in intel_hda_response hw/audio/intel-hda.c:372:12
      #12 0x62ad2afb in hda_codec_response hw/audio/intel-hda.c:107:5
      #13 0x62aec4e1 in hda_audio_command hw/audio/hda-codec.c:655:5
      #14 0x62ae05d9 in intel_hda_send_command hw/audio/intel-hda.c:307:5
      #15 0x62adff54 in intel_hda_corb_run hw/audio/intel-hda.c:342:9
      #16 0x62adc13b in intel_hda_set_corb_wp hw/audio/intel-hda.c:548:5
      #17 0x62ae5942 in intel_hda_reg_write hw/audio/intel-hda.c:977:9
      #18 0x62ada10a in intel_hda_mmio_write hw/audio/intel-hda.c:1054:5
      #19 0x63d8f383 in memory_region_write_accessor softmmu/memory.c:492:5
      #20 0x63d8ecc1 in access_with_adjusted_size softmmu/memory.c:554:18
      #21 0x63d8d5d6 in memory_region_dispatch_write softmmu/memory.c:1504:16
      #22 0x63d5e85e in flatview_write_continue softmmu/physmem.c:2812:23
      #23 0x63d4d05b in flatview_write softmmu/physmem.c:2854:12
      #24 0x63d4cb18 in address_space_write softmmu/physmem.c:2950:18
      #25 0x63d4d387 in address_space_rw softmmu/physmem.c:2960:16
      #26 0x62ae12f2 in dma_memory_rw_relaxed include/sysemu/dma.h:89:12
      #27 0x62ae104a in dma_memory_rw include/sysemu/dma.h:132:12
      #28 0x62ae6157 in dma_memory_write include/sysemu/dma.h:173:12
      #29 0x62ae5ec0 in stl_le_dma include/sysemu/dma.h:275:1
      #30 0x62ae5ba2 in stl_le_pci_dma include/hw/pci/pci.h:871:1
      #31 0x62ad59a6 in intel_hda_response hw/audio/intel-hda.c:372:12
      #32 0x62ad2afb in hda_codec_response hw/audio/intel-hda.c:107:5
      #33 0x62aec4e1 in hda_audio_command hw/audio/hda-codec.c:655:5
      #34 0x62ae05d9 in intel_hda_send_command hw/audio/intel-hda.c:307:5
      #35 0x62adff54 in intel_hda_corb_run hw/audio/intel-hda.c:342:9
      #36 0x62adc13b in intel_hda_set_corb_wp hw/audio/intel-hda.c:548:5
      #37 0x62ae5942 in intel_hda_reg_write hw/audio/intel-hda.c:977:9
      #38 0x62ada10a in intel_hda_mmio_write hw/audio/intel-hda.c:1054:5
      #39 0x63d8f383 in memory_region_write_accessor softmmu/memory.c:492:5
      #40 0x63d8ecc1 in access_with_adjusted_size softmmu/memory.c:554:18
      #41 0x63d8d5d6 in memory_region_dispatch_write softmmu/memory.c:1504:16
      #42 0x63d5e85e in flatview_write_continue softmmu/physmem.c:2812:23
      #43 0x63d4d05b in flatview_write softmmu/physmem.c:2854:12
      #44 0x63d4cb18 in address_space_write softmmu/physmem.c:2950:18
      #45 0x63d4d387 in address_space_rw softmmu/physmem.c:2960:16
      #46 0x62ae12f2 in dma_memory_rw_relaxed include/sysemu/dma.h:89:12
      qemu#47 0x62ae104a in dma_memory_rw include/sysemu/dma.h:132:12
      #48 0x62ae6157 in dma_memory_write include/sysemu/dma.h:173:12
      ...
  SUMMARY: AddressSanitizer: stack-overflow softmmu/physmem.c:356 in address_space_translate_internal
  ==1580408==ABORTING
  Broken pipe
  Aborted (core dumped)

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20211218160912.1591633-4-philmd@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
@igrr igrr changed the title esp32-s3 support ESP32-S3 support Aug 3, 2022
@github-actions github-actions bot changed the title ESP32-S3 support ESP32-S3 support (QEMU-52) Aug 3, 2022
@DatanoiseTV
Copy link

I +1 this. I am rolling out hardware using the S3 and would love to see support for the S3, so I can perform some CI/CD tests.

@igrr
Copy link
Member

igrr commented Feb 24, 2023

In the meantime, you can try https://wokwi.com/.

https://github.com/wokwi/esp32-hello-wokwi-ci should also be possible to adjust for the esp32-s3.

@paul356
Copy link

paul356 commented Mar 9, 2023

+1 vote for this issue. Please support S3.

@greenaddress
Copy link

+1. Please support S3

@Alaining
Copy link

Alaining commented Dec 7, 2023

+1

@herculanodavi
Copy link

Hi, I'm also very interested in this. Is there any rough timeline?

@drewbharris
Copy link

Adding my +1 please!

@sukesh-ak
Copy link

+1

@igrr
Copy link
Member

igrr commented Mar 22, 2024

Status update: we are aiming to add the initial ESP32-S3 support with a few basic peripherals in the upcoming release.

@igrr
Copy link
Member

igrr commented Jun 6, 2024

Thanks everyone for the patience! Initial ESP32-S3 support has been released in https://github.com/espressif/qemu/releases/tag/esp-develop-9.0.0-20240606. We will update ESP-IDF integration (idf.py qemu) to be compatible with it soon.

@igrr igrr closed this as completed Jun 6, 2024
@espressif-bot espressif-bot added Status: Done Issue is done internally Resolution: NA and removed Status: In Progress work is in progress labels Jun 6, 2024
@PatrickV82
Copy link

PatrickV82 commented Jun 14, 2024

is there a updated documentation for the bootstrapping pins values?

and does the esp32s3 implementation already support the efuses?

qemu-system-xtensa -nographic -machine esp32s3 -global driver=esp32s3.gpio,property=strap_mode,value=0x08 -drive file=build/qemu_efuse.bin,if=none,format=raw,id=efuse -global driver=nvram.esp32s3.efuse,property=drive,value=efuse -serial tcp::5555,server,nowait

QEMU 9.0.0 monitor - type 'help' for more information
Not initializing SPI Flash
c:\qemu\bin\qemu-system-xtensa: warning: global nvram.esp32s3.efuse.drive has invalid class name

@Zitrax
Copy link

Zitrax commented Aug 9, 2024

We will update ESP-IDF integration (idf.py qemu) to be compatible with it soon.

Any estimate on this? Or info on how to run it without?

@igrr
Copy link
Member

igrr commented Aug 9, 2024

@Zitrax This has been done in espressif/esp-idf@6ddf31b and espressif/esp-idf@aad9ab0

(Backports to release/v5.3: espressif/esp-idf@acb201e and espressif/esp-idf@4168fa2 — will be included in v5.3.1)

@igrr
Copy link
Member

igrr commented Aug 9, 2024

@PatrickV82 Sorry that I missed your comment!

is there a updated documentation for the bootstrapping pins values?

Not yet, but you can set strap_mode to 0x07 to enter download mode. Note that for efuses, you have to use nvram.esp32c3.efuse — this module was copy-pasted from ESP32-C3, we will fix this in the next QEMU release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Resolution: NA Status: Done Issue is done internally
Projects
None yet
Development

No branches or pull requests