(
fdt: &mut FdtWriter,
dev_info: &T,
)
| 270 | } |
| 271 | |
| 272 | fn create_serial_node<T: DeviceInfoForFdt + Clone + Debug>( |
| 273 | fdt: &mut FdtWriter, |
| 274 | dev_info: &T, |
| 275 | ) -> FdtWriterResult<()> { |
| 276 | let serial_reg_prop = [dev_info.addr(), dev_info.length()]; |
| 277 | let irq = [dev_info.irq() - IRQ_BASE, IRQ_TYPE_LEVEL_HI]; |
| 278 | |
| 279 | let serial_node = fdt.begin_node(&format!("serial@{:x}", dev_info.addr()))?; |
| 280 | fdt.property_string("compatible", "ns16550a")?; |
| 281 | fdt.property_array_u64("reg", &serial_reg_prop)?; |
| 282 | fdt.property_u32("clock-frequency", 3686400)?; |
| 283 | fdt.property_u32("interrupt-parent", AIA_APLIC_PHANDLE)?; |
| 284 | fdt.property_array_u32("interrupts", &irq)?; |
| 285 | fdt.end_node(serial_node)?; |
| 286 | |
| 287 | Ok(()) |
| 288 | } |
| 289 | |
| 290 | fn create_devices_node<T: DeviceInfoForFdt + Clone + Debug, S: ::std::hash::BuildHasher>( |
| 291 | fdt: &mut FdtWriter, |
no test coverage detected