Re: [PATCH 01/52] [microblaze] Kconfig patches

From: Randy Dunlap
Date: Sat Jan 26 2008 - 12:42:33 EST


On Thu, 24 Jan 2008 16:05:18 +0100 monstr@xxxxxxxxx wrote:

> From: Michal Simek <monstr@xxxxxxxxx>
>
>
> Signed-off-by: Michal Simek <monstr@xxxxxxxxx>
> ---
> arch/microblaze/Kconfig | 160 +++++++++++++++++++++++++
> arch/microblaze/Kconfig.debug | 22 ++++
> arch/microblaze/platform/Kconfig.platform | 46 +++++++
> arch/microblaze/platform/generic/Kconfig.auto | 45 +++++++
> 4 files changed, 273 insertions(+), 0 deletions(-)
> create mode 100644 arch/microblaze/Kconfig
> create mode 100644 arch/microblaze/Kconfig.debug
> create mode 100644 arch/microblaze/platform/Kconfig.platform
> create mode 100644 arch/microblaze/platform/generic/Kconfig.auto
>
> diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
> new file mode 100644
> index 0000000..6dbc069
> --- /dev/null
> +++ b/arch/microblaze/Kconfig
> @@ -0,0 +1,160 @@
> +# For a description of the syntax of this configuration file,
> +# see Documentation/kbuild/config-language.txt.

It's kconfig-language.txt.

> +
> +mainmenu "Linux/Microblaze Kernel Configuration"
> +
> +config MICROBLAZE
> + bool
> + default y

The one-line form:
def_bool y
is preferred, just to be more concise, use less screen real estate...
Above and many times below.

> +config MMU
> + bool
> + default n
> +
> +config SWAP
> + bool
> + default n
> +
> +config RWSEM_GENERIC_SPINLOCK
> + bool
> + default y
> +
> +config RWSEM_XCHGADD_ALGORITHM
> + bool
> +
> +
> +config ARCH_HAS_ILOG2_U32
> + bool
> + default n
> +
> +config ARCH_HAS_ILOG2_U64
> + bool
> + default n
> +
> +config GENERIC_FIND_NEXT_BIT
> + bool
> + default y
> +
> +config GENERIC_HWEIGHT
> + bool
> + default y
> +
> +config GENERIC_HARDIRQS
> + bool
> + default y
> +
> +config GENERIC_IRQ_PROBE
> + bool
> + default y
> +
> +config GENERIC_CALIBRATE_DELAY
> + bool
> + default y
> +
> +config PCI
> + bool
> + default n
> +
> +config UID16
> + bool
> + default y
> +
> +config DEFCONFIG_LIST
> + string
> + default "arch/$ARCH/defconfig"
> +
> +source "init/Kconfig"
> +
> +source "arch/microblaze/platform/Kconfig.platform"
> +
> +menu "Processor type and features"
> +config PREEMPT
> + bool "Preemptible Kernel"
> + help
> + This option reduces the latency of the kernel when reacting to
> + real-time or interactive events by allowing a low priority process to
> + be preempted even if it is in kernel mode executing a system call.
> + This allows applications to run more reliably even when the system is
> + under load.
> +
> + Say Y here if you are building a kernel for a desktop, embedded
> + or real-time system. Say N if you are unsure.
> +
> +config PREEMPT_TIMES
> + bool "Collect preemption latency times"
> + depends on PREEMPT
> + help
> + Allow collection for preemption latency times.
> +
> +config XILINX_UNCACHED_SHADOW
> + bool "Are you using uncached shadow for RAM ?"
> + depends on MICROBLAZE
> + default y
> + help
> + This is needed to be able to allocate uncachable memory regions.

We don't seem to spell uncacheable consistently.

Kernel source tree:
uncachable - 27 times
uncacheable - 53 times
google:
uncachable - 11,900 hits
uncacheable - 26,700 hits

so I would use "uncacheable".


> + The feature requires the design to define the RAM memory controller window
> + to be twice as large as the actual physical memory.
> +
> +config LARGE_ALLOCS
> + bool "Allow allocating large blocks (> 1MB) of memory"
> + help
> + Allow the slab memory allocator to keep chains for very large
> + memory sizes - upto 32MB. You may need this if your system has

s/upto/up to/

> + a lot of RAM, and you need to able to allocate very large
> + contiguous chunks. If unsure, say N.

Please indent config symbol help text as indicated in
Documentation/CodingStyle: one tab + 2 spaces for each line of help text.
(Please check all help text.)

> +comment "Boot options"
> +
> +config CMDLINE
> + string "Default kernel command string"
> + default ""
> + help
> + On some architectures there is currently no way for the boot loader
> + to pass arguments to the kernel. For these architectures, you should
> + supply some command-line options at build time by entering them
> + here.
> +
> +config CMDLINE_FORCE
> + bool "Force default kernel command string"
> + help
> + Set this to have arguments from the default kernel command string
> + override those passed by the boot loader

End with period (".").

> +
> +config OF
> + bool
> + default y
> + help
> + Set this to turn on OF

End with period. Is this Open Firmware?

> +config OF_DEVICE
> + bool
> + default y
> + help
> + Set this to turn on OF

Ditto.

> +endmenu
> +
> +config APM_EMULATION
> + bool
> +
> +source "mm/Kconfig"
> +
> +menu "Exectuable file formats"
> +
> +source "fs/Kconfig.binfmt"
> +
> +endmenu
> +
> +source "net/Kconfig"
> +
> +source "drivers/Kconfig"
> +
> +source "fs/Kconfig"
> +
> +source "arch/microblaze/Kconfig.debug"
> +
> +source "security/Kconfig"
> +
> +source "crypto/Kconfig"
> +
> +source "lib/Kconfig"
> diff --git a/arch/microblaze/Kconfig.debug b/arch/microblaze/Kconfig.debug
> new file mode 100644
> index 0000000..1ccdd84
> --- /dev/null
> +++ b/arch/microblaze/Kconfig.debug
> @@ -0,0 +1,22 @@
> +menu "Kernel hacking"
> +
> +source "lib/Kconfig.debug"
> +
> +config EARLY_PRINTK
> + bool "EARLY_PRINTK"
> + default y
> +
> +config EARLY_PRINTK_UARTLITE_ADDRESS
> + hex "Physical address where UART Lite for early printk is mapped"
> + depends on EARLY_PRINTK
> + default "0x40600000"
> + help
> + Please enter physcal address where your uart lite is mapped

End with period. s/physcal/physical/

> +
> +config DEBUG_BOOTMEM
> + depends on DEBUG_KERNEL
> + bool "Debug BOOTMEM initialization"
> +
> +endmenu
> +
> +
> diff --git a/arch/microblaze/platform/Kconfig.platform b/arch/microblaze/platform/Kconfig.platform
> new file mode 100644
> index 0000000..7b8eecb
> --- /dev/null
> +++ b/arch/microblaze/platform/Kconfig.platform
> @@ -0,0 +1,46 @@
> +#
> +# platform selection Kconfig menu for MicroBlaze targets
> +#
> +menu "Platform options"
> +choice
> + prompt "Platform"
> + default PLATFORM_MICROBLAZE_AUTO
> + help
> + Choose which hardware board/platform you are targeting

End with period.

> +
> +config PLATFORM_GENERIC
> + bool "Generic"
> + help
> + Choose this option for the Generic platform

end with period.

> +endchoice
> +
> +# This is stil a bit broken - disabling for now JW 20070504

s/stil/still/

> +config ALLOW_EDIT_AUTO
> + bool "Permit Display/edit of Kconfig.auto platform settings"
> + default n
> + help
> + Allows the editing of auto-generated platform settings from
> + the Kconfig.auto file. Obviously this does not change the
> + underlying hardware, so be very careful if you go editing
> + these settings.
> +
> + Also, if you enable this, and edit various Kconfig.auto
> + settings, YOUR CHANGES WILL BE LOST if you then disable it
> + again. You have been warned!
> +
> + If unsure, say no

End with period.

> +# Ok, the platform is chosen. Source the kconfig.auto to get all of the
> +# system settings.
> +# If user selected CONFIG_EDIT_AUTO, these will be rendered in gory detail
> +# and be able to be edited
> +comment "Automatic platform settings from Kconfig.auto"
> + depends on ALLOW_EDIT_AUTO
> +
> +if PLATFORM_GENERIC=y
> + source "arch/microblaze/platform/generic/Kconfig.auto"
> +endif
> +
> +endmenu
> +
> diff --git a/arch/microblaze/platform/generic/Kconfig.auto b/arch/microblaze/platform/generic/Kconfig.auto
> new file mode 100644
> index 0000000..751369b
> --- /dev/null
> +++ b/arch/microblaze/platform/generic/Kconfig.auto
> @@ -0,0 +1,45 @@
> +#
> +# Platform Kconfig menu for Microblaze generic board
> +#
> +
> +config KERNEL_BASE_ADDR
> + hex "Physical address where Linux Kernel is"
> + default "0x44000000"
> + help
> + BASE Address for kernel
> +
> +config XILINX_ERAM_SIZE
> + hex "Size address of XILINX_RAM" if ALLOW_EDIT_AUTO && XILINX_UNCACHED_SHADOW

What is a "Size address"?

> + default 0x02000000
> +
> +comment "Definitions for MICROBLAZE0"
> + depends on ALLOW_EDIT_AUTO
> +
> +config XILINX_MICROBLAZE0_FAMILY
> + string "Targetted FPGA family" if ALLOW_EDIT_AUTO
> + default spartan3e
> +
> +config XILINX_MICROBLAZE0_HW_VER
> + string "Core version number" if ALLOW_EDIT_AUTO
> + default 5.00.c
> +
> +config XILINX_MICROBLAZE0_USE_MSR_INSTR
> + int "USE_MSR_INSTR" if ALLOW_EDIT_AUTO
> + default 1
> +
> +config XILINX_MICROBLAZE0_USE_BARREL
> + int "USE_BARREL range (0:1)" if ALLOW_EDIT_AUTO
> + default 1

These (above & below) look like booleans. If you really need a
range, config symbols can be specified as ranges. See
Documentation/kbuild/kconfig-language.txt.

> +config XILINX_MICROBLAZE0_USE_DIV
> + int "USE_DIV range (0:1)" if ALLOW_EDIT_AUTO
> + default 1
> +
> +config XILINX_MICROBLAZE0_USE_HW_MUL
> + int "USE_HW_MUL range (0:1)" if ALLOW_EDIT_AUTO
> + default 1
> +
> +config XILINX_MICROBLAZE0_USE_FPU
> + int "USE_FPU range (0:1)" if ALLOW_EDIT_AUTO
> + default 0
> +
> --

---
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/