
Dear Raffaele Recalcati,
In message 1300267039-3607-1-git-send-email-lamiaposta71@gmail.com you wrote:
From: Roberto Cerati roberto.cerati@bticino.it
The device interface is 16 bits wide. All the available packets are read from the incoming fifo.
Signed-off-by: Roberto Cerati <roberto.cerati@bticino.it Signed-off-by: Raffaele Recalcati raffaele.recalcati@bticino.it
This driver has been adapted to u-boot starting from ks8851_mll linux driver. The smsc911x u-boot has been used as reference.
TODO: smsc911x reads only one packet from incoming fifo, ks8851_mll reads all packets in the incoming fifo, but it is not checked if upper driver level (net/eth.c ?) manages more than one packet.
This driver has been tested against u-boot-2009.11-psp03.00.01.06 u-boot version present in ti-dvsdk_dm3730-evm_4_01_00_09 DVSDK. The board name is baia and is based on dm3730 soc adapted from evm-dm3730 Ti board.
We only add code to mainline that has users in mainline. Please resubmit with the patches that add support for this board. Thanks.
+/*
- Micrel KS8851_MLL 16bit Network driver
- Copyright (c) 2011 Roberto Cerati roberto.cerati@bticino.it
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
Also, U-Boot requires the v2 or later clause, please see bullet # 3 at http://www.denx.de/wiki/view/U-Boot/Patches#Attributing_Code_Copyrights_Sign
+static u8 ks_rdreg8(struct eth_device *dev, u16 offset) +{
- volatile u16 *hw_addr = (u16 *)(dev->iobase);
- volatile u16 *hw_addr_cmd = (u16 *)(dev->iobase + 2);
- u16 data;
- u8 shift_bit = offset & 0x03;
- u8 shift_data = (offset & 1) << 3;
- *hw_addr_cmd = offset | (u16)(BE0 << shift_bit);
- data = *hw_addr;
And please get rid of all these volatile declarations and use proper I/O accessors instead.
Before resubmitting, make sure to run checkpatch.
Best regards,
Wolfgang Denk