August 9, 2018

The Nanopi Fire3 - Who is Nexell?

Looking at the U-Boot sources, it is apparent that a number of the files refer to an entity called "Nexell" in connection with the S5P6818 chip. What is this all about -- I thought this was a Samsung chip. Perhaps Samsung acquired the technology from Nexell or who knows what. At any rate, this is a string to search for in the U-Boot sources. It is worth noting that the chip on my board is labelled as follows:
Samsung 6818 S1732 NCNHDMV XCO ARM NEXELL

Files worth taking notice of

arch/arm/mach-nexell/include/mach/nexell.h
Has defines for things like:
#define PHY_BASEADDR_GMAC               (0xC0060000)
Also during the build these things are compiled.
  CC      arch/arm/mach-nexell/clock.o
  CC      arch/arm/mach-nexell/timer.o
  CC      arch/arm/mach-nexell/reset.o
  CC      arch/arm/mach-nexell/nx_gpio.o
  CC      arch/arm/mach-nexell/tieoff.o
  CC      arch/arm/mach-nexell/serial.o
  CC      board/s5p6818/nanopi3/board.o
  CC      board/s5p6818/nanopi3/hwrev.o
  CC      board/s5p6818/nanopi3/onewire.o
  CC      board/s5p6818/nanopi3/lcds.o
These all seem specific to the S5P6818 and will be worthy of careful study.

Running the "locate" command turns up (along with other things) the following:

/u1/Projects/Fire3/u-boot-friendlyarm/drivers/mmc/.nexell_dw_mmc.o.cmd
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/mmc/nexell_dw_mmc.c
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/mmc/nexell_dw_mmc.o
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/mmc/nexell_dw_mmc.su
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pinctrl/nexell
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pinctrl/nexell/Kconfig
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pinctrl/nexell/Makefile
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pinctrl/nexell/pinctrl-nexell.c
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pinctrl/nexell/pinctrl-nexell.h
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pinctrl/nexell/pinctrl-s5pxx18.c
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pinctrl/nexell/pinctrl-s5pxx18.h
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pwm/.pwm-nexell.o.cmd
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pwm/pwm-nexell.c
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pwm/pwm-nexell.h
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pwm/pwm-nexell.o
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/pwm/pwm-nexell.su
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/reset/reset-nexell.c
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/usb/gadget/.nexell_udc_otg_phy.o.cmd
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/usb/gadget/nexell_udc_otg_phy.c
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/usb/gadget/nexell_udc_otg_phy.o
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/usb/gadget/nexell_udc_otg_phy.su
/u1/Projects/Fire3/u-boot-friendlyarm/drivers/usb/gadget/nexell_udc_otg_regs.h

What about the 8211E chip ?

This seems to be handled by drivers/net/phy/realtek.c.

And what about Designware ?

As near as I can tell, the ethernet section of the S5P6818 is supported by the "designware.c" ethernet driver in the U-Boot source. No luck yet fiddling with the U-Boot config and build process to make that come alive yet, but stay tuned. This driver is used in an amazing number of U-Boot supported boards as shown by the following. This gives a high level of confidence that the driver will work well once I get things configured.
cd u-boot/configs
grep ESIGNW *

A20-Olimex-SOM-EVB_defconfig:CONFIG_ETH_DESIGNWARE=y
A20-OLinuXino-Lime2_defconfig:CONFIG_ETH_DESIGNWARE=y
A20-OLinuXino-Lime_defconfig:CONFIG_ETH_DESIGNWARE=y
A20-OLinuXino_MICRO_defconfig:CONFIG_ETH_DESIGNWARE=y
artik530_raptor_defconfig:CONFIG_ETH_DESIGNWARE=y
artik530_raptor_ota_defconfig:CONFIG_ETH_DESIGNWARE=y
artik710_raptor_defconfig:CONFIG_ETH_DESIGNWARE=y
axs101_defconfig:CONFIG_ETH_DESIGNWARE=y
axs103_defconfig:CONFIG_ETH_DESIGNWARE=y
Bananapi_defconfig:CONFIG_ETH_DESIGNWARE=y
Bananapro_defconfig:CONFIG_ETH_DESIGNWARE=y
bf609-ezkit_defconfig:CONFIG_ETH_DESIGNWARE=y
Colombus_defconfig:CONFIG_ETH_DESIGNWARE=y
CSQ_CS908_defconfig:CONFIG_ETH_DESIGNWARE=y
Cubieboard2_defconfig:CONFIG_ETH_DESIGNWARE=y
Cubietruck_defconfig:CONFIG_ETH_DESIGNWARE=y
galileo_defconfig:CONFIG_ETH_DESIGNWARE=y
Hummingbird_A31_defconfig:CONFIG_ETH_DESIGNWARE=y
i12-tvbox_defconfig:CONFIG_ETH_DESIGNWARE=y
Lamobo_R1_defconfig:CONFIG_ETH_DESIGNWARE=y
Linksprite_pcDuino3_defconfig:CONFIG_ETH_DESIGNWARE=y
Linksprite_pcDuino3_Nano_defconfig:CONFIG_ETH_DESIGNWARE=y
Mele_A1000G_quad_defconfig:CONFIG_ETH_DESIGNWARE=y
Mele_I7_defconfig:CONFIG_ETH_DESIGNWARE=y
Mele_M3_defconfig:CONFIG_ETH_DESIGNWARE=y
Mele_M5_defconfig:CONFIG_ETH_DESIGNWARE=y
Mele_M9_defconfig:CONFIG_ETH_DESIGNWARE=y
mixtile_loftq_defconfig:CONFIG_ETH_DESIGNWARE=y
Orangepi_defconfig:CONFIG_ETH_DESIGNWARE=y
Orangepi_mini_defconfig:CONFIG_ETH_DESIGNWARE=y
s5p6818_nanopi3_defconfig:CONFIG_ETH_DESIGNWARE=y
Sinovoip_BPI_M2_defconfig:CONFIG_ETH_DESIGNWARE=y
socfpga_arria5_defconfig:CONFIG_ETH_DESIGNWARE=y
socfpga_arria5_defconfig:CONFIG_DESIGNWARE_SPI=y
socfpga_cyclone5_defconfig:CONFIG_ETH_DESIGNWARE=y
socfpga_cyclone5_defconfig:CONFIG_DESIGNWARE_SPI=y
socfpga_de0_nano_soc_defconfig:CONFIG_ETH_DESIGNWARE=y
socfpga_de0_nano_soc_defconfig:CONFIG_DESIGNWARE_SPI=y
socfpga_mcvevk_defconfig:CONFIG_ETH_DESIGNWARE=y
socfpga_mcvevk_defconfig:CONFIG_DESIGNWARE_SPI=y
socfpga_sockit_defconfig:CONFIG_ETH_DESIGNWARE=y
socfpga_sockit_defconfig:CONFIG_DESIGNWARE_SPI=y
socfpga_socrates_defconfig:CONFIG_ETH_DESIGNWARE=y
socfpga_socrates_defconfig:CONFIG_DESIGNWARE_SPI=y
socfpga_sr1500_defconfig:CONFIG_ETH_DESIGNWARE=y
spear300_defconfig:CONFIG_ETH_DESIGNWARE=y
spear300_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
spear300_usbtty_defconfig:CONFIG_ETH_DESIGNWARE=y
spear300_usbtty_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
spear310_defconfig:CONFIG_ETH_DESIGNWARE=y
spear310_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
spear310_pnor_defconfig:CONFIG_ETH_DESIGNWARE=y
spear310_usbtty_defconfig:CONFIG_ETH_DESIGNWARE=y
spear310_usbtty_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
spear310_usbtty_pnor_defconfig:CONFIG_ETH_DESIGNWARE=y
spear320_defconfig:CONFIG_ETH_DESIGNWARE=y
spear320_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
spear320_pnor_defconfig:CONFIG_ETH_DESIGNWARE=y
spear320_usbtty_defconfig:CONFIG_ETH_DESIGNWARE=y
spear320_usbtty_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
spear320_usbtty_pnor_defconfig:CONFIG_ETH_DESIGNWARE=y
spear600_defconfig:CONFIG_ETH_DESIGNWARE=y
spear600_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
spear600_usbtty_defconfig:CONFIG_ETH_DESIGNWARE=y
spear600_usbtty_nand_defconfig:CONFIG_ETH_DESIGNWARE=y
stv0991_defconfig:CONFIG_ETH_DESIGNWARE=y
tb100_defconfig:CONFIG_ETH_DESIGNWARE=y
Wits_Pro_A20_DKT_defconfig:CONFIG_ETH_DESIGNWARE=y
x600_defconfig:CONFIG_ETH_DESIGNWARE=y


Have any comments? Questions? Drop me a line!

Tom's electronics pages / tom@mmto.org