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 na...@10500000.blk...
    rkparm_init_param_from_storage param read fail
    RKPARM: Invalid parameter part table
    Scanning disk dw...@10214000.blk...
    Scanning disk dw...@1021c000.blk...
    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

Reply via email to