ARM: s3c2440: fix undefined reference to `s3c2440_restart' for machine gta02
Subsystems (3)
PATCH 1/1 ARM: s3c2440: fix undefined reference to `s3c2440_restart' for machine gta02
Without that fix we have(when compiling for the gta02 machine):
LD .tmp_vmlinux1
arch/arm/mach-s3c2440/built-in.o:(.arch.info.init+0x3c): undefined reference to `s3c2440_restart'
make: *** [.tmp_vmlinux1] Error 1
--- arch/arm/mach-s3c2440/Kconfig | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
arch/arm/mach-s3c2440/Kconfig +1 -0
@@ -89,6 +89,7 @@ config MACH_ANUBIS config MACH_NEO1973_GTA02 bool "Openmoko GTA02 / Freerunner phone" select CPU_S3C2442 + select CPU_S3C2440 select MFD_PCF50633 select PCF50633_GPIO select I2C
Signature · 1 line
1.7.4.1
PATCH 1/1 ARM: s3c2440: fix undefined reference to `s3c2440_restart' for machine gta02
Hi Denis,
Am Sonntag 12 Februar 2012, 14:05:29 schrieb Denis 'GNUtoo' Carikli:
Quoted 15 lines
Without that fix we have(when compiling for the gta02 machine):
LD .tmp_vmlinux1
arch/arm/mach-s3c2440/built-in.o:(.arch.info.init+0x3c): undefined
reference to `s3c2440_restart' make: *** [.tmp_vmlinux1] Error 1Signed-off-by Denis 'GNUtoo' Carikli <[email protected]>--- arch/arm/mach-s3c2440/Kconfig | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)arch/arm/mach-s3c2440/Kconfig +0
-0
arch/arm/mach-s3c2440/Kconfig config MACH_ANUBIS · line 95
Quoted 7 lines
arch/arm/mach-s3c2440/Kconfig +1
-0@@ -89,6 +89,7 @@ config MACH_ANUBIS config MACH_NEO1973_GTA02 bool "Openmoko GTA02 / Freerunner phone" select CPU_S3C2442 + select CPU_S3C2440 select MFD_PCF50633 select PCF50633_GPIO select I2C
wouldn't moving the restart function to common code be better than selecting a cpu that is not used?
I've also added the relevant maintainers to the mail.
Heiko
PATCH 1/1 ARM: S3C24XX: Fix restart on S3C2442
Commit b27b072791dc (ARM: 7265/1: restart: S3C24XX: use new restart hook) introduced the new restart hook also for the S3C244x cpus, but it
was only defined in the S3C2440 scope, i.e. when CPU_S3C2440 was
selected. Devices using the S3C2442 like the GTA02 normally don't select
this CPU which leads to compilation errors like:
LD .tmp_vmlinux1
arch/arm/mach-s3c2440/built-in.o:(.arch.info.init+0x3c): undefined reference to `s3c2440_restart'
make: *** [.tmp_vmlinux1] Error 1
Therefore move the s3c2440_restart function to s3c244x.c which is common to both cpus and also fix the naming to reflect this.
--- arch/arm/mach-s3c2440/common.h | 2 +- arch/arm/mach-s3c2440/mach-anubis.c | 2 +- arch/arm/mach-s3c2440/mach-at2440evb.c | 2 +- arch/arm/mach-s3c2440/mach-gta02.c | 2 +- arch/arm/mach-s3c2440/mach-mini2440.c | 2 +- arch/arm/mach-s3c2440/mach-nexcoder.c | 2 +- arch/arm/mach-s3c2440/mach-osiris.c | 2 +- arch/arm/mach-s3c2440/mach-rx1950.c | 2 +- arch/arm/mach-s3c2440/mach-rx3715.c | 2 +- arch/arm/mach-s3c2440/mach-smdk2440.c | 2 +- arch/arm/mach-s3c2440/s3c2440.c | 13 ------------- arch/arm/mach-s3c2440/s3c244x.c | 13 +++++++++++++ 12 files changed, 23 insertions(+), 23 deletions(-)
arch/arm/mach-s3c2440/common.h +1 -1
@@ -12,6 +12,6 @@#ifndef __ARCH_ARM_MACH_S3C2440_COMMON_H#define __ARCH_ARM_MACH_S3C2440_COMMON_H -void s3c2440_restart (char mode,const char *cmd); +void s3c244x_restart (char mode,const char *cmd);#endif /* __ARCH_ARM_MACH_S3C2440_COMMON_H */
arch/arm/mach-s3c2440/mach-anubis.c +1 -1
@@ -487,5 +487,5 @@ MACHINE_START(ANUBIS, "Simtec-Anubis") .init_machine = anubis_init, .init_irq = s3c24xx_init_irq, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-at2440evb.c +1 -1
@@ -222,5 +222,5 @@ MACHINE_START(AT2440EVB, "AT2440EVB") .init_machine = at2440evb_init, .init_irq = s3c24xx_init_irq, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-gta02.c +1 -1
@@ -601,5 +601,5 @@ MACHINE_START(NEO1973_GTA02, "GTA02") .init_irq = s3c24xx_init_irq, .init_machine = gta02_machine_init, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-mini2440.c +1 -1
@@ -701,5 +701,5 @@ MACHINE_START(MINI2440, "MINI2440") .init_machine = mini2440_init, .init_irq = s3c24xx_init_irq, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-nexcoder.c +1 -1
@@ -158,5 +158,5 @@ MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440") .init_machine = nexcoder_init, .init_irq = s3c24xx_init_irq, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-osiris.c +1 -1
@@ -436,5 +436,5 @@ MACHINE_START(OSIRIS, "Simtec-OSIRIS") .init_irq = s3c24xx_init_irq, .init_machine = osiris_init, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-rx1950.c +1 -1
@@ -822,5 +822,5 @@ MACHINE_START(RX1950, "HP iPAQ RX1950") .init_irq = s3c24xx_init_irq, .init_machine = rx1950_init_machine, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-rx3715.c +1 -1
@@ -213,5 +213,5 @@ MACHINE_START(RX3715, "IPAQ-RX3715") .init_irq = rx3715_init_irq, .init_machine = rx3715_init_machine, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/mach-smdk2440.c +1 -1
@@ -183,5 +183,5 @@ MACHINE_START(S3C2440, "SMDK2440") .map_io = smdk2440_map_io, .init_machine = smdk2440_machine_init, .timer = &s3c24xx_timer, - .restart = s3c2440_restart, + .restart = s3c244x_restart,MACHINE_END
arch/arm/mach-s3c2440/s3c2440.c +0 -13
@@ -35,7 +35,6 @@#include <plat/cpu.h> #include <plat/s3c244x.h> #include <plat/pm.h> -#include <plat/watchdog-reset.h> #include <plat/gpio-core.h> #include <plat/gpio-cfg.h>
@@ -74,15 +73,3 @@ void __init s3c2440_map_io(void) s3c24xx_gpiocfg_default.set_pull = s3c24xx_gpio_setpull_1up; s3c24xx_gpiocfg_default.get_pull = s3c24xx_gpio_getpull_1up; } - -void s3c2440_restart (char mode,const char *cmd) -{ -if (mode =='s' ) { -soft_restart (0 ); - } - -arch_wdt_reset (); - -/* we'll take a jump through zero as a poor second */ -soft_restart (0 ); -}
arch/arm/mach-s3c2440/s3c244x.c +13 -0
@@ -46,6 +46,7 @@#include <plat/pm.h> #include <plat/pll.h> #include <plat/nand-core.h> +#include <plat/watchdog-reset.h> static struct map_desc s3c244x_iodesc[]__initdata = {IODESC_ENT (CLKPWR ),
@@ -196,3 +197,15 @@ struct syscore_ops s3c244x_pm_syscore_ops = { .suspend = s3c244x_suspend, .resume = s3c244x_resume, }; + +void s3c244x_restart (char mode,const char *cmd) +{ +if (mode =='s' ) { +soft_restart (0 ); + } + +arch_wdt_reset (); + +/* we'll take a jump through zero as a poor second */ +soft_restart (0 ); +}
Signature · 1 line
1.7.2.3
PATCH 1/1 ARM: S3C24XX: Fix restart on S3C2442
Thanks a lot for the patch.
It compiles fine.
Now time for me to look at runtime boot issues for my gta02.
Denis.
PATCH 1/1 ARM: S3C24XX: Fix restart on S3C2442
Quoted 3 lines
Thanks a lot for the patch.
It compiles fine.
Now time for me to look at runtime boot issues for my gta02.
I've now tested at runtime, here's the boot log:
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 3.3.0-rc3-next-20120213+ (gnutoo at trisquel) (gcc version 4.6.3 20111117 (prerelease) (GCC) ) #74 Mon Feb 13 13:12:05 CET 2012 [ 0.000000] CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: GTA02 [ 0.000000] debug: ignoring loglevel setting. [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] CPU S3C2442B (id 0x32440aab) [ 0.000000] S3C24XX Clocks, Copyright 2004 Simtec Electronics [ 0.000000] S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz [ 0.000000] CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on [ 0.000000] On node 0 totalpages: 32768 [ 0.000000] free_area_init_node: node 0, pgdat c0398220, node_mem_map c03e9000 [ 0.000000] Normal zone: 256 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 32512 pages, LIFO batch:7 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: loglevel=4 console=tty0
console=ttySAC2,115200 init=/sbin/init ro mtdparts=physmap- flash:-(nor);neo1973-nand:0x00040000(qi),0x00040000(depr-ub- env),0x00800000(kernel),0x000a0000(depr),0x00040000(identity- ext2),0x0f6a0000(rootfs) root=/dev/mmcblk0p1 rootwait ignore_loglevel earlyprintk
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Memory: 128MB = 128MB total [ 0.000000] Memory: 125904k/125904k available, 5168k reserved, 0K highmem [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xc8800000 - 0xff000000 ( 872 MB) [ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc0355470 (3382 kB) [ 0.000000] .init : 0xc0356000 - 0xc0374000 ( 120 kB) [ 0.000000] .data : 0xc0374000 - 0xc03988c0 ( 147 kB) [ 0.000000] .bss : 0xc03988e4 - 0xc03e8ab0 ( 321 kB) [ 0.000000] NR_IRQS:85 nr_irqs:85 85 [ 0.000000] irq: clearing pending ext status 000b12f0 [ 0.000000] irq: clearing pending ext status 000902d0 [ 0.000000] irq: clearing subpending status 00000180 [ 0.000000] timer tcon=00000000, tcnt a2c1, tcfg 00000200,00000000, usec 00001eb8 [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] console [tty0] enabled [ 0.005000] Calibrating delay loop... 199.47 BogoMIPS (lpj=498688) [ 0.050000] pid_max: default: 32768 minimum: 301 [ 0.055000] Mount-cache hash table entries: 512 [ 0.060000] Initializing cgroup subsys cpuacct [ 0.065000] Initializing cgroup subsys devices [ 0.070000] Initializing cgroup subsys freezer [ 0.075000] CPU: Testing write buffer coherency: ok [ 0.080000] Setting up static identity map for 0x30281fe8 - 0x30282040 [ 0.090000] devtmpfs: initialized [ 0.095000] gpiochip_add: registered GPIOs 0 to 23 on device: GPIOA [ 0.100000] gpiochip_add: registered GPIOs 32 to 47 on device: GPIOB [ 0.105000] gpiochip_add: registered GPIOs 64 to 79 on device: GPIOC [ 0.110000] gpiochip_add: registered GPIOs 96 to 111 on device: GPIOD [ 0.115000] gpiochip_add: registered GPIOs 128 to 143 on device: GPIOE [ 0.120000] gpiochip_add: registered GPIOs 160 to 167 on device: GPIOF [ 0.125000] gpiochip_add: registered GPIOs 192 to 207 on device: GPIOG [ 0.130000] gpiochip_add: registered GPIOs 224 to 234 on device: GPIOH [ 0.135000] gpiochip_add: registered GPIOs 256 to 271 on device: GPIOJ [ 0.140000] dummy: [ 0.145000] NET: Registered protocol family 16 [ 0.150000] S3C Power Management, Copyright 2004 Simtec Electronics [ 0.155000] S3C2442: Initialising architecture [ 0.160000] S3C24XX DMA Driver, Copyright 2003-2006 Simtec Electronics [ 0.165000] DMA channel 0 at c8804000, irq 33 [ 0.170000] DMA channel 1 at c8804040, irq 34 [ 0.170000] DMA channel 2 at c8804080, irq 35 [ 0.175000] DMA channel 3 at c88040c0, irq 36 [ 0.180000] S3C244X: Clock Support, DVS off [ 0.185000] S3C24XX CPU Frequency driver, s3c244x cpu support [ 0.190000] bio: create slab <bio-0> at 0 [ 0.200000] s3c-i2c s3c2440-i2c: slave address 0x10 [ 0.205000] s3c-i2c s3c2440-i2c: bus frequency set to 97 KHz [ 0.220000] pcf50633 0-0073: Probed device version 19 variant 132 [ 0.245000] wake enabled for irq 53 [ 0.250000] auto: 3300 mV normal [ 0.265000] down1: 1300 <--> 1600 mV at 1300 mV normal [ 0.270000] down1: Voltage range but no REGULATOR_CHANGE_VOLTAGE [ 0.275000] down2: 1800 mV normal [ 0.280000] ldo1: 3300 mV normal [ 0.285000] ldo2: 3300 mV normal [ 0.290000] ldo3: 3000 mV normal [ 0.295000] ldo4: 3200 mV normal [ 0.305000] ldo5: 3000 mV normal [ 0.305000] ldo6: 3000 mV normal [ 0.315000] hcldo: 2000 <--> 3300 mV at 3000 mV normal [ 0.320000] memldo: 1800 mV normal [ 0.325000] s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter [ 0.380000] NET: Registered protocol family 2 [ 0.385000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.390000] TCP established hash table entries: 4096 (order: 3, 32768 bytes) [ 0.395000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes) [ 0.400000] TCP: Hash tables configured (established 4096 bind 4096) [ 0.405000] TCP reno registered [ 0.410000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.415000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.420000] NET: Registered protocol family 1 [ 0.425000] s3c-adc s3c24xx-adc: operating without regulator "vdd" . [ 0.435000] JFFS2 version 2.2. (NAND) (SUMMARY) ? 2001-2006 Red Hat, Inc. [ 0.445000] msgmni has been set to 245 [ 0.450000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) [ 0.455000] io scheduler noop registered [ 0.460000] io scheduler deadline registered (default) [ 0.465000] samsung-uart s3c2440-uart.0: could not find driver data [ 0.470000] samsung-uart s3c2440-uart.1: could not find driver data [ 0.475000] samsung-uart s3c2440-uart.2: could not find driver data [ 0.505000] brd: module loaded [ 0.510000] physmap platform flash device: 00200000 at 18000000 [ 0.515000] physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000020 Chip ID 0x008813 [ 0.520000] Intel/Sharp Extended Query Table at 0x0039 [ 0.525000] Intel/Sharp Extended Query Table at 0x0039 [ 0.530000] Intel/Sharp Extended Query Table at 0x0039 [ 0.535000] Intel/Sharp Extended Query Table at 0x0039 [ 0.540000] Intel/Sharp Extended Query Table at 0x0039 [ 0.545000] cfi_cmdset_0001: Erase suspend on write enabled [ 0.550000] erase region 0: offset=0x0,size=0x2000,blocks=8 [ 0.555000] erase region 1: offset=0x10000,size=0x10000,blocks=31 [ 0.560000] physmap-flash.0: 1 set(s) of 1 interleaved chips --> 4 partitions of 512 KiB [ 0.575000] S3C24XX NAND Driver, (c) 2004 Simtec Electronics [ 0.580000] s3c24xx-nand s3c2440-nand: Tacls=1, 10ns Twrph0=3 30ns, Twrph1=2 20ns [ 0.590000] s3c24xx-nand s3c2440-nand: NAND hardware ECC [ 0.595000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xaa (Samsung NAND 256MiB 1,8V 8-bit) [ 0.610000] mousedev: PS/2 mouse device common for all mice [ 0.615000] samsung-ts s3c2440-ts: driver attached, registering input device [ 0.620000] input: S3C24XX TouchScreen as /devices/virtual/input/input0 [ 0.625000] input: PCF50633 PMU events as /devices/virtual/input/input1 [ 0.635000] pcf50633-rtc pcf50633-rtc: rtc core: registered pcf50633-rtc as rtc0 [ 0.640000] i2c /dev entries driver [ 0.650000] S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics [ 0.655000] s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq disabled [ 0.660000] cpuidle: using governor ladder [ 0.665000] s3c-sdi s3c2440-sdi: powered down. [ 0.670000] s3c-sdi s3c2440-sdi: mmc0 - using pio, sw SDIO IRQ [ 0.680000] TCP westwood registered [ 0.685000] NET: Registered protocol family 17 [ 0.685000] Registering the dns_resolver key type [ 0.695000] turn off boot console earlycon0
It is now waiting for the rootfs that isn't there(since /dev/mmcblk0p1 depend on a driver that is not mainline and that I only applied the patch to test on top of the master branch of linux-next).
Denis.
PATCH 1/1 ARM: S3C24XX: Fix restart on S3C2442
Hi Denis,
Am Montag, 13. Februar 2012, 13:29:37 schrieb Denis 'GNUtoo' Carikli:
Quoted 5 lines
Quoted 3 lines
Thanks a lot for the patch.
It compiles fine.
Now time for me to look at runtime boot issues for my gta02.I've now tested at runtime, here's the boot log:
[snipped boot log]
Quoted 5 lines
It is now waiting for the rootfs that isn't there(since
/dev/mmcblk0p1depend on a driver that is not mainline and that I only applied the patch to test on top of the master branch of linux-next).
thanks for testing, and for still working on the Freerunner. At some point I'd probably like to revive mine :-)
Heiko
PATCH 1/1 ARM: S3C24XX: Fix restart on S3C2442
In reply to Heiko StübnerHi Kgene,
Am Sonntag, 12. Februar 2012, 14:59:54 schrieb Heiko St?bner:
Quoted 9 lines
Commit
b27b072791dc(ARM: 7265/1: restart: S3C24XX: use new restart hook) introduced the new restart hook also for the S3C244x cpus, but it was only defined in the S3C2440 scope, i.e. whenCPU_S3C2440was selected. Devices using the S3C2442 like the GTA02 normally don't select this CPU which leads to compilation errors like:
LD .tmp_vmlinux1
arch/arm/mach-s3c2440/built-in.o:(.arch.info.init+0x3c): undefined
reference to `s3c2440_restart' make: *** [.tmp_vmlinux1] Error 1
Quoted 5 lines
Therefore move the
s3c2440_restartfunction tos3c244x.cwhich is common to both cpus and also fix the naming to reflect this.Reported-by Denis 'GNUtoo' Carikli <[email protected]>Signed-off-by Heiko Stuebner <[email protected]>
could you take a look at this patch and possibly pick it up as fix for the current -rcs.
Thanks
Heiko
PATCH 1/1 ARM: S3C24XX: Fix restart on S3C2442
Quoted 12 lines · Heiko St?bner
Hi Kgene,
Am Sonntag, 12. Februar 2012, 14:59:54 schrieb Heiko St?bner:
Quoted 9 lines
Commit
b27b072791dc(ARM: 7265/1: restart: S3C24XX: use new restart hook) introduced the new restart hook also for the S3C244x cpus, but it was only defined in the S3C2440 scope, i.e. whenCPU_S3C2440was selected. Devices using the S3C2442 like the GTA02 normally don't select this CPU which leads to compilation errors like:
LD .tmp_vmlinux1
arch/arm/mach-s3c2440/built-in.o:(.arch.info.init+0x3c): undefined
reference to `s3c2440_restart' make: *** [.tmp_vmlinux1] Error 1
Quoted 8 lines
Quoted 5 lines
Therefore move the
s3c2440_restartfunction tos3c244x.cwhich is common to both cpus and also fix the naming to reflect this.Reported-by Denis 'GNUtoo' Carikli<[email protected]>Signed-off-by Heiko Stuebner<[email protected]>could you take a look at this patch and possibly pick it up as fix for the current -rcs.
Hi,
Yes, looks ok to me. I will apply in v3.3-samsung-fixes-4.
Thanks for fixing and testing :)
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.