|
HomeCore 0.1.3 (07b5544)
Bare-metal personal computer firmware for Cortex-M
|
Every compatible a device description can use, generated from the bindings.
Generated by scripts/bindings_doc.py from src/drivers/<class>/<compatible>.yaml and the board descriptions when the documentation is built. How bindings, properties, and capabilities work is described in Drivers.
| Compatible | Driver | Summary |
|---|---|---|
| homecore,console-led | console_led | LED stand-in for emulators without LEDs; prints "[ledN] on" or "[ledN] off" on each change request. |
| homecore,gpio-led | gpio_led | LED driven by a GPIO output pin, with a readable and writable /dev file. |
| homecore,ramdisk | ramdisk | Block device backed by a RAM buffer allocated at build time; contents are lost at reset. |
| st,stm32-usart | stm32_usart | STM32 USART, 8N1, interrupt-driven receive, polled transmit. Board code enables its clock and pins. |
| st,stm32f1-gpio | stm32f1_gpio | STM32F1 GPIO port with 16 pins; the driver enables the port clock. |
| st,stm32f4-gpio | stm32f4_gpio | STM32F4 GPIO port with 16 pins; the driver enables the port clock. |
| ti,stellaris-uart | stellaris_uart | Stellaris UART, interrupt-driven receive, polled transmit, reset line configuration (QEMU). |
LED stand-in for emulators without LEDs; prints "[ledN] on" or "[ledN] off" on each change request.
| Driver prefix | console_led |
| Sources | src/drivers/led/console_led.c |
| Binding | src/drivers/led/homecore,console-led.yaml |
| Guide | LEDs |
| Provides | LED: exports <driver>_led_ops; numbered in dt_led_table |
| Property | Type | Required | Default | Constraints | C field | Description |
|---|---|---|---|---|---|---|
devname | devpath | no | the node name | unique /dev name | path | Device file name under /dev; defaults to the node name. |
Enabled by: lm3s6965evb (led0); stm32vldiscovery + qemu.yaml (qemu_led0, qemu_led1)
LED driven by a GPIO output pin, with a readable and writable /dev file.
| Driver prefix | gpio_led |
| Sources | src/drivers/led/gpio_led.c |
| Binding | src/drivers/led/homecore,gpio-led.yaml |
| Guide | LEDs |
| Provides | LED: exports <driver>_led_ops; numbered in dt_led_table |
| Property | Type | Required | Default | Constraints | C field | Description |
|---|---|---|---|---|---|---|
gpio | gpio | yes | — | — | port | Enabled GPIO port device driving the LED, such as gpiod. |
pin | int | yes | — | at most 15, unique per gpio | pin | Pin number within the port; one LED per pin. |
active-low | bool | no | false | — | active_low | The LED lights when the pin is low. |
devname | devpath | no | the node name | unique /dev name | path | Device file name under /dev; defaults to the node name. |
Enabled by: stm32f4discovery (led0, led1, led2, led3); stm32vldiscovery (led0, led1)
Block device backed by a RAM buffer allocated at build time; contents are lost at reset.
| Driver prefix | ramdisk |
| Sources | src/drivers/block/ramdisk.c |
| Binding | src/drivers/block/homecore,ramdisk.yaml |
| Guide | Block devices |
| Provides | Block device: exports <driver>_block_ops; mounts can name it |
| Property | Type | Required | Default | Constraints | C field | Description |
|---|---|---|---|---|---|---|
size | size | yes | — | at least 512, multiple of 512, allocates a .bss buffer (field data) | size | Disk size in bytes, such as 64K; a multiple of 512. The buffer is placed in .bss. |
Enabled by: lm3s6965evb (ram0); stm32f4discovery (ram0, ram1)
STM32 USART, 8N1, interrupt-driven receive, polled transmit. Board code enables its clock and pins.
| Driver prefix | stm32_usart |
| Sources | src/drivers/serial/stm32_usart.c |
| Binding | src/drivers/serial/st,stm32-usart.yaml |
| Guide | Serial ports |
| Provides | Can be chosen.console: exports <driver>_console_opsHandles its interrupt: <driver>_isr() is called by dt_irq_dispatch() |
| Property | Type | Required | Default | Constraints | C field | Description |
|---|---|---|---|---|---|---|
reg | int | yes | — | unique | base | Register block address. |
irq | int | yes | — | unique | irq | NVIC interrupt number of the receive interrupt. |
bus | clock | yes | — | — | clock_hz | Bus clock name, resolved through the board's clocks map. |
baud | int | no | 115200 | at least 1 | baud | Line rate in bits per second. |
devname | devpath | no | the node name | unique /dev name | path | VFS name under /dev; defaults to the node name. |
Enabled by: stm32f4discovery (usart2); stm32vldiscovery (usart1); stm32vldiscovery + qemu.yaml (usart1)
STM32F1 GPIO port with 16 pins; the driver enables the port clock.
| Driver prefix | stm32f1_gpio |
| Sources | src/drivers/gpio/stm32f1_gpio.c |
| Binding | src/drivers/gpio/st,stm32f1-gpio.yaml |
| Guide | GPIO ports |
| Provides | GPIO port: exports <driver>_gpio_ops; gpio properties can name it |
| Property | Type | Required | Default | Constraints | C field | Description |
|---|---|---|---|---|---|---|
reg | int | yes | — | unique | base | Register block address. |
clock-bit | int | yes | — | at most 31 | clock_bit | The port's enable bit in RCC_APB2ENR (IOPAEN, GPIOA, is 2). |
Enabled by: stm32vldiscovery (gpioc)
STM32F4 GPIO port with 16 pins; the driver enables the port clock.
| Driver prefix | stm32f4_gpio |
| Sources | src/drivers/gpio/stm32f4_gpio.c |
| Binding | src/drivers/gpio/st,stm32f4-gpio.yaml |
| Guide | GPIO ports |
| Provides | GPIO port: exports <driver>_gpio_ops; gpio properties can name it |
| Property | Type | Required | Default | Constraints | C field | Description |
|---|---|---|---|---|---|---|
reg | int | yes | — | unique | base | Register block address. |
clock-bit | int | yes | — | at most 31 | clock_bit | The port's enable bit in RCC_AHB1ENR (GPIOA is 0). |
Enabled by: stm32f4discovery (gpiod)
Stellaris UART, interrupt-driven receive, polled transmit, reset line configuration (QEMU).
| Driver prefix | stellaris_uart |
| Sources | src/drivers/serial/stellaris_uart.c |
| Binding | src/drivers/serial/ti,stellaris-uart.yaml |
| Guide | Serial ports |
| Provides | Can be chosen.console: exports <driver>_console_opsHandles its interrupt: <driver>_isr() is called by dt_irq_dispatch() |
| Property | Type | Required | Default | Constraints | C field | Description |
|---|---|---|---|---|---|---|
reg | int | yes | — | unique | base | Register block address. |
irq | int | yes | — | unique | irq | NVIC interrupt number of the receive interrupt. |
devname | devpath | no | the node name | unique /dev name | path | VFS name under /dev; defaults to the node name. |
Enabled by: lm3s6965evb (uart0, uart1, uart2)