Skip to content
Merged
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
5 changes: 3 additions & 2 deletions .github/workflows/build.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,8 +14,9 @@ jobs:
strategy:
fail-fast: false
matrix:
CONFIG: ['virt32_defconfig',
'virt64_defconfig',
# We use the virtXX_fb configs as they're based on the normal virtXX configs with aditional fb support
CONFIG: ['virt32_fb_defconfig',
'virt64_fb_defconfig',
'virt32_lvperf_defconfig',
'virt64_lvperf_defconfig'
]
Expand Down
86 changes: 86 additions & 0 deletions so3/configs/virt32_fb_defconfig
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
CONFIG_ARCH_ARM32=y
# CONFIG_ARCH_ARM64 is not set
# CONFIG_SO3VIRT is not set
CONFIG_ARCH="arm32"
CONFIG_CROSS_COMPILE="arm-none-eabi-"
# CONFIG_ARM_TRUSTZONE is not set

#
# Platform
#
CONFIG_KERNEL_VADDR=0xc0000000
CONFIG_VIRT32=y
# CONFIG_RPI4 is not set
# end of Platform

# CONFIG_THREAD_ENV is not set
CONFIG_PROC_ENV=y

#
# Kernel & CPU features
#
# CONFIG_SMP is not set
CONFIG_NR_CPUS=1
CONFIG_HZ=100
CONFIG_SCHED_FLIP_SCHEDFREQ=30
# end of Kernel & CPU features

#
# SO3 Scheduling configuration
#
CONFIG_SCHED_RR=y
# CONFIG_SCHED_PRIO is not set
CONFIG_SCHED_FREQ_PREEMPTION=y
# end of SO3 Scheduling configuration

#
# Drivers
#
CONFIG_UART=y
CONFIG_IO_MAPPING_BASE=0xe0000000
# CONFIG_I2C is not set
# CONFIG_NET is not set
CONFIG_FB=y
CONFIG_INPUT=y
# CONFIG_NS16550 is not set
CONFIG_PL011_UART=y
CONFIG_UART_LL_PADDR=0x9000000
# CONFIG_MMC is not set
CONFIG_RAMDEV=y
# CONFIG_SP804 is not set
CONFIG_ARM_TIMER=y
CONFIG_GIC=y
CONFIG_PL111_CLCD=y
# CONFIG_QEMU_RAMFB is not set
CONFIG_PL050_KMI=y
# end of Drivers

#
# SO3 Applications
#
# CONFIG_APP_SAMPLE is not set
# CONFIG_APP_REFSO3 is not set
# end of SO3 Applications

#
# Filesystems
#
CONFIG_FS_FAT=y
# CONFIG_ROOTFS_NONE is not set
# CONFIG_ROOTFS_MMC is not set
CONFIG_ROOTFS_RAMDEV=y
# end of Filesystems

#
# IPC
#
CONFIG_IPC_SIGNAL=y
CONFIG_IPC_PIPE=y
# end of IPC

CONFIG_HEAP_SIZE=32
# CONFIG_RTOS is not set
# CONFIG_AVZ is not set
# CONFIG_SOO is not set
CONFIG_MMU=y
CONFIG_DEBUG_PRINTK=y
87 changes: 87 additions & 0 deletions so3/configs/virt64_fb_defconfig
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
# CONFIG_ARCH_ARM32 is not set
CONFIG_ARCH_ARM64=y
# CONFIG_SO3VIRT is not set
CONFIG_ARCH="arm64"
CONFIG_CROSS_COMPILE="aarch64-none-linux-gnu-"
# CONFIG_ARM_TRUSTZONE is not set
CONFIG_KERNEL_VADDR=0xffff800000000000

#
# Platform
#
CONFIG_VIRT64=y
# CONFIG_RPI4_64 is not set
# CONFIG_VA_BITS_39 is not set
CONFIG_VA_BITS_48=y
# end of Platform

# CONFIG_THREAD_ENV is not set
CONFIG_PROC_ENV=y

#
# Kernel & CPU features
#
# CONFIG_SMP is not set
CONFIG_NR_CPUS=1
CONFIG_HZ=100
CONFIG_SCHED_FLIP_SCHEDFREQ=30
# end of Kernel & CPU features

#
# SO3 Scheduling configuration
#
CONFIG_SCHED_RR=y
# CONFIG_SCHED_PRIO is not set
CONFIG_SCHED_FREQ_PREEMPTION=y
# end of SO3 Scheduling configuration

#
# Drivers
#
CONFIG_UART=y
CONFIG_IO_MAPPING_BASE=0xffff900000000000
# CONFIG_I2C is not set
# CONFIG_NET is not set
CONFIG_FB=y
CONFIG_INPUT=y
# CONFIG_NS16550 is not set
CONFIG_PL011_UART=y
CONFIG_UART_LL_PADDR=0x09000000
# CONFIG_MMC is not set
CONFIG_RAMDEV=y
CONFIG_ARM_TIMER=y
CONFIG_GIC=y
CONFIG_PL111_CLCD=y
# CONFIG_QEMU_RAMFB is not set
CONFIG_PL050_KMI=y
# end of Drivers

#
# SO3 Applications
#
CONFIG_APP_SAMPLE=y
# CONFIG_APP_REFSO3 is not set
# end of SO3 Applications

#
# Filesystems
#
CONFIG_FS_FAT=y
# CONFIG_ROOTFS_NONE is not set
# CONFIG_ROOTFS_MMC is not set
CONFIG_ROOTFS_RAMDEV=y
# end of Filesystems

#
# IPC
#
CONFIG_IPC_SIGNAL=y
CONFIG_IPC_PIPE=y
# end of IPC

CONFIG_HEAP_SIZE=8
# CONFIG_RTOS is not set
# CONFIG_AVZ is not set
# CONFIG_SOO is not set
CONFIG_MMU=y
# CONFIG_DEBUG_PRINTK is not set
4 changes: 3 additions & 1 deletion so3/devices/fb/virtfb.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,11 +30,13 @@ typedef struct {
uint32_t hres, vres;
} virtfb_priv_t;

static void *fb_mmap(int fd, addr_t virt_addr, uint32_t page_count)
static void *fb_mmap(int fd, addr_t virt_addr, uint32_t page_count, off_t offset)
{
struct devclass *dev = devclass_by_fd(fd);
virtfb_priv_t *priv = (virtfb_priv_t *)devclass_get_priv(dev);

(void)offset;

priv->vaddr = malloc(page_count * PAGE_SIZE);
BUG_ON(!priv->vaddr);

Expand Down