[U-Boot-Users] [PATCH, resend] FDT memory and pci node fixes for MPC8260ADS

Signed-off-by: Matvejchikov Ilya matvejchikov@gmail.com --- board/freescale/mpc8260ads/mpc8260ads.c | 27 +++++++++++++++++++++++++++ cpu/mpc8260/pci.c | 12 ++++++++++++ include/configs/MPC8260ADS.h | 7 +++++++ 3 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/board/freescale/mpc8260ads/mpc8260ads.c b/board/freescale/mpc8260ads/mpc8260ads.c index 6f683f0..8ab7d35 100644 --- a/board/freescale/mpc8260ads/mpc8260ads.c +++ b/board/freescale/mpc8260ads/mpc8260ads.c @@ -46,6 +46,10 @@ #ifdef CONFIG_PCI #include <pci.h> #endif +#ifdef CONFIG_OF_LIBFDT +#include <libfdt.h> +#include <fdt_support.h> +#endif
/* * I/O Port configuration table @@ -544,3 +548,26 @@ void pci_init_board(void) pci_mpc8250_init(&hose); } #endif + +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) +void ft_blob_update(void *blob, bd_t *bd) +{ + int ret; + + ret = fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize); + + if (ret < 0) { + printf("ft_blob_update(): cannot set /memory/reg " + "property err:%s\n", fdt_strerror(ret)); + } +} + +void ft_board_setup(void *blob, bd_t *bd) +{ + ft_cpu_setup(blob, bd); +#ifdef CONFIG_PCI + ft_pci_setup(blob, bd); +#endif + ft_blob_update(blob, bd); +} +#endif diff --git a/cpu/mpc8260/pci.c b/cpu/mpc8260/pci.c index 75c6ab2..940f5c0 100644 --- a/cpu/mpc8260/pci.c +++ b/cpu/mpc8260/pci.c @@ -33,6 +33,10 @@ #include <mpc8260.h> #include <asm/m8260_pci.h> #include <asm/io.h> +#ifdef CONFIG_OF_LIBFDT +#include <libfdt.h> +#include <fdt_support.h> +#endif
#if defined CONFIG_MPC8266ADS || defined CONFIG_MPC8272 || defined CONFIG_PM826 DECLARE_GLOBAL_DATA_PTR; @@ -449,4 +453,12 @@ void pci_mpc8250_init (struct pci_controller *hose) immap->im_pci.pci_emr |= cpu_to_le32 (PCI_ERROR_PCI_NO_RSP); }
+#if defined(CONFIG_OF_LIBFDT) +void ft_pci_setup(void *blob, bd_t *bd) +{ + do_fixup_by_prop_u32(blob, "device_type", "pci", 4, + "clock-frequency", bd->pci_clk, 1); +} +#endif + #endif /* CONFIG_PCI */ diff --git a/include/configs/MPC8260ADS.h b/include/configs/MPC8260ADS.h index 23508f9..59d0bdb 100644 --- a/include/configs/MPC8260ADS.h +++ b/include/configs/MPC8260ADS.h @@ -197,6 +197,13 @@
#define CONFIG_BAUDRATE 115200
+#define CONFIG_OF_LIBFDT 1 +#define CONFIG_OF_BOARD_SETUP 1 +#if defined(CONFIG_OF_LIBFDT) +#define OF_CPU "cpu@0" +#define OF_TBCLK (bd->bi_busfreq / 4) +#endif + /* * BOOTP options */

In message 8496f91a0807060257j5ec48a8ek577961595e8d868e@mail.gmail.com you wrote:
Signed-off-by: Matvejchikov Ilya matvejchikov@gmail.com
board/freescale/mpc8260ads/mpc8260ads.c | 27 +++++++++++++++++++++++++++ cpu/mpc8260/pci.c | 12 ++++++++++++ include/configs/MPC8260ADS.h | 7 +++++++ 3 files changed, 46 insertions(+), 0 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk

In message 8496f91a0807060257j5ec48a8ek577961595e8d868e@mail.gmail.com you wrote:
Signed-off-by: Matvejchikov Ilya matvejchikov@gmail.com
board/freescale/mpc8260ads/mpc8260ads.c | 27 +++++++++++++++++++++++++++ cpu/mpc8260/pci.c | 12 ++++++++++++ include/configs/MPC8260ADS.h | 7 +++++++ 3 files changed, 46 insertions(+), 0 deletions(-)
...
--- a/cpu/mpc8260/pci.c +++ b/cpu/mpc8260/pci.c @@ -33,6 +33,10 @@ #include <mpc8260.h> #include <asm/m8260_pci.h> #include <asm/io.h> +#ifdef CONFIG_OF_LIBFDT +#include <libfdt.h> +#include <fdt_support.h> +#endif
#if defined CONFIG_MPC8266ADS || defined CONFIG_MPC8272 || defined CONFIG_PM826 DECLARE_GLOBAL_DATA_PTR; @@ -449,4 +453,12 @@ void pci_mpc8250_init (struct pci_controller *hose) immap->im_pci.pci_emr |= cpu_to_le32 (PCI_ERROR_PCI_NO_RSP); }
+#if defined(CONFIG_OF_LIBFDT) +void ft_pci_setup(void *blob, bd_t *bd) +{
- do_fixup_by_prop_u32(blob, "device_type", "pci", 4,
"clock-frequency", bd->pci_clk, 1);
+} +#endif
Your patch causes problems:
Configuring for MPC8260ADS board... pci.c: In function 'ft_pci_setup': pci.c:460: error: 'bd_t' has no member named 'pci_clk' make[1]: *** [pci.o] Error 1
Do you have a quick fix or shall I back out the patch?
Best regards,
Wolfgang Denk

+#if defined(CONFIG_OF_LIBFDT) +void ft_pci_setup(void *blob, bd_t *bd) +{
do_fixup_by_prop_u32(blob, "device_type", "pci", 4,
"clock-frequency", bd->pci_clk, 1);
+} +#endif
Your patch causes problems:
Configuring for MPC8260ADS board... pci.c: In function 'ft_pci_setup': pci.c:460: error: 'bd_t' has no member named 'pci_clk' make[1]: *** [pci.o] Error 1
Do you have a quick fix or shall I back out the patch?
This problem can be temporary fixed with replacement of the gd->pci_clk by CONFIG_8260_CLKIN.

In message 8496f91a0807140952l1e78debchf4e459311d2fcc3b@mail.gmail.com you wrote:
+#if defined(CONFIG_OF_LIBFDT) +void ft_pci_setup(void *blob, bd_t *bd) +{
do_fixup_by_prop_u32(blob, "device_type", "pci", 4,
"clock-frequency", bd->pci_clk, 1);
+} +#endif
Your patch causes problems:
Configuring for MPC8260ADS board... pci.c: In function 'ft_pci_setup': pci.c:460: error: 'bd_t' has no member named 'pci_clk' make[1]: *** [pci.o] Error 1
Do you have a quick fix or shall I back out the patch?
This problem can be temporary fixed with replacement of the gd->pci_clk by CONFIG_8260_CLKIN.
Can you please submit a patch?
Best regards,
Wolfgang Denk
participants (2)
-
Matvejchikov Ilya
-
Wolfgang Denk