Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c374e00e authored by Scott Wood's avatar Scott Wood Committed by Kumar Gala
Browse files

[POWERPC] Add early debug console for CPM serial ports.



This code assumes that the ports have been previously set up, with
buffers in DPRAM.

Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
Acked-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent e631ae3b
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -221,6 +221,15 @@ config PPC_EARLY_DEBUG_44x
	  Select this to enable early debugging for IBM 44x chips via the
	  inbuilt serial port.

config PPC_EARLY_DEBUG_CPM
	bool "Early serial debugging for Freescale CPM-based serial ports"
	depends on SERIAL_CPM
	select PIN_TLB if PPC_8xx
	help
	  Select this to enable early debugging for Freescale chips
	  using a CPM-based serial port.  This assumes that the bootwrapper
	  has run, and set up the CPM in a particular way.

endchoice

config PPC_EARLY_DEBUG_44x_PHYSLOW
@@ -233,4 +242,16 @@ config PPC_EARLY_DEBUG_44x_PHYSHIGH
	depends PPC_EARLY_DEBUG_44x
	default "0x1"

config PPC_EARLY_DEBUG_CPM_ADDR
	hex "CPM UART early debug transmit descriptor address"
	depends on PPC_EARLY_DEBUG_CPM
	default "0xfa202808" if PPC_EP88XC
	default "0xf0000808" if CPM2
	default "0xff002808" if CPM1
	help
	  This specifies the address of the transmit descriptor
	  used for early debug output.  Because it is needed before
	  platform probing is done, all platforms selected must
	  share the same address.

endmenu
+16 −0
Original line number Diff line number Diff line
@@ -149,6 +149,9 @@ __after_mmu_off:
#if defined(CONFIG_BOOTX_TEXT)
	bl	setup_disp_bat
#endif
#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
	bl	setup_cpm_bat
#endif

/*
 * Call setup_cpu for CPU 0 and initialize 6xx Idle
@@ -1245,6 +1248,19 @@ setup_disp_bat:
	blr
#endif /* CONFIG_BOOTX_TEXT */

#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
setup_cpm_bat:
	lis	r8, 0xf000
	ori	r8, r8,	0x002a
	mtspr	SPRN_DBAT1L, r8

	lis	r11, 0xf000
	ori	r11, r11, (BL_1M << 2) | 2
	mtspr	SPRN_DBAT1U, r11

	blr
#endif

#ifdef CONFIG_8260
/* Jump into the system reset for the rom.
 * We first disable the MMU, and then jump to the ROM reset address.
+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,8 @@ void __init udbg_early_init(void)
#elif defined(CONFIG_PPC_EARLY_DEBUG_44x)
	/* PPC44x debug */
	udbg_init_44x_as1();
#elif defined(CONFIG_PPC_EARLY_DEBUG_CPM)
	udbg_init_cpm();
#endif
}

+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ config FADS

config CPM1
	bool
	select CPM

choice
	prompt "8xx Machine Type"
+4 −0
Original line number Diff line number Diff line
@@ -273,6 +273,7 @@ config QUICC_ENGINE
config CPM2
	bool
	default n
	select CPM
	help
	  The CPM2 (Communications Processor Module) is a coprocessor on
	  embedded CPUs made by Freescale.  Selecting this option means that
@@ -309,4 +310,7 @@ config FSL_ULI1575
	  Freescale reference boards. The boards all use the ULI in pretty
	  much the same way.

config CPM
	bool

endmenu
Loading