lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 17 Feb 2015 16:39:13 +0900
From:	Yoshinori Sato <ysato@...rs.sourceforge.jp>
To:	Paul Bolle <pebolle@...cali.nl>
Cc:	linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org
Subject: Re: [PATCH v3 10/15] h8300: Build scripts

At Sun, 15 Feb 2015 20:23:04 +0100,
Paul Bolle wrote:
> 
> On Sun, 2015-02-15 at 16:49 +0900, Yoshinori Sato wrote:
> > Signed-off-by: Yoshinori Sato <ysato@...rs.sourceforge.jp>
> > ---
> >  arch/h8300/Kconfig              | 119 +++++++++++++++++++++++++++++++++++
> >  arch/h8300/Kconfig.cpu          | 136 ++++++++++++++++++++++++++++++++++++++++
> >  arch/h8300/Kconfig.debug        |  23 +++++++
> >  arch/h8300/Makefile             |  45 +++++++++++++
> >  arch/h8300/kernel/Makefile      |  16 +++++
> >  arch/h8300/kernel/vmlinux.lds.S |  85 +++++++++++++++++++++++++
> >  6 files changed, 424 insertions(+)
> >  create mode 100644 arch/h8300/Kconfig
> >  create mode 100644 arch/h8300/Kconfig.cpu
> >  create mode 100644 arch/h8300/Kconfig.debug
> >  create mode 100644 arch/h8300/Makefile
> >  create mode 100644 arch/h8300/kernel/Makefile
> >  create mode 100644 arch/h8300/kernel/vmlinux.lds.S
> > 
> > diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
> > new file mode 100644
> > index 0000000..828c356
> > --- /dev/null
> > +++ b/arch/h8300/Kconfig
> > @@ -0,0 +1,119 @@
> > +config H8300
> > +	bool
> > +	default y
> > +	select HAVE_IDE
> > +	select GENERIC_ATOMIC64
> > +	select HAVE_UID16
> > +	select VIRT_TO_BUS
> > +	select ARCH_WANT_IPC_PARSE_VERSION
> > +	select GENERIC_IRQ_SHOW
> > +	select FRAME_POINTER
> > +	select GENERIC_CPU_DEVICES
> > +	select MODULES_USE_ELF_RELA
> > +	select GENERIC_CLOCKEVENTS
> > +	select CLKDEV_LOOKUP
> > +	select COMMON_CLK
> > +	select HAVE_ARCH_TRACEHOOK
> > +	select ARCH_WANT_FRAME_POINTERS
> > +
> > +config MMU
> > +	bool
> > +	default n
> > +
> > +config SWAP
> > +	bool
> > +	default n
> > +
> 
> MMU will always be 'n'. (So the entry for MMU is not strictly needed,
> but I guess it is clearer to explicitly set this to 'n'.) But that means
> there's no reason here to mask the global SWAP config (see
> init/Kconfig), as that will also always be 'n' for H8300.

OK.
remove it.

> > +config ZONE_DMA
> > +	bool
> > +	default y
> > +
> > +config FPU
> > +	bool
> > +	default n
> 
> Why is this needed?

Inneeded.
Remove it.

> > +
> > +config RWSEM_GENERIC_SPINLOCK
> > +	bool
> > +	default y
> > +
> > +config RWSEM_XCHGADD_ALGORITHM
> > +	bool
> > +	default n
> 
> Not strictly needed.

OK.

> 
> > +config ARCH_HAS_ILOG2_U32
> > +	bool
> > +	default n
> > +
> 
> Ditto.
> 
> > +config ARCH_HAS_ILOG2_U64
> > +	bool
> > +	default n
> > +
> 
> Ditto.
> 
> > +config GENERIC_HWEIGHT
> > +	bool
> > +	default y
> > +
> > +config GENERIC_CALIBRATE_DELAY
> > +	bool
> > +	default y
> > +
> > +config GENERIC_BUG
> > +        bool
> > +        depends on BUG
> > +
> 
> GENERIC_BUG can never be set for H8300, so this entry is not needed.

OK.
Remove.

> > +config TIME_LOW_RES
> > +	bool
> > +	default y
> > +
> > +config NO_IOPORT_MAP
> > +	def_bool y
> > +
> > +config NO_DMA
> > +	def_bool n
> 
> Not needed (please note that only a few architectures have an entry for
> NO_DMA).

OK.
Remove.

> > +config ISA
> > +        def_bool n
> > +
> > +config PCI
> > +	def_bool n
> > +
> 
> Neither ISA nor PCI will ever be set, won't they? So you might as well
> drop these too.
> 
> > +config HZ
> > +	int
> > +	default 100
> > +
> > +config NR_CPUS
> > +        int
> 
> Eight spaces instead of one tab.

OK.

> > +	default 1
> > +
> > +source "init/Kconfig"
> > +
> > +source "kernel/Kconfig.freezer"
> > +
> > +source "arch/h8300/Kconfig.cpu"
> > +
> > +menu "Kernel Features"
> > +
> > +source "kernel/Kconfig.preempt"
> > +
> > +source "mm/Kconfig"
> > +
> > +endmenu
> > +
> > +menu "Executable file formats"
> > +
> > +source "fs/Kconfig.binfmt"
> > +
> > +endmenu
> > +
> > +source "net/Kconfig"
> > +
> > +source "drivers/Kconfig"
> > +
> > +source "fs/Kconfig"
> > +
> > +source "arch/h8300/Kconfig.debug"
> > +
> > +source "security/Kconfig"
> > +
> > +source "crypto/Kconfig"
> > +
> > +source "lib/Kconfig"
> > diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu
> > new file mode 100644
> > index 0000000..2eaa797
> > --- /dev/null
> > +++ b/arch/h8300/Kconfig.cpu
> > @@ -0,0 +1,136 @@
> > +menu "Processor type and features"
> > +
> > +choice
> > +	prompt "H8/300 platform"
> > +
> > +config H8300_AE3068
> > +	bool "AE-3068/69"
> > +	select H83069
> > +	select RAMKERNEL
> > +	help
> > +	  AKI-H8/3068F / AKI-H8/3069F Flashmicom LAN Board Support
> > +	  More Information. (Japanese Only)
> > +	  <http://akizukidenshi.com/catalog/default.aspx>
> > +	  AE-3068/69 Evaluation Board Support
> > +	  More Information.
> > +	  <http://www.microtronique.com/ae3069lan.htm>
> > +
> > +config H8300_H8MAX
> > +	bool "H8MAX"
> > +	select H83069
> > +	select RAMKERNEL
> > +	help
> > +	  H8MAX Evaluation Board Support
> > +	  More Information. (Japanese Only)
> > +	  <http://strawberry-linux.com/h8/index.html>
> > +
> > +config H8300_KANEBEBE
> > +	bool "KaneBebe"
> > +	select H83069
> > +	select RAMKERNEL
> > +	help
> > +	  KaneBebe Evalition Board Support
> > +
> > +config H8300H_SIM
> > +	bool "H8/300H GDB Simulator"
> > +	select H83069
> > +	select ROMKERNEL
> > +	help
> > +	  GDB Simulator Support
> > +	  More Information.
> > +	  <http://sourceware.org/sid/>
> > +
> > +config H8S_EDOSK2674
> > +	bool "EDOSK-2674"
> > +	select H8S2678
> > +	select RAMKERNEL
> > +	help
> > +	  Renesas EDOSK-2674 Evaluation Board Support
> > +	  More Information.
> > +	  <http://www.azpower.com/H8-uClinux/index.html>
> > + 	  <http://www.renesas.eu/products/tools/introductory_evaluation_tools/evaluation_development_os_kits/edosk2674r/edosk2674r_software_tools_root.jsp>
> > +
> > +config H8S_SIM
> > +	bool "H8S GDB Simulator"
> > +	select H8S2678
> > +	select ROMKERNEL
> > +	help
> > +	  GDB Simulator Support
> > +	  More Information.
> > +	  <http://sourceware.org/sid/>
> > +
> > +endchoice
> > +
> > +choice
> > +	prompt "CPU Selection"
> > +
> > +config H83069
> > +	bool "H8/3065,3066,3067,3068,3069"
> > +	select CPU_H8300H
> > +	select H8300_TMR8
> > +	select H8300_TMR16
> > +
> > +config H8S2678
> > +	bool "H8S/2670,2673,2674R,2675,2676"
> > +	select CPU_H8S
> > +	select H8300_TMR8
> > +	select H8300_TPU
> > +
> > +endchoice
> > +
> 
> All platforms either select H83069 or H8S2678. So this choice looks odd.
> Can't you just drop the choice wrapper, and make this two entries
> without prompt (ie, make it two symbols that are selected only, and
> never set manually)?

Yes. not needed choice.
Remove.

> Also note that H8300_TMR8 will always be set. So that it seems not
> really needed (ie, it's an alias for H8300).

This entry obsoleted.
Remove.

> > +config CPU_CLOCK
> > +	int "CPU Clock Frequency"
> > +	depends on ROMKERNEL
> > +	default "200000000" if H8300H_AKI3068NET || H8300H_SIM
> 
> There's no symbol H8300H_AKI3068NET. Why is that (optional) dependency
> added?
> 
> > +	default "250000000" if H8300H_H8MAX || H8300H_KANEBEBE
> 
> Neither symbols exist. Why is this default needed?

And this not used current code.
Remove.

> > +	default "333333333" if H8S_EDOSK2674 || H8S_SIM
> > +	help
> > +	  CPU Clock Frequency
> > +
> > +choice
> > +	prompt "Kernel executes from"
> > +	---help---
> > +	  Choose the memory type that the kernel will be running in.
> > +
> > +config RAMKERNEL
> > +	bool "RAM"
> > +	help
> > +	  The kernel will be resident in RAM when running.
> > +
> > +config ROMKERNEL
> > +	bool "ROM"
> > +	help
> > +	  The kernel will be resident in FLASH/ROM when running.
> > +endchoice
> 
> All platforms either select RAMKERNEL or ROMKERNEL. So this choice also
> looks odd. Can't you, again, drop the choice wrapper, and make these two
> entries without prompt?

Hmm.
It's considered.

> > +config CPU_H8300H
> > +	bool
> > +	depends on H83069
> > +	default y
> > +
> > +config CPU_H8S
> > +	bool
> > +	depends on H8S2678
> > +	default y
> > +
> > +config ROMSIZE
> > +	hex "ROM size"
> > +	depends on ROMKERNEL
> > +	default 0x200000
> > +
> > +config RAMBASE
> > +	hex "RAM base address"
> > +	default 0x400000
> > +
> > +config RAMSIZE
> > +	hex "RAM size"
> > +	depends on ROMKERNEL
> > +	default 0x200000 if H8300_AE3068 || H8300_H8MAX || H8300H_SIM
> > +	default 0x400000 if H8300_KANEBEBE
> > +	default 0x800000 if H8S_EDOSK2674 || H8S_SIM
> > +
> > +config OFFSET
> > +        hex "Load offset"
> 
> Eight spaces instead of one tab?

OK.

> > +	default 0
> > +
> > +endmenu
> > diff --git a/arch/h8300/Kconfig.debug b/arch/h8300/Kconfig.debug
> > new file mode 100644
> > index 0000000..eb72b01
> > --- /dev/null
> > +++ b/arch/h8300/Kconfig.debug
> > @@ -0,0 +1,23 @@
> > +menu "Kernel hacking"
> > +
> > +source "lib/Kconfig.debug"
> > +
> > +config FULLDEBUG
> > +	bool "Full Symbolic/Source Debugging support"
> > +	help
> > +	  Enable debugging symbols on kernel build.
> > +
> > +config HIGHPROFILE
> > +	bool "Use fast second timer for profiling"
> > +	help
> > +	  Use a fast secondary clock to produce profiling information.
> > +
> > +config NO_KERNEL_MSG
> > +	bool "Suppress Kernel BUG Messages"
> > +	help
> > +	  Do not output any debug BUG messages within the kernel.
> > +
> > +config SH_STANDARD_BIOS
> > +       def_bool n
> > +
> 
> I don't think this entry is needed.

This entry using sh-sci. 

> > +endmenu
> > diff --git a/arch/h8300/Makefile b/arch/h8300/Makefile
> > new file mode 100644
> > index 0000000..44e915c
> > --- /dev/null
> > +++ b/arch/h8300/Makefile
> > @@ -0,0 +1,45 @@
> > +#
> > +# arch/h8300/Makefile
> > +#
> > +# This file is subject to the terms and conditions of the GNU General Public
> > +# License.  See the file "COPYING" in the main directory of this archive
> > +# for more details.
> > +#
> > +# (C) Copyright 2002-2015 Yoshinori Sato <ysato@...rs.sourceforge.jp>
> > +#
> > +
> > +cflags-$(CONFIG_CPU_H8300H)	:= -mh
> > +aflags-$(CONFIG_CPU_H8300H)	:= -mh -Wa,--mach=h8300h
> > +ldflags-$(CONFIG_CPU_H8300H)	:= -mh8300helf_linux
> > +cflags-$(CONFIG_CPU_H8S)	:= -ms
> > +aflags-$(CONFIG_CPU_H8S)	:= -ms -Wa,--mach=h8300s
> > +ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self_linux
> > +
> > +KBUILD_CFLAGS += $(cflags-y)
> > +KBUILD_CFLAGS += -mint32 -fno-builtin
> > +KBUILD_CFLAGS += -D__linux__
> > +KBUILD_CFLAGS += -DUTS_SYSNAME=\"uClinux\"
> > +KBUILD_AFLAGS += $(aflags-y)
> > +LDFLAGS += $(ldflags-y)
> > +
> > +CROSS_COMPILE := h8300-unknown-linux-
> > +
> > +core-y	+= arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
> > +
> > +libs-y	+= arch/$(ARCH)/lib/
> > +
> > +boot := arch/h8300/boot
> > +
> > +archmrproper:
> > +
> > +archclean:
> > +	$(Q)$(MAKE) $(clean)=$(boot)
> > +
> > +vmlinux.srec vmlinux.bin zImage uImage.bin: vmlinux
> > +	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
> > +
> > +define archhelp
> > +  @echo  'vmlinux.bin  - Create raw binary'
> > +  @echo  'vmlinux.srec - Create srec binary'
> > +  @echo  'zImage       - Compressed kernel image'
> > +endef
> > diff --git a/arch/h8300/kernel/Makefile b/arch/h8300/kernel/Makefile
> > new file mode 100644
> > index 0000000..0b5fe00
> > --- /dev/null
> > +++ b/arch/h8300/kernel/Makefile
> > @@ -0,0 +1,16 @@
> > +#
> > +# Makefile for the linux kernel.
> > +#
> > +
> > +extra-y := vmlinux.lds
> > +
> > +obj-y := process.o traps.o ptrace.o \
> > +	 signal.o setup.o syscalls.o \
> > +	 irq.o entry.o dma.o cpu/
> > +
> > +obj-$(CONFIG_ROMKERNEL) += head_rom.o
> > +obj-$(CONFIG_RAMKERNEL) += head_ram.o
> > +
> > +obj-$(CONFIG_MODULES) += module.o h8300_ksyms.o
> > +obj-$(CONFIG_H8300H_SIM) += sim-console.o
> > +obj-$(CONFIG_H8S_SIM) += sim-console.o
> > diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S
> > new file mode 100644
> > index 0000000..e1b49aa
> > --- /dev/null
> > +++ b/arch/h8300/kernel/vmlinux.lds.S
> > @@ -0,0 +1,85 @@
> > +#include <asm-generic/vmlinux.lds.h>
> > +#include <asm/page.h>
> > +
> > +#define ROMTOP 0x000000
> > +#define RAMTOP CONFIG_RAMBASE
> > +
> > +jiffies = jiffies_64 + 4;
> > +
> > +ENTRY(_start)
> > +
> > +SECTIONS
> > +{
> > +#if defined(CONFIG_ROMKERNEL)
> > +	. = ROMTOP;
> > +	.vectors :
> > +	{
> > +	_vector = . ;
> > +		*(.vector*)
> > +	}
> > +#else
> > +	. = RAMTOP;
> > +	_ramstart = .;
> > +	. = . + CONFIG_OFFSET;
> > +#endif
> > +	_text = .;
> > +	HEAD_TEXT_SECTION
> > +	.text : {
> > +	_stext = . ;
> > +		TEXT_TEXT
> > +		SCHED_TEXT
> > +		LOCK_TEXT
> > +#if defined(CONFIG_ROMKERNEL)
> > +		*(.int_redirect)
> > +#endif
> > +	_etext = . ;
> > +	}
> > +	EXCEPTION_TABLE(16)
> > +	NOTES
> > +	RO_DATA(4)
> > +#if defined(CONFIG_ROMKERNEL)
> > +	.init.text : {
> > +		_sinittext = .;
> > +		INIT_TEXT
> > +		_einittext = .;
> > +	}
> > +	SECURITY_INIT
> > +#endif
> > +	ROMEND = .;
> > +#if defined(CONFIG_ROMKERNEL)
> > +	. = RAMTOP;
> > +	_ramstart = .;
> > +	.data :	AT(ROMEND)
> > +#else
> > +	.data :
> > +#endif
> > +	{
> > +	_sdata = . ;
> > +	__data_start = . ;
> > +		INIT_TASK_DATA(0x2000)
> > +		NOSAVE_DATA
> > +		PAGE_ALIGNED_DATA(0x1000)
> > +		CACHELINE_ALIGNED_DATA(0x0002)
> > +		READ_MOSTLY_DATA(0x0002)
> > +		DATA_DATA
> > +		CONSTRUCTORS
> > +	}
> > +	. = ALIGN(0x4) ;
> > +	__init_begin = .;
> > +#if defined(CONFIG_RAMKERNEL)
> > +	INIT_TEXT_SECTION(4)
> > +#endif
> > +	INIT_DATA_SECTION(4)
> > +#if defined(CONFIG_RAMKERNEL)
> > +	SECURITY_INIT
> > +#endif
> > +	__init_end = .;
> > +	_edata = . ;
> > +	_begin_data = LOADADDR(.data);
> > +	_sbss =.;
> > +	BSS_SECTION(4,4,4)
> > +	_ebss =.;
> > +	_ramend = .;
> > +	_end = .;
> > +	DISCARDS
> > +}
> 
> 
> Paul Bolle
> 

-- 
Yoshinori Sato
<ysato@...rs.sourceforge.jp>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ