How to run FreeBSD on new boards built on Rockchip 35XX..

it seems that the iommu has be enabled in the vop driver for rk3399 ?
search for vop_mmu_en
however i can't find where this is enabled in the linux driver but the bit is described in the headers but does not seem to be actually used
C:
static const struct vop_common rk3399_common = {
    .standby = VOP_REG_SYNC(RK3399_SYS_CTRL, 0x1, 22),
    .gate_en = VOP_REG(RK3399_SYS_CTRL, 0x1, 23),
    .mmu_en = VOP_REG(RK3399_SYS_CTRL, 0x1, 20),
    .dither_down_sel = VOP_REG(RK3399_DSP_CTRL1, 0x1, 4),
    .dither_down_mode = VOP_REG(RK3399_DSP_CTRL1, 0x1, 3),
    .dither_down_en = VOP_REG(RK3399_DSP_CTRL1, 0x1, 2),
    .pre_dither_down = VOP_REG(RK3399_DSP_CTRL1, 0x1, 1),
    .dither_up = VOP_REG(RK3399_DSP_CTRL1, 0x1, 6),
    .dsp_lut_en = VOP_REG(RK3399_DSP_CTRL1, 0x1, 0),
    .update_gamma_lut = VOP_REG(RK3399_DSP_CTRL1, 0x1, 7),
    .lut_buffer_index = VOP_REG(RK3399_DBG_POST_REG1, 0x1, 1),
    .data_blank = VOP_REG(RK3399_DSP_CTRL0, 0x1, 19),
    .dsp_blank = VOP_REG(RK3399_DSP_CTRL0, 0x3, 18),
    .out_mode = VOP_REG(RK3399_DSP_CTRL0, 0xf, 0),
    .cfg_done = VOP_REG_SYNC(RK3399_REG_CFG_DONE, 0x1, 0),
};
 
I wish chinese soc manuals were written in a better english
1767983566422.png

find out that my iommu fault problem was due to the fact the window region disable bit is read only. you have to commit it via another reg
 
Back
Top