On Mon, Sep 27, 2004 at 12:46:07PM +0200, Piotr Perak wrote:
Hi.
Anyone seen 2.6.x kernel working on 405CR?
I can't make it boot.
I can't recall anybody around here having a 405CR. That's probably
why you didn't get a reponse the first time you posted this.
Since you are failing in ocp_add_one_device() and you have a
processor which doesn't have a chip definition in 2.6, the
problem is probably somewhere there. Doublecheck your
arch/ppc/platforms/4xx/ibm405cr.c (you do have one, right?)
against a known good one in arch/ppc/platforms/4xx/ibm405gp.c
I wish I could rent you my BDI2000 to speed up your debugging,
but we're too far away from each other. :)
-Matt
On Mon, 27 Sep 2004 06:57:58 -0700, Matt Porter
[off-list ref] wrote:
On Mon, Sep 27, 2004 at 12:46:07PM +0200, Piotr Perak wrote:
quoted
Hi.
Anyone seen 2.6.x kernel working on 405CR?
I can't make it boot.
I can't recall anybody around here having a 405CR. That's probably
why you didn't get a reponse the first time you posted this.
I might get access to one at some point - I'll be getting my Virtex II
tree up and running on 2.6 (PowerPC 405D) sometime soon hopefully too.
I wish I could rent you my BDI2000 to speed up your debugging,
but we're too far away from each other. :)
I hate you guys. I'm using insight on an XP box with that horrid
Xilinx xygwin - it's not aware of any virtual memory and I have no
symbols nicely available so it's all done by hand.
Jon.
On Mon, 27 Sep 2004, Matt Porter wrote:
Since you are failing in ocp_add_one_device() and you have a
processor which doesn't have a chip definition in 2.6, the
problem is probably somewhere there. Doublecheck your
arch/ppc/platforms/4xx/ibm405cr.c (you do have one, right?)
against a known good one in arch/ppc/platforms/4xx/ibm405gp.c
I use ibm405cr.c that works with our running kernel 2.4.23.
const struct ocp_def core_ocp[] /*__initdata*/ = {
45 { .vendor = OCP_VENDOR_IBM,
46 .function = OCP_FUNC_OPB,
47 .index = 0,
48 .paddr = OPB_BASE_START,
49 .irq = OCP_IRQ_NA,
50 .pm = OCP_CPM_NA,
51 },
52 { .vendor = OCP_VENDOR_IBM,
53 .function = OCP_FUNC_16550,
54 .index = 0,
55 .paddr = UART0_IO_BASE,
56 .irq = UART0_INT,
57 .pm = IBM_CPM_UART0
58 },
59 { .vendor = OCP_VENDOR_IBM,
60 .function = OCP_FUNC_16550,
61 .index = 1,
62 .paddr = UART1_IO_BASE,
63 .irq = UART1_INT,
64 .pm = IBM_CPM_UART1
65 },
66 { .vendor = OCP_VENDOR_IBM,
67 .function = OCP_FUNC_IIC,
68 .index = 0,
69 .paddr = IIC0_BASE,
70 .irq = IIC0_IRQ,
71 .pm = IBM_CPM_IIC0
72 },
73 { .vendor = OCP_VENDOR_IBM,
74 .function = OCP_FUNC_IIC,
75 .index = 1,
76 .paddr = IIC1_BASE,
77 .irq = IIC1_IRQ,
78 .pm = IBM_CPM_IIC1
79 },
80 { .vendor = OCP_VENDOR_IBM,
81 .function = OCP_FUNC_GPIO,
82 .paddr = GPIO0_BASE,
83 .irq = OCP_IRQ_NA,
84 .pm = IBM_CPM_GPIO0
85 },
86
87 /*
88 { .vendor = OCP_VENDOR_IBM,
89 .function = OCP_FUNC_USB,
90 .paddr = USB_BASE,
91 .irq = USB0_IRQ,
92 .pm = IBM_CPM_USB
93 },
94 */
95 { .vendor = OCP_VENDOR_INVALID
96 }
97 };
I was given clean and ported 2.4.23 kernel and was told to port
2.6.8.1. Based on differences I noticed between two 2.4.23 I tried to do
same (almost) in 2.6.8.1. But all I can
get is:
loaded at: 00400000 009EA220
board data at: 009E713C 009E7190
relocated to: 00405384 004053D8
zimage at: 004058D7 004F2F8B
initrd at: 004F3000 009E6782
avail ram: 009EB000 08000000
Linux/PPC load: console=ttyS0,115200 console=tty0 root=/dev/ram0
init=/linuxrc rw
Uncompressing Linux...done.
Now booting the kernel
On Mon, 27 Sep 2004, Matt Porter wrote:
Since you are failing in ocp_add_one_device() and you have a
processor which doesn't have a chip definition in 2.6, the
problem is probably somewhere there. Doublecheck your
arch/ppc/platforms/4xx/ibm405cr.c (you do have one, right?)
against a known good one in arch/ppc/platforms/4xx/ibm405gp.c
Because I use ibm405cr.c which works good with 2.4.23 I think that's not
the problem. Remember the call stack?
setup_arch() - arch/ppc/kernel/setup.c
-> ocp_early_init() - arch/ppc/syslib/ocp.c
-> ocp_add_one_device() - arch/ppc/syslib/ocp.c
-> alloc_bootmem MACRO calling __alloc_bootmem_core() -
mm/bootmem.c
When I comment line calling ocp_early_init() I fail in:
setup_arch() - arch/ppc/kernel/setup.c
-> paging_init() - arch/ppc/mm/init.c
-> free_area_init() - arch/ppc/mm/page_alloc.c
-> free_area_init_node() - arch/ppc/mm/page_alloc.c
-> alloc_bootmem_node() MACRO calling __alloc_bootmem_node -
mm/bootmem.c
-> __alloc_bootmem_core() - mm/bootmem.c
As you can see again __alloc_bootmem_core. So maybe there's some
problem with memory?
Forgive me if I ask stupid questions, but this the first time I have
something to do with the kernel (not counting compiling for my home PC).