[PATCH 2/3] ARM: PRIMA2: make mach-prima2 common for all SiRF series SoC
Barry Song
21cnbao at gmail.com
Tue Aug 28 04:08:38 EDT 2012
2012/8/28 Barry Song <21cnbao at gmail.com>:
> 2012/8/21 Arnd Bergmann <arnd at arndb.de>:
>> On Tuesday 21 August 2012, Barry Song wrote:
>>> then i add these to Kconfig.debug as it is a common way
>>>
>>> config DEBUG_PRIMA2_UART1
>>> bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
>>> depends on ARCH_PRIMA2
>>> help
>>> Say Y here if you want the debug print routines to direct
>>> their output to UART1 serial port on SiRFprimaII devices.
>>>
>>> config DEBUG_MARCO_UART1
>>> bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
>>> depends on ARCH_MARCO
>>> help
>>> Say Y here if you want the debug print routines to direct
>>> their output to UART1 serial port on SiRFmarco devices.
>>>
>>> and these in mach-prima2/include/mach/uart.h
>>>
>>> #ifdef CONFIG_DEBUG_PRIMA2_UART1
>>> #define SIRFSOC_UART1_PA_BASE 0xb0060000
>>> #elif defined(CONFIG_DEBUG_MARCO_UART1)
>>> #define SIRFSOC_UART1_PA_BASE 0xcc060000
>>> #endif
>>>
>>> the above codes seem still ugly ?
>>>
>>
>> No, that's fine, about as a good as it gets with today's kernel
>> capabilities. Just fix the description to have the correct
>> SoC name instead of "DaVinci DA8XX" ;-)
>
> except the DEBUG_LL uart base address, i missed the zreladdr-y. for
> primaii, it is 0x00008000, for marco, it is 0x40008000 as marco's
> memory space begins from 0x4000000.
> i would to have AUTO_ZRELADDR for the whole SiRF series.
> but for uImage load address difference in uImage header, which blocks
> multiple SoCs from using same uImage, is "KERNEL_NOLOAD" uImage type
> the current generic solution?
also add Stephen Warren.
i have two verified ways to resolve this problem:
1. use "kernel noload", build uImage by:
make uImage UIMAGE_TYPE=kernel_noload
and add the following patch in kernel:
diff --git a/arch/arm/mach-prima2/Makefile.boot
b/arch/arm/mach-prima2/Makefile.boot
index 53c5225..059bcd7 100644
--- a/arch/arm/mach-prima2/Makefile.boot
+++ b/arch/arm/mach-prima2/Makefile.boot
@@ -1,12 +1,4 @@
-zreladdr-y += 0x00008000
-params_phys-y := 0x00000100
-initrd_phys-y := 0x00800000
#we use kernel_noload uImage and AUTO_ZRELADDR
+zreladdr-y += 0x0
2. don't use kernel's uImage target, mkimage uImage out of kernel by
giving mkimage the "-a 0x40008000" and keep kernel unchanged.
anyway, i think arm SoC needs a generic way to handle this kind of problem.
if we move to 1, i think almost all ARM SoCs don't need Makefile.boot again.
>
>>
>> Arnd
>
> -barry
-barry
More information about the linux-arm-kernel
mailing list