* [U-Boot] DBCR0 reset problem in MPC8548CDS @ 2009-04-09 18:03 Werner Nedel 2009-04-13 19:38 ` Werner Nedel 2009-04-16 23:12 ` Kumar Gala 0 siblings, 2 replies; 7+ messages in thread From: Werner Nedel @ 2009-04-09 18:03 UTC (permalink / raw) To: u-boot Hi, I'm trying to update my u-boot version (1.2) to the last one (2009.03). My board is very similar to MPC8548CDS. Everything was working fine till I tried to use the reset command. It hangs the processor in cpu_init_early_f, when it realocates ccsbar. I'd always used the hard reset in DBCR0 register instead HRESET_REQ that ins't wired in my board. I saw that the value of MSR register came different before reset when I compare with the old u-boot (0x8000 -> 0x29200). There are new writes in this register in this new version, could any of them causing my problem? The major difference beetwen my configuration and default resides in u-boot.lds. I changed ADDR(.text) by the fisical init address of my boot flash, that is different of my TEXT_BASE, but bootpg and resetvec still in the same address, so I think that it couldn't be the problem. u-boot.lds: > .bootpg 0xfff80000 + 0x7f000 : < .bootpg ADDR(.text) + 0x7f000 : { cpu/mpc85xx/start.o (.bootpg) } :text = 0xffff > .resetvec 0xfff80000 + 0x7fffc : < .resetvec ADDR(.text) + 0x7fffc : { *(.resetvec) } :text = 0xffff > . = 0xfff80000 + 0x80000; < . = ADDR(.text) + 0x80000; Thanks in advance, Werner Nedel. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] DBCR0 reset problem in MPC8548CDS 2009-04-09 18:03 [U-Boot] DBCR0 reset problem in MPC8548CDS Werner Nedel @ 2009-04-13 19:38 ` Werner Nedel 2009-04-16 22:11 ` Timur Tabi 2009-04-16 23:12 ` Kumar Gala 1 sibling, 1 reply; 7+ messages in thread From: Werner Nedel @ 2009-04-13 19:38 UTC (permalink / raw) To: u-boot Actually, it hangs changing gd pointer, before set_tlb() call. In my older u-boot version, it was made in cpu_init_f function. /* Pointer is writable since we allocated a register for it */ gd = (gd_t *) (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET); On Thu, Apr 9, 2009 at 3:03 PM, Werner Nedel <wmnedel@gmail.com> wrote: > Hi, > > I'm trying to update my u-boot version (1.2) to the last one (2009.03). My > board is very similar to MPC8548CDS. Everything was working fine till I > tried to use the reset command. It hangs the processor in cpu_init_early_f, > when it realocates ccsbar. I'd always used the hard reset in DBCR0 register > instead HRESET_REQ that ins't wired in my board. > > I saw that the value of MSR register came different before reset when I > compare with the old u-boot (0x8000 -> 0x29200). There are new writes in > this register in this new version, could any of them causing my problem? > > The major difference beetwen my configuration and default resides in > u-boot.lds. I changed ADDR(.text) by the fisical init address of my boot > flash, that is different of my TEXT_BASE, but bootpg and resetvec still in > the same address, so I think that it couldn't be the problem. > > u-boot.lds: > > .bootpg 0xfff80000 + 0x7f000 : > < .bootpg ADDR(.text) + 0x7f000 : > { > cpu/mpc85xx/start.o (.bootpg) > } :text = 0xffff > > > .resetvec 0xfff80000 + 0x7fffc : > < .resetvec ADDR(.text) + 0x7fffc : > { > *(.resetvec) > } :text = 0xffff > > > . = 0xfff80000 + 0x80000; > < . = ADDR(.text) + 0x80000; > > Thanks in advance, > Werner Nedel. > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] DBCR0 reset problem in MPC8548CDS 2009-04-13 19:38 ` Werner Nedel @ 2009-04-16 22:11 ` Timur Tabi 2009-04-16 22:30 ` Scott Wood 0 siblings, 1 reply; 7+ messages in thread From: Timur Tabi @ 2009-04-16 22:11 UTC (permalink / raw) To: u-boot On Mon, Apr 13, 2009 at 2:38 PM, Werner Nedel <wmnedel@gmail.com> wrote: > Actually, it hangs changing gd pointer, before set_tlb() call. In my older > u-boot version, it was made in cpu_init_f function. > > ? ?/* Pointer is writable since we allocated a register for it */ > ? ?gd = (gd_t *) (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET); That usually means that your LAWBARs are misprogrammed. -- Timur Tabi Linux kernel developer at Freescale ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] DBCR0 reset problem in MPC8548CDS 2009-04-16 22:11 ` Timur Tabi @ 2009-04-16 22:30 ` Scott Wood 2009-04-16 22:32 ` Timur Tabi 0 siblings, 1 reply; 7+ messages in thread From: Scott Wood @ 2009-04-16 22:30 UTC (permalink / raw) To: u-boot Timur Tabi wrote: > On Mon, Apr 13, 2009 at 2:38 PM, Werner Nedel <wmnedel@gmail.com> wrote: >> Actually, it hangs changing gd pointer, before set_tlb() call. In my older >> u-boot version, it was made in cpu_init_f function. >> >> /* Pointer is writable since we allocated a register for it */ >> gd = (gd_t *) (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET); > > That usually means that your LAWBARs are misprogrammed. The above line just loads a constant into a register, so the source of the problem is likely elsewhere (possibly the code itself can't be fetched). -Scott ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] DBCR0 reset problem in MPC8548CDS 2009-04-16 22:30 ` Scott Wood @ 2009-04-16 22:32 ` Timur Tabi 0 siblings, 0 replies; 7+ messages in thread From: Timur Tabi @ 2009-04-16 22:32 UTC (permalink / raw) To: u-boot Scott Wood wrote: > The above line just loads a constant into a register, so the source of > the problem is likely elsewhere (possibly the code itself can't be fetched). I don't remember exactly why, but I once had the same symptom that Werner is reporting, and the cause was a misprogrammed LAWBAR. -- Timur Tabi Linux kernel developer at Freescale ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] DBCR0 reset problem in MPC8548CDS 2009-04-09 18:03 [U-Boot] DBCR0 reset problem in MPC8548CDS Werner Nedel 2009-04-13 19:38 ` Werner Nedel @ 2009-04-16 23:12 ` Kumar Gala 2009-04-17 17:19 ` Werner Nedel 1 sibling, 1 reply; 7+ messages in thread From: Kumar Gala @ 2009-04-16 23:12 UTC (permalink / raw) To: u-boot On Apr 9, 2009, at 1:03 PM, Werner Nedel wrote: > > I'm trying to update my u-boot version (1.2) to the last one > (2009.03). My > board is very similar to MPC8548CDS. Everything was working fine > till I > tried to use the reset command. It hangs the processor in > cpu_init_early_f, > when it realocates ccsbar. I'd always used the hard reset in DBCR0 > register > instead HRESET_REQ that ins't wired in my board. > > I saw that the value of MSR register came different before reset > when I > compare with the old u-boot (0x8000 -> 0x29200). There are new > writes in > this register in this new version, could any of them causing my > problem? It would probably be useful to have any obvious differences in the physical address space from the MPC8548CDS config that exist. - k ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] DBCR0 reset problem in MPC8548CDS 2009-04-16 23:12 ` Kumar Gala @ 2009-04-17 17:19 ` Werner Nedel 0 siblings, 0 replies; 7+ messages in thread From: Werner Nedel @ 2009-04-17 17:19 UTC (permalink / raw) To: u-boot Sure. My complete phys addresses mapping: DDR_SDRAM_BASE: 0x00000000 - 0x80000000 (2Gb) NAND: 0x80000000 - 0xc0000000 (1Gb) PCI1: 0xc0000000 - 0xd0000000 (256Mb) FPGA: 0xd0000000 - 0xd0100000 (1Mb) CCSRBAR (= PHYS): 0xe0000000 - 0xe4000000 (64Mb) PCI_IO: 0xe3000000 - 0xe3100000 (1Mb) INIT_RAM: 0xe4010000 CCSRBAR_DEFAULT: 0xff700000 BOOT_BLOCK=FLASH_BASE: 0xfff80000 - 0xffffffff (512Kb) (TEXT_BASE=FLASH_BASE + 0x10000) RIO, CADMUS, PCIE and PCI2 are undefined. My law.c: - SET_LAW(CONFIG_SYS_LBC_SDRAM_BASE, LAW_SIZE_256M, LAW_TRGT_IF_LBC), + SET_LAW(0x00000000, LAW_SIZE_512M, LAW_TRGT_IF_DDR), and NAND, FPGA windows (and PCI was resized to 256Mb). My tlb.c: SET_TLB_ENTRY(1, CONFIG_SYS_BOOT_BLOCK, CONFIG_SYS_BOOT_BLOCK, MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, - 0, 0, BOOKE_PAGESZ_16M, 1), + 0, 0, BOOKE_PAGESZ_1M, 1), SDRAM and CADMUS was changed by FPGA and NAND tlbs (and PCI was resized to 256Mb). (nor) #define CONFIG_SYS_BR0_PRELIM 0xfff81001 #define CONFIG_SYS_OR0_PRELIM 0xfff80e65 (fpga) #define CONFIG_SYS_BR1_PRELIM 0xd0000801 #define CONFIG_SYS_OR1_PRELIM 0xfff06633 (nand) #define CONFIG_SYS_BR2_PRELIM 0x80000801 #define CONFIG_SYS_OR2_PRELIM 0xc0008ef7 Something must be very wrong. Recently I tried to change my 512kb NOR by a 1Mb NOR and some accesses to fff00000 to fff80000 addresses range hangs my processor (fff80000 to ffffffff works fine), but it can be a problem in my flash driver. Thanks for your help, Werner Nedel. On Thu, Apr 16, 2009 at 8:12 PM, Kumar Gala <galak@kernel.crashing.org>wrote: > > On Apr 9, 2009, at 1:03 PM, Werner Nedel wrote: > > >> I'm trying to update my u-boot version (1.2) to the last one (2009.03). My >> board is very similar to MPC8548CDS. Everything was working fine till I >> tried to use the reset command. It hangs the processor in >> cpu_init_early_f, >> when it realocates ccsbar. I'd always used the hard reset in DBCR0 >> register >> instead HRESET_REQ that ins't wired in my board. >> >> I saw that the value of MSR register came different before reset when I >> compare with the old u-boot (0x8000 -> 0x29200). There are new writes in >> this register in this new version, could any of them causing my problem? >> > > It would probably be useful to have any obvious differences in the physical > address space from the MPC8548CDS config that exist. > > - k > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-04-17 17:19 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-04-09 18:03 [U-Boot] DBCR0 reset problem in MPC8548CDS Werner Nedel 2009-04-13 19:38 ` Werner Nedel 2009-04-16 22:11 ` Timur Tabi 2009-04-16 22:30 ` Scott Wood 2009-04-16 22:32 ` Timur Tabi 2009-04-16 23:12 ` Kumar Gala 2009-04-17 17:19 ` Werner Nedel
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.