Message ID | 5c615aa5-678e-63b8-ecae-f5f0bd8a6f2c@sigmadesigns.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tuesday, January 24, 2017 4:11:31 PM CET Marc Gonzalez wrote: > Import minimal defconfig for tango4 boards. > > Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com> > --- > arch/arm/configs/tango4_defconfig | 96 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 96 insertions(+) > create mode 100644 arch/arm/configs/tango4_defconfig > > diff --git a/arch/arm/configs/tango4_defconfig b/arch/arm/configs/tango4_defconfig > new file mode 100644 > index 000000000000..aab931fc0e03 > --- /dev/null > +++ b/arch/arm/configs/tango4_defconfig > @@ -0,0 +1,96 @@ > +CONFIG_CROSS_COMPILE="arm-linux-gnueabihf-" This may cause problems with build bots, please remove that line > +# CONFIG_SWAP is not set > +CONFIG_SYSVIPC=y > +CONFIG_NO_HZ_IDLE=y > +CONFIG_HIGH_RES_TIMERS=y > +# CONFIG_COMPAT_BRK is not set > +CONFIG_SLAB=y > +CONFIG_MODULES=y > +CONFIG_MODULE_UNLOAD=y > +CONFIG_MODVERSIONS=y > +CONFIG_ARCH_TANGO=y > +# CONFIG_ARM_ERRATA_643719 is not set > +CONFIG_SMP=y > +CONFIG_PREEMPT=y > +CONFIG_HZ_300=y Any specific reason for HZ=300? > +CONFIG_AEABI=y > +CONFIG_HIGHMEM=y > +# CONFIG_ATAGS is not set > +CONFIG_ARM_APPENDED_DTB=y > +CONFIG_ARM_ATAG_DTB_COMPAT=y > +CONFIG_CMDLINE="console=ttyS0,115200 mem=256M" You shouldn't need the command line override, as both the console port and the memory size can reliably be found in the DTB Please also make sure that any hardware specific drivers are enabled in multi_v7_defconfig along with your platform specific one, and check that multi_v7_defconfig works as well as your own config. Arnd
Hello Arnd, Thanks for taking a look. On 25/01/2017 14:35, Arnd Bergmann wrote: > On Tuesday, January 24, 2017 4:11:31 PM CET Marc Gonzalez wrote: > >> Import minimal defconfig for tango4 boards. >> >> Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com> >> --- >> arch/arm/configs/tango4_defconfig | 96 +++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 96 insertions(+) >> create mode 100644 arch/arm/configs/tango4_defconfig >> >> diff --git a/arch/arm/configs/tango4_defconfig b/arch/arm/configs/tango4_defconfig >> new file mode 100644 >> index 000000000000..aab931fc0e03 >> --- /dev/null >> +++ b/arch/arm/configs/tango4_defconfig >> @@ -0,0 +1,96 @@ >> +CONFIG_CROSS_COMPILE="arm-linux-gnueabihf-" > > This may cause problems with build bots, please remove that line Am I supposed to always export CONFIG_CROSS_COMPILE in my environment? >> +# CONFIG_SWAP is not set >> +CONFIG_SYSVIPC=y >> +CONFIG_NO_HZ_IDLE=y >> +CONFIG_HIGH_RES_TIMERS=y >> +# CONFIG_COMPAT_BRK is not set >> +CONFIG_SLAB=y >> +CONFIG_MODULES=y >> +CONFIG_MODULE_UNLOAD=y >> +CONFIG_MODVERSIONS=y >> +CONFIG_ARCH_TANGO=y >> +# CONFIG_ARM_ERRATA_643719 is not set >> +CONFIG_SMP=y >> +CONFIG_PREEMPT=y >> +CONFIG_HZ_300=y > > Any specific reason for HZ=300? Are you concerned that this particular HZ setting gets too little testing? I was convinced by the Kconfig help blurb. 300 Hz is a good compromise choice allowing server performance while also showing good interactive responsiveness even on SMP and NUMA systems and exactly dividing by both PAL and NTSC frame rates for video and multimedia work. Since the SoC is mostly used for television, I thought the "video and multimedia" argument made sense. Also, one dev complained that the previous kernel had "bad latency when we sleep in user-space, therefore we must instead busy loop". I told him about HIGH_RES_TIMERS, but IIUC some user-space sleep functions don't go through the hrt-enabled syscalls. So a 3 ms error seemed like an improvement over a 10 ms error. >> +CONFIG_AEABI=y >> +CONFIG_HIGHMEM=y >> +# CONFIG_ATAGS is not set >> +CONFIG_ARM_APPENDED_DTB=y >> +CONFIG_ARM_ATAG_DTB_COMPAT=y >> +CONFIG_CMDLINE="console=ttyS0,115200 mem=256M" > > You shouldn't need the command line override, as both the console port > and the memory size can reliably be found in the DTB I actually override that parameter in Uboot, but I didn't consider what happens when we don't have Uboot, or leave the parameter intact. The DT says: memory@80000000 { device_type = "memory"; reg = <0x80000000 0x80000000>; /* 2 GB */ }; 2 GB is the actual memory on the board, but Linux is only allowed to manage a fraction of this. I've been told that the exact amount may even be a run-time value on some customer setups. Is the boot-loader supposed to set the correct mem parameter? chosen { stdout-path = "serial:115200n8"; }; Is this supposed to be equivalent to console=ttyS0,115200 ? > Please also make sure that any hardware specific drivers are enabled in > multi_v7_defconfig along with your platform specific one, and check > that multi_v7_defconfig works as well as your own config. Isn't CONFIG_ARM_APPENDED_DTB=y incompatible with multi_v7_defconfig ? Regards.
On Wed, Jan 25, 2017 at 3:33 PM, Marc Gonzalez <marc_gonzalez@sigmadesigns.com> wrote: > On 25/01/2017 14:35, Arnd Bergmann wrote: > >> On Tuesday, January 24, 2017 4:11:31 PM CET Marc Gonzalez wrote: >> >>> Import minimal defconfig for tango4 boards. >>> >>> Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com> >>> --- >>> arch/arm/configs/tango4_defconfig | 96 +++++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 96 insertions(+) >>> create mode 100644 arch/arm/configs/tango4_defconfig >>> >>> diff --git a/arch/arm/configs/tango4_defconfig b/arch/arm/configs/tango4_defconfig >>> new file mode 100644 >>> index 000000000000..aab931fc0e03 >>> --- /dev/null >>> +++ b/arch/arm/configs/tango4_defconfig >>> @@ -0,0 +1,96 @@ >>> +CONFIG_CROSS_COMPILE="arm-linux-gnueabihf-" >> >> This may cause problems with build bots, please remove that line > > Am I supposed to always export CONFIG_CROSS_COMPILE in my environment? I think what most people do is to have a way to call "make" with CROSS_COMPILE=... and O=... set as arguments to 'make'. >>> +CONFIG_HZ_300=y >> >> Any specific reason for HZ=300? > > Are you concerned that this particular HZ setting gets too little testing? > > I was convinced by the Kconfig help blurb. > > 300 Hz is a good compromise choice allowing server performance > while also showing good interactive responsiveness even > on SMP and NUMA systems and exactly dividing by both PAL and > NTSC frame rates for video and multimedia work. > > Since the SoC is mostly used for television, I thought the "video and > multimedia" argument made sense. makes sense. > Also, one dev complained that the previous kernel had "bad latency > when we sleep in user-space, therefore we must instead busy loop". > I told him about HIGH_RES_TIMERS, but IIUC some user-space sleep > functions don't go through the hrt-enabled syscalls. > > So a 3 ms error seemed like an improvement over a 10 ms error. This may have changed recently, I don't remember the details but I think nanosleep() uses highres timers these days unlike on older kernels. >>> +CONFIG_AEABI=y >>> +CONFIG_HIGHMEM=y >>> +# CONFIG_ATAGS is not set >>> +CONFIG_ARM_APPENDED_DTB=y >>> +CONFIG_ARM_ATAG_DTB_COMPAT=y >>> +CONFIG_CMDLINE="console=ttyS0,115200 mem=256M" >> >> You shouldn't need the command line override, as both the console port >> and the memory size can reliably be found in the DTB > > I actually override that parameter in Uboot, but I didn't consider > what happens when we don't have Uboot, or leave the parameter intact. > > The DT says: > > memory@80000000 { > device_type = "memory"; > reg = <0x80000000 0x80000000>; /* 2 GB */ > }; > > 2 GB is the actual memory on the board, but Linux is only allowed > to manage a fraction of this. I've been told that the exact amount > may even be a run-time value on some customer setups. > > Is the boot-loader supposed to set the correct mem parameter? Yes, whatever gets passed to the kernel should be correct, either by having the right board specific value in the dtb to start with, by having the bootloader detect the memory and override the dtb, or by the atags compat code taking the amount of memory from the atags. > > chosen { > stdout-path = "serial:115200n8"; > }; > > Is this supposed to be equivalent to console=ttyS0,115200 ? > Yes, but you may need to specify "earlycon" (don't remember where we are on that front these days). >> Please also make sure that any hardware specific drivers are enabled in >> multi_v7_defconfig along with your platform specific one, and check >> that multi_v7_defconfig works as well as your own config. > > Isn't CONFIG_ARM_APPENDED_DTB=y incompatible with multi_v7_defconfig ? No: arch/arm/configs/multi_v7_defconfig:CONFIG_ARM_APPENDED_DTB=y Arnd
diff --git a/arch/arm/configs/tango4_defconfig b/arch/arm/configs/tango4_defconfig new file mode 100644 index 000000000000..aab931fc0e03 --- /dev/null +++ b/arch/arm/configs/tango4_defconfig @@ -0,0 +1,96 @@ +CONFIG_CROSS_COMPILE="arm-linux-gnueabihf-" +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_ARCH_TANGO=y +# CONFIG_ARM_ERRATA_643719 is not set +CONFIG_SMP=y +CONFIG_PREEMPT=y +CONFIG_HZ_300=y +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +# CONFIG_ATAGS is not set +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_CMDLINE="console=ttyS0,115200 mem=256M" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPUFREQ_DT=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_IPV6 is not set +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_MTD=y +CONFIG_MTD_TESTS=m +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_TANGO=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_NETDEVICES=y +CONFIG_NET_VENDOR_AURORA=y +CONFIG_AURORA_NB8800=y +CONFIG_AT803X_PHY=y +# CONFIG_WLAN is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_RT288X=y +CONFIG_SERIAL_OF_PLATFORM=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_XLR=y +CONFIG_GPIOLIB=y +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y +CONFIG_TANGO_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_TANGOX_WATCHDOG=y +CONFIG_FB=y +# CONFIG_HID is not set +# CONFIG_USB_HID is not set +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ARASAN=y +CONFIG_DMADEVICES=y +CONFIG_EXT4_FS=y +CONFIG_FUSE_FS=m +CONFIG_VFAT_FS=m +CONFIG_TMPFS=y +CONFIG_NFS_FS=y +# CONFIG_NFS_V2 is not set +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_UTF8=m +CONFIG_PRINTK_TIME=y +# CONFIG_CRYPTO_ECHAINIV is not set
Import minimal defconfig for tango4 boards. Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com> --- arch/arm/configs/tango4_defconfig | 96 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 arch/arm/configs/tango4_defconfig