Cross compile MPC860, Initrd.

sébastien tadéoni sebastien_tadeoni at yahoo.fr
Sat Oct 2 02:26:17 EST 1999



Hi all;

Success! I have finally built a zImage for a MPC860
MBX board.
I thank you for your help.

I made the following configuration:

#define CONFIG_PPC 1
#undef  CONFIG_6xx
#define CONFIG_8xx 1
#undef  CONFIG_MPC821
#undef  CONFIG_MPC823
#undef  CONFIG_MPC850
#define CONFIG_MPC860 1
#undef  CONFIG_MPC860T
#define CONFIG_SERIAL_CONSOLE 1
#undef  CONFIG_PMAC
#undef  CONFIG_PREP
#undef  CONFIG_CHRP
#undef  CONFIG_ALL_PPC
#undef  CONFIG_APUS
#define CONFIG_MBX 1
#undef  CONFIG_RPXLITE
#undef  CONFIG_RPXCLASSIC
#undef  CONFIG_BSEIP
#undef  CONFIG_SMP
#define CONFIG_MACH_SPECIFIC 1
/*
 * General setup
 */
#undef  CONFIG_EXPERIMENTAL
#undef  CONFIG_MODULES
#undef  CONFIG_PCI
#undef  CONFIG_PCI_QUIRKS
#define CONFIG_NET 1
#undef  CONFIG_SYSCTL
#undef  CONFIG_SYSVIPC
#undef  CONFIG_BSD_PROCESS_ACCT
#define CONFIG_BINFMT_ELF 1
#define CONFIG_KERNEL_ELF 1
#undef  CONFIG_BINFMT_MISC
#undef  CONFIG_BINFMT_JAVA
#undef  CONFIG_PARPORT
#undef  CONFIG_VGA_CONSOLE
#undef  CONFIG_FB
/*
 * Plug and Play support
 */
#undef  CONFIG_PNP
/*
 * Block devices
 */
#undef  CONFIG_BLK_DEV_FD
#undef  CONFIG_BLK_DEV_IDE
#undef  CONFIG_BLK_DEV_HD_ONLY
#undef  CONFIG_BLK_DEV_LOOP
#undef  CONFIG_BLK_DEV_NBD
#undef  CONFIG_BLK_DEV_MD
#undef  CONFIG_BLK_DEV_RAM
#undef  CONFIG_BLK_DEV_XD
#define CONFIG_PARIDE_PARPORT 1
#undef  CONFIG_PARIDE
#undef  CONFIG_BLK_DEV_HD
/*
 * Networking options
 */
#define CONFIG_PACKET 1
#define CONFIG_NETLINK 1
#undef  CONFIG_RTNETLINK
#undef  CONFIG_NETLINK_DEV
#undef  CONFIG_FIREWALL
#undef  CONFIG_FILTER
#define CONFIG_UNIX 1
#define CONFIG_INET 1
#undef  CONFIG_IP_MULTICAST
#undef  CONFIG_IP_ADVANCED_ROUTER
#define CONFIG_IP_PNP 1
#define CONFIG_IP_PNP_BOOTP 1
#undef  CONFIG_IP_PNP_RARP
#undef  CONFIG_IP_ROUTER
#undef  CONFIG_NET_IPIP
#undef  CONFIG_NET_IPGRE
#undef  CONFIG_IP_ALIAS
#undef  CONFIG_SYN_COOKIES
#undef  CONFIG_INET_RARP
#undef  CONFIG_SKB_LARGE
#undef  CONFIG_IPX
#undef  CONFIG_ATALK
/*
 * SCSI support
 */
#undef  CONFIG_SCSI
/*
 * Network device support
 */
#define CONFIG_NETDEVICES 1
#undef  CONFIG_ARCNET
#undef  CONFIG_DUMMY
#undef  CONFIG_EQUALIZER
#define CONFIG_NET_ETHERNET 1
#undef  CONFIG_MACE
#undef  CONFIG_BMAC
#undef  CONFIG_NET_VENDOR_3COM
#undef  CONFIG_LANCE
#undef  CONFIG_NET_VENDOR_SMC
#undef  CONFIG_NET_VENDOR_RACAL
#undef  CONFIG_NET_ISA
#define CONFIG_NET_EISA 1
#undef  CONFIG_PCNET32
#undef  CONFIG_APRICOT
#undef  CONFIG_CS89x0
#undef  CONFIG_DE4X5
#undef  CONFIG_DEC_ELCP
#undef  CONFIG_DGRS
#undef  CONFIG_EEXPRESS_PRO100
#undef  CONFIG_NE2K_PCI
#undef  CONFIG_TLAN
#undef  CONFIG_VIA_RHINE
#undef  CONFIG_NET_POCKET
#undef  CONFIG_FDDI
#undef  CONFIG_DLCI
#define CONFIG_PPP 1
#define CONFIG_SLIP 1
#undef  CONFIG_SLIP_COMPRESSED
#undef  CONFIG_SLIP_SMART
#undef  CONFIG_SLIP_MODE_SLIP6
#undef  CONFIG_NET_RADIO
#undef  CONFIG_TR
#undef  CONFIG_HOSTESS_SV11
#undef  CONFIG_COSA
#undef  CONFIG_RCPCI
#undef  CONFIG_WAN_DRIVERS
#undef  CONFIG_LAPBETHER
#undef  CONFIG_X25_ASY
/*
 * Amateur Radio support
 */
#undef  CONFIG_HAMRADIO
/*
 * ISDN subsystem
 */
#undef  CONFIG_ISDN
/*
 * Old CD-ROM drivers (not SCSI, not IDE)
 */
#undef  CONFIG_CD_NO_IDESCSI
/*
 * Console drivers
 */
/*
 * Character devices
 */
#undef  CONFIG_VT
#undef  CONFIG_SERIAL
#undef  CONFIG_SERIAL_EXTENDED
#undef  CONFIG_SERIAL_NONSTANDARD
#undef  CONFIG_UNIX98_PTYS
#undef  CONFIG_MOUSE
#undef  CONFIG_QIC02_TAPE
#undef  CONFIG_WATCHDOG
#undef  CONFIG_NVRAM
#undef  CONFIG_RTC
/*
 * Video For Linux
 */
#undef  CONFIG_VIDEO_DEV
/*
 * Joystick support
 */
#undef  CONFIG_JOYSTICK
#undef  CONFIG_DTLK
/*
 * Ftape, the floppy tape device driver
 */
#undef  CONFIG_FTAPE
/*
 * Filesystems
*/
#undef  CONFIG_QUOTA
#undef  CONFIG_AUTOFS_FS
#undef  CONFIG_AFFS_FS
#undef  CONFIG_HFS_FS
#define CONFIG_FAT_FS 1
#define CONFIG_MSDOS_FS 1
#undef  CONFIG_UMSDOS_FS
#define CONFIG_VFAT_FS 1
#undef  CONFIG_ISO9660_FS
#undef  CONFIG_JOLIET
#undef  CONFIG_MINIX_FS

#undef  CONFIG_NTFS_FS
#undef  CONFIG_HPFS_FS
#define CONFIG_PROC_FS 1
#undef  CONFIG_ROMFS_FS
#define CONFIG_EXT2_FS 1
#undef  CONFIG_SYSV_FS
#undef  CONFIG_UFS_FS
/*
 * Network File Systems
 */
#define CONFIG_CODA_FS 1
#define CONFIG_NFS_FS 1
#define CONFIG_ROOT_NFS 1
#undef  CONFIG_NFSD_SUN
#define CONFIG_SUNRPC 1
#define CONFIG_LOCKD 1
#undef  CONFIG_SMB_FS
#undef  CONFIG_NCP_FS
/*
 * Partition Types
 */
#undef  CONFIG_BSD_DISKLABEL
#undef  CONFIG_MAC_PARTITION
#undef  CONFIG_SMD_DISKLABEL
#undef  CONFIG_SOLARIS_X86_PARTITION
#define CONFIG_NLS 1
/*
 * Native Language Support
 */
#define CONFIG_NLS_CODEPAGE_437 1
#undef  CONFIG_NLS_CODEPAGE_737
#undef  CONFIG_NLS_CODEPAGE_775
#undef  CONFIG_NLS_CODEPAGE_850
#undef  CONFIG_NLS_CODEPAGE_852
#undef  CONFIG_NLS_CODEPAGE_855
#undef  CONFIG_NLS_CODEPAGE_857
#undef  CONFIG_NLS_CODEPAGE_860
#undef  CONFIG_NLS_CODEPAGE_861
#undef  CONFIG_NLS_CODEPAGE_862
#undef  CONFIG_NLS_CODEPAGE_863
#undef  CONFIG_NLS_CODEPAGE_864
#undef  CONFIG_NLS_CODEPAGE_865
#undef  CONFIG_NLS_CODEPAGE_866
#undef  CONFIG_NLS_CODEPAGE_869
#undef  CONFIG_NLS_CODEPAGE_874
#undef  CONFIG_NLS_ISO8859_1
#undef  CONFIG_NLS_ISO8859_2
#undef  CONFIG_NLS_ISO8859_3
#undef  CONFIG_NLS_ISO8859_4
#undef  CONFIG_NLS_ISO8859_5
#undef  CONFIG_NLS_ISO8859_6
#undef  CONFIG_NLS_ISO8859_7
#undef  CONFIG_NLS_ISO8859_8
#undef  CONFIG_NLS_ISO8859_9
#undef  CONFIG_NLS_ISO8859_15
#undef  CONFIG_NLS_KOI8_R
/*
 * Sound
 */
#undef  CONFIG_SOUND

/*
 * Kernel hacking
 */
#undef  CONFIG_MAGIC_SYSRQ
#undef  CONFIG_KGDB
#undef  CONFIG_XMON

I hope it will work in futur!

Some modifications:

In arch/ppc/vmliux.lds L2: I replace
'....powerpc-any-elf/lib.'in the variable SEARCH_DIR
by powerpc-linux/lib/ldsrcipt which corresponds to the
path of the environment built with egcs.

I think that the QSPANPCI option isn't necessary
because in arch/ppc/mbxboot/Makefile, CONFIG_MBX
includes qspanpci.o.
I assume the option in menuconfig is for another board
like RPX.

I had problems with the #include <sys/type.h> in the
arch/ppc/mbxboot/qspanpci.c and pci.c because the sys
directory doesn't exist at all.
I commented them out.

I had the following errors during compilation:

m8xx_setup.c: In function `m8xx_init_IRQ':
m8xx_setup.c:280: warning: implicit declaration of
function `cpm_interrupt_init'
m8xx_setup.c:285: `i8259_pic' undeclared (first use in
this function)
m8xx_setup.c:285: (Each undeclared identifier is
reported only once
m8xx_setup.c:285: for each function it appears in.)
m8xx_setup.c:287: warning: implicit declaration of
function `i8259_init'
m8xx_setup.c:288: `mbx_i8259_action' undeclared (first
use in this function)
make[1]: *** [m8xx_setup.o] Error 1
make[1]: Leaving directory
`/home/linux-2.2.5/arch/ppc/kernel'
make: *** [_dir_arch/ppc/kernel] Error 2

In arch/ppc/kernel/m8xx_setup.c:

L270:In the function '__initfunc(void
m8xx_init_IRQ...'

I declared:
extern void mbx_i8259_action(int cpl, void *dev_id,
struct pt_regs *regs);
and
extern void cpm_interrupt_init();

I added an #include "i8259.h" for the i8259_pic
variable.

In arch/ppc/kernel/ppc8xx_pic.c:

I added #include "i8259.h" and <asm/io.h> for the
'inl'
'outb' and 'inb' functions.

I think there's a typo L151: I replace the parameter
'defname' by 'devname'.

And L121 I supprime the 'Static' in the definition of 
 
mbx_i8259_action. (she's used in m8xx_setup.c).

No change with the EXPORT_SYMBOL of ppc_ksyms.c
directory.

In drivers/char/Makefile:L47
I commented out the heading 'arch=m68k...'

And indrivers/macintosh/Makefile:L18
I replace (like Graham) ifndef CONFIG_MBX by 
ifdef CONFIG_PMAC.

Now I try to make a zImage.initrd, but I don't now
very well how to build the ramdisk.image.gz file.

I saw some line like '#RAMDISK = -DRAMDISK=512' in the
Makefile files...?
I don't know to how and especially where the
bootloader is configured (I assume in Head.S mainly).

I hope that somoene had some info on this points and
he could tell them me.

Have a good Day.
Sébastien Tadéoni.

=====


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list