Good news, The FDT works. For testing purposes, I used a different DTB file provided by raspberrpi foundation. It has a different structure than the DTB from FreeBSD, so I modified the initialization code a little bit, but anyhow it works, the registers are initialized from the DTB file. But they are virtual addresses we need to offset them before initializing the registers.
(gdb) p pl011_context $23 = {base = {lock = {interrupt = {<No data fields>}, mutex = {_Queue = {_Lock = {_next_ticket = 0, _now_serving = 0}, _heads = 0x0, _owner = 0x0, _name = 0x0}}}, lock_acquire = 0x2095d1 <rtems_termios_device_lock_acquire_default>, lock_release = 0x2095e1 <rtems_termios_device_lock_release_default>},* regs = 0x7e201000*, irq = 0, initial_baud = 0} (gdb) I will add the offset function, and send in the patch. I am also planning to replace a manual search with fdt_node_offset_by_compatible.
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel