]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-arm
authorTom Rini <trini@ti.com>
Thu, 13 Jun 2013 19:16:15 +0000 (15:16 -0400)
committerTom Rini <trini@ti.com>
Thu, 13 Jun 2013 19:16:15 +0000 (15:16 -0400)
Small conflict over DRA7XX updates and adding SRAM_SCRATCH_SPACE_ADDR

Conflicts:
arch/arm/include/asm/arch-omap5/omap.h

Signed-off-by: Tom Rini <trini@ti.com>
1  2 
arch/arm/include/asm/arch-omap4/omap.h
arch/arm/include/asm/arch-omap5/omap.h
arch/arm/include/asm/omap_common.h
board/ti/am335x/board.c

index 44353a43f2591b956dce5a1a9fd13e9de050aef1,66afd924927a4bdcf8a1a3ed43d18b95b7c0e33b..9fd00ff2aa431502eb92608fb3706047063758fe
  #define DRAM_ADDR_SPACE_START OMAP44XX_DRAM_ADDR_SPACE_START
  #define DRAM_ADDR_SPACE_END   OMAP44XX_DRAM_ADDR_SPACE_END
  
- /* CONTROL */
- #define CTRL_BASE             (OMAP44XX_L4_CORE_BASE + 0x2000)
- #define CONTROL_PADCONF_CORE  (OMAP44XX_L4_CORE_BASE + 0x100000)
- #define CONTROL_PADCONF_WKUP  (OMAP44XX_L4_CORE_BASE + 0x31E000)
- /* LPDDR2 IO regs */
- #define LPDDR2_IO_REGS_BASE   0x4A100638
  /* CONTROL_ID_CODE */
  #define CONTROL_ID_CODE               0x4A002204
  
  /* Watchdog Timer2 - MPU watchdog */
  #define WDT2_BASE             (OMAP44XX_L4_WKUP_BASE + 0x14000)
  
- /* 32KTIMER */
- #define SYNC_32KTIMER_BASE    (OMAP44XX_L4_WKUP_BASE + 0x4000)
  /* GPMC */
  #define OMAP44XX_GPMC_BASE    0x50000000
  
- /* SYSTEM CONTROL MODULE */
- #define SYSCTRL_GENERAL_CORE_BASE     0x4A002000
  /*
   * Hardware Register Details
   */
@@@ -141,7 -127,14 +127,15 @@@ struct s32ktimer 
   */
  #define NON_SECURE_SRAM_START 0x40304000
  #define NON_SECURE_SRAM_END   0x4030E000      /* Not inclusive */
 +#define SRAM_SCRATCH_SPACE_ADDR       NON_SECURE_SRAM_START
  /* base address for indirect vectors (internal boot mode) */
  #define SRAM_ROM_VECT_BASE    0x4030D000
+ /* ABB settings */
+ #define OMAP_ABB_SETTLING_TIME                50
+ #define OMAP_ABB_CLOCK_CYCLES         16
+ /* ABB tranxdone mask */
+ #define OMAP_ABB_MPU_TXDONE_MASK      (0x1 << 7)
  #endif
index 04af227e0246de6f3c833f3e58122b520eccf720,817c1ff27fc599b10811d743e5e260557b0c2390..5e6d82e51f106e5362667a7e25125d3dd89df944
  #define DRAM_ADDR_SPACE_START OMAP54XX_DRAM_ADDR_SPACE_START
  #define DRAM_ADDR_SPACE_END   OMAP54XX_DRAM_ADDR_SPACE_END
  
- /* CONTROL */
- #define CTRL_BASE             (OMAP54XX_L4_CORE_BASE + 0x2000)
- #define CONTROL_PADCONF_CORE  (CTRL_BASE + 0x0800)
- #define CONTROL_PADCONF_WKUP  (OMAP54XX_L4_WKUP_BASE + 0xc800)
- /* LPDDR2 IO regs. To be verified */
- #define LPDDR2_IO_REGS_BASE   0x4A100638
- /* CONTROL_ID_CODE */
- #define CONTROL_ID_CODE               (CTRL_BASE + 0x204)
+ /* CONTROL ID CODE */
+ #define CONTROL_CORE_ID_CODE  0x4A002204
+ #define CONTROL_WKUP_ID_CODE  0x4AE0C204
+ #ifdef CONFIG_DRA7XX
+ #define CONTROL_ID_CODE               CONTROL_WKUP_ID_CODE
+ #else
+ #define CONTROL_ID_CODE               CONTROL_CORE_ID_CODE
+ #endif
  
  /* To be verified */
  #define OMAP5430_CONTROL_ID_CODE_ES1_0                0x0B94202F
  #define OMAP5432_CONTROL_ID_CODE_ES2_0          0x1B99802F
  #define DRA752_CONTROL_ID_CODE_ES1_0          0x0B99002F
  
- /* STD_FUSE_PROD_ID_1 */
- #define STD_FUSE_PROD_ID_1            (CTRL_BASE + 0x218)
- #define PROD_ID_1_SILICON_TYPE_SHIFT  16
- #define PROD_ID_1_SILICON_TYPE_MASK   (3 << 16)
  /* UART */
  #define UART1_BASE            (OMAP54XX_L4_PER_BASE + 0x6a000)
  #define UART2_BASE            (OMAP54XX_L4_PER_BASE + 0x6c000)
  /* Watchdog Timer2 - MPU watchdog */
  #define WDT2_BASE             (OMAP54XX_L4_WKUP_BASE + 0x14000)
  
- /* 32KTIMER */
- #define SYNC_32KTIMER_BASE    (OMAP54XX_L4_WKUP_BASE + 0x4000)
  /* GPMC */
  #define OMAP54XX_GPMC_BASE    0x50000000
  
- /* SYSTEM CONTROL MODULE */
- #define SYSCTRL_GENERAL_CORE_BASE     0x4A002000
  /*
   * Hardware Register Details
   */
  /* CONTROL_EFUSE_2 */
  #define CONTROL_EFUSE_2_NMOS_PMOS_PTV_CODE_1          0x00ffc000
  
+ #define SDCARD_BIAS_PWRDNZ                            (1 << 27)
  #define SDCARD_PWRDNZ                                 (1 << 26)
  #define SDCARD_BIAS_HIZ_MODE                          (1 << 25)
- #define SDCARD_BIAS_PWRDNZ                            (1 << 22)
  #define SDCARD_PBIASLITE_VMODE                                (1 << 21)
  
  #ifndef __ASSEMBLY__
@@@ -181,27 -169,17 +169,18 @@@ struct s32ktimer 
  #define EFUSE_4 0x45145100
  #endif /* __ASSEMBLY__ */
  
- /*
-  * Non-secure SRAM Addresses
-  * Non-secure RAM starts at 0x40300000 for GP devices. But we keep SRAM_BASE
-  * at 0x40304000(EMU base) so that our code works for both EMU and GP
-  */
+ #ifdef CONFIG_DRA7XX
+ #define NON_SECURE_SRAM_START 0x40300000
+ #define NON_SECURE_SRAM_END   0x40380000      /* Not inclusive */
+ #else
  #define NON_SECURE_SRAM_START 0x40300000
  #define NON_SECURE_SRAM_END   0x40320000      /* Not inclusive */
+ #endif
 +#define SRAM_SCRATCH_SPACE_ADDR       NON_SECURE_SRAM_START
  /* base address for indirect vectors (internal boot mode) */
  #define SRAM_ROM_VECT_BASE    0x4031F000
  
- /* Silicon revisions */
- #define OMAP4430_SILICON_ID_INVALID   0xFFFFFFFF
- #define OMAP4430_ES1_0        0x44300100
- #define OMAP4430_ES2_0        0x44300200
- #define OMAP4430_ES2_1        0x44300210
- #define OMAP4430_ES2_2        0x44300220
- #define OMAP4430_ES2_3        0x44300230
- #define OMAP4460_ES1_0        0x44600100
- #define OMAP4460_ES1_1        0x44600110
  /* CONTROL_SRCOMP_XXX_SIDE */
  #define OVERRIDE_XS_SHIFT             30
  #define OVERRIDE_XS_MASK              (1 << 30)
  #define SRCODE_OVERRIDE_SEL_XS_SHIFT  0
  #define SRCODE_OVERRIDE_SEL_XS_MASK   (1 << 0)
  
+ /* ABB settings */
+ #define OMAP_ABB_SETTLING_TIME                50
+ #define OMAP_ABB_CLOCK_CYCLES         16
+ /* ABB tranxdone mask */
+ #define OMAP_ABB_MPU_TXDONE_MASK              (0x1 << 7)
+ /* ABB efuse masks */
+ #define OMAP5_ABB_FUSE_VSET_MASK              (0x1F << 24)
+ #define OMAP5_ABB_FUSE_ENABLE_MASK            (0x1 << 29)
+ #define OMAP5_ABB_LDOVBBMPU_MUX_CTRL_MASK     (0x1 << 10)
+ #define OMAP5_ABB_LDOVBBMPU_VSET_OUT_MASK     (0x1f << 0)
  #ifndef __ASSEMBLY__
  struct srcomp_params {
        s8 divide_factor;
@@@ -230,6 -221,7 +222,7 @@@ struct ctrl_ioregs 
        u32 ctrl_ddrio_1;
        u32 ctrl_ddrio_2;
        u32 ctrl_emif_sdram_config_ext;
+       u32 ctrl_ddr_ctrl_ext_0;
  };
  #endif /* __ASSEMBLY__ */
  #endif
index baeef4e5bb225ffcd3e56aaa9243b2bd9ee04764,787e614ecb0da881f18028971c7f258453f25a74..0dbe81b59c64c1d9c0b1b0a6077b569e68e7e28f
@@@ -29,7 -29,7 +29,7 @@@
  
  #include <common.h>
  
- #define NUM_SYS_CLKS  8
+ #define NUM_SYS_CLKS  7
  
  struct prcm_regs {
        /* cm1.ckgen */
        u32 cm_l3init_fsusb_clkctrl;
        u32 cm_l3init_ocp2scp1_clkctrl;
  
+       u32 prm_irqstatus_mpu_2;
        /* cm2.l4per */
        u32 cm_l4per_clkstctrl;
        u32 cm_l4per_dynamicdep;
        /* l4 wkup regs */
        u32 cm_abe_pll_ref_clksel;
        u32 cm_sys_clksel;
+       u32 cm_abe_pll_sys_clksel;
        u32 cm_wkup_clkstctrl;
        u32 cm_wkup_l4wkup_clkctrl;
        u32 cm_wkup_wdtimer1_clkctrl;
        u32 prm_sldo_mpu_ctrl;
        u32 prm_sldo_mm_setup;
        u32 prm_sldo_mm_ctrl;
+       u32 prm_abbldo_mpu_setup;
+       u32 prm_abbldo_mpu_ctrl;
  
        u32 cm_div_m4_dpll_core;
        u32 cm_div_m5_dpll_core;
        u32 cm_l3init_usbphy_clkctrl;
        u32 cm_l4per_mcbsp4_clkctrl;
        u32 prm_vc_cfg_channel;
+       /* SCRM stuff, used by some boards */
+       u32 scrm_auxclk0;
+       u32 scrm_auxclk1;
  };
  
  struct omap_sys_ctrl_regs {
        u32 control_status;
+       u32 control_std_fuse_opp_vdd_mpu_2;
        u32 control_core_mmr_lock1;
        u32 control_core_mmr_lock2;
        u32 control_core_mmr_lock3;
        u32 control_ldosram_iva_voltage_ctrl;
        u32 control_ldosram_mpu_voltage_ctrl;
        u32 control_ldosram_core_voltage_ctrl;
+       u32 control_usbotghs_ctrl;
        u32 control_padconf_core_base;
        u32 control_paconf_global;
        u32 control_paconf_mode;
        u32 control_ddrio_0;
        u32 control_ddrio_1;
        u32 control_ddrio_2;
+       u32 control_ddr_control_ext_0;
        u32 control_lpddr2io1_0;
        u32 control_lpddr2io1_1;
        u32 control_lpddr2io1_2;
        u32 control_port_emif2_sdram_config;
        u32 control_emif1_sdram_config_ext;
        u32 control_emif2_sdram_config_ext;
+       u32 control_wkup_ldovbb_mpu_voltage_ctrl;
        u32 control_smart1nopmio_padconf_0;
        u32 control_smart1nopmio_padconf_1;
        u32 control_padconf_mode;
@@@ -494,11 -507,25 +507,25 @@@ struct pmic_data 
        u32 start_code;
        unsigned gpio;
        int gpio_en;
+       u32 i2c_slave_addr;
+       void (*pmic_bus_init)(void);
+       int (*pmic_write)(u8 sa, u8 reg_addr, u8 reg_data);
+ };
+ /**
+  * struct volts_efuse_data - efuse definition for voltage
+  * @reg:      register address for efuse
+  * @reg_bits: Number of bits in a register address, mandatory.
+  */
+ struct volts_efuse_data {
+       u32 reg;
+       u8 reg_bits;
  };
  
  struct volts {
        u32 value;
        u32 addr;
+       struct volts_efuse_data efuse;
        struct pmic_data *pmic;
  };
  
@@@ -506,6 -533,9 +533,9 @@@ struct vcores_data 
        struct volts mpu;
        struct volts core;
        struct volts mm;
+       struct volts gpu;
+       struct volts eve;
+       struct volts iva;
  };
  
  extern struct prcm_regs const **prcm;
@@@ -545,9 -575,9 +575,9 @@@ void enable_non_essential_clocks(void)
  void scale_vcores(struct vcores_data const *);
  u32 get_offset_code(u32 volt_offset, struct pmic_data *pmic);
  void do_scale_vcore(u32 vcore_reg, u32 volt_mv, struct pmic_data *pmic);
- /* Max value for DPLL multiplier M */
- #define OMAP_DPLL_MAX_N       127
+ void abb_setup(u32 fuse, u32 ldovbb, u32 setup, u32 control,
+              u32 txdone, u32 txdone_mask, u32 opp);
+ s8 abb_setup_ldovbb(u32 fuse, u32 ldovbb);
  
  /* HW Init Context */
  #define OMAP_INIT_CONTEXT_SPL                 0
  #define OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL     2
  #define OMAP_INIT_CONTEXT_UBOOT_AFTER_CH      3
  
+ /* ABB */
+ #define OMAP_ABB_NOMINAL_OPP          0
+ #define OMAP_ABB_FAST_OPP             1
+ #define OMAP_ABB_SLOW_OPP             3
+ #define OMAP_ABB_CONTROL_FAST_OPP_SEL_MASK            (0x1 << 0)
+ #define OMAP_ABB_CONTROL_SLOW_OPP_SEL_MASK            (0x1 << 1)
+ #define OMAP_ABB_CONTROL_OPP_CHANGE_MASK              (0x1 << 2)
+ #define OMAP_ABB_CONTROL_SR2_IN_TRANSITION_MASK               (0x1 << 6)
+ #define OMAP_ABB_SETUP_SR2EN_MASK                     (0x1 << 0)
+ #define OMAP_ABB_SETUP_ACTIVE_FBB_SEL_MASK            (0x1 << 2)
+ #define OMAP_ABB_SETUP_ACTIVE_RBB_SEL_MASK            (0x1 << 1)
+ #define OMAP_ABB_SETUP_SR2_WTCNT_VALUE_MASK           (0xff << 8)
  static inline u32 omap_revision(void)
  {
        extern u32 *const omap_si_rev;
        return *omap_si_rev;
  }
+ #define OMAP54xx      0x54000000
+ static inline u8 is_omap54xx(void)
+ {
+       extern u32 *const omap_si_rev;
+       return ((*omap_si_rev & 0xFF000000) == OMAP54xx);
+ }
  #endif
  
  /*
  /*
   * SRAM scratch space entries
   */
 -#define SRAM_SCRATCH_SPACE_ADDR               NON_SECURE_SRAM_START
  #define OMAP_SRAM_SCRATCH_OMAP_REV    SRAM_SCRATCH_SPACE_ADDR
  #define OMAP_SRAM_SCRATCH_EMIF_SIZE   (SRAM_SCRATCH_SPACE_ADDR + 0x4)
  #define OMAP_SRAM_SCRATCH_EMIF_T_NUM  (SRAM_SCRATCH_SPACE_ADDR + 0xC)
diff --combined board/ti/am335x/board.c
index 73bf85316504a9eb083f7abb8a427cc9a11ae3e6,06e8f07c4eeea150fda69da69770ec944e14cb7c..638cc4d68b2ad5238443c6c180f378e66278b826
@@@ -297,15 -297,6 +297,15 @@@ static struct emif_regs ddr3_evm_emif_r
        .emif_ddr_phy_ctlr_1 = MT41J512M8RH125_EMIF_READ_LATENCY |
                                PHY_EN_DYN_PWRDN,
  };
 +
 +#ifdef CONFIG_SPL_OS_BOOT
 +int spl_start_uboot(void)
 +{
 +      /* break into full u-boot on 'c' */
 +      return (serial_tstc() && serial_getc() == 'c');
 +}
 +#endif
 +
  #endif
  
  /*
@@@ -514,6 -505,7 +514,7 @@@ int board_eth_init(bd_t *bis
                        eth_setenv_enetaddr("ethaddr", mac_addr);
        }
  
+ #ifdef CONFIG_DRIVER_TI_CPSW
        if (board_is_bone() || board_is_bone_lt() || board_is_idk()) {
                writel(MII_MODE_ENABLE, &cdev->miisel);
                cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
                printf("Error %d registering CPSW switch\n", rv);
        else
                n += rv;
+ #endif
  
        /*
         *