DTS草稿之三

本文详细分析了8572 DTS文件,涵盖根节点、CPU节点、MEMORY节点、SOC子系统(包括I2C、MDIO、eTSEC、UART等节点)的配置。通过实例解析了dts语法和硬件平台的映射关系,如地址空间、中断处理和设备中断连接。通过对各节点的详细解读,揭示了8572系统中硬件资源的组织和配置方式。

三、8572 DTS文件情景分析

1.根节点

    为了更清晰的说明怎样针对硬件平台编写一个dts文件,下面我们从8572的dts文件入手,进行一下仔细分析。dts的语法有些类似C语言的语法,我们在下面将看到这种相似性。

首先看到的是第12行有个“/ {”的标志,我们在dts文件的最后一行还会看到一个“};”,这里定义的就是我们前面提到的根节点,它定义的是单板级。“model”指定单板硬件平台的名字,#address-cells = <1>和#size-cells = <1>代表单板总线级地址为32位(1个cell),内存大小为32位(1个cell)。

2.CPU和MEMORY节点

接下来进行cpu节点的配置

    #cpus = <2>代表cpu子节点的个数为2。#address-cells = <1>代表cpu的地址为32位(1个cell)。

在cpu节点的下面还包含两个cpu子节点,其中第0号cpu子节点为

    device_type必须填为“cpu”,reg = <0>代表该节点是0号cpu,d-cache-line-size =<20> 和i-cache-line-size =<20>表示数据和指令的cache line的大小为0x20,cache每次和内存交换数据都是以cache line为单位的。d-cache-size = <8000>和i-cache-size = <8000>代表数据和指令cache的大小为0x8000。“32-bit”属性代表cpu是32位的。另外,第23行“PowerPC,8572”是cpu的名字,“@0”指定该cpu为0号cpu。合起来“PowerPC,8572@0”代表0号cpu的unit name。下面的1号cpu的描述也是一样的格式,这里不再叙述。接下来看看内存的配置情况。

这里是内存节点的表述,device_type必须填为“memory”,reg = <0000000000000000>代表的是内存的位置和大小,reg的格式是<mem_addr mem_size>,分别表示内存区的起始地址和大小,mem_addr和mem_size本身的数据长度延用上面根节点#address-cells = <1>和#size-cells = <1>的配置,即各用一个32位的数据来表示。这里填的都是00000000,是留给UBOOT初始化完内存区后填入的。

3.SOC子系统节点

    SOC子系统将分为根节点、I2C节点、MDIO节点、eTSEC节点、UART节点、PIC节点、SEC和UTILITIES节点。下面分别描述。

1)SOC子系统的根节点

表示是片上系统(SOC)的配置情况,它还将包含很多子节点如I2C、eTSEC、UART、PIC等。SOC总的配置为#address-cells = <1>和#size-cells = <1>表示SOC子系统内部的地址为32位,空间大小也为32位。#interrupt-cells = <2>表示每个中断属性“interrupts”将使用两个cell(每个cell为32位)表示,前一个32位表示中断号(对应中断控制器的输入),后一个32位表示中断触发模式的选择情况。对于和openPIC兼容的中断控制器,中断触发模式的设置为

对于普通ISA中断控制器(如i8259),中断触发模式的设置为

这里8572的SOC中使用的是openPIC,使用前一种中断触发模式的设置,这在后面设备中断具体设置中会用到。

另外,SOC子系统的device_type属性必须设置为"soc",ranges = <0 ffe0000000100000>由3个32位的数组成,它们各自代表的意义在前文中也有叙述,分别是“本设备的总线起始地址(bus address)”、“上一级父设备对应的总线起始地址(parent bus address)”、“本设备和父设备相互对应的总线地址大小(size)”。ranges = <0 ffe0000000100000>就表示SOC内部总线0x0~0x00100000的地址空间和CPU总的地址空间0xffe00000~(0xffe00000+0x00100000)相对应。我们将看到SOC内部的子设备的寄存器空间都是相对于SOC的基地址描述的偏移地址,实际上它们在CPU访问的时候还要加上SOC总的基地址0xffe00000。reg = <ffe0000000100000>描述的就是SOC子系统的寄存器是在CPU地址空间0xffe00000~(0xffe00000+0x00100000)。bus-frequency = <0>,这里的SOC总线频率将留给UBOOT进行填充。

现在讲完ranges和reg属性,应该好理解第55行soc8572@ffe00000,soc8572是设备名,@ffe00000是单元名,用其基地址表示该SOC是唯一的。

这里要补充一句,有人要问SOC的基地址为什么是0xffe00000,为什么不是其它的值?这里就要提到8572一个重要的寄存器CCSRBAR,这个寄存器指定了SOC的基地址,它的配置可以让8572的1M的配置控制状态寄存器组的地址实现动态设置。而寄存器CCSRBAR的值是在UBOOT中进行了设置的,显然我们这块板子的CCSRBAR=0xffe00000。其它板子也要根据具体的UBOOT设置修改我们的dts文件。

2)I2C节点

    8572的SOC有两个I2C节点,分别对应两个I2C控制器,以前一个为例

这里device_type和compatible是规定设置。reg = <3000 100>表示I2C控制器的寄存器地址在SOC子系统内的偏移地址为0x3000~0x3100,别忘了在转成

🔄 变更实施与上线执行流程 🕒 0. 时间预估 项目 日期 计划完成US测试日期 — 计划完成内部Showcase日期 — 计划完成客户Showcase日期 — 计划完成集成测试日期 — 计划完成冒烟测试日期 — 计划完成内部评审日期 — 计划完成产品层评审日期 — 计划完成客户侧评审日期 — 计划实施变更日期 — 📋 1. 产品层变更范围评审 邮件内容:开发输出上线清单的影响评估分析 📥 2. 版本转集成测试申请 邮件内容:测试根据影响评估审视集成用例覆盖 ✅ 3. 需求上线自检 Checklist 类别 内容 版本发布Checklist - 需求交付率(DTS单 包含上一个迭代集成遗留问题【beta】、本次story测试问题【alpha】、现网问题【gamma】) - 代码检视缺陷密度【5,8,10】DI/KLOC - 版本遗留DI<10(整个OMP项目) - 测试缺陷密度【4,6,8】DI/KLOC 上线需求自检Checklist - US及其文件归档信息 - 有文件归档的DTS单信息 上线问题影响评估 - 上一个迭代集成遗留问题(beta) - 本次story测试问题(alpha) - 现网问题(gamma) - 本次集成测试问题单(非现网问题,迭代X-beta) 遗留问题分析 - 分析版本遗留问题 遗留事项跟踪 - 跟踪版本遗留事项 🧾 4. 现网事项评审 要求 内容 1 仅纯修数纳入 2 如果包含存储过程、表字段更改,非OMP系统配置统一纳入【补丁版本】,不纳入【现网事项】 3 OMP系统配置可与相关负责人沟通后直接执行,无需提变更单 4 现网事项必须考虑是否入湖 🛠️ 5. 脚本收集、脚本检视、脚本执行计划内部评审、自动化演练 活动 说明 脚本演练 堡垒机事项也需演练,可使用测试数据库执行 执行计划检视 脚本执行计划必须经过内部检视 📅 6. 执行计划内部评审 执行计划必须在产品层评审后上传至OMP群空间 📄 7. 变更材料编写、变更单草稿准备 获取版本号 流水线打包 转发布库 填写变更单草稿 📬 8. OPM内部评审、产品层内部评审、客户评审、变更申请邮件 🛠️ 9. 变更实施 📝 实施准备 任务 内容 会议预订 预订变更实施会议,发给相关负责人 会议信息 - 会议链接 - 是否需要授予堡垒机权限 - 是否需要授予S3桶权限 审批流程 - 找负责人审批 - 负责人:变更负责人 📌 执行事项 任务 内容 OPM内部记录 在【OPM内部小组】记录问题事项 开发/测试留守 - 所有人默认需留守支撑发版 - 有事者需委托并知会主管 - 测试负责人安排测试留守人员 📞 10. 客户沟通与验证 @变更负责人 @评审负责人 @实施负责人 @测试负责人 变更已实施 请各自验证相关事项 验证OK后,及时与用户沟通闭环 @测试负责人 可以开始变更验证 📨 11. 测试验证报告邮件(TC) ✅ 12. 关闭变更单 任务 内容 通知变更负责人 - OMP-补丁版本-20250507已发布完成且验证OK - 变更单号:CHG25042801331(已关单) 通知变更沟通组 - OMP-版本发布-20250507 - 变更单号:CHG25042801331 - 已验证完成,变更已关单 会议结束 组织变更全体会议,宣布变更关闭 📂 13. 版本上线记录 任务 内容 导出US 将本次迭代所有US导出(测试空间+OPM空间) 导出问题单 将本次迭代所有问题单导出(测试空间+OPM空间) 遗留事项补充 - 补充上一个迭代遗留事项是否已解决 - 补充本次迭代遗留事项 🔄 14. 后续事项处理 任务 内容 US和DTS归档 将本次迭代的US及DTS状态更新为完成和关闭 分支处理 - OPMG:uat分支合入dev/master/prod/hotfix分支,无差异特性分支打tag后删除 - OPMExport:uat分支合入dev/master/hotfix分支,无差异特性分支打tag后删除 - OPMHelp:uat分支合入dev/master分支 - WE码:uat分支合入opm-we/master分支,无差异特性分支打tag后删除 现网问题闭环 与客服对齐现网问题修复情况 发版问题回溯 测试负责人组织AAR回溯 遗留事项处理 @负责人 请具体分析后提单优化 问题单与US检查 - OPM在PI-2024交付周期,涉及29个IR、344个US,已全部走至完成 📦 版本发布事项安排说明 🚀 上线前 序号 任务内容 责任人 1 上线版本代码集中检视 姚君 2 脚本归档、汇总演练、脚本检视 姚君 3 上线文档归档及初步审视 周炳智 4 系统配置文档审视及汇总 周炳智 5 问题单影响分析及一致性评审 廖子谦 6 跑流水线、转包、转发布库 周炳智 7 测试报告、验证清单 范鸿洁 8 Checklist指标统计、变更材料、变更单、执行计划编排 廖子谦 🛠️ 上线实施 任务 内容 责任人 执行变更 按计划执行变更 廖子谦 组织验证 组织变更后验证 范鸿洁 发送报告 发送变更验证报告 范鸿洁 关闭变更 关闭变更单 廖子谦 负责人:廖子谦 / 乐斌海 📅 上线后 序号 任务内容 责任人 1 登记版本上线记录 廖子谦 2 上线US及DTS走到完成和关闭 范鸿洁 3 上线代码分支合并及处理 姚君 4 上线修复的现网问题,与客服对齐闭环 周炳智 📋 OPM内部事项安排说明 📅 每日例行事项 任务 内容 责任人 1 每日例行与客服对齐当日现网问题、事件单、差评单的进展 周炳智 2 评估事项风险、跟进提单、事项闭环等 周炳智 🛠️ 运维事项跟踪 任务 内容 责任人 1 和负责人对齐具体的运维事项,初步分析处理方案 姚君 2 预估处理工作量、评估风险及任务安排建议,反馈给PM协调人力、资源 姚君 3 运维US的内部验收 姚君 🗃️ DB事项管理及跟踪 任务 内容 责任人 1 审视内部DB变更、脚本评审、修数评审等DB操作 姚君 2 上线脚本归档演练、组织检视 姚君 🌊 数据湖事项对接 任务 内容 责任人 1 数据湖咨询对接及数据表/字段入湖申请事项 徐闻鸿 📐 规范要求 序号 规范内容 1 集成测试之前在UAT让测试按文档部署 2 测试反串讲让测试在转测之前评审 不要更改我的内容,帮我简洁整理并输出
09-24
--- 🕒 **0. 时间预估** 计划完成US测试日期 — 计划完成内部Showcase日期 — 计划完成客户Showcase日期 — 计划完成集成测试日期 — 计划完成冒烟测试日期 — 计划完成内部评审日期 — 计划完成产品层评审日期 — 计划完成客户侧评审日期 — 计划实施变更日期 — --- 📋 **1. 产品层变更范围评审** 开发团队需输出上线清单,并附影响评估分析邮件,供产品层评审。 --- 📥 **2. 版本转集成测试申请** 测试团队根据影响评估内容,审视集成测试用例的覆盖完整性。 --- ✅ **3. 需求上线自检 Checklist** - **版本发布Checklist** - 确保需求交付率达标,涵盖上一迭代遗留问题(beta)、本次story测试问题(alpha)、现网问题(gamma) - 代码检视缺陷密度控制在【5,8,10】DI/KLOC范围内 - 整个OMP项目版本遗留DI < 10 - 测试缺陷密度控制在【4,6,8】DI/KLOC范围内 - **上线需求自检** - 所有用户故事(US)及相关文件完成归档 - 涉及DTS单的信息已完成文件归档 - **上线问题影响评估** - 上一个迭代集成遗留问题(beta) - 本次story测试问题(alpha) - 现网问题(gamma) - 本次集成测试中的问题单(非现网,标记为迭代X-beta) - **遗留问题分析** - 对当前版本的遗留问题进行详细分析 - **遗留事项跟踪** - 建立并维护版本遗留事项的跟踪机制 --- 🧾 **4. 现网事项评审要求** 1. 仅允许纯数据修正类操作纳入“现网事项” 2. 若涉及存储过程或表字段更改,且非OMP系统配置,统一纳入“补丁版本”,不得作为现网事项执行 3. OMP系统配置类变更可与相关负责人沟通后直接执行,无需提交变更单 4. 所有现网事项必须评估是否需要同步入湖 --- 🛠️ **5. 脚本收集、检视与演练** - 完成脚本的集中收集和代码检视 - 制定脚本执行计划并通过内部评审 - 开展自动化演练,包括堡垒机操作演练,可使用测试数据库模拟执行 --- 📅 **6. 执行计划内部评审** 脚本执行计划须在产品层评审完成后上传至OMP群空间存档。 --- 📄 **7. 变更材料编写与变更单准备** - 获取正式版本号 - 执行流水线打包 - 将包转入发布库 - 编写变更材料并填写变更单草稿 --- 📬 **8. 各层级评审与变更申请邮件** 依次完成:OPM内部评审 → 产品层内部评审 → 客户评审 → 发送变更申请邮件 --- 🛠️ **9. 变更实施准备** **实施前任务:** - 预订变更实施会议,并通知所有相关负责人 - 提供会议链接,明确是否需授予堡垒机或S3桶权限 - 提交审批流程,由变更负责人完成审批 **执行中事项:** - 在【OPM内部小组】实时记录变更过程中的问题 - 开发与测试人员默认需留守支撑发版,如有特殊情况需委托他人并报备主管 - 测试负责人负责安排测试留守人员 --- 📞 **10. 客户沟通与验证** @变更负责人 @评审负责人 @实施负责人 @测试负责人 - 通知“变更已实施”,请各方启动验证 - 验证通过后及时与用户沟通闭环 - @测试负责人:可开始组织变更后验证工作 --- 📨 **11. 测试验证报告邮件(TC)** 测试负责人发送变更验证通过的正式报告邮件。 --- ✅ **12. 关闭变更单** - **通知变更负责人** “OMP-补丁版本-20250507已发布完成且验证OK”,变更单号:CHG25042801331(已关单) - **通知变更沟通组** “OMP-版本发布-20250507” 变更单号:CHG25042801331 已验证完成,变更已关闭 - **会议结束** 组织全体成员召开变更关闭会议,宣布本次变更圆满完成 --- 📂 **13. 版本上线记录** - 导出本次迭代全部用户故事(US),涵盖测试空间与OPM空间 - 导出本次迭代全部问题单(DTS- 补充遗留事项: - 明确上一迭代遗留事项是否已解决 - 记录本次迭代新增的遗留事项 --- 🔄 **14. 后续事项处理** - **US和DTS归档** 将本次迭代所有US和DTS的状态更新为“完成”或“关闭” - **分支处理** - OPMG:将uat分支合入dev/master/prod/hotfix,无差异特性分支打tag后删除 - OPMExport:将uat分支合入dev/master/hotfix,特性分支打tag后删除 - OPMHelp:将uat分支合入dev/master - WE码:将uat分支合入opm-we/master,特性分支打tag后删除 - **现网问题闭环** 与客服团队对齐本次修复的现网问题,确保问题状态闭环 - **发版问题回溯** 测试负责人组织AAR(After Action Review)复盘会议,总结发版经验 - **遗留事项处理** @负责人 对遗留事项进行具体分析,后续提单优化 - **问题单与US检查** 在PI-2024交付周期内,共涉及29个IR、344个US,均已走完流程至完成状态 --- 📦 **版本发布事项安排说明** 🚀 **上线前任务** 1. 上线版本代码集中检视 —— 姚君 2. 脚本归档、汇总演练、脚本检视 —— 姚君 3. 上线文档归档及初步审视 —— 周炳智 4. 系统配置文档审视及汇总 —— 周炳智 5. 问题单影响分析及一致性评审 —— 廖子谦 6. 跑流水线、转包、转发布库 —— 周炳智 7. 测试报告、验证清单编制 —— 范鸿洁 8. Checklist指标统计、变更材料撰写、执行计划编排 —— 廖子谦 🛠️ **上线实施任务** - 执行变更:按计划执行变更操作 —— 廖子谦 - 组织验证:协调各方开展变更后验证 —— 范鸿洁 - 发送报告:发出变更验证通过报告 —— 范鸿洁 - 关闭变更:完成变更单关闭流程 —— 廖子谦 📌 总体负责人:廖子谦 / 乐斌海 📅 **上线后任务** 1. 登记版本上线记录 —— 廖子谦 2. 将上线相关的US及DTS状态更新为完成或关闭 —— 范鸿洁 3. 完成上线代码分支的合并与清理 —— 姚君 4. 与客服对齐上线修复的现网问题,推动闭环 —— 周炳智 --- 📋 **OPM内部事项安排说明** 📅 **每日例行事项** - 每日与客服对齐当日现网问题、事件单、差评单的处理进展 —— 周炳智 - 持续评估事项风险,跟进提单进度,推动事项闭环 —— 周炳智 🛠️ **运维事项跟踪** - 与负责人对齐具体运维事项,初步制定处理方案 —— 姚君 - 预估处理工作量,评估风险,向PM反馈人力与资源需求 —— 姚君 - 负责运维相关US的内部验收 —— 姚君 🗃️ **DB事项管理及跟踪** - 审视内部数据库变更,组织脚本评审、修数评审等操作 —— 姚君 - 负责上线脚本的归档、演练及组织检视 —— 姚君 🌊 **数据湖事项对接** - 负责数据湖相关咨询对接,以及数据表/字段入湖申请事宜 —— 徐闻鸿 --- 📐 **规范要求** 1. 集成测试前,必须在UAT环境由测试团队按照部署文档完成部署 2. 转测前必须完成测试反串讲,并由测试团队评审确认 帮我转为md格式,排版紧凑点
最新发布
09-26
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值