微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 如何为DragonBoard 410c定制Android系统

如何为DragonBoard 410c定制Android系统

时间:02-22 来源:互联网 点击:

上一篇博文《初识DragonBoard 410c》已经为大家简单介绍了DragonBoard 410c这款平台,并且也介绍了Ubuntu系统和Android系统烧写方法。今天,将介绍一下Android系统定制方面的内容。这样你就可以自己基于Android系统进行修改、定制、开发等,来满足自己的需求。

下载Android源码

大家可以通过repo命令下载代码:

repo init -u git://codeaurora.org/platform/manifest -b release -m LA.BR.1.2.4-01810-8x16.0.xml

repo sync -c --no-tags -j4

上面的release版本是今年9月份的,如果大家想下载最新版本应该怎么办呢?下面给大家介绍一下如何查找代码库的位置。

首先打开CodeAurora网站https://www.codeaurora.org/,点击TOP PROJECTS的Android for MSM进入对应的project。

进入Android for MSM页面后点击下图中红色圆圈的Wiki按钮,访问此project的wiki页面。

在Wiki页面中查找Branch Release章节,你可以找到代码下载方法(红框处)。我们要下载Release分支的代码,所以点击下图中红圈处的release链接,会进入release列表页面。

在此页面就可以找到自己想要代码的Manifest了,DragonBoard 410c用的是Snapdragon 410芯片,所以我们选择的Chipset是msm8916_64。

修改确认kernel的UART配置

下载完代码后,我们需要对kernel的UART进行简单配置,具体配置参数可以参考kernel的devicetree文档(kernel/DocumentaTIon/devicetree/bindings/tty/serial/msm_serial.txt)。

首先,确认kernel/arch/arm64/boot/dts/qcom/msm8916.dtsi里的blsp1_uart2设置,具体设置如下:

blsp1_uart2: serial@78b0000 {
    compaTIble = "qcom,msm-lsuart-v14";
    reg = <0x78b0000 0x200>;
    interrupts = <0 108 0>;
    status = "disabled";
    clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>,
             <&clock_gcc clk_gcc_blsp1_ahb_clk>;
    clock-names = "core_clk", "iface_clk";
}; 

然后,确认kernel/arch/arm64/boot/dts/qcom/msm8916-pinctrl.dtsi里的uartconsole设置。

pmx-uartconsole {
    qcom,pins = <&gp 4>, <&gp 5>;
    qcom,num-grp-pins = <2>;
    qcom,pin-func = <2>;
    label = "uart-console";
    uart_console_sleep: uart-console {
        drive-strength = <2>;
        bias-pull-down;
    };
}; 

最后,确认kernel/drivers/clk/qcom/clock-gcc-8916.c中的blsp1_uart2_apps_clk_src ,如下:

staTIc struct rcg_clk blsp1_uart2_apps_clk_src = {
        .cmd_rcgr_reg = BLSP1_UART2_APPS_CMD_RCGR,
        .set_rate = set_rate_mnd,
        .freq_tbl = ftbl_gcc_blsp1_uart1_6_apps_clk,
        .current_freq = &rcg_dummy_freq,
        .base = &virt_bases[GCC_BASE],
        .c = {
                .dbg_name = "blsp1_uart2_apps_clk_src",
                .ops = &clk_ops_rcg_mnd,
                VDD_DIG_FMAX_MAP2(LOW, 32000000, NOMINAL, 64000000),
                CLK_INIT(blsp1_uart2_apps_clk_src.c),
        },
}; 

确认修改完以上的配置后就可以编译系统了。

编译源码

通过以下命令编译Android系统。编译完的image可以通过fastboot命令烧写到DragonBoard 410c上。

source build/envsetup.sh

lunch msm8916_64-userdebug

make -j4

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top