Merge changes from topic "bring_up_hps_demo"
* changes:
[sw][matcha] Update ISP registes setup for raw and bypass modes
[sw][matcha] Update demo script for new server setup
diff --git a/sw/device/lib/dif/dif_isp_wrapper.c b/sw/device/lib/dif/dif_isp_wrapper.c
index e6f6ae2..3363d33 100644
--- a/sw/device/lib/dif/dif_isp_wrapper.c
+++ b/sw/device/lib/dif/dif_isp_wrapper.c
@@ -194,29 +194,11 @@
return kDifOk;
}
-// ISP configuration:
-// raw:320x240, byp:320x240
-dif_result_t dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
- const dif_isp_wrapper_t *isp_wrapper) {
- return _dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
- isp_wrapper, 0x5a000000, 0x5a01a000, 0x5a01a000, 0x5a020000, 0x5a03a000,
- 0x5a03a000);
-}
-
-// ISP configuration:
-// raw:320x240, byp:320x240, hps image address: 0x00300000
-dif_result_t dif_isp_wrapper_set_ml_mem_byp_320x240_en(
- const dif_isp_wrapper_t *isp_wrapper) {
- return _dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
- isp_wrapper, 0x5a300000, 0x5a320000, 0x5a320000, 0x5a340000, 0x5a360000,
- 0x5a360000);
-}
-
-// TODO(ykwang): Remove the code duplication in this library. Use a config
-// variable to describe which field to set and implement an initialization
-// to setup ISP with the config. Unify all *_en functions in this library.
-dif_result_t _dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
- const dif_isp_wrapper_t *isp_wrapper,
+// ISP confituration: live, raw and bypass modes
+// Input arguments are frame weight, frame height and Y,Cb,Cr written addresses.
+dif_result_t _dif_isp_wrapper_set_raw_byp_en(
+ const dif_isp_wrapper_t *isp_wrapper, const uint32_t frame_width,
+ uint32_t frame_height,
// TODO(ykwang): put these variables into a config variable.
const uint32_t y_base_ad_init_addr, const uint32_t cb_base_ad_init_addr,
const uint32_t cr_base_ad_init_addr, const uint32_t y_base_ad_init2_addr,
@@ -225,127 +207,113 @@
if (isp_wrapper == NULL) {
return kDifBadArg;
}
- mmio_region_write32(isp_wrapper->base_addr, VI_CCL, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, VI_ICCL, 0x00000049);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_IMSC, 0xffffffff);
+ mmio_region_write32(isp_wrapper->base_addr, MI_IMSC, 0xffffffff);
+ mmio_region_write32(isp_wrapper->base_addr, VI_CCL, 0x00000002);
+ mmio_region_write32(isp_wrapper->base_addr, VI_ICCL, 0x00000059);
mmio_region_write32(isp_wrapper->base_addr, VI_IRCL, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CTRL, 0x00206010);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_PROP, 0x00040011);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_H_OFFS, 0x00000002);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_V_OFFS, 0x00000002);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_H_SIZE, 0x00000140);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_V_SIZE, 0x000000f0);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_TOTAL_IN, 0x00ad3f05);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_ACT_IN, 0x00510144);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_FP_IN, 0x0d6e000f);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_BP_IN, 0x028b8004);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_W_IN, 0x0bad0001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_GAP_IN, 0x04a1415b);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_GAP_STD_IN, 0x00002a97);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_RANDOM_SEED, 0x4d777439);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_FRAME_NUM, 0x00000001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FRAME_RATE, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_H_OFFS, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_V_OFFS, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_H_SIZE, frame_width);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_V_SIZE, frame_height);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_TOTAL_IN, 0x011d8518);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_ACT_IN, 0x00a001e0);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_FP_IN, 0x001c8126);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_BP_IN, 0x00454129);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_W_IN, 0x001bc0e9);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_GAP_IN, 0x003540a0);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_GAP_STD_IN, 0x00000050);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_RANDOM_SEED, 0xe30ce95f);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_FRAME_NUM, 0x00000003);
mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_H_OFFS, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_V_OFFS, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_H_SIZE, 0x00000140);
- mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_V_SIZE, 0x000000f0);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BINNING_BASE, 0x00010001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BINNING_NUM, 0x01580393);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_H_SIZE, frame_width);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_V_SIZE, frame_height);
mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_CTRL, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_A_FIXED, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_B_FIXED, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_C_FIXED, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_D_FIXED, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_CONF, 0x80000001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_H_OFFSET, 0x00000020);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_V_OFFSET, 0x00000028);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_H_SIZE, 0x00000030);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_V_SIZE, 0x00000036);
- mmio_region_write32(isp_wrapper->base_addr, ISP_DGAIN_RB, 0x011a00d1);
- mmio_region_write32(isp_wrapper->base_addr, ISP_DGAIN_G, 0x01260109);
- mmio_region_write32(isp_wrapper->base_addr, ISP_DEMOSAIC, 0x00000414);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_MODE, 0x00000692);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_BL0, 0x00000167);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_BL1, 0x00000142);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_SH0, 0x00000177);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_SH1, 0x000001c7);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_LUM_WEIGHT, 0x0006698a);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_SH1, 0x00000032);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_SH0, 0x00000023);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_MID, 0x00000019);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_BL0, 0x0000000f);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_BL1, 0x00000006);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_CTRL, 0x0000000a);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_COUNT_START, 0x00a200a2);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_A, 0x00170118);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_B, 0x01d101ed);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_C, 0x01c100f8);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_X_NORM, 0x00020005);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_Y_NORM, 0x00050019);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_MODE, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_0, 0x000002f4);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_1, 0x0000024e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_2, 0x00000083);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_3, 0x000001af);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_4, 0x00000346);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_5, 0x000000a5);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_6, 0x00000304);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_7, 0x00000111);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_8, 0x000003b9);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_9, 0x00000383);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_10, 0x00000018);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_11, 0x0000028c);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_12, 0x0000001e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_13, 0x00000087);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_14, 0x00000047);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_15, 0x000001a4);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_16, 0x000002bc);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_PROP, 0x80000007);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_H_OFFS, 0x0000011c);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_V_OFFS, 0x000000c1);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_H_SIZE, 0x0000001e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_V_SIZE, 0x00000078);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_FRAMES, 0x00000002);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_REF, 0x0000c2e6);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_THRESH, 0x8ef9ad1e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_0, 0x00000026);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_1, 0x0000004b);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_2, 0x0000000f);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_3, 0x000001ea);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_4, 0x000001d6);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_5, 0x00000040);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_6, 0x00000040);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_7, 0x000001ca);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_8, 0x000001f6);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_CONF, 0x00000001);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_H_OFFSET, 0x000000d3);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_V_OFFSET, 0x00000017);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_H_SIZE, 0x00000043);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_V_SIZE, 0x00000048);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_DGAIN_RB, 0x01a200d7);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_DGAIN_G, 0x00f9011e);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_DEMOSAIC, 0x000004f6);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_MODE, 0x00000810);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_BL0, 0x00000230);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_BL1, 0x00000018);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_SH0, 0x00000287);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_SH1, 0x000003f2);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_LUM_WEIGHT, 0x00061fdc);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_SH1, 0x00000031);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_SH0, 0x00000031);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_MID, 0x0000002c);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_BL0, 0x0000001a);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_BL1, 0x00000016);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_CTRL, 0x00000004);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_COUNT_START, 0x00f00140);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_A, 0x01160187);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_B, 0x005f004c);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_C, 0x0138017a);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_X_NORM, 0x00020001);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_Y_NORM, 0x00060015);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_MODE, 0x00000001);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_0, 0x00000170);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_1, 0x00000178);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_2, 0x00000181);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_3, 0x0000018e);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_4, 0x00000194);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_5, 0x000001b4);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_6, 0x000001b7);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_7, 0x000001b9);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_8, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_9, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_10, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_11, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_12, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_13, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_14, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_15, 0x000001ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_16, 0x00000303);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_PROP, 0x00000002);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_H_OFFS, 0x00000052);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_V_OFFS, 0x0000016f);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_H_SIZE, 0x000001be);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_V_SIZE, 0x00000061);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_FRAMES, 0x00000001);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_REF, 0x0000b0c6);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_THRESH, 0x0b145491);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_0, 0x0000008d);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_1, 0x000000b1);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_2, 0x000000a2);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_3, 0x00000078);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_4, 0x00000169);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_5, 0x000000ba);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_6, 0x0000015c);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_7, 0x000000f8);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_8, 0x0000017c);
mmio_region_write32(isp_wrapper->base_addr, FORMAT_CONV_CTRL, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_0, 0x000000dd);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_1, 0x000007c6);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_2, 0x000007df);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_3, 0x000007bf);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_4, 0x000000ec);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_0, 0x000005ff);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_1, 0x00000707);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_2, 0x00000464);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_3, 0x00000008);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_4, 0x00000058);
mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_5, 0x000007de);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_6, 0x00000002);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_7, 0x000007ae);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_8, 0x000000e0);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_R, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_G, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_B, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_IMSC, 0x00000020);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ICR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ISR, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_6, 0x00000241);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_7, 0x000006ff);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_8, 0x0000007d);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_R, 0x000005ec);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_G, 0x00000d7e);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_B, 0x00000dd7);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_IMSC, 0x000400fc);
mmio_region_write32(isp_wrapper->base_addr, ISP_ERR_CLR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_HY, 0x00008469);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_HCB, 0x0000a674);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_HCR, 0x0000fa3d);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_VY, 0x0000ef61);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_VC, 0x0000f9b7);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_HY, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_HC, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_VY, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_VC, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_FORMAT_CONV_CTRL, 0x000000fa);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_BASE_AD_INIT,
y_base_ad_init_addr);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_SIZE_INIT, 0x00012c00);
+ mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_SIZE_INIT,
+ frame_width * frame_height);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_OFFS_CNT_INIT, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_IRQ_OFFS_INIT, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_CB_BASE_AD_INIT,
@@ -356,184 +324,92 @@
cr_base_ad_init_addr);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_CR_SIZE_INIT, 0x00000000);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_CR_OFFS_CNT_INIT, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_IMSC, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_ICR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_ISR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_STATUS_CLR, 0x00000003);
+ mmio_region_write32(isp_wrapper->base_addr, MI_IMSC, 0x000003ff);
+ mmio_region_write32(isp_wrapper->base_addr, MI_STATUS_CLR, 0x00000077);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_BASE_AD_INIT2,
y_base_ad_init2_addr);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_CB_BASE_AD_INIT2,
cb_base_ad_init2_addr);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_CR_BASE_AD_INIT2,
cr_base_ad_init2_addr);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_LLENGTH, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, MI_OUTPUT_ALIGN_FORMAT, 0x00000001);
+ mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_LLENGTH, 0x00000140);
+ mmio_region_write32(isp_wrapper->base_addr, MI_OUTPUT_ALIGN_FORMAT,
+ 0x00000401);
mmio_region_write32(isp_wrapper->base_addr, MI_MP_OUTPUT_FIFO_SIZE, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_WIDTH, 0x00000140);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_HEIGHT, 0x000000f0);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_SIZE, 0x00012c00);
- mmio_region_write32(isp_wrapper->base_addr, MI_CTRL, 0x003a2808);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_CTRL, 0x00000868);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CTRL, 0x00207251);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_BASE, 0x00000190);
+ mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_WIDTH, frame_width);
+ mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_HEIGHT, frame_height);
+ mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_SIZE,
+ frame_width * frame_height);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_CTRL, 0x000001c0);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_SCALE_HY, 0x0000546d);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_SCALE_HCB, 0x0000db23);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_SCALE_HCR, 0x000071b7);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_SCALE_VY, 0x00007803);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_SCALE_VC, 0x00005628);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_PHASE_HY, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_PHASE_HC, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_PHASE_VY, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_PHASE_VC, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_FORMAT_CONV_CTRL,
+ 0x000000fa);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_BASE_AD_INIT, 0x50000000);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_SIZE_INIT, 0x0006c1c0);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_OFFS_CNT_INIT,
+ 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_LLENGTH, 0x00000128);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CB_BASE_AD_INIT,
+ 0x5006c800);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CB_SIZE_INIT, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CB_OFFS_CNT_INIT,
+ 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CR_BASE_AD_INIT,
+ 0x5006c800);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CR_SIZE_INIT, 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CR_OFFS_CNT_INIT,
+ 0x00000000);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_PIC_WIDTH, 0x00000124);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_PIC_HEIGHT, 0x00000176);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_PIC_SIZE, 0x0001b070);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_Y_BASE_AD_INIT2,
+ 0x500d9000);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CB_BASE_AD_INIT2,
+ 0x50145800);
+ mmio_region_write32(isp_wrapper->base_addr, MI_SP_CR_BASE_AD_INIT2,
+ 0x50145800);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_PROP, 0x40011);
+ mmio_region_write32(isp_wrapper->base_addr, SRSZ_CTRL, 0x000001c0);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_CTRL, 0x00207211);
+ mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_CTRL, 0x00000d76);
+ mmio_region_write32(isp_wrapper->base_addr, MI_CTRL, 0x68352808);
mmio_region_write32(isp_wrapper->base_addr, MI_INIT, 0x000000b0);
return kDifOk;
}
// ISP configuration:
+// raw:320x240, byp:320x240
+dif_result_t dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
+ const dif_isp_wrapper_t *isp_wrapper) {
+ return _dif_isp_wrapper_set_raw_byp_en(isp_wrapper, 0x140, 0xf0, 0x5a000000,
+ 0x5a01a000, 0x5a01a000, 0x5a020000,
+ 0x5a03a000, 0x5a03a000);
+}
+
+// ISP configuration:
+// raw:320x240, byp:320x240, hps image address: 0x00300000
+dif_result_t dif_isp_wrapper_set_ml_mem_byp_320x240_en(
+ const dif_isp_wrapper_t *isp_wrapper) {
+ return _dif_isp_wrapper_set_raw_byp_en(isp_wrapper, 0x140, 0xf0, 0x5a300000,
+ 0x5a320000, 0x5a320000, 0x5a340000,
+ 0x5a360000, 0x5a360000);
+}
+
+// ISP configuration:
// raw:324x324, byp:324x324
dif_result_t dif_isp_wrapper_set_raw_324x324_byp_324x324_en(
const dif_isp_wrapper_t *isp_wrapper) {
- if (isp_wrapper == NULL) {
- return kDifBadArg;
- }
- mmio_region_write32(isp_wrapper->base_addr, VI_CCL, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, VI_ICCL, 0x00000049);
- mmio_region_write32(isp_wrapper->base_addr, VI_IRCL, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CTRL, 0x00206018);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_PROP, 0x00040011);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_H_OFFS, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_V_OFFS, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_H_SIZE, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ACQ_V_SIZE, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_TOTAL_IN, 0x00ad3f05);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_ACT_IN, 0x00510144);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_FP_IN, 0x0d6e000f);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_BP_IN, 0x028b8004);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_W_IN, 0x0bad0001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_GAP_IN, 0x04a1415b);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_GAP_STD_IN, 0x00002a97);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_RANDOM_SEED, 0x4d777439);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_FRAME_NUM, 0x00000001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FRAME_RATE, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_H_OFFS, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_V_OFFS, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_H_SIZE, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, ISP_OUT_V_SIZE, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BINNING_BASE, 0x00010001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BINNING_NUM, 0x01580393);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_CTRL, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_A_FIXED, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_B_FIXED, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_C_FIXED, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_BLS_D_FIXED, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_CONF, 0x80000001);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_H_OFFSET, 0x00000020);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_V_OFFSET, 0x00000028);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_H_SIZE, 0x00000030);
- mmio_region_write32(isp_wrapper->base_addr, ISP_EXP_V_SIZE, 0x00000036);
- mmio_region_write32(isp_wrapper->base_addr, ISP_DGAIN_RB, 0x011a00d1);
- mmio_region_write32(isp_wrapper->base_addr, ISP_DGAIN_G, 0x01260109);
- mmio_region_write32(isp_wrapper->base_addr, ISP_DEMOSAIC, 0x00000414);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_MODE, 0x00000692);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_BL0, 0x00000167);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_BL1, 0x00000142);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_SH0, 0x00000177);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_THRES_SH1, 0x000001c7);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_LUM_WEIGHT, 0x0006698a);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_SH1, 0x00000032);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_SH0, 0x00000023);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_MID, 0x00000019);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_BL0, 0x0000000f);
- mmio_region_write32(isp_wrapper->base_addr, ISP_FILT_FAC_BL1, 0x00000006);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_CTRL, 0x0000000a);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_COUNT_START, 0x00a200a2);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_A, 0x00170118);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_B, 0x01d101ed);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_C, 0x01c100f8);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_X_NORM, 0x00020005);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CAC_Y_NORM, 0x00050019);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_MODE, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_0, 0x000002f4);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_1, 0x0000024e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_2, 0x00000083);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_3, 0x000001af);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_4, 0x00000346);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_5, 0x000000a5);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_6, 0x00000304);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_7, 0x00000111);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_8, 0x000003b9);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_9, 0x00000383);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_10, 0x00000018);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_11, 0x0000028c);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_12, 0x0000001e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_13, 0x00000087);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_14, 0x00000047);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_15, 0x000001a4);
- mmio_region_write32(isp_wrapper->base_addr, ISP_GAMMA_OUT_Y_16, 0x000002bc);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_PROP, 0x80000007);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_H_OFFS, 0x0000011c);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_V_OFFS, 0x000000c1);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_H_SIZE, 0x0000001e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_V_SIZE, 0x00000078);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_FRAMES, 0x00000002);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_REF, 0x0000c2e6);
- mmio_region_write32(isp_wrapper->base_addr, ISP_AWB_THRESH, 0x8ef9ad1e);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_0, 0x00000026);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_1, 0x0000004b);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_2, 0x0000000f);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_3, 0x000001ea);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_4, 0x000001d6);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_5, 0x00000040);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_6, 0x00000040);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_7, 0x000001ca);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CC_COEFF_8, 0x000001f6);
- mmio_region_write32(isp_wrapper->base_addr, FORMAT_CONV_CTRL, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_0, 0x000000dd);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_1, 0x000007c6);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_2, 0x000007df);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_3, 0x000007bf);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_4, 0x000000ec);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_5, 0x000007de);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_6, 0x00000002);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_7, 0x000007ae);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_COEFF_8, 0x000000e0);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_R, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_G, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CT_OFFSET_B, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_IMSC, 0x00000020);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ICR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ISR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_ERR_CLR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_HY, 0x00008469);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_HCB, 0x0000a674);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_HCR, 0x0000fa3d);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_VY, 0x0000ef61);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_SCALE_VC, 0x0000f9b7);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_HY, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_HC, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_VY, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_PHASE_VC, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_FORMAT_CONV_CTRL, 0x000000fa);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_BASE_AD_INIT, 0x5a000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_SIZE_INIT, 0x00019f20);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_OFFS_CNT_INIT, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_IRQ_OFFS_INIT, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CB_BASE_AD_INIT, 0x5a01a000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CB_SIZE_INIT, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CB_OFFS_CNT_INIT, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CR_BASE_AD_INIT, 0x5a01a000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CR_SIZE_INIT, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CR_OFFS_CNT_INIT, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_IMSC, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_ICR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_ISR, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_STATUS_CLR, 0x00000003);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_BASE_AD_INIT2, 0x5a034000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CB_BASE_AD_INIT2, 0x5a04e000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_CR_BASE_AD_INIT2, 0x5a04e000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_LLENGTH, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, MI_OUTPUT_ALIGN_FORMAT, 0x00000001);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_OUTPUT_FIFO_SIZE, 0x00000000);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_WIDTH, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_HEIGHT, 0x00000144);
- mmio_region_write32(isp_wrapper->base_addr, MI_MP_Y_PIC_SIZE, 0x00019a10);
- mmio_region_write32(isp_wrapper->base_addr, MI_CTRL, 0x003a2808);
- mmio_region_write32(isp_wrapper->base_addr, ISP_TPG_CTRL, 0x00000868);
- mmio_region_write32(isp_wrapper->base_addr, ISP_CTRL, 0x00207259);
- mmio_region_write32(isp_wrapper->base_addr, ISP_MRSZ_BASE, 0x00000190);
- mmio_region_write32(isp_wrapper->base_addr, MI_INIT, 0x000000b0);
- return kDifOk;
+ return _dif_isp_wrapper_set_raw_byp_en(isp_wrapper, 0x144, 0x144, 0x5a000000,
+ 0x5a01a000, 0x5a01a000, 0x5a034000,
+ 0x5a04e000, 0x5a04e000);
}
dif_result_t dif_isp_wrapper_clear_en(const dif_isp_wrapper_t *isp_wrapper) {
diff --git a/sw/device/lib/dif/dif_isp_wrapper.h b/sw/device/lib/dif/dif_isp_wrapper.h
index 761eafc..3730cfd 100644
--- a/sw/device/lib/dif/dif_isp_wrapper.h
+++ b/sw/device/lib/dif/dif_isp_wrapper.h
@@ -39,11 +39,6 @@
const dif_isp_wrapper_t *isp_wrapper);
dif_result_t dif_isp_wrapper_set_ml_mem_byp_320x240_en(
const dif_isp_wrapper_t *isp_wrapper);
-dif_result_t _dif_isp_wrapper_set_raw_320x240_byp_320x240_en(
- const dif_isp_wrapper_t *isp_wrapper, const uint32_t y_base_ad_init_addr,
- const uint32_t cb_base_ad_init_addr, const uint32_t cr_base_ad_init_addr,
- const uint32_t y_base_ad_init2_addr, const uint32_t cb_base_ad_init2_addr,
- const uint32_t cr_base_ad_init2_addr);
dif_result_t dif_isp_wrapper_set_raw_324x324_byp_324x324_en(
const dif_isp_wrapper_t *isp_wrapper);
diff --git a/util/run_live_cam.py b/util/run_live_cam.py
index be825c0..b95da87 100644
--- a/util/run_live_cam.py
+++ b/util/run_live_cam.py
@@ -12,22 +12,22 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-"""
-Run a live camera stream from Nexus board
+"""Run a live camera stream from Nexus board
"""
import argparse
from datetime import datetime
from functools import reduce
import re
-import serial
import subprocess
+import serial
from PIL import Image, ImageDraw, ImageFont
def main():
"""Args:
smc_uart_port: SMC uart port
+ usb_serial: USB serial
baudrate: Baud rate of smc uart
input_shape: Input image shape
input_mode: Input image mode
@@ -35,10 +35,9 @@
parser = argparse.ArgumentParser(
description='Generate inputs for ML models.')
parser.add_argument("--smc_uart_port",
- "-p",
- dest='port',
required=True,
help="SMC uart port")
+ parser.add_argument("--usb_serial", required=True, help="USB serial")
parser.add_argument("--baudrate",
"-b",
default=115200,
@@ -58,7 +57,7 @@
parser.add_argument("--opentitantool_conf", type=str, required=True)
args = parser.parse_args()
- ser = serial.Serial(port=args.port, baudrate=args.baudrate)
+ ser = serial.Serial(port=args.smc_uart_port, baudrate=args.baudrate)
while True:
line = ser.readline()
@@ -71,17 +70,17 @@
address = re.search(r"\[SMC\] Start of a frame, address (\d+)\.",
line.decode())
if address:
- address = address.groups(1)[0]
+ address = address.groups(1)[0]
else:
- continue
+ continue
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print("Start loading the frame")
# Load the frame from uart
byte_size = str(reduce(lambda x, y: x * y, args.input_shape))
byte_str = subprocess.check_output([
args.opentitantool_bin, '--conf', args.opentitantool_conf,
- '--interface', 'nexus', 'spi', 'read-memory', '--length',
- byte_size, '--start', address
+ '--interface', 'nexus', '--usb-serial', args.usb_serial, 'spi',
+ 'read-memory', '--length', byte_size, '--start', address
])
im_obj = Image.frombytes(mode=args.input_mode,