Re: MPC5200b MMC over SPI into PSC6
flat view
From: Fabio Tosetto <hidden>
Date: 2008-05-08 15:11:00
Ok, maybe it's better to start from the beginning.
Now I'm using a Lite5200b board, just to avoid problems with my hardware, and I'm trying to have a bootable kernel.
With kernel version 2.6.24.6 I do the following commands
$ make ARCH=powerpc lite5200_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- uImage
then I copy the arch/powerpc/boot/uImage and a rootfs.uimage on the board, but uBoot stops at the beginning:
============================================
U-Boot 1.3.0-g98e2867c-dirty (Feb 7 2008 - 13:26:28)
CPU: MPC5200B v2.2, Core v1.4 at 198 MHz Bus 132 MHz, IPB 132 MHz, PCI 33 MHz Board: Freescale Lite5200B I2C: 85 kHz, ready DRAM: 256 MB FLASH: 32 MB PCI: Bus Dev VenId DevId Class Int 00 1a 1057 5809 0680 00 In: serial Out: serial Err: serial Net: FEC ETHERNET IDE: Bus 0: OK Device 0: not available Device 1: not available
Type "run flash_nfs" to mount root filesystem over NFS
Hit any key to stop autoboot: 0 =>
=> usb start (Re)start USB... USB: scanning bus for devices... 2 USB Device(s) found scanning bus for storage devices... 1 Storage Device(s) found => usb scan NOTE: this command is obsolete and will be phased out please use 'usb storage' for USB storage devices information
Device 0: Vendor: USB 2.0 Prod.: Flash Disk Rev: 0.00 Type: Removable Hard Disk Capacity: 963.9 MB = 0.9 GB (1974271 x 512) => fatload usb 0 0x03000000 uImage reading uImage ................................................................................
..........................
1091680 bytes read => fatload usb 0 0x04000000 rootfs.uimage reading rootfs.uimage ................................................................................
.......... 924722 bytes read
=> bootm 0x03000000 0x04000000
---------------------
## Booting image at 03000000 ... Image Name: Linux-2.6.24.4 Created: 2008-05-08 14:21:24 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 1091616 Bytes = 1 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Loading RAMDisk Image at 04000000 ... Image Name: RamDisk Image RadioNav Created: 2007-12-14 16:18:56 UTC Image Type: PowerPC Linux RAMDisk Image (gzip compressed) Data Size: 924658 Bytes = 903 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Ramdisk to 0fe68000, end 0ff49bf2 ... OK
============================================
So I tried using the deprecated ppc
$ make ARCH=ppc lite5200_defconfig
$ make ARCH=ppc CROSS_COMPILE=powerpc-linux-gnu- uImage
It still doesn't work, but it goes a little further:
=> bootm 0x03000000 0x04000000 ## Booting image at 03000000 ... Image Name: Linux-2.6.24.6 Created: 2008-05-08 14:39:04 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 776322 Bytes = 758.1 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Loading RAMDisk Image at 04000000 ... Image Name: RamDisk Image RadioNav Created: 2007-12-14 16:18:56 UTC Image Type: PowerPC Linux RAMDisk Image (gzip compressed) Data Size: 924658 Bytes = 903 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Ramdisk to 0fe68000, end 0ff49bf2 ... OK id mach(): done MMU:enter
MMU:hw init MMU:mapin
MMU:setio
MMU:exit
setup_arch: enter setup_arch: bootmem arch: exit
============================================
The only way I was able to get something working, even though it sounds a little strange to me, is loading the config from powerpc folder but compiling in ppc
$ make ARCH=powerpc lite5200_defconfig
$ make ARCH=ppc CROSS_COMPILE=powerpc-linux-gnu- uImage
=> bootm 0x03000000 0x04000000 ## Booting image at 03000000 ... Image Name: Linux-2.6.24.4 Created: 2008-05-08 14:03:26 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 1073349 Bytes = 1 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Loading RAMDisk Image at 04000000 ... Image Name: RamDisk Image RadioNav Created: 2007-12-14 16:18:56 UTC Image Type: PowerPC Linux RAMDisk Image (gzip compressed) Data Size: 924658 Bytes = 903 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Ramdisk to 0fe68000, end 0ff49bf2 ... OK id mach(): done MMU:enter
MMU:hw init MMU:mapin
MMU:setio
MMU:exit
setup_arch: enter setup_arch: bootmem arch: exit [ 0.000000] Linux version 2.6.24.4 (ftosetto@osstlab-build1) (gcc version 4.1
.2 (Sourcery G++ Lite 4.1-51)) #3 Thu May 8 16:03:21 CEST 2008 [ 0.000000] Zone PFN ranges: [ 0.000000] DMA 0 -> 65536 [ 0.000000] Normal 65536 -> 65536 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[1] active PFN ranges [ 0.000000] 0: 0 -> 65536 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pag
es: 65024 [ 0.000000] Kernel command line: [ 0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes) [ 91.768263] console [ttyPSC0] enabled ...
Do you have any idea about how to make it working doing all the stuff with ARCH=powerpc?
Best regards,
Fabio
Grant Likely ha scritto:On Wed, May 7, 2008 at 6:49 AM, Fabio Tosetto [off-list ref] wrote:quoted
I've tried to port my exesting configurations to the powerpc tree but some configurations files are missing.First, create a new .dts file for your board in arch/powerpc/boot/dts. (just copy the lite5200.dts file). Modify the .dts to have your board's name (in the form "<vendor>,<boardname>") in the compatible and model properties. Next, add your boards name to the list of boards in arch/powerpc/platforms/52xx/mpc5200_simple.c.quoted
I need to set PSC3 - PSC4 in uart mode: before in file *arch/ppc/platforms/lite5200.c* I added struct mpc52xx_psc_func mpc52xx_psc_functions[] = { { .id = 3, .func = "uart", }, { .id = 4, .func = "uart", }, { .id = -1, /* End entry */ .func = NULL, } };Edit your boards .dts file and uncomment PSCs 3 and 4. Comment out PSC1 if you aren't using it.quoted
I need to set PSC4 as a low level debug: * *before in file *arch/ppc/platforms/lite5200.h *I added #define MPC52xx_PF_CONSOLE_PORT 4 /* PSC4 */I don't think we have any early debug enabled yet in arch/powerpc for the mpc5200.quoted
Finally I need to set the virtual memory translation on a range of 128 MB: before in file *arch/ppc/kernel/head.S *I added /*ori r11,r11,BL_128M<<2|0x2 set up BAT registers for 604 */ ori r11,r11,BL_128M<<2|0x2 /* set up BAT registers for 604 */ could you please explain me how to do the same operations in powerpc tree??New file is arch/powerpc/kernel/head_32.S. I don't think that is the cleanest way to do it though. Why do you need to change the BAT mapping from 256 to 128? Cheers, g.