In message [off-list ref] you wrote:
I am using the Linux kernel from www.denx.de that has the version 2.4.4
(2002-08-09) with all the support for the 8xx pcmcia/direct etc... code.
When Linux boots (using NFS remote filesystem) it comes up and prints the
following:
<misc deleted>
...
Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.120:/ppcroot
nfsaddrs=19
2.168.0.20:192.168.0.120 init=/bin/bash idebus=25
ide_setup: idebus=25PCMCIA slot B: phys mem e0000000...ec000000 (size
0c000000)
Card ID: SST 48CF032 55LD017-A2 FW17-4C
Fixed Disk Card
IDE interface
[silicon] [unique] [single] [sleep] [standby] [idle] [low power]
...
<more stuff deleted>
...
This "more stuff deleted" would have been the interesting part; the
kernel will tell you something about the partition table it
recognizes, or at least the device. So if you are sure your device
contains a valid partition table with at least one valid partition,
you should have seen something like:
...
hda: probing with STATUS(0x50) instead of ALTSTATUS(0x41)
hda: CF 128MB, ATA DISK drive
ide0 at 0xc7000320-0xc7000327,0xc3000106 on irq 13
hda: 250368 sectors (128 MB) w/16KiB Cache, CHS=978/8/32
Partition check:
hda: hda1
and finally gives me a shell prompt. In the above, the Kernel seems to
recognize the card as being an SST-based flash card. All seems okay but the
IDE device does not appear in the /proc/devices listing. Also, I can't
mount a filesystem (probably because the IDE doesn't seem to have installed
completely). The card I am using has a DOS filesystem on it with a few
files that I added. My /etc/fstab has the following entry:
/dev/hda1 /mnt/flash msdos noauto,owner 0 0
Using make menuconfig, I set the following:
under IDE, ATA and ATAPI Block Devices:
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
[*] MPC8xx IDE support
(8xx_PCCARD) Type of MPC8xx IDE interface
under File systems:
<*> DOS FAT fs support
<*> MSDOS fs support
<*> UMSDOS: Unix-like file system on top of standard MSDOS fs
<*> VFAT (Windows-95) fs support
Questions:
- should the device really be hda1 ?
Yes, most probably.
- is there something more that I forgot in my board config header file for
setting up pcmcia?
No, I don't think so.
My guess is that you forgot to enable any partition table support in
your Linux kernel. Make sure your config file contains:
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_MPC8xx_IDE=y
CONFIG_BLK_DEV_IDE_MODES=y
and
CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="y"
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=y
See also our documentation at http://www.denx.de/re/DPLG.html
especially section "7. Advanced Topics" (7.3.2. PC Card Support in
Linux).
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd@denx.de
The following statement is not true. The previous statement is true.
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
In message [off-list ref] you wrote:
quoted
I am using the Linux kernel from www.denx.de that has the version 2.4.4
(2002-08-09) with all the support for the 8xx pcmcia/direct etc... code.
When Linux boots (using NFS remote filesystem) it comes up and
prints the
quoted
following:
<misc deleted>
...
Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.120:/ppcroot
nfsaddrs=19
2.168.0.20:192.168.0.120 init=/bin/bash idebus=25
ide_setup: idebus=25PCMCIA slot B: phys mem e0000000...ec000000 (size
0c000000)
Card ID: SST 48CF032 55LD017-A2 FW17-4C
Fixed Disk Card
IDE interface
[silicon] [unique] [single] [sleep] [standby] [idle] [low power]
...
<more stuff deleted>
...
This "more stuff deleted" would have been the interesting part; the
kernel will tell you something about the partition table it
recognizes, or at least the device. So if you are sure your device
contains a valid partition table with at least one valid partition,
you should have seen something like:
...
hda: probing with STATUS(0x50) instead of ALTSTATUS(0x41)
hda: CF 128MB, ATA DISK drive
ide0 at 0xc7000320-0xc7000327,0xc3000106 on irq 13
hda: 250368 sectors (128 MB) w/16KiB Cache, CHS=978/8/32
Partition check:
hda: hda1
quoted
and finally gives me a shell prompt. In the above, the Kernel seems to
recognize the card as being an SST-based flash card. All seems
okay but the
quoted
IDE device does not appear in the /proc/devices listing. Also, I can't
mount a filesystem (probably because the IDE doesn't seem to
have installed
quoted
completely). The card I am using has a DOS filesystem on it with a few
files that I added. My /etc/fstab has the following entry:
/dev/hda1 /mnt/flash msdos noauto,owner 0 0
Using make menuconfig, I set the following:
under IDE, ATA and ATAPI Block Devices:
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
[*] MPC8xx IDE support
(8xx_PCCARD) Type of MPC8xx IDE interface
under File systems:
<*> DOS FAT fs support
<*> MSDOS fs support
<*> UMSDOS: Unix-like file system on top of standard MSDOS fs
<*> VFAT (Windows-95) fs support
Questions:
- should the device really be hda1 ?
Yes, most probably.
quoted
- is there something more that I forgot in my board config
header file for
quoted
setting up pcmcia?
No, I don't think so.
My guess is that you forgot to enable any partition table support in
your Linux kernel. Make sure your config file contains:
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_MPC8xx_IDE=y
CONFIG_BLK_DEV_IDE_MODES=y
and
CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="y"
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=y
See also our documentation at http://www.denx.de/re/DPLG.html
especially section "7. Advanced Topics" (7.3.2. PC Card Support in
Linux).
Wolfgang Denk
I checked these and made a couple of changes but to no avail. Then I added
the following lines to my board configuration file that I copied from the
tqm8xx.h file:
/*
* Definitions for IDE0 Interface
*/
#define IDE0_BASE_OFFSET 0
#define IDE0_DATA_REG_OFFSET (PCMCIA_MEM_SIZE + 0x320)
#define IDE0_ERROR_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 1)
#define IDE0_NSECTOR_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 2)
#define IDE0_SECTOR_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 3)
#define IDE0_LCYL_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 4)
#define IDE0_HCYL_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 5)
#define IDE0_SELECT_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 6)
#define IDE0_STATUS_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 7)
#define IDE0_CONTROL_REG_OFFSET 0x0106
#define IDE0_IRQ_REG_OFFSET 0x000A /* not used */
#define IDE0_INTERRUPT 13 /* = SIU_LEVEL6 */
This was the clincher, the defined values I had did not have the 0x320
offsets factored in. I also had the IDE0_INTERRUPT set to the wrong value.
Now with these changes all is well. I was able to successfully mount the
partition and see my files.
Thanks for all the help,
Richard Jones
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/