I started with
http://packages.debian.org/squeeze/linux-source-2.6.32, add GoFlex patch (from OpenWRT mailing list, probably credits due peaslaker?).
Then, I made the following change in arch/arm/kernel/head-common.S to bypass the need to change bootloader environment.
__lookup_machine_type:
mov r1, #0xC00
orr r1, r1, #0x11
Forgive me if this is too many instructions, I do not know ARM assembly (yet). ;)
Next, I import the config from /boot/config-2.6.32-5-kirkwood, removed all but the GoFlex platform. Then, I compile with EXTRAVERSION=-5-kirkwood so we can maintain kirkwood modules.
Lastly, I take existing /boot/initrd.img-2.6.32-5-kirkwood and package it with the arch/arm/boot/zImage. The result is a simple kernel.
The result is here:
http://wiki.scottn.us/goflex:start#debian
Usage from U-boot prompt is simple:
usb start;ext2load usb 0:1 $(loadaddr) /boot/uMulti;set bootargs console=ttyS0,115200 root=UUID=93f87267-e952-437c-a87a-76712671784f;bootm $(loadaddr)