Skip to content

Commit

Permalink
MIPS: Pistachio: Support CDMM & Fast Debug Channel
Browse files Browse the repository at this point in the history
Implement the mips_cdmm_phys_base() platform callback to provide a
default Common Device Memory Map (CDMM) physical base address for the
Pistachio SoC. This allows the CDMM in each VPE to be configured and
probed for devices, such as the Fast Debug Channel (FDC).

The physical address chosen is just below the default CPC address, which
appears to also be unallocated.

The FDC IRQ is also usable on Pistachio, and is routed through the GIC,
so implement the get_c0_fdc_int() platform callback using
gic_get_c0_fdc_int(), so the FDC driver doesn't have to fall back to
polling.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Andrew Bresticker <abrestic@chromium.org>
Cc: James Hartley <james.hartley@imgtec.com>
Cc: linux-mips@linux-mips.org
Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
Patchwork: http://patchwork.linux-mips.org/patch/9749/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
James Hogan authored and Ralf Baechle committed Jul 10, 2015
1 parent 6249ecb commit 6b5e741
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
8 changes: 7 additions & 1 deletion arch/mips/pistachio/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,19 @@ void __init plat_mem_setup(void)
plat_setup_iocoherency();
}

#define DEFAULT_CPC_BASE_ADDR 0x1bde0000
#define DEFAULT_CPC_BASE_ADDR 0x1bde0000
#define DEFAULT_CDMM_BASE_ADDR 0x1bdd0000

phys_addr_t mips_cpc_default_phys_base(void)
{
return DEFAULT_CPC_BASE_ADDR;
}

phys_addr_t mips_cdmm_phys_base(void)
{
return DEFAULT_CDMM_BASE_ADDR;
}

static void __init mips_nmi_setup(void)
{
void *base;
Expand Down
5 changes: 5 additions & 0 deletions arch/mips/pistachio/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ int get_c0_perfcount_int(void)
return gic_get_c0_perfcount_int();
}

int get_c0_fdc_int(void)
{
return gic_get_c0_fdc_int();
}

void __init plat_time_init(void)
{
struct device_node *np;
Expand Down

0 comments on commit 6b5e741

Please sign in to comment.