Pārlūkot izejas kodu

beaglebone uenv parameters

Bob Mottram 8 gadus atpakaļ
vecāks
revīzija
68777f0059
1 mainītis faili ar 143 papildinājumiem un 1 dzēšanām
  1. 143
    1
      src/freedombone-image-hardware-setup

+ 143
- 1
src/freedombone-image-hardware-setup Parādīt failu

31
 export TEXTDOMAIN=${PROJECT_NAME}-image-hardware-setup
31
 export TEXTDOMAIN=${PROJECT_NAME}-image-hardware-setup
32
 export TEXTDOMAINDIR="/usr/share/locale"
32
 export TEXTDOMAINDIR="/usr/share/locale"
33
 
33
 
34
-setup_flash_kernel() {
34
+function enable_serial_console {
35
+    # By default, spawn a console on the serial port
36
+    device="$1"
37
+    echo $"Adding a getty on the serial port"
38
+    echo "T0:12345:respawn:/sbin/getty -L $device 115200 vt100" >> /etc/inittab
39
+}
40
+
41
+function setup_flash_kernel {
35
     if [ ! -d /etc/flash-kernel ] ; then
42
     if [ ! -d /etc/flash-kernel ] ; then
36
        mkdir /etc/flash-kernel
43
        mkdir /etc/flash-kernel
37
     fi
44
     fi
49
     apt-get -yq install flash-kernel
56
     apt-get -yq install flash-kernel
50
 }
57
 }
51
 
58
 
59
+function a20_env {
60
+    dtb="$1"
61
+
62
+    # Setup boot.cmd
63
+    if grep -q btrfs /etc/fstab ; then
64
+        fstype=btrfs
65
+    else
66
+        fstype=ext4
67
+    if [ -n "$command_line" ] ; then
68
+        echo flash-kernel flash-kernel/linux_cmdline string "$command_line" | debconf-set-selections
69
+    fi
70
+    kernelVersion=$(ls /usr/lib/*/$dtb | head -1 | cut -d/ -f4)
71
+    version=$(echo $kernelVersion | sed 's/linux-image-\(.*\)/\1/')
72
+    initRd=initrd.img-$version
73
+    vmlinuz=vmlinuz-$version
74
+
75
+    # Create boot.cmd
76
+    cat >> /boot/boot.cmd <<EOF
77
+setenv mmcdev 0
78
+setenv mmcpart 1
79
+
80
+setenv mmcroot /dev/mmcblk0p2 ro
81
+setenv mmcrootfstype $fstype rootwait fixrtc
82
+setenv mmcrootflags subvol=@
83
+
84
+setenv console ttyS0,115200n8
85
+
86
+setenv kernel_file $vmlinuz
87
+setenv initrd_file $initRd
88
+setenv fdtfile $dtb
89
+
90
+setenv loadaddr 0x46000000
91
+setenv initrd_addr 0x48000000
92
+setenv fdtaddr 0x47000000
93
+
94
+setenv initrd_high 0xffffffff
95
+setenv fdt_high 0xffffffff
96
+
97
+setenv loadkernel load mmc \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file}
98
+setenv loadinitrd load mmc \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}\\; setenv initrd_size \\\${filesize}
99
+setenv loadfdt load mmc \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile}
100
+
101
+setenv loadfiles run loadkernel\\; run loadinitrd\\; run loadfdt
102
+setenv mmcargs setenv bootargs console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} rootflags=\${mmcrootflags}
103
+
104
+run loadfiles; run mmcargs; bootz \${loadaddr} \${initrd_addr}:\${initrd_size} \${fdtaddr}
105
+EOF
106
+
107
+    # boot.scr for Allwinner A20 based device
108
+    mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
109
+
110
+    # Copy all DTBs
111
+    mkdir -p /boot/dtbs
112
+    cp /usr/lib/$kernelVersion/* /boot/dtbs
113
+
114
+    # extra boot modules
115
+    echo "rtc_sunxi" >> /etc/initramfs-tools/modules
116
+}
117
+
118
+function beaglebone_env {
119
+    bbb_version=$1
120
+
121
+    # Setup uEnv.txt
122
+    if grep -q btrfs /etc/fstab ; then
123
+        fstype=btrfs
124
+    else
125
+        fstype=ext4
126
+    fi
127
+    if [ ! $bbb_version ]; then
128
+        kernelVersion=$(ls /usr/lib/*/am335x-boneblack.dtb | head -1 | cut -d/ -f4)
129
+    else
130
+        kernelVersion=$(ls /usr/lib/*/am335x-boneblack-${1}.dtb | head -1 | cut -d/ -f4)
131
+    fi
132
+    version=$(echo $kernelVersion | sed 's/linux-image-\(.*\)/\1/')
133
+    initRd=initrd.img-$version
134
+    vmlinuz=vmlinuz-$version
135
+
136
+    #bbb_loadaddr='0x80200000'
137
+    #bbb_initrd_addr='0x81000000'
138
+    #bbb_fdtaddr='0x80F80000'
139
+    #if [[ "$bbb_version" == "wireless" ]]; then
140
+        bbb_loadaddr='0x82000000'
141
+        bbb_initrd_addr='0x88080000'
142
+        bbb_fdtaddr='0x88000000'
143
+    #fi
144
+
145
+    # uEnv.txt for Beaglebone
146
+    # based on https://github.com/beagleboard/image-builder/blob/master/target/boot/beagleboard.org.txt
147
+    cat >> /boot/uEnv.txt <<EOF
148
+mmcroot=/dev/mmcblk0p2 ro
149
+mmcrootfstype=$fstype rootwait fixrtc
150
+mmcrootflags=subvol=@
151
+
152
+console=ttyO0,115200n8
153
+
154
+kernel_file=$vmlinuz
155
+initrd_file=$initRd
156
+
157
+loadaddr=$bbb_loadaddr
158
+initrd_addr=$bbb_initrd_addr
159
+fdtaddr=$bbb_fdtaddr
160
+
161
+initrd_high=0xffffffff
162
+fdt_high=0xffffffff
163
+
164
+loadkernel=load mmc \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file}
165
+loadinitrd=load mmc \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}; setenv intrd_size \${filesize}
166
+loadfdt=load mmc \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile}
167
+
168
+loadfiles=run loadkernel; run loadinitrd; run loadfdt
169
+mmcargs=setenv bootargs console=tty0 console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} rootflags=\${mmcrootflags}
170
+
171
+uenvcmd=run loadfiles; run mmcargs; bootz \${loadaddr} \${initrd_addr}:\${initrd_size} \${fdtaddr}
172
+EOF
173
+
174
+    mkdir -p /boot/dtbs
175
+    cp /usr/lib/linux-image-*-armmp/* /boot/dtbs
176
+}
177
+
52
 case "$MACHINE" in
178
 case "$MACHINE" in
53
     beaglebone)
179
     beaglebone)
180
+        beaglebone_env
181
+        enable_serial_console ttyO0
54
         setup_flash_kernel 'TI AM335x BeagleBone Black' 'ttyO0'
182
         setup_flash_kernel 'TI AM335x BeagleBone Black' 'ttyO0'
55
         ;;
183
         ;;
56
     beaglebonewifi)
184
     beaglebonewifi)
185
+        beaglebone_env
186
+        enable_serial_console ttyO0
57
         setup_flash_kernel 'TI AM335x BeagleBone Black Wireless' 'ttyO0'
187
         setup_flash_kernel 'TI AM335x BeagleBone Black Wireless' 'ttyO0'
58
         ;;
188
         ;;
59
     cubietruck)
189
     cubietruck)
190
+        a20_env sun7i-a20-cubietruck.dtb
191
+        enable_serial_console ttyO0
60
         setup_flash_kernel 'Cubietech Cubietruck'
192
         setup_flash_kernel 'Cubietech Cubietruck'
61
         ;;
193
         ;;
62
     a20-olinuxino-lime)
194
     a20-olinuxino-lime)
195
+        a20_env sun7i-a20-olinuxino-lime.dtb
196
+        enable_serial_console ttyO0
63
         setup_flash_kernel 'Olimex A20-OLinuXino-LIME'
197
         setup_flash_kernel 'Olimex A20-OLinuXino-LIME'
64
         ;;
198
         ;;
65
     a20-olinuxino-lime2)
199
     a20-olinuxino-lime2)
200
+        a20_env sun7i-a20-olinuxino-lime2.dtb
201
+        enable_serial_console ttyO0
66
         setup_flash_kernel 'Olimex A20-OLinuXino-LIME2'
202
         setup_flash_kernel 'Olimex A20-OLinuXino-LIME2'
67
         ;;
203
         ;;
68
     a20-olinuxino-micro)
204
     a20-olinuxino-micro)
205
+        a20_env sun7i-a20-olinuxino-micro.dtb
206
+        enable_serial_console ttyO0
69
         setup_flash_kernel 'Olimex A20-Olinuxino Micro'
207
         setup_flash_kernel 'Olimex A20-Olinuxino Micro'
70
         ;;
208
         ;;
71
     cubieboard2)
209
     cubieboard2)
210
+        a20_env sun7i-a20-cubieboard2.dtb
211
+        enable_serial_console ttyO0
72
         setup_flash_kernel 'Cubietech Cubieboard2'
212
         setup_flash_kernel 'Cubietech Cubieboard2'
73
         ;;
213
         ;;
74
     pcduino3)
214
     pcduino3)
215
+        a20_env sun7i-a20-pcduino3.dtb
216
+        enable_serial_console ttyO0
75
         setup_flash_kernel 'LinkSprite pcDuino3'
217
         setup_flash_kernel 'LinkSprite pcDuino3'
76
         ;;
218
         ;;
77
 esac
219
 esac