Hello: I tried to map the hpet iomem to the virtual memory but i got some error. The log is as following: vtimer | rmgr_pager 4:0 vtimer | hpet_address 0xfed00000 vtimer | hpet size 0x400000 vtimer | hpet_virt_address 0x400000 ROOT: Cannot map page at fed00000 log2_size=12 failed vtimer | IOMem mapping error : No fpage received vtimer | __handle_pf(): L4RM: page fault: no entry in region list vtimer | L4RM: [PF] read at 0x00400000, ip 0100024e, src 8.02 It seems that when I map the iomem the pagesize is not permitted but superpagesize is ok. But i still get the error as "No fpage received". Does anybody tell me what the problem is? Thanks. Cheng Guanghui
Hi,
On Tue Nov 03, 2009 at 23:37:12 +0800, Guanghui, Cheng wrote:
I tried to map the hpet iomem to the virtual memory but i got some error. The log is as following: vtimer | rmgr_pager 4:0 vtimer | hpet_address 0xfed00000 vtimer | hpet size 0x400000 vtimer | hpet_virt_address 0x400000 ROOT: Cannot map page at fed00000 log2_size=12 failed vtimer | IOMem mapping error : No fpage received vtimer | __handle_pf(): L4RM: page fault: no entry in region list vtimer | L4RM: [PF] read at 0x00400000, ip 0100024e, src 8.02 It seems that when I map the iomem the pagesize is not permitted but superpagesize is ok. But i still get the error as "No fpage received". Does anybody tell me what the problem is?
roottask can map non-RAM as superpages only. For getting device memory you should use and query l4io which can handle this much better. Did you try that?
Adam
On Wednesday 04 November 2009 07:28:02 Adam Lackorzynski wrote:
Hi,
On Tue Nov 03, 2009 at 23:37:12 +0800, Guanghui, Cheng wrote:
I tried to map the hpet iomem to the virtual memory but i got some error. The log is as following: vtimer | rmgr_pager 4:0 vtimer | hpet_address 0xfed00000 vtimer | hpet size 0x400000 vtimer | hpet_virt_address 0x400000 ROOT: Cannot map page at fed00000 log2_size=12 failed vtimer | IOMem mapping error : No fpage received vtimer | __handle_pf(): L4RM: page fault: no entry in region list vtimer | L4RM: [PF] read at 0x00400000, ip 0100024e, src 8.02 It seems that when I map the iomem the pagesize is not permitted but superpagesize is ok. But i still get the error as "No fpage received". Does anybody tell me what the problem is?
roottask can map non-RAM as superpages only. For getting device memory you should use and query l4io which can handle this much better. Did you try that?
i use roottask to map the non-RAM as superpages now but it can't work correctly. I try l4io to get iomem mapping today. Later i will mail to you about the this part. Thanks. Cheng Guanghui
On Wednesday 04 November 2009 07:28:02 Adam Lackorzynski wrote:
Hi,
On Tue Nov 03, 2009 at 23:37:12 +0800, Guanghui, Cheng wrote:
I tried to map the hpet iomem to the virtual memory but i got some error. The log is as following: vtimer | rmgr_pager 4:0 vtimer | hpet_address 0xfed00000 vtimer | hpet size 0x400000 vtimer | hpet_virt_address 0x400000 ROOT: Cannot map page at fed00000 log2_size=12 failed vtimer | IOMem mapping error : No fpage received vtimer | __handle_pf(): L4RM: page fault: no entry in region list vtimer | L4RM: [PF] read at 0x00400000, ip 0100024e, src 8.02 It seems that when I map the iomem the pagesize is not permitted but superpagesize is ok. But i still get the error as "No fpage received". Does anybody tell me what the problem is?
roottask can map non-RAM as superpages only. For getting device memory you should use and query l4io which can handle this much better. Did you try that?
Hello, Adam: Now i fixed l4io a little and add the hpet device after the tpm device in the l4io/server/src/static_cfg_x86.c and now i could map the hpet device into the virtual device. I could read/write the hpet device directly. This is a important progress for vtimer server implementation. If i make more i could report to you. Thanks for your kind remind. Best. Cheng Guanghui
On Wed Nov 04, 2009 at 21:11:06 +0800, Guanghui, Cheng wrote:
On Wednesday 04 November 2009 07:28:02 Adam Lackorzynski wrote:
Hi,
On Tue Nov 03, 2009 at 23:37:12 +0800, Guanghui, Cheng wrote:
I tried to map the hpet iomem to the virtual memory but i got some error. The log is as following: vtimer | rmgr_pager 4:0 vtimer | hpet_address 0xfed00000 vtimer | hpet size 0x400000 vtimer | hpet_virt_address 0x400000 ROOT: Cannot map page at fed00000 log2_size=12 failed vtimer | IOMem mapping error : No fpage received vtimer | __handle_pf(): L4RM: page fault: no entry in region list vtimer | L4RM: [PF] read at 0x00400000, ip 0100024e, src 8.02 It seems that when I map the iomem the pagesize is not permitted but superpagesize is ok. But i still get the error as "No fpage received". Does anybody tell me what the problem is?
roottask can map non-RAM as superpages only. For getting device memory you should use and query l4io which can handle this much better. Did you try that?
Hello, Adam: Now i fixed l4io a little and add the hpet device after the tpm device in the l4io/server/src/static_cfg_x86.c and now i could map the hpet device into the virtual device. I could read/write the hpet device directly. This is a important progress for vtimer server implementation. If i make more i could report to you.
Great! :)
Adam
On Thursday 05 November 2009 06:10:04 Adam Lackorzynski wrote:
On Wed Nov 04, 2009 at 21:11:06 +0800, Guanghui, Cheng wrote:
On Wednesday 04 November 2009 07:28:02 Adam Lackorzynski wrote:
Hi,
On Tue Nov 03, 2009 at 23:37:12 +0800, Guanghui, Cheng wrote:
I tried to map the hpet iomem to the virtual memory but i got some error. The log is as following: vtimer | rmgr_pager 4:0 vtimer | hpet_address 0xfed00000 vtimer | hpet size 0x400000 vtimer | hpet_virt_address 0x400000 ROOT: Cannot map page at fed00000 log2_size=12 failed vtimer | IOMem mapping error : No fpage received vtimer | __handle_pf(): L4RM: page fault: no entry in region list vtimer | L4RM: [PF] read at 0x00400000, ip 0100024e, src 8.02 It seems that when I map the iomem the pagesize is not permitted but superpagesize is ok. But i still get the error as "No fpage received". Does anybody tell me what the problem is?
roottask can map non-RAM as superpages only. For getting device memory you should use and query l4io which can handle this much better. Did you try that?
Hello, Adam: Now i fixed l4io a little and add the hpet device after the tpm device in the l4io/server/src/static_cfg_x86.c and now i could map the hpet device into the virtual device. I could read/write the hpet device directly. This is a important progress for vtimer server implementation. If i make more i could report to you.
Hello, Adam: Today I get a small progress about ipet driver for L4/Fiasco because the hpet driver i mentioned before can't output the correct value and all fields of hpet driver are 0xFFFFFFFF. Today i find that should be caused by the Intel buggy chipesets (ICH7 Family) and i also find some code could fixed it from Linux kernel code that is located in the ich_force_enable_hpet() of arch/x86/kernel/quirks.c. The solution is like this: I added two more IO resources named RCBA and HPET in the l4io/server/src/ static_cfg_x86.c as following: static l4io_desc_device_t rcba = { "RCBA", 1, { { L4IO_RESOURCE_MEM, 0xfed1c000, 0xfed1ffff } } }; static l4io_desc_device_t hpet = {"HPET", 1, { { L4IO_RESOURCE_MEM, 0xfed00000, 0xfed003ff } } }; And then i get the rcba device in the local and do the same behaviour as the ich_force_enable_hpet() does in the arch/x86/kernel/quirks.c and then get the hpet device in the local space. This time it could work and display there are 3 timers before it is 16 (F). From the Linux kernel code this problem should be in the Intel Chipsets ICH6, ICH7, ICH8, ICH9 and ICH10. But luckily the linux has fixed this problem otherwise i can't get it work. Thanks. Cheng Guanghui
Hi,
Guanghui, Cheng wrote:
Now i fixed l4io a little and add the hpet device after the tpm device in the l4io/server/src/static_cfg_x86.c and now i could map the hpet device into the virtual device. I could read/write the hpet device directly. This is a important progress for vtimer server implementation. If i make more i could report to you.
Just out of curiosity, is vtimer a special component related to your work or is it a general step towards a (working) general-purpose timer service in DROPS (which would be very nice)?
Regards, Andre
l4-hackers@os.inf.tu-dresden.de