2 * linux/arch/arm/mach-s3c44b0x/arch.c
3 * nickmit_zheng@eastday.com
5 * Hyok S. Choi (hyok.choi@samsung.com)
6 * linux 2.6 armnommu porting
8 #include <linux/types.h>
9 #include <linux/sched.h>
10 #include <linux/interrupt.h>
11 #include <linux/types.h>
12 #include <linux/kernel.h>
13 #include <linux/init.h>
14 #include <linux/list.h>
15 #include <linux/device.h>
16 #include <linux/slab.h>
17 #include <linux/string.h>
18 #include <linux/sysdev.h>
20 #include <asm/hardware.h>
23 #include <asm/setup.h>
24 #include <asm/mach-types.h>
26 #include <asm/mach/arch.h>
27 #include <asm/mach/irq.h>
28 #include <asm/mach/map.h>
30 #include <linux/tty.h>
32 #include <linux/root_dev.h>
33 #include <linux/initrd.h>
36 //#define DEFAULT_MAX_MAP_COUNT 65536
37 //int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
39 int s3c44b0x_fMHZ
= CONFIG_ARM_CLK
/ 1000000;
40 int s3c44b0x_finMHZ
= CONFIG_ARM_CLK_FIN
/ 1000000;
42 extern void __init
s3c44b0x_init_irq(void);
43 extern void s3c44b0x_time_init(void);
45 void __init
s3c44b0x_init_machine(void)
49 #if CONFIG_DEBUG_NICKMIT
50 // char my_cmdline[] = "root=/dev/ram rw initrd=0x0c700000,512K";
51 char my_cmdline
[1024] = "root=/dev/nfs "
52 "nfsroot=192.168.1.24:/armboot "
53 "ip=192.168.1.8:192.168.1.24:192.168.1.1:255.255.255.0:arm:eth0:off";
55 void __init
change_cmdline(char **cmdline
)
57 int magic_addr
[] = {0xcf00000, 0xce000000, 0x1e0000};
58 char magic_head
[] = "Kernel cmdline:";
60 int cnt
= sizeof (magic_addr
) / sizeof (int);
63 p
= (char *) magic_addr
[i
];
64 if (strncmp(p
, magic_head
, (sizeof magic_head
) - 1) != 0)
66 p
+= sizeof magic_head
- 1;
68 while (*p
!= '\r' && *p
!= '\n' && (d
- my_cmdline
- sizeof my_cmdline
))
72 *cmdline
= my_cmdline
;
75 *cmdline
= my_cmdline
;
78 void __init
load_initrd(void *src
, void *dst
, size_t count
)
81 printk("Load initrd image from flash(%08x) to SDRAM(%08x), Length = %d ...", src
, dst
, count
);
82 memmove(dst
, src
, count
);
85 printk("%s\n", memcmp(src
, dst
, count
) == 0 ? "Done" : "Failed");
92 void __init
s3c44b0x_fixup(struct machine_desc
*desc
, struct param_struct
*params
, char **cmdline
, struct meminfo
*mi
)
94 #if CONFIG_NICKMIT_DEBUG
95 change_cmdline(cmdline
);
96 // load_initrd(0x1000, 0x0c700000, 0x100000);
100 MACHINE_START(S3C44B0
, "S3C44B0X Development Board")
101 MAINTAINER("nickmit <nickmit_zheng@eastday.com>")
102 FIXUP(s3c44b0x_fixup
)
103 INITIRQ(s3c44b0x_init_irq
)
104 INIT_MACHINE(s3c44b0x_init_machine
)
105 INITTIME(s3c44b0x_time_init
)