I tried out:
git://git.secretlab.ca/git/linux-2.6.git devicetree/test
plus the following commits from jk's dtbimage branch:
4c2eddb89542f73fe626813e3cdafc789f931aec arm: dtbImage support
4cb80ac96489220554d28f6fde527aeef83e628b arm/dtbimage: copy dtb blob to offset from image base
A local patch to modify the Tegra devicetree support to support Seaboard instead of Harmony.
... on an NVIDIA Tegra Seaboard board.
This patch series includes fixes to that branch to get Tegra booting to user-space.
Note that soon after user-space starts, the system still crashes with:
Unhandled prefetch abort: debug event (0x002) at 0x40e97714
However, this happens with or without actually providing a devicetree image to the kernel (I modified jk's dtbimage wrapper just to jump straight to the regular kernel startup, thus not providing a devicetree at all). So, I suspect it's some unrelated issue. I'll try to follow up and solve that too.
Stephen Warren (3): ARM: Tegra: dt: Compile fix; tegra_common_init removed ARM: Tegra: dt: Fix machine desc to match other boards. ARM: Tegra: Move Harmony .dts file to correct place
arch/arm/boot/dts/tegra-harmony.dts | 110 +++++++++++++++++++++++++++++++- arch/arm/mach-tegra/board-dt.c | 13 ++-- arch/arm/mach-tegra/board-harmony.dts | 113 --------------------------------- 3 files changed, 114 insertions(+), 122 deletions(-) delete mode 100644 arch/arm/mach-tegra/board-harmony.dts
tegra_common_init was removed by: 0cf6230af909a86f81907455eca2a5c9b8f68fe6 ARM: tegra: Move tegra_common_init to tegra_init_early
Fix the Tegra devicetree support to match.
Signed-off-by: Stephen Warren swarren@nvidia.com --- arch/arm/mach-tegra/board-dt.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index bc9777e..899311b 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c @@ -156,8 +156,6 @@ static void __init tegra_dt_init(void) */ of_platform_prepare(NULL, tegra_dt_match_table);
- tegra_common_init(); - tegra_clk_init_from_table(tegra_dt_clk_init_table);
harmony_pinmux_init();
On Sat, Apr 23, 2011 at 10:30:02PM -0600, Stephen Warren wrote:
tegra_common_init was removed by: 0cf6230af909a86f81907455eca2a5c9b8f68fe6 ARM: tegra: Move tegra_common_init to tegra_init_early
Fix the Tegra devicetree support to match.
Signed-off-by: Stephen Warren swarren@nvidia.com
Squashed into the "arm/dt: full tegra devicetree support" commit
Thanks!
g.
arch/arm/mach-tegra/board-dt.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index bc9777e..899311b 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c @@ -156,8 +156,6 @@ static void __init tegra_dt_init(void) */ of_platform_prepare(NULL, tegra_dt_match_table);
- tegra_common_init();
- tegra_clk_init_from_table(tegra_dt_clk_init_table);
harmony_pinmux_init(); -- 1.7.1
The content of the machine descriptions has be re-organized. Without fixing the board-dt.c copy, the system will fail to boot (BUG_ON during timer initialization, which happens before printk is operational, leading to a silent hang early during kernel boot). Solve this basiclaly by copying the existing Harmony version over the copy in board-dt.c
Signed-off-by: Stephen Warren swarren@nvidia.com --- arch/arm/mach-tegra/board-dt.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index 899311b..7b9d469 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c @@ -175,10 +175,11 @@ static const char * tegra_dt_board_compat[] = { };
DT_MACHINE_START(TEGRA_DT, "nVidia Tegra (Flattened Device Tree)") - .fixup = tegra_dt_fixup, - .init_irq = tegra_init_irq, - .init_machine = tegra_dt_init, - .map_io = tegra_map_common_io, - .timer = &tegra_timer, + .boot_params = 0x00000100, + .map_io = tegra_map_common_io, + .init_early = tegra_init_early, + .init_irq = tegra_init_irq, + .timer = &tegra_timer, + .init_machine = tegra_dt_init, .dt_compat = tegra_dt_board_compat, MACHINE_END
On Sat, Apr 23, 2011 at 10:30:03PM -0600, Stephen Warren wrote:
The content of the machine descriptions has be re-organized. Without fixing the board-dt.c copy, the system will fail to boot (BUG_ON during timer initialization, which happens before printk is operational, leading to a silent hang early during kernel boot). Solve this basiclaly by copying the existing Harmony version over the copy in board-dt.c
Signed-off-by: Stephen Warren swarren@nvidia.com
arch/arm/mach-tegra/board-dt.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index 899311b..7b9d469 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c @@ -175,10 +175,11 @@ static const char * tegra_dt_board_compat[] = { }; DT_MACHINE_START(TEGRA_DT, "nVidia Tegra (Flattened Device Tree)")
- .fixup = tegra_dt_fixup,
I take it that with memory ranges encoded into the device tree this fixup is no longer needed? I'll drop the tegra_dt_fixup() function from the file too then.
- .init_irq = tegra_init_irq,
- .init_machine = tegra_dt_init,
- .map_io = tegra_map_common_io,
- .timer = &tegra_timer,
- .boot_params = 0x00000100,
boot_params isn't used for dtb boot, so I'll drop this line.
- .map_io = tegra_map_common_io,
- .init_early = tegra_init_early,
- .init_irq = tegra_init_irq,
- .timer = &tegra_timer,
- .init_machine = tegra_dt_init, .dt_compat = tegra_dt_board_compat,
MACHINE_END
I'll also squash these changes into the clean commit in devicetree/test. I'm just building and testing now.
Thanks! g.
Grant Likely wrote at Friday, April 29, 2011 5:35 PM:
On Sat, Apr 23, 2011 at 10:30:03PM -0600, Stephen Warren wrote:
The content of the machine descriptions has be re-organized. Without fixing the board-dt.c copy, the system will fail to boot (BUG_ON during timer initialization, which happens before printk is operational, leading to a silent hang early during kernel boot). Solve this basiclaly by copying the existing Harmony version over the copy in board-dt.c
Signed-off-by: Stephen Warren swarren@nvidia.com
arch/arm/mach-tegra/board-dt.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index 899311b..7b9d469 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c @@ -175,10 +175,11 @@ static const char * tegra_dt_board_compat[] = { };
DT_MACHINE_START(TEGRA_DT, "nVidia Tegra (Flattened Device Tree)")
- .fixup = tegra_dt_fixup,
I take it that with memory ranges encoded into the device tree this fixup is no longer needed? I'll drop the tegra_dt_fixup() function from the file too then.
I actually tested this all on Seaboard not Harmony, and locally modified the tegra-harmony.dts to add to the kernel cmdline mem=/nvmem= options identical to what we use for Seaboard + ChromeOS. Now I have things working, I should probably remove the kernel cmdline mem=/nvmem= options, and validate that the dt memory setup is working correctly. I believe the fixup function was only there to cater for broken bootloader setups that didn't supply the correct mem=/nvmem= on the kernel cmdline, so this should all work OK...
Stephen Warren wrote at Sent: Friday, April 29, 2011 7:52 PM:
To: Grant Likely Cc: linaro-dev@lists.linaro.org; linux-tegra@vger.kernel.org Subject: RE: [PATCH 2/3] ARM: Tegra: dt: Fix machine desc to match other boards.
Grant Likely wrote at Friday, April 29, 2011 5:35 PM:
On Sat, Apr 23, 2011 at 10:30:03PM -0600, Stephen Warren wrote:
The content of the machine descriptions has be re-organized. Without fixing the board-dt.c copy, the system will fail to boot (BUG_ON during timer initialization, which happens before printk is operational, leading to a silent hang early during kernel boot). Solve this basiclaly by copying the existing Harmony version over the copy in board-dt.c
Signed-off-by: Stephen Warren swarren@nvidia.com
arch/arm/mach-tegra/board-dt.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c index 899311b..7b9d469 100644 --- a/arch/arm/mach-tegra/board-dt.c +++ b/arch/arm/mach-tegra/board-dt.c @@ -175,10 +175,11 @@ static const char * tegra_dt_board_compat[] = { };
DT_MACHINE_START(TEGRA_DT, "nVidia Tegra (Flattened Device Tree)")
- .fixup = tegra_dt_fixup,
I take it that with memory ranges encoded into the device tree this fixup is no longer needed? I'll drop the tegra_dt_fixup() function from the file too then.
I actually tested this all on Seaboard not Harmony, and locally modified the tegra-harmony.dts to add to the kernel cmdline mem=/nvmem= options identical to what we use for Seaboard + ChromeOS. Now I have things working, I should probably remove the kernel cmdline mem=/nvmem= options, and validate that the dt memory setup is working correctly. I believe the fixup function was only there to cater for broken bootloader setups that didn't supply the correct mem=/nvmem= on the kernel cmdline, so this should all work OK...
I've now tested on Seaboard with the fixup removed as above, no mem= or nvmem= kernel cmdline options, and hence just the devicetree memory definitions. Everything looks like it's fine.
The following workflow:
make dtbs make dtbuImage # See my earlier patch which adds this based on Jeremy Kerr's patch to add a dtbImage target.
... seems to require the *.dts file to be in arch/arm/boot/dts. I'm not sure if any other devicetree testing flows will be negatively affected by this change.
Signed-off-by: Stephen Warren swarren@nvidia.com --- arch/arm/boot/dts/tegra-harmony.dts | 110 +++++++++++++++++++++++++++++++- arch/arm/mach-tegra/board-harmony.dts | 113 --------------------------------- 2 files changed, 108 insertions(+), 115 deletions(-) delete mode 100644 arch/arm/mach-tegra/board-harmony.dts
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts index 81032e7..82fa0c2 100644 --- a/arch/arm/boot/dts/tegra-harmony.dts +++ b/arch/arm/boot/dts/tegra-harmony.dts @@ -1,7 +1,113 @@ + /dts-v1/; -/include/ "skeleton.dtsi"
/ { - model = "NVIDIA Tegra2 Harmony evaluation board"; + model = "nVidia Harmony"; compatible = "nvidia,harmony", "nvidia,tegra250"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&intc>; + + chosen { + bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootdelay=2"; + }; + + memory { + device_type = "memory"; + reg = < 0x00000000 0x1C000000 + 0x20000000 0x20000000 >; + }; + + amba { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + intc: intc { + interrupt-controller; + #interrupt-cells = <1>; + }; + }; + + gpio: gpio@6000d000 { + compatible = "nvidia,tegra250-gpio"; + reg = < 0x6000d000 0x1000 >; + interrupts = < 64 65 66 67 87 119 121 >; + #gpio-cells = <2>; + gpio-controller; + }; + + serial@70006000 { + compatible = "nvidia,tegra250-uart"; + reg = <0x70006000 0x40>; + reg-shift = <2>; + interrupts = < 68 >; + status = "disabled"; + }; + + serial@70006040 { + compatible = "nvidia,tegra250-uart"; + reg = <0x70006040 0x40>; + reg-shift = <2>; + interrupts = < 69 >; + status = "disabled"; + }; + + serial@70006200 { + compatible = "nvidia,tegra250-uart"; + reg = <0x70006200 0x100>; + reg-shift = <2>; + interrupts = < 78 >; + status = "disabled"; + }; + + serial@70006300 { + compatible = "nvidia,tegra250-uart"; + reg = <0x70006300 0x100>; + reg-shift = <2>; + interrupts = < 122 >; + + clock-frequency = < 216000000 >; + }; + + serial@70006400 { + compatible = "nvidia,tegra250-uart"; + reg = <0x70006400 0x100>; + reg-shift = <2>; + interrupts = < 123 >; + status = "disabled"; + }; + + sdhci@c8000000 { + compatible = "nvidia,tegra250-sdhci"; + reg = <0xc8000000 0x200>; + interrupts = < 46 >; + status = "disabled"; + }; + + sdhci@c8000200 { + compatible = "nvidia,tegra250-sdhci"; + reg = <0xc8000200 0x200>; + interrupts = < 47 >; + gpios = <&gpio 69 0>, /* cd, gpio PI5 */ + <&gpio 57 0>, /* wp, gpio PH1 */ + <&gpio 155 0>; /* power, gpio PT3 */ + }; + + sdhci@c8000400 { + compatible = "nvidia,tegra250-sdhci"; + reg = <0xc8000400 0x200>; + interrupts = < 51 >; + status = "disabled"; + }; + + sdhci@c8000600 { + compatible = "nvidia,tegra250-sdhci"; + reg = <0xc8000600 0x200>; + interrupts = < 63 >; + gpios = <&gpio 58 0>, /* cd, gpio PH2 */ + <&gpio 59 0>, /* wp, gpio PH3 */ + <&gpio 70 0>; /* power, gpio PI6 */ + }; }; diff --git a/arch/arm/mach-tegra/board-harmony.dts b/arch/arm/mach-tegra/board-harmony.dts deleted file mode 100644 index 82fa0c2..0000000 --- a/arch/arm/mach-tegra/board-harmony.dts +++ /dev/null @@ -1,113 +0,0 @@ - -/dts-v1/; - -/ { - model = "nVidia Harmony"; - compatible = "nvidia,harmony", "nvidia,tegra250"; - #address-cells = <1>; - #size-cells = <1>; - interrupt-parent = <&intc>; - - chosen { - bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootdelay=2"; - }; - - memory { - device_type = "memory"; - reg = < 0x00000000 0x1C000000 - 0x20000000 0x20000000 >; - }; - - amba { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges; - - intc: intc { - interrupt-controller; - #interrupt-cells = <1>; - }; - }; - - gpio: gpio@6000d000 { - compatible = "nvidia,tegra250-gpio"; - reg = < 0x6000d000 0x1000 >; - interrupts = < 64 65 66 67 87 119 121 >; - #gpio-cells = <2>; - gpio-controller; - }; - - serial@70006000 { - compatible = "nvidia,tegra250-uart"; - reg = <0x70006000 0x40>; - reg-shift = <2>; - interrupts = < 68 >; - status = "disabled"; - }; - - serial@70006040 { - compatible = "nvidia,tegra250-uart"; - reg = <0x70006040 0x40>; - reg-shift = <2>; - interrupts = < 69 >; - status = "disabled"; - }; - - serial@70006200 { - compatible = "nvidia,tegra250-uart"; - reg = <0x70006200 0x100>; - reg-shift = <2>; - interrupts = < 78 >; - status = "disabled"; - }; - - serial@70006300 { - compatible = "nvidia,tegra250-uart"; - reg = <0x70006300 0x100>; - reg-shift = <2>; - interrupts = < 122 >; - - clock-frequency = < 216000000 >; - }; - - serial@70006400 { - compatible = "nvidia,tegra250-uart"; - reg = <0x70006400 0x100>; - reg-shift = <2>; - interrupts = < 123 >; - status = "disabled"; - }; - - sdhci@c8000000 { - compatible = "nvidia,tegra250-sdhci"; - reg = <0xc8000000 0x200>; - interrupts = < 46 >; - status = "disabled"; - }; - - sdhci@c8000200 { - compatible = "nvidia,tegra250-sdhci"; - reg = <0xc8000200 0x200>; - interrupts = < 47 >; - gpios = <&gpio 69 0>, /* cd, gpio PI5 */ - <&gpio 57 0>, /* wp, gpio PH1 */ - <&gpio 155 0>; /* power, gpio PT3 */ - }; - - sdhci@c8000400 { - compatible = "nvidia,tegra250-sdhci"; - reg = <0xc8000400 0x200>; - interrupts = < 51 >; - status = "disabled"; - }; - - sdhci@c8000600 { - compatible = "nvidia,tegra250-sdhci"; - reg = <0xc8000600 0x200>; - interrupts = < 63 >; - gpios = <&gpio 58 0>, /* cd, gpio PH2 */ - <&gpio 59 0>, /* wp, gpio PH3 */ - <&gpio 70 0>; /* power, gpio PI6 */ - }; -};
On Sat, Apr 23, 2011 at 10:30:04PM -0600, Stephen Warren wrote:
The following workflow:
make dtbs make dtbuImage # See my earlier patch which adds this based on Jeremy Kerr's patch to add a dtbImage target.
... seems to require the *.dts file to be in arch/arm/boot/dts. I'm not sure if any other devicetree testing flows will be negatively affected by this change.
Yeah, I started on the tegra work quite a while ago before dts files started getting put into arch/arm/boot/dts. I'll also squash this into the board support patch in devicetree/test.
Thanks, g.
Signed-off-by: Stephen Warren swarren@nvidia.com
arch/arm/boot/dts/tegra-harmony.dts | 110 +++++++++++++++++++++++++++++++- arch/arm/mach-tegra/board-harmony.dts | 113 --------------------------------- 2 files changed, 108 insertions(+), 115 deletions(-) delete mode 100644 arch/arm/mach-tegra/board-harmony.dts
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts index 81032e7..82fa0c2 100644 --- a/arch/arm/boot/dts/tegra-harmony.dts +++ b/arch/arm/boot/dts/tegra-harmony.dts @@ -1,7 +1,113 @@
/dts-v1/; -/include/ "skeleton.dtsi" / {
- model = "NVIDIA Tegra2 Harmony evaluation board";
- model = "nVidia Harmony"; compatible = "nvidia,harmony", "nvidia,tegra250";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
- chosen {
bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootdelay=2";
- };
- memory {
device_type = "memory";
reg = < 0x00000000 0x1C000000
0x20000000 0x20000000 >;
- };
- amba {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
intc: intc {
interrupt-controller;
#interrupt-cells = <1>;
};
- };
- gpio: gpio@6000d000 {
compatible = "nvidia,tegra250-gpio";
reg = < 0x6000d000 0x1000 >;
interrupts = < 64 65 66 67 87 119 121 >;
#gpio-cells = <2>;
gpio-controller;
- };
- serial@70006000 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006000 0x40>;
reg-shift = <2>;
interrupts = < 68 >;
status = "disabled";
- };
- serial@70006040 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006040 0x40>;
reg-shift = <2>;
interrupts = < 69 >;
status = "disabled";
- };
- serial@70006200 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006200 0x100>;
reg-shift = <2>;
interrupts = < 78 >;
status = "disabled";
- };
- serial@70006300 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006300 0x100>;
reg-shift = <2>;
interrupts = < 122 >;
clock-frequency = < 216000000 >;
- };
- serial@70006400 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006400 0x100>;
reg-shift = <2>;
interrupts = < 123 >;
status = "disabled";
- };
- sdhci@c8000000 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000000 0x200>;
interrupts = < 46 >;
status = "disabled";
- };
- sdhci@c8000200 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000200 0x200>;
interrupts = < 47 >;
gpios = <&gpio 69 0>, /* cd, gpio PI5 */
<&gpio 57 0>, /* wp, gpio PH1 */
<&gpio 155 0>; /* power, gpio PT3 */
- };
- sdhci@c8000400 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000400 0x200>;
interrupts = < 51 >;
status = "disabled";
- };
- sdhci@c8000600 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000600 0x200>;
interrupts = < 63 >;
gpios = <&gpio 58 0>, /* cd, gpio PH2 */
<&gpio 59 0>, /* wp, gpio PH3 */
<&gpio 70 0>; /* power, gpio PI6 */
- };
}; diff --git a/arch/arm/mach-tegra/board-harmony.dts b/arch/arm/mach-tegra/board-harmony.dts deleted file mode 100644 index 82fa0c2..0000000 --- a/arch/arm/mach-tegra/board-harmony.dts +++ /dev/null @@ -1,113 +0,0 @@
-/dts-v1/;
-/ {
- model = "nVidia Harmony";
- compatible = "nvidia,harmony", "nvidia,tegra250";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
- chosen {
bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootdelay=2";
- };
- memory {
device_type = "memory";
reg = < 0x00000000 0x1C000000
0x20000000 0x20000000 >;
- };
- amba {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
intc: intc {
interrupt-controller;
#interrupt-cells = <1>;
};
- };
- gpio: gpio@6000d000 {
compatible = "nvidia,tegra250-gpio";
reg = < 0x6000d000 0x1000 >;
interrupts = < 64 65 66 67 87 119 121 >;
#gpio-cells = <2>;
gpio-controller;
- };
- serial@70006000 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006000 0x40>;
reg-shift = <2>;
interrupts = < 68 >;
status = "disabled";
- };
- serial@70006040 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006040 0x40>;
reg-shift = <2>;
interrupts = < 69 >;
status = "disabled";
- };
- serial@70006200 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006200 0x100>;
reg-shift = <2>;
interrupts = < 78 >;
status = "disabled";
- };
- serial@70006300 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006300 0x100>;
reg-shift = <2>;
interrupts = < 122 >;
clock-frequency = < 216000000 >;
- };
- serial@70006400 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006400 0x100>;
reg-shift = <2>;
interrupts = < 123 >;
status = "disabled";
- };
- sdhci@c8000000 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000000 0x200>;
interrupts = < 46 >;
status = "disabled";
- };
- sdhci@c8000200 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000200 0x200>;
interrupts = < 47 >;
gpios = <&gpio 69 0>, /* cd, gpio PI5 */
<&gpio 57 0>, /* wp, gpio PH1 */
<&gpio 155 0>; /* power, gpio PT3 */
- };
- sdhci@c8000400 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000400 0x200>;
interrupts = < 51 >;
status = "disabled";
- };
- sdhci@c8000600 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000600 0x200>;
interrupts = < 63 >;
gpios = <&gpio 58 0>, /* cd, gpio PH2 */
<&gpio 59 0>, /* wp, gpio PH3 */
<&gpio 70 0>; /* power, gpio PI6 */
- };
-};
1.7.1
On Sat, Apr 23, 2011 at 10:30:04PM -0600, Stephen Warren wrote:
The following workflow:
make dtbs make dtbuImage # See my earlier patch which adds this based on Jeremy Kerr's patch to add a dtbImage target.
... seems to require the *.dts file to be in arch/arm/boot/dts. I'm not sure if any other devicetree testing flows will be negatively affected by this change.
Signed-off-by: Stephen Warren swarren@nvidia.com
Hmmm, I seem to have broken stuff. No time to sort it out now though. Oh well. I'll try it again (hopefully) tomorrow.
g.
arch/arm/boot/dts/tegra-harmony.dts | 110 +++++++++++++++++++++++++++++++- arch/arm/mach-tegra/board-harmony.dts | 113 --------------------------------- 2 files changed, 108 insertions(+), 115 deletions(-) delete mode 100644 arch/arm/mach-tegra/board-harmony.dts
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts index 81032e7..82fa0c2 100644 --- a/arch/arm/boot/dts/tegra-harmony.dts +++ b/arch/arm/boot/dts/tegra-harmony.dts @@ -1,7 +1,113 @@
/dts-v1/; -/include/ "skeleton.dtsi" / {
- model = "NVIDIA Tegra2 Harmony evaluation board";
- model = "nVidia Harmony"; compatible = "nvidia,harmony", "nvidia,tegra250";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
- chosen {
bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootdelay=2";
- };
- memory {
device_type = "memory";
reg = < 0x00000000 0x1C000000
0x20000000 0x20000000 >;
- };
- amba {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
intc: intc {
interrupt-controller;
#interrupt-cells = <1>;
};
- };
- gpio: gpio@6000d000 {
compatible = "nvidia,tegra250-gpio";
reg = < 0x6000d000 0x1000 >;
interrupts = < 64 65 66 67 87 119 121 >;
#gpio-cells = <2>;
gpio-controller;
- };
- serial@70006000 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006000 0x40>;
reg-shift = <2>;
interrupts = < 68 >;
status = "disabled";
- };
- serial@70006040 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006040 0x40>;
reg-shift = <2>;
interrupts = < 69 >;
status = "disabled";
- };
- serial@70006200 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006200 0x100>;
reg-shift = <2>;
interrupts = < 78 >;
status = "disabled";
- };
- serial@70006300 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006300 0x100>;
reg-shift = <2>;
interrupts = < 122 >;
clock-frequency = < 216000000 >;
- };
- serial@70006400 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006400 0x100>;
reg-shift = <2>;
interrupts = < 123 >;
status = "disabled";
- };
- sdhci@c8000000 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000000 0x200>;
interrupts = < 46 >;
status = "disabled";
- };
- sdhci@c8000200 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000200 0x200>;
interrupts = < 47 >;
gpios = <&gpio 69 0>, /* cd, gpio PI5 */
<&gpio 57 0>, /* wp, gpio PH1 */
<&gpio 155 0>; /* power, gpio PT3 */
- };
- sdhci@c8000400 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000400 0x200>;
interrupts = < 51 >;
status = "disabled";
- };
- sdhci@c8000600 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000600 0x200>;
interrupts = < 63 >;
gpios = <&gpio 58 0>, /* cd, gpio PH2 */
<&gpio 59 0>, /* wp, gpio PH3 */
<&gpio 70 0>; /* power, gpio PI6 */
- };
}; diff --git a/arch/arm/mach-tegra/board-harmony.dts b/arch/arm/mach-tegra/board-harmony.dts deleted file mode 100644 index 82fa0c2..0000000 --- a/arch/arm/mach-tegra/board-harmony.dts +++ /dev/null @@ -1,113 +0,0 @@
-/dts-v1/;
-/ {
- model = "nVidia Harmony";
- compatible = "nvidia,harmony", "nvidia,tegra250";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
- chosen {
bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootdelay=2";
- };
- memory {
device_type = "memory";
reg = < 0x00000000 0x1C000000
0x20000000 0x20000000 >;
- };
- amba {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
intc: intc {
interrupt-controller;
#interrupt-cells = <1>;
};
- };
- gpio: gpio@6000d000 {
compatible = "nvidia,tegra250-gpio";
reg = < 0x6000d000 0x1000 >;
interrupts = < 64 65 66 67 87 119 121 >;
#gpio-cells = <2>;
gpio-controller;
- };
- serial@70006000 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006000 0x40>;
reg-shift = <2>;
interrupts = < 68 >;
status = "disabled";
- };
- serial@70006040 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006040 0x40>;
reg-shift = <2>;
interrupts = < 69 >;
status = "disabled";
- };
- serial@70006200 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006200 0x100>;
reg-shift = <2>;
interrupts = < 78 >;
status = "disabled";
- };
- serial@70006300 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006300 0x100>;
reg-shift = <2>;
interrupts = < 122 >;
clock-frequency = < 216000000 >;
- };
- serial@70006400 {
compatible = "nvidia,tegra250-uart";
reg = <0x70006400 0x100>;
reg-shift = <2>;
interrupts = < 123 >;
status = "disabled";
- };
- sdhci@c8000000 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000000 0x200>;
interrupts = < 46 >;
status = "disabled";
- };
- sdhci@c8000200 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000200 0x200>;
interrupts = < 47 >;
gpios = <&gpio 69 0>, /* cd, gpio PI5 */
<&gpio 57 0>, /* wp, gpio PH1 */
<&gpio 155 0>; /* power, gpio PT3 */
- };
- sdhci@c8000400 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000400 0x200>;
interrupts = < 51 >;
status = "disabled";
- };
- sdhci@c8000600 {
compatible = "nvidia,tegra250-sdhci";
reg = <0xc8000600 0x200>;
interrupts = < 63 >;
gpios = <&gpio 58 0>, /* cd, gpio PH2 */
<&gpio 59 0>, /* wp, gpio PH3 */
<&gpio 70 0>; /* power, gpio PI6 */
- };
-};
1.7.1