- 16 Sep, 2009 9 commits
-
-
Kumar Gala authored
By pulling out cpu_init_early we can build just it and not all of cpu_init for NAND_SPL. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
Use write_tlb and don't use memset so we can use the same code for cpu_init_early_f between NAND SPL and not. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Mingkai Hu authored
The MPC8536E is capable of booting form NAND/eSDHC/eSPI, this patch implements these three bootup methods in a unified way - all of these use the general cpu/mpc85xx/start.S, and load the main image to L2SRAM which lets us use the SPD to initialize the SDRAM. For all three bootup methods, the bootup process can be divided into two stages: the first stage will initialize the corresponding controller, configure the L2SRAM, then copy the second stage image to L2SRAM and jump to it. The second stage image is just like the general U-Boot image to configure all the hardware and boot up to U-Boot command line. When boot from NAND, the eLBC controller will first load the first stage image to internal 4K RAM buffer because it's also stored on the NAND flash. The first stage image, also call 4K NAND loader, will initialize the L2SRAM, load the second stage image to L2SRAM and jump to it. The 4K NAND loader's code comes from the corresponding nand_spl directory, along with the code twisted by CONFIG_NAND_SPL. When boot from eSDHC/eSPI, there's no such a first stage image because the CPU ROM code does the same work. It will initialize the L2SRAM according to the config addr/word pairs on the fixed address and initialize the eSDHC/eSPI controller, then load the second stage image to L2SRAM and jump to it. The macro CONFIG_SYS_RAMBOOT is used to control the code to produce the second stage image for all different bootup methods. It's set in the board config file when one of the bootup methods above is selected. Signed-off-by:
Mingkai Hu <Mingkai.hu@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
If we move some of the functions in tlb.c around we need less ifdefs. The first stage loader just needs invalidate_tlb and init_tlbs. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
We can pack the initial tlb_table in MAS register format and use write_tlb to set things up. This savings can be helpful for NAND style first stage boot loaders. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
Factor out the code we use to actually write a tlb entry. set_tlb is a logical view of the TLB while write_tlb is a low level matching the MAS registers. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Scott Wood authored
Skipping the interrupted instruction will accomplish nothing other than turning a spurious interrupt into a crash. External interrupts are not machine checks, so don't count them as such. Signed-off-by:
Scott Wood <scottwood@freescale.com>
-
Scott Wood authored
Its reset value is random, and we sometimes read uninitialized TLB arrays. Make sure that we don't retain MAS8 from reading such an entry if the VF bit in MAS8 is set, attempts to use the mapping will trap. Signed-off-by:
Scott Wood <scottwood@freescale.com>
-
Scott Wood authored
We cannot handle any exceptions while running in AS1, as the exceptions will transition back to AS0 without a valid mapping. Signed-off-by:
Scott Wood <scottwood@freescale.com>
-
- 10 Sep, 2009 1 commit
-
-
Kumar Gala authored
Some board ports place TEXT_BASE at a location that would cause the RESET_VECTOR_ADDRESS not to be at 0xfffffffc when we link. By default we assume RESET_VECTOR_ADDRESS will be 0xfffffffc if the board doesn't explicitly set it. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org> Acked-by:
Wolfgang Denk <wd@denx.de>
-
- 08 Sep, 2009 11 commits
-
-
Kumar Gala authored
There is no reason to do a run time check for e500 v1 based cores to determine if we have the GUTs RSTCR facility. Only the first generation of PQ3 parts (MPC8540/41/55/60) do not have it. So checking to see if we are e500 v2 would miss future parts (like e500mc). Just change this to be ifdef'd based on CONFIG_MPC85{40,41,55,60}. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Poonam Aggrwal authored
While in probecpu() UART is still not initialized. Signed-off-by:
Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Poonam Aggrwal authored
Fixing the number of cores in the device tree based on the actual number of cores on the system. With this same device tree image can be used for dual core and single core members of otherwise exactly same SOC. For example: * P2020RDB and P2010RDB * P1020RDB and P1011RDB * MPC8641D and MPC8641 Signed-off-by:
Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Poonam Aggrwal authored
Incase the system is detected with Unknown SVR, let the system boot with a default value and a proper message. Now with dynamic detection of SOC properties from SVR, this is necessary to prevent a crash. Signed-off-by:
Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
Cleaned up cpu/mpc85xx/Makefile to use CONFIG_* for those obvious cases we have like PCI, CPM2, QE. Also reworked it to use one line per file for everything and sorted in alphabetical order. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
Its possible that we try and copy the boot page code out of flash into a DDR location that doesn't have a TLB cover it. For example, if we have 3G of DDR we typically only map the first 2G. In the cases of 4G+ this wasn't an issue since the reset page TLB mapping covered the last page of memory which we wanted to copy to. We now change the physical address of the reset page TLB to map to the true physical location of the boot page code, copy and than set the TLB back to its 1:1 mapping of the reset page. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
Allow us to search the TLB array based on an address. This is useful if we want to change an entry but dont know where it happens to be located. For example, the boot page mapping we use on MP or the flash TLB that we change the WIMGE settings for after we've relocated. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
In future Book-E implementations IVORs will most likely go away and be replaced with fixed offsets. The IVPR will continue to exist to allow for relocation of the interrupt vectors. This code adds support to setup the IVORs as their fixed offset values per the ISA 2.06 spec when we transition from u-boot to another OS either via 'bootm' or a cpu release. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Dipen Dudhat authored
Signed-off-by:
Dipen Dudhat <dipen.dudhat@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
The ddr_pd_cntl isn't defined in any reference manual and thus we wil remove especially since we set it to 0, which would most likely be its POR value. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Dipen Dudhat authored
Enable eSDHC Clock based on generic CONFIG_FSL_ESDHC define instead of a platform define. This will enable all the 85xx platforms to use sdhc_clk based on CONFIG_FSL_ESDHC. Signed-off-by:
Gao Guanhua <B22826@freescale.com> Signed-off-by:
Dipen Dudhat <dipen.dudhat@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
- 28 Aug, 2009 8 commits
-
-
Timur Tabi authored
The MPIC initialization code for Freescale e500 CPUs was not using I/O accessors, and it was not issuing a read-back to the MPIC after setting mixed mode. This may be the cause of a spurious interrupt on some systems. Signed-off-by:
Timur Tabi <timur@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Poonam Aggrwal authored
P1011 - Single core variant of P1020 P2010 - Single core variant of P2020 Signed-off-by:
Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Mingkai Hu authored
Signed-off-by:
Mingkai Hu <Mingkai.hu@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
There are really no differences between all the 85xx linker scripts so we can just move to a single common one. Board code is still able to override the common one if need be. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Poonam Aggrwal authored
P1020 is another member of QorIQ series of processors which falls in ULE category. It is an e500 based dual core SOC. Being a scaled down version of P2020 it has following differences: - 533MHz - 800MHz core frequency. - 256Kbyte L2 cache - Ethernet controllers with classification capabilities. Also the SOC is pin compatible with P2020 Signed-off-by:
Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Poonam Aggrwal authored
The number of CPUs are getting detected dynamically by checking the processor SVR value. Also removed CONFIG_NUM_CPUS references from all the platforms with 85xx/86xx processors. This can help to use the same u-boot image across the platforms. Also revamped and corrected few Freescale Copyright messages. Signed-off-by:
Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Poonam Aggrwal authored
Removed same code pieces from cpu/mpc85xx/cpu.c and cpu/mpc86xx/cpu.c and moved to cpu/mpc8xxx/cpu.c(new file) Signed-off-by:
Poonam Aggrwal <poonam.aggrwal@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Kumar Gala authored
For historic reasons we had defined some additional PLATFORM_CPPFLAGS like: PLATFORM_CPPFLAGS += -DCONFIG_E500=1 PLATFORM_CPPFLAGS += -DCONFIG_MPC85xx=1 PLATFORM_CPPFLAGS += -DCONFIG_MPC8548=1 However these are all captured in the config.h and thus redudant. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
- 22 Aug, 2009 1 commit
-
-
Wolfgang Denk authored
Update CHANGELOG, minor Coding Style cleanup. Signed-off-by:
Wolfgang Denk <wd@denx.de>
-
- 14 Aug, 2009 1 commit
-
-
Kumar Gala authored
When we init the addrmap based on the TLB we will not end up getting the TLB that covers memory if we are using SPD. The reason is we haven't relocated at the point that we setup the memory TLB and thus it will not get setup in the addrmap. Instead we can just walk over the TLB array after we've relocated and see all the TLBs that have been set and use that information to populate the initial addrmap. By doing this we insure that we get the TLB entries that cover memory. Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
- 29 Jul, 2009 1 commit
-
-
Kumar Gala authored
"All Rights Reserved" conflicts with the GPL. Signed-off-by:
Kumar Gala <kumar.gala@freescale.com>
-
- 02 Jul, 2009 5 commits
-
-
Peter Tyser authored
Signed-off-by:
Peter Tyser <ptyser@xes-inc.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Peter Tyser authored
Signed-off-by:
Peter Tyser <ptyser@xes-inc.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Peter Tyser authored
Signed-off-by:
Peter Tyser <ptyser@xes-inc.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Peter Tyser authored
Also update dmacpy()'s argument order to match memcpy's and use phys_addr_t/phy_size_t for address/size arguments Signed-off-by:
Peter Tyser <ptyser@xes-inc.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Peter Tyser authored
DMA support is now enabled via the CONFIG_FSL_DMA define instead of the previous CONFIG_DDR_ECC Signed-off-by:
Peter Tyser <ptyser@xes-inc.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
- 12 Jun, 2009 3 commits
-
-
Peter Tyser authored
The following changes were made to sync up the DMA code between the 85xx and 86xx architectures which will make it easier to break out common 8xxx DMA code: 85xx: - Don't set STRANSINT and SPCIORDER fields in SATR register. These bits only have an affect when the SBPATMU bit is set. - Write 0xffffffff instead of 0xfffffff to clear errors in the DMA status register. We may as well clear all 32 bits of the register... 86xx: - Add CONFIG_SYS_MPC86xx_DMA_ADDR define to address DMA registers - Add clearing of errors in the DMA status register when initializing the controller - Clear the channel start bit in the DMA mode register after a transfer Signed-off-by:
Peter Tyser <ptyser@xes-inc.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Peter Tyser authored
Break out DMA structures for the Freescale MPC85xx and MPC86xx cpus to reduce a large amount of code duplication Signed-off-by:
Peter Tyser <ptyser@xes-inc.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-
Haiying Wang authored
The uec driver contains code to hard code configuration information for the uec ethernet controllers. This patch creates an array of uec_info structures, which are then parsed by the corresponding driver instance to determine configuration. It also creates function uec_standard_init() to initialize all UEC interfaces for 83xx and 85xx. Signed-off-by:
Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by:
Kumar Gala <galak@kernel.crashing.org>
-