I just got a new Arduino Eth­er­net board and had some trou­bles upload­ing the Firmware. After some research I finally found a solu­tion using my Bus­Pi­rate v3:

Here is the wiring between Bus­Pi­rate and Arduino Eth­er­net
BP GND -> Pin 1 (Black)
BP 5v -> Pin 3 (Red)
BP MOSI -> Pin 4 (Red)
BP MISO -> Pin 5 (Yel­low)
BP CLK -> Pin 6 (Blue)

Con­nect to your Bus­Pi­rate (115200 BPS) and con­fig­ure it to run in trans­par­ent ser­ial mode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. JTAG
7. RAW2WIRE
8. RAW3WIRE
9. PC KEYBOARD
10. LCD
(1) >3
Mode selected
Set ser­ial port speed: (bps)
 1. 300
 2. 1200
 3. 2400
 4. 4800
 5. 9600
 6. 19200
 7. 38400
 8. 57600
 9. 115200
 10. 31250 (MIDI)
(1) >9
Data bits and par­ity:
 1. 8, NONE *default
 2. 8, EVEN
 3. 8, ODD
 4. 9, NONE
(1) >
Stop bits:
 1. 1 *default
 2. 2
(1) >
Receive polar­ity:
 1. Idle 1 *default
 2. Idle 0
(1) >
Select out­put type:
 1. Open drain (H=Hi-Z, L=GND)
 2. Nor­mal (H=3.3V, L=GND)
(1) >2
READY
UART>W
POWER SUPPLIES ON
HiZ>I
Bus Pirate v3
Firmware v4.2 Boot­loader v4.1
DEVID:0x0447 REVID:0x3043 (B5)
http://dangerousprototypes.com
UART>(3)
UART bridge. Space con­tin­ues, any­thing else exits.
Reset to exit.

Exit the Ter­mi­nal and switch over to your Arduino IDE. Now upload your sketch through the BusPirate.