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

WIP: Implement undocument wifi registers, get AP mode working (QEMU-155) #80

Open
wants to merge 56 commits into
base: esp-develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
42a0627
LOCAL: add Gitlab CI jobs
igrr Sep 27, 2019
4f972e5
LOCAL: add Github actions for Jira sync
igrr Jul 20, 2022
a9821ff
LOCAL: Revert "tcg: Optimize inline dup_const for MO_64"
igrr May 17, 2021
19dd0fd
xtensa: don't send window registers to GDB
igrr Jul 23, 2021
fe84285
LOCAL: target/xtensa: allow tweaking the list of registers sent to GDB
igrr Jul 25, 2021
c960a17
hw/block: correct DIO mode for Gigadevice SPI NOR flash
Apr 28, 2021
1c1c4e9
hw/net: opencores_eth: fix handling of DP83848C PHYSTS register
igrr Jun 4, 2021
f5dfe00
target/xtensa: add stubs for "DFP Accelerator" instructions
igrr Aug 8, 2019
82063f9
target/xtensa: add ESP32 core configuration
igrr Sep 27, 2019
b1d87e7
hw/char: add ESP32 UART
igrr Sep 27, 2019
aad3a7b
hw/gpio: add ESP32 GPIO
igrr Sep 27, 2019
cc04899
hw/nvram: add ESP32 eFuse
igrr Sep 27, 2019
72d3396
hw/ssi: add ESP32 SPI
igrr Sep 27, 2019
f379725
hw/i2c: add ESP32 I2C
peterus Sep 28, 2020
9377b12
hw/misc: add ESP32 DPORT peripheral, cache, cross-core interrupt
igrr Sep 27, 2019
a5a01e6
hw/misc: ESP32 RNG
igrr Sep 27, 2019
2fd9ccd
hw/misc: add ESP32 RSA
Aug 22, 2020
8c2b319
hw/misc: ESP32 RTC controller
igrr Sep 27, 2019
03638c2
hw/misc: add ESP32 SHA
igrr Sep 27, 2019
3f70bd1
hw/misc: add ESP32 AES
May 30, 2022
e5ef5b2
hw/misc: add ESP32 flash encryption module
igrr Feb 10, 2021
84a8596
hw/misc: Add ESP32 LEDC
Sep 30, 2022
995725f
hw/misc: add simple PSRAM emulation
igrr Jun 4, 2021
3371729
hw/timer: add ESP32 timers
igrr Sep 27, 2019
3fb8cbf
hw/sd: add emulation of designware sdmmc controller
igrr Jul 25, 2021
04439d5
hw/misc: add ESP32 register base addresses
igrr Sep 27, 2019
66fa088
hw/xtensa: add ESP32 interrupt matrix
igrr Jan 20, 2021
3fddc2e
hw/xtensa: add ESP32 machine
igrr Sep 27, 2019
c584eef
target/riscv: implement Espressif RISC-V CPU type
o-marshmallow May 12, 2023
167401b
hw/char: implement ESP32-C3 UART
o-marshmallow May 12, 2023
3324f82
hw/gpio: implement ESP32-C3 GPIO
o-marshmallow May 12, 2023
036ba9b
hw/timer: implement ESP32-C3 Timer Groups
o-marshmallow May 12, 2023
96a20cc
hw/timer: implement ESP32-C3 System Timer
o-marshmallow May 12, 2023
127b8e4
hw/ssi: implement ESP32-C3 SPI1 (SPI flash)
o-marshmallow May 12, 2023
89dea91
hw/riscv: implement ESP32-C3 clock and system registers
o-marshmallow May 12, 2023
791feae
hw/riscv: implement ESP32-C3 Interrupt Matrix
o-marshmallow May 12, 2023
f334898
hw/misc: Implement ESP32-C3 Cache (SPI Flash)
o-marshmallow May 12, 2023
14f8919
hw/misc: Implement ESP32-C3 SHA
o-marshmallow May 12, 2023
5949e87
hw/misc: implement ESP32-C3 USB Serial JTAG as a stub
o-marshmallow May 12, 2023
edad3a1
hw/misc: implement ESP32-C3 RTC CNTL registers
o-marshmallow May 12, 2023
a8a86ed
hw/nvram: implement ESP32-C3 eFuses
o-marshmallow May 12, 2023
3eb4caf
hw/misc: implement ESP32-C3 AES (no DMA supported)
o-marshmallow May 12, 2023
273c5c2
hw/riscv: implement ESP32-C3 machine
o-marshmallow May 12, 2023
8245148
hw/char: fix autobaud support for ESP32-C3 target
o-marshmallow Jun 2, 2023
aed84c7
hw/riscv: modify ESP32-C3 interrupt matrix to only generate interrupt…
o-marshmallow Jun 2, 2023
8bae2a3
hw/riscv: add support for 2, 4, 8, and 16MB SPI Flash for ESP32-C3 ma…
o-marshmallow Jun 2, 2023
90c8591
hw/ssi: implement SPI flash special commands for ESP32-C3 SPI controller
o-marshmallow Jun 2, 2023
efe39d9
pc-bios/keymaps: Use the official xkb name for Arabic layout, not the…
pm215 Jun 20, 2023
24a669b
hw/dma: implement GDMA Memory-To-Memory for ESP32-C3
o-marshmallow May 11, 2023
9b36b5d
hw/dma: implement GDMA Peripheral-to-Memory interface for ESP32-C3
o-marshmallow Jun 27, 2023
a00a687
hw/misc: implement AES-DMA working mode for ESP32-C3
o-marshmallow Jun 15, 2023
6a8b06c
hw/misc: implement DMA mode in SHA controller for ESP32-C3
o-marshmallow Jun 19, 2023
96ab065
hw/misc: implement RSA controller for ESP32-C3
o-marshmallow Jun 21, 2023
5eda8b6
hw/ssi: add support for dummy cycles in ESP32-C3 SPI controller
o-marshmallow Jun 29, 2023
d96ca95
hw/misc: fix a bug in ESP32-C3 cache entries fields
o-marshmallow Jun 29, 2023
47ff913
Implement undocument wifi registers, get AP mode working
redfast00 Jul 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/workflows/issue_comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Sync issue comments to JIRA

# This workflow will be triggered when new issue comment is created (including PR comments)
on: issue_comment

jobs:
sync_issue_comments_to_jira:
name: Sync Issue Comments to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Sync issue comments to JIRA
uses: espressif/github-actions/sync_issues_to_jira@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JIRA_PASS: ${{ secrets.JIRA_PASS }}
JIRA_PROJECT: QEMU
JIRA_COMPONENT: GitHub
JIRA_URL: ${{ secrets.JIRA_URL }}
JIRA_USER: ${{ secrets.JIRA_USER }}
30 changes: 0 additions & 30 deletions .github/workflows/lockdown.yml

This file was deleted.

20 changes: 20 additions & 0 deletions .github/workflows/new_issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Sync issues to Jira

# This workflow will be triggered when a new issue is opened
on: issues

jobs:
sync_issues_to_jira:
name: Sync issues to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Sync GitHub issues to Jira project
uses: espressif/github-actions/sync_issues_to_jira@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JIRA_PASS: ${{ secrets.JIRA_PASS }}
JIRA_PROJECT: QEMU
JIRA_COMPONENT: GitHub
JIRA_URL: ${{ secrets.JIRA_URL }}
JIRA_USER: ${{ secrets.JIRA_USER }}
25 changes: 25 additions & 0 deletions .github/workflows/new_prs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Sync remain PRs to Jira

# This workflow will be triggered every hour, to sync remaining PRs (i.e. PRs with zero comment) to Jira project
# Note that, PRs can also get synced when new PR comment is created
on:
schedule:
- cron: "0 * * * *"

jobs:
sync_prs_to_jira:
name: Sync PRs to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Sync PRs to Jira project
uses: espressif/github-actions/sync_issues_to_jira@master
with:
cron_job: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JIRA_PASS: ${{ secrets.JIRA_PASS }}
JIRA_PROJECT: QEMU
JIRA_COMPONENT: GitHub
JIRA_URL: ${{ secrets.JIRA_URL }}
JIRA_USER: ${{ secrets.JIRA_USER }}
79 changes: 56 additions & 23 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,57 @@
#
# This is the GitLab CI configuration file for the mainstream QEMU
# project: https://gitlab.com/qemu-project/qemu/-/pipelines
#
# !!! DO NOT ADD ANY NEW CONFIGURATION TO THIS FILE !!!
#
# Only documentation or comments is accepted.
#
# To use a different set of jobs than the mainstream QEMU project,
# you need to set the location of your custom yml file at "custom CI/CD
# configuration path", on your GitLab CI namespace:
# https://docs.gitlab.com/ee/ci/pipelines/settings.html#custom-cicd-configuration-path
#
# ----------------------------------------------------------------------
#
# QEMU CI jobs are based on templates. Some templates provide
# user-configurable options, modifiable via configuration variables.
#
# See https://qemu-project.gitlab.io/qemu/devel/ci.html#custom-ci-cd-variables
# for more information.
#
stages:
- build
- deploy

include:
- local: '/.gitlab-ci.d/qemu-project.yml'
build-linux:
stage: build
image: $CI_DOCKER_REGISTRY/qemu-build:5
tags:
- build
- amd64
artifacts:
paths:
- dist/esp-qemu-*.tar.bz2
- dist/archive_name_*
expire_in: 1 week
parallel:
matrix:
- PLATFORM: [x86_64-linux-gnu]
TARGET: [riscv32-linux-user, xtensa-softmmu, riscv32-softmmu]
script:
- ./configure --prefix=/opt/qemu --target-list=${TARGET} --extra-cflags=-Werror --disable-capstone --disable-vnc --disable-sdl --disable-gtk --enable-gcrypt --enable-slirp
- ninja -C build install
- find /opt/qemu/share/qemu -maxdepth 1 -mindepth 1 -not -name 'esp*.bin' -exec rm -rf {} \;
- mkdir -p dist
- DIST_DIR=${PWD}/dist

- VERSION=${CI_COMMIT_TAG:-""}
- VERSION=${VERSION#"esp-v"} # remove prefix in tags like `esp-v7.1.0_20221221`
- VERSION=${VERSION#"esp-"} # remove prefix in tags like `esp-develop-20221221`
- VERSION=${VERSION//"-"/"_"} # replace dashes with underscores in the version
- VERSION=${VERSION:-${CI_COMMIT_SHORT_SHA}}

- export ARCHIVE_NAME=esp-qemu-${TARGET}-${VERSION}-${PLATFORM}.tar.bz2
- cd /opt
- tar cjvf ${DIST_DIR}/${ARCHIVE_NAME} qemu
- echo $ARCHIVE_NAME >${DIST_DIR}/archive_name_${TARGET}_${PLATFORM}

upload_to_http:
image: espressif/scp
stage: deploy
tags:
- deploy
- shiny
when: manual
allow_failure: true
variables:
# don't use "GIT_STRATEGY: none", because we need cleaning old artifacts in 'dist/' that came from previous pipelines
SSH_KEY: "$HTTP_UPLOAD_KEY" # used inside 'espressif/scp'
script:
# List of archives in dist/
- FILES=$(find dist -name archive_name_\* -exec cat {} \+)
- cd dist
- scp ${FILES} ${HTTP_UPLOAD_DIR}
# Show info
- /bin/ls -l ${FILES}
- sha256sum ${FILES}
- echo -e "\nArchives were published there:\n\n$(for n in ${FILES}; do echo "${HTTP_PUBLIC_DIR}/${n}"; done)\n"
1 change: 1 addition & 0 deletions configs/devices/riscv32-softmmu/default.mak
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ CONFIG_SIFIVE_E=y
CONFIG_SIFIVE_U=y
CONFIG_RISCV_VIRT=y
CONFIG_OPENTITAN=y
CONFIG_RISCV_ESP32C3=y
1 change: 1 addition & 0 deletions configs/devices/xtensa-softmmu/default.mak
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ CONFIG_SEMIHOSTING=y
CONFIG_XTENSA_SIM=y
CONFIG_XTENSA_VIRT=y
CONFIG_XTENSA_XTFPGA=y
CONFIG_XTENSA_ESP32=y
5 changes: 5 additions & 0 deletions crypto/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ crypto_ss.add(when: gnutls, if_true: files('tls-cipher-suites.c'))

util_ss.add(files('sm4.c'))
util_ss.add(files('aes.c'))
util_ss.add(files('sha512-internal.c'))
util_ss.add(files('sha384-internal.c'))
util_ss.add(files('sha256-internal.c'))
util_ss.add(files('sha224-internal.c'))
util_ss.add(files('sha1-internal.c'))
util_ss.add(files('init.c'))
if gnutls.found()
util_ss.add(gnutls)
Expand Down
Loading