note that the am335x port does not enable all
of the hardware blocks by default. Some of
the hardware blocks are enabled by the bootloader
before sel4 runs, but not all of them.
See the attached patch, which includes code
in enableTimers for powering on addtional timer
hardware blocks (required for running the refos port
on am335x). You may need to use similar
code to enable your uart block if it is not enabled.
Tim
On Fri, Oct 2, 2015 at 12:42 PM, Jeff Hieb
Alex,
Thanks, that worked to fix the device frame error. Still working on the driver.
It seems like the device frame is not "bound" to the physical memory?
Here is what is printed while the kernel is loading that relates to the frame (I think).
(pd_drv_group_bin, pt_drv_group_bin_2, 300000, 0) (frame_drv_group_bin_42, pd_drv_group_bin, rights=3, vaddr=300000, vm_attribs=2).
I checked that 300000 is what camkes passed through to my component as "mem", but I am so far unable to get the UART to respond using reads and writes to mem + offset.
Is there some additional code I need to add somewhere or should reads and writes to (mem + offset) write to physical memory?
Thanks,
Jeff
Jeffrey L. Hieb Department of Engineering Fundamentals University of Louisville Louisville Kentucky 40292 (502) 852 0465
On 9/27/2015 9:34 AM, Alexander Kroh wrote:
Hi Jeff,
seL4 populates the bootinfo structure for the root process.
MMIO frame production is a data driven process using the following data structure:
FYI, the physical address of device frames are defined here:
If the uart device that you are attempting to use is not in the list, feel free to add it.
- Alex
________________________________________ From: Devel [devel-bounces@sel4.systems] on behalf of Jeff Hieb [ jlhieb01@louisville.edu] Sent: Sunday, 27 September 2015 23:07 To: devel@sel4.systems Subject: [seL4] Camkes MMIO Driver Failed to find device frame
I am working on a UART device driver in camkes for AM335x.
When I load the image on the board I get this error:
Creating object frame_drv_group_bin_42 in slot 596, from untyped 1f6... device frame, paddr = 0x48022000, size = 12 bits
capDL-loader :: << Error: Failed to find device frame at paddr = 0x48022000
I am reasonably confident the address is correct, ( https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_seL4_libplatsupport_blob_master_plat-5Finclude_am335x_platsupport_plat_serial.h-23L15&d=AwIFAg&c=SgMrq23dbjbGX6e0ZsSHgEZX6A4IAf1SO3AJ2bNrHlk&r=vxDfYJYhOaaufTHzA3yxVVn--9Yf3Ig5TrUiTFGL8pc&m=xES3WJjaY0BbvKig8sNNQD6C8RdHjP2OrtyIzDDzCSQ&s=BmKsuwNLcBX2ucG5br_2EA3628PcqbPWzIh-yLbsVM0&e= )
Looking at the source It seems capDL-Loader wants to find this device frame in bootinfo
Any help on how capDL-loader builds bootinfo would be appreciated.
Jeff
-- Jeffrey L. Hieb Department of Engineering Fundamentals University of Louisville Louisville Kentucky 40292 (502) 852 0465
_______________________________________________ Devel mailing list Devel@sel4.systems
________________________________
The information in this e-mail may be confidential and subject to legal professional privilege and/or copyright. National ICT Australia Limited accepts no liability for any damage caused by this email or its attachments.
_______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel
-- Tim Newsham | www.thenewsh.com/~newsham | @newshtwit | thenewsh.blogspot.com