diff mbox

[RFC,v1] ARM: Import tango4_defconfig

Message ID 5c615aa5-678e-63b8-ecae-f5f0bd8a6f2c@sigmadesigns.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marc Gonzalez Jan. 24, 2017, 3:11 p.m. UTC
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

Comments

Arnd Bergmann Jan. 25, 2017, 1:35 p.m. UTC | #1
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
Marc Gonzalez Jan. 25, 2017, 2:33 p.m. UTC | #2
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.
Arnd Bergmann Jan. 25, 2017, 2:54 p.m. UTC | #3
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 mbox

Patch

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