
+Tom
On 14 Apr 2015 12:11 pm, "Simon Glass" sjg@chromium.org wrote:
Hi Tom,
Here are the driver model changes that have been queued up on u-boot-dm/next. The main changes are:
- Ethernet driver model support
- USB driver model support
- PCI driver model support
- Network cosmetic changes
- Masahiro's driver model Kconfig changes
- Chromebox panther support
- Moving cros_ec fully to driver model
- Moving various sandbox CONFIGs to Kconfig
Since this has wide impact on the code base I'd like to get this in early in the merge window to minimise the pain of rebase, etc.
The following changes since commit
f33cdaa4c3da4a8fd35aa2f9a3172f31cc887b35:
Prepare v2015.04 (2015-04-13 10:53:03 -0400)
are available in the git repository at:
http://git.denx.de/u-boot-dm.git
for you to fetch changes up to 5ab83ec1a13601c4f76ce009afe0d1ee51f1ad9c:
sandbox: exynos: Move CONFIG_SOUND_SANDBOX to Kconfig (2015-04-13 20:53:47 -0600)
Haikun.Wang@freescale.com (5): dm: arm: Bring in skeleton64 device tree file from Linux dm: ls1021a: dts: Update DSPI node to support DM SPI dm: ls1021a: dts: Add QSPI dts node dm: spi: Convert Freescale DSPI driver to driver model dm: spi: Convert Freescale QSPI driver to driver model
Joe Hershberger (51): test: dm: Reorder the objects to build common: Make sure arch-specific map_sysmem() is defined net: Provide a function to get the current MAC address net: Rename helper function to be more clear net: Remove unneeded "extern" in net.h net: Refactor in preparation for driver model net: Change return codes from net/eth.c to use errorno constants net: Use int instead of u8 for boolean flag net: Remove the bd* parameter from net stack functions net: Make netretry actually do something net: Access mapped physmem in net functions cmd: net: Clean up return codes dm: eth: Add basic driver model support to Ethernet stack net: Clean up network stack names used in DM drivers dm: eth: Pass the packet pointer as a parameter to recv sandbox: eth: Add network support to sandbox sandbox: eth: Add ARP and PING response to sandbox driver test: dm: eth: Add tests for the eth dm implementation dm: eth: Add support for aliases dm: eth: Add support for ethprime env var test: dm: eth: Add testing for ethrotate env var sandbox: eth: Add ability to disable ping reply in sandbox eth
driver
test: dm: net: Add a test of the netretry behavior sandbox: eth: Add a bridge to a real network for sandbox sandbox: Enable DHCP and IP defrag sandbox: eth: Add support for using the 'lo' interface net: Improve error handling dm: eth: Provide a way for drivers to manage packet buffers net: cosmetic: Change IPaddr_t to struct in_addr net: cosmetic: Fixup var names related to boot file net: cosmetic: Fixup var names for DHCP strings net: cosmetic: Name ethaddr variables consistently net: cosmetic: Cleanup internal packet buffer names net: cosmetic: Fix var naming net <-> eth drivers net: cosmetic: Clean up TFTP variables and functions net: cosmetic: Clean up ARP variables and functions net: cosmetic: Clean up DHCP variables and functions net: cosmetic: Clean up NFS variables and functions net: cosmetic: Clean up RARP variables and functions net: cosmetic: Clean up SNTP variables and functions net: cosmetic: Clean up ping variables and functions net: cosmetic: Clean up CDP variables and functions net: cosmetic: Clean up DNS variables and functions net: cosmetic: Clean up netconsole variables and functions net: cosmetic: Clean up cmd_net variables and functions net: cosmetic: Fix checkpatch.pl failures in linklocal net: cosmetic: Fix checkpatch.pl failures in eth.c net: cosmetic: Fix checkpatch.pl failures in net.h net: cosmetic: Fix checkpatch.pl failures in net.c net: Fix compile errors when SNTP enabled and not DATE sandbox: Enable more network features for sandbox
Masahiro Yamada (12): dm: spi_flash: fix wrong dependency dm: select CONFIG_DM* options ARM: UniPhier: use "select" instead of default value in defconfig ARM: zynq: use "select" instead of default value in defconfig ARM: rmobile: use "select" instead of default value in defconfig ARM: snapper9260: use "select" instead of default value in defconfig ARM: mx6: use "select" instead of default value in defconfig ARM: socfpga: use "select" instead of default value in defconfig ARM: bav335x: use "select" instead of default value in defconfig ARM: stv0991: use "select" instead of default value in defconfig ARM: cm_fx6: use "select" instead of default value in defconfig powerpc: ids8313: use "select" instead of default value in defconfig
Przemyslaw Marczak (3): dm: gpio: request list: return the count if requests max_count
reached
Kconfig: i2c: fix help message related to dm i2c dm: i2c: add i2c-gpio driver
Sergey Temerkhanov (2): net: Fix incorrect DHCP/BOOTP packets on 64-bit systems net: Convert protocol structures to use explicit sizes
Simon Glass (145): x86: Support machines with >4GB of RAM x86: video: Allow keyboard presence to be controlled by device tree x86: pci: Add PCI IDs for lynxpoint x86: spi: Add support for lynxpoint x86: Move common Chromebook config into a separate file x86: Add support for panther (Asus Chromebox) sandbox: Update device tree 'reg' properties for I2C and SPI fdt: Export fdtdec_get_number() for general use x86: Add a x86_ prefix to the x86-specific PCI functions dm: Add a new CPU init function which can use driver model x86: Split up arch_cpu_init() Correct map_sysmem() logic in do_mem_mw() fdt: Tighten up error handling in fdtdec_get_pci_addr() dm: core: Add dev_get_uclass_priv() to access uclass private data dm: core: Mark device as active before calling its probe() method dm: core: Add a uclass pre_probe() method for devices dm: Show both allocated and requested seq numbers in 'dm uclass' dm: pci: Move common PCI functions into their own file dm: pci: Add a uclass for PCI dm: sandbox: pci: Add PCI support for sandbox dm: sandbox: Add a simple PCI driver dm: sandbox: pci: Add a PCI emulation uclass dm: sandbox: Add a emulated PCI device as an example dm: sandbox: pci: Enable PCI for sandbox dm: x86: pci: Add a PCI driver for driver model dm: x86: pci: Convert coreboot to use driver model for pci dm: x86: pci: Convert chromebook_link to use driver model for pci dm: pci: Add driver model tests for PCI dm: sf: Add driver model read/write/erase methods dm: x86: spi: Convert ICH SPI driver to driver model dm: x86: Add a uclass for a Platform Controller Hub dm: x86: Add a uclass for an Low Pin Count (LPC) device x86: chromebook_link: dts: Add PCH and LPC devices dm: cros_ec: Convert cros_ec LPC driver to driver model cros_ec: Reinit the cros_ec device when 'crosec init' is used cros_ec: Drop unused CONFIG_DM_CROS_EC sandbox: cros_ec: Drop unnecessary init x86: cros_ec: Drop unnecessary init exynos: cros_ec: Drop unnecessary init cros_ec: Remove unused cros_ec_board_init() function fdt: cros_ec: Drop compatible string in fdtdec fdt: Drop LPC compatible string in fdtdec cros_ec: exynos: Match up device tree with kernel version sandbox: cros_ec: Add Kconfig for sandbox EC config i8042: Add keyboard enable logic in kbd_reset() linker_lists: Add a function to access a linker list entry sandbox: Fix comment for os_open() dm: test: bus: Use a local variable to simplify code dm: core: Support allocating driver-private data for DMA dm: core: Convert driver_bind() to use const dm: core: Rename driver data function to dev_get_driver_data() dm: core: Mark device as active before calling uclass probe()
methods
dm: core: Add device children and sibling functions dm: gpio: Add an implementation for gpio_get_number() dm: usb: Add a uclass for USB controllers dm: usb: Adjust usb command to prepare for driver model dm: usb: Adjust usb_alloc_new_device() to return an error dm: usb: Convert 'usb' command to support driver model dm: usb: Drop the legacy USB init sequence dm: usb: Refactor port resets dm: usb: Move descriptor setup code into its own function dm: usb: Split out more code from usb_new_device() dm: usb: Complete the splitting up of usb_new_device() dm: usb: Convert core usb.c file to support driver model dm: usb: Split hub detection into its own function dm: usb: Add driver model support for hubs dm: usb: Move USB storage definitions to usb_defs.h dm: usb: Fix type problems in usb_stor_get_info() dm: usb: Simply device finding code in usb_storage dm: usb: Adjust usb_storage to work with sandbox dm: usb: Move storage device scanning into its own function dm: usb: Convert usb_storage to driver model dm: usb: Move all the EHCI weak functions together and declare them dm: usb: Pass EHCI controller pointer to ehci_get_port_speed() dm: usb: Allow ECHI to hold private data for the controller dm: usb: tegra: Store the controller type explicitly dm: usb: Pass EHCI controller pointer to ehci_powerup_fixup() dm: usb: tegra: Drop use of global controller variable dm: usb: Pass EHCI controller pointer to ehci_set_usbmode() dm: usb: Pass EHCI controller pointer to ehci_get_portsc_register() dm: usb: ehci: Use a function to find the controller from struct
udevice
dm: usb: Refactor EHCI init dm: usb: Drop the EHCI weak functions dm: usb: Change ehci_reset() to use a pointer dm: usb: Add driver model support to EHCI dm: usb: Allow USB drivers to be declared and auto-probed dm: usb: Bind generic USB devices when there is no driver dm: usb: Allow setting up a USB controller as a device/gadget dm: usb: Split out the keyboard probe into its own function dm: usb: Support driver model with USB keyboards dm: usb: tegra: Add vbus GPIOs for nyan dm: usb: Move struct usb_string to a common place dm: usb: sandbox: Add a uclass for USB device emulation dm: usb: sandbox: Reset emulation devices in usb stop() dm: usb: sandbox: Add an emulator for USB flash devices dm: usb: sandbox: Add an emulator for USB hub emulation dm: usb: sandbox: Add a driver for sandbox dm: usb: dts: sandbox: Add some sample USB devices to sandbox dm: usb: Add support for USB ethernet devices with driver model dm: usb: exynos: Add driver model support to exynos EHCI dm: usb: tegra: Remove the port_addr_clear_csc variable dm: usb: tegra: Tidy up error handling and a static function dm: usb: tegra: Move most of init/uninit into a function dm: usb: tegra: Add driver model support to tegra EHCI dm: usb: xhci: Use a function to get xhci_ctrl dm: usb: xhci: Use explicit parameters for xhci_alloc_virt_device() dm: usb: xhci: Use explicit parameters for
xhci_setup_addressable_virt_dev() dm: usb: xhci: Factor out common init/uninit dm: usb: Support driver model in XHCI dm: usb: Rename the XHCI HCD to U-Boot dm: usb: exynos: Adjust XHCI driver to support driver model dm: usb: exynos: Use driver model for USB dm: usb: exynos: Enable both USB ports on snow dm: usb: exynos: Enable both EHCI and XHCI on snow dm: usb: Add a generic descriptor struct dm: usb: Tidy up pipe value decoding dm: usb: sandbox: Enable USB dm: test: Correct printf() output nit in 'dm uclass' dm: test: Allow 'dm test' to select a particular test to run dm: usb: Add tests for the USB uclass dm: usb: Add a README for driver model sunxi: Replace the pcDuino3 config with FDT version Kconfig: Move CONFIG_DESIGNWARE_ETH to Kconfig dts: sunxi: Bring in Ethernet device tree bindings dm: net: Use existing Ethernet init for driver model Avoid calling print_eths() with driver model dm: net: Adjust PHY interface to work with CONFIG_DM_ETH dm: net: Tidy up designware driver ready for driver model dm: net: Adjust designware driver to support driver model dm: sunxi: Support driver model for Ethernet dm: sunxi: Use driver model for Ethernet on Linksprite pcDuino3 Kconfig: Move CONFIG_BOOTSTAGE to Kconfig sandbox: Move GPIO CONFIGs to Kconfig sandbox: Move CONFIG_SYS_VSNPRINTF to Kconfig sandbox: Move CONFIG_SYS_I2C_SANDBOX to Kconfig sandbox: Move CONFIG_SANDBOX_SPI to Kconfig sandbox: Move CONFIG_SPI_FLASH_SANDBOX to Kconfig sandbox: Move CONFIG_TPM_TIS_SANDBOX to Kconfig sandbox: exynos: Move CONFIG_SOUND to Kconfig sandbox: exynos: Move CONFIG_CMD_SOUND to Kconfig sandbox: exynos: Move CONFIG_I2S to Kconfig sandbox: exynos: Move CONFIG_I2S_SAMSUNG to Kconfig sandbox: exynos: Move CONFIG_SOUND_MAX98095 to Kconfig sandbox: exynos: Move CONFIG_SOUND_WM8994 to Kconfig sandbox: exynos: Move CONFIG_SOUND_SANDBOX to Kconfig
haikun (2): dm: ls1021a: Bring in ls1021a dts files from linux kernel dm: ls1021a: dts: Change address_cells and size_cells from 2 to 1
Makefile | 1 + README | 55 +- api/api_net.c | 2 +- arch/Kconfig | 9 + arch/arm/Kconfig | 58 ++ arch/arm/cpu/arm926ejs/spear/cpu.c | 2 +- arch/arm/cpu/armv7/exynos/Kconfig | 14 +- arch/arm/cpu/armv7/omap3/Kconfig | 27 +- arch/arm/cpu/armv7/rmobile/Kconfig | 12 + arch/arm/cpu/armv7/socfpga/misc.c | 2 +- arch/arm/dts/Makefile | 3 + arch/arm/dts/exynos5250-snow.dts | 12 +- arch/arm/dts/exynos5420-peach-pit.dts | 5 +- arch/arm/dts/exynos5800-peach-pi.dts | 4 +- arch/arm/dts/ls1021a-qds.dts | 216 +++++ arch/arm/dts/ls1021a-twr.dts | 87 ++ arch/arm/dts/ls1021a.dtsi | 381 ++++++++ arch/arm/dts/skeleton64.dtsi | 13 + arch/arm/dts/tegra124-nyan-big.dts | 2 + arch/arm/lib/board.c | 2 +- arch/arm/lib/bootm.c | 1 + arch/arm/mach-at91/Kconfig | 3 + arch/arm/mach-bcm283x/Kconfig | 9 - arch/arm/mach-davinci/misc.c | 2 +- arch/arm/mach-tegra/Kconfig | 18 - arch/avr32/lib/board.c | 2 +- arch/mips/mach-au1x00/au1x00_eth.c | 14 +- arch/nds32/lib/board.c | 2 +- arch/openrisc/lib/board.c | 2 +- arch/powerpc/cpu/mpc8260/ether_fcc.c | 22 +- arch/powerpc/cpu/mpc8260/ether_scc.c | 4 +- arch/powerpc/cpu/mpc83xx/Kconfig | 1 + arch/powerpc/cpu/mpc85xx/ether_fcc.c | 6 +- arch/powerpc/cpu/mpc8xx/fec.c | 12 +- arch/powerpc/cpu/mpc8xx/scc.c | 7 +- arch/powerpc/cpu/ppc4xx/Kconfig | 2 + arch/powerpc/lib/board.c | 2 +- arch/sandbox/Kconfig | 24 +- arch/sandbox/cpu/Makefile | 10 + arch/sandbox/cpu/cpu.c | 41 +- arch/sandbox/cpu/eth-raw-os.c | 249 ++++++ arch/sandbox/dts/cros-ec-keyboard.dtsi | 105 +++ arch/sandbox/dts/sandbox.dts | 191 ++-- arch/sandbox/include/asm/eth-raw-os.h | 40 + arch/sandbox/include/asm/eth.h | 15 + arch/sandbox/include/asm/io.h | 16 +- arch/sandbox/include/asm/processor.h | 12 + arch/sandbox/include/asm/test.h | 7 +- arch/sandbox/include/asm/u-boot-sandbox.h | 48 + arch/sandbox/lib/Makefile | 2 +- arch/sandbox/lib/pci_io.c | 138 +++ arch/sh/lib/board.c | 2 +- arch/sparc/lib/board.c | 2 +- arch/x86/Kconfig | 35 +- arch/x86/cpu/baytrail/early_uart.c | 5 +- arch/x86/cpu/coreboot/pci.c | 63 +- arch/x86/cpu/coreboot/sdram.c | 6 +- arch/x86/cpu/cpu.c | 2 +- arch/x86/cpu/ivybridge/bd82x6x.c | 47 +- arch/x86/cpu/ivybridge/cpu.c | 64 +- arch/x86/cpu/ivybridge/early_init.c | 58 +- arch/x86/cpu/ivybridge/early_me.c | 12 +- arch/x86/cpu/ivybridge/gma.c | 4 +- arch/x86/cpu/ivybridge/lpc.c | 88 +- arch/x86/cpu/ivybridge/mrccache.c | 7 +- arch/x86/cpu/ivybridge/northbridge.c | 6 +- arch/x86/cpu/ivybridge/pch.c | 4 +- arch/x86/cpu/ivybridge/pci.c | 85 +- arch/x86/cpu/ivybridge/report_platform.c | 4 +- arch/x86/cpu/ivybridge/sata.c | 61 +- arch/x86/cpu/ivybridge/sdram.c | 37 +- arch/x86/cpu/ivybridge/usb_ehci.c | 4 +- arch/x86/cpu/ivybridge/usb_xhci.c | 8 +- arch/x86/cpu/pci.c | 52 +- arch/x86/cpu/quark/quark.c | 4 +- arch/x86/cpu/queensbay/tnc.c | 4 +- arch/x86/dts/Makefile | 1 + arch/x86/dts/chromebook_link.dts | 80 +- arch/x86/dts/chromebox_panther.dts | 64 ++ arch/x86/include/asm/arch-ivybridge/bd82x6x.h | 1 - arch/x86/include/asm/arch-ivybridge/mrccache.h | 4 +- arch/x86/include/asm/pci.h | 20 +- arch/x86/lib/Makefile | 4 + arch/x86/lib/bios_interrupts.c | 12 +- arch/x86/lib/init_helpers.c | 8 - arch/x86/lib/lpc-uclass.c | 28 + arch/x86/lib/pch-uclass.c | 28 + board/BuR/common/common.c | 4 +- board/BuS/eb_cpux9k2/cpux9k2.c | 2 +- board/BuS/vl_ma2sc/vl_ma2sc.c | 2 +- board/ait/cam_enc_4xx/cam_enc_4xx.c | 2 +- board/alphaproject/ap_sh4a_4a/ap_sh4a_4a.c | 2 +- board/amcc/canyonlands/Kconfig | 6 - board/atmel/at91sam9261ek/at91sam9261ek.c | 2 +- board/bct-brettl2/bct-brettl2.c | 2 +- board/bf518f-ezbrd/bf518f-ezbrd.c | 4 +- board/bf526-ezbrd/bf526-ezbrd.c | 4 +- board/bf527-ezkit/bf527-ezkit.c | 4 +- board/bf537-minotaur/bf537-minotaur.c | 2 +- board/bf537-pnav/bf537-pnav.c | 2 +- board/bf537-srv1/bf537-srv1.c | 2 +- board/bf537-stamp/bf537-stamp.c | 4 +- board/bf609-ezkit/bf609-ezkit.c | 2 +- board/birdland/bav335x/board.c | 4 +- board/buffalo/lsxl/lsxl.c | 2 +- board/cm-bf527/cm-bf527.c | 4 +- board/cm-bf537e/cm-bf537e.c | 2 +- board/cm-bf537u/cm-bf537u.c | 2 +- board/compulab/cm_fx6/cm_fx6.c | 2 +- board/compulab/cm_t335/Kconfig | 9 - board/compulab/cm_t335/cm_t335.c | 2 +- board/compulab/cm_t35/cm_t35.c | 2 +- board/compulab/cm_t3517/cm_t3517.c | 4 +- board/compulab/cm_t54/cm_t54.c | 4 +- board/coreboot/coreboot/coreboot.c | 5 - board/davinci/da8xxevm/da850evm.c | 6 +- board/dnp5370/dnp5370.c | 4 +- board/egnite/ethernut5/ethernut5.c | 2 +- board/genesi/mx51_efikamx/efikamx-usb.c | 4 +- board/google/chromebook_link/link.c | 10 +- board/google/chromebox_panther/Kconfig | 34 + board/google/chromebox_panther/MAINTAINERS | 6 + board/google/chromebox_panther/Makefile | 7 + board/google/chromebox_panther/panther.c | 22 + board/gumstix/pepper/Kconfig | 9 - board/gumstix/pepper/board.c | 2 +- board/ifm/ac14xx/ac14xx.c | 2 +- board/ip04/ip04.c | 2 +- board/isee/igep0033/Kconfig | 9 - board/isee/igep0033/board.c | 2 +- board/phytec/pcm051/Kconfig | 9 - board/phytec/pcm051/board.c | 2 +- board/renesas/r0p7734/r0p7734.c | 2 +- board/ronetix/pm9261/pm9261.c | 2 +- board/ronetix/pm9g45/pm9g45.c | 2 +- board/samsung/common/board.c | 12 - board/samsung/goni/Kconfig | 9 - board/samsung/smdk5420/Kconfig | 6 - board/samsung/smdkc100/Kconfig | 9 - board/sandbox/README.sandbox | 78 +- board/sandbox/sandbox.c | 12 - board/siemens/common/factoryset.c | 4 +- board/siemens/pxm2/board.c | 2 +- board/silica/pengwyn/Kconfig | 9 - board/silica/pengwyn/board.c | 2 +- board/spear/spear300/spear300.c | 2 +- board/spear/spear310/spear310.c | 2 +- board/spear/spear320/spear320.c | 2 +- board/spear/spear600/spear600.c | 2 +- board/st/stv0991/stv0991.c | 2 +- board/sunxi/gmac.c | 10 +- board/tcm-bf518/tcm-bf518.c | 4 +- board/tcm-bf537/tcm-bf537.c | 2 +- board/ti/am335x/Kconfig | 9 - board/ti/am335x/board.c | 6 +- board/ti/am43xx/board.c | 4 +- board/ti/beagle_x15/board.c | 4 +- board/ti/dra7xx/evm.c | 4 +- board/ti/ti814x/evm.c | 2 +- common/Kconfig | 116 +++ common/board_f.c | 7 + common/board_r.c | 8 +- common/bootm.c | 1 + common/cmd_bdinfo.c | 4 +- common/cmd_bootm.c | 1 + common/cmd_bootstage.c | 7 +- common/cmd_demo.c | 1 + common/cmd_elf.c | 2 +- common/cmd_fat.c | 1 + common/cmd_fdt.c | 1 + common/cmd_lzmadec.c | 1 + common/cmd_md5sum.c | 1 + common/cmd_mem.c | 8 +- common/cmd_net.c | 178 ++-- common/cmd_nvedit.c | 1 + common/cmd_pci.c | 14 +- common/cmd_pxe.c | 5 +- common/cmd_sf.c | 3 +- common/cmd_source.c | 1 + common/cmd_trace.c | 1 + common/cmd_usb.c | 198 ++++- common/cmd_ximg.c | 1 + common/cros_ec.c | 35 +- common/hash.c | 1 + common/image-fdt.c | 1 + common/image-fit.c | 1 + common/image.c | 1 + common/iotrace.c | 1 + common/lcd.c | 1 + common/malloc_simple.c | 1 + common/miiphyutil.c | 1 + common/spl/spl_net.c | 4 +- common/update.c | 25 +- common/usb.c | 295 +++--- common/usb_hub.c | 194 +++- common/usb_kbd.c | 119 ++- common/usb_storage.c | 249 +++--- configs/A20-OLinuXino-Lime2_defconfig | 3 + configs/A20-OLinuXino-Lime_defconfig | 3 + configs/A20-OLinuXino_MICRO_defconfig | 3 + configs/Bananapi_defconfig | 3 + configs/Bananapro_defconfig | 3 + configs/CSQ_CS908_defconfig | 3 + configs/Colombus_defconfig | 3 + configs/Cubieboard2_defconfig | 3 + configs/Cubietruck_defconfig | 3 + configs/Hummingbird_A31_defconfig | 3 + configs/Linksprite_pcDuino3_Nano_defconfig | 3 + configs/Linksprite_pcDuino3_defconfig | 11 + configs/Linksprite_pcDuino3_fdt_defconfig | 15 - configs/Mele_I7_defconfig | 3 + configs/Mele_M3_defconfig | 3 + configs/Mele_M5_defconfig | 3 + configs/Mele_M9_defconfig | 3 + configs/Orangepi_defconfig | 3 + configs/Orangepi_mini_defconfig | 3 + configs/Wits_Pro_A20_DKT_defconfig | 3 + configs/alt_defconfig | 2 - configs/am335x_boneblack_vboot_defconfig | 1 - configs/am3517_crane_defconfig | 3 - configs/am3517_evm_defconfig | 3 - configs/arndale_defconfig | 6 + configs/axs101_defconfig | 3 + configs/axs103_defconfig | 3 + configs/bf609-ezkit_defconfig | 3 + configs/birdland_bav335a_defconfig | 3 - configs/birdland_bav335b_defconfig | 3 - configs/chromebook_link_defconfig | 2 + configs/chromebox_panther_defconfig | 12 + configs/cm_fx6_defconfig | 3 - configs/cm_t3517_defconfig | 3 - configs/cm_t35_defconfig | 3 - configs/coreboot-x86_defconfig | 1 + configs/devkit8000_defconfig | 3 - configs/dig297_defconfig | 3 - configs/eco5pk_defconfig | 3 - configs/galileo_defconfig | 3 + configs/gose_defconfig | 2 - configs/i12-tvbox_defconfig | 3 + configs/ids8313_defconfig | 1 - configs/koelsch_defconfig | 2 - configs/lager_defconfig | 2 - configs/mcx_defconfig | 3 - configs/mt_ventoux_defconfig | 3 - configs/mx6dlsabreauto_defconfig | 2 - configs/mx6dlsabresd_defconfig | 2 - configs/mx6qsabreauto_defconfig | 2 - configs/mx6qsabresd_defconfig | 2 - configs/mx6sabresd_spl_defconfig | 2 - configs/mx6sxsabresd_defconfig | 2 - configs/mx6sxsabresd_spl_defconfig | 2 - configs/nokia_rx51_defconfig | 3 - configs/omap3_beagle_defconfig | 3 - configs/omap3_evm_defconfig | 3 - configs/omap3_evm_quick_mmc_defconfig | 3 - configs/omap3_evm_quick_nand_defconfig | 3 - configs/omap3_ha_defconfig | 3 - configs/omap3_logic_defconfig | 3 - configs/omap3_mvblx_defconfig | 3 - configs/omap3_pandora_defconfig | 3 - configs/omap3_sdp3430_defconfig | 3 - configs/ph1_ld4_defconfig | 3 - configs/ph1_pro4_defconfig | 3 - configs/ph1_sld8_defconfig | 3 - configs/porter_defconfig | 2 - configs/sandbox_defconfig | 20 +- configs/silk_defconfig | 2 - configs/smdk5250_defconfig | 6 + configs/snapper9260_defconfig | 3 - configs/snapper9g20_defconfig | 3 - configs/snow_defconfig | 7 +- configs/socfpga_arria5_defconfig | 3 - configs/socfpga_cyclone5_defconfig | 6 +- configs/socfpga_socrates_defconfig | 6 +- configs/spear300_defconfig | 3 + configs/spear300_nand_defconfig | 3 + configs/spear300_usbtty_defconfig | 3 + configs/spear300_usbtty_nand_defconfig | 3 + configs/spear310_defconfig | 3 + configs/spear310_nand_defconfig | 3 + configs/spear310_pnor_defconfig | 3 + configs/spear310_usbtty_defconfig | 3 + configs/spear310_usbtty_nand_defconfig | 3 + configs/spear310_usbtty_pnor_defconfig | 3 + configs/spear320_defconfig | 3 + configs/spear320_nand_defconfig | 3 + configs/spear320_pnor_defconfig | 3 + configs/spear320_usbtty_defconfig | 3 + configs/spear320_usbtty_nand_defconfig | 3 + configs/spear320_usbtty_pnor_defconfig | 3 + configs/spear600_defconfig | 3 + configs/spear600_nand_defconfig | 3 + configs/spear600_usbtty_defconfig | 3 + configs/spear600_usbtty_nand_defconfig | 3 + configs/stv0991_defconfig | 5 +- configs/tao3530_defconfig | 3 - configs/tb100_defconfig | 3 + configs/tricorder_defconfig | 3 - configs/tricorder_flash_defconfig | 3 - configs/twister_defconfig | 3 - configs/x600_defconfig | 3 + configs/zynq_microzed_defconfig | 1 - configs/zynq_zc70x_defconfig | 1 - configs/zynq_zc770_xm010_defconfig | 1 - configs/zynq_zc770_xm012_defconfig | 1 - configs/zynq_zc770_xm013_defconfig | 1 - configs/zynq_zed_defconfig | 1 - configs/zynq_zybo_defconfig | 1 - doc/README.drivers.eth | 18 +- doc/README.enetaddr | 2 +- doc/README.fdt-control | 16 + doc/README.link-local | 4 +- doc/device-tree-bindings/i2c/i2c-gpio.txt | 37 + .../net/allwinner,sun4i-emac.txt | 19 + .../net/allwinner,sun4i-mdio.txt | 27 + .../net/allwinner,sun7i-a20-gmac.txt | 27 + doc/device-tree-bindings/net/ethernet.txt | 25 + doc/device-tree-bindings/net/stmmac.txt | 63 ++ doc/driver-model/pci-info.txt | 70 ++ doc/driver-model/usb-info.txt | 415 +++++++++ drivers/core/device-remove.c | 4 +- drivers/core/device.c | 85 +- drivers/core/lists.c | 2 +- drivers/core/uclass.c | 10 +- drivers/demo/demo-simple.c | 1 + drivers/gpio/Kconfig | 21 + drivers/gpio/at91_gpio.c | 2 +- drivers/gpio/bcm2835_gpio.c | 2 +- drivers/gpio/gpio-uclass.c | 40 +- drivers/gpio/intel_ich6_gpio.c | 18 +- drivers/gpio/mxc_gpio.c | 2 +- drivers/gpio/omap_gpio.c | 2 +- drivers/gpio/s5p_gpio.c | 2 +- drivers/gpio/sandbox.c | 6 +- drivers/gpio/sunxi_gpio.c | 2 +- drivers/gpio/tegra_gpio.c | 2 +- drivers/i2c/Kconfig | 56 +- drivers/i2c/Makefile | 1 + drivers/i2c/i2c-gpio.c | 346 ++++++++ drivers/i2c/i2c-uclass.c | 6 +- drivers/i2c/i2c-uniphier-f.c | 1 + drivers/i2c/i2c-uniphier.c | 1 + drivers/i2c/s3c24x0_i2c.c | 2 +- drivers/i2c/sandbox_i2c.c | 2 +- drivers/i2c/tegra_i2c.c | 6 +- drivers/input/cros_ec_keyb.c | 2 +- drivers/input/i8042.c | 7 + drivers/misc/Kconfig | 19 +- drivers/misc/Makefile | 1 + drivers/misc/cros_ec.c | 254 +----- drivers/misc/cros_ec_i2c.c | 6 +- drivers/misc/cros_ec_lpc.c | 29 +- drivers/misc/cros_ec_sandbox.c | 79 +- drivers/misc/cros_ec_spi.c | 8 +- drivers/misc/swap_case.c | 285 ++++++ drivers/mtd/spi/Kconfig | 12 +- drivers/mtd/spi/sf-uclass.c | 18 +- drivers/mtd/spi/sf_probe.c | 9 +- drivers/net/4xx_enet.c | 21 +- drivers/net/Kconfig | 49 + drivers/net/Makefile | 4 +- drivers/net/altera_tse.c | 15 +- drivers/net/armada100_fec.c | 7 +- drivers/net/at91_emac.c | 4 +- drivers/net/ax88180.c | 6 +- drivers/net/bcm-sf2-eth.c | 6 +- drivers/net/bfin_mac.c | 4 +- drivers/net/calxedaxgmac.c | 2 +- drivers/net/cpsw.c | 17 +- drivers/net/cs8900.c | 5 +- drivers/net/davinci_emac.c | 5 +- drivers/net/dc2114x.c | 9 +- drivers/net/designware.c | 250 +++++- drivers/net/designware.h | 3 +- drivers/net/dm9000x.c | 9 +- drivers/net/dnet.c | 5 +- drivers/net/e1000.c | 4 +- drivers/net/eepro100.c | 3 +- drivers/net/enc28j60.c | 13 +- drivers/net/ep93xx_eth.c | 11 +- drivers/net/ethoc.c | 4 +- drivers/net/fec_mxc.c | 4 +- drivers/net/fm/eth.c | 2 +- drivers/net/fsl_mcdmafec.c | 23 +- drivers/net/ftgmac100.c | 4 +- drivers/net/ftmac100.c | 4 +- drivers/net/ftmac110.c | 4 +- drivers/net/greth.c | 2 +- drivers/net/keystone_net.c | 2 +- drivers/net/ks8851_mll.c | 6 +- drivers/net/lan91c96.c | 19 +- drivers/net/lpc32xx_eth.c | 10 +- drivers/net/macb.c | 10 +- drivers/net/mcffec.c | 5 +- drivers/net/mpc512x_fec.c | 3 +- drivers/net/mpc5xxx_fec.c | 2 +- drivers/net/mvgbe.c | 41 +- drivers/net/mvneta.c | 2 +- drivers/net/natsemi.c | 3 +- drivers/net/ne2000_base.c | 2 +- drivers/net/netconsole.c | 98 +- drivers/net/ns8382x.c | 6 +- drivers/net/pch_gbe.c | 2 +- drivers/net/pcnet.c | 2 +- drivers/net/phy/phy.c | 22 + drivers/net/rtl8139.c | 4 +- drivers/net/rtl8169.c | 2 +- drivers/net/sandbox-raw.c | 165 ++++ drivers/net/sandbox.c | 208 +++++ drivers/net/sh_eth.c | 2 +- drivers/net/smc91111.c | 18 +- drivers/net/smc911x.c | 4 +- drivers/net/sunxi_emac.c | 4 +- drivers/net/tsec.c | 7 +- drivers/net/tsi108_eth.c | 8 +- drivers/net/uli526x.c | 5 +- drivers/net/xilinx_axi_emac.c | 2 +- drivers/net/xilinx_emaclite.c | 2 +- drivers/net/xilinx_ll_temac_fifo.c | 4 +- drivers/net/xilinx_ll_temac_sdma.c | 4 +- drivers/net/zynq_gem.c | 2 +- drivers/pci/Kconfig | 22 + drivers/pci/Makefile | 11 +- drivers/pci/pci-emul-uclass.c | 67 ++ drivers/pci/pci-uclass.c | 639 +++++++++++++ drivers/pci/pci.c | 281 +----- drivers/pci/pci_auto.c | 16 +- drivers/pci/pci_common.c | 292 ++++++ drivers/pci/pci_compat.c | 43 + drivers/pci/pci_sandbox.c | 79 ++ drivers/pci/pci_x86.c | 24 + drivers/qe/uec.c | 2 +- drivers/serial/ns16550.c | 1 + drivers/serial/serial-uclass.c | 4 +- drivers/serial/serial_uniphier.c | 1 + drivers/sound/Kconfig | 55 ++ drivers/spi/Kconfig | 25 + drivers/spi/Makefile | 1 + drivers/spi/fsl_dspi.c | 737 +++++++++++++++ drivers/spi/fsl_qspi.c | 985
++++++++++++++-------
drivers/spi/ich.c | 522 +++++------ drivers/spi/spi-uclass.c | 4 +- drivers/tpm/Kconfig | 7 + drivers/usb/Kconfig | 16 + drivers/usb/emul/Kconfig | 8 + drivers/usb/emul/Makefile | 10 + drivers/usb/emul/sandbox_flash.c | 423 +++++++++ drivers/usb/emul/sandbox_hub.c | 303 +++++++ drivers/usb/emul/usb-emul-uclass.c | 263 ++++++ drivers/usb/eth/asix.c | 3 +- drivers/usb/eth/asix88179.c | 2 +- drivers/usb/eth/mcs7830.c | 2 +- drivers/usb/eth/smsc95xx.c | 5 +- drivers/usb/eth/usb_ether.c | 52 +- drivers/usb/gadget/ci_udc.c | 4 + drivers/usb/gadget/ether.c | 13 +- drivers/usb/host/Makefile | 5 + drivers/usb/host/ehci-exynos.c | 112 ++- drivers/usb/host/ehci-faraday.c | 112 ++- drivers/usb/host/ehci-hcd.c | 379 ++++++-- drivers/usb/host/ehci-mx5.c | 12 + drivers/usb/host/ehci-tegra.c | 322 ++++--- drivers/usb/host/ehci.h | 47 + drivers/usb/host/usb-sandbox.c | 117 +++ drivers/usb/host/usb-uclass.c | 645 ++++++++++++++ drivers/usb/host/xhci-exynos5.c | 120 ++- drivers/usb/host/xhci-mem.c | 24 +- drivers/usb/host/xhci-ring.c | 8 +- drivers/usb/host/xhci.c | 312 +++++-- drivers/usb/host/xhci.h | 31 +- drivers/usb/musb-new/musb_uboot.c | 4 +- drivers/video/cfb_console.c | 29 +- fs/fs.c | 1 + include/bootstage.h | 2 +- include/common.h | 30 +- include/configs/axs101.h | 1 - include/configs/bf609-ezkit.h | 1 - include/configs/chromebook_link.h | 61 +- include/configs/chromebox_panther.h | 17 + include/configs/exynos5250-common.h | 10 - include/configs/exynos5420-common.h | 2 - include/configs/sandbox.h | 59 +- include/configs/smdk5250.h | 1 - include/configs/snow.h | 3 +- include/configs/socfpga_common.h | 1 - include/configs/spear-common.h | 1 - include/configs/stv0991.h | 1 - include/configs/sunxi-common.h | 1 - include/configs/tb100.h | 1 - include/configs/x600.h | 1 - include/configs/x86-chromebook.h | 68 ++ include/configs/x86-common.h | 5 - include/cros_ec.h | 137 --- include/dm/device-internal.h | 2 +- include/dm/device.h | 61 +- include/dm/test.h | 8 +- include/dm/uclass-id.h | 11 + include/dm/uclass-internal.h | 7 +- include/dm/uclass.h | 2 + include/fdtdec.h | 19 +- include/fsl_dspi.h | 150 ++++ include/i2c.h | 8 +- include/linker_lists.h | 10 + include/linux/usb/ch9.h | 18 + include/linux/usb/gadget.h | 13 - include/mapmem.h | 32 + include/net.h | 470 ++++++---- include/os.h | 2 +- include/pci.h | 411 ++++++++- include/pci_ids.h | 2 + include/phy.h | 23 +- include/spi_flash.h | 47 +- include/usb.h | 494 ++++++++++- include/usb_defs.h | 68 +- lib/Kconfig | 9 + lib/fdtdec.c | 10 +- lib/net_utils.c | 16 +- lib/trace.c | 1 + net/arp.c | 137 ++- net/arp.h | 22 +- net/bootp.c | 373 ++++---- net/bootp.h | 39 +- net/cdp.c | 88 +- net/cdp.h | 2 +- net/dns.c | 72 +- net/dns.h | 2 +- net/eth.c | 666 +++++++++++--- net/link_local.c | 83 +- net/net.c | 493 ++++++----- net/nfs.c | 241 +++-- net/nfs.h | 2 +- net/ping.c | 49 +- net/rarp.c | 45 +- net/rarp.h | 6 +- net/sntp.c | 48 +- net/sntp.h | 2 +- net/tftp.c | 595 +++++++------ net/tftp.h | 8 +- post/cpu/mpc8xx/ether.c | 6 +- test/compression.c | 1 + test/dm/Makefile | 7 +- test/dm/bus.c | 16 +- test/dm/cmd_dm.c | 16 +- test/dm/core.c | 9 +- test/dm/eth.c | 156 ++++ test/dm/pci.c | 59 ++ test/dm/test-dm.sh | 3 + test/dm/test-main.c | 7 +- test/dm/test-uclass.c | 17 +- test/dm/test.dts | 78 ++ test/dm/usb.c | 50 ++ 551 files changed, 16067 insertions(+), 5184 deletions(-) create mode 100644 arch/arm/dts/ls1021a-qds.dts create mode 100644 arch/arm/dts/ls1021a-twr.dts create mode 100644 arch/arm/dts/ls1021a.dtsi create mode 100644 arch/arm/dts/skeleton64.dtsi create mode 100644 arch/sandbox/cpu/eth-raw-os.c create mode 100644 arch/sandbox/dts/cros-ec-keyboard.dtsi create mode 100644 arch/sandbox/include/asm/eth-raw-os.h create mode 100644 arch/sandbox/include/asm/eth.h create mode 100644 arch/sandbox/include/asm/processor.h create mode 100644 arch/sandbox/lib/pci_io.c create mode 100644 arch/x86/dts/chromebox_panther.dts create mode 100644 arch/x86/lib/lpc-uclass.c create mode 100644 arch/x86/lib/pch-uclass.c create mode 100644 board/google/chromebox_panther/Kconfig create mode 100644 board/google/chromebox_panther/MAINTAINERS create mode 100644 board/google/chromebox_panther/Makefile create mode 100644 board/google/chromebox_panther/panther.c delete mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig create mode 100644 configs/chromebox_panther_defconfig create mode 100644 doc/device-tree-bindings/i2c/i2c-gpio.txt create mode 100644 doc/device-tree-bindings/net/allwinner,sun4i-emac.txt create mode 100644 doc/device-tree-bindings/net/allwinner,sun4i-mdio.txt create mode 100644
doc/device-tree-bindings/net/allwinner,sun7i-a20-gmac.txt
create mode 100644 doc/device-tree-bindings/net/ethernet.txt create mode 100644 doc/device-tree-bindings/net/stmmac.txt create mode 100644 doc/driver-model/pci-info.txt create mode 100644 doc/driver-model/usb-info.txt create mode 100644 drivers/i2c/i2c-gpio.c create mode 100644 drivers/misc/swap_case.c create mode 100644 drivers/net/sandbox-raw.c create mode 100644 drivers/net/sandbox.c create mode 100644 drivers/pci/pci-emul-uclass.c create mode 100644 drivers/pci/pci-uclass.c create mode 100644 drivers/pci/pci_common.c create mode 100644 drivers/pci/pci_compat.c create mode 100644 drivers/pci/pci_sandbox.c create mode 100644 drivers/pci/pci_x86.c create mode 100644 drivers/spi/fsl_dspi.c create mode 100644 drivers/usb/emul/Kconfig create mode 100644 drivers/usb/emul/Makefile create mode 100644 drivers/usb/emul/sandbox_flash.c create mode 100644 drivers/usb/emul/sandbox_hub.c create mode 100644 drivers/usb/emul/usb-emul-uclass.c create mode 100644 drivers/usb/host/usb-sandbox.c create mode 100644 drivers/usb/host/usb-uclass.c create mode 100644 include/configs/chromebox_panther.h create mode 100644 include/configs/x86-chromebook.h create mode 100644 include/fsl_dspi.h create mode 100644 include/mapmem.h create mode 100644 test/dm/eth.c create mode 100644 test/dm/pci.c create mode 100644 test/dm/usb.c
Regards, Simon