linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Using GPIO
@ 2008-05-15 16:35 Guillaume Dargaud
  2008-05-15 18:39 ` John Bonesio
  0 siblings, 1 reply; 10+ messages in thread
From: Guillaume Dargaud @ 2008-05-15 16:35 UTC (permalink / raw)
  To: linuxppc-dev

Hello all,
I'm trying to use the Xilinx GPIO from a user program.
Since I haven't managed to compile their example (simon.c is given without a 
makefile), I wanted to try using /dev/gpio...

So I added
/dev/gpio0  c  666  0  0  10  185 -  -  -
to device_table.txt when I generated my root filesystem with buildroot, but 
apparently this leads nowhere as it's not visible in /proc/devices.

Is there some example or tutorial on how to use CONFIG_XILINX_GPIO ? Either 
as a device or as API calls...
-- 
Guillaume Dargaud
http://www.gdargaud.net/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: Using GPIO
  2008-05-15 16:35 Guillaume Dargaud
@ 2008-05-15 18:39 ` John Bonesio
  2008-05-15 18:56   ` Stephen Neuendorffer
  2008-05-16  8:15   ` Guillaume Dargaud
  0 siblings, 2 replies; 10+ messages in thread
From: John Bonesio @ 2008-05-15 18:39 UTC (permalink / raw)
  To: Guillaume Dargaud, linuxppc-dev


Hi Guillaume,

If you're using arch/powerpc, my understanding is that
CONFIG_XILINX_GPIO needs to be enabled as well as having the right info
in the dts file.

Right now I'll have to defer to others to tell you what's needed in the
dts file.

If you're using arch/ppc, I believe you just need CONFIG_XILINX_GPIO
enabled.

When the system boots up, you see a message on the console when the GPIO
driver initializes.

This is not exactly a tutorial. Hopefully this still helps,

- John

-----Original Message-----
From: linuxppc-dev-bounces+john.bonesio=3Dxilinx.com@ozlabs.org
[mailto:linuxppc-dev-bounces+john.bonesio=3Dxilinx.com@ozlabs.org] On
Behalf Of Guillaume Dargaud
Sent: Thursday, May 15, 2008 9:35 AM
To: linuxppc-dev@ozlabs.org
Subject: Using GPIO

Hello all,
I'm trying to use the Xilinx GPIO from a user program.
Since I haven't managed to compile their example (simon.c is given
without a=20
makefile), I wanted to try using /dev/gpio...

So I added
/dev/gpio0  c  666  0  0  10  185 -  -  -
to device_table.txt when I generated my root filesystem with buildroot,
but=20
apparently this leads nowhere as it's not visible in /proc/devices.

Is there some example or tutorial on how to use CONFIG_XILINX_GPIO ?
Either=20
as a device or as API calls...
--=20
Guillaume Dargaud
http://www.gdargaud.net/


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


This email and any attachments are intended for the sole use of the named=
 recipient(s) and contain(s) confidential information that may be=
 proprietary, privileged or copyrighted under applicable law. If you are=
 not the intended recipient, do not read, copy, or forward this email=
 message or any attachments. Delete this email message and any attachments=
 immediately.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: Using GPIO
  2008-05-15 18:39 ` John Bonesio
@ 2008-05-15 18:56   ` Stephen Neuendorffer
  2008-05-16  8:15   ` Guillaume Dargaud
  1 sibling, 0 replies; 10+ messages in thread
From: Stephen Neuendorffer @ 2008-05-15 18:56 UTC (permalink / raw)
  To: John Bonesio, Guillaume Dargaud, linuxppc-dev



I don't think the GPIO driver has device tree bindings yet in the driver
for ARCH=3Dpowerpc.

Steve

> -----Original Message-----
> From: linuxppc-dev-bounces+stephen.neuendorffer=3Dxilinx.com@ozlabs.org
[mailto:linuxppc-dev-
> bounces+stephen.neuendorffer=3Dxilinx.com@ozlabs.org] On Behalf Of John
Bonesio
> Sent: Thursday, May 15, 2008 11:39 AM
> To: Guillaume Dargaud; linuxppc-dev@ozlabs.org
> Subject: RE: Using GPIO
>=20
>=20
> Hi Guillaume,
>=20
> If you're using arch/powerpc, my understanding is that
> CONFIG_XILINX_GPIO needs to be enabled as well as having the right
info
> in the dts file.
>=20
> Right now I'll have to defer to others to tell you what's needed in
the
> dts file.
>=20
> If you're using arch/ppc, I believe you just need CONFIG_XILINX_GPIO
> enabled.
>=20
> When the system boots up, you see a message on the console when the
GPIO
> driver initializes.
>=20
> This is not exactly a tutorial. Hopefully this still helps,
>=20
> - John
>=20
> -----Original Message-----
> From: linuxppc-dev-bounces+john.bonesio=3Dxilinx.com@ozlabs.org
> [mailto:linuxppc-dev-bounces+john.bonesio=3Dxilinx.com@ozlabs.org] On
> Behalf Of Guillaume Dargaud
> Sent: Thursday, May 15, 2008 9:35 AM
> To: linuxppc-dev@ozlabs.org
> Subject: Using GPIO
>=20
> Hello all,
> I'm trying to use the Xilinx GPIO from a user program.
> Since I haven't managed to compile their example (simon.c is given
> without a
> makefile), I wanted to try using /dev/gpio...
>=20
> So I added
> /dev/gpio0  c  666  0  0  10  185 -  -  -
> to device_table.txt when I generated my root filesystem with
buildroot,
> but
> apparently this leads nowhere as it's not visible in /proc/devices.
>=20
> Is there some example or tutorial on how to use CONFIG_XILINX_GPIO ?
> Either
> as a device or as API calls...
> --
> Guillaume Dargaud
> http://www.gdargaud.net/
>=20
>=20
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>=20
>=20
> This email and any attachments are intended for the sole use of the
named recipient(s) and contain(s)
> confidential information that may be proprietary, privileged or
copyrighted under applicable law. If
> you are not the intended recipient, do not read, copy, or forward this
email message or any
> attachments. Delete this email message and any attachments
immediately.
>=20
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev


This email and any attachments are intended for the sole use of the named=
 recipient(s) and contain(s) confidential information that may be=
 proprietary, privileged or copyrighted under applicable law. If you are=
 not the intended recipient, do not read, copy, or forward this email=
 message or any attachments. Delete this email message and any attachments=
 immediately.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Using GPIO
  2008-05-15 18:39 ` John Bonesio
  2008-05-15 18:56   ` Stephen Neuendorffer
@ 2008-05-16  8:15   ` Guillaume Dargaud
  2008-05-16 16:17     ` John Linn
  1 sibling, 1 reply; 10+ messages in thread
From: Guillaume Dargaud @ 2008-05-16  8:15 UTC (permalink / raw)
  To: linuxppc-dev

> If you're using arch/powerpc, my understanding is that
> CONFIG_XILINX_GPIO needs to be enabled as well as having the right info
> in the dts file.

I'm using arch/ppc, so excuse my ignorance but what are dts files ?
I see arch/powerpc/boot/dts/ml405.dts in the kernel tree which would need 
some changes, but it looks like a generated file. Generated by what ?

> If you're using arch/ppc, I believe you just need CONFIG_XILINX_GPIO
> enabled.
> When the system boots up, you see a message on the console when the GPIO
> driver initializes.

That's what I'm trying to use, but there's no gpio info in the messages.
Here's a copy:

Linux version 2.6.25-rc9 (someone@somewhere.in.summertime) (gcc version 
4.1.2) #27 Thu May 15 18:40:17 CEST 2008
Xilinx Generic PowerPC board support package (Xilinx ML405) (Virtex-4 FX)
Entering add_active_range(0, 0, 32768) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->    32768
  Normal      32768 ->    32768
Movable zone start PFN for each node
active PFN ranges
    0:        0 ->    32768
On node 0 totalpages: 32768
  DMA zone: 256 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 32512 pages, LIFO batch:7
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttyUL0,115200 rw root=/dev/nfs ip=bootp
Xilinx INTC #0 at 0x81800000 mapped to 0xFDFFF000
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 127872k available (1516k kernel code, 460k data, 80k init, 0k 
highmem)
Calibrating delay loop... 298.40 BogoMIPS (lpj=496640)
Mount-cache hash table entries: 512
net_namespace: 152 bytes
NET: Registered protocol family 16
Registering device uartlite:0
Registering device xsysace:0
Fixup MAC address for xilinx_lltemac:0
Registering device xilinx_lltemac:0
Registering device xilinx_iic:0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
io scheduler noop registered (default)
uartlite.0: ttyUL0 at MMIO 0x84000003 (irq = 8) is a uartlite
enabled
loop: module loaded
xsysace xsa: Xilinx SystemACE revision 1.0.12
xsysace xsa: capacity: 1014048 sectors
 xsa: xsa1 xsa2
Xilinx SystemACE device driver, major=254
xilinx_lltemac xilinx_lltemac.0: MAC address is now  0: a:35: 1: 2: 3
xilinx_lltemac xilinx_lltemac.0: XLlTemac: using DMA mode.
XLlTemac: Dma base address: phy: 0x84600100, virt: 0xc9008100
XLlTemac: buffer descriptor size: 32768 (0x8000)
XLlTemac: Allocating DMA descriptors with kmalloc<6>XLlTemac: 
(buffer_descriptor_init) phy: 0x7ca8000, virt: 0xc7ca8000, size: 0x8000
XTemac: PHY detected at address 7.
eth0: Dropping NETIF_F_SG since no checksum feature.
xilinx_lltemac xilinx_lltemac.0: eth0: Xilinx TEMAC at 0x81C00000 mapped to 
0xC9004000, irq=2
mice: PS/2 mouse device common for all mice
xilinx_iic.0 #0 at 0x81600000 mapped to 0xC9020000, irq=4
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
eth0: XLlTemac: Options: 0x3fa
eth0: XLlTemac: allocating interrupt 0 for dma mode tx.
eth0: XLlTemac: allocating interrupt 1 for dma mode rx.
eth0: XLlTemac: speed set to 100Mb/s
eth0: XLlTemac: Send Threshold = 24, Receive Threshold = 4
eth0: XLlTemac: Send Wait bound = 254, Receive Wait bound = 254
Sending BOOTP requests . OK
IP-Config: Got BOOTP answer from 192.168.1.185, my address is 192.168.1.200
IP-Config: Complete:
     device=eth0, addr=192.168.1.200, mask=255.255.255.0, gw=192.168.1.185,
     host=genepy, domain=, nis-domain=(none),
     bootserver=192.168.1.185, rootserver=192.168.1.185, 
rootpath=/media/rootfs
Looking up port of RPC 100003/2 on 192.168.1.185
Looking up port of RPC 100005/1 on 192.168.1.185
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 80k init
...and the boot proceeds fine.

And a cleaned-up .config:
CONFIG_WORD_SIZE=32
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_PPC=y
CONFIG_PPC32=y
CONFIG_GENERIC_NVRAM=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_GENERIC_BUG=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOG_BUF_SHIFT=14
CONFIG_NAMESPACES=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_KPROBES=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_BLOCK=y
CONFIG_IOSCHED_NOOP=y
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
CONFIG_CLASSIC_RCU=y
CONFIG_40x=y
CONFIG_PPC_DCR_NATIVE=y
CONFIG_PPC_DCR=y
CONFIG_KEXEC=y
CONFIG_4xx=y
CONFIG_XILINX_ML405=y
CONFIG_IBM405_ERR77=y
CONFIG_IBM405_ERR51=y
CONFIG_XILINX_MLxxx=y
CONFIG_XILINX_VIRTEX_4_FX=y
CONFIG_XILINX_VIRTEX=y
CONFIG_XILINX_EMBED_CONFIG=y
CONFIG_EMBEDDEDBOOT=y
CONFIG_PPC_GEN550=y
CONFIG_UART0_TTYS0=y
CONFIG_NOT_COHERENT_CACHE=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_HZ_300=y
CONFIG_HZ=300
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_BINFMT_ELF=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="console=ttyUL0,115200 rw root=/dev/nfs ip=bootp"
CONFIG_ISA_DMA_API=y
CONFIG_ZONE_DMA=y
CONFIG_HIGHMEM_START=0xfe000000
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0x80000000
CONFIG_CONSISTENT_START=0xff100000
CONFIG_CONSISTENT_SIZE=0x00200000
CONFIG_BOOT_LOAD=0x00400000
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_XILINX_SYSACE=y
CONFIG_XILINX_DRIVERS=y
CONFIG_NEED_XILINX_LLDMA=y
CONFIG_HAVE_IDE=y
CONFIG_NETDEVICES=y
CONFIG_NETDEV_1000=y
CONFIG_XILINX_LLTEMAC=y
CONFIG_XILINX_LLTEMAC_MARVELL_88E1111_GMII=y
CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_UARTLITE=y
CONFIG_SERIAL_UARTLITE_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_XILINX_GPIO=y
CONFIG_XILINX_HWICAP=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_XILINX_IIC=y
CONFIG_SSB_POSSIBLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_XILINX_EDK=y
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_CONFIGFS_FS=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_MSDOS_PARTITION=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_PRINTK_TIME=y
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
-- 
Guillaume Dargaud
http://www.gdargaud.net/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: Using GPIO
  2008-05-16  8:15   ` Guillaume Dargaud
@ 2008-05-16 16:17     ` John Linn
  2008-05-19 11:56       ` Guillaume Dargaud
  0 siblings, 1 reply; 10+ messages in thread
From: John Linn @ 2008-05-16 16:17 UTC (permalink / raw)
  To: Guillaume Dargaud, linuxppc-dev

Hi,

Dts files are not used with arch/ppc.  =


In arch/ppc, the drivers that are in the system depend on the
arch/ppc/platforms/4xx/xparameters/xparameters_ml405.h to setup the
addresses of the devices and their configuration.

I looked at the ML405 setup in the git tree and it appears that it would
need to be added to arch/ppc/syslib/virtex_devices.c. The platform data
in virtex_devices.c must include the GPIO for it to be probed correctly.
It should be easy for you to add the data to make it work. =


I see a GPIO in the xparameters*.h for the LEDs. =


Thanks,
John

-----Original Message-----
From: linuxppc-dev-bounces+john.linn=3Dxilinx.com@ozlabs.org
[mailto:linuxppc-dev-bounces+john.linn=3Dxilinx.com@ozlabs.org] On Behalf
Of Guillaume Dargaud
Sent: Friday, May 16, 2008 2:16 AM
To: linuxppc-dev@ozlabs.org
Subject: Re: Using GPIO

> If you're using arch/powerpc, my understanding is that
> CONFIG_XILINX_GPIO needs to be enabled as well as having the right
info
> in the dts file.

I'm using arch/ppc, so excuse my ignorance but what are dts files ?
I see arch/powerpc/boot/dts/ml405.dts in the kernel tree which would
need =

some changes, but it looks like a generated file. Generated by what ?

> If you're using arch/ppc, I believe you just need CONFIG_XILINX_GPIO
> enabled.
> When the system boots up, you see a message on the console when the
GPIO
> driver initializes.

That's what I'm trying to use, but there's no gpio info in the messages.
Here's a copy:

Linux version 2.6.25-rc9 (someone@somewhere.in.summertime) (gcc version =

4.1.2) #27 Thu May 15 18:40:17 CEST 2008
Xilinx Generic PowerPC board support package (Xilinx ML405) (Virtex-4
FX)
Entering add_active_range(0, 0, 32768) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->    32768
  Normal      32768 ->    32768
Movable zone start PFN for each node
active PFN ranges
    0:        0 ->    32768
On node 0 totalpages: 32768
  DMA zone: 256 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 32512 pages, LIFO batch:7
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
Built 1 zonelists in Zone order, mobility grouping on.  Total pages:
32512
Kernel command line: console=3DttyUL0,115200 rw root=3D/dev/nfs ip=3Dbootp
Xilinx INTC #0 at 0x81800000 mapped to 0xFDFFF000
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 127872k available (1516k kernel code, 460k data, 80k init, 0k =

highmem)
Calibrating delay loop... 298.40 BogoMIPS (lpj=3D496640)
Mount-cache hash table entries: 512
net_namespace: 152 bytes
NET: Registered protocol family 16
Registering device uartlite:0
Registering device xsysace:0
Fixup MAC address for xilinx_lltemac:0
Registering device xilinx_lltemac:0
Registering device xilinx_iic:0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
io scheduler noop registered (default)
uartlite.0: ttyUL0 at MMIO 0x84000003 (irq =3D 8) is a uartlite
enabled
loop: module loaded
xsysace xsa: Xilinx SystemACE revision 1.0.12
xsysace xsa: capacity: 1014048 sectors
 xsa: xsa1 xsa2
Xilinx SystemACE device driver, major=3D254
xilinx_lltemac xilinx_lltemac.0: MAC address is now  0: a:35: 1: 2: 3
xilinx_lltemac xilinx_lltemac.0: XLlTemac: using DMA mode.
XLlTemac: Dma base address: phy: 0x84600100, virt: 0xc9008100
XLlTemac: buffer descriptor size: 32768 (0x8000)
XLlTemac: Allocating DMA descriptors with kmalloc<6>XLlTemac: =

(buffer_descriptor_init) phy: 0x7ca8000, virt: 0xc7ca8000, size: 0x8000
XTemac: PHY detected at address 7.
eth0: Dropping NETIF_F_SG since no checksum feature.
xilinx_lltemac xilinx_lltemac.0: eth0: Xilinx TEMAC at 0x81C00000 mapped
to =

0xC9004000, irq=3D2
mice: PS/2 mouse device common for all mice
xilinx_iic.0 #0 at 0x81600000 mapped to 0xC9020000, irq=3D4
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
eth0: XLlTemac: Options: 0x3fa
eth0: XLlTemac: allocating interrupt 0 for dma mode tx.
eth0: XLlTemac: allocating interrupt 1 for dma mode rx.
eth0: XLlTemac: speed set to 100Mb/s
eth0: XLlTemac: Send Threshold =3D 24, Receive Threshold =3D 4
eth0: XLlTemac: Send Wait bound =3D 254, Receive Wait bound =3D 254
Sending BOOTP requests . OK
IP-Config: Got BOOTP answer from 192.168.1.185, my address is
192.168.1.200
IP-Config: Complete:
     device=3Deth0, addr=3D192.168.1.200, mask=3D255.255.255.0,
gw=3D192.168.1.185,
     host=3Dgenepy, domain=3D, nis-domain=3D(none),
     bootserver=3D192.168.1.185, rootserver=3D192.168.1.185, =

rootpath=3D/media/rootfs
Looking up port of RPC 100003/2 on 192.168.1.185
Looking up port of RPC 100005/1 on 192.168.1.185
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 80k init
...and the boot proceeds fine.

And a cleaned-up .config:
CONFIG_WORD_SIZE=3D32
CONFIG_MMU=3Dy
CONFIG_GENERIC_HARDIRQS=3Dy
CONFIG_RWSEM_XCHGADD_ALGORITHM=3Dy
CONFIG_ARCH_HAS_ILOG2_U32=3Dy
CONFIG_GENERIC_HWEIGHT=3Dy
CONFIG_GENERIC_CALIBRATE_DELAY=3Dy
CONFIG_PPC=3Dy
CONFIG_PPC32=3Dy
CONFIG_GENERIC_NVRAM=3Dy
CONFIG_GENERIC_FIND_NEXT_BIT=3Dy
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=3Dy
CONFIG_ARCH_MAY_HAVE_PC_FDC=3Dy
CONFIG_GENERIC_BUG=3Dy
CONFIG_DEFCONFIG_LIST=3D"/lib/modules/$UNAME_RELEASE/.config"
CONFIG_EXPERIMENTAL=3Dy
CONFIG_BROKEN_ON_SMP=3Dy
CONFIG_INIT_ENV_ARG_LIMIT=3D32
CONFIG_LOCALVERSION=3D""
CONFIG_LOG_BUF_SHIFT=3D14
CONFIG_NAMESPACES=3Dy
CONFIG_CC_OPTIMIZE_FOR_SIZE=3Dy
CONFIG_SYSCTL=3Dy
CONFIG_SYSCTL_SYSCALL=3Dy
CONFIG_KALLSYMS=3Dy
CONFIG_HOTPLUG=3Dy
CONFIG_PRINTK=3Dy
CONFIG_BUG=3Dy
CONFIG_ELF_CORE=3Dy
CONFIG_COMPAT_BRK=3Dy
CONFIG_BASE_FULL=3Dy
CONFIG_FUTEX=3Dy
CONFIG_ANON_INODES=3Dy
CONFIG_EPOLL=3Dy
CONFIG_SIGNALFD=3Dy
CONFIG_TIMERFD=3Dy
CONFIG_EVENTFD=3Dy
CONFIG_SHMEM=3Dy
CONFIG_VM_EVENT_COUNTERS=3Dy
CONFIG_SLAB=3Dy
CONFIG_HAVE_OPROFILE=3Dy
CONFIG_HAVE_KPROBES=3Dy
CONFIG_PROC_PAGE_MONITOR=3Dy
CONFIG_SLABINFO=3Dy
CONFIG_RT_MUTEXES=3Dy
CONFIG_BASE_SMALL=3D0
CONFIG_BLOCK=3Dy
CONFIG_IOSCHED_NOOP=3Dy
CONFIG_DEFAULT_NOOP=3Dy
CONFIG_DEFAULT_IOSCHED=3D"noop"
CONFIG_CLASSIC_RCU=3Dy
CONFIG_40x=3Dy
CONFIG_PPC_DCR_NATIVE=3Dy
CONFIG_PPC_DCR=3Dy
CONFIG_KEXEC=3Dy
CONFIG_4xx=3Dy
CONFIG_XILINX_ML405=3Dy
CONFIG_IBM405_ERR77=3Dy
CONFIG_IBM405_ERR51=3Dy
CONFIG_XILINX_MLxxx=3Dy
CONFIG_XILINX_VIRTEX_4_FX=3Dy
CONFIG_XILINX_VIRTEX=3Dy
CONFIG_XILINX_EMBED_CONFIG=3Dy
CONFIG_EMBEDDEDBOOT=3Dy
CONFIG_PPC_GEN550=3Dy
CONFIG_UART0_TTYS0=3Dy
CONFIG_NOT_COHERENT_CACHE=3Dy
CONFIG_ARCH_POPULATES_NODE_MAP=3Dy
CONFIG_HZ_300=3Dy
CONFIG_HZ=3D300
CONFIG_PREEMPT_VOLUNTARY=3Dy
CONFIG_SELECT_MEMORY_MODEL=3Dy
CONFIG_FLATMEM_MANUAL=3Dy
CONFIG_FLATMEM=3Dy
CONFIG_FLAT_NODE_MEM_MAP=3Dy
CONFIG_SPLIT_PTLOCK_CPUS=3D4
CONFIG_ZONE_DMA_FLAG=3D1
CONFIG_BOUNCE=3Dy
CONFIG_VIRT_TO_BUS=3Dy
CONFIG_BINFMT_ELF=3Dy
CONFIG_CMDLINE_BOOL=3Dy
CONFIG_CMDLINE=3D"console=3DttyUL0,115200 rw root=3D/dev/nfs ip=3Dbootp"
CONFIG_ISA_DMA_API=3Dy
CONFIG_ZONE_DMA=3Dy
CONFIG_HIGHMEM_START=3D0xfe000000
CONFIG_LOWMEM_SIZE=3D0x30000000
CONFIG_KERNEL_START=3D0xc0000000
CONFIG_TASK_SIZE=3D0x80000000
CONFIG_CONSISTENT_START=3D0xff100000
CONFIG_CONSISTENT_SIZE=3D0x00200000
CONFIG_BOOT_LOAD=3D0x00400000
CONFIG_NET=3Dy
CONFIG_PACKET=3Dy
CONFIG_PACKET_MMAP=3Dy
CONFIG_UNIX=3Dy
CONFIG_INET=3Dy
CONFIG_IP_FIB_HASH=3Dy
CONFIG_IP_PNP=3Dy
CONFIG_IP_PNP_DHCP=3Dy
CONFIG_IP_PNP_BOOTP=3Dy
CONFIG_TCP_CONG_CUBIC=3Dy
CONFIG_DEFAULT_TCP_CONG=3D"cubic"
CONFIG_UEVENT_HELPER_PATH=3D"/sbin/hotplug"
CONFIG_STANDALONE=3Dy
CONFIG_PREVENT_FIRMWARE_BUILD=3Dy
CONFIG_BLK_DEV=3Dy
CONFIG_BLK_DEV_LOOP=3Dy
CONFIG_XILINX_SYSACE=3Dy
CONFIG_XILINX_DRIVERS=3Dy
CONFIG_NEED_XILINX_LLDMA=3Dy
CONFIG_HAVE_IDE=3Dy
CONFIG_NETDEVICES=3Dy
CONFIG_NETDEV_1000=3Dy
CONFIG_XILINX_LLTEMAC=3Dy
CONFIG_XILINX_LLTEMAC_MARVELL_88E1111_GMII=3Dy
CONFIG_INPUT=3Dy
CONFIG_INPUT_MOUSEDEV=3Dy
CONFIG_INPUT_MOUSEDEV_SCREEN_X=3D1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=3D768
CONFIG_VT=3Dy
CONFIG_VT_CONSOLE=3Dy
CONFIG_HW_CONSOLE=3Dy
CONFIG_SERIAL_UARTLITE=3Dy
CONFIG_SERIAL_UARTLITE_CONSOLE=3Dy
CONFIG_SERIAL_CORE=3Dy
CONFIG_SERIAL_CORE_CONSOLE=3Dy
CONFIG_UNIX98_PTYS=3Dy
CONFIG_XILINX_GPIO=3Dy
CONFIG_XILINX_HWICAP=3Dy
CONFIG_I2C=3Dy
CONFIG_I2C_BOARDINFO=3Dy
CONFIG_XILINX_IIC=3Dy
CONFIG_SSB_POSSIBLE=3Dy
CONFIG_DUMMY_CONSOLE=3Dy
CONFIG_XILINX_EDK=3Dy
CONFIG_PROC_FS=3Dy
CONFIG_PROC_KCORE=3Dy
CONFIG_PROC_SYSCTL=3Dy
CONFIG_SYSFS=3Dy
CONFIG_CONFIGFS_FS=3Dy
CONFIG_NETWORK_FILESYSTEMS=3Dy
CONFIG_NFS_FS=3Dy
CONFIG_NFS_V3=3Dy
CONFIG_ROOT_NFS=3Dy
CONFIG_LOCKD=3Dy
CONFIG_LOCKD_V4=3Dy
CONFIG_NFS_COMMON=3Dy
CONFIG_SUNRPC=3Dy
CONFIG_MSDOS_PARTITION=3Dy
CONFIG_PLIST=3Dy
CONFIG_HAS_IOMEM=3Dy
CONFIG_HAS_IOPORT=3Dy
CONFIG_HAS_DMA=3Dy
CONFIG_PRINTK_TIME=3Dy
CONFIG_ENABLE_WARN_DEPRECATED=3Dy
CONFIG_ENABLE_MUST_CHECK=3Dy
CONFIG_DEBUG_KERNEL=3Dy
CONFIG_DETECT_SOFTLOCKUP=3Dy
CONFIG_SCHED_DEBUG=3Dy
CONFIG_DEBUG_MUTEXES=3Dy
CONFIG_DEBUG_BUGVERBOSE=3Dy
CONFIG_DEBUG_INFO=3Dy
-- =

Guillaume Dargaud
http://www.gdargaud.net/


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


This email and any attachments are intended for the sole use of the named r=
ecipient(s) and contain(s) confidential information that may be proprietary=
, privileged or copyrighted under applicable law. If you are not the intend=
ed recipient, do not read, copy, or forward this email message or any attac=
hments. Delete this email message and any attachments immediately.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Using GPIO
  2008-05-16 16:17     ` John Linn
@ 2008-05-19 11:56       ` Guillaume Dargaud
  2008-05-19 13:42         ` Josh Boyer
  0 siblings, 1 reply; 10+ messages in thread
From: Guillaume Dargaud @ 2008-05-19 11:56 UTC (permalink / raw)
  To: linuxppc-dev

Thanks for the answer,

> Dts files are not used with arch/ppc.
My question was more general, since arch/ppc will soon (?) disapear...

> In arch/ppc, the drivers that are in the system depend on the
> arch/ppc/platforms/4xx/xparameters/xparameters_ml405.h to setup the
> addresses of the devices and their configuration.
Yes, and I've taken care to define that.

> I looked at the ML405 setup in the git tree and it appears that it would
> need to be added to arch/ppc/syslib/virtex_devices.c. The platform data
> in virtex_devices.c must include the GPIO for it to be probed correctly.
> It should be easy for you to add the data to make it work.

Seems straightforward enough, but when I add the following:

// 0 is LEDS_4BIT, 1 is LEDS_POSITIONS, 2 is PUSH_BUTTONS_POSITION
#define XPAR_GPIO(num) { \
    .name = "xilinx_gpio", \
    .id = num, \
    .num_resources = 3, \
    .resource = (struct resource[]) { \
        { \
            .start = XPAR_GPIO_##num##_BASEADDR, \
            .end = XPAR_GPIO_##num##_HIGHADDR, \
            .flags = IORESOURCE_MEM, \
        }, \
        { \
            .start = XPAR_INTC_0_GPIO_##num##_VEC_ID, \
            .flags = IORESOURCE_IRQ, \
        }, \
    }, \
}
[...]
      /* GPIO instances */
#if defined(XPAR_GPIO_0_BASEADDR)
      XPAR_GPIO(0),
#endif
#if defined(XPAR_GPIO_1_BASEADDR)
      XPAR_GPIO(1),
#endif
#if defined(XPAR_GPIO_2_BASEADDR)
      XPAR_GPIO(2),
#endif

Then the boot stops right after "Uncompressing Linux...done.
Now booting the kernel"

I've probably overlooked something obvious, but I'm pretty new in putting my 
greasy fingers on delicate kernel internals...
In particular I don't know what is this .num_resources value.
-- 
Guillaume Dargaud
http://www.gdargaud.net/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Using GPIO
  2008-05-19 11:56       ` Guillaume Dargaud
@ 2008-05-19 13:42         ` Josh Boyer
  0 siblings, 0 replies; 10+ messages in thread
From: Josh Boyer @ 2008-05-19 13:42 UTC (permalink / raw)
  To: Guillaume Dargaud; +Cc: linuxppc-dev

On Mon, 19 May 2008 13:56:12 +0200
"Guillaume Dargaud" <dargaud@lpsc.in2p3.fr> wrote:

> Thanks for the answer,
> 
> > Dts files are not used with arch/ppc.
> My question was more general, since arch/ppc will soon (?) disapear...

"Device Tree Souce" files.  See lots of examples in
arch/powerpc/boot/dts/.  Those files are used to build the device tree
binary blob for platforms that lack OpenFirmware.

josh

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Using GPIO
@ 2008-05-19 15:23 Guillaume Dargaud
  0 siblings, 0 replies; 10+ messages in thread
From: Guillaume Dargaud @ 2008-05-19 15:23 UTC (permalink / raw)
  To: linuxppc-dev

arch/ppc/syslib/virtex_devices.c:

> // 0 is LEDS_4BIT, 1 is LEDS_POSITIONS, 2 is PUSH_BUTTONS_POSITION
> #define XPAR_GPIO(num) { \
>    .name = "xilinx_gpio", \
>    .id = num, \
>    .num_resources = 2, \
That was a 2.
If anybody wants to make a patch out of those few lines of code, I couldn't 
figure out how to do this with git... But I will use a more general GPIO 
approach as soon as I can put my hands on our custom card.

>    .resource = (struct resource[]) { \
>        { \
>            .start = XPAR_GPIO_##num##_BASEADDR, \
>            .end = XPAR_GPIO_##num##_HIGHADDR, \
>            .flags = IORESOURCE_MEM, \
>        }, \
>        { \
>            .start = XPAR_INTC_0_GPIO_##num##_VEC_ID, \
>            .flags = IORESOURCE_IRQ, \
>        }, \
>    }, \
> }
> [...]
>      /* GPIO instances */
> #if defined(XPAR_GPIO_0_BASEADDR)
>      XPAR_GPIO(0),
> #endif
> #if defined(XPAR_GPIO_1_BASEADDR)
>      XPAR_GPIO(1),
> #endif
> #if defined(XPAR_GPIO_2_BASEADDR)
>      XPAR_GPIO(2),
> #endif

-- 
Guillaume Dargaud
http://www.gdargaud.net/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Using GPIO
@ 2008-06-06  7:51 Ludovic Desroches
  2008-06-06 16:09 ` Guillaume Dargaud
  0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Desroches @ 2008-06-06  7:51 UTC (permalink / raw)
  To: linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 1766 bytes --]

Hi,

I am also trying to use Xilinx GPIO driver on my board but I encounter some
problems. I thought they will be resolved with this information but it
doesn't.

I use GPIO driver as built-in but during kernel boot but I don't see log
about it contrary to Xemac driver for instance. First I wanted to create my
gpio driver normally without using Xilinx one, with ioremap and writel/readl
but I didn't write anything in the register, I don't know why. Then I tried
to use Xilinx GPIO driver but I don't know why I don't hit xgpio_probe,
xgpio_init returns 0 so it's OK.

Do you have any idea ?

Thanks

Ludovic Desroches


> arch/ppc/syslib/virtex_devices.c:
>
> >* // 0 is LEDS_4BIT, 1 is LEDS_POSITIONS, 2 is PUSH_BUTTONS_POSITION
> *>* #define XPAR_GPIO(num) { \
> *>*    .name = "xilinx_gpio", \
> *>*    .id = num, \
> *>*    .num_resources = 2, \
> *That was a 2.
> If anybody wants to make a patch out of those few lines of code, I couldn't
> figure out how to do this with git... But I will use a more general GPIO
> approach as soon as I can put my hands on our custom card.
>
> >*    .resource = (struct resource[]) { \
> *>*        { \
> *>*            .start = XPAR_GPIO_##num##_BASEADDR, \
> *>*            .end = XPAR_GPIO_##num##_HIGHADDR, \
> *>*            .flags = IORESOURCE_MEM, \
> *>*        }, \
> *>*        { \
> *>*            .start = XPAR_INTC_0_GPIO_##num##_VEC_ID, \
> *>*            .flags = IORESOURCE_IRQ, \
> *>*        }, \
> *>*    }, \
> *>* }
> *>* [...]
> *>*      /* GPIO instances */
> *>* #if defined(XPAR_GPIO_0_BASEADDR)
> *>*      XPAR_GPIO(0),
> *>* #endif
> *>* #if defined(XPAR_GPIO_1_BASEADDR)
> *>*      XPAR_GPIO(1),
> *>* #endif
> *>* #if defined(XPAR_GPIO_2_BASEADDR)
> *>*      XPAR_GPIO(2),
> *>* #endif
> *
>
>

[-- Attachment #2: Type: text/html, Size: 2293 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Using GPIO
  2008-06-06  7:51 Ludovic Desroches
@ 2008-06-06 16:09 ` Guillaume Dargaud
  0 siblings, 0 replies; 10+ messages in thread
From: Guillaume Dargaud @ 2008-06-06 16:09 UTC (permalink / raw)
  To: linuxppc-dev

I think there are some more details in my notes:
https://lpsc-secure.in2p3.fr/trac/akido/wiki/CrossCompile#GettingGPIOtoworkinuserspace


> I am also trying to use Xilinx GPIO driver on my board but I encounter 
> some
> problems. I thought they will be resolved with this information but it 
> doesn't.
-- 
Guillaume Dargaud
http://www.gdargaud.net/

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2008-06-06 16:09 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-19 15:23 Using GPIO Guillaume Dargaud
  -- strict thread matches above, loose matches on Subject: below --
2008-06-06  7:51 Ludovic Desroches
2008-06-06 16:09 ` Guillaume Dargaud
2008-05-15 16:35 Guillaume Dargaud
2008-05-15 18:39 ` John Bonesio
2008-05-15 18:56   ` Stephen Neuendorffer
2008-05-16  8:15   ` Guillaume Dargaud
2008-05-16 16:17     ` John Linn
2008-05-19 11:56       ` Guillaume Dargaud
2008-05-19 13:42         ` Josh Boyer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).