From owner-freebsd-arm@freebsd.org Wed Aug 29 21:41:02 2018 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D5E310975C1 for ; Wed, 29 Aug 2018 21:41:02 +0000 (UTC) (envelope-from nmingotti@gmail.com) Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8FC48836BB; Wed, 29 Aug 2018 21:41:01 +0000 (UTC) (envelope-from nmingotti@gmail.com) Received: by mail-wr1-x442.google.com with SMTP id o37-v6so6147056wrf.6; Wed, 29 Aug 2018 14:41:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=7tvbPec5GBGT9wRmSlmRDxSBNrreTczCk++hFTowbV4=; b=Ey+yYMem5nLa+spVbfNI1UmgV8TNF4f9s1egN9/kQYiuhRDdjFM5tYRMBP0xSFrV/d 8IgsHchFYZ104oYinslOjneSGwd08prQ0J5qlyldRzMsXQeX4J6QgUyv8L2yppyXrI4S KAC5FX/4hNlLpjhzauWtfRAxz1RnoJwXgypNkvv0IKAPdKbP9IGj6NyfefY2SdQoycdZ vfH9GyKafJRlt4IODZuPxWgmTNdRiaXPuoB71hRRzbWjdm8WrMtTwhf+fkU9yWlrUPTx 02w4AJebGkWXNEFscEn1LcudhCwDa5/RuXyrXA/6/oV4lelzMYtZMfXmgtX8yV/UJ9N/ t+yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=7tvbPec5GBGT9wRmSlmRDxSBNrreTczCk++hFTowbV4=; b=jqLgqonnS7odDbWAG5/T+v3uriqlvIkWIZtdKIrjEEjLTt0pW9hmxrhspehi8lPAPG 4ZvNoBARZiLnJ7KEBDz3HO9dE00ijBiGQASW3MW+V25JzNmd5xzlfGoAi9oE0EwSGNfQ tQP49TdwQRJi25n4L5QPu/Etr3IhCXWqU90wSokUY9NpBxB4YdbrdE6GvIZagDXZLMD4 Ec51/8k8w5NN2mWuyFPS1b9rc63SSPvbs1Ofa9pBHEYi5UQSY4OgfzGosFrkGAIRBWus P7M4aMF0hLnYIg/y8yWPEUa8CoR18QmJ4pOcK0DpTfp0nL7AXNFpbGhWlHNsJSzzSyHr XhWw== X-Gm-Message-State: APzg51C3YlYa/sXsGhxUfR9XHcTlFFoS8WZu0lC4zSx3eJV0mA0nzZQU aGNqr8oWEkGh7/NmEbBMN+A= X-Google-Smtp-Source: ANB0VdagCWBsNqaQnL4r2ZZlRgtxJeByXRgose9ypyAH+VSA+Cqs8zl8844myprTJO4UF45gMb3W8A== X-Received: by 2002:adf:9d1c:: with SMTP id k28-v6mr5948640wre.104.1535578860479; Wed, 29 Aug 2018 14:41:00 -0700 (PDT) Received: from [172.16.0.150] (net-188-219-105-237.cust.vodafonedsl.it. [188.219.105.237]) by smtp.gmail.com with ESMTPSA id t4-v6sm7859948wrb.45.2018.08.29.14.40.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Aug 2018 14:40:59 -0700 (PDT) Subject: Re: utility for pin in BBB: PX.Y --> pin_mode, pin_name To: Ian Lepore , Russell Haley Cc: freebsd-arm , Nicola Mingotti References: <4661fc41-935a-56d5-2cc2-125085daf30a@gmail.com> <1535568374.33841.47.camel@freebsd.org> <1535576856.33841.58.camel@freebsd.org> From: Nicola Mingotti Message-ID: Date: Wed, 29 Aug 2018 23:40:58 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <1535576856.33841.58.camel@freebsd.org> Content-Language: en-US Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.27 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Aug 2018 21:41:02 -0000 On 08/29/18 23:07, Ian Lepore wrote: > On Wed, 2018-08-29 at 22:26 +0200, Nicola Mingotti wrote: >> On 08/29/18 20:46, Ian Lepore wrote: >>> On Wed, 2018-08-29 at 20:01 +0200, Nicola Mingotti wrote: >>>> Thank you for suggestion Russel, >>>> >>>> but unfortunately, at best of my knowldege, >>>> $> man 3 gpio_open >>>> and its shell command brother >>>> $> man 8 gpioctl >>>> >>>> are not appropriate, they are useful only if a pin >>>> has been configured as GPIO pin. >>>> >>>> The program i look for would be useful instead to esablish >>>> which physical pin has been configured as GPIO pin or >>>> PWM, PRU, I2C etc. >>>> >>>> I asked also in the Forum, but the only one aswering >>>> (@Phishry) has given me your same suggestion. >>>> >>>> If nobody knows of such a program i will start the >>>> implementation, >>>> maybe >>>> tomorrow. >>>> >>>> bye >>>> Nicola >>>> >>> Please bottom-post when replying to freebsd mailing lists. >> ok ! >>> There is no interface defined for getting an fdt_pinctrl driver to >>> return info about the current configuration. Even if such an >>> interface >>> existed, there would also need to be a new driver providing a cdev >>> so >>> that userland can access the information. >> ok, no interface. >>> There is also nothing in freebsd equivelent to the linux devmem2 >>> program. A driver would have to be written to provide access to >>> device- >>> mapped memory before such a program could be written. You can't >>> access >>> arm hardware registers via /dev/mem or /dev/kmem. >>> >>> -- Ian >> I just compiled devmem2 and it seems to work. I did silly >> modifications. >> The code is here: http://euriscom.it/data/dm2.c >> (forget the first comment lines, they are poor, I did not intend to >> share this, it is my working copy) >> >> if i run it: >> --------------------------------- >> #> ./dm2 0x44e10998 b >> /dev/mem opened. >> Memory mapped at address 0x20221000. >> Value at address 0x44E10998 (0x20221998): 0x5 >> --------------------------------- >> >> Whic corresponds to what i wrote in the DTO. >> ----- >>             pru_pru_pins: pinmux_pru_pru_pins { >>                        pinctrl-single,pins = < >>                            // 0x1a4 0x05   /* P9.27 >> pr1_pru0_pru_r30_5, >> Mode 5 output pull-down   */ >>                            0x19c 0x26   /* P9.28 pr1_pru0_pru_r31_3, >> Mode 6 input pull-down    */ >>                            0x198 0x05    /* PRU0-2 -- P9.30 -- >> pr1_pru0_pru_r30_2 ... se in MODE-5  */ >>                            >; >>                    }; >> ----- >> >> This is the only test i made but it seems improbable I got the same >> value by chance;) >> >> It goes without saying that I don't understand all what i wrote, >> so, i could be boldly wrong ;) >> >> If it turns out it works let me know, i can make the port. >> >> bye >> n. > You might accidentally get /dev/mem access to work, but it's not by > design. The rules of the arm memory model forbid mapping the same > physical memory to different virtual addresses using different > attributes (normal cacheable memory versus Device memory), and I don't > see anything in the arm devmem code that handles memory attributes. > > -- Ian I would like to discuss more this thing but really, i am too ignorant on this subject. What i can say is this, I learnt to use devmem2 from D.Molloy book "Exploring BeagleBone", see pg. 218. The author says this way "bypasses the Linux OS". I used the thing in Linux, it works, as it seems to do in FreeBSD-12-APLHA. If can tell you also I remember i used it one day in FreeBSD-11.1, it was working. I don't have the background to go deeper. If you can understand why it works and establish that it is realiable (even only for reading) let me (us) know ! ;) bye n. -- -------------------------- Dr. Nicola Mingotti R&D - Borghi Srl CTO - BondInsider --------------------------