Skip to content

This is a playground for the Boot Linux on ESP32-S3

Notifications You must be signed in to change notification settings

ESP32DE/Boot-Linux-ESP32S3-Playground

Repository files navigation

Boot-Linux-ESP32S3-Playground

This is a playground for Boot Linux on ESP32-S3.

Example kernel and rootfs images built from the above wiki sources as well as a toolchain archive

used hardware in this case: ESP32-S3-N8R8 DevKitC-1 from Espressif ( Octal-pSRAM )

Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3810,len:0x1098
load:0x403c9700,len:0xa24
load:0x403cc700,len:0x2d04
entry 0x403c988c
I (73) octal_psram: vendor id    : 0x0d (AP)
I (74) octal_psram: dev id       : 0x02 (generation 3)
I (74) octal_psram: density      : 0x03 (64 Mbit)
I (78) octal_psram: good-die     : 0x01 (Pass)
I (83) octal_psram: Latency      : 0x01 (Fixed)
I (89) octal_psram: VCC          : 0x01 (3V)
I (94) octal_psram: SRF          : 0x01 (Fast Refresh)
I (99) octal_psram: BurstType    : 0x01 (Hybrid Wrap)
I (105) octal_psram: BurstLen     : 0x01 (32 Byte)
I (111) octal_psram: Readlatency  : 0x02 (10 cycles@Fixed)
I (117) octal_psram: DriveStrength: 0x00 (1/1)
I (123) esp_psram: Found 8MB PSRAM device
I (127) esp_psram: Speed: 80MHz
I (130) cpu_start: Pro cpu up.
I (134) cpu_start: Starting app cpu, entry point is 0h40375298 greeting to the stuff :)
I (143) cpu_start: DEBUG_we are on first way here start cpu1
I (149) cpu_start: DEBUG_we are marked as 1 on way to start cpu1
I (156) cpu_start: DEBUG_before_call start cpu1
I (161) cpu_start: DEBUG_after_call start cpu1
I (166) esp32s3-linux: eMbeddedHome-liosti-cpu1: 0h40375298
I (0) cpu_start: App cpu up.
I (625) esp_psram: SPI SRAM memory test OK
I (634) cpu_start: Pro cpu start user code
I (634) cpu_start: cpu freq: 160000000 Hz
I (634) cpu_start: Application information:
I (637) cpu_start: Project name:     linux_boot
I (642) cpu_start: App version:      v5.0.1-3-g8a29e7a6e1-dirty
I (649) cpu_start: Compile time:     May 16 2023 21:37:43
I (655) cpu_start: ELF file SHA256:  4fe4a4b6aaa3fc1b...
I (661) cpu_start: ESP-IDF:          v5.0.1-3-g8a29e7a6e1-dirty
I (668) cpu_start: Min chip rev:     v0.0
I (672) cpu_start: Max chip rev:     v0.99 
I (677) cpu_start: Chip rev:         v0.0
I (682) heap_init: Initializing. RAM available for dynamic allocation:
I (689) heap_init: At 3FC958A8 len 00053E68 (335 KiB): D/IRAM
I (696) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DRAM
I (702) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (708) heap_init: At 600FE010 len 00001FF0 (7 KiB): RTCRAM
I (715) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator
I (723) spi_flash: detected chip: generic
I (727) spi_flash: flash io: dio
I (732) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (752) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations
ptr = 0x42830000
ptr = 0x42b30000
[    0.000000] Ignoring boot parameters at (ptrval)
[    0.000000] Linux version 6.3.0-00023-g0ac241590a6e (jcmvbkbc@octofox) (xtensa-generic-elf-gcc (GCC) 13.1.0, GNU ld (GNU Binutils) 2.40) #48 PREEMPT Tue May 16 7:54:35 PDT 2023
[    0.000000] config ID: c2f0fffe:23090f1f
[    0.000000] earlycon: esp32uart0 at MMIO32 0x60000000 (options '115200n8')
[    0.000000] printk: bootconsole [esp32uart0] enabled
[    0.000000] **********************************************************
[    0.000000] **   NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE   **
[    0.000000] **                                                      **
[    0.000000] ** This system shows unhashed kernel memory addresses   **
[    0.000000] ** via the console, logs, and other interfaces. This    **
[    0.000000] ** might reduce the security of your system.            **
[    0.000000] **                                                      **
[    0.000000] ** If you see this message and you are not debugging    **
[    0.000000] ** the kernel, report this immediately to your system   **
[    0.000000] ** administrator!                                       **
[    0.000000] **                                                      **
[    0.000000] **   NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE   **
[    0.000000] **********************************************************
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x000000003c030000-0x000000003c82ffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x000000003c030000-0x000000003c82ffff]
[    0.000000] Initmem setup node 0 [mem 0x000000003c030000-0x000000003c82ffff]
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping off.  Total pages: 2032
[    0.000000] Kernel command line: earlycon=esp32uart,mmio32,0x60000000,115200n8 console=ttyS0,115200n8 debug rw root=mtd:data no_hash_pointers 
[    0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] virtual kernel memory layout:
[    0.000000]     lowmem  : 0x3c030000 - 0x3c830000  (    8 MB)
[    0.000000]     .text   : 0x42830000 - 0x42a0c044  ( 1904 kB)
[    0.000000]     .rodata : 0x42a0d000 - 0x42a4b000  (  248 kB)
[    0.000000]     .data   : 0x3c030000 - 0x3c0aa540  (  489 kB)
[    0.000000]     .init   : 0x3c0aa540 - 0x3c0af080  (   18 kB)
[    0.000000]     .bss    : 0x3c0af080 - 0x3c0e4800  (  213 kB)
[    0.000000] Memory: 7320K/8192K available (1904K kernel code, 489K rwdata, 248K rodata, 94K init, 213K bss, 872K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 33
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] clocksource: ccount: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 11945377789 ns
[    0.000088] sched_clock: 32 bits at 160MHz, resolution 6ns, wraps every 13421772796ns
[    0.008148] Calibrating delay loop (skipped)... 160.00 BogoMIPS preset
[    0.014339] pid_max: default: 4096 minimum: 301
[    0.021267] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.026506] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.075270] rcu: Hierarchical SRCU implementation.
[    0.075912] rcu: 	Max phase no-delay instances is 1000.
[    0.088745] devtmpfs: initialized
[    0.113563] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.114812] futex hash table entries: 16 (order: -5, 192 bytes, linear)
[    0.134485] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.149657] platform soc: Fixed dependency cycle(s) with /soc/intc@600c2000
[    0.211951] clocksource: Switched to clocksource ccount
[    0.259552] NET: Registered PF_INET protocol family
[    0.267673] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.288195] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.289368] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.297062] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.303063] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.308938] TCP: Hash tables configured (established 1024 bind 1024)
[    0.319268] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.323134] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.349941] workingset: timestamp_bits=30 max_order=11 bucket_order=0
[    2.624891] 60000000.serial: ttyS0 at MMIO 0x60000000 (irq = 1, base_baud = 0) is a ESP32 UART
[    2.626783] printk: console [ttyS0] enabled
[    2.626783] printk: console [ttyS0] enabled
[    2.631380] printk: bootconsole [esp32uart0] disabled
[    2.631380] printk: bootconsole [esp32uart0] disabled
[    2.670188] physmap-flash 42830000.flash: physmap platform flash device: [mem 0x42830000-0x4302ffff]
[    2.672973] 2 fixed-partitions partitions found on MTD device 42830000.flash
[    2.676015] Creating 2 MTD partitions on "42830000.flash":
[    2.681614] 0x000000000000-0x000000300000 : "linux"
[    2.697240] 0x000000300000-0x000000880000 : "data"
[    2.698011] mtd: partition "data" extends beyond the end of device "42830000.flash" -- size truncated to 0x500000
[    2.724379] NET: Registered PF_INET6 protocol family
[    2.760411] Segment Routing with IPv6
[    2.765436] In-situ OAM (IOAM) with IPv6
[    2.767987] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.019707] cramfs: checking physical address 0x42b30000 for linear cramfs image
[    3.020575] cramfs: linear cramfs image on mtd:data appears to be 1764 KB in size
[    3.028006] VFS: Mounted root (cramfs filesystem) readonly on device 31:1.
[    3.034942] devtmpfs: mounted
[    3.037483] Freeing unused kernel image (initmem) memory: 16K
[    3.039701] This architecture does not have kernel memory protection.
[    3.047779] Run /sbin/init as init process
[    3.050206]   with arguments:
[    3.054162]     /sbin/init
[    3.055818]   with environment:
[    3.058926]     HOME=/
[    3.061265]     TERM=linux
[    5.723690] random: crng init done
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
seedrng: can't create directory '/var/lib/seedrng': Read-only file system
Starting network: Ok

Welcome to Buildroot for ESP32-S3 by rudi ;-) (twitter.com/eMbeddedHome)
buildroot login: 

**To do: more things in the rootfs :)

1

2

3