Android BSP Support for DragonBoard 410C?

Hi,
I successfully built Android based on Android Board Support Package vLA.BR.1.2.7-01010-8x16.0-4
Unfortunately this boots but there is nothing on HDMI. Has anyone successfully run this build.
So can anyone recommend release SDK that works.

Thanks
Vasant

Hi @Vasant1234

The first thing I would try is installing the pre-built binaries, they do work - provided you clear the partitions. Hunt back through the forums, you will find a post about how to delete everything in the eMMC, and my joy that this worked. If the pre-built binaries work then you know you have a problem with your build process, following the directions to the letter is important, particularly the versions of the OS you are building on.

I would also recommend a lot of patience, the first time you boot Android, it takes about 5 minutes.

Full disclosure: I am currently unemployed and looking for work.

The only version that worked for me is the 99 release.
So I used the kernel used in 99 release as follows:
git clone -b LA.BR.1.2.4_rb1.10 kernel/msm-3.10 - Unnamed repository
I also extracted th kernel config from the 99 release and used it to build and boot the kernel.
First thing I noticed is that the new config removes support for ADV7533

CONFIG_MSM_DBA=y
CONFIG_MSM_DBA_ADV7533=y
2746a2749
CONFIG_USB_HID_LILLIPUT_MULTITOUCH=y
Looks like ADV7533 is code for HDMI transmitter and it is missing.
No wonder I don’t see anything on HDMI output. The system is running without HDMI output as I can adb into it. So what happened to ADV7533 support ?

Vasant

Is that really the source code for the kernel? I thought there was some patching process are part of the Android build document that added a bunch more source to the kernel.

Hi @Vasant1234

@danielt is correct, it appears you missed the ‘patching’ step when reduilding Android. The basic steps are here: https://developer.qualcomm.com/download/db410c/linux-android-software-build-and-installation-guide.pdf the document recommends specific versions of the OS for the build system, mostly because the Android build system itself has dependencies on the OS and the tools in each version.

The Guide will have you download a board support package from here: https://developer.qualcomm.com/hardware/dragonboard-410c/software the package contains a script that builds Android along with proprietary binaries and patches for the 410c board. The script does the same git clone you did, but then it applies a whole lot of patches from the board support package.

The patches don’t get applied correctly if you put things in the wrong place, or if you have the wrong version of build system. I am pretty sure you can get the patches applied correctly with minor tweaks to the script, so take a careful look at the output from the steps after the clone and before the make.

Hope this helps.

Full disclosure: I am currently unemployed and looking for work.

Release 99 works, so the question is how can I reproduce this build.
As I said the lasted SDK from qualcomm site builds but there is no HDMI output.
I suspect Qualcomm probably tests it with LCD panel, assuming they test it at all.
So if you can point me to an SDK that works with HDMI output I can give it another try.

I recently built that version successfully with HDMI output working. What does your “dmesg | grep mdss” look like?

<6>[ 0.329371] gdsc_mdss: no parameters
<6>[ 0.331397] mdss_pll_probe: MDSS pll label = MDSS DSI 0 PLL
<6>[ 0.409702] gcc-mdss-8916 qcom,gcc-mdss.29: Registered GCC MDSS clocks.
<3>[ 0.472488] mdss_mdp_probe+0x230/0xcd4->msm_dss_ioremap_byname: ‘vbif_nrt_phys’ msm_dss_get_res_byname failed
<4>[ 0.472500] mdss_mdp_parse_dt_hw_settings: MDSS VBIF settings not found
<6>[ 0.472527] mdss_mdp_parse_dt_prop_len: prop qcom,mdss-pipe-cursor-off : doesn’t exist in device tree
<6>[ 0.472576] mdss_mdp_pipe_addr_setup: type:1 ftchid:1 xinid:0 num:0 ndx:0x1 prio:0
<6>[ 0.472588] mdss_mdp_pipe_addr_setup: type:2 ftchid:7 xinid:1 num:3 ndx:0x8 prio:1
<6>[ 0.472595] mdss_mdp_pipe_addr_setup: type:2 ftchid:8 xinid:5 num:4 ndx:0x10 prio:2
<6>[ 0.472608] mdss_mdp_pipe_addr_setup: type:3 ftchid:4 xinid:2 num:6 ndx:0x40 prio:3
<3>[ 0.472626] mdss_mdp_parse_dt_handler: Error from prop qcom,mdss-pipe-sw-reset-off : u32 array read
<3>[ 0.472817] mdss_mdp_parse_dt_handler: Error from prop qcom,mdss-ib-factor-overlap : u32 array read
<3>[ 0.472827] mdss_mdp_parse_dt_handler: Error from prop qcom,mdss-ib-factor-cmd : u32 array read
<6>[ 0.472842] mdss_mdp_parse_dt_prop_len: prop qcom,mdss-clk-levels : doesn’t exist in device tree
<6>[ 0.472877] mdss_mdp_parse_dt_prop_len: prop qcom,mdss-ad-off : doesn’t exist in device tree
<3>[ 0.473399] mdss_mdp_irq_clk_register: unable to get clk: lut_clk
<6>[ 0.475993] mdss_dsi_ctrl_probe: DSI Ctrl name = MDSS DSI CTRL->0
<3>[ 0.476398] mdss_dsi_find_panel_of_node: invalid pan node, selecting prim panel
<6>[ 0.476425] mdss_dsi_panel_init: Panel Name = dsi_adv7533_1080p
<3>[ 0.476680] mdss_dsi_parse_dcs_cmds: failed, key=qcom,mdss-dsi-panel-status-command
<6>[ 0.476708] mdss_dsi_parse_panel_features: ulps feature disabled
<6>[ 0.476719] mdss_dsi_parse_panel_features: ulps during suspend feature disabled
<6>[ 0.476727] mdss_dsi_parse_panel_features: dynamic switch feature enabled: 0
<3>[ 0.476740] mdss_dsi_parse_panel_features:1168, Disp_en gpio not specified
<6>[ 0.476753] mdss_dsi_panel_init: Continuous splash disabled
<3>[ 0.477504] mdss_dsi_pll_1_clk_init: can’t find vco_clk. rc=-517
<6>[ 0.477545] mdss_dsi_retrieve_ctrl_resources: ctrl_base=ffffff8000802000 ctrl_size=25c phy_base=ffffff800081c500 phy_size=2b0
<6>[ 0.478495] mdss_register_panel: adding framebuffer device 1a98000.qcom,mdss_dsi
<6>[ 0.479143] mdss_dsi_status_init: DSI status check interval:5000
<6>[ 0.586267] mdss_register_panel: adding framebuffer device qcom,mdss_wb_panel.24
<6>[ 0.587572] mdss_fb_register: FrameBuffer[0] 1920x1080 registered successfully!
<4>[ 0.587628] mdss_mdp_overlay_init: mdss_mdp_overlay_init: unable to add event timer
<6>[ 0.592077] mdss_fb_register: FrameBuffer[1] 1280x720 registered successfully!
<4>[ 0.592144] mdss_mdp_overlay_init: mdss_mdp_overlay_init: unable to add event timer
<3>[ 0.592197] mdss_mdp_splash_parse_dt: splash mem child node is not present
<6>[ 20.586083] mdss_hw_rev_init: MDP Rev=10060000

The output was with SDK android-board-support-package-vla.br_.1.2.4-00310-8x16-1.zip and again no HDMI. Which version of SDK worked for you ?

Thanks
Vasant

I’ll look it up for you tomorrow. The dmesg output shows that the adv7533 is being detected and initialised. I can also see if I reproduce this, although I’m not sure if I still have the build environment still running since we recently changed to HiKey boards. But it looked quite similar to my working setup.

I went back to release 99 that works for me and got the mdss output from dmesg. There are some additional lines at the end:
<4>[ 1.472340] Workqueue: mdss_dsi_dba mdss_dsi_dba_work
<4>[ 1.472418] [] mdss_dba_utils_init+0x114/0x37c
<4>[ 1.472423] [] mdss_dsi_dba_work+0x70/0xb0
<4>[ 1.472482] Workqueue: mdss_dsi_dba mdss_dsi_dba_work
<4>[ 1.472541] [] mdss_dba_utils_init+0x114/0x37c
<4>[ 1.472545] [] mdss_dsi_dba_work+0x70/0xb0
<3>[ 1.472570] mdss_dba_utils_init_switch_dev: audio switch registration failed

Seems like the driver changed and it doesn’t work anymore. Something to do with the missing config:
CONFIG_MSM_DBA=y
CONFIG_MSM_DBA_ADV7533=y

Thanks
Vasant

I used https://developer.qualcomm.com/download/db410c/android_board_support_package_vla.br_.1.2.7-01010-8x16.0-4.zip. The dmesg output related to the display panel bringup is identical. I don’t seem to have those config lines either, then again, I’m not entirely sure where to look as I’m pretty new to Android kernels (kernel/arch/arm64/configs/msm_defconfig?). I can send you the binaries if you want.

OK, let me try building the same release again, since it worked for you.

SDK builds successfully. I can also install it properly but again no HDMI output. ADB indicates that everything is running well other than no HDMI output -:). Release 99 works but Linaro doesn’t provide associated SDK.

At this point I give up with this board. I don’t see much activity here with regards to Android.

Thanks again.

I hear you. I switched to hikey960, which is an excellent board, just a tad bit expensive. If you need something a bit less expensive, look at the original hikey, comparable price to db410c, but considerably more powerful. Faster CPU (double the cores), and more ram (2GB). The hikey boards are both supported in AOSP proper (master branch), no weird hacks, patches, or blobs… just repo sync, lunch, and make.