From: Yoshinori Sato <ysato@users.sourceforge.jp>
To: Linus Torvalds <torvalds@osdl.org>
Cc: linux kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [PATCH] H8/300 IDE support update
Date: Fri, 14 May 2004 21:39:04 +0900 [thread overview]
Message-ID: <m24qqj9o9j.wl%ysato@users.sourceforge.jp> (raw)
- IDE support update.
- unused memory hole delete.
--
Yoshinori Sato
<ysato@users.sourceforge.jp>
diff -Nru linux-2.6.6/arch/h8300/Kconfig.ide linux-2.6.6-h8300/arch/h8300/Kconfig.ide
--- linux-2.6.6/arch/h8300/Kconfig.ide 11 May 2004 02:16:05 -0000
+++ linux-2.6.6-h8300/arch/h8300/Kconfig.ide 14 May 2004 11:44:08 -0000
@@ -1,23 +1,44 @@
# uClinux H8/300 Target Board Selection Menu (IDE)
+if (H8300H_AKI3068NET)
menu "IDE Extra configuration"
config H8300_IDE_BASE
hex "IDE regitser base address"
depends on IDE
+ default 0
help
IDE registers base address
config H8300_IDE_ALT
hex "IDE regitser alternate address"
depends on IDE
+ default 0
help
IDE alternate registers address
config H8300_IDE_IRQ
int "IDE IRQ no"
depends on IDE
+ default 0
help
- IDE I/F using IRQ no
-
+ IDE use IRQ no
endmenu
+endif
+
+if (H8300H_H8MAX)
+config H8300_IDE_BASE
+ hex
+ depends on IDE
+ default 0x200000
+
+config H8300_IDE_ALT
+ hex
+ depends on IDE
+ default 0x60000c
+
+config H8300_IDE_IRQ
+ int
+ depends on IDE
+ default 5
+endif
diff -Nru linux-2.6.6/arch/h8300/kernel/setup.c linux-2.6.6-h8300/arch/h8300/kernel/setup.c
--- linux-2.6.6/arch/h8300/kernel/setup.c 26 Mar 2004 09:12:36 -0000
+++ linux-2.6.6-h8300/arch/h8300/kernel/setup.c 14 May 2004 11:36:34 -0000
@@ -40,16 +40,12 @@
#if defined(__H8300H__)
#define CPU "H8/300H"
+#include <asm/regs306x.h>
#endif
#if defined(__H8300S__)
#define CPU "H8S"
-#endif
-
-#if defined(CONFIG_INTELFLASH)
-#define BLKOFFSET 512
-#else
-#define BLKOFFSET 0
+#include <asm/regs267x.h>
#endif
#define STUBSIZE 0xc000;
@@ -58,8 +54,6 @@
unsigned long memory_start;
unsigned long memory_end;
-struct task_struct *_current_task;
-
char command_line[512];
char saved_command_line[512];
@@ -107,12 +101,11 @@
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
}
@@ -190,6 +183,16 @@
*/
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
diff -Nru linux-2.6.6/include/asm-h8300/ide.h linux-2.6.6-h8300/include/asm-h8300/ide.h
--- linux-2.6.6/include/asm-h8300/ide.h 11 May 2004 12:28:11 -0000
+++ linux-2.6.6-h8300/include/asm-h8300/ide.h 14 May 2004 11:36:35 -0000
@@ -16,37 +16,25 @@
#ifdef __KERNEL__
/****************************************************************************/
-#define IDE_DATA 0x00
-#define IDE_ERROR 0x02
-#define IDE_NSECTOR 0x04
-#define IDE_SECTOR 0x06
-#define IDE_LCYL 0x08
-#define IDE_HCYL 0x0A
-#define IDE_SELECT 0x0C
-#define IDE_STATUS 0x0E
-
-#define IDE_BASE CONFIG_H8300_IDE_BASE
-#define IDE_CTRL CONFIG_H8300_IDE_ALT
-#define IDE_IRQ (EXT_IRQ0 + CONFIG_H8300_IDE_IRQ)
-
static __inline__ int ide_default_irq(unsigned long base)
{
- return IDE_IRQ;
+ return EXT_IRQ0 + CONFIG_H8300_IDE_IRQ;
}
#define ide_init_default_irq(base) ide_default_irq(base)
static __inline__ unsigned long ide_default_io_base(int index)
{
- return 0;
+ return CONFIG_H8300_IDE_BASE;
}
static __inline__ void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port,
unsigned long ctrl_port, int *irq)
{
+ int i;
+ for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++)
+ hw->io_ports[i] = data_port + 2*i;
+ hw->io_ports[IDE_CONTROL_OFFSET] = CONFIG_H8300_IDE_ALT;
}
-
-void ide_init_default_hwifs(void);
-
#define MAX_HWIFS 1
diff -Nru linux-2.6.6/include/asm-h8300/io.h linux-2.6.6-h8300/include/asm-h8300/io.h
--- linux-2.6.6/include/asm-h8300/io.h 11 May 2004 12:28:11 -0000
+++ linux-2.6.6-h8300/include/asm-h8300/io.h 14 May 2004 11:36:35 -0000
@@ -96,7 +96,7 @@
volatile unsigned short *ap = (volatile unsigned short *) addr;
unsigned short *bp = (unsigned short *) buf;
while (len--)
- *ap = *bp++;
+ *ap = _swapw(*bp++);
}
static inline void io_outsl(unsigned int addr, const void *buf, int len)
@@ -104,7 +104,7 @@
volatile unsigned int *ap = (volatile unsigned int *) addr;
unsigned long *bp = (unsigned long *) buf;
while (len--)
- *ap = *bp++;
+ *ap = _swapl(*bp++);
}
static inline void io_insb(unsigned int addr, void *buf, int len)
@@ -129,7 +129,7 @@
volatile unsigned short *ap = (volatile unsigned short *) addr;
unsigned short *bp = (unsigned short *) buf;
while (len--)
- *bp++ = *ap;
+ *bp++ = _swapw(*ap);
}
static inline void io_insl(unsigned int addr, void *buf, int len)
@@ -137,7 +137,7 @@
volatile unsigned int *ap = (volatile unsigned int *) addr;
unsigned long *bp = (unsigned long *) buf;
while (len--)
- *bp++ = *ap;
+ *bp++ = _swapl(*ap);
}
/*
next reply other threads:[~2004-05-14 12:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-14 12:39 Yoshinori Sato [this message]
2004-05-14 13:07 ` [PATCH] H8/300 IDE support update Bartlomiej Zolnierkiewicz
2004-05-14 17:50 ` Yoshinori Sato
2004-05-14 19:38 ` Bartlomiej Zolnierkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m24qqj9o9j.wl%ysato@users.sourceforge.jp \
--to=ysato@users.sourceforge.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.