Cyril Chemparathy <[email protected]> writes:
> This patch replaces the jtag id base info in davinci_soc_info with a physical
> address which is then ioremap()ed within common code.
>
> This patch (in combination with a similar change for PSC) will allow us to
> eliminate the SYSCFG nastiness in DA8xx code.
>
> Signed-off-by: Cyril Chemparathy <[email protected]>
> ---
> v2: fixed return value on ioremap failure
This one was failing on da8xx...
> arch/arm/mach-davinci/common.c | 49 +++++++++++++++-----------
> arch/arm/mach-davinci/da830.c | 3 +-
> arch/arm/mach-davinci/da850.c | 3 +-
> arch/arm/mach-davinci/dm355.c | 2 +-
> arch/arm/mach-davinci/dm365.c | 2 +-
> arch/arm/mach-davinci/dm644x.c | 2 +-
> arch/arm/mach-davinci/dm646x.c | 2 +-
> arch/arm/mach-davinci/include/mach/common.h | 2 +-
> 8 files changed, 35 insertions(+), 30 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/common.c b/arch/arm/mach-davinci/common.c
> index f8221c5..ddbd57b 100644
> --- a/arch/arm/mach-davinci/common.c
> +++ b/arch/arm/mach-davinci/common.c
> @@ -37,26 +37,42 @@ void davinci_get_mac_addr(struct memory_accessor
> *mem_acc, void *context)
> pr_info("Read MAC addr from EEPROM: %pM\n", mac_addr);
> }
>
> -static struct davinci_id * __init davinci_get_id(u32 jtag_id)
> +static int __init davinci_init_id(struct davinci_soc_info *soc_info)
> {
> - int i;
> - struct davinci_id *dip;
> - u8 variant = (jtag_id & 0xf0000000) >> 28;
> - u16 part_no = (jtag_id & 0x0ffff000) >> 12;
> + int i;
> + struct davinci_id *dip;
> + u8 variant;
> + u16 part_no;
> + void __iomem *base;
> +
> + base = ioremap(davinci_soc_info.jtag_id_reg, SZ_4K);
...because here you're assuming this value is an absolute physical address...
[...]
> diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c
> index 4f5727f..115f791 100644
> --- a/arch/arm/mach-davinci/da830.c
> +++ b/arch/arm/mach-davinci/da830.c
> @@ -1188,6 +1188,7 @@ static struct davinci_timer_info da830_timer_info = {
> static struct davinci_soc_info davinci_soc_info_da830 = {
> .io_desc = da830_io_desc,
> .io_desc_num = ARRAY_SIZE(da830_io_desc),
> + .jtag_id_reg = DA8XX_JTAG_ID_REG,
and here it is set as just the offset.
> .ids = da830_ids,
> .ids_num = ARRAY_SIZE(da830_ids),
> .cpu_clks = da830_clks,
> @@ -1215,8 +1216,6 @@ void __init da830_init(void)
> if (WARN(!da8xx_syscfg0_base, "Unable to map syscfg0 module"))
> return;
>
> - davinci_soc_info_da830.jtag_id_base =
> - DA8XX_SYSCFG0_VIRT(DA8XX_JTAG_ID_REG);
> davinci_soc_info_da830.pinmux_base = DA8XX_SYSCFG0_VIRT(0x120);
>
> davinci_common_init(&davinci_soc_info_da830);
> diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
> index cb7f663..7c0ce45 100644
> --- a/arch/arm/mach-davinci/da850.c
> +++ b/arch/arm/mach-davinci/da850.c
> @@ -1073,6 +1073,7 @@ no_ddrpll_mem:
> static struct davinci_soc_info davinci_soc_info_da850 = {
> .io_desc = da850_io_desc,
> .io_desc_num = ARRAY_SIZE(da850_io_desc),
> + .jtag_id_reg = DA8XX_JTAG_ID_REG,
Here too.
Fold the patch below into this patch and it boots on da8xx.
Kevin
diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c
index 6804a59..3a7a96f 100644
--- a/arch/arm/mach-davinci/da830.c
+++ b/arch/arm/mach-davinci/da830.c
@@ -1185,7 +1185,7 @@ static struct davinci_timer_info da830_timer_info = {
static struct davinci_soc_info davinci_soc_info_da830 = {
.io_desc = da830_io_desc,
.io_desc_num = ARRAY_SIZE(da830_io_desc),
- .jtag_id_reg = DA8XX_JTAG_ID_REG,
+ .jtag_id_reg = DA8XX_SYSCFG0_BASE + DA8XX_JTAG_ID_REG,
.ids = da830_ids,
.ids_num = ARRAY_SIZE(da830_ids),
.cpu_clks = da830_clks,
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
index a08cb91..6b8331b 100644
--- a/arch/arm/mach-davinci/da850.c
+++ b/arch/arm/mach-davinci/da850.c
@@ -1070,7 +1070,7 @@ no_ddrpll_mem:
static struct davinci_soc_info davinci_soc_info_da850 = {
.io_desc = da850_io_desc,
.io_desc_num = ARRAY_SIZE(da850_io_desc),
- .jtag_id_reg = DA8XX_JTAG_ID_REG,
+ .jtag_id_reg = DA8XX_SYSCFG0_BASE + DA8XX_JTAG_ID_REG,
.ids = da850_ids,
.ids_num = ARRAY_SIZE(da850_ids),
.cpu_clks = da850_clks,
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source