About DMA mem and IO Server

Taeung treeze.taeung at gmail.com
Mon May 12 09:34:53 CEST 2014


Thanks Martin :-)

Referencing website link which you give me , I'm trying to secure 
Ethernet on L4Linux.
I've got eth0 and configure ip address, netmask , etc.
But if I do 'ping 8.8.8.8' for test, error occur such as 'Error 
connecting: Network is unreachable'.

I suspect that the problem is about DMA mem.

As below , there is 'WARNING: phys mmio resource allocation failed' log 
message..
What is the problem ?
May this problem be the reason why network is unreachable  ?

========================
..(omitted)..

IO      | Io service
IO      | Verboseness level: 4
IO      | unused physical memory space:
IO      |   [00000001000000-0000000fffffff]
IO      |   [00000050000000-000000ffffffff]
IO      | Loading: config 'rom/imx6q.io'
*IO      | WARNING: phys mmio resource allocation failed**
**IO      | <0x1bf18>IOMEM [00000010426000-000000104a5fff 80000] 
non-pref (32bit) (align=7ffff flags=c002)**
**IO      | WARNING: phys mmio resource allocation failed**
**IO      | <0x1bf18>IOMEM [00000010426000-000000104a5fff 80000] 
non-pref (32bit) (align=7ffff flags=c002)*
IO      | P6Device: l4linux ""
IO      |   P6Device: (noname) "L40009"
IO      |   P6Device: imx6q-fec.dev0 "imx6q-fec.0"
IO      | <0x14678>    IOMEM   [00000002188000-0000000218bfff 4000] 
non-pref (32bit) (align=3fff flags=4002)
IO      | <0x1be28>    IRQ     [00000000000096-00000000000096 1] none 
(32bit) (align=0 flags=4001)
IO      |   P6Device: dmamem "dmamem"
IO      | <0x1bf18>    IOMEM   [00000010426000-000000104a5fff 80000] 
non-pref (32bit) (align=7ffff flags=c002)

..(omitted)..
========================

I'd appreciate whoever give me hints.

- Taeung -


On 05/10/2014 06:39 PM, Martin Schröder wrote:
> Hi Taeung,
> this DMAMEM block is mandatory for devices writing/reading directly 
> into/from RAM.
>
> Maybe you'll have a look into another board patchset:
> http://fooprotected.wordpress.com/2012/04/12/l4linux-patch-for-mv643xx-ethernet/ 
>
>
> and also here:
> https://github.com/Ksys-labs/L4Reap/blob/master/files/gumstix-fb-l4l.io
>
>
>
> Best regards,
>    Martin
>
>
> Am 09.05.2014 19:34, TaeWoong Song schrieb:
>> Thanks for your advice ,Martin !!
>>
>> I understand what you mean.
>> So, I'm modify source code according to imx6's single Ethernet.
>>
>> Up to now, FEC Ethernet Driver has been initialized and eth0 has been 
>> secured in L4Linux.
>> But I didn't succeed it yet.
>>
>> Do I have to need to get DMAMEM  ?
>> Or, is it fine that I omit DMAMEM ?
>>
>> However, your patch has been being very helpful to me.
>> I'll continue securing Ethernet in L4 Linux.
>>
>> - Taeung -
>>
>> On May 9, 2014, at 10:12 PM, Martin Schröder <mschroeder at web.de> wrote:
>>
>>> Just a short addidion:
>>> I just had a short look into the freescale spec: The i.MX6 you are 
>>> using has only a single Ethernet, my i.MX28 has dual Ethernet. So 
>>> you can skip everything I wrote abot the second PHY connected to the 
>>> MDIO bus of the first FEC. And you can also remove all lines related 
>>> to the Dummy-PHY (your Question 5) and turn CONFIG_FIXED_PHY off.
>>>
>>> Best regards,
>>>      Martin
>>>
>>>
>>> Gesendet: Mittwoch, 07. Mai 2014 um 16:57 Uhr
>>> Von: "Martin Schröder" <mschroeder at web.de>
>>> An: Taeung <treeze.taeung at gmail.com>
>>> Betreff: Re: May I ask you questions about your path?
>>> Am 07.05.2014 16:08, schrieb Taeung:> Hi, Martin :-)
>>>>
>>>> Sorry, I take up your time.
>>>
>>> no problem :-)
>>>
>>>> May I ask you questions about your path?
>>>>
>>>> Question 1. In 'imx28.io' file , what mean 'DMAMEM' and 'new-res
>>>> Mmio_ram()' ?
>>>>
>>>> I know that 'Mmio()' need arguments which are start and end address.
>>>> But, I don't know 'Mmio_ram()'.
>>>
>>> I already answered your question on the list :-)
>>>
>>> you'll find also another reference in the list-archive:
>>>
>>> <20111117204103.GC13416 at os.inf.tu-dresden.de>
>>> Am 17.11.2011 21:41, schrieb Adam Lackorzynski:> On Thu Nov 17, 2011 
>>> at 12:49:31 +0400, Sartakov A. Vasily wrote:
>>>>> So..
>>>>> usb host via ehci uses dma and i have problem in 
>>>>> pool_alloc_page(mm/dmapool.c):
>>>>> dma_alloc_coherent (arhc/l4/mm/) returns 0, cos l4x_dma_mem_alloc
>>>>> returns 0 too.
>>>>
>>>> I guess you need to put some 'dmamem' onto your vbus:
>>>>
>>>> DMAMEM => new Device()
>>>> {
>>>> .hid = "dmamem";
>>>> new-res Mmio_ram(<size-in-bytes>, 0);
>>>> }
>>>>
>>>>
>>>>
>>>> Adam
>>>>
>>>
>>>> Question 2. What is namespace 'shmns' ?
>>>>
>>>> local shmns = loader:create_namespace({shmns = "shmns"}); (line 69)
>>>> shmns = shmns:mode("rw"), (line 89)
>>>>
>>>
>>> I am using the l4shmnet network driver to connect two l4linux 
>>> instances by a virtual network. This driver is based on shared 
>>> memory, which I assign to both instaces. You'll see the other 
>>> reference in the linux kernel command lines where this 
>>> l4shmnet.add=shmns.add=shmns,maxpart=0x12/0x14 is added.
>>>
>>>
>>>> Question 3. In fec_main.c , '#define clk_get_rate(x) 151000000' (line
>>>> 312, 349)
>>>> How do you know '151000000' ?
>>>> Do you found in imx28 data sheet or other document ?
>>>
>>> I calculated it backwards. In fec_main.c you'll find "Seet MII speed 
>>> to 2.5 Mhz (= clk_get_rate() / 2 * phy speed)". So I grabbed the 
>>> divisor (read out the memory in U-Boot) and multiplied it 
>>> accordingly to get those 2.5 Mhz. But you could also insert some 
>>> kdebug("%d\n",clk_get_rate()), compile for a native linux and insert 
>>> this value instead :-)
>>>
>>>> Question 4. At line 323, why every variables is NULL ?
>>> I have no L4-support for the clocing distribution (not within the 
>>> address space of the fec chip). So clocking the fec is done in U-Boot
>>>
>>>> Question 5. At line 260, what mean '.link' and '.speed', .duplex ?
>>> I set up a virtual "dummy" phy on the second FEC device if this is 
>>> in another L4 than the first FEC. So this phy should always report 
>>> "link up", "100 MBit/s" and "full duplex" to the ethernet driver.
>>>
>>>
>>> Martin
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20140512/3c73a2e7/attachment.html>


More information about the l4-hackers mailing list