I'm trying to bring up OpenBSD/arm on an RK3128 in the Pomera DM250.
I was able to update its shipped U-Boot from 2014.10 to 2017.09 so
it would have EFI support, and I can boot BOOTARM.EFI.
It hangs when entering the kernel so I instrumented it to see where,
and it looks like it's as soon as it enables the MMU.
This prints out 1 and 2, but never gets to 3. Any ideas?
arm/locore0.S:
.globl uart_putc /* send r1 to uart */
uart_putc:
ldr r0, =0x20064000
/*mov r1, #'h' */
str r1, [r0]
ldr r2, =0x20064000 + 0x7c /* UART_USR */
check_usr:
ldr r3, [r2]
tst r3, #(1<<1) /* UART_TRANSMIT_FIFO_NOT_FULL */
beq check_usr
bx lr
.globl start_mmu
start_mmu:
mov r1, #'1'
bl uart_putc
/* Set ASID to zero */
mov r1, #0
mcr CP15_CONTEXTIDR(r1)
isb
mcr CP15_TTBR0(r0) /* Set TTB */
mcr CP15_TLBIALL(r0) /* Flush TLB */
/* Set the Domain Access register. Very important! */
mov r0, #DOMAIN_CLIENT /* We only use domain 0 */
mcr CP15_DACR(r0)
isb
mov r1, #'2'
bl uart_putc
/* Enable MMU */
mrc CP15_SCTLR(r0)
orr r0, r0, #CPU_CONTROL_MMU_ENABLE
mcr CP15_SCTLR(r0)
isb
mov r1, #'3'
bl uart_putc
U-Boot and bootloader output:
U-Boot 2017.09-gc974502-dirty (Apr 15 2025 - 13:48:57 -0500)
Model: KING JIM Pomera DM250
DRAM: 512 MiB
Sysmem: init
Relocation Offset: 1ddbd000, fdt: 00000000
Using default environment
dwmmc@10214000: 1, dwmmc@1021c000: 0
RKPARM: Invalid parameter part table
switch to partitions #0, OK
mmc1 is current device
switch to partitions #0, OK
mmc0(part 0) is current device
Bootdev: mmc 0
MMC0: High Speed, 52Mhz
PartType: RKPARM
Found DTB in resource part
DTB: rk-kernel.dtb
In: serial
Out: serial
Err: serial
rockchip_get_boot_mode: Could not found misc partition
boot mode: None
CLK: (uboot. arm: enter 600000 KHz, init 600000 KHz, kernel 0N/A)
apll 600000 KHz
dpll 600000 KHz
cpll 400000 KHz
gpll 594000 KHz
armclk 600000 KHz
aclk_cpu 148500 KHz
hclk_cpu 74250 KHz
pclk_cpu 74250 KHz
aclk_peri 148500 KHz
hclk_peri 74250 KHz
pclk_peri 74250 KHz
Hit key to stop autoboot('CTRL+C'): 0
reading efi/boot/bootarm.efi
119296 bytes read in 18 ms (6.3 MiB/s)
## Starting EFI application at 62008000 ...
FtlInit fffffffe
Scanning disk [email protected]...
rkparm_init_param_from_storage param read fail
RKPARM: Invalid parameter part table
Scanning disk [email protected]...
Scanning disk [email protected]...
Found 3 disks
Adding bank: 0x60000000 - 0x80000000 (size: 0x20000000)
disks: sd0* sd1 sd2 sd3 sd4 sd5 sd6 sd7 sd8 sd9 sd10 sd11 sd12 sd13 sd14
sd15 sd16 sd17 sd18 sd19 sd20 sd21 sd22 sd23 sd24 sd25 sd26 sd27 sd28 sd29 sd30
>> OpenBSD/armv7 BOOTARM 1.23
boot> b bsd.arm
cannot open sd0a:/etc/random.seed: No such file or directory
booting sd0a:bsd.arm: 4917816+1013564+140524+607800 [97+346224+308373]=0x0
12