Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,12 @@ nsh
Basic NuttShell configuration (console enabled over the USB Serial/JTAG port,
exposed as ``/dev/ttyACM0`` on the host). Brings up the I2C0 bus.

python
------

This configuration enables the Python for ESP32-P4 on Tab5.
Please refer to the :doc:`Python Interpreter </applications/interpreters/python/index>` page.

Building and flashing
=====================

Expand Down
23 changes: 13 additions & 10 deletions boards/risc-v/esp32p4/common/scripts/esp32p4_sections.ld
Original file line number Diff line number Diff line change
Expand Up @@ -338,9 +338,9 @@ SECTIONS
_dram_start = ABSOLUTE(.);
_sdata = ABSOLUTE(.);
_data_start_low = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
EXCLUDE_FILE(*libpython3.13.a) *(.data)
EXCLUDE_FILE(*libpython3.13.a) *(.data.*)
EXCLUDE_FILE(*libpython3.13.a) *(.gnu.linkonce.d.*)
*(.data1)
__global_pointer$ = . + 0x800;
*(.sdata)
Expand Down Expand Up @@ -465,7 +465,7 @@ SECTIONS
.dram1.data :
{
_data_start_high = ABSOLUTE(.);
*(.data .data.*)
*libpython3.13.a:(.data .data.* .gnu.linkonce.d.*)
*(.dram1 .dram1.*)
_data_end_high = ABSOLUTE(.);
} > sram_high
Expand Down Expand Up @@ -661,11 +661,11 @@ SECTIONS
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
EXCLUDE_FILE(*libpython3.13.a) *(.bss)
EXCLUDE_FILE(*libpython3.13.a) *(.bss.*)
*(.share.mem)
*(.gnu.linkonce.b.*)
*(COMMON)
EXCLUDE_FILE(*libpython3.13.a) *(.gnu.linkonce.b.*)
EXCLUDE_FILE(*libpython3.13.a) *(COMMON)

. = ALIGN(4);
_ebss = ABSOLUTE(.);
Expand All @@ -683,12 +683,12 @@ SECTIONS
* ldgen places all bss-related data to mapping[dram0_bss]
* (See components/esp_system/app.lf).
*/
*(.bss .bss.*)
EXCLUDE_FILE(*libpython3.13.a) *(.bss .bss.*)
*(.dynbss .dynsbss .gnu.linkonce.b .gnu.linkonce.b.* .gnu.linkonce.sb .gnu.linkonce.sb.* .gnu.linkonce.sb2 .gnu.linkonce.sb2.* .sbss .sbss.* .sbss2 .sbss2.* .scommon .share.mem)
#ifndef CONFIG_ESPRESSIF_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
*(.ext_ram.bss .ext_ram.bss.*)
#endif
*(COMMON)
EXCLUDE_FILE(*libpython3.13.a) *(COMMON)

. = ALIGN(4);
_bss_end_high = ABSOLUTE(.);
Expand All @@ -699,7 +699,10 @@ SECTIONS
.ext_ram.bss (NOLOAD) :
{
_ext_ram_bss_start = ABSOLUTE(.);
*(.PyRuntime)
*(.ext_ram.bss .ext_ram.bss.*)
*libpython3.13.a:(*.PyRuntime)
*libpython3.13.a:(.bss .bss.*)
. = ALIGN(4);
_ext_ram_bss_end = ABSOLUTE(.);
} > ext_ram_seg
Expand Down
100 changes: 100 additions & 0 deletions boards/risc-v/esp32p4/esp32p4-tab5/configs/python/defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
CONFIG_ALLOW_BSD_COMPONENTS=y
CONFIG_ARCH="risc-v"
CONFIG_ARCH_BOARD="esp32p4-tab5"
CONFIG_ARCH_BOARD_COMMON=y
CONFIG_ARCH_BOARD_ESP32P4_TAB5=y
CONFIG_ARCH_CHIP="esp32p4"
CONFIG_ARCH_CHIP_ESP32P4=y
CONFIG_ARCH_INTERRUPTSTACK=2048
CONFIG_ARCH_IRQ_TO_NDX=y
CONFIG_ARCH_MINIMAL_VECTORTABLE_DYNAMIC=y
CONFIG_ARCH_NUSER_INTERRUPTS=17
CONFIG_ARCH_RISCV=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARDCTL_ROMDISK=y
CONFIG_BOARD_LOOPSPERMSEC=15000
CONFIG_BUILTIN=y
CONFIG_CRYPTO_MBEDTLS=y
CONFIG_DEV_URANDOM=y
CONFIG_ESP32P4_REV_MIN_100=y
CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y
CONFIG_ESPRESSIF_FLASH_16M=y
CONFIG_ESPRESSIF_FLASH_MODE_QIO=y
CONFIG_ESPRESSIF_GPIO_IRQ=y
CONFIG_ESPRESSIF_I2C0=y
CONFIG_ESPRESSIF_I2C0_SCLPIN=32
CONFIG_ESPRESSIF_I2C0_SDAPIN=31
CONFIG_ESPRESSIF_MERGE_BINS=y
CONFIG_ESPRESSIF_SPIFLASH=y
CONFIG_ESPRESSIF_SPIFLASH_SMARTFS=y
CONFIG_ESPRESSIF_SPIRAM=y
CONFIG_ESPRESSIF_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
CONFIG_ESPRESSIF_STORAGE_MTD_OFFSET=0xFCA000
CONFIG_ESPRESSIF_STORAGE_MTD_SIZE=0x36000
CONFIG_ESPRESSIF_USBSERIAL=y
CONFIG_EVENT_FD=y
CONFIG_EXPERIMENTAL=y
CONFIG_FS_HEAPBUF_SECTION=".ext_ram.bss.buf"
CONFIG_FS_HEAPSIZE=2097152
CONFIG_FS_LARGEFILE=y
CONFIG_FS_PROCFS=y
CONFIG_FS_ROMFS=y
CONFIG_FS_TMPFS=y
CONFIG_IDLETHREAD_STACKSIZE=2048
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INIT_STACKSIZE=3072
CONFIG_INTELHEX_BINARY=y
CONFIG_INTERPRETERS_CPYTHON=y
CONFIG_INTERPRETERS_CPYTHON_ENABLE_PIP=y
CONFIG_INTERPRETERS_CPYTHON_PYTHONPATH="/data"
CONFIG_INTERPRETERS_CPYTHON_STACKSIZE=512000
CONFIG_LIBC_DLFCN=y
CONFIG_LIBC_EXECFUNCS=y
CONFIG_LIBC_LOCALE=y
CONFIG_LIBC_LOCALE_GETTEXT=y
CONFIG_LIBC_PERROR_STDOUT=y
CONFIG_LIBC_STRERROR=y
CONFIG_LIB_LIBFFI=y
CONFIG_LIB_ZLIB=y
CONFIG_LINE_MAX=200
CONFIG_MM_KERNEL_HEAP=y
CONFIG_MM_REGIONS=2
CONFIG_NAME_MAX=48
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_LOSMART=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_READLINE=y
CONFIG_NSH_STRERROR=y
CONFIG_PIPES=y
CONFIG_PREALLOC_TIMERS=0
CONFIG_PSEUDOFS_SOFTLINKS=y
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_BACKTRACE=y
CONFIG_SCHED_WORKQUEUE=y
CONFIG_SMARTFS_MAXNAMLEN=48
CONFIG_STACK_COLORATION=y
CONFIG_START_DAY=29
CONFIG_START_MONTH=11
CONFIG_START_YEAR=2019
CONFIG_SYSTEM_DUMPSTACK=y
CONFIG_SYSTEM_FLASH_ERASEALL=y
CONFIG_SYSTEM_NSH=y
CONFIG_SYSTEM_SYSTEM=y
CONFIG_SYSTEM_SYSTEM_STACKSIZE=4096
CONFIG_TESTING_FSTEST=y
CONFIG_TESTING_FSTEST_MOUNTPT="/mnt"
CONFIG_TESTING_HEAP=y
CONFIG_TIMER=y
CONFIG_TIMER_FD=y
CONFIG_TLS_NELEM=4
CONFIG_TLS_TASK_NELEM=4
22 changes: 22 additions & 0 deletions boards/risc-v/esp32p4/esp32p4-tab5/src/esp32p4_bringup.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@

#include "espressif/esp_start.h"

#ifdef CONFIG_ESPRESSIF_SPIFLASH
# include "esp_board_spiflash.h"
#endif

#ifdef CONFIG_I2C_DRIVER
# include "esp_board_i2c.h"
#endif
Expand Down Expand Up @@ -73,6 +77,14 @@ int esp_bringup(void)
}
#endif

#ifdef CONFIG_ESPRESSIF_SPIFLASH
ret = board_spiflash_init();
if (ret)
{
syslog(LOG_ERR, "ERROR: Failed to initialize SPI Flash\n");
}
#endif

#ifdef CONFIG_I2C_DRIVER
/* Configure I2C peripheral interfaces */

Expand All @@ -83,6 +95,16 @@ int esp_bringup(void)
}
#endif

#ifdef CONFIG_FS_TMPFS
/* Mount the tmpfs file system */

ret = nx_mount(NULL, CONFIG_LIBC_TMPDIR, "tmpfs", 0, NULL);
if (ret < 0)
{
_err("Failed to mount tmpfs at %s: %d\n", CONFIG_LIBC_TMPDIR, ret);
}
#endif

/* If we got here then perhaps not all initialization was successful, but
* at least enough succeeded to bring-up NSH with perhaps reduced
* capabilities.
Expand Down
Loading