X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fh8300%2Fkernel%2Fsetup.c;h=6adf8f41d2a1f153fdf7ba9b1fc9598cb0674329;hb=refs%2Fheads%2Fvserver;hp=7bab2e30d711e704add8b6fd0879d9ac534f7075;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/arch/h8300/kernel/setup.c b/arch/h8300/kernel/setup.c index 7bab2e30d..6adf8f41d 100644 --- a/arch/h8300/kernel/setup.c +++ b/arch/h8300/kernel/setup.c @@ -16,7 +16,6 @@ * This file handles the architecture-dependent parts of system setup */ -#include #include #include #include @@ -30,6 +29,7 @@ #include #include #include +#include #include #include @@ -40,16 +40,12 @@ #if defined(__H8300H__) #define CPU "H8/300H" +#include #endif #if defined(__H8300S__) #define CPU "H8S" -#endif - -#if defined(CONFIG_INTELFLASH) -#define BLKOFFSET 512 -#else -#define BLKOFFSET 0 +#include #endif #define STUBSIZE 0xc000; @@ -58,10 +54,7 @@ unsigned long rom_length; unsigned long memory_start; unsigned long memory_end; -struct task_struct *_current_task; - -char command_line[512]; -char saved_command_line[512]; +char command_line[COMMAND_LINE_SIZE]; extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end; extern int _ramstart, _ramend; @@ -107,12 +100,11 @@ void __init setup_arch(char **cmdline_p) memory_start = (unsigned long) &_ramstart; /* allow for ROMFS on the end of the kernel */ - if (memcmp((void *)(memory_start + BLKOFFSET), "-rom1fs-", 8) == 0) { + if (memcmp((void *)memory_start, "-rom1fs-", 8) == 0) { #if defined(CONFIG_BLK_DEV_INITRD) - initrd_start = memory_start += BLKOFFSET; + initrd_start = memory_start; initrd_end = memory_start += be32_to_cpu(((unsigned long *) (memory_start))[2]); #else - memory_start += BLKOFFSET; memory_start += be32_to_cpu(((unsigned long *) memory_start)[2]); #endif } @@ -124,7 +116,7 @@ void __init setup_arch(char **cmdline_p) #endif #else if ((memory_end < CONFIG_BLKDEV_RESERVE_ADDRESS) && - (memory_end > CONFIG_BLKDEV_RESERVE_ADDRESS) + (memory_end > CONFIG_BLKDEV_RESERVE_ADDRESS)) /* overlap userarea */ memory_end = CONFIG_BLKDEV_RESERVE_ADDRESS; #endif @@ -162,8 +154,8 @@ void __init setup_arch(char **cmdline_p) #endif /* Keep a copy of command line */ *cmdline_p = &command_line[0]; - memcpy(saved_command_line, command_line, sizeof(saved_command_line)); - saved_command_line[sizeof(saved_command_line)-1] = 0; + memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); + saved_command_line[COMMAND_LINE_SIZE-1] = 0; #ifdef DEBUG if (strlen(*cmdline_p)) @@ -190,6 +182,16 @@ void __init setup_arch(char **cmdline_p) */ paging_init(); h8300_gpio_init(); +#if defined(CONFIG_H8300_AKI3068NET) && defined(CONFIG_IDE) + { +#define AREABIT(addr) (1 << (((addr) >> 21) & 7)) + /* setup BSC */ + volatile unsigned char *abwcr = (volatile unsigned char *)ABWCR; + volatile unsigned char *cscr = (volatile unsigned char *)CSCR; + *abwcr &= ~(AREABIT(CONFIG_H8300_IDE_BASE) | AREABIT(CONFIG_H8300_IDE_ALT)); + *cscr |= (AREABIT(CONFIG_H8300_IDE_BASE) | AREABIT(CONFIG_H8300_IDE_ALT)) | 0x0f; + } +#endif #ifdef DEBUG printk(KERN_DEBUG "Done setup_arch\n"); #endif @@ -215,7 +217,7 @@ static int show_cpuinfo(struct seq_file *m, void *v) "BogoMips:\t%lu.%02lu\n" "Calibration:\t%lu loops\n", cpu,mode, - clockfreq/100,clockfreq%100, + clockfreq/1000,clockfreq%1000, (loops_per_jiffy*HZ)/500000,((loops_per_jiffy*HZ)/5000)%100, (loops_per_jiffy*HZ));